Skip to content

Comments

fix: リリースタグ命名を vX.Y.Z に統一#124

Merged
LevelCapTech merged 4 commits intomainfrom
copilot/implement-release-tag-naming-strategy
Feb 20, 2026
Merged

fix: リリースタグ命名を vX.Y.Z に統一#124
LevelCapTech merged 4 commits intomainfrom
copilot/implement-release-tag-naming-strategy

Conversation

Copy link
Contributor

Copilot AI commented Feb 20, 2026

概要(Summary)

このプルリクエストは .github/copilot/plans/tag-strategy-implementation-plan.md に沿った実装変更です。リリースタグ命名を release_levelcaptech/vX.Y.Z から vX.Y.Z に統一し、旧タグは保持しつつ新ワークフローの誤発火を防ぐ内容です。

  • 変更点: npm-publish ワークフローのトリガと検証ロジックを vX.Y.Z 前提へ整理
  • 影響範囲: リリース運用・ドキュメント・ワークフローのみ
  • 互換性: 旧タグは保持し、新規運用から除外
on:
  push:
    tags:
      - "v*.*.*"

背景・経緯(Context / Facts)

  • トリガーとなった事象(Issue / PR / 障害 / 仕様変更 / 指摘 / 差分 等):リリースタグ命名規則の vX.Y.Z 統一要請
  • 参照した情報・資料(Spec / ADR / Doc / Slack / 既存実装 等):.github/copilot/plans/tag-strategy-implementation-plan.md、docs/npm-publish.md、.github/workflows/npm-publish.yml
  • 作業開始時点で確認できていた事実(再現条件 / 期待仕様 / 現状の挙動 等):旧タグ release_levelcaptech/vX.Y.Z でのみワークフローが発火する構成

変更のインデックス(どのファイルをどう変えたか)

diffの目次(ファイル×変更概要)を下記のテーブルに記載します。

ファイル 変更概要(1行)
.github/workflows/npm-publish.yml タグトリガとタグ検証を vX.Y.Z 前提へ更新
docs/npm-publish.md 新タグ運用手順と旧タグ保持方針を明記
src/test/npm-publish-workflow.test.ts ワークフローのタグ条件を検証するテストを追加

実装の要点(Diffから読み取りづらい“事実”)

「意図」ではなく、実装としての事実(何を追加/変更/削除したか、どこで分岐するか、どの入力がどこに流れるか)を短く記録します。

観点 記録
主要な追加/変更点(関数/クラス/モジュール単位) npm-publish ワークフローのタグトリガ・検証文字列を vX.Y.Z へ更新、ワークフロー検証テストを追加
振る舞いが変わる入口(API/CLI/画面/バッチ/イベント) GitHub Actions の tag push トリガ
データ構造の変更点(型/スキーマ/テーブル/JSON) なし
互換性の扱い(後方互換/破壊的変更/互換レイヤ) 旧タグは保持し、トリガ対象外に明記

適用後に観測できる結果(観測ログ/確認ログ)

確認ログ(何を実行/何を目視したか)

確認項目 方法(実行/目視) 結果 根拠(ログ/URL/スクショ等)
ワークフローのタグ条件 目視 期待通り .github/workflows/npm-publish.yml
運用ドキュメント整合 目視 期待通り docs/npm-publish.md

テストの実行状況(事実ログ)

チェック式ではなく、「何を走らせたか」と「結果」を記録します。

種別 対象(パス/テスト名) 実行方法(コマンド/CI) 結果 根拠(ログ/URL等)
unit src/test/* npm test pass npm test ログ
integration 対象なし 未実施 該当なし -
e2e 対象なし 未実施 該当なし -
lint/type src/**/* npm test pass npm test ログ

エラーハンドリング・境界値の考慮事項(Error Handling / Boundary Conditions)

異常系(エラー時)および境界値(Boundary Condition)について、考慮したケースと確認結果を下記のテーブルに記載します。必要なだけ行を追加します。

分類(error/boundary) ケース(入力/条件) 期待動作(仕様) 実装上の扱い(例外/戻り値/ログ/抑止) 確認方法(実行/目視/テスト) 結果 根拠(ログ/URL/スクショ等)
boundary v1.2 / 1.2.3 ワークフローで拒否 正規表現検証でエラー終了 テスト 期待通り src/test/npm-publish-workflow.test.ts
boundary release_levelcaptech/v1.2.3 新ワークフローが発火しない tag トリガ対象外 テスト 期待通り src/test/npm-publish-workflow.test.ts

影響範囲(どこに影響する/しないと言える根拠)

影響対象 結論 根拠
アプリケーション挙動 影響なし UI/ロジックの変更なし
API契約(入力/出力/HTTP/エラー) 影響なし API 変更なし
データ互換(スキーマ/マイグレーション/既存データ) 影響なし DB/スキーマ変更なし
パフォーマンス(CPU/IO/レイテンシ) 影響なし ワークフロー設定変更のみ
環境設定・デプロイ手順 影響あり タグ運用手順が vX.Y.Z に統一
監視・運用(ログ/メトリクス/アラート) 影響軽微 エラーメッセージの期待表記更新

依存関係とコストへの影響(Dependencies / Cost Impact)

外部依存(ライブラリ/外部サービス/API)およびコスト(課金・パフォーマンス)への影響を下記のテーブルに記載します。必要なだけ行を追加します。

観点 対象(ライブラリ/サービス/API 等) 変更内容(追加/更新/削除/呼出増減 等) 影響(課金/性能/運用) 影響量(増減の見積/測定値) 根拠(計測/ログ/設定/差分)
依存 なし 変更なし なし 0 差分なし
コスト なし 変更なし なし 0 差分なし

マイグレーション/ロールアウト(必要な場合のみ)

項目 記録
マイグレーション有無(DB/設定/データ) なし
手順(誰が/いつ/どこで/何を) リリース時に vX.Y.Z タグを push
ロールバック方針(戻し方の事実) ワークフロー/ドキュメントの差分を revert
互換期間/段階移行(フラグ/二重書き/旧API維持 等) 旧タグは保持・新規運用から除外

スコープ境界(触っていい/ダメ、非目標)

区分 範囲(パス/モジュール/設定など) 根拠
触ってよい範囲 .github/workflows, docs, src/test plan に記載の実装対象
触ってはいけない範囲 src 本体機能, 既存タグ削除, Release UI Issue の禁止事項
非目標(このPRではやらないこと) 旧タグ削除/Release UI 操作/Secrets変更 仕様外

推論せず“質問に落とす”ための質問票(ADR/確認事項)

判断が必要な箇所を下表にまとめます(不明は空欄/質問として残す)。

論点 / 質問 回答(事実のみ) 根拠(Issue/PR/Commit/ファイル等)
このPRで「決定」扱いにしたいことは何か?(なければ空欄) なし -
仕様上の未確定点(質問として列挙) npm version が自動タグ生成する設定有無は運用側で確認が必要 docs/npm-publish.md
追加の観測が必要な点(ログ/メトリクス等) 実際の tag push 時の GitHub Actions 発火確認 受入条件
レビュー観点で迷う点(代替案がある等) なし -

セキュリティ自己確認(Security Self-Check)

チェック式ではなく、結論と根拠を記録します。

観点 結論 根拠(差分/ログ/設定/スクショ等)
Secrets(鍵/トークン/パスワード混入) なし 追加の Secrets 変更なし
入力検証(外部入力のバリデーション) あり tag 形式を正規表現で検証
認可(権限チェック/境界) 変更なし workflow permissions は維持
ログ(PII/秘密情報の出力) 問題なし エラーメッセージの期待表記のみ

実装と確認のログ(何を触って、何を確認したか)

項目 記録
触った主要箇所(パス/関数/クラス等) .github/workflows/npm-publish.yml, docs/npm-publish.md, src/test/npm-publish-workflow.test.ts
実装メモ(変更意図ではなく事実) tag トリガと検証文字列を vX.Y.Z に統一、旧タグ文言の更新、検証テスト追加
実行した確認(コマンド/手動操作/ログ等) npm test
既知の未確認点(あれば) GitHub Actions での実タグ push 検証は未実施

実行区分(AIが実行したこと/人間が追加で行うこと)

同一フォーマットで、必要なだけ行を追加します。

区分 タスク(何をする) 対象(どのサイト/システム) 実行場所(URL/画面/コマンド) 実行方法(どうやって) 入力(必要な情報) 出力(得られるもの/保存先) 証跡(ログ/URL/スクショ等)
AI ワークフロー更新 GitHub Actions .github/workflows/npm-publish.yml 編集 なし 差分 git diff
AI ドキュメント更新 docs docs/npm-publish.md 編集 なし 差分 git diff
AI テスト追加 src/test src/test/npm-publish-workflow.test.ts 追加 なし 差分 git diff
AI 既存テスト実行 ローカル npm test 実行 なし ログ npm test ログ
AI CodeQL 実行 ローカル codeql_checker 実行 なし 結果 tool 実行ログ
人間 タグ push で発火確認 GitHub Actions tag push 実行 vX.Y.Z ワークフロー実行 Actions 実行ログ
人間 旧タグで非発火確認 GitHub Actions tag push 実行 release_levelcaptech/vX.Y.Z 非発火 Actions 実行ログ

補足(Notes)

  • 旧タグは保持しつつ、新規運用から除外する方針を明記
  • npm version の自動タグ生成設定は運用側で確認が必要
  • Secrets/Release UI 変更は未実施

コードレビューフィードバック対応(Review Feedback Response)

このセクションは「追記」で管理します。

追記(今回分)

  • フィードバック(要約):タグトリガ検証の正規表現が過剰 対応(何を変えた):直接一致に変更 対象(ファイル/行/Commit):src/test/npm-publish-workflow.test.ts / 5773fa4 状態(対応済/保留/却下):対応済
  • フィードバック(要約):テスト名の曖昧さ 対応(何を変えた):名称を明確化 対象(ファイル/行/Commit):src/test/npm-publish-workflow.test.ts / 5773fa4 状態(対応済/保留/却下):対応済

既存ログ(前回まで)


Original prompt

This section details on the original issue you should resolve

<issue_title>[IMPLEMENT] リリースタグ命名戦略を vX.Y.Z に統一する</issue_title>
<issue_description>## 🎯 ゴール

確定済み plan に従い、リリースタグ命名規則を release_levelcaptech/vX.Y.Z から vX.Y.Z へ移行する。

  • 実装は plan の範囲内のみ
  • CI 品質ゲートをすべて通す
  • 受入条件をテストで担保する

📥 入力(確定plan)

plan原本に記載された以下を厳守する:

  • 旧タグ背景の整理
  • 新タグ命名規則 vMAJOR.MINOR.PATCH
  • SemVer準拠
  • v プレフィックス必須
  • 既存タグは削除しない
  • CIトリガを v*.*.* 前提へ更新

🚫 変更許容範囲

  • plan からの逸脱は禁止
  • 仕様変更が必要な場合は DESIGN に差し戻す

🛠 実装対象

1. CI ワークフロー更新

対象:

  • .github/workflows/npm-publish.yml

変更内容:

  • tag トリガを v*.*.* に更新
  • release_levelcaptech/ 前提ロジックの除去
  • ${GITHUB_REF#refs/tags/v} 前提へ変更
  • エラーメッセージを Expected vX.Y.Z に統一

旧タグでは発火しないことを明示的に確認する。


2. ドキュメント更新

対象:

  • docs/npm-publish.md
  • README(タグ運用に言及がある場合)

更新内容:

  • 新運用手順へ統一
npm version 1.2.3
git push
git tag v1.2.3
git push origin v1.2.3
  • 旧タグは保持するが新規利用しないことを明記

🧪 受入条件(DESIGN再掲)

  • Given: v1.2.3 を push
    When: CI 実行
    Then: npm-publish が発火する

  • Given: release_levelcaptech/v1.2.3 を push
    When: CI 実行
    Then: 新ワークフローは発火しない

  • Given: v1.21.2.3
    When: tag push
    Then: CI で拒否される

  • Given: npm version 実行
    Then: tag 命名と矛盾しない


📚 必読

  • .github/copilot-instructions.md
  • .github/instructions/**/*.instructions.md
  • .github/copilot/30-coding-standards.md
  • .github/copilot/50-security.md
  • .github/copilot/60-ci-quality-gates.md

✅ Done(必須)

  • format / lint / typecheck / test / security すべて緑
  • 受入条件をテストで担保
  • ドキュメント最小差分更新
  • 旧タグでは新CIが発火しないことを確認

⚠️ 注意事項

  • 既存タグは削除しない
  • GitHub Release UI 操作は行わない
  • Secrets は変更しない
  • 新旧タグ混在時の誤発火を防ぐ

🚀 完了後

CI 緑を確認後マージ。
追加仕様が必要な場合は DESIGN Issue へ差し戻す。</issue_description>

<agent_instructions>.github/copilot/plans/tag-strategy-implementation-plan.md
の実装計画に従ってください。</agent_instructions>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 3 commits February 20, 2026 04:30
実装前に現状のテスト/ビルドを確認し、
タグ命名変更に必要な作業計画を共有する。

Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com>
CI のタグ検証と運用ドキュメントを更新し、
新タグ運用をテストで確認できるようにする。

Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com>
タグトリガの検証内容を明確化し、
レビュー指摘に合わせて名称と表現を整理する。

Co-authored-by: LevelCapTech <99854263+LevelCapTech@users.noreply.github.com>
Copilot AI changed the title [WIP] Implement unified release tag naming strategy to vX.Y.Z fix: リリースタグ命名を vX.Y.Z に統一 Feb 20, 2026
Copilot AI requested a review from LevelCapTech February 20, 2026 04:42
@LevelCapTech LevelCapTech marked this pull request as ready for review February 20, 2026 09:21
@LevelCapTech LevelCapTech requested a review from Copilot February 20, 2026 09:21
@LevelCapTech LevelCapTech added the 💡 改善or提案 プロジェクトの改善点や提案、一般的なフィードバックに使用します。 label Feb 20, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a migration of release tag naming conventions from release_levelcaptech/vX.Y.Z to vX.Y.Z, following the implementation plan defined in .github/copilot/plans/tag-strategy-implementation-plan.md. The change unifies the tagging strategy with npm's default behavior and SemVer standards, while preserving backward compatibility by keeping existing old tags but excluding them from new workflow triggers.

Changes:

  • Updated npm-publish workflow to trigger on v*.*.* tags instead of release_levelcaptech/v*.*.*
  • Modified tag validation logic and error messages to expect vX.Y.Z format
  • Updated documentation to reflect new tagging procedures and deprecate old prefix usage
  • Added comprehensive tests to verify workflow tag strategy compliance

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
.github/workflows/npm-publish.yml Updated tag trigger pattern, version extraction logic, and validation error messages to use vX.Y.Z format
docs/npm-publish.md Updated release procedures, added migration notes explaining old tag deprecation and new format requirements
src/test/npm-publish-workflow.test.ts Added new test suite to validate workflow tag trigger, verify old prefix exclusion, and check version validation logic

@LevelCapTech LevelCapTech merged commit 35a028e into main Feb 20, 2026
5 checks passed
@LevelCapTech LevelCapTech deleted the copilot/implement-release-tag-naming-strategy branch February 20, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💡 改善or提案 プロジェクトの改善点や提案、一般的なフィードバックに使用します。

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[IMPLEMENT] リリースタグ命名戦略を vX.Y.Z に統一する

2 participants