create-ai-project 1.21.0 → 1.22.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.
Files changed (36) hide show
  1. package/.claude/agents-en/code-reviewer.md +1 -0
  2. package/.claude/agents-en/document-reviewer.md +13 -0
  3. package/.claude/agents-en/technical-designer-frontend.md +36 -2
  4. package/.claude/agents-en/technical-designer.md +37 -2
  5. package/.claude/agents-ja/code-reviewer.md +1 -0
  6. package/.claude/agents-ja/document-reviewer.md +13 -0
  7. package/.claude/agents-ja/technical-designer-frontend.md +36 -2
  8. package/.claude/agents-ja/technical-designer.md +37 -2
  9. package/.claude/commands-en/project-inject.md +84 -56
  10. package/.claude/commands-ja/project-inject.md +84 -56
  11. package/.claude/skills-en/coding-standards/SKILL.md +1 -0
  12. package/.claude/skills-en/documentation-criteria/SKILL.md +1 -0
  13. package/.claude/skills-en/documentation-criteria/references/design-template.md +53 -0
  14. package/.claude/skills-en/project-context/SKILL.md +2 -15
  15. package/.claude/skills-en/project-context/references/external-resources-api.md +76 -0
  16. package/.claude/skills-en/project-context/references/external-resources-backend.md +76 -0
  17. package/.claude/skills-en/project-context/references/external-resources-frontend.md +74 -0
  18. package/.claude/skills-en/project-context/references/external-resources-infra.md +76 -0
  19. package/.claude/skills-en/project-context/references/template.md +154 -0
  20. package/.claude/skills-en/task-analyzer/references/skills-index.yaml +0 -5
  21. package/.claude/skills-ja/coding-standards/SKILL.md +1 -0
  22. package/.claude/skills-ja/documentation-criteria/SKILL.md +1 -0
  23. package/.claude/skills-ja/documentation-criteria/references/design-template.md +53 -0
  24. package/.claude/skills-ja/project-context/SKILL.md +2 -15
  25. package/.claude/skills-ja/project-context/references/external-resources-api.md +76 -0
  26. package/.claude/skills-ja/project-context/references/external-resources-backend.md +76 -0
  27. package/.claude/skills-ja/project-context/references/external-resources-frontend.md +74 -0
  28. package/.claude/skills-ja/project-context/references/external-resources-infra.md +76 -0
  29. package/.claude/skills-ja/project-context/references/template.md +154 -0
  30. package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +0 -5
  31. package/CHANGELOG.md +25 -0
  32. package/CLAUDE.en.md +10 -1
  33. package/CLAUDE.ja.md +12 -3
  34. package/CLAUDE.md +12 -3
  35. package/package.json +1 -1
  36. package/scripts/check-skills-index.mjs +1 -2
@@ -1,86 +1,114 @@
1
1
  ---
2
- description: プロジェクト固有のコンテキストをproject-contextスキルに注入
2
+ description: テンプレート駆動ヒアリングで project-context スキルを設定
3
3
  ---
4
4
 
5
- **コマンドコンテキスト**: AIの実行精度を高めるプロジェクト固有の前提情報を収集し、project-context SKILL.mdを更新する。
5
+ **コマンドコンテキスト**: `/project-inject` は AI の実行精度を高めるプロジェクト固有の前提情報を収集し、`project-context` スキルに書き込む。ヒアリングはテンプレート駆動で、セクションカタログは `references/template.md` に格納されており、新しい次元を追加する場合はこのテンプレートを編集する。
6
6
 
7
7
  ## なぜ必要か
8
8
 
9
- CLAUDE.mdのセッション初期化で`project-context`スキルが毎セッション読み込まれる。ここで収集した情報が、全タスクにおけるAIの判断精度に直接影響する。
9
+ CLAUDE.md のセッション初期化で `project-context/SKILL.md` が毎セッション読み込まれる。ここで収集した情報は全タスクにおける AI の判断精度に直接影響する。設定済み SKILL.md は最小限に保つ — 1 行ごとに毎セッションのコンテキスト予算を消費する。
10
10
 
11
- **AIの実行精度に寄与する情報のみ収集する。**
11
+ ## 実行フロー
12
12
 
13
- ## 実行プロセス
13
+ Step 1 を開始する前に以下のステップを TaskCreate で登録し、進捗に応じて各タスクのステータスを更新する。
14
14
 
15
- 以下のステップをTaskCreateで登録し、順番に進行する。
15
+ ### Step 1: 入力読み込み
16
16
 
17
- ### Step 1: 現状把握
17
+ 1. `.claude/skills/project-context/SKILL.md` を読み、現在の状態を把握する。本文に含まれるカタログセクション見出し(`## プロジェクト概要`、`## ドメイン制約`、`## 開発フェーズ`、`## ディレクトリ規約`、`## 外部リソース`)の数で 2 つのケースを区別する:
18
+ - **未設定** — 本文中のカタログセクション見出しが 0 個。
19
+ - **設定済み** — 本文中のカタログセクション見出しが 1 個以上。
20
+ 2. `.claude/skills/project-context/references/template.md` を読み、セクションカタログを取得する。
18
21
 
19
- 現在のproject-contextスキルとpackage.jsonを読む:
20
- - `.claude/skills/project-context/SKILL.md`
21
- - `package.json`(name、description)
22
+ **チェックポイント**: `template.md` のセクションカタログと、`SKILL.md` の設定済み / 未設定の状態を保持している。
22
23
 
23
- project-contextが設定済み(「未設定」マーカーがない)の場合、上書きか更新かをユーザーに確認する。
24
+ ### Step 2: セクション計画の作成
24
25
 
25
- ### Step 2: プロジェクトコンテキストの収集
26
+ カタログの全セクションを対象に、セクションごとの計画(`add` / `keep` / `update` / `remove` / `skip`)を作成する。
26
27
 
27
- AskUserQuestionで段階的に収集する。
28
+ **未設定の場合**:
29
+ - プロジェクト概要: `add`(必須。このセクションの採用ルールは「常に」)。
30
+ - 残りのカタログセクションそれぞれについて、AskUserQuestion: 「`<セクション名>` セクションを追加するか?」 選択肢: 「はい、追加する」 / 「いいえ、スキップ」。回答に応じて `add` または `skip` を割り当てる。
28
31
 
29
- **ラウンド1: プロジェクトの本質**
30
- - このプロジェクトは何をするものか?(1-2文)
31
- - どのドメインに属するか?(例:金融、ヘルスケア、開発者ツール、EC)
32
+ **設定済みの場合**:
33
+ - 内容が記入されているセクションそれぞれについて、AskUserQuestion: 「既存の `<セクション名>` セクションへのアクションは?」 選択肢: 「現状維持」(`keep` を割り当て) / 「更新 — 既存内容を置き換え」(`update` を割り当て) / 「削除 — 再構築する SKILL.md から除外」(`remove` を割り当て)。
34
+ - 既存 SKILL.md でまだ空のままのカタログセクションそれぞれについて、AskUserQuestion: 「`<セクション名>` セクションを追加するか?」 選択肢: 「はい、追加する」(`add` を割り当て) / 「いいえ、スキップ」(`skip` を割り当て)。
32
35
 
33
- **ラウンド2: ドメイン制約**(ラウンド1の回答に基づいて質問)
34
- - AIが必ず守るべきドメイン固有のルールはあるか?ラウンド1のドメインに応じた例を提示する(例:金融なら「全ての変更操作に監査ログ必須」、ヘルスケアなら「ログ出力は匿名化された患者IDを使用」)。
35
- - 最大3つ。AIが無視するとバグやコンプライアンス違反になるもののみ。
36
+ **チェックポイント**: 全カタログセクションが `add`、`keep`、`update`、`remove`、`skip` のいずれか 1 つの区分を持つ。
36
37
 
37
- **ラウンド3: 開発コンテキスト**
38
- - 開発フェーズ:プロトタイプ / 本番開発 / 運用中
39
- - AIが従うべきディレクトリ規約やファイル配置ルールはあるか?(なければスキップ)
38
+ ### Step 3: セクションごとのヒアリング実行
40
39
 
41
- ### Step 3: 生成と書き込み
40
+ `add` または `update` 区分のセクションそれぞれについて、`template.md` がそのセクション向けに定義するヒアリングプロトコルを実行する。カタログには各軸の AskUserQuestion 文と選択肢、採用ルール、セクションごとの出力構造が記述されている。
42
41
 
43
- 収集した情報からproject-context SKILL.mdを生成する。以下の原則に従う:
42
+ **外部リソースセクション**: `template.md` § 外部リソース のルーティングプロトコルに従う。当該セクションがドメインのマルチセレクト、ドメインとファイルの対応、軸ごとの出力スキーマを所有しており、このコマンドはそれに委譲する。
44
43
 
45
- **記述の原則:**
46
- 1. AI判断可能:測定・検証可能な基準のみ(「迅速に」→「5秒以内」)
47
- 2. 曖昧さの排除:具体的な数値・条件・例示を含める
48
- 3. 肯定形:「〜しない」より「〜する」の形で記述
49
- 4. 最小限:AIの実行精度に影響するもののみ
44
+ **曖昧ルールの差し戻し**(`add` および `update` 区分の全セクションに適用): ユーザー提供のルールが主観的な表現の場合(例: 「パフォーマンスに気をつける」)、フォローアップで尋ねる: 「AI はこのルールが pass か fail かをどのように検証できるか? 測定可能なチェックに書き換える、または 'drop' と返答すれば省略する。」 測定可能な形で届いたルールはそのまま採用し、主観的なものはユーザーが書き換えた版で置き換え、'drop' の場合はそのルールを省略する。
50
45
 
51
- **出力先**(両方更新する):
52
- 1. `.claude/skills/project-context/SKILL.md`(アクティブ、Claudeが読む方)
53
- 2. 対応する`skills-{lang}/project-context/SKILL.md`(`.claudelang`で現在の言語を確認)
46
+ **チェックポイント**: `add` および `update` 区分の各セクションで収集した内容と、`keep` 区分のセクションの原文をそのまま保持している。
54
47
 
55
- **構造:**
56
- ```markdown
57
- ---
58
- name: project-context
59
- description: AIの実行精度に必要なプロジェクト固有の前提情報を提供。プロジェクト構成確認時に使用。
60
- ---
48
+ ### Step 4: SKILL.md の組み立てと書き込み
49
+
50
+ 再構築する SKILL.md を以下の順序で連結して構築する:
51
+
52
+ 1. フロントマター — 以下の正本ブロックをそのまま書き込む:
53
+ ```
54
+ ---
55
+ name: project-context
56
+ description: AIの実行精度に必要なプロジェクト固有の前提情報を提供 — ドメイン制約、開発フェーズ、ディレクトリ規約、外部リソースのアクセス方法。セッション開始時、プロジェクト構成確認時、またはタスクがドメインルールやリポジトリ外の外部リソースを参照する時に使用。
57
+ ---
58
+ ```
59
+ 2. `# プロジェクトコンテキスト` 見出し。
60
+ 3. 各セクションをカタログ順(プロジェクト概要 → ドメイン制約 → 開発フェーズ → ディレクトリ規約 → 外部リソース)で配置する。出力に含まれるのは区分が `add`、`keep`、`update` のいずれかであり、かつ採用ルールを満たすセクションのみ。本文は採用された次のセクションへ直接進む。
61
+
62
+ 組み立てた内容を `.claude/skills/project-context/SKILL.md` に書き込む。このパスが Claude が毎セッション読み込むランタイムの正本となる。
63
+
64
+ ### Step 5: 検証
65
+
66
+ 再構築した `.claude/skills/project-context/SKILL.md` に対して以下のチェックを順に適用する:
67
+
68
+ - [ ] フロントマターが Step 4 の正本ブロックと逐語一致する。
69
+ - [ ] 本文の全セクション見出しの直後に、ヒアリングで収集した具体内容(具体値、リスト、サブブロック)が続く。
70
+ - [ ] 内容が記入されている各セクションが、`template.md` で定義された出力構造に一致する。
71
+ - [ ] 本文に含まれる各セクションは区分が `add`、`keep`、`update` のいずれかであり、かつ採用ルールを満たす。
72
+ - [ ] ドメイン制約の文が pass / fail で評価可能である(例: 「ログ出力は匿名化された ID を使用」は pass、「ログをきれいに保つ」はこのチェックに失敗する)。
73
+ - [ ] プロジェクトコンテキストの内容は制約・フェーズ・規約・外部リソースに限られる。技術スタックの詳細は `technical-spec` スキルの責務、実装原則は `coding-standards` スキルの責務である。
61
74
 
62
- # プロジェクトコンテキスト
75
+ いずれかのチェックで失敗した場合、該当行を特定してユーザーに報告し、対象セクションの再ヒアリングまたは手動編集を提案する。修正後に Step 5 を再実行する。
63
76
 
64
- ## プロジェクト概要
65
- - **このプロジェクトが何をするか**: [簡潔な説明]
66
- - **ドメイン**: [ドメイン]
77
+ ### Step 6: 結果の提示
67
78
 
68
- ## ドメイン制約
69
- 1. [AIの判断に影響する測定可能な制約]
70
- 2. [検証可能な要件]
79
+ 再構築した SKILL.md をユーザーに提示し、変更内容(追加 / 更新 / 削除 / 維持されたセクション)を列挙し、完了を確認する。
71
80
 
72
- ## 開発フェーズ
73
- - **フェーズ**: [現在のフェーズ]
81
+ ## 出力例
74
82
 
75
- ## ディレクトリ規約
76
- [ファイル配置ルール、またはなければ「特になし」]
83
+ **未設定スキルへの初回実行**(全セクションを新規収集):
84
+
85
+ ```
86
+ project-context 設定完了:
87
+ - 維持されたセクション: (なし — 初回実行のため)
88
+ - 更新されたセクション: (なし — 初回実行のため)
89
+ - 追加されたセクション: プロジェクト概要、ドメイン制約(2 ルール収集)、開発フェーズ、ディレクトリ規約(1 ルール)、外部リソース(バックエンドドメイン — データベーススキーマソース、シークレットストア)
90
+ - 削除されたセクション: (なし)
91
+ - 書き込み先ファイル: .claude/skills/project-context/SKILL.md
92
+ ```
93
+
94
+ **設定済みスキルへの軽微な更新**(1 セクションを編集、他は保持):
95
+
96
+ ```
97
+ project-context 更新完了:
98
+ - 維持されたセクション: プロジェクト概要、開発フェーズ、ディレクトリ規約
99
+ - 更新されたセクション: ドメイン制約(3 ルール収集)
100
+ - 追加されたセクション: (なし)
101
+ - 削除されたセクション: (なし)
102
+ - 書き込み先ファイル: .claude/skills/project-context/SKILL.md
77
103
  ```
78
104
 
79
- ### Step 4: 検証
105
+ **セクション削除のみの実行**(既存セクションを削除、新規追加なし):
80
106
 
81
- - [ ] 生成ファイルにプレースホルダーテキスト(「要設定」等)が残っていないこと
82
- - [ ] 全てのドメイン制約が測定・検証可能であること(曖昧な記述がない)
83
- - [ ] 技術スタック情報が含まれていないこと(technical-specスキルの責務)
84
- - [ ] 実装原則が含まれていないこと(coding-standardsスキルの責務)
85
- - [ ] 両方の出力先が更新されていること
86
- - [ ] 結果をユーザーに提示して確認を得ること
107
+ ```
108
+ project-context 更新完了:
109
+ - 維持されたセクション: プロジェクト概要、ドメイン制約、開発フェーズ
110
+ - 更新されたセクション: (なし)
111
+ - 追加されたセクション: (なし)
112
+ - 削除されたセクション: ディレクトリ規約
113
+ - 書き込み先ファイル: .claude/skills/project-context/SKILL.md
114
+ ```
@@ -29,6 +29,7 @@ Immediately stop and reconsider design when detecting the following patterns:
29
29
 
30
30
  - **Aggressive Refactoring** - Prevent technical debt and maintain health
31
31
  - **No Unused "Just in Case" Code** - Violates YAGNI principle (Kent Beck)
32
+ - **Minimum Surface for Required Coverage** - When introducing maintenance-surface-bearing elements (persistent state, public-contract elements or cross-boundary fields/props, behavioral modes/flags/variants, reusable abstractions, or component splits), select the smallest design surface that covers current user-visible requirements and accepted technical constraints (audit, data integrity, compatibility, security, performance, accessibility). Adoption is justified by naming a current requirement or constraint that smaller alternatives fail to cover; value-based arguments (reusable, future-ready, convenient for implementation) serve as tiebreakers only. Distinct from YAGNI: YAGNI is a time-axis check (refuse work for future-only needs); this principle constrains surface area at a fixed coverage point.
32
33
 
33
34
  ## Comment Writing Rules
34
35
 
@@ -120,6 +120,7 @@ description: Guides PRD, ADR, Design Doc, UI Spec, and Work Plan creation. Use w
120
120
  - **Code inspection evidence** (inspected files/functions during investigation)
121
121
  - **Field propagation map** (when fields cross component boundaries)
122
122
  - **Data representation decision** (when introducing new structures)
123
+ - **Minimal Surface Alternatives** (when introducing persistent state, public-contract elements or cross-boundary fields, behavioral modes/flags, or reusable abstractions/component splits — see design-template.md for the 5-step output format)
123
124
  - **Applicable standards** (explicit/implicit classification)
124
125
  - **Prerequisite ADRs** (including common ADRs)
125
126
  - **Verification Strategy** (required)
@@ -185,6 +185,49 @@ Evaluate existing structures: semantic fit, responsibility fit, lifecycle fit, b
185
185
 
186
186
  **Decision**: [reuse / extend / new] — [rationale]
187
187
 
188
+ ### Minimal Surface Alternatives (When Introducing Maintenance-Surface Elements)
189
+
190
+ One entry per new in-scope element (persistent state / public-contract element or cross-boundary field or prop / behavioral mode/flag/variant / reusable abstraction or component split). Records the 5-step output produced by the invoking designer agent. Reference: `coding-standards` skill, "Minimum Surface for Required Coverage".
191
+
192
+ #### Element 1: [name of the new element]
193
+
194
+ **Step 1 — Fixed Requirements**
195
+ - [AC reference — AC ID, AC heading, EARS clause, or constraint ID]: [requirement / constraint text]
196
+ - [AC reference]: [requirement / constraint text]
197
+
198
+ References may point to the Design Doc, referenced PRD, or referenced UI Spec.
199
+
200
+ **Steps 2–3 — Alternatives Compared**
201
+
202
+ Adapt the column names below to the design context: backend Design Docs use "Crosses module/service boundary" and "New concept / mode / flag"; frontend Design Docs use "Crosses component boundary" and "New props / modes / variants" (and add the "client or server" qualifier to the persistent-state column).
203
+
204
+ | Alternative | Current requirements covered (AC reference) | New persistent state introduced (count) | New concept / mode / flag / prop / variant (count) | Crosses module/service or component boundary (yes/no) | Breaking change or migration required (yes/no) | Subjective cost notes |
205
+ |---|---|---|---|---|---|---|
206
+ | [The added element as proposed] | | | | | | |
207
+ | [Subtractive alternative — derive / compute on demand / keep at caller / reuse existing / introduce no new state] | | | | | | |
208
+ | [Optional third alternative] | | | | | | |
209
+
210
+ Subjective cost notes accepts: maintainability concerns, naming clarity, perceived implementation effort, future-readiness sentiment, and similar judgment-level remarks.
211
+
212
+ **Resolution priority for selecting "smallest"** (later columns are tiebreakers when earlier are equal):
213
+ 1. New persistent state introduced (lower = smaller)
214
+ 2. Crosses module/service or component boundary (no = smaller)
215
+ 3. New concept / mode / flag / prop / variant (lower = smaller)
216
+ 4. Breaking change or migration required (no = smaller)
217
+ 5. Subjective cost notes
218
+
219
+ **Step 4 — Selected Alternative and Rationale**
220
+ - **Selected**: [alternative name]
221
+ - **Rationale**:
222
+ - When selected = smallest alternative considered: state "smallest alternative considered; no further reduction available"
223
+ - When selected > smallest: name the current requirement(s) from Step 1 that smaller alternatives fail to satisfy
224
+
225
+ **Step 5 — Rejected Alternatives Log**
226
+ - [Alternative name]: [1-2 lines on what it was and why rejected]
227
+ - [Alternative name]: [1-2 lines on what it was and why rejected]
228
+
229
+ Repeat the Element block above for each additional in-scope element. Mark the whole section N/A with brief rationale when the design introduces no in-scope elements.
230
+
188
231
  ### Type Definitions
189
232
 
190
233
  ```typescript
@@ -351,6 +394,16 @@ Mark as N/A with brief rationale when the design introduces entirely new behavio
351
394
  - **Disadvantages**: [Disadvantages]
352
395
  - **Reason for Rejection**: [Why it wasn't adopted]
353
396
 
397
+ ## Future Extensibility
398
+
399
+ This section records capabilities **excluded** from the current design surface. Limit entries to capabilities tied to a current requirement, a current consumer, or a documented constraint; route purely speculative future plans into a separate proposal document.
400
+
401
+ Distinguish from "Minimal Surface Alternatives → Step 5 (Rejected Alternatives)": Step 5 records element-level alternatives that were compared and rejected within a single in-scope element; this section records capability-level items not bound to a single element (broader scope considered but excluded).
402
+
403
+ - **Deferred possibilities**: [Capabilities considered during design and explicitly excluded from the current design surface. Each entry names the current requirement it would have served]
404
+ - **Intentional limitations**: [What was deliberately kept small and why]
405
+ - **Extension points (existing, with current consumers)**: [Interfaces or hooks already in use by named current consumers. Each entry names a current consumer]
406
+
354
407
  ## Risks and Mitigation
355
408
 
356
409
  | Risk | Impact | Probability | Mitigation |
@@ -1,21 +1,8 @@
1
1
  ---
2
2
  name: project-context
3
- description: Provides project-specific prerequisites for AI execution accuracy. Use when checking project structure.
3
+ description: Provides project-specific prerequisites for AI execution accuracy — domain constraints, development phase, directory conventions, external resource access methods. Use when the session starts, when checking project structure, or when a task references domain rules or external resources outside the repository.
4
4
  ---
5
5
 
6
6
  # Project Context
7
7
 
8
- > **Not configured.** Run `/project-inject` to set up project-specific context.
9
-
10
- ## Project Overview
11
- - **What this project does**: (to be configured)
12
- - **Domain**: (to be configured)
13
-
14
- ## Domain Constraints
15
- (Domain-specific rules that affect AI decision-making)
16
-
17
- ## Development Phase
18
- - **Phase**: (Prototype / Production / In operation)
19
-
20
- ## Directory Conventions
21
- (File placement rules, if any)
8
+ Run `/project-inject` to populate this skill.
@@ -0,0 +1,76 @@
1
+ # API Contract External Resource Axes
2
+
3
+ Hearing axes for API contract design, client integration, or server endpoint implementation. `/project-inject` loads this file when the user selects the API domain.
4
+
5
+ ## Axis 1: API Schema Source
6
+
7
+ The canonical source of API contracts (request/response shapes, endpoints, RPC methods).
8
+
9
+ **AskUserQuestion choices**:
10
+ - OpenAPI / Swagger specification (file in repository or hosted URL)
11
+ - Protobuf definitions (file in repository)
12
+ - GraphQL schema (SDL file or introspection endpoint)
13
+ - Code-first contract definitions in the repository (e.g., TypeScript types shared between client and server)
14
+ - Ad-hoc JSON (no formal contract)
15
+ - Not applicable
16
+
17
+ **Follow-up (when the axis is present)**: Capture two fields:
18
+ - **Location**: file path or URL.
19
+ - **Access method**: file read or WebFetch.
20
+
21
+ When multiple contracts exist (public API, internal services), capture each as a separate entry per the multiple-instance rule in `template.md`, using the contract purpose as the disambiguating suffix.
22
+
23
+ ## Axis 2: Mock Environment
24
+
25
+ How clients exercise the API in isolation from the live server.
26
+
27
+ **AskUserQuestion choices**:
28
+ - Generated mocks from the schema (e.g., from OpenAPI / Protobuf tooling)
29
+ - Hand-written mock server in the repository
30
+ - Hosted mock service (URL)
31
+ - Live development server (no separate mock)
32
+ - Not applicable
33
+
34
+ **Follow-up (when the axis is present)**: Capture two fields:
35
+ - **Location**: mock URL or repository path.
36
+ - **Access method**: CLI command, WebFetch, or generation step name. State whether the mock auto-updates when the schema changes (e.g., `regenerate from openapi.yaml on commit`).
37
+
38
+ ## Axis 3: Authentication Method
39
+
40
+ How the API authenticates and authorizes requests.
41
+
42
+ **AskUserQuestion choices**:
43
+ - Bearer token (e.g., JWT) issued by an auth service
44
+ - API key in a header or query parameter
45
+ - Session cookie set by a separate login flow
46
+ - Mutual TLS
47
+ - No authentication
48
+ - Not applicable
49
+
50
+ **Follow-up (when the axis is present)**: Capture two fields:
51
+ - **Location**: auth service URL, environment variable name, or fixture file path used in development and testing.
52
+ - **Access method**: SDK call, CLI command, or file read.
53
+
54
+ When the same secrets live in the backend secret store, render this axis as a cross-axis reference back to that location (notation defined in `template.md`).
55
+
56
+ ## Axis 4: Schema Change Process
57
+
58
+ How breaking and non-breaking schema changes are reviewed and rolled out.
59
+
60
+ **AskUserQuestion choices**:
61
+ - Documented contract review process (link to the document)
62
+ - Versioned endpoints (e.g., `/v1/`, `/v2/`)
63
+ - Backward-compatible changes only, no formal versioning
64
+ - Not applicable
65
+
66
+ **Follow-up (when the axis is present)**: Capture two fields:
67
+ - **Location**: document path or URL.
68
+ - **Access method**: file read, WebFetch, or version negotiation rule statement (e.g., `breaking changes require a new /vN/ path`).
69
+
70
+ ## Self-Declaration Phase
71
+
72
+ After the four structured axes, ask once: "Are there any other API external resources this project depends on beyond what the structured questions covered? List each in your next message, or reply 'none'."
73
+
74
+ Capture free-form answers under the "Additional Resources" subsection of the API block. Run this phase even when every structured axis returned "Not applicable".
75
+
76
+ Examples of resources that surface only via self-declaration: rate-limit configuration, gateway or proxy in front of the API, contract test suite (e.g., Pact broker URL), API gateway management consoles, third-party API documentation consulted during design.
@@ -0,0 +1,76 @@
1
+ # Backend External Resource Axes
2
+
3
+ Hearing axes for server-side, data, or storage work. `/project-inject` loads this file when the user selects the Backend domain.
4
+
5
+ ## Axis 1: Database Schema Source
6
+
7
+ The canonical source of the database schema (tables, columns, indexes, constraints).
8
+
9
+ **AskUserQuestion choices**:
10
+ - Migration files in the repository (e.g., a `migrations/` directory)
11
+ - Schema file in the repository (e.g., `schema.sql`, `prisma/schema.prisma`)
12
+ - Database MCP server that introspects a live database
13
+ - External schema registry (URL or hosted catalog)
14
+ - No persistent database
15
+ - Not applicable
16
+
17
+ **Follow-up (when the axis is present)**: Capture two fields:
18
+ - **Location**: file path, URL, or MCP target identifier.
19
+ - **Access method**: file read, WebFetch, or MCP server name.
20
+
21
+ When multiple databases exist (primary, analytics, cache), capture each as a separate entry per the multiple-instance rule in `template.md`, using the database purpose as the disambiguating suffix.
22
+
23
+ ## Axis 2: Migration History
24
+
25
+ How schema changes are tracked over time.
26
+
27
+ **AskUserQuestion choices**:
28
+ - Versioned migration files in the repository
29
+ - ORM-managed migration tool (e.g., Alembic, Flyway, Prisma Migrate)
30
+ - Manual change log document
31
+ - No migration tracking
32
+ - Not applicable
33
+
34
+ **Follow-up (when the axis is present)**: Capture two fields:
35
+ - **Location**: directory path or migration tool name.
36
+ - **Access method**: CLI command for manual runs, or CI step / deployment hook name when migrations apply automatically.
37
+
38
+ ## Axis 3: Secret Store
39
+
40
+ Where credentials, API keys, and other secrets are stored and accessed.
41
+
42
+ **AskUserQuestion choices**:
43
+ - Secret manager service (e.g., AWS Secrets Manager, Vault, GCP Secret Manager)
44
+ - Environment variables loaded from a `.env` file (development only)
45
+ - Encrypted file in the repository
46
+ - No secrets required
47
+ - Not applicable
48
+
49
+ **Follow-up (when the axis is present)**: Capture two fields:
50
+ - **Location**: secret manager service name or MCP target.
51
+ - **Access method**: MCP server name, CLI command, or SDK call used to read secrets.
52
+
53
+ The actual secret values live in the store and are read from there at runtime — capture only how to reach them.
54
+
55
+ ## Axis 4: Background Job Infrastructure
56
+
57
+ How asynchronous work is dispatched and observed.
58
+
59
+ **AskUserQuestion choices**:
60
+ - Queue service (e.g., SQS, Pub/Sub, RabbitMQ)
61
+ - Cron / scheduled tasks managed by the deployment platform
62
+ - In-process worker thread
63
+ - No background work
64
+ - Not applicable
65
+
66
+ **Follow-up (when the axis is present)**: Capture two fields:
67
+ - **Location**: queue name or scheduler identifier.
68
+ - **Access method**: enqueue command, inspect command, or platform console URL.
69
+
70
+ ## Self-Declaration Phase
71
+
72
+ After the four structured axes, ask once: "Are there any other backend external resources this project depends on beyond what the structured questions covered? List each in your next message, or reply 'none'."
73
+
74
+ Capture free-form answers under the "Additional Resources" subsection of the Backend block. Run this phase even when every structured axis returned "Not applicable".
75
+
76
+ Examples of resources that surface only via self-declaration: third-party SaaS APIs (payment, email, search index), distributed cache services (Redis, Memcached), object storage (S3, GCS), feature flag services consumed server-side, observability platforms (logs, traces, metrics).
@@ -0,0 +1,74 @@
1
+ # Frontend External Resource Axes
2
+
3
+ Hearing axes for frontend work — component implementation, screen design, visual adjustment, design system migration. `/project-inject` loads this file when the user selects the Frontend domain.
4
+
5
+ ## Axis 1: Design Origin
6
+
7
+ The canonical source of the visual specification.
8
+
9
+ **AskUserQuestion choices**:
10
+ - Design tool (a hosted design platform)
11
+ - Specification file in the repository (e.g., `DESIGN.md`, `docs/design/...`)
12
+ - Public documentation URL
13
+ - Existing implementation only (no separate design source)
14
+ - Not applicable
15
+
16
+ **Follow-up (when the axis is present)**: Capture two fields (Source type is set by the choice above):
17
+ - **Location**: public URL, repository file path, or MCP target identifier.
18
+ - **Access method**: WebFetch, file read, MCP server name, or manual screenshot procedure.
19
+
20
+ ## Axis 2: Design System
21
+
22
+ Reusable component library and design tokens.
23
+
24
+ **AskUserQuestion choices**:
25
+ - Component library with MCP server access
26
+ - Component library with documentation URL
27
+ - Storybook or equivalent component catalog
28
+ - Internal package with team-internal documentation only
29
+ - No design system (ad-hoc components)
30
+ - Not applicable
31
+
32
+ **Follow-up (when the axis is present)**: Capture two fields:
33
+ - **Location**: Storybook URL, package name, or internal documentation path.
34
+ - **Access method**: WebFetch, file read, or MCP server name.
35
+
36
+ ## Axis 3: Guidelines
37
+
38
+ Usage guidance, accessibility rules, anti-patterns, naming conventions for UI work.
39
+
40
+ **AskUserQuestion choices**:
41
+ - Project-level guideline file (e.g., `DESIGN.md`, `docs/guidelines/...`)
42
+ - External documentation site
43
+ - Inline guidance inside the design system catalog
44
+ - No documented guidelines
45
+ - Not applicable
46
+
47
+ **Follow-up (when the axis is present)**: Capture two fields:
48
+ - **Location**: file path or URL.
49
+ - **Access method**: file read or WebFetch.
50
+
51
+ When multiple files address different concerns (CSS, accessibility, i18n), capture each as a separate entry per the multiple-instance rule in `template.md`.
52
+
53
+ ## Axis 4: Visual Verification Environment
54
+
55
+ How rendered output is confirmed during implementation.
56
+
57
+ **AskUserQuestion choices**:
58
+ - End-to-end test runner with screenshot capability
59
+ - Storybook or equivalent isolated component preview
60
+ - Browser automation tool (dedicated CLI or MCP server)
61
+ - Manual browser inspection only
62
+ - Not applicable
63
+
64
+ **Follow-up (when the axis is present)**: Capture two fields:
65
+ - **Location**: preview URL, MCP target, or test runner identifier.
66
+ - **Access method**: entry command, MCP server name, or browser automation tool name.
67
+
68
+ ## Self-Declaration Phase
69
+
70
+ After the four structured axes, ask once: "Are there any other frontend external resources this project depends on beyond what the structured questions covered? List each in your next message, or reply 'none'."
71
+
72
+ Capture free-form answers under the "Additional Resources" subsection of the Frontend block. Run this phase even when every structured axis returned "Not applicable".
73
+
74
+ Examples of resources that surface only via self-declaration: brand asset CDNs, font hosting services, icon library subscriptions, A/B testing dashboards that gate visual variants, analytics dashboards consulted for visual KPIs.
@@ -0,0 +1,76 @@
1
+ # Infrastructure External Resource Axes
2
+
3
+ Hearing axes for deployment, environment configuration, or infrastructure-as-code work. `/project-inject` loads this file when the user selects the Infrastructure domain.
4
+
5
+ ## Axis 1: IaC Source
6
+
7
+ The canonical source of infrastructure definitions.
8
+
9
+ **AskUserQuestion choices**:
10
+ - Terraform configuration in the repository
11
+ - Pulumi or CDK code in the repository
12
+ - Kubernetes manifests / Helm charts in the repository
13
+ - Cloud-provider-native templates (e.g., CloudFormation, Bicep, Deployment Manager)
14
+ - Manual console configuration (no IaC)
15
+ - Not applicable
16
+
17
+ **Follow-up (when the axis is present)**: Capture two fields:
18
+ - **Location**: directory path.
19
+ - **Access method**: CI pipeline name when plan/apply runs automatically, or CLI command when an operator runs it manually.
20
+
21
+ ## Axis 2: Environment Configuration
22
+
23
+ How per-environment settings (development, staging, production) differ.
24
+
25
+ **AskUserQuestion choices**:
26
+ - Per-environment configuration files in the repository (e.g., `terraform/envs/`, `config/staging.yaml`)
27
+ - Environment variables managed by the deployment platform
28
+ - Workspace or stack abstraction in the IaC tool itself
29
+ - Single shared configuration (no per-environment differences)
30
+ - Not applicable
31
+
32
+ **Follow-up (when the axis is present)**: Capture two fields:
33
+ - **Location**: configuration file paths, platform setting names, or workspace identifiers where environment-specific values are stored.
34
+ - **Access method**: file read, platform console URL, or CLI command.
35
+
36
+ When multiple environments are tracked separately (development, staging, production), capture each as a separate entry per the multiple-instance rule in `template.md`, using the environment name as the disambiguating suffix.
37
+
38
+ ## Axis 3: Secrets in Infrastructure
39
+
40
+ How infrastructure code references secrets while keeping their values out of source control.
41
+
42
+ **AskUserQuestion choices**:
43
+ - Secrets sourced from a secret manager via IaC data lookup
44
+ - Secrets injected at apply time via environment variables
45
+ - Encrypted secret files committed alongside IaC
46
+ - No secrets in infrastructure
47
+ - Not applicable
48
+
49
+ **Follow-up (when the axis is present)**: Capture two fields:
50
+ - **Location**: secret manager service name or IaC data source identifier.
51
+ - **Access method**: data lookup syntax, environment variable name, or apply-time injection mechanism.
52
+
53
+ When the same secret store appears in the Backend domain, render this axis as a cross-axis reference back to that location (notation defined in `template.md`).
54
+
55
+ ## Axis 4: Deployment Trigger
56
+
57
+ How infrastructure and application changes reach environments.
58
+
59
+ **AskUserQuestion choices**:
60
+ - CI pipeline triggered on merge to a specific branch
61
+ - Manual approval step in CI
62
+ - Local apply by an operator
63
+ - Deployment platform's auto-deploy on push
64
+ - Not applicable
65
+
66
+ **Follow-up (when the axis is present)**: Capture two fields:
67
+ - **Location**: CI pipeline name or deployment platform identifier.
68
+ - **Access method**: branch / tag convention that triggers each environment, plus any required manual approval step.
69
+
70
+ ## Self-Declaration Phase
71
+
72
+ After the four structured axes, ask once: "Are there any other infrastructure external resources this project depends on beyond what the structured questions covered? List each in your next message, or reply 'none'."
73
+
74
+ Capture free-form answers under the "Additional Resources" subsection of the Infrastructure block. Run this phase even when every structured axis returned "Not applicable".
75
+
76
+ Examples of resources that surface only via self-declaration: state-storage backend for IaC tools, runbook documents for incident response, on-call rotation, observability dashboards, cost monitoring tools, compliance / audit logging targets.