@shinaps/skills 0.28.0 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/package.json +1 -1
- package/plugins/shinaps-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/shinaps-claude/references/linear/codex-task.md +14 -2
- package/plugins/shinaps-claude/references/linear/configuration.md +45 -11
- package/plugins/shinaps-claude/references/linear/execution.md +2 -0
- package/plugins/shinaps-claude/references/linear/workflow.md +18 -16
- package/plugins/shinaps-claude/skills/commit/SKILL.md +34 -19
- package/plugins/shinaps-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/shinaps-codex/references/linear/codex-task.md +14 -2
- package/plugins/shinaps-codex/references/linear/configuration.md +45 -11
- package/plugins/shinaps-codex/references/linear/execution.md +2 -0
- package/plugins/shinaps-codex/references/linear/workflow.md +18 -16
- package/plugins/shinaps-codex/skills/commit/SKILL.md +34 -19
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ sharedで採用する `instructions.md` は共有YAMLの `references.specificati
|
|
|
25
25
|
| `refine` | Shinaps AIのruleと実ファイルを照合する |
|
|
26
26
|
| `extract-rules` | PRレビューからruleを抽出する |
|
|
27
27
|
| `simplify` | 目的から見直して不要な構造や手順を削る |
|
|
28
|
-
| `commit` |
|
|
28
|
+
| `commit` | 進め方(通常・自律)を各単位の実効方針か確認で決め、検証できる単位でコミットする |
|
|
29
29
|
| `create-pr` | リポジトリの規約に合わせてPRを作成する |
|
|
30
30
|
| `release` | 公開条件を確定し、対象バージョンの利用可能性を確認する |
|
|
31
31
|
| `linear-plan` | 相談・必要なspec/explore・Issue作成と整理・プロジェクト設定を行い、実装前で止める |
|
|
@@ -33,7 +33,11 @@ sharedで採用する `instructions.md` は共有YAMLの `references.specificati
|
|
|
33
33
|
|
|
34
34
|
コミット・PR・リリースは、利用者の依頼またはLinear進行で合意済みの継続許可に従う。[共通設定](plugins/shinaps-claude/references/linear/configuration.md)・[担当と工程](plugins/shinaps-claude/references/linear/workflow.md)・[終了と待機](plugins/shinaps-claude/references/linear/execution.md)を参照し、必要な前工程が揃えば再確認せずに進む。単独スキル利用にはLinear進行や新しいゴールを必須にしない。`autonomous-commit-review` の役割は `commit` に統合した。個人用の別AI呼び出し・ブラウザ管理・ゴール管理・動画制作はこのpluginに含めない。
|
|
35
35
|
|
|
36
|
-
`linear-execute` は初版では利用者本人の環境向けで、Codexが進行とAgent QAを担当する。運用項目は明示必須で、既存設定の `config_storage`
|
|
36
|
+
`linear-execute` は初版では利用者本人の環境向けで、Codexが進行とAgent QAを担当する。運用項目は明示必須で、既存設定の `config_storage`・`path_policy_overrides` 欠落は共通設定の説明に従い、それ以外は未記載を既定値で補わない。実装の担当は作業先の `.shinaps/linear.yaml` の `implementation_skill` で選ぶ。`dev-claude`・`dev-claude-ultra` を選ぶと、ClaudeがAI Terminal Bridge経由の依頼で実装する。`dev-codex`・`dev-codex-ultra` を選ぶと、会話側はゴール・進行・Agent QAを担当し、Issueごとの別Codexタスクが実装・QA指摘の修正・許可されたコミットを行う。タスク作成・連絡には `codex_task` とツールが要求する明示依頼が必要。どちらでも既存の許可は増えない。Bridge本体は同梱せず、導入済みのMCPとWebStormプラグインを使う。`SKILL.md` は担当ごとに両版で書き分け、共通の手順と書式は `references/linear/` に置く。`references/linear/` はClaude版を編集元としてCodex版へ同じ内容を複製し、テストで一致を確認する。
|
|
37
|
+
|
|
38
|
+
`path_policy_overrides` で、合意したパスの範囲に限り人レビュー・AIコミット許可・コミットモードを個別に上書きできる。たとえば `paths: ["docs/**", "README.md"]` と `human_code_review: skip` を指定すると、予定コミットの全変更がその範囲に収まる場合だけ人レビューを省く。同じコミットに対象外が混ざれば、そのコミット全体を通常方針とし、改名・移動は旧新両パスを判定する。同じ依頼でも自然な責務分割で独立した範囲内コミットには例外を適用できる。stage・push・公開の許可や必要なQAは変わらない。設定例と競合・照合の手順は[パス別の方針](plugins/shinaps-claude/references/linear/configuration.md#パス別の方針)を参照する。
|
|
39
|
+
|
|
40
|
+
0.29.0では旧 `document_only_changes: ai_commit` を廃止した。利用先では依存工程を止め、具体的なパス例外への移行または例外廃止を合意する。説明だけの変更の許可とは同値でないため自動変換しない。旧 `none` は例外なしとして維持でき、新規設定は `path_policy_overrides: []` にする。
|
|
37
41
|
|
|
38
42
|
`permissions` の `development_operations` を明示すると、既存アカウントのログイン・環境準備・依存導入・起動・テスト・QAを継続的に許可できる。コミット・公開・破壊的操作の許可や人レビューは別に扱う。
|
|
39
43
|
|
package/package.json
CHANGED
|
@@ -15,12 +15,24 @@ Issueリンク・範囲・受入条件・仕様や調査成果物、指定devス
|
|
|
15
15
|
|
|
16
16
|
実装担当には次を明記する。
|
|
17
17
|
|
|
18
|
-
> あなたはこのIssueの実装担当。指定されたdevスキルで実装・検証し、結果をこのタスクの最終回答へ返す。linear-executeを再起動せず、別の実装タスクや開発ゴールを作らない。dev内部のサブエージェントはdev_delegationの許可範囲で使う。仕様・権限の未決事項は質問として返し、人へ直接着手確認をしない。実装完了だけでコミット・push・公開・IssueのDone更新をしない。コミットは会話側からQA
|
|
18
|
+
> あなたはこのIssueの実装担当。指定されたdevスキルで実装・検証し、結果をこのタスクの最終回答へ返す。linear-executeを再起動せず、別の実装タスクや開発ゴールを作らない。dev内部のサブエージェントはdev_delegationの許可範囲で使う。仕様・権限の未決事項は質問として返し、人へ直接着手確認をしない。実装完了だけでコミット・push・公開・IssueのDone更新をしない。コミットは会話側からQA結果を伴う依頼を受け、必要な許可を確認して行う。単位案・判定・依頼・照合・報告は [共通手順](workflow.md#単位案からコミット完了まで)に従う。他の人・AIの差分を戻さない。
|
|
19
19
|
|
|
20
20
|
## 待機・QA・修正
|
|
21
21
|
|
|
22
|
-
会話側は同じタスクを `wait_threads` / `read_thread` で観測し、完了・質問・失敗と実装結果を確認する。待機中のゴールと観測結果が得られない場合の扱いは [execution.md](execution.md) の「継続と待機」「ゴール機能」に従う。送信成功やタスクの終了だけで実装・QAの合格と扱わない。完了報告には変更範囲、検証結果、dev
|
|
22
|
+
会話側は同じタスクを `wait_threads` / `read_thread` で観測し、完了・質問・失敗と実装結果を確認する。待機中のゴールと観測結果が得られない場合の扱いは [execution.md](execution.md) の「継続と待機」「ゴール機能」に従う。送信成功やタスクの終了だけで実装・QAの合格と扱わない。完了報告には変更範囲、検証結果、dev内レビュー結果、起動方法、未解決事項を含める。
|
|
23
23
|
|
|
24
24
|
実装中は会話側で同じファイルを編集しない。Agent QAの開始前に実装タスクの編集が止まったことを確認し、差分と対象版を固定してQAする。不具合は再現手順・期待と実際・証拠とともに同じタスクへ返し、修正終了後に再検証する。実装担当が返したテスト結果を独立したAgent QAの代わりにしない。
|
|
25
25
|
|
|
26
26
|
質問は会話側が既存の合意で答え、仕様・権限を変える判断だけ人へ確認する。実装タスクの失敗・利用不能時は未完了として報告し、独断で別タスクを重ねない。利用者の停止・範囲変更は実装タスクにも伝え、停止を確認する。次のIssueへは今回の実行範囲と終了条件に従って進む。
|
|
27
|
+
|
|
28
|
+
## 完了後の整理
|
|
29
|
+
|
|
30
|
+
会話側のCodexが、合意した終了条件への到達、成果・検証結果・未実施事項の記録、その実装タスクで続ける作業がないことを確認してから、専用の実装タスクだけをアーカイブする。実装担当の完了報告や、IssueのDone・ゴールの完了だけでは、この確認の代わりにならない。修正・QA・コミットなどの続きがあるタスク、停止中・ブロッカー待ちのタスク、人との窓口や他の作業と共有しているタスクは保持する。
|
|
31
|
+
|
|
32
|
+
アーカイブには、整理まで含む今回の利用者の明示合意、または対象・条件を確認できる記録済みの継続合意が必要。`codex_task` の許可だけからは推測せず、ツール固有の明示依頼条件も満たす。合意がない場合はタスクを保持し、整理が未実施であることを報告する。
|
|
33
|
+
|
|
34
|
+
1. ローカル作業記録の確定済み `threadId`・`hostId` とIssue・checkout・branchの対応を確認する。対象を確定できなければ操作しない。
|
|
35
|
+
2. `set_thread_archived` に、その `threadId`・`hostId` と `archived: true` を明示して実行する。IDを省略して呼出元を対象にしない。
|
|
36
|
+
3. 結果を確認し、対象と成否を作業記録に残す。結果が不明なら `list_threads`・`list_archived_threads`・`read_thread` など利用可能な読取手段で同じ対象の状態を確認する。一覧に見当たらないだけで成功と扱わず、状態を確定できない場合は重複操作せず未整理として報告する。ツールが利用不能・失敗の場合も、未整理の対象と理由を報告する。
|
|
37
|
+
|
|
38
|
+
この整理はブランチやworktreeの削除を含まない。タスク整理の成否は、終了地点への到達・IssueのDone・ゴールの状態と分けて記録する。
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
|
|
48
48
|
## 項目
|
|
49
49
|
|
|
50
|
-
以下の項目は明示必須(既存設定の `config_storage`
|
|
50
|
+
以下の項目は明示必須(既存設定の `config_storage` と `path_policy_overrides` の欠落はそれぞれの説明に従う)。省略・不正値を既定値で補わず、依存する工程を止めて設定を確認する。`null`・`none`・空の一覧は、以下で認めた箇所だけで「使用しない」を表す。
|
|
51
51
|
|
|
52
52
|
| キー | 内容 |
|
|
53
53
|
| --- | --- |
|
|
@@ -64,16 +64,50 @@
|
|
|
64
64
|
| `implementation_skill` | Issueの実装・修正に使うdevの入口。`dev-claude`・`dev-claude-ultra`(CodexがBridgeでClaudeへ依頼し、Claudeがその入口で実行する)、または `dev-codex`・`dev-codex-ultra`(Issueごとの別Codexタスクがその入口を実行し、会話側は進行・Agent QAを担当する) |
|
|
65
65
|
| `commit_mode` | `shinaps:commit` でコミットするときの進め方。`normal`(単位ごとに承認を得る)または `autonomous`(個別の承認なしで単位ごとに検証してコミットする) |
|
|
66
66
|
| `human_code_review` | 人のコードレビューの要否。`required`(人がレビューする)または `skip`(人のレビューを行わない) |
|
|
67
|
-
| `
|
|
67
|
+
| `path_policy_overrides` | パス別に人レビュー・AIコミット許可・コミットの進め方を上書きするルールの一覧。例外なしは `[]`。既存設定で欠落していれば例外なし(下の「パス別の方針」) |
|
|
68
68
|
|
|
69
|
-
- `commit_mode` は進め方の設定であり、コミットの許可ではない。コミットは利用者の明示的な依頼、`permissions` の `commit
|
|
70
|
-
- `implementation_skill` が決めるのは、実装・修正の担当と実行方式だけである。`permissions`・`stop_after
|
|
71
|
-
- `human_code_review: skip` は人のレビューの工程だけを省く。dev
|
|
72
|
-
- `document_only_changes: ai_commit` は、文書だけの変更について、`human_code_review: required` でも人のレビューを省き、`commit` の許可がなくてもAIのコミットを認める。`stage` の許可は通常のコミットと同じく必要で、ほかのキーの意味と許可は変えず、push以降の操作、利用中のツールの権限、利用者の停止・撤回(「設定の読み方」)を上書きしない。
|
|
73
|
-
- 対象差分の全体(追加・削除・改名・移動・ファイルの実行権限の変更を含む、そのコミットに入るすべての変更)が、説明だけを変え、人またはAIを含む実行主体の動作・権限・必須の工程を変える内容を一つも含まないとき、文書だけの変更とする。動作・権限・必須の工程を変える内容には、実行コード、テスト、スクリプト、ビルド・CI・配備・フック・依存・環境・Linterの設定、生成物とその元、データやmigration、AIツールの権限やスキルの入口に加え、文書の中で実行主体の権限・担当・必須の工程や検証・コミットとレビューの条件を定める記述を含む。判定は各ファイルの役割と変更内容で行い、拡張子・ディレクトリ名・ファイル名のパターンだけを根拠にしない。判定できない差分は文書だけの変更として扱わない。例外を適用するために対象差分を分割しない。
|
|
69
|
+
- `commit_mode` は進め方の設定であり、コミットの許可ではない。コミットは利用者の明示的な依頼、`permissions` の `commit`(条件は下の「許可」)、または適用されたパス別の `ai_commit: allow` に従う。`commit_mode` があるだけではコミット・pushを始めず、人のレビュー済みと推測しない。その場の明示的な指定は設定に優先する。`normal` は人が自分でgit操作をする工程(`code_review`)とは別のもの。
|
|
70
|
+
- `implementation_skill` が決めるのは、実装・修正の担当と実行方式だけである。`permissions`・`stop_after`・人レビュー・コミットの方針と、`dev_delegation`・worktreeの作成・別セッションの作成の許可を変えない。その場の明示的な指定は設定に優先する。既存の設定にキーがなくても、自動で書き加えない。担当と工程の対応は [workflow.md](workflow.md) の「担当と窓口」にある。
|
|
71
|
+
- `human_code_review: skip` は人のレビューの工程だけを省く。devの入口内のレビュー、検証、Agent QA、必要なHuman QAは省かない。省略は、人のレビュー済みとして記録しない。人レビュー・AIコミット許可・`stage`・`commit_mode` は互いに独立しており、一つから他を推測しない。
|
|
74
72
|
- 工程キーは [workflow.md](workflow.md) の工程表と同じ。`statuses` の値はチームに実在する正確な名前にする。操作時はLinearから取得した状態のIDを使う。対応が曖昧・欠落・実物と不一致なら、その対応に依存する更新を止める。ステータスを自動で新設しない。
|
|
75
73
|
- `team_settings: manage_on_setup` の場合も、通常実行ではチーム設定を変更しない。
|
|
76
74
|
|
|
75
|
+
## パス別の方針
|
|
76
|
+
|
|
77
|
+
`path_policy_overrides` は、各予定コミットに入る全変更を対象に方針を適用する。Linear進行でも単独の `commit` でも同じ規則を使う。新規設定は `path_policy_overrides: []` とし、具体的なパスと上書き項目を利用者と合意した場合だけルールを追加する。
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
path_policy_overrides:
|
|
81
|
+
- paths: ["docs/**", "README.md"]
|
|
82
|
+
human_code_review: skip
|
|
83
|
+
ai_commit: allow
|
|
84
|
+
commit_mode: autonomous
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- `paths` は空でないパターン一覧を必須とする。`human_code_review`(`required` / `skip`)、`ai_commit`(`allow` / `deny`)、`commit_mode`(`normal` / `autonomous`)は少なくとも一つ指定し、省略項目は通常設定を継承する。不正な値や構文は設定不備として依存工程を止める。
|
|
88
|
+
- `ai_commit` の継承元は通常のコミット許可。`allow` はそのコミットのAIによる実行を認め、`deny` はそのコミットに対する継続的なコミット許可を取り消す。今回の利用者の明示指示を優先する。どちらも `stage` の許可を兼ねない。push・公開・終了地点・ツール権限や必要なQAも変更しない。
|
|
89
|
+
- パス設定への合意は対象と工程の許可であり、変更内容に含まれる未合意仕様や権限拡張への承認ではない。内容や拡張子から例外許可を推定しない。
|
|
90
|
+
|
|
91
|
+
### パターンとコミット全体の照合
|
|
92
|
+
|
|
93
|
+
パスは作業対象リポジトリのルート相対、`/` 区切りで、大小文字を区別する。完全一致、同じ階層内の0文字以上に一致する `*`、独立したパス要素として0階層以上に一致する `**` だけを扱う(例: `docs/*` は直下、`docs/**` は配下全体、`**/README.md` はルートを含む各階層)。隠しファイルも通常の名前として扱う。リンク先を解決したり、現在存在するファイルへパターンを展開したりしない。絶対パス、`.` / `..` 要素、否定・文字クラス・波括弧展開などの未対応構文は設定不備として止める。
|
|
94
|
+
|
|
95
|
+
各予定コミットの全変更に現れる旧・新パスが、一つのルールのパターン一覧で覆われる場合だけ、そのルールをそのコミット全体へ適用できる。追加は新パス、削除は旧パス、改名・移動は両方を含め、modeだけの変更も対象にする。新パスだけの一覧や現在残っているファイルだけでは判定しない。
|
|
96
|
+
|
|
97
|
+
- コミット全体に適用できるルールがなければ、そのコミット全体を通常方針とする。複数ルールをファイル別・項目別に合成しない。
|
|
98
|
+
- コミット全体に適用できるルールが複数ある場合、通常設定を継承した後の3項目がすべて同じならその方針を採用し、適用した全ルールを記録する。一つでも結果が異なれば依存工程を止めて競合の解消を求める。並び順やパターンの詳細度では優先しない。
|
|
99
|
+
- モードによらず自然な責務単位を先に決め、その予定コミットごとに判定する。同じ依頼に別の変更があっても、独立した範囲内コミットには例外を適用できる。例外取得だけを目的とした恣意的な分割はしない。依頼全体は網羅性と最終照合に使い、方針を固定する単位にはしない。
|
|
100
|
+
|
|
101
|
+
### 判定記録と変更時の扱い
|
|
102
|
+
|
|
103
|
+
各予定単位について、設定の正本と内容、適用した全ルール(または適用なしの理由)、単位の比較元と全差分、継承後の実効3項目、今回の明示指示、`stage` の許可、検証・レビューの結果を記録する。差分の同一性はパスだけでなく内容・mode等も含めて確認する。Linear進行での担当間の引き渡しは [workflow.md](workflow.md)、コミット前後の単位照合と完了時の全体照合は [commit](../../skills/commit/SKILL.md) に従う。
|
|
104
|
+
|
|
105
|
+
予定単位の内容・分割・統合を変更したら、変更した単位を再判定して必要なレビュー・許可確認・検証へ戻す。設定変更時も影響する未実行単位を再判定する。以前の判定や別単位の方針は流用しない。実コミットが予定と異なれば停止し、履歴を無断で書き換えない。
|
|
106
|
+
|
|
107
|
+
### 旧設定の移行
|
|
108
|
+
|
|
109
|
+
`document_only_changes: none` は例外なしとして読めるため、自動変更や再合意は不要。旧 `document_only_changes: ai_commit` は廃止し、新設定と共存していても依存工程を止める。具体的なパスと上書き項目への移行、または例外廃止を利用者と合意してから旧キーを除く。説明だけの変更の許可とパスの許可は同値ではないため、自動変換・二重運用をしない。既存プロジェクトへ例外許可を自動追加しない。
|
|
110
|
+
|
|
77
111
|
## 終了地点
|
|
78
112
|
|
|
79
113
|
初期設定ではこの一覧を示して選んでもらう。
|
|
@@ -93,10 +127,10 @@
|
|
|
93
127
|
| --- | --- |
|
|
94
128
|
| `issue_update` | 対象のteam・projectの中で、利用者が任せたIssue・Cycleの範囲に対する運用上の更新(本文・コメント・状態・依存・Linearへの添付、整理で必要になったIssueの作成・分割)と、利用者から任された目的の作業を着手前にIssueへ紐づけるための作成([issue.md](issue.md) の「着手前に作業をIssueへ紐づける」)。チーム設定の変更、未合意の範囲・期限の変更、Cycle外への進行、Issueの削除、外部への送信を含めない |
|
|
95
129
|
| `development_operations` | 任された対象の開発に必要な、既存アカウントへの通常のログイン、ローカル環境準備、プロジェクトの依存導入、開発サーバー・Simulatorの起動停止、ビルド・テスト・QA操作を継続的に許可する。下の範囲に従う |
|
|
96
|
-
| `codex_task` | 対象IssueごとのCodex
|
|
130
|
+
| `codex_task` | 対象IssueごとのCodex実装タスクの新規作成・状態確認・実装や修正や許可済みコミットの依頼。アーカイブ、worktree作成、操作許可の追加、タスク側でのゴールや実装タスクの再作成は含めない。ツールの明示依頼要件も満たす。アーカイブの合意と手順は [完了後の整理](codex-task.md#完了後の整理) に従う |
|
|
97
131
|
| `bridge_request` | BridgeによるCodexからClaudeへの実装・修正の依頼と、ClaudeからCodexへの開発進行の引き渡し |
|
|
98
132
|
| `stage` | レビュー・コミットの対象差分だけをステージする |
|
|
99
|
-
| `commit` | 対象Issueの差分を、Local Agent QAの合格と `human_code_review` に従った工程の後に、`shinaps:commit` でローカルにコミットする。AIのコミットには `stage` の許可も併せて必要。push・PR
|
|
133
|
+
| `commit` | 対象Issueの差分を、Local Agent QAの合格と `human_code_review` に従った工程の後に、`shinaps:commit` でローカルにコミットする。AIのコミットには `stage` の許可も併せて必要。push・PR・履歴の書き換え、人のレビューの省略を含めない。パス別の `ai_commit` を含む実効方針に従う(上の「パス別の方針」) |
|
|
100
134
|
| `push` | 対象Issueの作業ブランチの通常のpush |
|
|
101
135
|
| `pr_create` | 対象IssueのPRの作成と更新 |
|
|
102
136
|
| `merge` | 必要なQA・承認が揃った対象PRのマージと、元のブランチへ戻る操作 |
|
|
@@ -153,7 +187,7 @@ stop_after: pre_push_qa
|
|
|
153
187
|
implementation_skill: dev-claude-ultra # CodexがBridgeでClaudeへ依頼する。Codexが実装する場合は dev-codex-ultra など
|
|
154
188
|
human_code_review: required
|
|
155
189
|
commit_mode: autonomous
|
|
156
|
-
|
|
190
|
+
path_policy_overrides: []
|
|
157
191
|
cycle_report: null
|
|
158
192
|
permissions:
|
|
159
193
|
- development_operations # この範囲を利用者が合意した場合だけ記載
|
|
@@ -185,7 +219,7 @@ Claudeもこの手順で初期設定を行える。合意した設定の保存
|
|
|
185
219
|
1. アカウント、workspace、team、projectと、チームのステータス一覧・既存の運用をLinearから読む。
|
|
186
220
|
2. 作業先リポジトリのAGENTS.md・CLAUDE.md・README・CI・検証や配備のスクリプトを読み、`references` の候補を決める。
|
|
187
221
|
3. 設定案を一つ作る。チーム設定を管理できる場合だけ、FamilyStayを基にした工程の分離([workflow.md](workflow.md) の工程表に対応するステータス)を変更案として示す。利用者のプロジェクトらしいという推測で `manage_on_setup` にしない。
|
|
188
|
-
4. 既存の情報で決まらない運用上の決定(`config_storage`、`stop_after`、`permissions`(`commit` を含む)、`human_code_review`、`team_settings`、Cycle報告、`commit_mode`、`implementation_skill
|
|
222
|
+
4. 既存の情報で決まらない運用上の決定(`config_storage`、`stop_after`、`permissions`(`commit` を含む)、`human_code_review`、`team_settings`、Cycle報告、`commit_mode`、`implementation_skill`)だけを一問ずつ確認する。終了地点は上の一覧から選んでもらう。パス別の例外が必要な場合は、具体的な対象パターンと上書き項目、通常設定からの変更を示して合意する。例外を使わない新規設定には `path_policy_overrides: []` を記載する。旧設定の移行は上の手順に従う。
|
|
189
223
|
5. 合意した方式の正本へ、下の保存手順に従って保存する。sharedでは採用する補足の `references` と共有対象を照合し、別checkoutでも同じ条件を読めるようにする。正本と補足を読み直して確認する。
|
|
190
224
|
6. Linearのチーム設定の変更は、設定の保存とは別に扱う。対象チームと変更差分(追加・改名するステータスと順序)を示し、合意を得てから反映して読み戻す。反映後に `statuses` を実物に合わせて確定する。
|
|
191
225
|
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
- バックログでは最初のブロッカーで次のIssueへ進まず、到達点・未完了の対象ID・理由・必要な判断や準備・再開条件を報告して今回の実行を終了する。残Issueの状態をDoneにせず、ブロッカー自体を解決済みとは報告しない。
|
|
30
30
|
- Issue単体・Cycle全体では、ブロッカー報告だけで完了にしない。必要な判断や準備を求め、再開条件を記録する。
|
|
31
31
|
|
|
32
|
+
合意した終了地点に達して成果を記録した後、Codexの専用実装タスクは [完了後の整理](codex-task.md#完了後の整理) の条件に従って会話側が整理する。終了地点への到達・IssueのDone・ゴールの完了と、タスク整理の成否は分けて扱う。
|
|
33
|
+
|
|
32
34
|
## ゴール機能
|
|
33
35
|
|
|
34
36
|
実行開始の必須条件として、上の対象と終了条件を持つゴールが設定済みであることを確認する。ゴールの作成成功、または同じ対象の既存ゴールの状態をツールで確認してから実装・QA・公開の進行を始める。文章で目標を書くだけでは設定済みとしない。ツールが利用者の明示依頼を要求する場合、スキルの選択だけで迂回せず、既存の明示依頼を使い、なければ開始時に一度確認し、回答と設定成功を待つ。同じ対象のゴールは再利用し、別の未完了ゴールを上書きしない。予算は明示された場合だけ設定する。
|
|
@@ -42,7 +42,7 @@ Linear MCPで扱えない画面操作(添付、並べ替え、Cycleへの紐
|
|
|
42
42
|
| `ready` | Ready | 自分たちの作業を依存順に進めれば着手できる。開始時に、必要な前工程の成果を再確認する |
|
|
43
43
|
| `coding` | Coding | 実装担当が実装・自動検証・簡素化・セルフレビューを完了し、差分と結果を渡す |
|
|
44
44
|
| `local_agent_qa` | Local Agent QA | Codexが受入条件を検証する。不合格なら `coding` へ戻す |
|
|
45
|
-
| `code_review` | Code Review(人のレビューまたは省略の記録・コミット) | `human_code_review: required`
|
|
45
|
+
| `code_review` | Code Review(人のレビューまたは省略の記録・コミット) | 各予定単位の実効方針が `human_code_review: required` なら人がレビュー・修正し、`skip` なら依頼も待ちも作らず省略を記録する。Local Agent QAの合格後(`required` なら人のレビュー完了の確認後)、実効方針でAIコミットが許可され、`stage` の許可もあれば、会話側のCodexの依頼で実装担当がコミットする。許可がなければ人が行う。対象コミットと人の完了通知または省略の記録を照合する |
|
|
46
46
|
| `post_commit` | コミット後の検証・PR準備 | 設定に従って、push前の最終Agent QA、必須検証、許可されたpush・PR作成を行う |
|
|
47
47
|
| `staging_agent_qa` | Staging Agent QA | 配備されたPR候補版をCodexが検証する |
|
|
48
48
|
| `staging_human_qa` | Staging Human QA | そのPRで必要な人の確認。不要なら理由を記録して省略する |
|
|
@@ -53,27 +53,29 @@ Linear MCPで扱えない画面操作(添付、並べ替え、Cycleへの紐
|
|
|
53
53
|
|
|
54
54
|
- 工程名を使うことは、チーム設定を変更する許可ではない。専用のステータスがないQA工程は進行中の状態に対応づけ、工程・待ち理由・再開条件をコメントへ記録する。`done` と途中の工程を同じ完了状態に対応づけない。
|
|
55
55
|
- QAステータスへの移動とQAの合格を区別する。終了地点への到達とIssueのDoneを区別する。
|
|
56
|
+
- Codexの専用実装タスクの整理は、終了条件への到達と成果記録を確認した後、会話側が [完了後の整理](codex-task.md#完了後の整理) に従って行う。タスクのアーカイブを工程・Issue・ゴールの完了確認の代わりにしない。
|
|
56
57
|
- 工程を行うかどうかは、Issueの受入条件と終了地点で決める。Issueに適用されない工程は通らない(配備しない変更の環境配備・環境QA、Git変更がない作業のレビュー・コミット・PRなど)。省略した工程は理由を記録する。工程の省略を理由に、必要なQAや未達の受入条件を省かない。
|
|
57
58
|
- 終了地点の工程がそのIssueにない場合は、適用される最後の必要工程まで進めて止まる。そのとき必須受入条件をすべて満たしていればDoneにする。満たしていなければ、残る条件を記録してDoneにしない(push前QAで止める運用で、本番公開の受入条件が残るIssueなど)。
|
|
58
59
|
- 人がレビュー中に修正した場合は `code_review` を続ける。AIへ追加実装を依頼する場合は、範囲と受入条件をIssueで更新してから `coding` へ戻す。
|
|
59
60
|
- Human QAが新たに必要になった場合は、理由と具体的な残項目をIssueに記録して利用者に相談する。
|
|
60
|
-
- プロジェクトの規約や補足の記述だけでは、AI
|
|
61
|
-
- `human_code_review: skip
|
|
61
|
+
- プロジェクトの規約や補足の記述だけでは、AIコミットの許可として扱わない。[共通設定のパス別の方針](configuration.md#パス別の方針)に従って、通常設定・適用ルール・今回の明示指示から実効方針を決める。
|
|
62
|
+
- 実効方針が `human_code_review: skip` なら、Codexは `code_review` で対象単位を明示し、省略と実施した確認への参照をIssueへ記録する。人のレビュー済みとは記録しない。
|
|
62
63
|
|
|
63
64
|
```text
|
|
64
|
-
人のコードレビュー:
|
|
65
|
+
人のコードレビュー: <対象単位>は省略(根拠: <通常設定または適用したパス別ルール>、判定: <Local Agent QAの記録へのリンク>)
|
|
65
66
|
実施した確認: devの入口内のレビュー(使った場合。実装担当の完了報告 <コメントへのリンク>)、Local Agent QA(<記録へのリンク>)
|
|
66
|
-
コミット: <SHA
|
|
67
|
+
コミット: <SHAの一覧>(<実際の実施者と方法>)
|
|
67
68
|
```
|
|
68
69
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
### 単位案からコミット完了まで
|
|
71
|
+
|
|
72
|
+
以下はClaude・Codexの両実装方式に共通する。単位計画の作成・確認にはコミット許可を要求しない。
|
|
73
|
+
|
|
74
|
+
1. 実装担当は成果引き渡しに、モードによらず自然な責務で決めたコミット単位案と予定差分を含める。進行役のCodexはLocal Agent QAで対象を検証し、単位案が依頼全体を漏れなく覆い対象外変更を含まないことと、各単位の[判定記録](configuration.md#判定記録と変更時の扱い)を確認する。依頼の比較元と全体差分も最終照合用に記録する。
|
|
75
|
+
2. 人レビューを待つかAIコミットを依頼するかは、各単位の実効方針で決める。QA合格とその単位に必要な人レビュー・AIコミット・stageの許可が揃ったら、CodexはQA結果、単位の判定記録、人レビュー完了の証拠または省略根拠を添えて実装担当へ依頼する。担当は設定・予定差分と記録の一致、許可を確認し、不一致なら実行せず進行役へ返す。
|
|
76
|
+
3. 実装担当は [commit](../../skills/commit/SKILL.md) に従い、各単位のモードに応じた承認・隔離・検証・レビューを行う。同じ依頼内に通常・自律の単位が混在してよい。各コミット直前・作成後の実差分をその単位の予定差分と照合し、予定単位・SHA・照合結果・検証とレビュー結果を進行役へ返す。
|
|
77
|
+
4. 全単位完了後、Codexは各コミットの単位照合結果を実差分で独立確認したうえで、依頼の比較元からの全体差分が対象と一致し、対象の未コミット変更が残っていないことを照合する。最終差分だけでは途中で混入し後で相殺された対象外変更を検出できないため、単位照合を省かない。人レビューを省略した単位は、上の省略記録を完成させる。
|
|
78
|
+
5. 単位の組み替え・内容・設定の変更は[変更時の扱い](configuration.md#判定記録と変更時の扱い)に従って再判定し、必要なレビュー・許可確認・検証へ戻す。実コミットに不一致があれば次工程を止め、SHA・予定差分・実差分の違いを記録して人に確認する。履歴を無断で書き換えない。
|
|
77
79
|
|
|
78
80
|
## 待ち状態
|
|
79
81
|
|
|
@@ -92,12 +94,12 @@ AI Terminal Bridge(以下Bridge)の本体は同梱しない。導入済み
|
|
|
92
94
|
| 依頼・報告 | 含めるもの |
|
|
93
95
|
| --- | --- |
|
|
94
96
|
| 実装・修正の依頼(CodexからClaude) | Issueリンク、使う入口(`implementation_skill` の値、またはその場の明示的な指定)、範囲・受入条件、Gitの作業ディレクトリ・ブランチ・既存差分、許可範囲(`dev_delegation` の有無を含む)、返信先のCodexの `session_id`、関係する補足と参照先、下の定型文。修正依頼では、再現手順・期待と実際・対象差分・証拠の場所を加える |
|
|
95
|
-
| コミットの依頼(CodexからClaude) | Issue
|
|
96
|
-
| 完了の報告(ClaudeからCodex) | 対象差分、自動検証の結果、起動方法、確認観点、既知の制限、未解決の事項、dev
|
|
97
|
+
| コミットの依頼(CodexからClaude) | Issueリンク、Gitの作業ディレクトリ・ブランチ、返信先のCodexの `session_id` と、上の「単位案からコミット完了まで」で定める依頼情報 |
|
|
98
|
+
| 完了の報告(ClaudeからCodex) | 対象差分、自動検証の結果、起動方法、確認観点、既知の制限、未解決の事項、devの入口内のレビュー結果の要約と未解決の指摘。コミットした場合の返却情報は上の「単位案からコミット完了まで」に従う |
|
|
97
99
|
| 人のレビュー・コミット完了の報告(ClaudeからCodex) | 下の「人のレビュー・コミット完了の報告」の項目 |
|
|
98
100
|
| 開発進行の引き渡し(ClaudeからCodex) | 利用者からの依頼の内容、対象Issue・Cycle・バックログの範囲と順序、作業先リポジトリ、利用者が示した範囲と条件。Codexは作業先リポジトリの設定と照合して進行を始め、不足する判断はCodexから利用者へ確認する |
|
|
99
101
|
|
|
100
|
-
|
|
102
|
+
コミットの依頼では、単位の判定後もモードが決まらない場合の確認と、通常モードの単位ごとの承認を、Codexが人へ取り次ぐ。Codexは自分で選択・承認しない。
|
|
101
103
|
|
|
102
104
|
実装・修正の依頼には次の文を含める。
|
|
103
105
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commit
|
|
3
|
-
description:
|
|
3
|
+
description: 許可された差分を依存順のローカルコミットにし、各コミットを検証・レビューする。進め方(通常・自律)は各単位の実効方針か確認で決め、選択された範囲で実行する。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 作業記録の保存先
|
|
@@ -19,15 +19,6 @@ description: 許可された差分を依存順のローカルコミットにし
|
|
|
19
19
|
|
|
20
20
|
コミットは利用者の明示依頼、または[Linear共通設定](../../references/linear/configuration.md)の合意済みの許可に従う。Linear進行では[担当と工程](../../references/linear/workflow.md)の `code_review` に従い、Local Agent QA後に進行役から対象を指定した依頼を受けて行う。単独の依頼にはLinear進行や新しいゴールを必須にしない。
|
|
21
21
|
|
|
22
|
-
開始時に、今回の対象についてユーザー自身が進め方を選択済みか確認する。未選択なら、[Linear共通設定の読み方](../../references/linear/configuration.md#設定の読み方)で正本を決めた `.shinaps/linear.yaml` に `commit_mode` が `normal` または `autonomous` で書かれていれば、それをこのプロジェクトでユーザーが合意済みの選択として使う。linear-executeの開発進行では設定の不足・不正値を解消してから進む。linear-execute以外の単独のコミット依頼で設定による選択がない場合は、利用可能な入力ツール(なければ文章)で「今回のコミットはどちらで進めますか?」と一問だけ聞く。
|
|
23
|
-
|
|
24
|
-
- **通常(推奨)**: 人がレビューする単位ごとに、単位以外の変更をstashへ退避して差分・理由・検証結果・メッセージを提示し、承認を得てからコミットする。
|
|
25
|
-
- **自律**: エージェントが検証できる単位を選び(許可された一連の変更をまとめてよい)、検証・レビューして個別の承認を求めずコミットする。
|
|
26
|
-
|
|
27
|
-
質問した場合は、回答を受け取るまで作業を進めない。未回答や推奨選択肢の初期選択を承認と扱わない。「コミットして」「進めて」などの一般的な依頼や、エージェント自身の計画から自律モードを推測しない。今回の対象についてユーザーが通常・自律を明示済みならその選択を引き継ぎ、同じ確認を繰り返さない。過去の別対象での自律選択は引き継がない。例外は `commit_mode` として明示的に保存されたプロジェクト設定だけで、同じプロジェクトでの依頼の選択として使う。その場の明示的な指定は設定に優先する。
|
|
28
|
-
|
|
29
|
-
設定項目の独立性と併せて読む条件は[Linear共通設定](../../references/linear/configuration.md)に従う。`autonomous` は人のコードレビューの省略ではなく、`human_code_review: skip` は通常モードの単位ごとの承認の省略ではない。設定があるだけでコミット・pushを始めず、人のレビュー済みと推測しない。`normal` は上記の通常モード(単位ごとに承認を得る)で、人が自分でgit操作をする工程を指すものではない。
|
|
30
|
-
|
|
31
22
|
どちらのモードも、許可された対象以外の変更と秘密情報、push、PR、公開、既存履歴の書き換えを含まない。
|
|
32
23
|
|
|
33
24
|
Git操作と修正は現在のセッションが行う。独立レビューは利用可能かつ許可された場合に使う。指定のエージェントがなければ、その役割の観点でレビューする。独立レビューがプロジェクトの必須条件なのに実行できなければ、セルフレビューを同等と称さず止める。別worktreeの作成や別セッションへの委託を、このスキルから許可しない。
|
|
@@ -39,18 +30,42 @@ Git操作と修正は現在のセッションが行う。独立レビューは
|
|
|
39
30
|
- 検証コマンドはCI・スクリプト・規約から特定する。変更前からの失敗を今回の成功に混ぜない。
|
|
40
31
|
- 退避する場合は、ステージ済み差分・未ステージ差分・untrackedの控えをリポジトリ外の作業領域へ保存する。控えは復元が確認できるまで残す。
|
|
41
32
|
|
|
42
|
-
##
|
|
33
|
+
## 自然なコミット単位を決める
|
|
34
|
+
|
|
35
|
+
モードによらず、一つの目的を説明でき、先行単位と既存コードだけで成立する責務単位を決める。実装と必要なテスト・生成物を切り離さず、依頼全体を漏れなく覆い、対象外変更を含めない。行数やファイル階層だけで分けず、例外取得だけを目的とした恣意的な分割はしない。単位案と予定差分、依頼の比較元と全体差分を記録する。単位計画の作成・確認にコミット許可は必要ない。
|
|
36
|
+
|
|
37
|
+
## 各単位の方針とモードを決める
|
|
38
|
+
|
|
39
|
+
予定単位ごとに、[パス別の方針](../../references/linear/configuration.md#パス別の方針)でそのコミットの全変更を判定し、同資料の判定記録を残す。Linear進行から記録を受け取った場合は、設定とその単位の予定差分(内容・mode等を含む)の一致を確認して引き継ぐ。単独の依頼でも同じ判定を使い、Linear専用の工程は追加しない。設定が真にない単独依頼では、今回の明示許可とプロジェクト規約を通常方針とし、パス例外は適用しない。
|
|
40
|
+
|
|
41
|
+
実効方針のAIコミット許可、人レビューの条件、別途必要なstageの許可を確認する。旧設定の移行・競合・不備は共通設定に従って依存工程を止める。
|
|
42
|
+
|
|
43
|
+
単位の判定後に、その対象についてユーザー自身が進め方を選択済みか確認する。未選択なら、[Linear共通設定の読み方](../../references/linear/configuration.md#設定の読み方)で正本を決めた `.shinaps/linear.yaml` の通常設定と適用されたパス別ルールから実効 `commit_mode` が `normal` または `autonomous` と決まれば、それをこのプロジェクトでユーザーが合意済みの選択として使う。linear-executeの開発進行では設定の不足・不正値を解消してから進む。linear-execute以外の単独のコミット依頼で設定による選択がない場合は、利用可能な入力ツール(なければ文章)で対象単位を示して「このコミットはどちらで進めますか?」と一問だけ聞く。
|
|
44
|
+
|
|
45
|
+
- **通常(推奨)**: 人がレビューする単位ごとに、単位以外の変更をstashへ退避して差分・理由・検証結果・メッセージを提示し、承認を得てからコミットする。
|
|
46
|
+
- **自律**: その単位を検証・レビューして個別の承認を求めずコミットする。
|
|
47
|
+
|
|
48
|
+
質問した場合は、回答を受け取るまで作業を進めない。未回答や推奨選択肢の初期選択を承認と扱わない。「コミットして」「進めて」などの一般的な依頼や、エージェント自身の計画から自律モードを推測しない。今回の対象についてユーザーが通常・自律を明示済みならその選択を引き継ぎ、同じ確認を繰り返さない。別単位の選択は流用しない。同じ依頼内で通常・自律が混在してよい。合意して保存された通常設定またはパス別ルールの `commit_mode` は、その単位への適用結果を使う。その場の明示的な指定は設定に優先する。
|
|
49
|
+
|
|
50
|
+
設定項目の独立性と併せて読む条件は[Linear共通設定](../../references/linear/configuration.md)に従う。`autonomous` は人のコードレビューの省略ではなく、`human_code_review: skip` は通常モードの単位ごとの承認の省略ではない。設定があるだけでコミット・pushを始めず、人のレビュー済みと推測しない。`normal` は上記の通常モード(単位ごとに承認を得る)で、人が自分でgit操作をする工程を指すものではない。
|
|
51
|
+
|
|
52
|
+
モード決定後にレビュー可能性や依存関係のため単位を分割・統合する場合は、[変更時の扱い](../../references/linear/configuration.md#判定記録と変更時の扱い)に従って変更した単位を再判定し、必要なレビュー・許可確認・検証へ戻す。設定変更時も影響する未実行単位を再判定する。「自律だからまとめる」「通常だから分ける」を先に適用して単位決定と判定を循環させない。
|
|
53
|
+
|
|
54
|
+
## 単位ごとの検証・レビュー・コミット
|
|
55
|
+
|
|
56
|
+
以下を、その単位のモードで行う。
|
|
57
|
+
|
|
58
|
+
1. 単位案を短く示す。通常モードで複数の単位に分ける場合、許可された独立レビュアーがいれば、各単位の差分だけで人が妥当性を判断できるかを差分自体から確認させ、結論はメインが実際の差分で検証する。自律モードでは単位案の独立レビューを求めない(プロジェクトの必須条件にある場合は従う)。
|
|
59
|
+
2. コミットと検証の内容が単位だけで決まるようにする。通常モードでは、単位以外の未コミット変更(対象外、後続の単位、untracked)を一意な名前のstashへ退避し、作業ツリーとindexに単位の変更だけを残す。自律モードでは、対象外の変更を作業ツリーとindexに残してよく、検証結果が残る変更に依存しないことを根拠(例: 残る変更が検証の入力に含まれない)とともに判断する。依存する、または判断できない場合は、許可された範囲で単位をまとめ直すか、通常モードと同じ方法で退避する。退避が他の進行中の作業(他のセッションや人がステージ・編集中の変更)を妨げる場合は退避せず、所有者と調整できるまで止める。通常モードは別の隔離方法へ置き換えない。退避するときは、stashのindexにコミット対象のステージ済み変更を入れない。`git stash push` はパスを指定してもindex全体を保存し、対象のステージ済み変更が入ると後の `git stash apply --index` が失敗するため。対象のステージ済み差分のパッチを保存し、対象のステージを外してから退避し、退避後にそのパッチで対象のステージを戻す。作成前後のstash一覧を比べて今回作成されたものだけのSHAを記録し、既存stashの先頭を自分のものと決めつけない。共有ファイルのhunk分割は控えから行い、対象のhunkだけのステージを外せない場合や、対象外のステージ済みの変更が変わる場合は止める。
|
|
60
|
+
3. コミットする内容に必要な検証を行う。後続や対象外の未コミット変更に依存した成功を、その単位の検証としない。範囲を限った検証はプロジェクトが認める場合だけ使い、必須検証を省かない。後続や対象外への依存で失敗するなら、手順2に戻って単位か隔離を見直す。
|
|
61
|
+
4. 対象だけをステージし、実際にコミットされる差分の全体(indexのままコミットする場合は完全なcached diff)と影響するファイルをレビューする。indexに対象外の変更を残す場合は、それを含めずに対象だけをコミットする方法を使い、対象を限定できなければ止める。通常モードで提示する差分は、コミットされる差分と同じものにする。指摘は実物で確認し、依頼範囲の修正後は再ステージ・再検証する。外部仕様の調査は変更がそこに依存するときに行う。
|
|
62
|
+
5. コミット直前の実差分がその単位の予定差分(パス・内容・mode等)と一致することを確認する。必須検証が通り、確定した阻害指摘がなく、通常モードなら単位の承認を得てから `git commit` を単独で実行する。メッセージはリポジトリ規約に従う。`git add` と連結しない。作成されたコミットの差分もその単位の予定差分と照合し、SHAと結果を記録する。後で相殺される対象外変更も許容しない。不一致なら次工程を止め、履歴を無断で書き換えない。
|
|
63
|
+
6. 退避した場合は、コミット後または中断時に、indexにコミット対象のステージ済み変更がない状態で、記録したSHAのstashを `git stash apply --index` で戻す。中断時は対象のステージを外し、stashの復元を妨げる対象の未コミット変更(共有ファイルの対象のhunkなど)もパッチに保存して作業ツリーから一時的に外してから戻す。その後、外した対象の変更を戻し、対象のステージ済み差分のパッチで対象のステージを戻す。控えで扱った変更も復元し、コミット済みの変更を再び加えない。退避の有無によらず、コミットしていない変更(ステージ済み・未ステージ・untracked)と既存stashが、操作前の記録からコミットした内容を除いたものと一致することを確認する。一致しない、曖昧な競合がある、ステージ境界を戻せない場合は推測で消さず、一致しないパスと、退避した場合は回復資料を示して止める。一致を確認してから今回作成したstashだけをdropし、HEADを確認して次へ進む。
|
|
43
64
|
|
|
44
|
-
|
|
45
|
-
2. 単位案を短く示す。通常モードで複数の単位に分ける場合、許可された独立レビュアーがいれば、各単位の差分だけで人が妥当性を判断できるかを差分自体から確認させ、結論はメインが実際の差分で検証する。自律モードでは単位案の独立レビューを求めない(プロジェクトの必須条件にある場合は従う)。
|
|
46
|
-
3. コミットと検証の内容が単位だけで決まるようにする。通常モードでは、単位以外の未コミット変更(対象外、後続の単位、untracked)を一意な名前のstashへ退避し、作業ツリーとindexに単位の変更だけを残す。自律モードでは、対象外の変更を作業ツリーとindexに残してよく、検証結果が残る変更に依存しないことを根拠(例: 残る変更が検証の入力に含まれない)とともに判断する。依存する、または判断できない場合は、許可された範囲で単位をまとめ直すか、通常モードと同じ方法で退避する。退避が他の進行中の作業(他のセッションや人がステージ・編集中の変更)を妨げる場合は退避せず、所有者と調整できるまで止める。通常モードは別の隔離方法へ置き換えない。退避するときは、stashのindexにコミット対象のステージ済み変更を入れない。`git stash push` はパスを指定してもindex全体を保存し、対象のステージ済み変更が入ると後の `git stash apply --index` が失敗するため。対象のステージ済み差分のパッチを保存し、対象のステージを外してから退避し、退避後にそのパッチで対象のステージを戻す。作成前後のstash一覧を比べて今回作成されたものだけのSHAを記録し、既存stashの先頭を自分のものと決めつけない。共有ファイルのhunk分割は控えから行い、対象のhunkだけのステージを外せない場合や、対象外のステージ済みの変更が変わる場合は止める。
|
|
47
|
-
4. コミットする内容に必要な検証を行う。後続や対象外の未コミット変更に依存した成功を、その単位の検証としない。範囲を限った検証はプロジェクトが認める場合だけ使い、必須検証を省かない。後続や対象外への依存で失敗するなら、手順3に戻って単位か隔離を見直す。
|
|
48
|
-
5. 対象だけをステージし、実際にコミットされる差分の全体(indexのままコミットする場合は完全なcached diff)と影響するファイルをレビューする。indexに対象外の変更を残す場合は、それを含めずに対象だけをコミットする方法を使い、対象を限定できなければ止める。通常モードで提示する差分は、コミットされる差分と同じものにする。指摘は実物で確認し、依頼範囲の修正後は再ステージ・再検証する。外部仕様の調査は変更がそこに依存するときに行う。
|
|
49
|
-
6. 必須検証が通り、確定した阻害指摘がなく、通常モードなら単位の承認を得てから `git commit` を単独で実行する。メッセージはリポジトリ規約に従う。`git add` と連結しない。作成されたコミットの差分が予定した差分と一致することを確認する。
|
|
50
|
-
7. 退避した場合は、コミット後または中断時に、indexにコミット対象のステージ済み変更がない状態で、記録したSHAのstashを `git stash apply --index` で戻す。中断時は対象のステージを外し、stashの復元を妨げる対象の未コミット変更(共有ファイルの対象のhunkなど)もパッチに保存して作業ツリーから一時的に外してから戻す。その後、外した対象の変更を戻し、対象のステージ済み差分のパッチで対象のステージを戻す。控えで扱った変更も復元し、コミット済みの変更を再び加えない。退避の有無によらず、コミットしていない変更(ステージ済み・未ステージ・untracked)と既存stashが、操作前の記録からコミットした内容を除いたものと一致することを確認する。一致しない、曖昧な競合がある、ステージ境界を戻せない場合は推測で消さず、一致しないパスと、退避した場合は回復資料を示して止める。一致を確認してから今回作成したstashだけをdropし、HEADを確認して次へ進む。
|
|
65
|
+
全単位の完了後、各単位の照合結果に加え、元の比較元からの全体差分が元の対象と一致し、対象の未コミット変更が残っていないことを確認する。最終差分だけで途中コミットの照合を代用しない。予定どおりのコミットによる残差分の減少は不一致と扱わない。
|
|
51
66
|
|
|
52
67
|
## 終了・中断
|
|
53
68
|
|
|
54
69
|
branch・HEAD・対象外ファイルの予期しない変更、復元の曖昧さ、仕様判断が必要な指摘では安全な状態を保って止める。検証の失敗を省略で解決しない。修正で過去のコミットを変えず、後続単位にする。
|
|
55
70
|
|
|
56
|
-
|
|
71
|
+
各単位の判定記録、コミット一覧、選んだ単位と前後の照合結果・全体照合結果、隔離の有無、検証・レビューの範囲、残差分、復元状態を報告する。元からあったstashを保持し、今回のstashに残りがあれば回復方法を示す。未確認の独立性や検証を成功と報告しない。
|
|
@@ -15,12 +15,24 @@ Issueリンク・範囲・受入条件・仕様や調査成果物、指定devス
|
|
|
15
15
|
|
|
16
16
|
実装担当には次を明記する。
|
|
17
17
|
|
|
18
|
-
> あなたはこのIssueの実装担当。指定されたdevスキルで実装・検証し、結果をこのタスクの最終回答へ返す。linear-executeを再起動せず、別の実装タスクや開発ゴールを作らない。dev内部のサブエージェントはdev_delegationの許可範囲で使う。仕様・権限の未決事項は質問として返し、人へ直接着手確認をしない。実装完了だけでコミット・push・公開・IssueのDone更新をしない。コミットは会話側からQA
|
|
18
|
+
> あなたはこのIssueの実装担当。指定されたdevスキルで実装・検証し、結果をこのタスクの最終回答へ返す。linear-executeを再起動せず、別の実装タスクや開発ゴールを作らない。dev内部のサブエージェントはdev_delegationの許可範囲で使う。仕様・権限の未決事項は質問として返し、人へ直接着手確認をしない。実装完了だけでコミット・push・公開・IssueのDone更新をしない。コミットは会話側からQA結果を伴う依頼を受け、必要な許可を確認して行う。単位案・判定・依頼・照合・報告は [共通手順](workflow.md#単位案からコミット完了まで)に従う。他の人・AIの差分を戻さない。
|
|
19
19
|
|
|
20
20
|
## 待機・QA・修正
|
|
21
21
|
|
|
22
|
-
会話側は同じタスクを `wait_threads` / `read_thread` で観測し、完了・質問・失敗と実装結果を確認する。待機中のゴールと観測結果が得られない場合の扱いは [execution.md](execution.md) の「継続と待機」「ゴール機能」に従う。送信成功やタスクの終了だけで実装・QAの合格と扱わない。完了報告には変更範囲、検証結果、dev
|
|
22
|
+
会話側は同じタスクを `wait_threads` / `read_thread` で観測し、完了・質問・失敗と実装結果を確認する。待機中のゴールと観測結果が得られない場合の扱いは [execution.md](execution.md) の「継続と待機」「ゴール機能」に従う。送信成功やタスクの終了だけで実装・QAの合格と扱わない。完了報告には変更範囲、検証結果、dev内レビュー結果、起動方法、未解決事項を含める。
|
|
23
23
|
|
|
24
24
|
実装中は会話側で同じファイルを編集しない。Agent QAの開始前に実装タスクの編集が止まったことを確認し、差分と対象版を固定してQAする。不具合は再現手順・期待と実際・証拠とともに同じタスクへ返し、修正終了後に再検証する。実装担当が返したテスト結果を独立したAgent QAの代わりにしない。
|
|
25
25
|
|
|
26
26
|
質問は会話側が既存の合意で答え、仕様・権限を変える判断だけ人へ確認する。実装タスクの失敗・利用不能時は未完了として報告し、独断で別タスクを重ねない。利用者の停止・範囲変更は実装タスクにも伝え、停止を確認する。次のIssueへは今回の実行範囲と終了条件に従って進む。
|
|
27
|
+
|
|
28
|
+
## 完了後の整理
|
|
29
|
+
|
|
30
|
+
会話側のCodexが、合意した終了条件への到達、成果・検証結果・未実施事項の記録、その実装タスクで続ける作業がないことを確認してから、専用の実装タスクだけをアーカイブする。実装担当の完了報告や、IssueのDone・ゴールの完了だけでは、この確認の代わりにならない。修正・QA・コミットなどの続きがあるタスク、停止中・ブロッカー待ちのタスク、人との窓口や他の作業と共有しているタスクは保持する。
|
|
31
|
+
|
|
32
|
+
アーカイブには、整理まで含む今回の利用者の明示合意、または対象・条件を確認できる記録済みの継続合意が必要。`codex_task` の許可だけからは推測せず、ツール固有の明示依頼条件も満たす。合意がない場合はタスクを保持し、整理が未実施であることを報告する。
|
|
33
|
+
|
|
34
|
+
1. ローカル作業記録の確定済み `threadId`・`hostId` とIssue・checkout・branchの対応を確認する。対象を確定できなければ操作しない。
|
|
35
|
+
2. `set_thread_archived` に、その `threadId`・`hostId` と `archived: true` を明示して実行する。IDを省略して呼出元を対象にしない。
|
|
36
|
+
3. 結果を確認し、対象と成否を作業記録に残す。結果が不明なら `list_threads`・`list_archived_threads`・`read_thread` など利用可能な読取手段で同じ対象の状態を確認する。一覧に見当たらないだけで成功と扱わず、状態を確定できない場合は重複操作せず未整理として報告する。ツールが利用不能・失敗の場合も、未整理の対象と理由を報告する。
|
|
37
|
+
|
|
38
|
+
この整理はブランチやworktreeの削除を含まない。タスク整理の成否は、終了地点への到達・IssueのDone・ゴールの状態と分けて記録する。
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
|
|
48
48
|
## 項目
|
|
49
49
|
|
|
50
|
-
以下の項目は明示必須(既存設定の `config_storage`
|
|
50
|
+
以下の項目は明示必須(既存設定の `config_storage` と `path_policy_overrides` の欠落はそれぞれの説明に従う)。省略・不正値を既定値で補わず、依存する工程を止めて設定を確認する。`null`・`none`・空の一覧は、以下で認めた箇所だけで「使用しない」を表す。
|
|
51
51
|
|
|
52
52
|
| キー | 内容 |
|
|
53
53
|
| --- | --- |
|
|
@@ -64,16 +64,50 @@
|
|
|
64
64
|
| `implementation_skill` | Issueの実装・修正に使うdevの入口。`dev-claude`・`dev-claude-ultra`(CodexがBridgeでClaudeへ依頼し、Claudeがその入口で実行する)、または `dev-codex`・`dev-codex-ultra`(Issueごとの別Codexタスクがその入口を実行し、会話側は進行・Agent QAを担当する) |
|
|
65
65
|
| `commit_mode` | `shinaps:commit` でコミットするときの進め方。`normal`(単位ごとに承認を得る)または `autonomous`(個別の承認なしで単位ごとに検証してコミットする) |
|
|
66
66
|
| `human_code_review` | 人のコードレビューの要否。`required`(人がレビューする)または `skip`(人のレビューを行わない) |
|
|
67
|
-
| `
|
|
67
|
+
| `path_policy_overrides` | パス別に人レビュー・AIコミット許可・コミットの進め方を上書きするルールの一覧。例外なしは `[]`。既存設定で欠落していれば例外なし(下の「パス別の方針」) |
|
|
68
68
|
|
|
69
|
-
- `commit_mode` は進め方の設定であり、コミットの許可ではない。コミットは利用者の明示的な依頼、`permissions` の `commit
|
|
70
|
-
- `implementation_skill` が決めるのは、実装・修正の担当と実行方式だけである。`permissions`・`stop_after
|
|
71
|
-
- `human_code_review: skip` は人のレビューの工程だけを省く。dev
|
|
72
|
-
- `document_only_changes: ai_commit` は、文書だけの変更について、`human_code_review: required` でも人のレビューを省き、`commit` の許可がなくてもAIのコミットを認める。`stage` の許可は通常のコミットと同じく必要で、ほかのキーの意味と許可は変えず、push以降の操作、利用中のツールの権限、利用者の停止・撤回(「設定の読み方」)を上書きしない。
|
|
73
|
-
- 対象差分の全体(追加・削除・改名・移動・ファイルの実行権限の変更を含む、そのコミットに入るすべての変更)が、説明だけを変え、人またはAIを含む実行主体の動作・権限・必須の工程を変える内容を一つも含まないとき、文書だけの変更とする。動作・権限・必須の工程を変える内容には、実行コード、テスト、スクリプト、ビルド・CI・配備・フック・依存・環境・Linterの設定、生成物とその元、データやmigration、AIツールの権限やスキルの入口に加え、文書の中で実行主体の権限・担当・必須の工程や検証・コミットとレビューの条件を定める記述を含む。判定は各ファイルの役割と変更内容で行い、拡張子・ディレクトリ名・ファイル名のパターンだけを根拠にしない。判定できない差分は文書だけの変更として扱わない。例外を適用するために対象差分を分割しない。
|
|
69
|
+
- `commit_mode` は進め方の設定であり、コミットの許可ではない。コミットは利用者の明示的な依頼、`permissions` の `commit`(条件は下の「許可」)、または適用されたパス別の `ai_commit: allow` に従う。`commit_mode` があるだけではコミット・pushを始めず、人のレビュー済みと推測しない。その場の明示的な指定は設定に優先する。`normal` は人が自分でgit操作をする工程(`code_review`)とは別のもの。
|
|
70
|
+
- `implementation_skill` が決めるのは、実装・修正の担当と実行方式だけである。`permissions`・`stop_after`・人レビュー・コミットの方針と、`dev_delegation`・worktreeの作成・別セッションの作成の許可を変えない。その場の明示的な指定は設定に優先する。既存の設定にキーがなくても、自動で書き加えない。担当と工程の対応は [workflow.md](workflow.md) の「担当と窓口」にある。
|
|
71
|
+
- `human_code_review: skip` は人のレビューの工程だけを省く。devの入口内のレビュー、検証、Agent QA、必要なHuman QAは省かない。省略は、人のレビュー済みとして記録しない。人レビュー・AIコミット許可・`stage`・`commit_mode` は互いに独立しており、一つから他を推測しない。
|
|
74
72
|
- 工程キーは [workflow.md](workflow.md) の工程表と同じ。`statuses` の値はチームに実在する正確な名前にする。操作時はLinearから取得した状態のIDを使う。対応が曖昧・欠落・実物と不一致なら、その対応に依存する更新を止める。ステータスを自動で新設しない。
|
|
75
73
|
- `team_settings: manage_on_setup` の場合も、通常実行ではチーム設定を変更しない。
|
|
76
74
|
|
|
75
|
+
## パス別の方針
|
|
76
|
+
|
|
77
|
+
`path_policy_overrides` は、各予定コミットに入る全変更を対象に方針を適用する。Linear進行でも単独の `commit` でも同じ規則を使う。新規設定は `path_policy_overrides: []` とし、具体的なパスと上書き項目を利用者と合意した場合だけルールを追加する。
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
path_policy_overrides:
|
|
81
|
+
- paths: ["docs/**", "README.md"]
|
|
82
|
+
human_code_review: skip
|
|
83
|
+
ai_commit: allow
|
|
84
|
+
commit_mode: autonomous
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- `paths` は空でないパターン一覧を必須とする。`human_code_review`(`required` / `skip`)、`ai_commit`(`allow` / `deny`)、`commit_mode`(`normal` / `autonomous`)は少なくとも一つ指定し、省略項目は通常設定を継承する。不正な値や構文は設定不備として依存工程を止める。
|
|
88
|
+
- `ai_commit` の継承元は通常のコミット許可。`allow` はそのコミットのAIによる実行を認め、`deny` はそのコミットに対する継続的なコミット許可を取り消す。今回の利用者の明示指示を優先する。どちらも `stage` の許可を兼ねない。push・公開・終了地点・ツール権限や必要なQAも変更しない。
|
|
89
|
+
- パス設定への合意は対象と工程の許可であり、変更内容に含まれる未合意仕様や権限拡張への承認ではない。内容や拡張子から例外許可を推定しない。
|
|
90
|
+
|
|
91
|
+
### パターンとコミット全体の照合
|
|
92
|
+
|
|
93
|
+
パスは作業対象リポジトリのルート相対、`/` 区切りで、大小文字を区別する。完全一致、同じ階層内の0文字以上に一致する `*`、独立したパス要素として0階層以上に一致する `**` だけを扱う(例: `docs/*` は直下、`docs/**` は配下全体、`**/README.md` はルートを含む各階層)。隠しファイルも通常の名前として扱う。リンク先を解決したり、現在存在するファイルへパターンを展開したりしない。絶対パス、`.` / `..` 要素、否定・文字クラス・波括弧展開などの未対応構文は設定不備として止める。
|
|
94
|
+
|
|
95
|
+
各予定コミットの全変更に現れる旧・新パスが、一つのルールのパターン一覧で覆われる場合だけ、そのルールをそのコミット全体へ適用できる。追加は新パス、削除は旧パス、改名・移動は両方を含め、modeだけの変更も対象にする。新パスだけの一覧や現在残っているファイルだけでは判定しない。
|
|
96
|
+
|
|
97
|
+
- コミット全体に適用できるルールがなければ、そのコミット全体を通常方針とする。複数ルールをファイル別・項目別に合成しない。
|
|
98
|
+
- コミット全体に適用できるルールが複数ある場合、通常設定を継承した後の3項目がすべて同じならその方針を採用し、適用した全ルールを記録する。一つでも結果が異なれば依存工程を止めて競合の解消を求める。並び順やパターンの詳細度では優先しない。
|
|
99
|
+
- モードによらず自然な責務単位を先に決め、その予定コミットごとに判定する。同じ依頼に別の変更があっても、独立した範囲内コミットには例外を適用できる。例外取得だけを目的とした恣意的な分割はしない。依頼全体は網羅性と最終照合に使い、方針を固定する単位にはしない。
|
|
100
|
+
|
|
101
|
+
### 判定記録と変更時の扱い
|
|
102
|
+
|
|
103
|
+
各予定単位について、設定の正本と内容、適用した全ルール(または適用なしの理由)、単位の比較元と全差分、継承後の実効3項目、今回の明示指示、`stage` の許可、検証・レビューの結果を記録する。差分の同一性はパスだけでなく内容・mode等も含めて確認する。Linear進行での担当間の引き渡しは [workflow.md](workflow.md)、コミット前後の単位照合と完了時の全体照合は [commit](../../skills/commit/SKILL.md) に従う。
|
|
104
|
+
|
|
105
|
+
予定単位の内容・分割・統合を変更したら、変更した単位を再判定して必要なレビュー・許可確認・検証へ戻す。設定変更時も影響する未実行単位を再判定する。以前の判定や別単位の方針は流用しない。実コミットが予定と異なれば停止し、履歴を無断で書き換えない。
|
|
106
|
+
|
|
107
|
+
### 旧設定の移行
|
|
108
|
+
|
|
109
|
+
`document_only_changes: none` は例外なしとして読めるため、自動変更や再合意は不要。旧 `document_only_changes: ai_commit` は廃止し、新設定と共存していても依存工程を止める。具体的なパスと上書き項目への移行、または例外廃止を利用者と合意してから旧キーを除く。説明だけの変更の許可とパスの許可は同値ではないため、自動変換・二重運用をしない。既存プロジェクトへ例外許可を自動追加しない。
|
|
110
|
+
|
|
77
111
|
## 終了地点
|
|
78
112
|
|
|
79
113
|
初期設定ではこの一覧を示して選んでもらう。
|
|
@@ -93,10 +127,10 @@
|
|
|
93
127
|
| --- | --- |
|
|
94
128
|
| `issue_update` | 対象のteam・projectの中で、利用者が任せたIssue・Cycleの範囲に対する運用上の更新(本文・コメント・状態・依存・Linearへの添付、整理で必要になったIssueの作成・分割)と、利用者から任された目的の作業を着手前にIssueへ紐づけるための作成([issue.md](issue.md) の「着手前に作業をIssueへ紐づける」)。チーム設定の変更、未合意の範囲・期限の変更、Cycle外への進行、Issueの削除、外部への送信を含めない |
|
|
95
129
|
| `development_operations` | 任された対象の開発に必要な、既存アカウントへの通常のログイン、ローカル環境準備、プロジェクトの依存導入、開発サーバー・Simulatorの起動停止、ビルド・テスト・QA操作を継続的に許可する。下の範囲に従う |
|
|
96
|
-
| `codex_task` | 対象IssueごとのCodex
|
|
130
|
+
| `codex_task` | 対象IssueごとのCodex実装タスクの新規作成・状態確認・実装や修正や許可済みコミットの依頼。アーカイブ、worktree作成、操作許可の追加、タスク側でのゴールや実装タスクの再作成は含めない。ツールの明示依頼要件も満たす。アーカイブの合意と手順は [完了後の整理](codex-task.md#完了後の整理) に従う |
|
|
97
131
|
| `bridge_request` | BridgeによるCodexからClaudeへの実装・修正の依頼と、ClaudeからCodexへの開発進行の引き渡し |
|
|
98
132
|
| `stage` | レビュー・コミットの対象差分だけをステージする |
|
|
99
|
-
| `commit` | 対象Issueの差分を、Local Agent QAの合格と `human_code_review` に従った工程の後に、`shinaps:commit` でローカルにコミットする。AIのコミットには `stage` の許可も併せて必要。push・PR
|
|
133
|
+
| `commit` | 対象Issueの差分を、Local Agent QAの合格と `human_code_review` に従った工程の後に、`shinaps:commit` でローカルにコミットする。AIのコミットには `stage` の許可も併せて必要。push・PR・履歴の書き換え、人のレビューの省略を含めない。パス別の `ai_commit` を含む実効方針に従う(上の「パス別の方針」) |
|
|
100
134
|
| `push` | 対象Issueの作業ブランチの通常のpush |
|
|
101
135
|
| `pr_create` | 対象IssueのPRの作成と更新 |
|
|
102
136
|
| `merge` | 必要なQA・承認が揃った対象PRのマージと、元のブランチへ戻る操作 |
|
|
@@ -153,7 +187,7 @@ stop_after: pre_push_qa
|
|
|
153
187
|
implementation_skill: dev-claude-ultra # CodexがBridgeでClaudeへ依頼する。Codexが実装する場合は dev-codex-ultra など
|
|
154
188
|
human_code_review: required
|
|
155
189
|
commit_mode: autonomous
|
|
156
|
-
|
|
190
|
+
path_policy_overrides: []
|
|
157
191
|
cycle_report: null
|
|
158
192
|
permissions:
|
|
159
193
|
- development_operations # この範囲を利用者が合意した場合だけ記載
|
|
@@ -185,7 +219,7 @@ Claudeもこの手順で初期設定を行える。合意した設定の保存
|
|
|
185
219
|
1. アカウント、workspace、team、projectと、チームのステータス一覧・既存の運用をLinearから読む。
|
|
186
220
|
2. 作業先リポジトリのAGENTS.md・CLAUDE.md・README・CI・検証や配備のスクリプトを読み、`references` の候補を決める。
|
|
187
221
|
3. 設定案を一つ作る。チーム設定を管理できる場合だけ、FamilyStayを基にした工程の分離([workflow.md](workflow.md) の工程表に対応するステータス)を変更案として示す。利用者のプロジェクトらしいという推測で `manage_on_setup` にしない。
|
|
188
|
-
4. 既存の情報で決まらない運用上の決定(`config_storage`、`stop_after`、`permissions`(`commit` を含む)、`human_code_review`、`team_settings`、Cycle報告、`commit_mode`、`implementation_skill
|
|
222
|
+
4. 既存の情報で決まらない運用上の決定(`config_storage`、`stop_after`、`permissions`(`commit` を含む)、`human_code_review`、`team_settings`、Cycle報告、`commit_mode`、`implementation_skill`)だけを一問ずつ確認する。終了地点は上の一覧から選んでもらう。パス別の例外が必要な場合は、具体的な対象パターンと上書き項目、通常設定からの変更を示して合意する。例外を使わない新規設定には `path_policy_overrides: []` を記載する。旧設定の移行は上の手順に従う。
|
|
189
223
|
5. 合意した方式の正本へ、下の保存手順に従って保存する。sharedでは採用する補足の `references` と共有対象を照合し、別checkoutでも同じ条件を読めるようにする。正本と補足を読み直して確認する。
|
|
190
224
|
6. Linearのチーム設定の変更は、設定の保存とは別に扱う。対象チームと変更差分(追加・改名するステータスと順序)を示し、合意を得てから反映して読み戻す。反映後に `statuses` を実物に合わせて確定する。
|
|
191
225
|
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
- バックログでは最初のブロッカーで次のIssueへ進まず、到達点・未完了の対象ID・理由・必要な判断や準備・再開条件を報告して今回の実行を終了する。残Issueの状態をDoneにせず、ブロッカー自体を解決済みとは報告しない。
|
|
30
30
|
- Issue単体・Cycle全体では、ブロッカー報告だけで完了にしない。必要な判断や準備を求め、再開条件を記録する。
|
|
31
31
|
|
|
32
|
+
合意した終了地点に達して成果を記録した後、Codexの専用実装タスクは [完了後の整理](codex-task.md#完了後の整理) の条件に従って会話側が整理する。終了地点への到達・IssueのDone・ゴールの完了と、タスク整理の成否は分けて扱う。
|
|
33
|
+
|
|
32
34
|
## ゴール機能
|
|
33
35
|
|
|
34
36
|
実行開始の必須条件として、上の対象と終了条件を持つゴールが設定済みであることを確認する。ゴールの作成成功、または同じ対象の既存ゴールの状態をツールで確認してから実装・QA・公開の進行を始める。文章で目標を書くだけでは設定済みとしない。ツールが利用者の明示依頼を要求する場合、スキルの選択だけで迂回せず、既存の明示依頼を使い、なければ開始時に一度確認し、回答と設定成功を待つ。同じ対象のゴールは再利用し、別の未完了ゴールを上書きしない。予算は明示された場合だけ設定する。
|
|
@@ -42,7 +42,7 @@ Linear MCPで扱えない画面操作(添付、並べ替え、Cycleへの紐
|
|
|
42
42
|
| `ready` | Ready | 自分たちの作業を依存順に進めれば着手できる。開始時に、必要な前工程の成果を再確認する |
|
|
43
43
|
| `coding` | Coding | 実装担当が実装・自動検証・簡素化・セルフレビューを完了し、差分と結果を渡す |
|
|
44
44
|
| `local_agent_qa` | Local Agent QA | Codexが受入条件を検証する。不合格なら `coding` へ戻す |
|
|
45
|
-
| `code_review` | Code Review(人のレビューまたは省略の記録・コミット) | `human_code_review: required`
|
|
45
|
+
| `code_review` | Code Review(人のレビューまたは省略の記録・コミット) | 各予定単位の実効方針が `human_code_review: required` なら人がレビュー・修正し、`skip` なら依頼も待ちも作らず省略を記録する。Local Agent QAの合格後(`required` なら人のレビュー完了の確認後)、実効方針でAIコミットが許可され、`stage` の許可もあれば、会話側のCodexの依頼で実装担当がコミットする。許可がなければ人が行う。対象コミットと人の完了通知または省略の記録を照合する |
|
|
46
46
|
| `post_commit` | コミット後の検証・PR準備 | 設定に従って、push前の最終Agent QA、必須検証、許可されたpush・PR作成を行う |
|
|
47
47
|
| `staging_agent_qa` | Staging Agent QA | 配備されたPR候補版をCodexが検証する |
|
|
48
48
|
| `staging_human_qa` | Staging Human QA | そのPRで必要な人の確認。不要なら理由を記録して省略する |
|
|
@@ -53,27 +53,29 @@ Linear MCPで扱えない画面操作(添付、並べ替え、Cycleへの紐
|
|
|
53
53
|
|
|
54
54
|
- 工程名を使うことは、チーム設定を変更する許可ではない。専用のステータスがないQA工程は進行中の状態に対応づけ、工程・待ち理由・再開条件をコメントへ記録する。`done` と途中の工程を同じ完了状態に対応づけない。
|
|
55
55
|
- QAステータスへの移動とQAの合格を区別する。終了地点への到達とIssueのDoneを区別する。
|
|
56
|
+
- Codexの専用実装タスクの整理は、終了条件への到達と成果記録を確認した後、会話側が [完了後の整理](codex-task.md#完了後の整理) に従って行う。タスクのアーカイブを工程・Issue・ゴールの完了確認の代わりにしない。
|
|
56
57
|
- 工程を行うかどうかは、Issueの受入条件と終了地点で決める。Issueに適用されない工程は通らない(配備しない変更の環境配備・環境QA、Git変更がない作業のレビュー・コミット・PRなど)。省略した工程は理由を記録する。工程の省略を理由に、必要なQAや未達の受入条件を省かない。
|
|
57
58
|
- 終了地点の工程がそのIssueにない場合は、適用される最後の必要工程まで進めて止まる。そのとき必須受入条件をすべて満たしていればDoneにする。満たしていなければ、残る条件を記録してDoneにしない(push前QAで止める運用で、本番公開の受入条件が残るIssueなど)。
|
|
58
59
|
- 人がレビュー中に修正した場合は `code_review` を続ける。AIへ追加実装を依頼する場合は、範囲と受入条件をIssueで更新してから `coding` へ戻す。
|
|
59
60
|
- Human QAが新たに必要になった場合は、理由と具体的な残項目をIssueに記録して利用者に相談する。
|
|
60
|
-
- プロジェクトの規約や補足の記述だけでは、AI
|
|
61
|
-
- `human_code_review: skip
|
|
61
|
+
- プロジェクトの規約や補足の記述だけでは、AIコミットの許可として扱わない。[共通設定のパス別の方針](configuration.md#パス別の方針)に従って、通常設定・適用ルール・今回の明示指示から実効方針を決める。
|
|
62
|
+
- 実効方針が `human_code_review: skip` なら、Codexは `code_review` で対象単位を明示し、省略と実施した確認への参照をIssueへ記録する。人のレビュー済みとは記録しない。
|
|
62
63
|
|
|
63
64
|
```text
|
|
64
|
-
人のコードレビュー:
|
|
65
|
+
人のコードレビュー: <対象単位>は省略(根拠: <通常設定または適用したパス別ルール>、判定: <Local Agent QAの記録へのリンク>)
|
|
65
66
|
実施した確認: devの入口内のレビュー(使った場合。実装担当の完了報告 <コメントへのリンク>)、Local Agent QA(<記録へのリンク>)
|
|
66
|
-
コミット: <SHA
|
|
67
|
+
コミット: <SHAの一覧>(<実際の実施者と方法>)
|
|
67
68
|
```
|
|
68
69
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
### 単位案からコミット完了まで
|
|
71
|
+
|
|
72
|
+
以下はClaude・Codexの両実装方式に共通する。単位計画の作成・確認にはコミット許可を要求しない。
|
|
73
|
+
|
|
74
|
+
1. 実装担当は成果引き渡しに、モードによらず自然な責務で決めたコミット単位案と予定差分を含める。進行役のCodexはLocal Agent QAで対象を検証し、単位案が依頼全体を漏れなく覆い対象外変更を含まないことと、各単位の[判定記録](configuration.md#判定記録と変更時の扱い)を確認する。依頼の比較元と全体差分も最終照合用に記録する。
|
|
75
|
+
2. 人レビューを待つかAIコミットを依頼するかは、各単位の実効方針で決める。QA合格とその単位に必要な人レビュー・AIコミット・stageの許可が揃ったら、CodexはQA結果、単位の判定記録、人レビュー完了の証拠または省略根拠を添えて実装担当へ依頼する。担当は設定・予定差分と記録の一致、許可を確認し、不一致なら実行せず進行役へ返す。
|
|
76
|
+
3. 実装担当は [commit](../../skills/commit/SKILL.md) に従い、各単位のモードに応じた承認・隔離・検証・レビューを行う。同じ依頼内に通常・自律の単位が混在してよい。各コミット直前・作成後の実差分をその単位の予定差分と照合し、予定単位・SHA・照合結果・検証とレビュー結果を進行役へ返す。
|
|
77
|
+
4. 全単位完了後、Codexは各コミットの単位照合結果を実差分で独立確認したうえで、依頼の比較元からの全体差分が対象と一致し、対象の未コミット変更が残っていないことを照合する。最終差分だけでは途中で混入し後で相殺された対象外変更を検出できないため、単位照合を省かない。人レビューを省略した単位は、上の省略記録を完成させる。
|
|
78
|
+
5. 単位の組み替え・内容・設定の変更は[変更時の扱い](configuration.md#判定記録と変更時の扱い)に従って再判定し、必要なレビュー・許可確認・検証へ戻す。実コミットに不一致があれば次工程を止め、SHA・予定差分・実差分の違いを記録して人に確認する。履歴を無断で書き換えない。
|
|
77
79
|
|
|
78
80
|
## 待ち状態
|
|
79
81
|
|
|
@@ -92,12 +94,12 @@ AI Terminal Bridge(以下Bridge)の本体は同梱しない。導入済み
|
|
|
92
94
|
| 依頼・報告 | 含めるもの |
|
|
93
95
|
| --- | --- |
|
|
94
96
|
| 実装・修正の依頼(CodexからClaude) | Issueリンク、使う入口(`implementation_skill` の値、またはその場の明示的な指定)、範囲・受入条件、Gitの作業ディレクトリ・ブランチ・既存差分、許可範囲(`dev_delegation` の有無を含む)、返信先のCodexの `session_id`、関係する補足と参照先、下の定型文。修正依頼では、再現手順・期待と実際・対象差分・証拠の場所を加える |
|
|
95
|
-
| コミットの依頼(CodexからClaude) | Issue
|
|
96
|
-
| 完了の報告(ClaudeからCodex) | 対象差分、自動検証の結果、起動方法、確認観点、既知の制限、未解決の事項、dev
|
|
97
|
+
| コミットの依頼(CodexからClaude) | Issueリンク、Gitの作業ディレクトリ・ブランチ、返信先のCodexの `session_id` と、上の「単位案からコミット完了まで」で定める依頼情報 |
|
|
98
|
+
| 完了の報告(ClaudeからCodex) | 対象差分、自動検証の結果、起動方法、確認観点、既知の制限、未解決の事項、devの入口内のレビュー結果の要約と未解決の指摘。コミットした場合の返却情報は上の「単位案からコミット完了まで」に従う |
|
|
97
99
|
| 人のレビュー・コミット完了の報告(ClaudeからCodex) | 下の「人のレビュー・コミット完了の報告」の項目 |
|
|
98
100
|
| 開発進行の引き渡し(ClaudeからCodex) | 利用者からの依頼の内容、対象Issue・Cycle・バックログの範囲と順序、作業先リポジトリ、利用者が示した範囲と条件。Codexは作業先リポジトリの設定と照合して進行を始め、不足する判断はCodexから利用者へ確認する |
|
|
99
101
|
|
|
100
|
-
|
|
102
|
+
コミットの依頼では、単位の判定後もモードが決まらない場合の確認と、通常モードの単位ごとの承認を、Codexが人へ取り次ぐ。Codexは自分で選択・承認しない。
|
|
101
103
|
|
|
102
104
|
実装・修正の依頼には次の文を含める。
|
|
103
105
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commit
|
|
3
|
-
description:
|
|
3
|
+
description: 許可された差分を依存順のローカルコミットにし、各コミットを検証・レビューする。進め方(通常・自律)は各単位の実効方針か確認で決め、選択された範囲で実行する。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 作業記録の保存先
|
|
@@ -19,15 +19,6 @@ description: 許可された差分を依存順のローカルコミットにし
|
|
|
19
19
|
|
|
20
20
|
コミットは利用者の明示依頼、または[Linear共通設定](../../references/linear/configuration.md)の合意済みの許可に従う。Linear進行では[担当と工程](../../references/linear/workflow.md)の `code_review` に従い、Local Agent QA後に進行役から対象を指定した依頼を受けて行う。単独の依頼にはLinear進行や新しいゴールを必須にしない。
|
|
21
21
|
|
|
22
|
-
開始時に、今回の対象についてユーザー自身が進め方を選択済みか確認する。未選択なら、[Linear共通設定の読み方](../../references/linear/configuration.md#設定の読み方)で正本を決めた `.shinaps/linear.yaml` に `commit_mode` が `normal` または `autonomous` で書かれていれば、それをこのプロジェクトでユーザーが合意済みの選択として使う。linear-executeの開発進行では設定の不足・不正値を解消してから進む。linear-execute以外の単独のコミット依頼で設定による選択がない場合は、利用可能な入力ツール(なければ文章)で「今回のコミットはどちらで進めますか?」と一問だけ聞く。
|
|
23
|
-
|
|
24
|
-
- **通常(推奨)**: 人がレビューする単位ごとに、単位以外の変更をstashへ退避して差分・理由・検証結果・メッセージを提示し、承認を得てからコミットする。
|
|
25
|
-
- **自律**: エージェントが検証できる単位を選び(許可された一連の変更をまとめてよい)、検証・レビューして個別の承認を求めずコミットする。
|
|
26
|
-
|
|
27
|
-
質問した場合は、回答を受け取るまで作業を進めない。未回答や推奨選択肢の初期選択を承認と扱わない。「コミットして」「進めて」などの一般的な依頼や、エージェント自身の計画から自律モードを推測しない。今回の対象についてユーザーが通常・自律を明示済みならその選択を引き継ぎ、同じ確認を繰り返さない。過去の別対象での自律選択は引き継がない。例外は `commit_mode` として明示的に保存されたプロジェクト設定だけで、同じプロジェクトでの依頼の選択として使う。その場の明示的な指定は設定に優先する。
|
|
28
|
-
|
|
29
|
-
設定項目の独立性と併せて読む条件は[Linear共通設定](../../references/linear/configuration.md)に従う。`autonomous` は人のコードレビューの省略ではなく、`human_code_review: skip` は通常モードの単位ごとの承認の省略ではない。設定があるだけでコミット・pushを始めず、人のレビュー済みと推測しない。`normal` は上記の通常モード(単位ごとに承認を得る)で、人が自分でgit操作をする工程を指すものではない。
|
|
30
|
-
|
|
31
22
|
どちらのモードも、許可された対象以外の変更と秘密情報、push、PR、公開、既存履歴の書き換えを含まない。
|
|
32
23
|
|
|
33
24
|
Git操作と修正は現在のセッションが行う。独立レビューは利用可能かつ許可された場合に使う。指定のエージェントがなければ、その役割の観点でレビューする。独立レビューがプロジェクトの必須条件なのに実行できなければ、セルフレビューを同等と称さず止める。別worktreeの作成や別セッションへの委託を、このスキルから許可しない。
|
|
@@ -39,18 +30,42 @@ Git操作と修正は現在のセッションが行う。独立レビューは
|
|
|
39
30
|
- 検証コマンドはCI・スクリプト・規約から特定する。変更前からの失敗を今回の成功に混ぜない。
|
|
40
31
|
- 退避する場合は、ステージ済み差分・未ステージ差分・untrackedの控えをリポジトリ外の作業領域へ保存する。控えは復元が確認できるまで残す。
|
|
41
32
|
|
|
42
|
-
##
|
|
33
|
+
## 自然なコミット単位を決める
|
|
34
|
+
|
|
35
|
+
モードによらず、一つの目的を説明でき、先行単位と既存コードだけで成立する責務単位を決める。実装と必要なテスト・生成物を切り離さず、依頼全体を漏れなく覆い、対象外変更を含めない。行数やファイル階層だけで分けず、例外取得だけを目的とした恣意的な分割はしない。単位案と予定差分、依頼の比較元と全体差分を記録する。単位計画の作成・確認にコミット許可は必要ない。
|
|
36
|
+
|
|
37
|
+
## 各単位の方針とモードを決める
|
|
38
|
+
|
|
39
|
+
予定単位ごとに、[パス別の方針](../../references/linear/configuration.md#パス別の方針)でそのコミットの全変更を判定し、同資料の判定記録を残す。Linear進行から記録を受け取った場合は、設定とその単位の予定差分(内容・mode等を含む)の一致を確認して引き継ぐ。単独の依頼でも同じ判定を使い、Linear専用の工程は追加しない。設定が真にない単独依頼では、今回の明示許可とプロジェクト規約を通常方針とし、パス例外は適用しない。
|
|
40
|
+
|
|
41
|
+
実効方針のAIコミット許可、人レビューの条件、別途必要なstageの許可を確認する。旧設定の移行・競合・不備は共通設定に従って依存工程を止める。
|
|
42
|
+
|
|
43
|
+
単位の判定後に、その対象についてユーザー自身が進め方を選択済みか確認する。未選択なら、[Linear共通設定の読み方](../../references/linear/configuration.md#設定の読み方)で正本を決めた `.shinaps/linear.yaml` の通常設定と適用されたパス別ルールから実効 `commit_mode` が `normal` または `autonomous` と決まれば、それをこのプロジェクトでユーザーが合意済みの選択として使う。linear-executeの開発進行では設定の不足・不正値を解消してから進む。linear-execute以外の単独のコミット依頼で設定による選択がない場合は、利用可能な入力ツール(なければ文章)で対象単位を示して「このコミットはどちらで進めますか?」と一問だけ聞く。
|
|
44
|
+
|
|
45
|
+
- **通常(推奨)**: 人がレビューする単位ごとに、単位以外の変更をstashへ退避して差分・理由・検証結果・メッセージを提示し、承認を得てからコミットする。
|
|
46
|
+
- **自律**: その単位を検証・レビューして個別の承認を求めずコミットする。
|
|
47
|
+
|
|
48
|
+
質問した場合は、回答を受け取るまで作業を進めない。未回答や推奨選択肢の初期選択を承認と扱わない。「コミットして」「進めて」などの一般的な依頼や、エージェント自身の計画から自律モードを推測しない。今回の対象についてユーザーが通常・自律を明示済みならその選択を引き継ぎ、同じ確認を繰り返さない。別単位の選択は流用しない。同じ依頼内で通常・自律が混在してよい。合意して保存された通常設定またはパス別ルールの `commit_mode` は、その単位への適用結果を使う。その場の明示的な指定は設定に優先する。
|
|
49
|
+
|
|
50
|
+
設定項目の独立性と併せて読む条件は[Linear共通設定](../../references/linear/configuration.md)に従う。`autonomous` は人のコードレビューの省略ではなく、`human_code_review: skip` は通常モードの単位ごとの承認の省略ではない。設定があるだけでコミット・pushを始めず、人のレビュー済みと推測しない。`normal` は上記の通常モード(単位ごとに承認を得る)で、人が自分でgit操作をする工程を指すものではない。
|
|
51
|
+
|
|
52
|
+
モード決定後にレビュー可能性や依存関係のため単位を分割・統合する場合は、[変更時の扱い](../../references/linear/configuration.md#判定記録と変更時の扱い)に従って変更した単位を再判定し、必要なレビュー・許可確認・検証へ戻す。設定変更時も影響する未実行単位を再判定する。「自律だからまとめる」「通常だから分ける」を先に適用して単位決定と判定を循環させない。
|
|
53
|
+
|
|
54
|
+
## 単位ごとの検証・レビュー・コミット
|
|
55
|
+
|
|
56
|
+
以下を、その単位のモードで行う。
|
|
57
|
+
|
|
58
|
+
1. 単位案を短く示す。通常モードで複数の単位に分ける場合、許可された独立レビュアーがいれば、各単位の差分だけで人が妥当性を判断できるかを差分自体から確認させ、結論はメインが実際の差分で検証する。自律モードでは単位案の独立レビューを求めない(プロジェクトの必須条件にある場合は従う)。
|
|
59
|
+
2. コミットと検証の内容が単位だけで決まるようにする。通常モードでは、単位以外の未コミット変更(対象外、後続の単位、untracked)を一意な名前のstashへ退避し、作業ツリーとindexに単位の変更だけを残す。自律モードでは、対象外の変更を作業ツリーとindexに残してよく、検証結果が残る変更に依存しないことを根拠(例: 残る変更が検証の入力に含まれない)とともに判断する。依存する、または判断できない場合は、許可された範囲で単位をまとめ直すか、通常モードと同じ方法で退避する。退避が他の進行中の作業(他のセッションや人がステージ・編集中の変更)を妨げる場合は退避せず、所有者と調整できるまで止める。通常モードは別の隔離方法へ置き換えない。退避するときは、stashのindexにコミット対象のステージ済み変更を入れない。`git stash push` はパスを指定してもindex全体を保存し、対象のステージ済み変更が入ると後の `git stash apply --index` が失敗するため。対象のステージ済み差分のパッチを保存し、対象のステージを外してから退避し、退避後にそのパッチで対象のステージを戻す。作成前後のstash一覧を比べて今回作成されたものだけのSHAを記録し、既存stashの先頭を自分のものと決めつけない。共有ファイルのhunk分割は控えから行い、対象のhunkだけのステージを外せない場合や、対象外のステージ済みの変更が変わる場合は止める。
|
|
60
|
+
3. コミットする内容に必要な検証を行う。後続や対象外の未コミット変更に依存した成功を、その単位の検証としない。範囲を限った検証はプロジェクトが認める場合だけ使い、必須検証を省かない。後続や対象外への依存で失敗するなら、手順2に戻って単位か隔離を見直す。
|
|
61
|
+
4. 対象だけをステージし、実際にコミットされる差分の全体(indexのままコミットする場合は完全なcached diff)と影響するファイルをレビューする。indexに対象外の変更を残す場合は、それを含めずに対象だけをコミットする方法を使い、対象を限定できなければ止める。通常モードで提示する差分は、コミットされる差分と同じものにする。指摘は実物で確認し、依頼範囲の修正後は再ステージ・再検証する。外部仕様の調査は変更がそこに依存するときに行う。
|
|
62
|
+
5. コミット直前の実差分がその単位の予定差分(パス・内容・mode等)と一致することを確認する。必須検証が通り、確定した阻害指摘がなく、通常モードなら単位の承認を得てから `git commit` を単独で実行する。メッセージはリポジトリ規約に従う。`git add` と連結しない。作成されたコミットの差分もその単位の予定差分と照合し、SHAと結果を記録する。後で相殺される対象外変更も許容しない。不一致なら次工程を止め、履歴を無断で書き換えない。
|
|
63
|
+
6. 退避した場合は、コミット後または中断時に、indexにコミット対象のステージ済み変更がない状態で、記録したSHAのstashを `git stash apply --index` で戻す。中断時は対象のステージを外し、stashの復元を妨げる対象の未コミット変更(共有ファイルの対象のhunkなど)もパッチに保存して作業ツリーから一時的に外してから戻す。その後、外した対象の変更を戻し、対象のステージ済み差分のパッチで対象のステージを戻す。控えで扱った変更も復元し、コミット済みの変更を再び加えない。退避の有無によらず、コミットしていない変更(ステージ済み・未ステージ・untracked)と既存stashが、操作前の記録からコミットした内容を除いたものと一致することを確認する。一致しない、曖昧な競合がある、ステージ境界を戻せない場合は推測で消さず、一致しないパスと、退避した場合は回復資料を示して止める。一致を確認してから今回作成したstashだけをdropし、HEADを確認して次へ進む。
|
|
43
64
|
|
|
44
|
-
|
|
45
|
-
2. 単位案を短く示す。通常モードで複数の単位に分ける場合、許可された独立レビュアーがいれば、各単位の差分だけで人が妥当性を判断できるかを差分自体から確認させ、結論はメインが実際の差分で検証する。自律モードでは単位案の独立レビューを求めない(プロジェクトの必須条件にある場合は従う)。
|
|
46
|
-
3. コミットと検証の内容が単位だけで決まるようにする。通常モードでは、単位以外の未コミット変更(対象外、後続の単位、untracked)を一意な名前のstashへ退避し、作業ツリーとindexに単位の変更だけを残す。自律モードでは、対象外の変更を作業ツリーとindexに残してよく、検証結果が残る変更に依存しないことを根拠(例: 残る変更が検証の入力に含まれない)とともに判断する。依存する、または判断できない場合は、許可された範囲で単位をまとめ直すか、通常モードと同じ方法で退避する。退避が他の進行中の作業(他のセッションや人がステージ・編集中の変更)を妨げる場合は退避せず、所有者と調整できるまで止める。通常モードは別の隔離方法へ置き換えない。退避するときは、stashのindexにコミット対象のステージ済み変更を入れない。`git stash push` はパスを指定してもindex全体を保存し、対象のステージ済み変更が入ると後の `git stash apply --index` が失敗するため。対象のステージ済み差分のパッチを保存し、対象のステージを外してから退避し、退避後にそのパッチで対象のステージを戻す。作成前後のstash一覧を比べて今回作成されたものだけのSHAを記録し、既存stashの先頭を自分のものと決めつけない。共有ファイルのhunk分割は控えから行い、対象のhunkだけのステージを外せない場合や、対象外のステージ済みの変更が変わる場合は止める。
|
|
47
|
-
4. コミットする内容に必要な検証を行う。後続や対象外の未コミット変更に依存した成功を、その単位の検証としない。範囲を限った検証はプロジェクトが認める場合だけ使い、必須検証を省かない。後続や対象外への依存で失敗するなら、手順3に戻って単位か隔離を見直す。
|
|
48
|
-
5. 対象だけをステージし、実際にコミットされる差分の全体(indexのままコミットする場合は完全なcached diff)と影響するファイルをレビューする。indexに対象外の変更を残す場合は、それを含めずに対象だけをコミットする方法を使い、対象を限定できなければ止める。通常モードで提示する差分は、コミットされる差分と同じものにする。指摘は実物で確認し、依頼範囲の修正後は再ステージ・再検証する。外部仕様の調査は変更がそこに依存するときに行う。
|
|
49
|
-
6. 必須検証が通り、確定した阻害指摘がなく、通常モードなら単位の承認を得てから `git commit` を単独で実行する。メッセージはリポジトリ規約に従う。`git add` と連結しない。作成されたコミットの差分が予定した差分と一致することを確認する。
|
|
50
|
-
7. 退避した場合は、コミット後または中断時に、indexにコミット対象のステージ済み変更がない状態で、記録したSHAのstashを `git stash apply --index` で戻す。中断時は対象のステージを外し、stashの復元を妨げる対象の未コミット変更(共有ファイルの対象のhunkなど)もパッチに保存して作業ツリーから一時的に外してから戻す。その後、外した対象の変更を戻し、対象のステージ済み差分のパッチで対象のステージを戻す。控えで扱った変更も復元し、コミット済みの変更を再び加えない。退避の有無によらず、コミットしていない変更(ステージ済み・未ステージ・untracked)と既存stashが、操作前の記録からコミットした内容を除いたものと一致することを確認する。一致しない、曖昧な競合がある、ステージ境界を戻せない場合は推測で消さず、一致しないパスと、退避した場合は回復資料を示して止める。一致を確認してから今回作成したstashだけをdropし、HEADを確認して次へ進む。
|
|
65
|
+
全単位の完了後、各単位の照合結果に加え、元の比較元からの全体差分が元の対象と一致し、対象の未コミット変更が残っていないことを確認する。最終差分だけで途中コミットの照合を代用しない。予定どおりのコミットによる残差分の減少は不一致と扱わない。
|
|
51
66
|
|
|
52
67
|
## 終了・中断
|
|
53
68
|
|
|
54
69
|
branch・HEAD・対象外ファイルの予期しない変更、復元の曖昧さ、仕様判断が必要な指摘では安全な状態を保って止める。検証の失敗を省略で解決しない。修正で過去のコミットを変えず、後続単位にする。
|
|
55
70
|
|
|
56
|
-
|
|
71
|
+
各単位の判定記録、コミット一覧、選んだ単位と前後の照合結果・全体照合結果、隔離の有無、検証・レビューの範囲、残差分、復元状態を報告する。元からあったstashを保持し、今回のstashに残りがあれば回復方法を示す。未確認の独立性や検証を成功と報告しない。
|