@shinaps/skills 0.11.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/.agents/plugins/marketplace.json +10 -0
- package/LICENSE +21 -0
- package/README.md +143 -0
- package/bin/skills.mjs +9 -0
- package/codex/agents/shinaps-architect.toml +4 -0
- package/codex/agents/shinaps-debug-validator.toml +4 -0
- package/codex/agents/shinaps-debugger.toml +4 -0
- package/codex/agents/shinaps-explorer.toml +4 -0
- package/codex/agents/shinaps-investigator.toml +4 -0
- package/codex/agents/shinaps-plan-reviewer.toml +4 -0
- package/codex/agents/shinaps-refine-agent.toml +4 -0
- package/codex/agents/shinaps-review-validator.toml +4 -0
- package/codex/agents/shinaps-reviewer.toml +12 -0
- package/codex/agents/shinaps-spec-writer.toml +4 -0
- package/codex/agents/shinaps-split-reviewer.toml +4 -0
- package/codex/agents/shinaps-survey-validator.toml +4 -0
- package/codex/agents/shinaps-tech-surveyor.toml +4 -0
- package/lib/install.mjs +116 -0
- package/package.json +13 -0
- package/plugins/shinaps/.claude-plugin/plugin.json +22 -0
- package/plugins/shinaps/agents/shinaps-architect.md +51 -0
- package/plugins/shinaps/agents/shinaps-debug-validator.md +54 -0
- package/plugins/shinaps/agents/shinaps-debugger.md +51 -0
- package/plugins/shinaps/agents/shinaps-explorer.md +47 -0
- package/plugins/shinaps/agents/shinaps-investigator.md +52 -0
- package/plugins/shinaps/agents/shinaps-plan-reviewer.md +55 -0
- package/plugins/shinaps/agents/shinaps-refine-agent.md +76 -0
- package/plugins/shinaps/agents/shinaps-review-validator.md +49 -0
- package/plugins/shinaps/agents/shinaps-reviewer.md +52 -0
- package/plugins/shinaps/agents/shinaps-spec-writer.md +68 -0
- package/plugins/shinaps/agents/shinaps-split-reviewer.md +67 -0
- package/plugins/shinaps/agents/shinaps-survey-validator.md +45 -0
- package/plugins/shinaps/agents/shinaps-tech-surveyor.md +42 -0
- package/plugins/shinaps/skills/commit/SKILL.md +47 -0
- package/plugins/shinaps/skills/create-pr/SKILL.md +36 -0
- package/plugins/shinaps/skills/debug/SKILL.md +144 -0
- package/plugins/shinaps/skills/dev/SKILL.md +245 -0
- package/plugins/shinaps/skills/explore/SKILL.md +217 -0
- package/plugins/shinaps/skills/explore/agents/openai.yaml +4 -0
- package/plugins/shinaps/skills/extract-rules/SKILL.md +115 -0
- package/plugins/shinaps/skills/refine/SKILL.md +222 -0
- package/plugins/shinaps/skills/release/SKILL.md +38 -0
- package/plugins/shinaps/skills/review/SKILL.md +145 -0
- package/plugins/shinaps/skills/simplify/SKILL.md +26 -0
- package/plugins/shinaps/skills/spec/SKILL.md +207 -0
- package/plugins/shinaps/skills/verify-ui/SKILL.md +36 -0
- package/plugins/shinaps-codex/.codex-plugin/plugin.json +6 -0
- package/plugins/shinaps-codex/skills/commit/SKILL.md +47 -0
- package/plugins/shinaps-codex/skills/create-pr/SKILL.md +36 -0
- package/plugins/shinaps-codex/skills/debug/SKILL.md +16 -0
- package/plugins/shinaps-codex/skills/dev/SKILL.md +18 -0
- package/plugins/shinaps-codex/skills/explore/SKILL.md +14 -0
- package/plugins/shinaps-codex/skills/extract-rules/SKILL.md +16 -0
- package/plugins/shinaps-codex/skills/refine/SKILL.md +14 -0
- package/plugins/shinaps-codex/skills/release/SKILL.md +38 -0
- package/plugins/shinaps-codex/skills/review/SKILL.md +18 -0
- package/plugins/shinaps-codex/skills/simplify/SKILL.md +26 -0
- package/plugins/shinaps-codex/skills/spec/SKILL.md +16 -0
- package/plugins/shinaps-codex/skills/verify-ui/SKILL.md +36 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review
|
|
3
|
+
description: shinaps-reviewer + shinaps-review-validator で精度の高い単独レビューを行うスキル。差分・PR・既存コードを引数で切り替え。rule カタログとの照合を reviewer prompt に埋め込むことで、指摘の rule 起点タグ付けを bake する。確定指摘があればそのまま /shinaps:dev へ橋渡しして修正計画 + 実装まで進められる
|
|
4
|
+
argument-hint: <なし | PR番号 | ファイル/ディレクトリパス>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 作業記録の保存先
|
|
8
|
+
|
|
9
|
+
作業記録はプロジェクトルートの `.shinaps/work/` 以下へ保存する。最初に記録を作るとき、`.shinaps/` を作成し、`.shinaps/.gitignore` がなければ内容 `*` と改行で作成する。既存ファイルは上書きせず、除外が不足する場合だけ `*` を追記する。ユーザーのグローバルignoreやルートの `.gitignore` の編集は不要。Git管理下では `git check-ignore` と `git status --short --untracked-files=all` で記録が未追跡変更に出ないことを確認する。既存の追跡済みファイルは自動で追跡解除しない。
|
|
10
|
+
|
|
11
|
+
既存の `.claude/shinaps/` 等の記録は渡されたパスから読み、無断で移動・削除しない。新規記録は新しい保存先を使う。共有する仕様書などを `docs/` 等へ出す場合は、明示された成果物の保存先に従う。秘密情報は記録しない。
|
|
12
|
+
|
|
13
|
+
## 実行環境とプロジェクト条件
|
|
14
|
+
|
|
15
|
+
この節は以下の工程全体に適用する。適用される `AGENTS.md`・`CLAUDE.md` と参照先、CI、既存スクリプトから今回の条件を読み、明示された依頼・許可を引き継ぐ。仕様に影響する不足だけ一問ずつ確認する。新しい恒久方針の保存はユーザーの了承を得てプロジェクト側へ行う。
|
|
16
|
+
|
|
17
|
+
Claude Codeの `Skill`・`Agent`・`AskUserQuestion`・`TaskCreate` を利用できる場合は対応するツールを使う。現在のセッションで提供されていないツールは仮定しない。質問は一問ずつ確認して回答を待つ。
|
|
18
|
+
|
|
19
|
+
別セッションへの委託・新しいworktreeは明示された許可がある場合だけ行う。委託不可なら現在のセッションで調査・計画・レビューの観点を順に確認し、独立レビューとは報告しない。独立レビューがプロジェクトの必須条件なら未完了として扱う。Shinapsのエージェント名はClaudeのpluginで公開された名前を使う。サービスのrule照合が必要な工程でMCPを利用できなければ、その工程を未確認として報告し、照合済みとしない。
|
|
20
|
+
|
|
21
|
+
## 引数仕様
|
|
22
|
+
|
|
23
|
+
| 呼び出し | モード | 動作 |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| `/shinaps:review` | branch | `git diff <base>...HEAD` を取得してレビュー |
|
|
26
|
+
| `/shinaps:review <PR番号>` | PR | GitHub PR の diff をフェッチしてレビュー |
|
|
27
|
+
| `/shinaps:review <path>` | path | 指定パス配下のファイルをフルコードレビュー |
|
|
28
|
+
|
|
29
|
+
引数の型判定: 引数なし → branch、数字のみ → PR、それ以外 → path。
|
|
30
|
+
|
|
31
|
+
## 使用エージェント
|
|
32
|
+
|
|
33
|
+
| エージェント | subagent_type | 役割 |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| Shinaps Reviewer | `shinaps-reviewer` | logic / design / security / performance / maintainability / rule の統合観点 |
|
|
36
|
+
| Shinaps Tech Surveyor | `shinaps-tech-surveyor` | 毎回起動、採用 API / library / 言語機能の現代性・代替・落とし穴を外部調査 |
|
|
37
|
+
| Shinaps Survey Validator | `shinaps-survey-validator` | tech-surveyor が具体推奨を出した場合のみ起動、出典を再確認 |
|
|
38
|
+
| Shinaps Review Validator | `shinaps-review-validator` | reviewer 指摘の妥当性検証 + tech-survey 統合 |
|
|
39
|
+
|
|
40
|
+
## ディレクトリ規約
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
.shinaps/work/reviews/{YYYYMMDD-HHMMSS}-{mode}/
|
|
44
|
+
├── input.md ← レビュー対象のサマリ
|
|
45
|
+
├── review.md ← shinaps-reviewer の生レポート
|
|
46
|
+
├── tech-survey.md ← shinaps-tech-surveyor の生レポート
|
|
47
|
+
├── tech-survey-validated.md ← shinaps-survey-validator の検証済みレポート (surveyor が具体推奨を出した場合のみ)
|
|
48
|
+
└── review-validated.md ← shinaps-review-validator の検証済み指摘リスト (dev にはこのパスを直接渡す)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`{mode}` は `branch` / `pr-{N}` / `path-{slug}`。
|
|
52
|
+
|
|
53
|
+
## 実行フロー
|
|
54
|
+
|
|
55
|
+
### Phase 1: 引数判定とレビュー対象の取得
|
|
56
|
+
|
|
57
|
+
- 今回の依頼に関連する既存の spec・調査レポート・Git の変更履歴を確認し、引き継ぐ決定と根拠を要約する。既存成果物がなければ追加取得は不要。
|
|
58
|
+
- **branch モード**: ベースブランチ判定 → `git diff <base>...HEAD` を取得。空ならエラー終了 (「差分がありません」)
|
|
59
|
+
- **PR モード**: `gh pr view <番号>` で PR 情報、`gh pr diff <番号>` で diff を取得
|
|
60
|
+
- **path モード**: 存在確認 → Read。50 ファイル超えたら `AskUserQuestion` で「全部レビューする / 主要ファイルに絞る / 中断」を確認
|
|
61
|
+
|
|
62
|
+
### Phase 2: 入力サマリ保存
|
|
63
|
+
|
|
64
|
+
メインが Write で `input.md` に以下を保存:
|
|
65
|
+
- モード / 取得時刻 / 対象情報
|
|
66
|
+
- 変更ファイル一覧
|
|
67
|
+
- diff 全文 (branch / PR) または コード本体一覧 (path)
|
|
68
|
+
|
|
69
|
+
### Phase 3: reviewer + tech-surveyor を並列起動 (一次レビュー)
|
|
70
|
+
|
|
71
|
+
**1 メッセージ内で 2 subagent を並列 spawn する** (Agent tool を 1 メッセージ内で複数呼び出す)。
|
|
72
|
+
|
|
73
|
+
#### 前準備 (メインスレッド)
|
|
74
|
+
|
|
75
|
+
`list_search_facets()` + `search_rules({ repoOwner, repoName, ...推定 facet })` を実行して rule カタログを確保。
|
|
76
|
+
|
|
77
|
+
#### shinaps-reviewer プロンプト
|
|
78
|
+
|
|
79
|
+
- レビューモード (branch / pr / path)
|
|
80
|
+
- `input.md` 全文
|
|
81
|
+
- **Phase 1 で作成した既存成果物の要約**
|
|
82
|
+
- **前準備の `search_rules` 結果 (userRules + officialRules 全文)**
|
|
83
|
+
- モード別追加指示 (branch なら base branch との差分の背景、PR なら PR description、path ならファイル配下の責務)
|
|
84
|
+
- 「confidence ≥ 80 のみ報告、rule 違反は必ず Critical タグ」
|
|
85
|
+
|
|
86
|
+
#### shinaps-tech-surveyor プロンプト
|
|
87
|
+
|
|
88
|
+
- `input.md` 全文
|
|
89
|
+
- **Phase 1 で作成した既存成果物の要約**
|
|
90
|
+
- **前準備の `search_rules` 結果**
|
|
91
|
+
- 「(a) 採用 API / library / 言語機能は現代的か、(b) より良い代替があるか、(c) 既知の落とし穴、(d) 採用バージョンの安全性、を WebSearch / WebFetch で調査せよ。既存スタック + rule カタログ整合性を予選条件に」
|
|
92
|
+
|
|
93
|
+
**記録先**: メインが Write で `review.md` / `tech-survey.md` に全文保存
|
|
94
|
+
|
|
95
|
+
### Phase 3.5: shinaps-survey-validator 起動 (条件付き)
|
|
96
|
+
|
|
97
|
+
tech-surveyor が「特筆事項なし」以外を返した場合のみ起動。
|
|
98
|
+
|
|
99
|
+
**プロンプト**:
|
|
100
|
+
- `tech-survey.md` 全文
|
|
101
|
+
- 前準備の `search_rules` 結果
|
|
102
|
+
- 「全ての出典 URL を WebFetch で再確認せよ」
|
|
103
|
+
|
|
104
|
+
**記録先**: メインが Write で `tech-survey-validated.md`
|
|
105
|
+
|
|
106
|
+
### Phase 4: shinaps-review-validator 起動
|
|
107
|
+
|
|
108
|
+
**プロンプト**:
|
|
109
|
+
- `input.md` 全文
|
|
110
|
+
- `review.md` 全文
|
|
111
|
+
- **前準備の `search_rules` 結果**
|
|
112
|
+
- `tech-survey-validated.md` 全文 (Phase 3.5 実施時のみ、なければ tech-survey.md を渡す)
|
|
113
|
+
- 「指摘ごとに該当コードを Read で確認し、confirmed / false positive / partial / out-of-scope に分類せよ。rule 起点の追加発見は積極的に報告」
|
|
114
|
+
|
|
115
|
+
**記録先**: メインが Write で `review-validated.md`
|
|
116
|
+
|
|
117
|
+
### Phase 5: 次アクション選択
|
|
118
|
+
|
|
119
|
+
確定指摘が 1 件以上あれば `AskUserQuestion` で:
|
|
120
|
+
- **修正実装に進む** (`/shinaps:dev` へ橋渡し) (推奨)
|
|
121
|
+
- **PR にコメント投稿する** (PR モードのみ)
|
|
122
|
+
- **ローカル保存のみで終了**
|
|
123
|
+
|
|
124
|
+
**修正実装選択時 (Phase 6 前) に ローカル成果物(implementation.md / 調査・レビューレポート)** で修正方針決定の記録を残す。
|
|
125
|
+
|
|
126
|
+
### Phase 6: /shinaps:dev への橋渡し (修正実装選択時)
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
Skill(skill="shinaps:dev", args="以下のレビュー指摘を修正する。詳細は .shinaps/work/reviews/{ts}-{mode}/review-validated.md を参照: {修正タスクの 1 行サマリ}")
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Phase 7: PR コメント投稿 (PR モードかつ選択時)
|
|
133
|
+
|
|
134
|
+
`gh pr review <番号> --comment --body-file <review-validated.md>` で投稿。**投稿前に本文確認必須** (`AskUserQuestion` で「投稿する / 本文を編集する / 中断」)。
|
|
135
|
+
|
|
136
|
+
## 動作原則
|
|
137
|
+
|
|
138
|
+
- **並列 + 検証パイプライン**: reviewer + tech-surveyor を並列、その結果を review-validator が統合
|
|
139
|
+
- **tech-surveyor は毎回起動**: 現代的な代替や落とし穴を必ずチェック
|
|
140
|
+
- **survey-validator は省略可**: tech-surveyor が「特筆事項なし」なら起動しない
|
|
141
|
+
- **rule 照合を reviewer / review-validator に bake**: `search_rules` 結果を prompt に埋め込む
|
|
142
|
+
- **subagent は文字列応答のみ**: raw/*.md への Write / Edit は必ずメインが担当
|
|
143
|
+
- **生レポート保存厳守**: すべての subagent 応答を全文保存
|
|
144
|
+
- **PR コメント投稿は要承認**: 外部影響のある操作は必ず本文確認
|
|
145
|
+
- **diff が空ならエラー終了**: 何もしない旨を明示
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: simplify
|
|
3
|
+
description: 実装・設計・手順を目的と必要条件から見直し、不要な要素を削除して簡素化する。実装後のセルフレビュー前や、複雑さの見直しを求められたときに使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 作業記録の保存先
|
|
7
|
+
|
|
8
|
+
作業記録はプロジェクトルートの `.shinaps/work/` 以下へ保存する。最初に記録を作るとき、`.shinaps/` を作成し、`.shinaps/.gitignore` がなければ内容 `*` と改行で作成する。既存ファイルは上書きせず、除外が不足する場合だけ `*` を追記する。ユーザーのグローバルignoreやルートの `.gitignore` の編集は不要。Git管理下では `git check-ignore` と `git status --short --untracked-files=all` で記録が未追跡変更に出ないことを確認する。既存の追跡済みファイルは自動で追跡解除しない。
|
|
9
|
+
|
|
10
|
+
既存の `.claude/shinaps/` 等の記録は渡されたパスから読み、無断で移動・削除しない。新規記録は新しい保存先を使う。共有する仕様書などを `docs/` 等へ出す場合は、明示された成果物の保存先に従う。秘密情報は記録しない。
|
|
11
|
+
|
|
12
|
+
# 目的から見直して減らす
|
|
13
|
+
|
|
14
|
+
## プロジェクトの条件を読む
|
|
15
|
+
|
|
16
|
+
適用される `AGENTS.md`・`CLAUDE.md` と参照先、README、CI、既存スクリプトから、今回の対象・必須検証・禁止事項を確認する。現在の依頼と合意済みの条件を引き継ぎ、一般的な推奨をプロジェクトの必須条件に格上げしない。条件同士が矛盾し結果を左右する場合だけ一問ずつ確認する。任された実装判断は進める。
|
|
17
|
+
|
|
18
|
+
既存の情報から決まる内容を再質問しない。確認した新しい恒久方針は、ユーザーが保存を認めた場合だけプロジェクトの指示または参照先へ残す。スキル自身や他プロジェクトのルールへ書き込まない。
|
|
19
|
+
|
|
20
|
+
## 判断と実行
|
|
21
|
+
|
|
22
|
+
- 目的、守る外部契約、現在の実装方法を区別する。今の構造を要件として正当化しない。
|
|
23
|
+
- 根拠の弱い前提、不要な分岐・互換層・重複、丸ごと消せる手順を実物から探す。削除 → 簡素化 → 最適化 → 自動化の順で考え、必要な段階だけ実施する。
|
|
24
|
+
- 利用箇所と契約を調べ、依頼範囲内で挙動を保つ削除を適用する。行数だけを減らして責務を混ぜない。仕様を変えることで簡単になる場合は、変わる挙動と推奨案を示して先に確認する。
|
|
25
|
+
- 変更の影響に合う検証を行う。問題がなければ変更を作らず終了する。
|
|
26
|
+
- 削ったもの、判断理由、確認結果を短く報告する。コミットや公開はこの工程の許可に含めない。
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec
|
|
3
|
+
description: ざっくりした要望を入力に、対話的なヒアリング + 既存実装調査 (shinaps-explorer) + フィジビリティ調査 (shinaps-tech-surveyor で外部情報 + shinaps-survey-validator で出典検証 + 採用候補決定 + 必要ならプロトタイプ実装) + 技術選定を行い、「ほぼ実現できる」と確信できるレベルまで仕様を詰めて仕様書 (spec.md) を作成するスキル。spec 段階で実現可能性をしっかり検証することで /shinaps:dev での差し戻しをほぼゼロにする。shinaps-spec-writer で構造化し、そのまま /shinaps:dev へ橋渡しできる
|
|
4
|
+
argument-hint: <ざっくりした要望(省略可)>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 作業記録の保存先
|
|
8
|
+
|
|
9
|
+
作業記録はプロジェクトルートの `.shinaps/work/` 以下へ保存する。最初に記録を作るとき、`.shinaps/` を作成し、`.shinaps/.gitignore` がなければ内容 `*` と改行で作成する。既存ファイルは上書きせず、除外が不足する場合だけ `*` を追記する。ユーザーのグローバルignoreやルートの `.gitignore` の編集は不要。Git管理下では `git check-ignore` と `git status --short --untracked-files=all` で記録が未追跡変更に出ないことを確認する。既存の追跡済みファイルは自動で追跡解除しない。
|
|
10
|
+
|
|
11
|
+
既存の `.claude/shinaps/` 等の記録は渡されたパスから読み、無断で移動・削除しない。新規記録は新しい保存先を使う。共有する仕様書などを `docs/` 等へ出す場合は、明示された成果物の保存先に従う。秘密情報は記録しない。
|
|
12
|
+
|
|
13
|
+
## 実行環境とプロジェクト条件
|
|
14
|
+
|
|
15
|
+
この節は以下の工程全体に適用する。適用される `AGENTS.md`・`CLAUDE.md` と参照先、CI、既存スクリプトから今回の条件を読み、明示された依頼・許可を引き継ぐ。仕様に影響する不足だけ一問ずつ確認する。新しい恒久方針の保存はユーザーの了承を得てプロジェクト側へ行う。
|
|
16
|
+
|
|
17
|
+
Claude Codeの `Skill`・`Agent`・`AskUserQuestion`・`TaskCreate` を利用できる場合は対応するツールを使う。現在のセッションで提供されていないツールは仮定しない。質問は一問ずつ確認して回答を待つ。
|
|
18
|
+
|
|
19
|
+
別セッションへの委託・新しいworktreeは明示された許可がある場合だけ行う。委託不可なら現在のセッションで調査・計画・レビューの観点を順に確認し、独立レビューとは報告しない。独立レビューがプロジェクトの必須条件なら未完了として扱う。Shinapsのエージェント名はClaudeのpluginで公開された名前を使う。サービスのrule照合が必要な工程でMCPを利用できなければ、その工程を未確認として報告し、照合済みとしない。
|
|
20
|
+
|
|
21
|
+
## 引数仕様
|
|
22
|
+
|
|
23
|
+
| 呼び出し | 動作 |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `/shinaps:spec <要望>` | 引数を初期要望として受領、ヒアリング開始 |
|
|
26
|
+
| `/shinaps:spec` | 引数なしの場合は `AskUserQuestion` でまず「何がしたいか」を聞く |
|
|
27
|
+
|
|
28
|
+
## 使用エージェント
|
|
29
|
+
|
|
30
|
+
| エージェント | subagent_type | 役割 |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Shinaps Explorer | `shinaps-explorer` | 既存コードベース調査 |
|
|
33
|
+
| Shinaps Tech Surveyor | `shinaps-tech-surveyor` | フィジビリティ調査 (外部情報 + 候補比較) |
|
|
34
|
+
| Shinaps Survey Validator | `shinaps-survey-validator` | tech-surveyor の主張を出典 URL で検証 |
|
|
35
|
+
| Shinaps Spec Writer | `shinaps-spec-writer` | ヒアリング + 調査結果を構造化 spec.md に整理 |
|
|
36
|
+
|
|
37
|
+
ヒアリング自体はメインエージェントが `AskUserQuestion` を使って進める。
|
|
38
|
+
|
|
39
|
+
## ディレクトリ規約
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
.shinaps/work/specs/{YYYYMMDD-HHMMSS}-{slug}/
|
|
43
|
+
├── spec.md ← shinaps-spec-writer が作成 (dev には spec.md パスを直接渡す)
|
|
44
|
+
├── interview-log.md ← ヒアリングのやりとり記録
|
|
45
|
+
├── raw/ ← 調査エージェントの生レポート (dev が再利用)
|
|
46
|
+
│ ├── explorer.md ← 既存実装調査 (実施時のみ、dev が再利用)
|
|
47
|
+
│ ├── survey.md ← フィジビリティ調査一次レポート (実施時のみ)
|
|
48
|
+
│ └── survey-validated.md ← 検証済み調査 (実施時のみ)
|
|
49
|
+
└── prototype/ ← プロトタイプ実装 (実施時のみ、隔離スペース)
|
|
50
|
+
├── {試したコード一式}
|
|
51
|
+
└── prototype-report.md ← 実験結果サマリ
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`{slug}` は要望の短い英語スラッグ (kebab-case, 30 文字以内)。
|
|
55
|
+
|
|
56
|
+
## 実行フロー
|
|
57
|
+
|
|
58
|
+
### Phase 1: 初期要望の受領
|
|
59
|
+
|
|
60
|
+
1. 引数があればそのまま初期要望として受領
|
|
61
|
+
2. 引数がなければ `AskUserQuestion` で「どんなことを実現したいか」を聞く
|
|
62
|
+
3. 今回の依頼に関連する既存の spec・調査レポート・Git の変更履歴を確認し、引き継ぐ決定と根拠を要約する。既存成果物がなければ追加取得は不要。
|
|
63
|
+
4. 受領した要望を `interview-log.md` の冒頭に Write
|
|
64
|
+
|
|
65
|
+
### Phase 2: 段階的ヒアリング
|
|
66
|
+
|
|
67
|
+
**ヒアリング前の準備**: `list_search_facets()` + 予備 `search_rules({ repoOwner, repoName, ...推定 facet })` を呼び、rule カタログを頭に入れる (制約セクションを rule 起点で組み立てるため)。
|
|
68
|
+
|
|
69
|
+
メインエージェントがインタビュアーとして、以下の観点を順次 `AskUserQuestion` で確認する。**1 観点ずつ**、回答を踏まえて次の質問を決める。回数に制限なし、不明な点は必ず聞く。
|
|
70
|
+
|
|
71
|
+
#### ヒアリング観点 (順序)
|
|
72
|
+
|
|
73
|
+
1. **機能要件の核**: 「具体的にどういう操作・機能が必要か」
|
|
74
|
+
2. **想定ユーザー**: 「誰が使うのか (役割・知識レベル)」
|
|
75
|
+
3. **スコープの境界**: 「どこまでをやり、どこからはやらないか」
|
|
76
|
+
4. **優先度**: 「必須 / 重要 / あると良い をどう分けるか」
|
|
77
|
+
5. **制約**: 「技術スタック / 期限 / 既存システムとの関係 など」
|
|
78
|
+
6. **非機能要件**: 「パフォーマンス・セキュリティ・可用性で気にする点はあるか」 (該当時のみ)
|
|
79
|
+
7. **受け入れ条件**: 「どうなったら完成と言えるか」。場合の列挙(A を扱う・B を扱う…)ではなく、「〜のとき〜である」という性質(不変条件)に言い換えて確認する
|
|
80
|
+
|
|
81
|
+
#### ヒアリングの進め方
|
|
82
|
+
|
|
83
|
+
- 各回答を `interview-log.md` に追記する
|
|
84
|
+
- 既に明確な観点はスキップ
|
|
85
|
+
- 回答が曖昧 / 追加情報が必要な場合は深掘り質問を遠慮なく重ねる
|
|
86
|
+
- ユーザーが「お任せ」を選んだ項目は仕様書で `[未解決]` マークを付ける
|
|
87
|
+
- ユーザーから「もう十分」と意思表示があれば Phase 3 へ
|
|
88
|
+
- 観点 1〜7 を一通り終えたら自動的に Phase 3 へ
|
|
89
|
+
|
|
90
|
+
### Phase 3: 既存実装調査 (フィジビリ調査)
|
|
91
|
+
|
|
92
|
+
`AskUserQuestion` で「既存コードベースを調査するか」を確認 (Recommended: Yes)。
|
|
93
|
+
スキップする選択肢: 「新規プロジェクト / 既存に関連実装が無いことが明白」な場合。
|
|
94
|
+
|
|
95
|
+
実施する場合:
|
|
96
|
+
|
|
97
|
+
1. `shinaps-explorer` を起動 (必要なら領域を分けて複数並列)
|
|
98
|
+
2. **プロンプトに含める情報**:
|
|
99
|
+
- Phase 1-2 で確定した要望と機能要件
|
|
100
|
+
- **Phase 1 で作成した既存成果物の要約**
|
|
101
|
+
- 「実装したい機能に関連する既存コード・抽象化レイヤー・規約を調査せよ。**仕様策定の参考になる範囲で深さ重視**」
|
|
102
|
+
3. 生レポートをメインが Write で `raw/explorer.md` (並列時は `raw/explorer-{n}.md`) に全文保存
|
|
103
|
+
4. 結果を踏まえて Phase 2 に戻って追加ヒアリングが必要か判断
|
|
104
|
+
- 既存パターンと食い違う要望があれば `AskUserQuestion` で「合わせる / 上書きする」を確認
|
|
105
|
+
|
|
106
|
+
### Phase 4: フィジビリティ調査 (外部情報 + 必要ならプロトタイプ)
|
|
107
|
+
|
|
108
|
+
「実現できそうか」「どんなアプローチがあるか」「ハマりどころは何か」を確認するフェーズ。2 段階に分かれる。
|
|
109
|
+
|
|
110
|
+
#### 4-A: 外部情報調査 + 技術選定
|
|
111
|
+
|
|
112
|
+
`AskUserQuestion` で「外部情報を調査するか」を確認 (Recommended: Yes)。スキップする選択肢: 「既存スタック内で完結 / 自明な実装」な場合。
|
|
113
|
+
|
|
114
|
+
このフェーズはフィジビリティ調査と技術選定の両方を担う。
|
|
115
|
+
|
|
116
|
+
実施する場合:
|
|
117
|
+
|
|
118
|
+
1. `shinaps-tech-surveyor` を起動
|
|
119
|
+
2. **プロンプトに含める情報**:
|
|
120
|
+
- Phase 1-2 の要望と機能要件
|
|
121
|
+
- Phase 3 の explorer 結果 (実施した場合)
|
|
122
|
+
- プロジェクト `CLAUDE.md` の関連抜粋 (既存スタック制約があれば)
|
|
123
|
+
- **Phase 2 前準備で取得した `search_rules` 結果 (userRules + officialRules 全文)**
|
|
124
|
+
- 「この機能を実装する際の関連ライブラリ / 公式推奨パターン / 知られた落とし穴 / 似たユースケースの実装例を WebSearch / WebFetch で調査せよ。**実現可能性を判断する材料を集めると同時に、複数候補がある場合は観点別に比較すること**。既存スタック + rule カタログ整合性を最初の予選条件に」
|
|
125
|
+
3. 生レポートをメインが Write で `raw/survey.md` に全文保存
|
|
126
|
+
4. `shinaps-survey-validator` を起動 (プロンプトに search_rules 結果も渡す)、メインが Write で `raw/survey-validated.md` に全文保存
|
|
127
|
+
5. **採用候補の決定**:
|
|
128
|
+
- 候補が 1 つしかない / 推奨が明確 → そのまま採用としてメインが採用理由・注意点を整理
|
|
129
|
+
- 候補が複数で判断が割れる → `AskUserQuestion` で「どの候補を採用するか」を選ばせる
|
|
130
|
+
6. 採用が決まったら、Phase 6 で spec.md に反映するための情報をメモしておく:
|
|
131
|
+
- 採用候補名 + バージョン
|
|
132
|
+
- 選定理由 (要件・制約に照らした 1〜2 文)
|
|
133
|
+
- 採用時の注意点 (バージョン互換性、依存、ライセンス、運用上の注意など)
|
|
134
|
+
|
|
135
|
+
#### 4-B: プロトタイプ実装 (任意)
|
|
136
|
+
|
|
137
|
+
`AskUserQuestion` で「実現可能性を確かめるプロトタイプを試すか」を確認 (Recommended: No、ただし以下に該当するなら Yes 推奨):
|
|
138
|
+
- 不確定な技術要素がある (新規ライブラリ / 試したことのない API / パフォーマンス懸念)
|
|
139
|
+
- 4-A で「実装パターンが複数提示されたがどれが筋か不明」
|
|
140
|
+
- 「動かしてみないと分からない」と感じる論点がある
|
|
141
|
+
|
|
142
|
+
実施する場合:
|
|
143
|
+
|
|
144
|
+
1. **隔離スペース** `.shinaps/work/specs/{ts}-{slug}/prototype/` を作成 (既存コードベースを汚さない)
|
|
145
|
+
2. 必要最小限のコードを書いて動かす:
|
|
146
|
+
- 既存コードベースに統合する必要があれば最小の touch のみ
|
|
147
|
+
- 主目的は「動くか / 期待した振る舞いか / どこで詰まるか」を確認すること
|
|
148
|
+
3. 結果を `prototype/prototype-report.md` に記録
|
|
149
|
+
|
|
150
|
+
4-A / 4-B どちらかでも実施した場合、結果を踏まえて Phase 2 に戻って追加ヒアリングが必要か判断:
|
|
151
|
+
- フィジビリ調査で「ユーザー要望が実現困難 / 想定より大規模」と分かれば `AskUserQuestion` で「スコープ縮小 / 別アプローチ / そのまま進める」を確認
|
|
152
|
+
|
|
153
|
+
### Phase 5: ヒアリングログ整理
|
|
154
|
+
|
|
155
|
+
`interview-log.md` を最終形式に整える (Q&A 形式で、元の要望 / 質問 / 回答 / 調査結果パスを含む)。
|
|
156
|
+
|
|
157
|
+
### Phase 6: shinaps-spec-writer 起動
|
|
158
|
+
|
|
159
|
+
`shinaps-spec-writer` を 1 体起動。
|
|
160
|
+
|
|
161
|
+
**プロンプトに含める情報**:
|
|
162
|
+
- 元の要望
|
|
163
|
+
- `interview-log.md` 全文
|
|
164
|
+
- `raw/explorer.md` 全文 (実施時のみ)
|
|
165
|
+
- `raw/survey-validated.md` 全文 (実施時のみ)
|
|
166
|
+
- Phase 4-A で決定した採用候補・選定理由・注意点 (実施時のみ)
|
|
167
|
+
- プロジェクトコンテキスト (CLAUDE.md の関連部分)
|
|
168
|
+
- **Phase 2 前準備で取得した `search_rules` 結果 (userRules + officialRules 全文)**
|
|
169
|
+
- 「ヒアリングと調査結果を統合した構造化された仕様書を作成せよ。既存実装の状況・技術的方向性・採用技術 (あれば) も spec.md に反映すること。CLAUDE.md + rule カタログを制約セクションに集約すること」
|
|
170
|
+
|
|
171
|
+
**記録先**: メインが Write で `.shinaps/work/specs/{ts}-{slug}/spec.md`
|
|
172
|
+
|
|
173
|
+
### Phase 7: 仕様書サマリ提示
|
|
174
|
+
|
|
175
|
+
`spec.md` の主要セクション (要望の本質 / 機能要件 / スコープ / 制約 / 受け入れ条件 / 未解決の論点) を要約してテキスト出力する。
|
|
176
|
+
|
|
177
|
+
ユーザーから修正要望があれば Phase 2 または Phase 3 / 4 に戻る。
|
|
178
|
+
修正要望が無ければ Phase 8 へ。
|
|
179
|
+
|
|
180
|
+
### Phase 8: 次アクション選択
|
|
181
|
+
|
|
182
|
+
`AskUserQuestion` で次のアクションを確認:
|
|
183
|
+
|
|
184
|
+
- **`/shinaps:dev` に進む (橋渡し)**: 仕様書を入力に「計画策定 → 実装 → セルフレビュー」を一気通貫実行
|
|
185
|
+
- **ローカル保存のみで終了**
|
|
186
|
+
|
|
187
|
+
### Phase 9: /shinaps:dev への橋渡し (選択時)
|
|
188
|
+
|
|
189
|
+
中間ファイル (旧 `plan-handoff.md`) は生成しない。`Skill` ツールで `shinaps:dev` を起動し、引数に **`spec.md` のパスを直接渡す**。
|
|
190
|
+
|
|
191
|
+
dev 側の Phase 1 で spec.md を Read してタスク詳細・採用技術・既存実装との関係を取り込み、Phase 2 で同ディレクトリ配下の `raw/explorer.md` をそのまま再利用する (= dev は explorer を改めて起動しない)。これにより spec ↔ dev の二重 explorer を削減する。
|
|
192
|
+
|
|
193
|
+
引数例:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Skill(skill="shinaps:dev", args="以下の仕様書を実装する。詳細は .shinaps/work/specs/{ts}-{slug}/spec.md を参照: {1 行サマリ}")
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## 動作原則
|
|
200
|
+
|
|
201
|
+
- **EnterPlanMode は使わない**: bypassPermissions モードと両立させるため
|
|
202
|
+
- **不明な論点は必ず AskUserQuestion で確認**: 回数に制限なし
|
|
203
|
+
- **未解決は隠さない**: 答えが出なかった項目は仕様書で `[未解決]` 明示
|
|
204
|
+
- **生レポート保存厳守**: ヒアリングログ・仕様書・調査結果は全文保存 (メインが Write)
|
|
205
|
+
- **subagent は文字列応答のみ**: ファイル書き込みは必ずメインが担当
|
|
206
|
+
- **フィジビリ調査は spec で済ませる**: dev での差し戻しを減らすため、Phase 3/4 の調査を惜しまない
|
|
207
|
+
- **rule カタログを制約に反映**: `search_rules` 結果を spec.md の制約セクションに集約
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verify-ui
|
|
3
|
+
description: UI変更を対象プロジェクトの対応環境で実際に操作し、見た目と挙動を検証する。UI実装後や画面の動作確認を求められたときに使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 作業記録の保存先
|
|
7
|
+
|
|
8
|
+
作業記録はプロジェクトルートの `.shinaps/work/` 以下へ保存する。最初に記録を作るとき、`.shinaps/` を作成し、`.shinaps/.gitignore` がなければ内容 `*` と改行で作成する。既存ファイルは上書きせず、除外が不足する場合だけ `*` を追記する。ユーザーのグローバルignoreやルートの `.gitignore` の編集は不要。Git管理下では `git check-ignore` と `git status --short --untracked-files=all` で記録が未追跡変更に出ないことを確認する。既存の追跡済みファイルは自動で追跡解除しない。
|
|
9
|
+
|
|
10
|
+
既存の `.claude/shinaps/` 等の記録は渡されたパスから読み、無断で移動・削除しない。新規記録は新しい保存先を使う。共有する仕様書などを `docs/` 等へ出す場合は、明示された成果物の保存先に従う。秘密情報は記録しない。
|
|
11
|
+
|
|
12
|
+
# UIを使って検証する
|
|
13
|
+
|
|
14
|
+
## プロジェクトの条件を読む
|
|
15
|
+
|
|
16
|
+
適用される `AGENTS.md`・`CLAUDE.md` と参照先、README、CI、既存スクリプトから、今回の対象・必須検証・禁止事項を確認する。現在の依頼と合意済みの条件を引き継ぎ、一般的な推奨をプロジェクトの必須条件に格上げしない。条件同士が矛盾し結果を左右する場合だけ一問ずつ確認する。任された実装判断は進める。
|
|
17
|
+
|
|
18
|
+
既存の情報から決まる内容を再質問しない。確認した新しい恒久方針は、ユーザーが保存を認めた場合だけプロジェクトの指示または参照先へ残す。スキル自身や他プロジェクトのルールへ書き込まない。
|
|
19
|
+
|
|
20
|
+
## 検証範囲を決める
|
|
21
|
+
|
|
22
|
+
対応ブラウザ・端末、変更する操作、期待する性質、必須の証拠を既存仕様から決める。受入条件はケースの列挙ではなく「再表示しても保存した選択を保つ」のような性質で書き、代表的な操作で確かめる。
|
|
23
|
+
|
|
24
|
+
特定ブラウザ、実機、Simulator、複数OSバージョンを一律に必須にしない。プロジェクトがPCブラウザのみを対象にするならその範囲で検証する。エンジン差・ハードウェア・入力方式が結果を左右する変更なら、その差を確認できる環境を選ぶ。必要な環境が使えない場合、別環境で通ったことを代替証拠にせず未確認として残す。対応範囲自体が不明で結論を左右する場合だけ確認する。
|
|
25
|
+
|
|
26
|
+
## 実行と証拠
|
|
27
|
+
|
|
28
|
+
1. 現在の画面と実装を確認する。余白や入力の問題がアプリ・ブラウザ・端末のどこに属するか切り分ける。
|
|
29
|
+
2. プロジェクトが必要とする自動検証を実行し、対象の実画面で主要操作と関連する状態遷移を確かめる。DOMや内部状態の注入を操作成功の証拠にしない。
|
|
30
|
+
3. レイアウトの欠け、重なり、フォーカス、再操作、保存・再表示など変更の影響する性質を確認する。動画や計測を必要とする動き・性能は静止画だけで合格にしない。
|
|
31
|
+
4. 視覚的な判定にはスクリーンショットを残し、環境・操作・期待・観測結果を対応づける。明示された証拠の納品先がなければ `.shinaps/work/` 以下の今回の作業ディレクトリを使う。
|
|
32
|
+
5. 発見した問題を直した場合は影響部分を再確認する。独立レビューは利用可能で許可され、効果がある場合に限る。
|
|
33
|
+
|
|
34
|
+
## 完了
|
|
35
|
+
|
|
36
|
+
定めた範囲で期待する性質を実画面から確認できたことを報告する。自動テストのみ・画面を開いただけ・スクリーンショットのみで操作を確認済みにしない。未確認事項と理由は完了範囲から区別する。実装・修正が依頼されていなければ、検証の依頼から変更許可を推測しない。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: 許可された差分を依存順の小さなローカルコミットへ分割し、各単位を検証・レビューする。通常は単位ごとに確認し、自律コミットを明示された場合はその許可範囲で続行する。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 作業記録の保存先
|
|
7
|
+
|
|
8
|
+
作業記録はプロジェクトルートの `.shinaps/work/` 以下へ保存する。最初に記録を作るとき、`.shinaps/` を作成し、`.shinaps/.gitignore` がなければ内容 `*` と改行で作成する。既存ファイルは上書きせず、除外が不足する場合だけ `*` を追記する。ユーザーのグローバルignoreやルートの `.gitignore` の編集は不要。Git管理下では `git check-ignore` と `git status --short --untracked-files=all` で記録が未追跡変更に出ないことを確認する。既存の追跡済みファイルは自動で追跡解除しない。
|
|
9
|
+
|
|
10
|
+
既存の `.claude/shinaps/` 等の記録は渡されたパスから読み、無断で移動・削除しない。新規記録は新しい保存先を使う。共有する仕様書などを `docs/` 等へ出す場合は、明示された成果物の保存先に従う。秘密情報は記録しない。
|
|
11
|
+
|
|
12
|
+
# 検証できる単位でコミットする
|
|
13
|
+
|
|
14
|
+
## プロジェクトの条件を読む
|
|
15
|
+
|
|
16
|
+
適用される `AGENTS.md`・`CLAUDE.md` と参照先、README、CI、既存スクリプトから、今回の対象・必須検証・禁止事項を確認する。現在の依頼と合意済みの条件を引き継ぎ、一般的な推奨をプロジェクトの必須条件に格上げしない。条件同士が矛盾し結果を左右する場合だけ一問ずつ確認する。任された実装判断は進める。
|
|
17
|
+
|
|
18
|
+
既存の情報から決まる内容を再質問しない。確認した新しい恒久方針は、ユーザーが保存を認めた場合だけプロジェクトの指示または参照先へ残す。スキル自身や他プロジェクトのルールへ書き込まない。
|
|
19
|
+
|
|
20
|
+
## 範囲と進め方
|
|
21
|
+
|
|
22
|
+
コミットはユーザーが明示した場合だけ行う。通常は単位の差分・理由・検証結果・メッセージを提示して可否を確認する。「自律的にレビューしてコミットまで」の明示依頼がある場合は、同じ対象について単位ごとの再確認を省略する。どちらも対象外変更、push、PR、公開、既存履歴の書き換えは含まない。
|
|
23
|
+
|
|
24
|
+
Git操作と修正は現在のセッションが行う。独立レビューは利用可能かつ許可された場合に使う。指定のエージェントがなければ、その役割の観点でレビューする。独立レビューがプロジェクトの必須条件なのに実行できなければ、セルフレビューを同等と称さず止める。別worktreeの作成や別セッションへの委託を、このスキルから許可しない。
|
|
25
|
+
|
|
26
|
+
## 回復できる状態を作る
|
|
27
|
+
|
|
28
|
+
- `git status`、staged・unstaged差分、untracked、HEAD、branch、stash一覧とSHAを確認する。進行中のmerge等があれば混ぜない。
|
|
29
|
+
- 対象範囲を確定し、無関係な変更や秘密情報を除く。既存indexと作業ファイルが違う場合、ステージ境界を無断で捨てない。
|
|
30
|
+
- 検証コマンドはCI・スクリプト・規約から特定する。変更前からの失敗を今回の成功に混ぜない。
|
|
31
|
+
- 退避が必要なら復元可能な差分・untrackedの控えをリポジトリ外の作業領域へ保存する。控えは復元が確認できるまで残す。
|
|
32
|
+
|
|
33
|
+
## 分割・検証・レビュー
|
|
34
|
+
|
|
35
|
+
1. 一つの意図を説明でき、適用済みの前の単位と既存コードだけで成立するよう依存順に分ける。実装と必要なテスト・生成物を切り離さない。行数やファイル階層だけで分割しない。
|
|
36
|
+
2. 分割案を短く示す。許可された独立レビュアーがいれば差分自体から妥当性を確認させる。結論はメインが検証する。
|
|
37
|
+
3. 現在のcheckoutで対象単位を隔離する。対象外を一意な名前のstashへ退避し、新しく作成された場合だけそのSHAを記録する。既存stashの先頭を自分のものと決めつけない。共有ファイルのhunk分割は保存したパッチから行い、検証対象とindexの内容を一致させる。
|
|
38
|
+
4. 後続の未コミット変更なしで、その単位に必要な検証を行う。後続への依存で失敗するなら退避分を戻して分割を見直す。全差分がある状態で通ったテストを単位の検証としない。
|
|
39
|
+
5. 対象だけをステージし、完全なcached diffと影響するファイルをレビューする。指摘は実物で確認し、依頼範囲の修正後は再ステージ・再検証する。外部仕様の調査は変更がそこに依存するときに行う。
|
|
40
|
+
6. 必須検証が通り、確定した阻害指摘がなく、通常モードなら単位の承認を得てから `git commit` を単独で実行する。メッセージはリポジトリ規約に従う。`git add` と連結しない。
|
|
41
|
+
7. 記録したSHAのstashをapplyし、退避パッチも復元する。復元を確認してから該当stashをdropする。曖昧な競合は推測で捨てず、回復資料を残して確認する。残差分とHEADを確認して次へ進む。
|
|
42
|
+
|
|
43
|
+
## 終了・中断
|
|
44
|
+
|
|
45
|
+
branch・HEAD・対象外ファイルの予期しない変更、復元の曖昧さ、仕様判断が必要な指摘では安全な状態を保って止める。検証の失敗を省略で解決しない。修正で過去のコミットを変えず、後続単位にする。
|
|
46
|
+
|
|
47
|
+
コミット一覧、検証・レビューの範囲、残差分、復元状態を報告する。元からあったstashを保持し、今回のstashに残りがあれば回復方法を示す。未確認の独立性や検証を成功と報告しない。
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-pr
|
|
3
|
+
description: ブランチの変更意図と検証結果を整理し、リポジトリの規約に合ったGitHub PRを作成する。PR作成・公開を依頼されたときに使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 作業記録の保存先
|
|
7
|
+
|
|
8
|
+
作業記録はプロジェクトルートの `.shinaps/work/` 以下へ保存する。最初に記録を作るとき、`.shinaps/` を作成し、`.shinaps/.gitignore` がなければ内容 `*` と改行で作成する。既存ファイルは上書きせず、除外が不足する場合だけ `*` を追記する。ユーザーのグローバルignoreやルートの `.gitignore` の編集は不要。Git管理下では `git check-ignore` と `git status --short --untracked-files=all` で記録が未追跡変更に出ないことを確認する。既存の追跡済みファイルは自動で追跡解除しない。
|
|
9
|
+
|
|
10
|
+
既存の `.claude/shinaps/` 等の記録は渡されたパスから読み、無断で移動・削除しない。新規記録は新しい保存先を使う。共有する仕様書などを `docs/` 等へ出す場合は、明示された成果物の保存先に従う。秘密情報は記録しない。
|
|
11
|
+
|
|
12
|
+
# 変更をレビューできるPRにする
|
|
13
|
+
|
|
14
|
+
## プロジェクトの条件を読む
|
|
15
|
+
|
|
16
|
+
適用される `AGENTS.md`・`CLAUDE.md` と参照先、README、CI、既存スクリプトから、今回の対象・必須検証・禁止事項を確認する。現在の依頼と合意済みの条件を引き継ぎ、一般的な推奨をプロジェクトの必須条件に格上げしない。条件同士が矛盾し結果を左右する場合だけ一問ずつ確認する。任された実装判断は進める。
|
|
17
|
+
|
|
18
|
+
既存の情報から決まる内容を再質問しない。確認した新しい恒久方針は、ユーザーが保存を認めた場合だけプロジェクトの指示または参照先へ残す。スキル自身や他プロジェクトのルールへ書き込まない。
|
|
19
|
+
|
|
20
|
+
## 差分と宛先
|
|
21
|
+
|
|
22
|
+
プロジェクトルート、Git状態、remote、対象アカウント、base・headを確認する。ユーザーの指定を優先し、base未指定ならGitHubのdefault branchを取得する。比較には取得したリモートのbase refを使い、古いローカルブランチだけで判断しない。
|
|
23
|
+
|
|
24
|
+
対象ブランチの全コミット・baseとの全差分・未コミット差分を区別して読む。未コミット変更は自動でコミットせず、既存のコミット指示に従う。PR対象が不明な場合だけ一問確認する。既存PRがあれば重複作成せず、その状態を示す。更新を依頼されている場合は同じPRを更新する。
|
|
25
|
+
|
|
26
|
+
## タイトルと本文
|
|
27
|
+
|
|
28
|
+
リポジトリのテンプレート・言語・レビュー規約に従う。指定がなければ会話の言語で、具体的な問題と変更後の挙動を先に述べる。必要な設計判断、検証した内容と限界を添える。ファイル一覧の言い換え、作業日記、今回扱っていない別の論点を増やさない。見出しや敬体、日本語、文字数を全プロジェクトに強制しない。
|
|
29
|
+
|
|
30
|
+
## 作成と確認
|
|
31
|
+
|
|
32
|
+
- 完成したタイトルと本文を提示し、すでに許可された公開を進める。ドラフトの指定と対象ブランチを守る。
|
|
33
|
+
- 必要なpushは通常のpushを単独コマンドで行う。force-pushや履歴書き換えに広げない。
|
|
34
|
+
- 本文は一時ファイルに保存し、`gh pr create --base <base> --head <head> --title <title> --body-file <file>` で渡す。本文をシェルのコマンド置換に埋め込まない。
|
|
35
|
+
- 作成結果が不明な失敗は、再作成の前に同じheadのPRを読み戻す。URL、タイトル、base・head、draft状態を確認する。
|
|
36
|
+
- タスクへのPR添付ツールがある環境では作成したPRを添付し、URLを報告する。作成をマージ・デプロイまで拡大しない。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug
|
|
3
|
+
description: 再現手順、コード、ログと必要な外部情報から不具合の根本原因を調べ、仮説を実際の証拠で検証する。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 原因調査
|
|
7
|
+
|
|
8
|
+
症状・期待する挙動・発生条件を依頼と既存情報から確定する。不足は一問ずつ確認する。プロジェクトの指示と過去の調査を読み、関係するコードとログを追う。再現が必要なら許可された環境を使い、本番データを変更しない。
|
|
9
|
+
|
|
10
|
+
仮説ごとに支持する証拠と反証を調べ、根本原因・寄与要因・否定済み・再現待ちを区別する。外部ライブラリが関係する場合だけ公式資料や既知のIssueを確認する。対症療法だけで根本原因が確定したと報告しない。
|
|
11
|
+
|
|
12
|
+
委託が許可され登録されている場合はshinaps-debuggerで仮説を立て、shinaps-debug-validatorで実コードを検証する。外部調査にはshinaps-tech-surveyorとshinaps-survey-validatorを必要に応じて使う。取得済みのShinapsルールは親が担当へ渡す。MCP不可ならルール照合未確認とする。
|
|
13
|
+
|
|
14
|
+
結論、証拠、再現状況、最小の修正方針と未確認を報告する。修正まで依頼されている場合は$shinaps:devへ引き継ぐ。調査だけなら変更しない。
|
|
15
|
+
|
|
16
|
+
必要な記録は.shinaps/work/debug/へ保存し、.shinaps/.gitignoreに`*`の除外を既存内容を保持して設定する。秘密情報・既存記録の削除・外部投稿は含めない。
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev
|
|
3
|
+
description: プロジェクトの既存設計と条件を確認し、計画・実装・簡素化・検証・レビューまで進める。機能追加や修正の実装依頼に使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 開発
|
|
7
|
+
|
|
8
|
+
1. 対象のAGENTS.md、既存構造、CIと関連する仕様・調査記録を読む。追加より設計変更が適切でないか検討し、受入条件を性質としてまとめる。仕様を変える判断だけ確認する。
|
|
9
|
+
2. Shinaps AIのルール検索が利用できれば、リポジトリと変更領域に関係するルールを取得する。使えない場合はルール照合未確認として明記し、可能な実装を進める。
|
|
10
|
+
3. 複雑な調査・設計では、委託を許可されている場合に登録済みのshinaps-explorer、shinaps-architect、shinaps-plan-reviewerへ対象と期待する結果を渡す。担当の結論を自分で検証する。委託不可なら同じ観点を現在のセッションで確認する。worktree作成は別途許可が必要。
|
|
11
|
+
4. 計画を必要な単位に分けて実装する。利用できる計画ツールで進捗を管理する。既存の無関係な変更を保ち、公開契約を変える必要が出たら理由と案を確認する。
|
|
12
|
+
5. $shinaps:simplifyを読み、仕様を保つ削除・統合を行う。CIや既存スクリプトから変更に必要な検証を実行する。UIが関係する場合は$shinaps:verify-uiを使い、対象プロジェクトで必要な実画面を確認する。
|
|
13
|
+
6. $shinaps:refineによるルール照合が可能なら行い、$shinaps:reviewで最終差分をレビューする。確定した今回の不具合を修正し、影響範囲を再検証する。依頼外の既存問題は混ぜず報告する。
|
|
14
|
+
7. 変更後の挙動、主要な検証と未確認事項を報告する。コミット・PR・公開は別途依頼された場合だけ進める。
|
|
15
|
+
|
|
16
|
+
受け取った仕様書や調査記録は、現在の依頼との整合性を確認して引き継ぐ。ツールやスキルが未提供なら存在を仮定せず、その制約を示す。質問には現在利用できる入力ツールを使い、一問ずつ回答を待つ。
|
|
17
|
+
|
|
18
|
+
記録は必要な場合に.shinaps/work/へ保存する。.shinaps/.gitignoreは未作成なら`*`と改行で作成し、既存の場合は内容を保持して必要な除外だけ追加する。追跡済みファイルや既存記録は削除しない。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: explore
|
|
3
|
+
description: 既存挙動の理由、実装方針、変更の影響を対話しながら読み取り専用で調べる。ユーザーが理解してから実装を決めたい場合に使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 対話的な調査
|
|
7
|
+
|
|
8
|
+
現在の質問を一つに絞り、プロジェクトの指示と関連コード・テスト・設定・履歴を読む。既存の調査記録と利用可能なShinapsルールを使い、確認済みの事実・推測・未確認を分けて説明する。ファイルと行、再現結果、必要な公式資料を根拠にする。
|
|
9
|
+
|
|
10
|
+
委託を許可されている場合は登録済みのshinaps-investigatorに現在の質問と対象範囲を渡せる。許可がなければ現在のセッションで調べる。調査依頼を実装・設定変更・外部投稿の許可として扱わない。
|
|
11
|
+
|
|
12
|
+
質問が曖昧なら結果を左右する点だけ一問確認する。回答後に新たな質問が来たら続け、仕様策定や修正へ自動で進まない。理解が揃い実装を依頼されたら、目的・合意事項・未確認事項・関連ファイルを引き継ぎ、$shinaps:devを読む。
|
|
13
|
+
|
|
14
|
+
継続用の記録が必要なら.shinaps/work/explorations/へ保存する。.shinaps/.gitignoreに`*`の除外を既存内容を保持して設定し、秘密情報や無関係な記録を持ち込まない。MCPが使えないときはルール照合未確認と明記する。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: extract-rules
|
|
3
|
+
description: GitHubの過去PRレビューから繰り返し適用できる規約を抽出し、Shinaps AIへ登録する。ルール抽出・登録を依頼された場合に使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# PRレビューからルールを抽出する
|
|
7
|
+
|
|
8
|
+
対象リポジトリと期間、Shinaps AIへの登録範囲を依頼・Git設定から確定する。不足は一問ずつ確認する。新しいリポジトリだからという理由だけで登録を開始しない。MCP接続と認証が必要であり、使えない場合はアカウント作成・認証を案内し、保存したと報告しない。
|
|
9
|
+
|
|
10
|
+
1. `gh`で期間内のマージ済みPRを取得する。ページングし、並び順と日付フィルターの関係を守る。更新日時順の一覧で古いマージ日時を一件見つけても、それ以降の取得を打ち切らない。
|
|
11
|
+
2. PRのreview本文・inline comment・conversation commentを取得する。PR descriptionはレビュー指摘として扱わない。APIのBot種別は除外し、判断が必要な投稿者は確認する。認証情報やリポジトリ全体をサービスへ送信しない。
|
|
12
|
+
3. 利用可能なShinaps MCPのルール検索で既存ルールを取得する。複数のレビューで繰り返され、適用条件とWHYが説明できる規約を候補にする。根拠のない例・URLを作らず、レビューコメントの出典を付ける。
|
|
13
|
+
4. 新規候補だけを対象repoのスコープへ、実際のMCPツールのスキーマに従って登録する。全プロジェクト共通へ広げる場合は利用者の判断を確認する。既存ルールの変更は差分を提示して許可を得る。
|
|
14
|
+
5. 大量処理は100 PR程度のまとまりで結果を報告し、継続範囲を確認する。結果が不明な保存失敗では再投入の前に読み戻し、重複を避ける。
|
|
15
|
+
|
|
16
|
+
終了時は処理したPR・コメント数、新規登録・更新・除外・未処理の件数と根拠を示す。取得・保存が部分的ならその範囲を明記する。記録する場合は.shinaps/work/を使い、.shinaps/.gitignoreに`*`の除外を既存内容を保持して設定する。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: refine
|
|
3
|
+
description: 対象ファイルとShinaps AIのルールを照合し、違反・改善・判断が必要な点を整理する。実装後のルール照合に使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ルール照合
|
|
7
|
+
|
|
8
|
+
指定されたパス・PR・コミット範囲から対象を決める。作業中の変更ならstaged、unstaged、関連するuntrackedを含める。適用されるプロジェクトの指示を読み、利用可能なShinaps MCPのルール検索で対象に合うルールを取得する。MCPが使えない場合は照合を実施できないと報告し、推測でルールを作らない。アカウント作成・接続は利用者の標準認証フローを案内する。
|
|
9
|
+
|
|
10
|
+
対象ファイルの現状全文を読み、ルールごとに適用条件と実際のコードを比較する。指摘には根拠となるルール、該当箇所、影響と修正案を付ける。違反・改善・仕様判断を区別し、今回の変更と元からある問題を分ける。
|
|
11
|
+
|
|
12
|
+
委託を許可されている場合は登録済みのshinaps-refine-agentへ重ならない範囲とルール全文を渡せる。結果は現在のコードで検証し重複をまとめる。独立検証をしなければそのように報告する。
|
|
13
|
+
|
|
14
|
+
修正が依頼範囲に含まれる場合、今回の変更の自明な修正を適用し、必要な検証を行う。既存箇所や仕様に関係する判断は一問ずつ確認する。ルール自体の書き換え・外部Issueの作成を無断で行わない。未処理事項を残し、照合結果と未確認を報告する。
|