create-ai-project 1.21.0 → 1.22.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.
@@ -1,86 +1,114 @@
1
1
  ---
2
- description: Inject project-specific context into project-context skill
2
+ description: Populate project-context skill via template-driven hearing
3
3
  ---
4
4
 
5
- **Command Context**: Collect project-specific prerequisites that improve AI execution accuracy and update project-context SKILL.md.
5
+ **Command Context**: `/project-inject` collects project-specific prerequisites that improve AI execution accuracy and writes them into the `project-context` skill. The hearing is template-driven: the section catalog lives in `references/template.md`, and new dimensions are added by editing that template.
6
6
 
7
7
  ## Why This Matters
8
8
 
9
- CLAUDE.md's Session Initialization reads `project-context` skill at the start of every session. The information collected here directly affects AI decision-making accuracy across all tasks.
9
+ CLAUDE.md's session initialization loads `project-context/SKILL.md` at the start of every session. Information collected here directly affects AI decision-making accuracy across all tasks. Keep the configured SKILL.md minimal — every line is paid in context budget per session.
10
10
 
11
- **Collect only what improves AI execution accuracy.**
11
+ ## Execution Flow
12
12
 
13
- ## Execution Process
13
+ Register all steps below using TaskCreate before starting Step 1, and update each task's status as you progress.
14
14
 
15
- Register the following steps with TaskCreate and proceed systematically.
15
+ ### Step 1: Load Inputs
16
16
 
17
- ### Step 1: Understand Current State
17
+ 1. Read `.claude/skills/project-context/SKILL.md` to learn the current state. Distinguish the two cases by the count of catalog section headings (`## Project Overview`, `## Domain Constraints`, `## Development Phase`, `## Directory Conventions`, `## External Resources`) present in the body:
18
+ - **Unconfigured** — the body has zero catalog section headings.
19
+ - **Configured** — the body has one or more catalog section headings.
20
+ 2. Read `.claude/skills/project-context/references/template.md` to obtain the section catalog.
18
21
 
19
- Read the current project-context skill and package.json:
20
- - `.claude/skills/project-context/SKILL.md`
21
- - `package.json` (name, description)
22
+ **Checkpoint**: You hold the section catalog from `template.md` and the configured-or-unconfigured state of `SKILL.md`.
22
23
 
23
- If project-context is already configured (no "Not configured" marker), confirm with user whether to overwrite or update.
24
+ ### Step 2: Build Section Plan
24
25
 
25
- ### Step 2: Collect Project Context
26
+ Produce a per-section plan (`add` / `keep` / `update` / `remove` / `skip`) covering every section in the catalog.
26
27
 
27
- Use AskUserQuestion to collect information in stages.
28
+ **Unconfigured case**:
29
+ - Project Overview: `add` (mandatory; the section's inclusion rule is "Always").
30
+ - For each remaining catalog section, AskUserQuestion: "Add the `<section name>` section?" Options: "Yes, add it" / "No, skip". Mark `add` or `skip` accordingly.
28
31
 
29
- **Round 1: Project essence**
30
- - What does this project do? (1-2 sentences)
31
- - What domain does it belong to? (e.g., fintech, healthcare, developer tools, e-commerce)
32
+ **Configured case**:
33
+ - For each currently populated section, AskUserQuestion: "Action for the existing `<section name>` section?" Options: "Keep as-is" (mark `keep`) / "Update — replace existing content" (mark `update`) / "Remove — drop from rebuilt SKILL.md" (mark `remove`).
34
+ - For each catalog section that is still empty in the existing SKILL.md, AskUserQuestion: "Add the `<section name>` section?" Options: "Yes, add it" (mark `add`) / "No, skip" (mark `skip`).
32
35
 
33
- **Round 2: Domain constraints** (based on Round 1 answers)
34
- - Are there domain-specific rules that AI must follow? Adapt examples to the domain from Round 1 (e.g., for fintech: "all mutations require audit logs"; for healthcare: "log output uses anonymized patient IDs").
35
- - Maximum 3 constraints. Only include what would cause bugs or compliance issues if AI ignores them.
36
+ **Checkpoint**: Every catalog section has exactly one disposition: `add`, `keep`, `update`, `remove`, or `skip`.
36
37
 
37
- **Round 3: Development context**
38
- - Development phase: Prototype / Production / In operation
39
- - Are there directory conventions or file placement rules AI should follow? (skip if none)
38
+ ### Step 3: Run Hearing per Section
40
39
 
41
- ### Step 3: Generate and Write
40
+ For each section marked `add` or `update`, run the hearing protocol that `template.md` defines for that section. The catalog specifies the AskUserQuestion text and choices, the inclusion rules, and the per-section output structure.
42
41
 
43
- From collected information, generate project-context SKILL.md following these principles:
42
+ **External Resources section**: follow the routing protocol in `template.md` § External Resources. That section owns the domain multi-select, the domain-to-file slug map, and the per-axis output schema; this command delegates to it.
44
43
 
45
- **Writing principles:**
46
- 1. AI-decidable: Use only measurable and verifiable criteria ("fast" → "within 5 seconds")
47
- 2. Eliminate ambiguity: Include specific numbers, conditions, examples
48
- 3. Positive form: "do this" rather than "don't do that"
49
- 4. Minimal: Only what affects AI execution accuracy
44
+ **Vagueness rejection** (applies to every `add` and `update` section): When a user-provided rule uses subjective phrasing (e.g., "be careful about performance"), follow up with: "How would AI verify this rule passes? Restate it as a measurable check, or reply 'drop' to omit." Keep rules that arrive in measurable form as-is; replace subjective ones with the user's restated version, or omit them when the user replies 'drop'.
50
45
 
51
- **Output targets** (update both):
52
- 1. `.claude/skills/project-context/SKILL.md` (active, read by Claude)
53
- 2. Corresponding `skills-{lang}/project-context/SKILL.md` (check `.claudelang` for current language)
46
+ **Checkpoint**: You hold captured content for every `add` and `update` section, plus the verbatim original content for every `keep` section.
54
47
 
55
- **Structure:**
56
- ```markdown
57
- ---
58
- name: project-context
59
- description: Provides project-specific prerequisites for AI execution accuracy. Use when checking project structure.
60
- ---
48
+ ### Step 4: Assemble and Write SKILL.md
49
+
50
+ Build the rebuilt SKILL.md by concatenating, in this order:
51
+
52
+ 1. Frontmatter write this canonical block exactly:
53
+ ```
54
+ ---
55
+ name: project-context
56
+ 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.
57
+ ---
58
+ ```
59
+ 2. `# Project Context` heading.
60
+ 3. Each section in catalog order (Project Overview → Domain Constraints → Development Phase → Directory Conventions → External Resources). The output contains only sections whose disposition is `add`, `keep`, or `update` AND that satisfy their inclusion rule; the body advances directly from one included section to the next.
61
+
62
+ Write the assembled content to `.claude/skills/project-context/SKILL.md`. This single path is the runtime canonical source read by Claude in every session.
63
+
64
+ ### Step 5: Verify
65
+
66
+ Apply each check below to the rebuilt `.claude/skills/project-context/SKILL.md`:
67
+
68
+ - [ ] Frontmatter matches the canonical block in Step 4 verbatim.
69
+ - [ ] Every section heading in the body is followed by captured content from the hearing (concrete values, lists, or sub-blocks).
70
+ - [ ] Every populated section's content matches the output structure that `template.md` defines for it.
71
+ - [ ] Every section in the body has disposition `add`, `keep`, or `update` AND satisfies its inclusion rule.
72
+ - [ ] Domain constraint statements are pass/fail checkable (e.g., "log entries use anonymized IDs" passes; "logs are clean" fails this check).
73
+ - [ ] Project Context content is limited to constraints, phases, conventions, and external resources. Technology stack details belong in the `technical-spec` skill; implementation principles belong in the `coding-standards` skill.
61
74
 
62
- # Project Context
75
+ When any check fails, report the failing check to the user with the specific line and propose either a re-hearing for the affected section or a manual edit. Re-run Step 5 after the fix.
63
76
 
64
- ## Project Overview
65
- - **What this project does**: [concise description]
66
- - **Domain**: [domain]
77
+ ### Step 6: Present Result
67
78
 
68
- ## Domain Constraints
69
- 1. [Measurable constraint that affects AI decisions]
70
- 2. [Verifiable requirement]
79
+ Show the rebuilt SKILL.md to the user, list the changes made (added / updated / removed / kept sections), and confirm completion.
71
80
 
72
- ## Development Phase
73
- - **Phase**: [current phase]
81
+ ## Output Examples
74
82
 
75
- ## Directory Conventions
76
- [File placement rules, or "No specific conventions" if none]
83
+ **Initial run on an unconfigured skill** (every section freshly captured):
84
+
85
+ ```
86
+ project-context configured:
87
+ - Sections kept: (none — first run)
88
+ - Sections updated: (none — first run)
89
+ - Sections added: Project Overview, Domain Constraints (2 rules captured), Development Phase, Directory Conventions (1 rule), External Resources (Backend domain — Database Schema Source, Secret Store)
90
+ - Sections removed: (none)
91
+ - File written: .claude/skills/project-context/SKILL.md
92
+ ```
93
+
94
+ **Light update on a configured skill** (one section edited, rest preserved):
95
+
96
+ ```
97
+ project-context updated:
98
+ - Sections kept: Project Overview, Development Phase, Directory Conventions
99
+ - Sections updated: Domain Constraints (3 rules captured)
100
+ - Sections added: (none)
101
+ - Sections removed: (none)
102
+ - File written: .claude/skills/project-context/SKILL.md
77
103
  ```
78
104
 
79
- ### Step 4: Verification
105
+ **Trim run** (an existing section removed, no new ones added):
80
106
 
81
- - [ ] Generated file contains no boilerplate placeholder text ("to be configured", etc.)
82
- - [ ] All domain constraints are measurable/verifiable (no vague statements)
83
- - [ ] No technology stack information included (that belongs in technical-spec skill)
84
- - [ ] No implementation principles included (that belongs in coding-standards skill)
85
- - [ ] Both output targets updated
86
- - [ ] Present result to user for confirmation
107
+ ```
108
+ project-context updated:
109
+ - Sections kept: Project Overview, Domain Constraints, Development Phase
110
+ - Sections updated: (none)
111
+ - Sections added: (none)
112
+ - Sections removed: Directory Conventions
113
+ - File written: .claude/skills/project-context/SKILL.md
114
+ ```
@@ -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
+ ```
@@ -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.