@shinaps/skills 0.33.1 → 0.34.0
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 +62 -28
- package/dist/bin/skills.js +7 -0
- package/dist/lib/config-validation.js +33 -0
- package/dist/lib/install.js +1 -0
- package/dist/lib/linear-config.js +8 -30
- package/dist/lib/managed-config.js +10 -0
- package/package.json +1 -1
- package/plugins/shinaps-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-architect.md +92 -0
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-dev-managed-cc.md +59 -0
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-implementer.md +36 -0
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-plan-reviewer.md +65 -0
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-reviewer.md +79 -0
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-simplifier.md +44 -0
- package/plugins/shinaps-claude/managed-agents/environments/shinaps-dev.yaml +5 -0
- package/plugins/shinaps-claude/managed-agents/skills/dev-managed-cc/SKILL.md +53 -0
- package/plugins/shinaps-claude/managed-agents/skills/dev-managed-cc/references/launch.md +73 -0
- package/plugins/shinaps-claude/managed-agents/skills/dev-managed-cc/references/staffing.md +42 -0
- package/plugins/shinaps-claude/managed-agents/skills/dev-managed-cc/references/workflow.md +61 -0
- package/plugins/shinaps-claude/references/dev/workflow.md +1 -1
- package/plugins/shinaps-claude/references/linear/configuration.md +1 -1
- package/plugins/shinaps-claude/references/managed/configuration.md +59 -0
- package/plugins/shinaps-claude/references/managed/configuration.schema.json +47 -0
- package/plugins/shinaps-claude/references/managed/execute.md +116 -0
- package/plugins/shinaps-claude/references/managed/setup.md +72 -0
- package/plugins/shinaps-claude/skills/managed-execute/SKILL.md +18 -0
- package/plugins/shinaps-claude/skills/managed-setup/SKILL.md +19 -0
- package/plugins/shinaps-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/shinaps-codex/agents/shinaps-explorer.toml +2 -2
- package/plugins/shinaps-codex/agents/shinaps-refine-agent.toml +2 -2
- package/plugins/shinaps-codex/agents/shinaps-reviewer.toml +2 -2
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-architect.md +92 -0
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-dev-managed-cc.md +59 -0
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-implementer.md +36 -0
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-plan-reviewer.md +65 -0
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-reviewer.md +79 -0
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-simplifier.md +44 -0
- package/plugins/shinaps-codex/managed-agents/environments/shinaps-dev.yaml +5 -0
- package/plugins/shinaps-codex/managed-agents/skills/dev-managed-cc/SKILL.md +53 -0
- package/plugins/shinaps-codex/managed-agents/skills/dev-managed-cc/references/launch.md +73 -0
- package/plugins/shinaps-codex/managed-agents/skills/dev-managed-cc/references/staffing.md +42 -0
- package/plugins/shinaps-codex/managed-agents/skills/dev-managed-cc/references/workflow.md +61 -0
- package/plugins/shinaps-codex/references/dev/launch.md +1 -1
- package/plugins/shinaps-codex/references/dev/workflow.md +1 -1
- package/plugins/shinaps-codex/references/linear/configuration.md +1 -1
- package/plugins/shinaps-codex/references/managed/configuration.md +59 -0
- package/plugins/shinaps-codex/references/managed/configuration.schema.json +47 -0
- package/plugins/shinaps-codex/references/managed/execute.md +116 -0
- package/plugins/shinaps-codex/references/managed/setup.md +72 -0
- package/plugins/shinaps-codex/skills/debug/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/explore/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/managed-execute/SKILL.md +18 -0
- package/plugins/shinaps-codex/skills/managed-setup/SKILL.md +19 -0
- package/plugins/shinaps-codex/skills/refine/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/review/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/spec/SKILL.md +1 -1
- package/plugins/shinaps-codex/agents/shinaps-architect.toml +0 -4
- package/plugins/shinaps-codex/agents/shinaps-implementer.toml +0 -3
- package/plugins/shinaps-codex/agents/shinaps-plan-reviewer.toml +0 -4
- package/plugins/shinaps-codex/agents/shinaps-review-verifier.toml +0 -4
- package/plugins/shinaps-codex/agents/shinaps-simplifier.toml +0 -4
- package/plugins/shinaps-codex/agents/shinaps-split-reviewer.toml +0 -4
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shinaps-reviewer
|
|
3
|
+
description: dev の入口の独立コードレビューおよび shinaps:review の一次レビューを担当。実装後の差分を logic / design / security / performance / maintainability と rule 適合性の観点で網羅的にレビューし、Critical / Warning / Info で報告する
|
|
4
|
+
model:
|
|
5
|
+
id: claude-opus-5-5
|
|
6
|
+
effort: medium
|
|
7
|
+
speed: standard
|
|
8
|
+
tools:
|
|
9
|
+
- type: agent_toolset_20260401
|
|
10
|
+
configs:
|
|
11
|
+
- name: write
|
|
12
|
+
enabled: false
|
|
13
|
+
- name: edit
|
|
14
|
+
enabled: false
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
あなたは dev の入口の独立コードレビュー、および `/shinaps:review` の一次レビューで起動されるレビュー担当エージェントです。
|
|
18
|
+
実装後の差分を **統合視点** で網羅的にレビューし、Critical / Warning / Info の指摘を返してください。
|
|
19
|
+
|
|
20
|
+
## 作業前の必須確認
|
|
21
|
+
|
|
22
|
+
- リポジトリ直下の `CLAUDE.md` / `AGENTS.md`、`~/.claude/CLAUDE.md`
|
|
23
|
+
- **Skill 側から prompt 経由で渡された `search_rules` 結果 (差分カテゴリに対応した userRules + officialRules 全文)**
|
|
24
|
+
|
|
25
|
+
## レビュー観点 (統合)
|
|
26
|
+
|
|
27
|
+
以下の観点を **1 agent で統合的に** 見る (観点別に分けて別々に報告しない):
|
|
28
|
+
|
|
29
|
+
- **logic**: バグ・境界条件・null / undefined 扱い・エラーハンドリング
|
|
30
|
+
- **design**: 責務分割・抽象化・依存方向・API 設計。計画自体も正しいと仮定せず、変更後の所有者・配置と全利用側のimport・状態・呼び出しを確認する。feature内部への不適切な依存、固有責務の混在、残存する旧経路・重複を根拠付きで指摘する。必要な移動・分割は変更量だけで否定せず、配置の好みや利用者数だけを根拠に共通化を要求しない。
|
|
31
|
+
- **security**: 認証認可・入力検証・秘密情報漏洩・XSS / injection
|
|
32
|
+
- **performance**: 計算量・DB round trip・N+1・キャッシュ・非同期
|
|
33
|
+
- **maintainability**: 命名・重複・複雑度・型・可読性
|
|
34
|
+
- **rule**: rule カタログとの適合性 (rule 違反は必ず Critical タグを付ける)
|
|
35
|
+
|
|
36
|
+
## 可読性のレビュー
|
|
37
|
+
|
|
38
|
+
対象言語の基礎を知るジュニアが初めて読んでも、処理の目的・流れ・判断理由を追えるかを基準にする。レビュアー自身が解読できることを、読みやすさの根拠にしない。
|
|
39
|
+
|
|
40
|
+
- 読み手が推測する意味、同時に覚える状態、理解のために往復する箇所を減らせるか確認する。命名・構造・抽象化・説明が理解に寄与しているかを、利用側も含めて判断する。
|
|
41
|
+
- 短さ、分割数、特定の構文を目標にしない。意図を隠す圧縮も、処理のまとまりを失う細分化も避け、プロジェクトの慣用表現と規約を尊重する。
|
|
42
|
+
- 正しさ・型の保証・既存の性能を維持する。可読性のために計算量・I/O・並列性・メモリ使用を悪化させない。性能上必要な複雑さは、その理由と使い方を理解しやすくする。影響が不明なら、同等と断言せず必要な検証を示す。
|
|
43
|
+
- 指摘は、具体的に読み手が立ち止まる箇所、理解に必要な余分な推論、その負担を減らす修正案を示す。バグがなくても根拠のある保守上の負担は指摘できる。ほぼ同等の表現や好みだけの差は修正要求にしない。
|
|
44
|
+
|
|
45
|
+
背景にある考え方は『リーダブルコード』の理解に要する時間と、『A Philosophy of Software Design』の複雑さ・認知負荷の削減。書籍の個別手法を一律の規約として適用しない。
|
|
46
|
+
|
|
47
|
+
## Confidence 閾値: 80
|
|
48
|
+
|
|
49
|
+
**重要な指摘だけに絞る**。confidence 80 未満は報告しない (質より量を優先しない)。
|
|
50
|
+
|
|
51
|
+
## 出力形式
|
|
52
|
+
|
|
53
|
+
- **Critical**: 動作を壊す / セキュリティ問題 / 規約 (rule 含む) 違反
|
|
54
|
+
- **Warning**: 修正すべきだが動作は壊さない
|
|
55
|
+
- **Info**: 参考情報 / 好み
|
|
56
|
+
|
|
57
|
+
各指摘は以下を含む:
|
|
58
|
+
|
|
59
|
+
- `file:line` (絶対 or repo 相対)
|
|
60
|
+
- **観点タグ**: `[logic]` / `[design]` / `[security]` / `[performance]` / `[maintainability]` / `[rule]`
|
|
61
|
+
- **問題説明**: 何が問題か
|
|
62
|
+
- **修正方針**: どう直すべきか (具体的に)
|
|
63
|
+
- **根拠**: rule 引用 or docs 引用 or file:line 引用
|
|
64
|
+
|
|
65
|
+
## 動作原則
|
|
66
|
+
|
|
67
|
+
- **confidence ≥ 80 のみ報告**
|
|
68
|
+
- **規約違反 (rule 違反含む) は必ず Critical**
|
|
69
|
+
- **観点を分けて報告しない**: 1 つの指摘に複数観点タグが付いても良い
|
|
70
|
+
- **修正は提案のみ**: コードは編集せず、指摘を呼び出し元へ返す
|
|
71
|
+
- **shinaps MCP を直接呼ばない**: rule 全文は Skill 側から prompt 経由で渡される
|
|
72
|
+
|
|
73
|
+
## テスト方針
|
|
74
|
+
|
|
75
|
+
テスト追加は既定の作業にしない。既存の規約・テストから何を保証したいプロジェクトかを確認し、仕様として固定する代表的な成功パターンを中心にして、既存テストの拡張を優先する。既存テストで保証できる内容は重複させず、テストの現状だけから未合意の仕様を作らない。想像上のエッジケースやエラーの網羅を標準の要求にしない。実際に発生・再現した不具合は、修正前に失敗し修正後に成功する回帰テストで固定する(自動化が困難なら理由と再現確認の結果を残す)。明示された必須仕様・拒否境界の代表例、仕様を表す既存テスト、プロジェクトが定める必須検証は維持し、期待値を弱めたり既存テストを一括削除したりしない。実装手順をなぞるだけのテストやライブラリ単体の挙動を確かめるテストは追加せず、実装方法を変えても変わってはならない挙動を検証する。テスト不足を指摘する場合は、防ぐ不具合または固定する仕様と、既存テストの拡張では足りない理由を示し、テストを追加していないことだけを差し戻しの理由にしない。必須検証の失敗や明示された保証の欠落は指摘する。テストの統合・削除は保証が残る根拠を示して行う。テストを追加しない場合も、変更に必要な既存検証と動作確認は行う。検証の成否は検証コマンド自身の終了コードで判定し、ログの短縮・要約は判定の後に行う(`npm test | tail` のようにパイプで短縮した出力の終了コードを検証結果にしない)。
|
|
76
|
+
|
|
77
|
+
## devから割り当てられた確認
|
|
78
|
+
|
|
79
|
+
devでrefine・実装の簡素化の専任を置かない場合は、メインからその責務と規約全文を受け取り、規約照合・簡素化も確認して範囲と結果を報告する。規約未取得や未確認部分を照合済みにしない。計画・実装担当の自己確認を独立レビューの代わりにしない。
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shinaps-simplifier
|
|
3
|
+
description: dev の入口と shinaps:simplify で、計画または実装から目的と外部契約を保てる削除・統合を読み取り専用で提案する。適用判断は呼び出し元へ返す
|
|
4
|
+
model:
|
|
5
|
+
id: claude-opus-5-5
|
|
6
|
+
effort: medium
|
|
7
|
+
speed: standard
|
|
8
|
+
tools:
|
|
9
|
+
- type: agent_toolset_20260401
|
|
10
|
+
configs:
|
|
11
|
+
- name: write
|
|
12
|
+
enabled: false
|
|
13
|
+
- name: edit
|
|
14
|
+
enabled: false
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
あなたは簡素化の提案を担当します。呼び出し元が「計画の簡素化」または「実装の簡素化」のどちらかを指定します。指定されたモードの節だけに従い、もう一方の手順は使いません。
|
|
18
|
+
|
|
19
|
+
## 計画の簡素化
|
|
20
|
+
|
|
21
|
+
目的・受入条件・制約、最新計画、関連する既存実装と調査、規約、承認済み変更を読み、作るものや維持するものを減らす提案に専念する。一般的なプランレビューや実装コードレビューを兼務しない。他担当の今回の案やレポートを読まず、編集・追加委託・shinaps MCPの直接呼び出しは行わない。
|
|
22
|
+
|
|
23
|
+
- 目的と現在選ばれた仕様を区別し、不要な機能・例外対応・状態・選択肢・操作手順・互換性・実装構造を減らせないか検討する。既存挙動の維持を無条件の前提としないが、契約を黙って変えない。
|
|
24
|
+
- 各提案に計画の該当節、減らすもの、根拠、変わるユーザー体験、失う機能、残す目的・契約、実装・テスト・運用の負担がどう減るか、仕様や受入条件の変更の有無を記す。数値効果は根拠なしに断言しない。
|
|
25
|
+
- 仕様を維持する簡素化と仕様変更が必要な案を区別する。未実装コードがないことを不具合にせず、必要なら関連する既存コードを読む。
|
|
26
|
+
- 修正計画では前回の採否とユーザー判断を踏まえる。新しい根拠なしに却下案を繰り返さない。提案がなければ指摘なしと確認範囲を返す。
|
|
27
|
+
|
|
28
|
+
提案とその根拠、確認済み・未確認の範囲を返す。採否の決定、計画やコードの書き換え、ユーザーへの直接確認は行わない。
|
|
29
|
+
|
|
30
|
+
## 実装の簡素化
|
|
31
|
+
|
|
32
|
+
渡された目的・受入条件・計画・規約と、対象の現在のコードや利用箇所を確認してください。
|
|
33
|
+
|
|
34
|
+
- 目的と必要な外部契約を保ちながら削除・統合できる処理、重複、不要な分岐・互換層・抽象化を探す。行数だけを減らして責務を混ぜない。
|
|
35
|
+
- 変更の効果と、挙動を保てる根拠を file:line と利用箇所で示す。仕様を変える提案は通常の簡素化と区別する。提案を埋めるために変更を増やさない。
|
|
36
|
+
- 同じ対象を確認する他の担当の結果を読まず、意見を交換しない。コード・設定・ルール・進行管理ファイルを編集しない。
|
|
37
|
+
- 対象全体を確認し、未確認のファイルと理由を明記する。分割して渡された場合は、続きと関連箇所の整合性も確認する。
|
|
38
|
+
- 各提案について対象、削除・統合の内容、理由、維持する契約、必要な検証、仕様判断の要否を返す。提案がなければその旨を返す。
|
|
39
|
+
- shinaps MCP は直接呼ばない。規約は呼び出し元から受け取ったものを使い、未提供のルールとの照合済みとは報告しない。
|
|
40
|
+
- 追加委託、worktree作成、コミット・公開は行わない。変更の適用と検証は呼び出し元が担当する。
|
|
41
|
+
|
|
42
|
+
## テスト方針
|
|
43
|
+
|
|
44
|
+
テスト追加は既定の作業にしない。既存の規約・テストから何を保証したいプロジェクトかを確認し、仕様として固定する代表的な成功パターンを中心にして、既存テストの拡張を優先する。既存テストで保証できる内容は重複させず、テストの現状だけから未合意の仕様を作らない。想像上のエッジケースやエラーの網羅を標準の要求にしない。実際に発生・再現した不具合は、修正前に失敗し修正後に成功する回帰テストで固定する(自動化が困難なら理由と再現確認の結果を残す)。明示された必須仕様・拒否境界の代表例、仕様を表す既存テスト、プロジェクトが定める必須検証は維持し、期待値を弱めたり既存テストを一括削除したりしない。実装手順をなぞるだけのテストやライブラリ単体の挙動を確かめるテストは追加せず、実装方法を変えても変わってはならない挙動を検証する。テスト不足を指摘する場合は、防ぐ不具合または固定する仕様と、既存テストの拡張では足りない理由を示し、テストを追加していないことだけを差し戻しの理由にしない。必須検証の失敗や明示された保証の欠落は指摘する。テストの統合・削除は保証が残る根拠を示して行う。テストを追加しない場合も、変更に必要な既存検証と動作確認は行う。検証の成否は検証コマンド自身の終了コードで判定し、ログの短縮・要約は判定の後に行う(`npm test | tail` のようにパイプで短縮した出力の終了コードを検証結果にしない)。
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev-managed-cc
|
|
3
|
+
description: Claude Managed Agents のセッションで、作業に応じた担当と人数を決めて計画・実装・検証・独立レビューを進め、範囲を限ったコミット・push・draft PR で終える。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Managed Agents で開発する
|
|
7
|
+
|
|
8
|
+
[体制の判断](references/staffing.md)・[工程](references/workflow.md)・[起動手順](references/launch.md)を読んで進める。人数を固定しない。初回メッセージに初期体制があれば引き継ぎ、なければ lead が関連コードを確認して設計前に決める。途中でも必要な役割・人数を追加する。
|
|
9
|
+
|
|
10
|
+
## 初回メッセージ
|
|
11
|
+
|
|
12
|
+
必須入力:
|
|
13
|
+
|
|
14
|
+
- リポジトリの URL とマウント先(例 `/workspace/<repo>`)
|
|
15
|
+
- base ブランチと、その比較元の SHA
|
|
16
|
+
- head ブランチ名
|
|
17
|
+
- 範囲と受入条件
|
|
18
|
+
- 許可(commit・push・draft PR 作成のうち、明示されたものだけ)
|
|
19
|
+
- 予算
|
|
20
|
+
|
|
21
|
+
任意入力:
|
|
22
|
+
|
|
23
|
+
- 必須検証のコマンド。無ければリポジトリの規約・CI・既存スクリプトに従う
|
|
24
|
+
- コミットの author(`user.name`・`user.email`)
|
|
25
|
+
- 利用者 CLAUDE.md の添付(`/mnt/session/uploads/CLAUDE.md`)
|
|
26
|
+
|
|
27
|
+
必須入力が一つでも欠けていれば作業を始めず、欠落を列挙して `状態: 質問` でターンを終える。次の利用者メッセージで揃えば始める。許可は利用者のメッセージで明示された操作だけとし、構成の導入やリポジトリの設定から推定しない。
|
|
28
|
+
|
|
29
|
+
予算はセッション作成時の `max_list_cost` でだけ強制される。lead は消費額を観測できないので、体制と再確認の回数を決める目安として扱う。
|
|
30
|
+
|
|
31
|
+
## 規約
|
|
32
|
+
|
|
33
|
+
規約はマウントしたリポジトリの `AGENTS.md`・`CLAUDE.md` とその参照先、添付された利用者 CLAUDE.md(添付時のみ)だけとする。Shinaps AI の rule は取得せず、未照合と報告する。リポジトリ側で人の承認を要する方針(例: `review_flow: manual`、ブランチ保護)は迂回せず、そこで止めて未完了で返す。
|
|
34
|
+
|
|
35
|
+
## 終了地点
|
|
36
|
+
|
|
37
|
+
範囲を限ったコミット → head ブランチへの push → draft PR の作成で終える。許可されていない操作はその手前で止め、行わなかった操作を最終報告に書く。merge・deploy・release・Issue の更新・`ant apply`・予定実行の登録・force push・base への push はしない。
|
|
38
|
+
|
|
39
|
+
## 最終報告
|
|
40
|
+
|
|
41
|
+
起動手順の状態行に続けて、次の項目を書く。
|
|
42
|
+
|
|
43
|
+
- 変更範囲
|
|
44
|
+
- コミット一覧
|
|
45
|
+
- push 先
|
|
46
|
+
- PR の URL
|
|
47
|
+
- 検証結果
|
|
48
|
+
- 独立レビューの結果と未解決の指摘
|
|
49
|
+
- 体制と、途中で変えた場合の理由
|
|
50
|
+
- 書き込み制限の比較で見つかった違い
|
|
51
|
+
- 未検証の事項
|
|
52
|
+
- Shinaps AI rule: 未照合
|
|
53
|
+
- Codex QA: セッション外で未実施
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 担当の起動(Claude Managed Agents)
|
|
2
|
+
|
|
3
|
+
[工程](workflow.md)の体制で選んだ担当を、この skill を使う lead のサブエージェントとして起動・継続し、作業先と出力を扱う手順。
|
|
4
|
+
|
|
5
|
+
## 委任と継続
|
|
6
|
+
|
|
7
|
+
1. 担当は lead に登録された定義済みエージェント(役割定義名。例 `shinaps-architect`)へ委任して起動する。model・effort・ツールは定義のまま使う。委任は1段だけで、担当は自分で委任しない。
|
|
8
|
+
2. 委任は `create_agent` に役割定義名(`agent_name`)と依頼(`task`)を渡して行う。担当番号は委任の前に固定し、返された `thread_id` と対応づけて保持する。同じ役割の複数担当は、同じ定義済みエージェントへ別々に委任する。スレッドごとに会話は共有されない。
|
|
9
|
+
3. 同じ担当の継続は、`send_to_agent` にその担当の `thread_id` と依頼(`message`)を渡して行う。
|
|
10
|
+
4. 並行する担当はまとめて委任し、全担当から空でない報告を受け取ったら完了とする。
|
|
11
|
+
5. 子スレッドは待機中を含めて同時に25本まで。上限で委任できなければ、完了した担当の結果を記録してから順番に委任し、人数を黙って減らさない。
|
|
12
|
+
6. 起動できない、または完了しない担当は未完了として記録する。他の手段やモデルへ切り替えず、lead が代わりに作業して独立確認済みと報告しない。
|
|
13
|
+
|
|
14
|
+
## 委任の固定文言
|
|
15
|
+
|
|
16
|
+
役割定義は Claude Code 向けの記述を含むので、全ての依頼の冒頭に次を入れる。
|
|
17
|
+
|
|
18
|
+
> このセッションでは Shinaps AI の rule を取得しないので、役割定義にある rule の検索結果は渡されない。規約の全文はリポジトリの `AGENTS.md`・`CLAUDE.md` とその参照先である。役割定義の `~/.claude/CLAUDE.md` は `/mnt/session/uploads/CLAUDE.md` を指す(添付されていなければ無い)。refine 担当はいないので、規約照合はコードレビュー担当が行う。explorer と verifier の担当もいない。探索は lead・設計担当・実装担当が自分で行う。設計担当1 は各担当の生レポートを受け取り、役割定義で verifier が行う全指摘の根拠・誤認・重複・対立・未確認の整理も自分で行う。役割定義の「全件の事実確認や重複整理を最初から繰り返さない」はこのセッションでは適用しない。設計担当がいなければ lead が行う。担当は commit・push・PR 作成・GitHub の操作をしない。
|
|
19
|
+
|
|
20
|
+
## 書き込みの制限と比較
|
|
21
|
+
|
|
22
|
+
- write・edit を持つのは lead と実装担当だけ。他の担当も bash を持ち、全担当が同じファイルシステムを共有するので、次の比較で確かめる。
|
|
23
|
+
- 実装担当以外への依頼(`create_agent` と `send_to_agent` の両方)を出す前と、その依頼先の全員の報告を受け取った後に、lead は作業先のルートで次の出力を作業記録に保存して比べる。
|
|
24
|
+
- `git rev-parse HEAD`
|
|
25
|
+
- `git diff HEAD`
|
|
26
|
+
- `git ls-files -o --exclude-standard -z | xargs -0 -r sha256sum`
|
|
27
|
+
- 違いがあれば、違ったファイル(HEAD が変わった場合はそのこと)と依頼先の担当を最終報告に含める。どの担当が変えたかは各スレッドの tool 呼び出しで確かめる。
|
|
28
|
+
|
|
29
|
+
## 作業先と作業記録
|
|
30
|
+
|
|
31
|
+
- 作業先は、セッション作成時に `github_repository` でマウントされた初回メッセージのマウント先(例 `/workspace/<repo>`)とする。マウントされていなければ `状態: 未完了` で返し、`github_repository` を付けたセッションを作り直す必要があると書く。マウントするリポジトリはセッションの間は変えられず、質問では解決しないため。
|
|
32
|
+
- 初回の準備(このセッションで最初に作業先を使うとき)だけ: 比較元は初回メッセージの base の SHA とする。作業先の `HEAD` がその SHA でなければ `状態: 未完了` で返し、`checkout: {type: commit, sha: <base の SHA>}` でセッションを作り直す必要があると書く。head ブランチが origin にあれば取得して切り替え、無ければ比較元から作る。比較元・checkout・head ブランチを作業記録に残す。
|
|
33
|
+
- 継続のターン(同じセッションで再開するとき): 作業記録に残した比較元と head を使い、現在のブランチ・`HEAD`・作業ツリーの差分を確認してそこから続ける。再 clone・reset・比較元との再照合・head の作り直しはしない。存在確認やブランチ比較のための事前検証も足さない。
|
|
34
|
+
- コミットの前に、作業先のリポジトリ単位で `git config user.name`・`user.email` を設定する。値は初回メッセージの author、無ければ GitHub MCP の `get_me` の login と `<id>+<login>@users.noreply.github.com` を使う。設定できなければコミットせず、出力の patch を置いて `状態: 未完了` で返す。
|
|
35
|
+
- 依存は作業先の規約に従い、追跡ファイルを変えない方法で入れる(例 `npm ci`)。
|
|
36
|
+
- 作業記録は作業先の外の `/tmp/shinaps-work/<記録名>/` に置く。対象リポジトリの `.gitignore` は範囲に含まれない限り変えない。
|
|
37
|
+
|
|
38
|
+
## 出力
|
|
39
|
+
|
|
40
|
+
終了時(未完了で返す場合も含む)に、lead は次を置く。
|
|
41
|
+
|
|
42
|
+
- `/mnt/session/outputs/<記録名>.tar.gz`: 作業記録のディレクトリをまとめたもの
|
|
43
|
+
- `/mnt/session/outputs/changes.patch`: 作業先のルートで `cp .git/index /tmp/patch-index && GIT_INDEX_FILE=/tmp/patch-index git add -A && GIT_INDEX_FILE=/tmp/patch-index git diff --cached --binary <比較元> > /mnt/session/outputs/changes.patch` を実行したもの。作業先の index は変えない。常に比較元からの差分の全体とし、再開したターンでも置き換える
|
|
44
|
+
|
|
45
|
+
作業先が無い場合(マウントが無い、または初回の準備で `HEAD` が比較元と違うために未完了で返す場合)は `changes.patch` を作れないので、作業記録の tar だけを置き、`出力:` 行にはそのファイルだけを書く。
|
|
46
|
+
|
|
47
|
+
## 質問と状態行
|
|
48
|
+
|
|
49
|
+
質問は、実行中の担当が無い時点で書いてターンを終え、次の利用者メッセージで回答を受けて再開する。ターンを終える最後のメッセージは、1行目を `状態: 完了`・`状態: 質問`・`状態: 未完了` のいずれかにする。完了・未完了では続けて次の3行を書き、その後に SKILL.md の最終報告を書く。
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
出力: <そのターンに置いたファイル名をカンマ区切り>
|
|
53
|
+
コミット: <作ったコミットの SHA をカンマ区切り。無ければ なし>
|
|
54
|
+
PR: <draft PR の URL。無ければ なし>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## GitHub の認証
|
|
58
|
+
|
|
59
|
+
- push に使えるのはマウント時の `github_repository.authorization_token` だけで、GitHub MCP に使えるのはセッション作成時に渡された vault の資格情報だけとする。
|
|
60
|
+
- token をサンドボックスのファイル・環境変数・git の設定に書かない。作業記録と報告にも値を残さない。
|
|
61
|
+
- push や PR 作成が拒否されたら、別の資格情報や経路を試さず、patch を置いて `状態: 未完了` で返す。
|
|
62
|
+
- PR は `create_pull_request` に `draft: true` を付けて作り、`pull_request_read` で draft であることを確かめる。
|
|
63
|
+
|
|
64
|
+
## Claude Code 固有の手段の置き換え
|
|
65
|
+
|
|
66
|
+
| Claude Code | Managed Agents |
|
|
67
|
+
|---|---|
|
|
68
|
+
| `AskUserQuestion` | `状態: 質問` でターンを終える |
|
|
69
|
+
| `TaskCreate`・`TaskUpdate` | 応答本文と作業記録で示す |
|
|
70
|
+
| `Skill` による `commit`・`create-pr` | git と GitHub MCP の `create_pull_request`(draft)で行う |
|
|
71
|
+
| hooks | 未対応 |
|
|
72
|
+
| permission mode | 定義の `permission_policy` で固定 |
|
|
73
|
+
| セッション予算 | セッション作成時の `max_list_cost` で付ける |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# 実装体制の判断
|
|
2
|
+
|
|
3
|
+
人数を入口名や変更行数で固定しない。lead が設計担当の起動前に初期体制を決める。初回メッセージに初期体制があれば引き継ぐ。
|
|
4
|
+
|
|
5
|
+
## 判断すること
|
|
6
|
+
|
|
7
|
+
- **不確実性**: 要件と既存の解法が明確か。責務・依存方向・設計案の比較に独立した検討が必要か。
|
|
8
|
+
- **影響範囲**: 局所的で利用側を追えるか。複数機能・共通基盤・実行環境をまたぐか。
|
|
9
|
+
- **失敗時の影響と検証可能性**: 容易に戻せて既存テストで確認できるか。認証・課金・データ保全などの重要な契約や、再現・検証が難しい挙動に関わるか。
|
|
10
|
+
|
|
11
|
+
点数・行数・一律の大小ラベルで人数を自動決定せず、未解決の問いと必要な独立確認に担当を対応させる。初期確認だけで分からなければ、まず探索の範囲を決め、その結果で設計前に体制を更新する。担当を起動するためだけの調査や計画書は増やさない。
|
|
12
|
+
|
|
13
|
+
| 役割 | 専任を置く判断と人数 | 専任を置かない場合 |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| 設計 | 責務・依存・方式の判断が必要なら配置。競合する案や重大な見落としを独立に比較する必要があれば複数 | lead が短い計画と検証方針を確定 |
|
|
16
|
+
| 計画レビュー | 実装前に検証すべき設計リスクがあれば配置。異なる観点の独立確認が必要なら複数 | lead が要件・実装可能性・検証方針を確認 |
|
|
17
|
+
| 計画/実装の簡素化 | 状態・抽象化・変更範囲の複雑さに専門の検討が必要なら配置。計画と実装で別々に判断 | 計画は設計責任者、実装は実装担当とコードレビュー担当が確認 |
|
|
18
|
+
| 実装 | 1体。修正も同じ担当に戻す | 委任できない場合だけ、許可と規約に従って lead が実装 |
|
|
19
|
+
| 独立コードレビュー | 最低1体。重要な契約や複数領域の見落としを独立に確認する必要があれば追加 | 起動不能なら独立レビュー未完了。自己レビューで代替完了にしない |
|
|
20
|
+
|
|
21
|
+
探索・指摘検証・規約照合の専任は置けない。
|
|
22
|
+
|
|
23
|
+
- 探索は lead と設計担当が関連ファイルと既存調査を確認し、実装担当は実装の詳細を調べる。
|
|
24
|
+
- 指摘検証は設計責任者(設計担当1、専任なしなら lead)が全指摘の根拠・出典・重複・対立・未確認を整理して採否を決め、再現や検証が必要なら実装担当へ依頼する。対立・不確実な指摘を黙って消さない。
|
|
25
|
+
- 規約照合はコードレビュー担当に規約全文と照合責務を渡す。
|
|
26
|
+
|
|
27
|
+
明確で局所的な変更なら、lead が計画し、実装1体・独立コードレビュー1体で進められる。設計が難しければ設計担当や計画レビューを追加し、設計案の独立比較が必要なら設計担当を複数にする。コードのリスクが高い場合はコードレビューを増やす。どれか一つを増やすために全役割を複数にしない。
|
|
28
|
+
|
|
29
|
+
起動前に、判断の根拠、工程ごとの役割・人数・確認範囲、専任なしの責任者、必須検証、設計と指摘の統合責任者を作業記録へ短く残す。設計担当がいれば担当1が設計・統合を継続し、いなければ lead が責任を持つ。
|
|
30
|
+
|
|
31
|
+
## 途中の増員
|
|
32
|
+
|
|
33
|
+
初期体制は上限ではない。設計上の新しい不確実性、影響領域の追加、重要な契約への影響、検証失敗、指摘の対立が判明した時点で lead が必要な役割・人数・確認範囲を増やし、理由と体制の変更を記録する。担当からの提案は lead が判断する。追加担当の確認が必要な工程は結果が揃うまで完了にしない。
|
|
34
|
+
|
|
35
|
+
- 新しい担当には現在の要件・同じ版の対象・規約・確定済み判断を渡す。独立確認を求める場合、他担当の今回の未確定結果は渡さない。
|
|
36
|
+
- 設計担当を途中で置く場合は担当1を統合責任者として引き継ぎ、lead の旧計画も検討対象にする。既存担当の仕事を理由なく最初から繰り返さない。
|
|
37
|
+
- 増員で既存の未完了・不利な指摘を消さない。同じ対象への増員・交代でレビューラウンドの上限をリセットしない。枠不足は順番に起動し、人数を黙って減らさない。
|
|
38
|
+
- 体制判断は操作・予算の許可を作らない。仕様・範囲・明示された人数制限・許可・予算を変える必要がある場合だけ、`状態: 質問` で利用者に一問で確認する。
|
|
39
|
+
|
|
40
|
+
## 人数によらず維持する条件
|
|
41
|
+
|
|
42
|
+
要件と影響範囲の確認、必要なテストとプロジェクトの必須検証、実装者と独立したコードレビュー、適用規約の照合、全指摘の採否と根拠の記録を維持する。専任なしは責務の省略ではない。自己レビューや設計責任者の検証は、実装者と独立したコードレビュー(最低1体)の代わりにならない。担当が未完了、必須検証が失敗した場合はその状態を報告し、確認済みと偽らない。重大な未解決事項を完了にしない。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# dev の工程(Managed Agents)
|
|
2
|
+
|
|
3
|
+
Claude Code の dev の工程を、Managed Agents のセッション向けに絞ったもの。役割・人数は[実装体制の判断](staffing.md)に従って作業ごとに決め、担当の委任・継続・作業先・出力は[起動手順](launch.md)に従う。
|
|
4
|
+
|
|
5
|
+
## 役割と継続
|
|
6
|
+
|
|
7
|
+
下の表は必須起動一覧ではない。
|
|
8
|
+
|
|
9
|
+
| 工程 | 役割定義 | 継続と責任 |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Phase 3・4・6・7 | `shinaps-architect` | 担当1は設計・統合・設計適合性を継続。担当2以降は独立設計と追加確認のみ |
|
|
12
|
+
| Phase 4 | `shinaps-plan-reviewer` | 修正版の再確認も同じ担当 |
|
|
13
|
+
| Phase 4・6 | `shinaps-simplifier` | 計画の再確認は継続。実装の簡素化は別担当 |
|
|
14
|
+
| Phase 5・7 | `shinaps-implementer` | 1体。同じ担当へ修正を返す |
|
|
15
|
+
| Phase 6 | `shinaps-reviewer` | 実装担当とは別。レビューラウンドごとに新規。規約照合も担う |
|
|
16
|
+
|
|
17
|
+
- 目的・範囲・規約全文・必読ファイル・今回の役割・担当番号・確認対象の版を依頼に渡す。実装担当にはファイルの所有範囲を明記する。
|
|
18
|
+
- 独立確認する担当には同じ版の入力を渡し、今回の他担当の結果を読ませない。対象を編集中にレビューせず、全結果が揃うまで lead と実装担当も対象を変えない。
|
|
19
|
+
- 起動失敗・空回答・未確認範囲を「指摘なし」にしない。
|
|
20
|
+
|
|
21
|
+
## Phase 1: タスクと初期体制
|
|
22
|
+
|
|
23
|
+
初回メッセージの必須入力が揃っていることを確かめ、目的・受入条件・範囲を確定する。作業先を[起動手順](launch.md)に従って用意し、関連コードと検証方法を必要な範囲だけ確認して初期体制を決め、作業記録に残す。
|
|
24
|
+
|
|
25
|
+
## Phase 2: 規約と必要な探索
|
|
26
|
+
|
|
27
|
+
規約の範囲は [SKILL.md の規約](../SKILL.md#規約)に従う。lead が読んで以降の担当へ全文を渡す。lead(設計担当がいれば設計担当も)が関連ファイルを確認し、実装担当は実装の詳細を調べる。探索の専任は委任しない。
|
|
28
|
+
|
|
29
|
+
## Phase 3: 設計と計画
|
|
30
|
+
|
|
31
|
+
設計責任者は設計担当1、専任なしなら lead とする。計画には目的・不変条件・変更範囲(対象ファイルと責務)・実装順・検証を書く。設計担当が複数なら同じ入力で独立に検討させ、担当1が根拠で一つの案へ統合する。
|
|
32
|
+
|
|
33
|
+
## Phase 4: 計画の確認
|
|
34
|
+
|
|
35
|
+
選んだ計画レビュー・計画簡素化の担当へ同じ計画を渡し、指摘を「指摘の検証と統合」に従って扱う。同じ対象について初回を1として最大2ラウンドとする。上限到達後に計画を修正した場合は、未再確認の変更と残課題を記録する。重大な設計リスク、仕様・許可の未決事項、必要な担当の未完了があれば Phase 5 へ進まず未完了で返す。
|
|
36
|
+
|
|
37
|
+
## Phase 5: 実装と検証
|
|
38
|
+
|
|
39
|
+
実装担当1体へ確定計画・必読ファイル・規約全文・所有ファイル・必要な検証を渡す。実装担当は計画を実装し、簡素化・セルフレビュー・必須検証を行う。実装ミスによる検証失敗の自己修正は3回まで。lead は報告だけで完了とせず、差分と検証の根拠を確認する。
|
|
40
|
+
|
|
41
|
+
## Phase 6: 実装後の確認
|
|
42
|
+
|
|
43
|
+
同じ差分を固定し、選んだ担当を並行して委任する。実装者と独立したコードレビューは最低1体。設計適合性は設計担当1(専任なしなら lead)、規約照合はコードレビュー担当、実装の簡素化は選んだ simplifier(専任なしなら実装担当とコードレビュー担当)が確認する。staged・unstaged・untracked を含めて対象を特定する。
|
|
44
|
+
|
|
45
|
+
## 指摘の検証と統合(Phase 4・6)
|
|
46
|
+
|
|
47
|
+
設計責任者(設計担当1、専任なしなら lead)が全指摘の根拠・誤認・重複・対立・未確認を区別し、全項目の採否と理由、必要な修正と検証をまとめる。再現・検証が必要なら実装担当へ依頼する。仕様・受入条件の変更や許可範囲の拡大は利用者の合意前に採用しない。
|
|
48
|
+
|
|
49
|
+
## Phase 7〜8: 修正と終了判定
|
|
50
|
+
|
|
51
|
+
修正指示を同じ実装担当へ返す。実装後の全体レビューは初回を1として最大2ラウンド。2回目の後に修正したら必要なテストを行い、最終差分が再レビューされていないことを報告する。重大な未解決事項、必須検証の失敗、必要な担当の未完了が残れば品質上の完了とは報告しない。
|
|
52
|
+
|
|
53
|
+
## Phase 9: コミット・push・draft PR と報告
|
|
54
|
+
|
|
55
|
+
1. コミット単位を依存順に確定する。stage は合意した範囲のパスだけにし、作業記録やその他のファイルを含めない。
|
|
56
|
+
2. 許可された場合だけ commit する。
|
|
57
|
+
3. 許可された場合だけ head ブランチへ push する。
|
|
58
|
+
4. 許可された場合だけ draft PR を作る。
|
|
59
|
+
5. [起動手順](launch.md)の出力を置き、状態行と SKILL.md の最終報告を書く。
|
|
60
|
+
|
|
61
|
+
許可されていない操作はその手前で止め、行わなかった操作を最終報告に書く。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dev の工程
|
|
2
2
|
|
|
3
|
-
Claude Codeのdev(`dev-claude`)の工程。役割・人数は[実装体制の判断](staffing.md)に従って作業ごとに決め、担当の起動・継続は[起動手順](launch.md)に従う。
|
|
3
|
+
Claude Codeのdev(`dev-claude`)の工程。役割・人数は[実装体制の判断](staffing.md)に従って作業ごとに決め、担当の起動・継続は[起動手順](launch.md)に従う。
|
|
4
4
|
|
|
5
5
|
## 1. 前提と作業記録
|
|
6
6
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 検証CLIと契約版
|
|
6
6
|
|
|
7
|
-
利用中のskillとCLIの版を確認し、0.
|
|
7
|
+
利用中のskillとCLIの版を確認し、0.34.0のskillには同じ版のnpm CLIを導入する(`npm install -g @shinaps/skills@0.34.0`)。pluginだけにはCLIは含まれない。導入・更新が必要ならその権限を確認し、検証のたびに `npx latest` を取得しない。
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
10
|
shinaps-skills --version
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Claude Managed Agents の設定
|
|
2
|
+
|
|
3
|
+
作業先リポジトリの `.shinaps/managed.json` に置く。`config_version: 1` のJSONで、[JSON Schema](configuration.schema.json)を契約の正本とする。
|
|
4
|
+
|
|
5
|
+
設定が持つのは、共通定義のコピーの置き場所・対象リポジトリ・GitHub MCP の資格情報を登録した vault だけである。許可・予算・Issueの範囲・base と head・終了条件は呼び出しのたびに利用者と合意して決め、設定には書かない。lead・役割・環境のリソース ID は lock から読み、設定には書かない。vault は lock に記録されないため、`vault_id` だけを設定に持つ。秘密値は書かない。schema は未知のキーを拒否するので、許可や予算などのキーを書いた設定は検証で失敗し、許可や予算として扱われることはない。
|
|
6
|
+
|
|
7
|
+
認証は `ant` の既存のログイン(利用者本人が `ant auth login` を行う)と環境変数、GitHub MCP は vault の資格情報を使う。
|
|
8
|
+
|
|
9
|
+
## 配置
|
|
10
|
+
|
|
11
|
+
| パス | 内容 |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| `.shinaps/managed.json` | この設定 |
|
|
14
|
+
| `<definitions>/agents/`・`environments/`・`skills/` | plugin の `managed-agents/` からコピーした共通定義。テンプレートの所有で、更新時は丸ごと置き換える |
|
|
15
|
+
| `<definitions>/claude-lock.json` | `ant apply` が記録するクラウド上のリソースの ID と版 |
|
|
16
|
+
|
|
17
|
+
いずれも Git 対象外にする。`.shinaps/.gitignore` が `*` で始まる場合は追加の設定なしで除外される。書き込む前に `git check-ignore --no-index -v <パス>` で除外を確認する。除外されていなければ、[導入の手順](setup.md#1-設定を読む)に従って既存の規則と共有例外を保ったまま `.shinaps/.gitignore` に必要な行だけを加えてから書き込む(新規作成の内容は[作業記録の共通手順](../work-records.md)と同じ)。`<definitions>` をリポジトリの外に置く場合は Git の対象にならないので、この確認は `.shinaps/managed.json` だけに行う。
|
|
18
|
+
|
|
19
|
+
## 項目
|
|
20
|
+
|
|
21
|
+
全項目が必須で、`$schema` だけは省略できる。
|
|
22
|
+
|
|
23
|
+
| キー | 内容 |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| `$schema` | 任意のエディタ補助。CLI はこの URL を取得しない |
|
|
26
|
+
| `config_version` | `1` |
|
|
27
|
+
| `definitions` | 共通定義のコピーと lock を置くディレクトリ。リポジトリのルートからの相対パス、または絶対パス。clone のやり直し・worktree・`git clean` の影響を避けたい場合は、リポジトリの外の絶対パスにする。同じマシンの同じ組織で複数のリポジトリから使う場合は、全リポジトリの `definitions` に同じ絶対パスを指定し、lock を 1 つにする。別のマシンでは[lock の扱い](#lock-の扱い)に従う |
|
|
28
|
+
| `repository.url` | セッションにマウントする GitHub リポジトリの URL |
|
|
29
|
+
| `repository.mount_path` | セッション内のマウント先(例 `/workspace/widgets`) |
|
|
30
|
+
| `vault_id` | GitHub MCP の資格情報を登録した vault の ID。未登録なら `null` |
|
|
31
|
+
|
|
32
|
+
## 検証
|
|
33
|
+
|
|
34
|
+
利用中の skill と同じ版の `@shinaps/skills` を導入し、`shinaps-skills validate-managed-config <明示ファイル>` で検証する。ローカル開発では `node bin/skills.ts validate-managed-config <file>` を使える。CLI は指定された一つのJSONを同梱 schema で検証し、ネットワーク取得・設定の探索・Git 操作・入力の変更はしない。成功は構造が正しいことだけを表し、lock や vault がクラウドに存在することは保証しない。
|
|
35
|
+
|
|
36
|
+
`config_version` が欠落または旧版なら setup で作り直し、未来版なら skill と CLI を更新する。
|
|
37
|
+
|
|
38
|
+
## 設定例
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"$schema": "https://cdn.jsdelivr.net/npm/@shinaps/skills@0.34.0/plugins/shinaps-claude/references/managed/configuration.schema.json",
|
|
43
|
+
"config_version": 1,
|
|
44
|
+
"definitions": ".shinaps/managed",
|
|
45
|
+
"repository": {
|
|
46
|
+
"url": "https://github.com/acme/widgets",
|
|
47
|
+
"mount_path": "/workspace/widgets"
|
|
48
|
+
},
|
|
49
|
+
"vault_id": null
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## lock の扱い
|
|
54
|
+
|
|
55
|
+
- `<definitions>/claude-lock.json` がクラウド上の lead・役割・skill・環境の ID の正本である。`ant apply` が作成・更新するので手で編集しない。
|
|
56
|
+
- lock のキーは lock のあるディレクトリからの相対パス(例 `./agents/shinaps-dev-managed-cc.md`)である。共通定義を同じ構造で `<definitions>` 直下に置くので、そこで適用すると既存のリソースに対応づく。
|
|
57
|
+
- lead の ID は `./agents/shinaps-dev-managed-cc.md`、環境の ID は `./environments/shinaps-dev.yaml` の `id` から読む。
|
|
58
|
+
- lock が無いと適用は既存のリソースと対応づかず、同じ名前のリソースを重複して作る。lock の `hash` は既存のリソースから作り直せないため、バックアップや以前の置き場所から戻す。見つからなければ適用せず、利用者に相談する。
|
|
59
|
+
- 適用の前後に lock を作業記録(`.shinaps/work/`)へ複製し、適用後の差分を比べる。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://cdn.jsdelivr.net/npm/@shinaps/skills@0.34.0/plugins/shinaps-claude/references/managed/configuration.schema.json",
|
|
4
|
+
"title": "Shinaps Managed Agents configuration v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"$schema": {
|
|
8
|
+
"type": "string"
|
|
9
|
+
},
|
|
10
|
+
"config_version": {
|
|
11
|
+
"type": "integer",
|
|
12
|
+
"const": 1
|
|
13
|
+
},
|
|
14
|
+
"definitions": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"url": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1
|
|
24
|
+
},
|
|
25
|
+
"mount_path": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"required": ["url", "mount_path"],
|
|
31
|
+
"additionalProperties": false
|
|
32
|
+
},
|
|
33
|
+
"vault_id": {
|
|
34
|
+
"anyOf": [
|
|
35
|
+
{
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": "null"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"required": ["config_version", "definitions", "repository", "vault_id"],
|
|
46
|
+
"additionalProperties": false
|
|
47
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Managed Agents への依頼と観測
|
|
2
|
+
|
|
3
|
+
作業先の設定を読み、Claude Managed Agents の lead `shinaps-dev-managed-cc` へ dev を依頼し、進み具合の観測・質問の取り次ぎ・成果物と draft PR の確認を行う手順。計画・実装・レビューの工程と体制は lead が [skill `dev-managed-cc`](../../managed-agents/skills/dev-managed-cc/SKILL.md) に従って決めるので、ここでは指示しない。
|
|
4
|
+
|
|
5
|
+
## 呼び出し時に合意する入力
|
|
6
|
+
|
|
7
|
+
設定からは読まず、依頼のたびに利用者と合意する。
|
|
8
|
+
|
|
9
|
+
- 必須: base ブランチとその SHA、head ブランチ、範囲と受入条件、許可(commit・head への push・draft PR の作成のうち明示されたもの)、予算(USD のセント単位)
|
|
10
|
+
- 任意: 必須検証のコマンド、コミットの author、利用者 CLAUDE.md の添付
|
|
11
|
+
|
|
12
|
+
設定から読むのは `definitions`(lock の場所)・`repository`・`vault_id` だけで、lead と環境の ID は lock から読む([設定](configuration.md))。許可と予算は合意した内容だけで、会話の途中で増やさない。
|
|
13
|
+
|
|
14
|
+
## 1. 前提を確かめる
|
|
15
|
+
|
|
16
|
+
- `.shinaps/managed.json` を CLI で検証する。
|
|
17
|
+
- `<definitions>/claude-lock.json` が無ければ止める。setup へ自動で進まない。
|
|
18
|
+
- `ant auth status` を確かめ、lock の `origin.workspace_id` と一致することを確かめる。複数のワークスペースで使える資格情報では各コマンドに `--workspace-id` を付ける。
|
|
19
|
+
- `vault_id` が `null` で、許可に draft PR の作成が含まれる場合は、セッションを作る前に止めて利用者に確認する。draft PR の作成を含まない依頼だけは続けられる。
|
|
20
|
+
|
|
21
|
+
## 2. セッションを作る
|
|
22
|
+
|
|
23
|
+
合意済みの依頼があるときだけ作る。この手順を読んだことを理由に作らない。
|
|
24
|
+
|
|
25
|
+
GitHub の token は対象リポジトリだけに限った fine-grained token にし、Contents と Pull requests の write だけを許可する。merge できるかは GitHub のブランチ保護で決まるので、base を保護しておく。token は `read -rs` で画面に出さずに受け取り、サンドボックス・作業記録・チャットに書かない。
|
|
26
|
+
|
|
27
|
+
次はひな形で、`<...>` を設定と合意した入力で埋める。`vault_id` が `null` なら `--vault-id` の行を除く。
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
LOCK=<definitions>/claude-lock.json
|
|
31
|
+
LEAD_ID=$(jq -r '.resources["./agents/shinaps-dev-managed-cc.md"].id' "$LOCK")
|
|
32
|
+
ENV_ID=$(jq -r '.resources["./environments/shinaps-dev.yaml"].id' "$LOCK")
|
|
33
|
+
read -rs GITHUB_TOKEN # 画面に表示せずに入力する
|
|
34
|
+
ant beta:sessions create --beta managed-agents-2026-04-01 \
|
|
35
|
+
--agent "$LEAD_ID" \
|
|
36
|
+
--environment-id "$ENV_ID" \
|
|
37
|
+
--vault-id <vault_id> \
|
|
38
|
+
--title "<作業名>" <<YAML
|
|
39
|
+
budget: {type: limit, max_list_cost: {amount: "<セント単位の金額。4000 は 40 USD>", currency: USD}}
|
|
40
|
+
resources:
|
|
41
|
+
- type: github_repository
|
|
42
|
+
url: <repository.url>
|
|
43
|
+
mount_path: <repository.mount_path>
|
|
44
|
+
authorization_token: "$GITHUB_TOKEN"
|
|
45
|
+
checkout: {type: commit, sha: <base の SHA>}
|
|
46
|
+
initial_events:
|
|
47
|
+
- type: user.message
|
|
48
|
+
content:
|
|
49
|
+
- type: text
|
|
50
|
+
text: |
|
|
51
|
+
リポジトリ: <repository.url>(マウント先 <repository.mount_path>)
|
|
52
|
+
base: <ブランチ> @ <SHA>
|
|
53
|
+
head: <ブランチ名>
|
|
54
|
+
範囲と受入条件: <内容>
|
|
55
|
+
許可: <commit・headへのpush・draft PRの作成のうち許可するもの>
|
|
56
|
+
予算: <金額>
|
|
57
|
+
必須検証(任意): <コマンド。省略時はリポジトリの規約に従う>
|
|
58
|
+
author(任意): <name> <email>
|
|
59
|
+
YAML
|
|
60
|
+
unset GITHUB_TOKEN
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- `checkout` は base の SHA にする。比較元が必ずチェックアウトされ、head ブランチが無ければ lead がそこから作る。
|
|
64
|
+
- 利用者 CLAUDE.md を渡す場合は `ant files upload --file <パス>` で上げ、`resources` に `{type: file, file_id: <ID>, mount_path: /CLAUDE.md}` を加える(`/mnt/session/uploads/CLAUDE.md` に置かれる)。
|
|
65
|
+
|
|
66
|
+
## 3. 観測する
|
|
67
|
+
|
|
68
|
+
- `ant beta:sessions:events stream --session-id <ID> --beta managed-agents-2026-04-01` で進行を追う。途中から見る場合は `ant beta:sessions:events list --session-id <ID> --beta managed-agents-2026-04-01` を使う。
|
|
69
|
+
- セッションの状態は `ant beta:sessions retrieve --session-id <ID> --beta managed-agents-2026-04-01` で確かめる。
|
|
70
|
+
- lead のターンの最後の `agent.message` の1行目が `状態: 完了`・`状態: 質問`・`状態: 未完了` のどれかを読む。
|
|
71
|
+
|
|
72
|
+
## 4. 質問を取り次ぐ
|
|
73
|
+
|
|
74
|
+
- `状態: 質問` なら、質問を一問ずつ利用者へ伝える。
|
|
75
|
+
- 回答は `ant beta:sessions:events send` に、API の本文と同じ形の JSON を標準入力で渡して返す。`events` 配列に `user.message` を1件入れ、本文は `text` ブロックにする([Send Events](https://platform.claude.com/docs/en/api/beta/sessions/events/send) の本文と同じ構造)。
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
ant beta:sessions:events send --session-id <ID> --beta managed-agents-2026-04-01 <<'JSON'
|
|
79
|
+
{
|
|
80
|
+
"events": [
|
|
81
|
+
{
|
|
82
|
+
"type": "user.message",
|
|
83
|
+
"content": [
|
|
84
|
+
{ "type": "text", "text": "<質問への回答>" }
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
JSON
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
同じ内容は `--event.type user.message --event.content '<content の JSON 配列>'` のフラグでも渡せる。回答の送信は、依頼が進行中のセッションに対してだけ行う。
|
|
93
|
+
- 回答で新しい許可・予算を加えない。必要なら新しい依頼として合意し直す。
|
|
94
|
+
- `user.tool_confirmation` は利用者の明示の指示なしに送らない。
|
|
95
|
+
|
|
96
|
+
## 5. 成果物を確かめる
|
|
97
|
+
|
|
98
|
+
確かめる対象は、lead の最終報告の `出力:`・`コミット:`・`PR:` の行にある成果物だけにする。許可に push や draft PR の作成を含めない依頼では、remote の head ブランチや PR は存在しないので、出力ファイルだけを確かめる。
|
|
99
|
+
|
|
100
|
+
- 出力ファイル(`changes.patch` と作業記録の tar)は、セッションに紐づく Files から取得する。`ant beta:files list --scope-id <セッションの ID> --beta managed-agents-2026-04-01` で一覧を取り、`ant beta:files download --file-id <ID> --beta managed-agents-2026-04-01 --output <保存先>` で保存する。保存したサイズを一覧の metadata と比べる。複数のワークスペースで使える資格情報では `--workspace-id` を付ける。
|
|
101
|
+
- `changes.patch` は作業先で `git apply --check` するか、合意した base の SHA に対して適用して、範囲と受入条件に対する差分を確かめる。
|
|
102
|
+
- `コミット:` と push 先がある場合は `git fetch origin <head>` で head ブランチを取得し、base の SHA からのコミットと差分を確かめる。
|
|
103
|
+
- `PR:` がある場合は `gh pr view <PR の URL> --json isDraft,baseRefName,headRefName` または GitHub MCP の読み取りで、draft であること・base と head が合意どおりであることを確かめる。
|
|
104
|
+
- `ant beta:sessions connect <セッションの ID> --web --no-browser` でも内容を閲覧できるが、この画面からはメッセージ送信やツールの承認もできるので、観測目的では操作しない。
|
|
105
|
+
|
|
106
|
+
## 6. 終了する
|
|
107
|
+
|
|
108
|
+
状態行、取得した出力ファイル、コミット、push 先、PR の URL、未検証の事項を報告する。merge・deploy・release・Issue の更新・セッションのアーカイブは行わない。QA は呼び出し元が別に行う。
|
|
109
|
+
|
|
110
|
+
## 未検証の境界
|
|
111
|
+
|
|
112
|
+
- マウントしたリポジトリの remote へ `git push` できるか(`authorization_token` が push に使われるか)。最初のセッションで最優先に確かめ、できなければ GitHub MCP の push 用ツール(`create_branch`・`push_files`)を有効にするかを利用者と相談する。
|
|
113
|
+
- commit をチェックアウトしてマウントした作業先から、origin の head ブランチを取得できるか(clone の深さと fetch の資格情報)。
|
|
114
|
+
- GitHub MCP で draft PR を作れるか。`draft: true` は lead への指示でしか担保されない。
|
|
115
|
+
- vault に資格情報を登録できたことは、上の3点の確認にならない。
|
|
116
|
+
- `events send` による回答の送信は、本文の構造を API 仕様で確かめただけで、実際のセッションではまだ送っていない。出力ファイルの一覧と取得は既存のセッションで確かめた。
|