diff --git a/.codex/skills/symphony-ticket/SKILL.md b/.codex/skills/symphony-ticket/SKILL.md new file mode 100644 index 00000000000..cff83564968 --- /dev/null +++ b/.codex/skills/symphony-ticket/SKILL.md @@ -0,0 +1,58 @@ +--- +name: symphony-ticket +description: Symphonyに渡すLinearチケットを作成・更新・確認するときに使う。 +--- + +# Symphony Ticket + +Repositoryラベルで実行先を選ぶSymphony向けの記票要件。 + +## 必須条件 + +- **対象プロジェクト**:対象のSymphonyが監視するLinearプロジェクトに登録する。 + この環境では **Projectを `Personal Symphony` に指定する**。変更対象のリポジトリが + 異なっても同じProjectを使う。別環境では監視先の設定に合わせる。 + Team・プロジェクトID・slugは利用環境から特定する。 +- **Repositoryラベル**:有効な `Repository` グループの子ラベルを**1個だけ**付ける。 + 親・子とも未アーカイブで、子ラベルが実行ホストに登録済みの対象リポジトリに + 対応していること。本文のURLやラベルのdescriptionでは代替できない。 + 複数リポジトリの変更はチケットを分け、開始済みチケットの実行先は付け替えない。 +- **実行条件**:`WORKFLOW.md` と環境変数から実行環境で有効な条件を確認する。 + 対象状態に加え、追加の必須ラベル・担当者条件は設定されている場合だけ満たす。 + 担当者条件がなければ割当は不要。 +- **依存関係**:先行作業がある場合はLinearの `blockedBy` で指定する。 + 本文のリンクや親子関係だけでは実行順の指定にならない。 + 標準Linearクライアントの依存チェックは `Todo` のみ。未完了・状態不明のblockerが + ある場合は、`Todo` が実行対象ならそこへ投入する。それ以外は全blockerが設定上の + 終端状態になるまで実行対象外に保つ。 + +## 本文に含める事項 + +会話履歴なしで着手・完了判定できるよう、次を記載する。書式は問わない。 + +- 目的と期待する変更。バグなら再現条件・観測した挙動。 +- 対象リポジトリ・変更範囲・制約。Repositoryラベルの対象と一致させる。 +- 観測可能な受け入れ条件と、必要な検証方法・期待結果。 +- 先行Issue・参照資料・必要なアクセスがあれば、その情報。秘密値は含めない。 + +`Validation` / `Test Plan` / `Testing` に記載した内容は実行時の必須条件になる。 +対象リポジトリの手順に沿った、実行可能な検証を指定する。 + +## 保存と実行投入 + +新規作成・更新は、未着手Issueの着手前保留状態(この運用では `Backlog`)に限る。 +別環境では同用途の実行対象外・非終端状態を使う。`Human Review` などレビュー・承認段階は +保留先にしない。既存Issueがこの対象外または判定不能なら内容・状態を変更せず、 +実行側の運用手順に引き渡す。レビュー段階の要件変更は再作業の手順で扱う。 +作成の成否が不明な場合は再作成せず、既存Issueを特定できるまで実行投入を保留する。 + +保存後にIssueを再取得し、登録先・状態・全ラベル・本文・依存関係を上記要件と照合する。 +担当者条件がある場合だけ、保存後の担当者IDを実行環境が解決した担当者IDと照合する。 +`me` はSymphonyの認証主体を指し、記票ツールの利用者とは限らない。 +ラベルの親グループやページ分割された結果も確認し、不足を推測で補わない。 +不一致は修正して再取得し、未確認事項は明示する。 +準備したIssueは全項目の確認後、実行投入を依頼されている場合だけ、上記の依存条件を +満たす実行開始用の対象状態へ最後に移して再取得する。記票のみなら実行対象外に保つ。 +初回投入先はこの運用では `Todo`、別環境ではその初回着手用の状態を使う。 +`Merging`・`Rework` など承認・再作業用の状態には新規投入しない。 +IssueのURLと確認結果を報告する。実行条件を満たしたことと、実行開始は区別する。