cfsa-antigravity 2.19.0 → 2.19.2
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/package.json +1 -1
- package/template/.agent/kit-sync.md +3 -3
- package/template/.claude/commands/audit-ambiguity-execute.md +6 -0
- package/template/.claude/commands/audit-ambiguity-rubrics.md +6 -0
- package/template/.claude/commands/audit-ambiguity.md +6 -0
- package/template/.claude/commands/bootstrap-agents-fill.md +6 -0
- package/template/.claude/commands/bootstrap-agents-provision.md +6 -0
- package/template/.claude/commands/bootstrap-agents.md +6 -0
- package/template/.claude/commands/create-prd-architecture.md +6 -0
- package/template/.claude/commands/create-prd-compile.md +6 -0
- package/template/.claude/commands/create-prd-design-system.md +6 -0
- package/template/.claude/commands/create-prd-security.md +6 -0
- package/template/.claude/commands/create-prd-stack.md +6 -0
- package/template/.claude/commands/decompose-architecture-structure.md +6 -0
- package/template/.claude/commands/decompose-architecture-validate.md +6 -0
- package/template/.claude/commands/evolve-contract.md +6 -0
- package/template/.claude/commands/evolve-feature-cascade.md +6 -0
- package/template/.claude/commands/evolve-feature-classify.md +6 -0
- package/template/.claude/commands/evolve-feature.md +6 -0
- package/template/.claude/commands/ideate-discover.md +6 -0
- package/template/.claude/commands/ideate-extract.md +6 -0
- package/template/.claude/commands/ideate-validate.md +6 -0
- package/template/.claude/commands/implement-slice-setup.md +6 -0
- package/template/.claude/commands/implement-slice-tdd.md +6 -0
- package/template/.claude/commands/plan-phase-preflight.md +6 -0
- package/template/.claude/commands/plan-phase-write.md +6 -0
- package/template/.claude/commands/propagate-decision-apply.md +6 -0
- package/template/.claude/commands/propagate-decision-scan.md +6 -0
- package/template/.claude/commands/propagate-decision.md +6 -0
- package/template/.claude/commands/remediate-pipeline-assess.md +6 -0
- package/template/.claude/commands/remediate-pipeline-execute.md +6 -0
- package/template/.claude/commands/remediate-pipeline.md +6 -0
- package/template/.claude/commands/remediate-shard-split.md +6 -0
- package/template/.claude/commands/resolve-ambiguity.md +6 -0
- package/template/.claude/commands/setup-workspace-cicd.md +6 -0
- package/template/.claude/commands/setup-workspace-data.md +6 -0
- package/template/.claude/commands/setup-workspace-hosting.md +6 -0
- package/template/.claude/commands/setup-workspace-scaffold.md +6 -0
- package/template/.claude/commands/sync-kit.md +6 -0
- package/template/.claude/commands/update-architecture-map.md +6 -0
- package/template/.claude/commands/validate-phase-quality.md +6 -0
- package/template/.claude/commands/validate-phase-readiness.md +6 -0
- package/template/.claude/commands/verify-infrastructure.md +6 -0
- package/template/.claude/commands/write-architecture-spec-deepen.md +6 -0
- package/template/.claude/commands/write-architecture-spec-design.md +6 -0
- package/template/.claude/commands/write-be-spec-classify.md +6 -0
- package/template/.claude/commands/write-be-spec-write.md +6 -0
- package/template/.claude/commands/write-fe-spec-classify.md +6 -0
- package/template/.claude/commands/write-fe-spec-write.md +6 -0
- package/template/.claude/skills/accessibility/SKILL.md +522 -0
- package/template/.claude/skills/accessibility/references/WCAG.md +162 -0
- package/template/.claude/skills/accessibility/references/ia-spec-checklist.md +35 -0
- package/template/.claude/skills/adversarial-review/SKILL.md +90 -0
- package/template/.claude/skills/antigravity-workflows/SKILL.md +81 -0
- package/template/.claude/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
- package/template/.claude/skills/api-design-principles/SKILL.md +169 -0
- package/template/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/template/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/template/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/template/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/template/.claude/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/template/.claude/skills/api-versioning/SKILL.md +166 -0
- package/template/.claude/skills/api-versioning/references/typescript.md +157 -0
- package/template/.claude/skills/architecture-mapping/SKILL.md +219 -0
- package/template/.claude/skills/bootstrap-agents/SKILL.md +258 -0
- package/template/.claude/skills/brainstorming/SKILL.md +177 -0
- package/template/.claude/skills/brand-guidelines/SKILL.md +44 -0
- package/template/.claude/skills/clean-code/SKILL.md +196 -0
- package/template/.claude/skills/clean-code/references/typescript.md +126 -0
- package/template/.claude/skills/code-review-pro/SKILL.md +152 -0
- package/template/.claude/skills/concise-planning/SKILL.md +107 -0
- package/template/.claude/skills/cross-layer-consistency/SKILL.md +117 -0
- package/template/.claude/skills/database-schema-design/SKILL.md +205 -0
- package/template/.claude/skills/database-schema-design/references/relational.md +228 -0
- package/template/.claude/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.claude/skills/design-anti-cliche/SKILL.md +159 -0
- package/template/.claude/skills/design-direction/SKILL.md +45 -0
- package/template/.claude/skills/error-handling-patterns/SKILL.md +226 -0
- package/template/.claude/skills/error-handling-patterns/references/go.md +162 -0
- package/template/.claude/skills/error-handling-patterns/references/python.md +262 -0
- package/template/.claude/skills/error-handling-patterns/references/rust.md +112 -0
- package/template/.claude/skills/error-handling-patterns/references/typescript.md +178 -0
- package/template/.claude/skills/find-skills/SKILL.md +145 -0
- package/template/.claude/skills/git-advanced/SKILL.md +972 -0
- package/template/.claude/skills/git-workflow/SKILL.md +420 -0
- package/template/.claude/skills/idea-extraction/SKILL.md +644 -0
- package/template/.claude/skills/logging-best-practices/SKILL.md +192 -0
- package/template/.claude/skills/logging-best-practices/references/go.md +49 -0
- package/template/.claude/skills/logging-best-practices/references/python.md +52 -0
- package/template/.claude/skills/logging-best-practices/references/typescript.md +215 -0
- package/template/.claude/skills/migration-management/SKILL.md +200 -0
- package/template/.claude/skills/migration-management/references/relational.md +214 -0
- package/template/.claude/skills/minimalist-surgical-development/SKILL.md +135 -0
- package/template/.claude/skills/parallel-agents/SKILL.md +165 -0
- package/template/.claude/skills/parallel-debugging/SKILL.md +135 -0
- package/template/.claude/skills/parallel-feature-development/SKILL.md +157 -0
- package/template/.claude/skills/performance-budgeting/SKILL.md +144 -0
- package/template/.claude/skills/pipeline-rubrics/SKILL.md +51 -0
- package/template/.claude/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
- package/template/.claude/skills/pipeline-rubrics/references/be-rubric.md +21 -0
- package/template/.claude/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
- package/template/.claude/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
- package/template/.claude/skills/pipeline-rubrics/references/scoring.md +32 -0
- package/template/.claude/skills/pipeline-rubrics/references/vision-rubric.md +12 -0
- package/template/.claude/skills/prd-templates/SKILL.md +107 -0
- package/template/.claude/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
- package/template/.claude/skills/prd-templates/references/architecture-design-template.md +88 -0
- package/template/.claude/skills/prd-templates/references/be-spec-classification.md +41 -0
- package/template/.claude/skills/prd-templates/references/be-spec-template.md +107 -0
- package/template/.claude/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
- package/template/.claude/skills/prd-templates/references/constraint-exploration.md +41 -0
- package/template/.claude/skills/prd-templates/references/data-placement-template.md +74 -0
- package/template/.claude/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
- package/template/.claude/skills/prd-templates/references/decision-propagation.md +121 -0
- package/template/.claude/skills/prd-templates/references/decomposition-templates.md +226 -0
- package/template/.claude/skills/prd-templates/references/deep-ideation-loading-protocol.md +114 -0
- package/template/.claude/skills/prd-templates/references/design-system-decisions.md +198 -0
- package/template/.claude/skills/prd-templates/references/design-system-prerequisite-check.md +18 -0
- package/template/.claude/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
- package/template/.claude/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
- package/template/.claude/skills/prd-templates/references/engineering-standards-template.md +126 -0
- package/template/.claude/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
- package/template/.claude/skills/prd-templates/references/expansion-modes.md +27 -0
- package/template/.claude/skills/prd-templates/references/fe-classification-procedures.md +47 -0
- package/template/.claude/skills/prd-templates/references/fe-spec-template.md +90 -0
- package/template/.claude/skills/prd-templates/references/feature-ledger-protocol.md +149 -0
- package/template/.claude/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
- package/template/.claude/skills/prd-templates/references/fractal-cx-template.md +58 -0
- package/template/.claude/skills/prd-templates/references/fractal-feature-template.md +93 -0
- package/template/.claude/skills/prd-templates/references/fractal-node-index-template.md +55 -0
- package/template/.claude/skills/prd-templates/references/gate-applicability.md +92 -0
- package/template/.claude/skills/prd-templates/references/ideation-crosscut-template.md +36 -0
- package/template/.claude/skills/prd-templates/references/ideation-index-template.md +111 -0
- package/template/.claude/skills/prd-templates/references/ideation-meta-template.md +126 -0
- package/template/.claude/skills/prd-templates/references/infrastructure-report-template.md +71 -0
- package/template/.claude/skills/prd-templates/references/input-classification.md +23 -0
- package/template/.claude/skills/prd-templates/references/map-guard-protocol.md +65 -0
- package/template/.claude/skills/prd-templates/references/operational-templates.md +116 -0
- package/template/.claude/skills/prd-templates/references/persona-completeness-gate.md +20 -0
- package/template/.claude/skills/prd-templates/references/placeholder-guard-template.md +21 -0
- package/template/.claude/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -0
- package/template/.claude/skills/prd-templates/references/shard-boundary-analysis.md +103 -0
- package/template/.claude/skills/prd-templates/references/shard-split-remediation.md +157 -0
- package/template/.claude/skills/prd-templates/references/skill-loading-protocol.md +36 -0
- package/template/.claude/skills/prd-templates/references/slice-completion-gates.md +29 -0
- package/template/.claude/skills/prd-templates/references/spec-coverage-sweep.md +44 -0
- package/template/.claude/skills/prd-templates/references/surface-model.md +61 -0
- package/template/.claude/skills/prd-templates/references/tdd-testing-policy.md +39 -0
- package/template/.claude/skills/prd-templates/references/vision-template.md +57 -0
- package/template/.claude/skills/prd-templates/references/workflow-checkpoint-protocol.md +112 -0
- package/template/.claude/skills/prd-templates/references/write-verification-protocol.md +57 -0
- package/template/.claude/skills/prompt-engineer/SKILL.md +203 -0
- package/template/.claude/skills/regex-patterns/SKILL.md +333 -0
- package/template/.claude/skills/regex-patterns/references/go.md +44 -0
- package/template/.claude/skills/regex-patterns/references/javascript.md +63 -0
- package/template/.claude/skills/regex-patterns/references/python.md +77 -0
- package/template/.claude/skills/regex-patterns/references/rust.md +43 -0
- package/template/.claude/skills/resolve-ambiguity/SKILL.md +278 -0
- package/template/.claude/skills/security-scanning-security-hardening/SKILL.md +231 -0
- package/template/.claude/skills/session-continuity/SKILL.md +732 -0
- package/template/.claude/skills/session-continuity/protocols/01-session-resumption.md +38 -0
- package/template/.claude/skills/session-continuity/protocols/02-progress-generation.md +85 -0
- package/template/.claude/skills/session-continuity/protocols/03-progress-update.md +70 -0
- package/template/.claude/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
- package/template/.claude/skills/session-continuity/protocols/05-session-close.md +37 -0
- package/template/.claude/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
- package/template/.claude/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
- package/template/.claude/skills/session-continuity/protocols/08-spec-pipeline-update.md +55 -0
- package/template/.claude/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
- package/template/.claude/skills/session-continuity/protocols/10-placeholder-verification-gate.md +83 -0
- package/template/.claude/skills/session-continuity/protocols/11-parallel-synthesis.md +21 -0
- package/template/.claude/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
- package/template/.claude/skills/skill-creator/SKILL.md +203 -0
- package/template/.claude/skills/skill-creator/references/.gitkeep +0 -0
- package/template/.claude/skills/skill-creator/scripts/.gitkeep +0 -0
- package/template/.claude/skills/spec-writing/SKILL.md +110 -0
- package/template/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/template/.claude/skills/systematic-debugging/SKILL.md +297 -0
- package/template/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/template/.claude/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/template/.claude/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/template/.claude/skills/systematic-debugging/find-polluter.sh +63 -0
- package/template/.claude/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/template/.claude/skills/systematic-debugging/test-academic.md +14 -0
- package/template/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/template/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/template/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/template/.claude/skills/tdd-workflow/SKILL.md +186 -0
- package/template/.claude/skills/tdd-workflow/references/typescript.md +231 -0
- package/template/.claude/skills/tech-stack-catalog/SKILL.md +49 -0
- package/template/.claude/skills/tech-stack-catalog/references/constraint-questions.md +237 -0
- package/template/.claude/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
- package/template/.claude/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
- package/template/.claude/skills/technical-writer/SKILL.md +242 -0
- package/template/.claude/skills/testing-strategist/SKILL.md +319 -0
- package/template/.claude/skills/testing-strategist/references/typescript.md +328 -0
- package/template/.claude/skills/verification-before-completion/SKILL.md +97 -0
- package/template/.claude/skills/workflow-automation/SKILL.md +166 -0
- package/template/.claude/skills/workflow-automation/references/inngest.md +88 -0
- package/template/.claude/skills/workflow-automation/references/temporal.md +64 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Feature: {Feature Name}
|
|
2
|
+
|
|
3
|
+
> **Number**: {NN.NN.NN}
|
|
4
|
+
> **Parent**: [{sub-domain-name}](./{sub-domain}-index.md)
|
|
5
|
+
> **Status**: [SURFACE] / [PARTIAL] / [DEEP] / [EXHAUSTED]
|
|
6
|
+
> **Last updated**: {timestamp}
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
_What this feature is, why it exists, what user problem it solves. 2-3 sentences._
|
|
11
|
+
|
|
12
|
+
## Role Lens
|
|
13
|
+
|
|
14
|
+
| Role | Access | What They See/Do |
|
|
15
|
+
|------|--------|-------------------|
|
|
16
|
+
| {Persona 1} | Full | _specific behavior for this role — actions, views, capabilities_ |
|
|
17
|
+
| {Persona 2} | Config | _specific behavior — what they configure, what they see_ |
|
|
18
|
+
| {Persona 3} | Read-only | _specific behavior — what they can view, what's hidden_ |
|
|
19
|
+
| {Persona 4} | None | _not visible — brief note on why or what they see instead_ |
|
|
20
|
+
|
|
21
|
+
> **Access levels**: Full · Config · Read-only · Reports · None
|
|
22
|
+
>
|
|
23
|
+
> **Rules:**
|
|
24
|
+
> - Every feature file MUST have a Role Lens table — no exceptions
|
|
25
|
+
> - Use persona names from `meta/personas.md`
|
|
26
|
+
> - "What They See/Do" must be SPECIFIC to this feature, not generic role descriptions
|
|
27
|
+
> - If a persona has "None" access, still list them — the explicit absence is valuable for downstream spec writers
|
|
28
|
+
> - This is the implementation-ready detail that IA/BE/FE spec writers consume directly
|
|
29
|
+
|
|
30
|
+
## Behavior
|
|
31
|
+
|
|
32
|
+
_Detailed description of the feature's behavior._
|
|
33
|
+
|
|
34
|
+
### Happy Path
|
|
35
|
+
|
|
36
|
+
_Step-by-step user interaction for the normal/expected case. Number each step._
|
|
37
|
+
|
|
38
|
+
1. _User does X_
|
|
39
|
+
2. _System responds with Y_
|
|
40
|
+
3. _User confirms Z_
|
|
41
|
+
4. _System completes action, shows confirmation_
|
|
42
|
+
|
|
43
|
+
### Edge Cases / Failure Modes
|
|
44
|
+
|
|
45
|
+
| Scenario | What Happens | User Sees |
|
|
46
|
+
|----------|-------------|-----------|
|
|
47
|
+
| _edge case 1_ | _system behavior_ | _error message or fallback UI_ |
|
|
48
|
+
| _edge case 2_ | _system behavior_ | _error message or fallback UI_ |
|
|
49
|
+
|
|
50
|
+
### States
|
|
51
|
+
|
|
52
|
+
| State | Trigger | What User Sees |
|
|
53
|
+
|-------|---------|---------------|
|
|
54
|
+
| Loading | _action initiated_ | _spinner, skeleton, progress bar_ |
|
|
55
|
+
| Empty | _no data exists yet_ | _empty state with CTA_ |
|
|
56
|
+
| Populated | _data loaded_ | _populated view_ |
|
|
57
|
+
| Error | _request failed_ | _error message with retry option_ |
|
|
58
|
+
| Partial | _incomplete data_ | _partial view with missing-data indicator_ |
|
|
59
|
+
|
|
60
|
+
## Deep Think Annotations
|
|
61
|
+
|
|
62
|
+
| # | Hypothesis | Source | Outcome |
|
|
63
|
+
|---|-----------|--------|---------|
|
|
64
|
+
| DT-01 | _hypothesis about what this feature needs_ | _reasoning or industry precedent_ | ✅ CONFIRMED / ❌ REJECTED: _reason_ |
|
|
65
|
+
|
|
66
|
+
> Log every Deep Think hypothesis — both confirmed and rejected. This is the audit trail showing the agent explored beyond the obvious.
|
|
67
|
+
|
|
68
|
+
## Cross-Cut Notes
|
|
69
|
+
|
|
70
|
+
_Quick references to how this feature interacts with features in other domains/sub-domains. These are pointers — detailed cross-cut analysis lives in the parent's CX file._
|
|
71
|
+
|
|
72
|
+
- Touches **{Domain/Sub-domain/Feature}** ([path](../../../path)) — _why: shared entity, trigger dependency, permission, etc._
|
|
73
|
+
- Consumed by **{Surface/Domain}** via API — _why: spoke surface reads this data through platform API_
|
|
74
|
+
|
|
75
|
+
> For detailed cross-cut analysis (synthesis questions, role scoping), see the CX file at the appropriate level.
|
|
76
|
+
|
|
77
|
+
## Decisions
|
|
78
|
+
|
|
79
|
+
| # | Decision | Context |
|
|
80
|
+
|---|----------|---------|
|
|
81
|
+
| D-01 | _what was decided_ | _why this was the right call_ |
|
|
82
|
+
|
|
83
|
+
## Open Questions
|
|
84
|
+
|
|
85
|
+
| # | Question | Owner | Deferred To |
|
|
86
|
+
|---|----------|-------|-------------|
|
|
87
|
+
| Q-01 | _question_ | User / Agent / /create-prd | _pipeline stage_ |
|
|
88
|
+
|
|
89
|
+
> **Notes for agents:**
|
|
90
|
+
> - Feature files are LEAF NODES — they are `.md` files, never folders
|
|
91
|
+
> - If a feature reveals 2+ interacting capabilities during drilling, it should be PROMOTED to a sub-domain (see Reactive Depth Protocol in `idea-extraction/SKILL.md`)
|
|
92
|
+
> - Status markers: `[SURFACE]` = identified only, `[PARTIAL]` = some depth, `[DEEP]` = all sections filled with edge cases, `[EXHAUSTED]` = Deep Think yields zero hypotheses + user confirms nothing missing
|
|
93
|
+
> - The Role Lens is the PRIMARY output consumed by `/write-fe-spec` and `/write-be-spec` — make it thorough
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# {Node Name} — Index
|
|
2
|
+
|
|
3
|
+
> **Level**: {surface | domain | sub-domain}
|
|
4
|
+
> **Parent**: [{parent-name}](../{parent}-index.md)
|
|
5
|
+
> **Status**: [SURFACE] / [BREADTH] / [DEEP] / [EXHAUSTED]
|
|
6
|
+
> **Last updated**: {timestamp}
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
_What this node contains and why it exists. 2-3 sentences describing the domain or sub-domain's purpose and scope._
|
|
11
|
+
|
|
12
|
+
## Children
|
|
13
|
+
|
|
14
|
+
| # | Name | Type | Path | Status | Deep Think |
|
|
15
|
+
|---|------|------|------|--------|------------|
|
|
16
|
+
| 01 | _{child-name}_ | domain / sub-domain / feature | [01-slug](./01-slug/) or [01.01-slug.md](./01.01-slug.md) | [SURFACE] | _N hypotheses_ |
|
|
17
|
+
| 02 | ... | ... | ... | ... | ... |
|
|
18
|
+
|
|
19
|
+
> **Type column values:**
|
|
20
|
+
> - `domain` — a top-level grouping within a surface (folder with index + CX)
|
|
21
|
+
> - `sub-domain` — a grouping within a domain that has 2+ interacting capabilities (folder with index + CX)
|
|
22
|
+
> - `feature` — a leaf node describing a single capability (.md file)
|
|
23
|
+
|
|
24
|
+
## Role Matrix
|
|
25
|
+
|
|
26
|
+
| Child | {Persona 1} | {Persona 2} | {Persona 3} | {Persona 4} |
|
|
27
|
+
|-------|-------------|-------------|-------------|-------------|
|
|
28
|
+
| 01-child | ✅ Full | ⚙️ Config | 👁️ View | ❌ None |
|
|
29
|
+
| 02-child | ✅ Full | ✅ Full | ❌ None | ❌ None |
|
|
30
|
+
|
|
31
|
+
> **Legend**: ✅ Full access · ⚙️ Configuration only · 👁️ Read-only · 📊 Reports only · ❌ No access
|
|
32
|
+
>
|
|
33
|
+
> **Rules:**
|
|
34
|
+
> - Persona names come from `meta/personas.md` — use short names (e.g., "Tech", "Owner", "CSR", "Consumer")
|
|
35
|
+
> - NEVER redefine a persona here — reference only
|
|
36
|
+
> - Only list children that exist — the matrix grows as children are added
|
|
37
|
+
> - Access icons are shorthand; detailed per-role behavior lives in each feature file's **Role Lens**
|
|
38
|
+
|
|
39
|
+
## Decision Log
|
|
40
|
+
|
|
41
|
+
| # | Decision | Context | Source |
|
|
42
|
+
|---|----------|---------|--------|
|
|
43
|
+
| D-01 | _what was decided_ | _why this was the right call_ | _conversation / document / user directive_ |
|
|
44
|
+
|
|
45
|
+
## Open Questions
|
|
46
|
+
|
|
47
|
+
| # | Question | Owner | Deferred To |
|
|
48
|
+
|---|----------|-------|-------------|
|
|
49
|
+
| Q-01 | _question_ | User / Agent / /create-prd | _pipeline stage_ |
|
|
50
|
+
|
|
51
|
+
> **Notes for agents:**
|
|
52
|
+
> - This template is used at EVERY folder level in the fractal structure (surface, domain, sub-domain)
|
|
53
|
+
> - The content differs by level — a surface index lists domains, a domain index lists sub-domains/features
|
|
54
|
+
> - Status propagates upward: all children `[EXHAUSTED]` → node is `[EXHAUSTED]`; all `[DEEP]`+ → node is `[DEEP]`
|
|
55
|
+
> - When adding a new child, update BOTH the Children table AND the Role Matrix
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Gate Applicability Reference
|
|
2
|
+
|
|
3
|
+
Reference for `/validate-phase-readiness` Step 5.85. Defines which readiness gates apply based on phase content.
|
|
4
|
+
|
|
5
|
+
## Content Classification Table
|
|
6
|
+
|
|
7
|
+
Read the phase plan and completed slices. Determine which content categories are present:
|
|
8
|
+
|
|
9
|
+
| Content Category | How to Detect | Gates It Triggers |
|
|
10
|
+
|-----------------|---------------|-------------------|
|
|
11
|
+
| **New/modified API endpoints** | BE spec slices, new route files, new controllers | 5.9 (API docs), 8 (Security — full) |
|
|
12
|
+
| **New/modified UI components** | FE spec slices, new component files, new pages/routes | 6 (Accessibility), 7a (Performance — Web Vitals/Bundle) |
|
|
13
|
+
| **New/modified data models** | Schema changes, new migrations, new DB queries | 7a (Performance — DB Query Time), 8 (Security — data flow) |
|
|
14
|
+
| **Infrastructure-only changes** | CI/CD config, hosting config, env vars, no app code | Skip 5.9, 6; apply 8 (infra security only) |
|
|
15
|
+
| **Auth/security changes** | Auth middleware, RBAC, token handling, secrets | 8 (Security — mandatory, elevated priority) |
|
|
16
|
+
|
|
17
|
+
## Gate Applicability Table Template
|
|
18
|
+
|
|
19
|
+
Build this table for each phase:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
| Gate | Applies? | Reason |
|
|
23
|
+
|------|----------|--------|
|
|
24
|
+
| 5.9 API Documentation | Yes/No/Deferred | [why] |
|
|
25
|
+
| 6 Accessibility | Yes/No/Deferred | [why] |
|
|
26
|
+
| 7a Performance Budget | Yes/No/Deferred | [why] |
|
|
27
|
+
| 7b Deep Performance | Yes/No/Deferred | [why] |
|
|
28
|
+
| 8 Security Review | Always Yes | Core audit always runs |
|
|
29
|
+
| 8.5 Dependency Audit | Always Yes | Always runs |
|
|
30
|
+
| 8.7 Feature Ledger | Always Yes | Always runs (if ledger exists) |
|
|
31
|
+
| 8.8 Boundary Stub Audit | Always Yes | Always runs |
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Always-On Gates (never skippable)
|
|
35
|
+
|
|
36
|
+
- **8 Security Review** — Core adversarial review + defense-in-depth always runs. DAST scan is conditional on having a staging deployment with endpoints.
|
|
37
|
+
- **8.5 Dependency Audit** — Always runs.
|
|
38
|
+
- **8.7 Feature Ledger Reconciliation** — Always runs (if ledger exists).
|
|
39
|
+
- **8.8 Boundary Stub Audit** — Always runs.
|
|
40
|
+
|
|
41
|
+
## Content-Triggered Gates (skip when content category is absent)
|
|
42
|
+
|
|
43
|
+
- **5.9 API Documentation** — Skip if no new/modified API endpoints in this phase.
|
|
44
|
+
- **6 Accessibility** — Skip if no new/modified UI components in this phase.
|
|
45
|
+
- **7a Performance Budget (Web Vitals/Bundle)** — Skip if no UI changes. DB Query Time sub-gate skips if no new queries/models.
|
|
46
|
+
- **7b Deep Performance** — Skip if no performance-critical changes.
|
|
47
|
+
|
|
48
|
+
## Deferred Gate Rules
|
|
49
|
+
|
|
50
|
+
A gate may be **deferred** (not skipped) when:
|
|
51
|
+
- The gate applies but a prerequisite is not yet available (e.g., staging deployment not configured yet for DAST)
|
|
52
|
+
- The phase is early infrastructure and the gate will apply to the next phase that adds the relevant content
|
|
53
|
+
|
|
54
|
+
**Hard deadline required**: Specify which phase or milestone must run the deferred gate. Log deferred gates in `docs/audits/phase-N-validation.md` with the deadline.
|
|
55
|
+
|
|
56
|
+
**Single-deferral limit**: A gate may NOT be deferred more than once. If a previously deferred gate's deadline arrives, it MUST run — no further deferral.
|
|
57
|
+
|
|
58
|
+
## Validation Report Structure
|
|
59
|
+
|
|
60
|
+
### Gate Applicability Summary
|
|
61
|
+
|
|
62
|
+
Include the gate applicability table. For each gate, report one of:
|
|
63
|
+
- **Applied** — gate ran, results follow
|
|
64
|
+
- **Skipped** — gate did not apply to this phase (with reason)
|
|
65
|
+
- **Deferred** — gate applies but prerequisite missing (with hard deadline)
|
|
66
|
+
|
|
67
|
+
### Applied Gate Results
|
|
68
|
+
|
|
69
|
+
Report only for gates that were applied:
|
|
70
|
+
- Test results and coverage
|
|
71
|
+
- Lint and type-check status
|
|
72
|
+
- Build status
|
|
73
|
+
- Accessibility findings (if gate applied)
|
|
74
|
+
- Performance budget results 7a and deep audit findings 7b (if gate applied)
|
|
75
|
+
- Security review findings (including DAST results if applicable)
|
|
76
|
+
- Dependency audit results
|
|
77
|
+
- API documentation sync status (if gate applied)
|
|
78
|
+
- Deployment strategy compliance (if applicable)
|
|
79
|
+
- CI/CD pipeline status, staging deployment result, migration verification status
|
|
80
|
+
|
|
81
|
+
### Deferred Gates Section
|
|
82
|
+
|
|
83
|
+
For each deferred gate:
|
|
84
|
+
- Gate name and step number
|
|
85
|
+
- Reason for deferral
|
|
86
|
+
- Hard deadline (phase number or milestone)
|
|
87
|
+
- Whether this is the first deferral (second deferral is forbidden)
|
|
88
|
+
|
|
89
|
+
### Verdict
|
|
90
|
+
|
|
91
|
+
- Pass/fail verdict
|
|
92
|
+
- If any gates were deferred: "Phase N passes with deferred gates. Deferred gates MUST run by [deadline]."
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Global Cross-Cuts — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
> **Scope**: Cross-surface interactions for multi-product projects, or cross-domain interactions for single-surface projects.
|
|
4
|
+
> **Format**: Index + one-line summary. Detailed synthesis lives in lower-level CX files.
|
|
5
|
+
|
|
6
|
+
## Cross-Surface Interaction Map
|
|
7
|
+
|
|
8
|
+
> Each row records that an interaction EXISTS between two surfaces or top-level domains. The Detail column links to the lower-level CX file where the full synthesis questions are answered.
|
|
9
|
+
|
|
10
|
+
| # | Source Surface/Domain | Target Surface/Domain | Summary | Roles | Detail |
|
|
11
|
+
|---|----------------------|----------------------|---------|-------|--------|
|
|
12
|
+
| CX-01 | _Web / Consumer Platform_ | _Desktop / Shop Ops_ | _Desktop diagnostic workflow consumes web supplier data via API_ | Tech, Owner | [detail](surfaces/desktop/desktop-cx.md#CX-03) |
|
|
13
|
+
| CX-02 | _Web / Device History_ | _Mobile / Device Guardian_ | _Mobile app syncs with web device history for owner verification_ | Consumer | [detail](surfaces/mobile/mobile-cx.md#CX-01) |
|
|
14
|
+
|
|
15
|
+
> **Rules:**
|
|
16
|
+
> - This file is an INDEX with one-line summaries — not the source of truth for cross-cut details
|
|
17
|
+
> - Detailed synthesis (5 questions, role scoping) lives in the lower-level CX file linked in the Detail column
|
|
18
|
+
> - For single-surface projects, this file covers cross-DOMAIN interactions (same content as would appear in a surface-level CX)
|
|
19
|
+
> - For multi-product projects, this file covers cross-SURFACE interactions
|
|
20
|
+
> - Use `CX-NN` numbering. This file's entries are distinct from CX entries in lower-level files.
|
|
21
|
+
> - When referencing from other files, use `ideation-cx.md#CX-NN`
|
|
22
|
+
|
|
23
|
+
## Shared Domain Consumption _(multi-product only)_
|
|
24
|
+
|
|
25
|
+
> Which shared domains are consumed by which spoke surfaces, and through what mechanism.
|
|
26
|
+
|
|
27
|
+
| Shared Domain | Owner | Consumed By | Mechanism | Detail |
|
|
28
|
+
|--------------|-------|-------------|-----------|--------|
|
|
29
|
+
| _Device History_ | Web (hub) | Desktop, Mobile | REST API | [web/02-device-history-cx.md](surfaces/web/02-device-history/device-history-cx.md) |
|
|
30
|
+
| _Payments_ | Web (hub) | Desktop | REST API | [web/03-payments-cx.md](surfaces/web/03-payments/payments-cx.md) |
|
|
31
|
+
|
|
32
|
+
## Rejected Cross-Surface Pairs
|
|
33
|
+
|
|
34
|
+
| # | Surface A | Surface B | Reason for Rejection |
|
|
35
|
+
|---|-----------|-----------|---------------------|
|
|
36
|
+
| R-01 | _Desktop_ | _Mobile_ | _No direct interaction — both consume web API independently_ |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Ideation Index — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
> **Pipeline key file.** All downstream workflows read this index to locate ideation documents.
|
|
4
|
+
> This file is the entry point for `/create-prd`, `/decompose-architecture`, `/audit-ambiguity ideation`, and all other workflows that consume ideation output.
|
|
5
|
+
|
|
6
|
+
## Project Overview
|
|
7
|
+
|
|
8
|
+
**Problem**: _One-sentence problem statement — who has it, why it matters._
|
|
9
|
+
|
|
10
|
+
**One-liner**: _Elevator pitch — what the product does in ≤15 words._
|
|
11
|
+
|
|
12
|
+
## Expansion Mode
|
|
13
|
+
|
|
14
|
+
- Type: [full | vertical | horizontal | cross-cutting | combination | as-is]
|
|
15
|
+
- Targets: [list of domains/features to focus on, if applicable]
|
|
16
|
+
- Cross-cut Detection: always-on
|
|
17
|
+
- Deep Think Protocol: active
|
|
18
|
+
|
|
19
|
+
## Structural Classification
|
|
20
|
+
|
|
21
|
+
- **Project Shape**: [single-surface | multi-surface-shared | multi-product-hub | multi-product-peer]
|
|
22
|
+
- **Hub Surface** _(hub-and-spoke only)_: [surface name that owns shared domains]
|
|
23
|
+
- **Surfaces**: [list of identified surfaces, e.g., "Web (Astro/React), Desktop (Rust/Tauri), Mobile (React Native)" — or "N/A" for single-surface]
|
|
24
|
+
- **Classification Basis**: [how this was determined — "detected from document", "user interview", "inferred from one-liner"]
|
|
25
|
+
|
|
26
|
+
> **Project Shapes:**
|
|
27
|
+
> - `single-surface` — One platform. Domains are top-level children of `ideation/`.
|
|
28
|
+
> - `multi-surface-shared` — 2+ platforms, same stack, >80% shared logic. Domains at top level with surface annotations.
|
|
29
|
+
> - `multi-product-hub` — 2+ platforms, one is the central platform/API. Hub owns shared domains. Spokes reference via CX.
|
|
30
|
+
> - `multi-product-peer` — 2+ platforms, no primary. `shared/` folder as a peer for cross-surface domains.
|
|
31
|
+
|
|
32
|
+
## Progress Summary
|
|
33
|
+
|
|
34
|
+
| Metric | Value |
|
|
35
|
+
|--------|-------|
|
|
36
|
+
| Total surfaces | _N_ |
|
|
37
|
+
| Total domains | _N_ |
|
|
38
|
+
| Total leaf features | _N_ |
|
|
39
|
+
| Max depth reached | _N_ |
|
|
40
|
+
| Leaf nodes at [SURFACE] | _N_ |
|
|
41
|
+
| Leaf nodes at [DEEP] | _N_ |
|
|
42
|
+
| Leaf nodes at [EXHAUSTED] | _N_ |
|
|
43
|
+
| CX entries confirmed | _N_ |
|
|
44
|
+
| Deep Think hypotheses confirmed | _N_ |
|
|
45
|
+
| Deep Think hypotheses rejected | _N_ |
|
|
46
|
+
|
|
47
|
+
## Document Map
|
|
48
|
+
|
|
49
|
+
> Downstream workflows: read this table to find the specific file you need.
|
|
50
|
+
|
|
51
|
+
### Meta Documents
|
|
52
|
+
|
|
53
|
+
| Document | Path | Status |
|
|
54
|
+
|----------|------|--------|
|
|
55
|
+
| Problem Statement | [problem-statement.md](meta/problem-statement.md) | _status_ |
|
|
56
|
+
| Personas | [personas.md](meta/personas.md) | _status_ |
|
|
57
|
+
| Competitive Landscape | [competitive-landscape.md](meta/competitive-landscape.md) | _status_ |
|
|
58
|
+
| Constraints | [constraints.md](meta/constraints.md) | _status_ |
|
|
59
|
+
|
|
60
|
+
### Global Cross-Cuts
|
|
61
|
+
|
|
62
|
+
| Document | Path |
|
|
63
|
+
|----------|------|
|
|
64
|
+
| Global Cross-Cuts | [ideation-cx.md](ideation-cx.md) |
|
|
65
|
+
|
|
66
|
+
### Structure Map
|
|
67
|
+
|
|
68
|
+
> **For single-surface projects**, domains are listed directly below.
|
|
69
|
+
> **For multi-product projects**, expand each surface section.
|
|
70
|
+
> Every domain below is a FOLDER containing: `{domain}-index.md`, `{domain}-cx.md`, and child features/sub-domains.
|
|
71
|
+
|
|
72
|
+
#### _{Surface Name or "Top-Level Domains" for single-surface}_
|
|
73
|
+
|
|
74
|
+
| # | Domain | Path | Status | Children | Depth | Deep Think |
|
|
75
|
+
|---|--------|------|--------|----------|-------|------------|
|
|
76
|
+
| 01 | _Domain Name_ | [01-slug/](./01-slug/) | `[SURFACE]` | _N children_ | _N levels_ | _N hypotheses_ |
|
|
77
|
+
|
|
78
|
+
_Repeat surface sections for multi-product projects._
|
|
79
|
+
|
|
80
|
+
#### Hub-Owned Shared Domains _(hub-and-spoke only)_
|
|
81
|
+
|
|
82
|
+
_Shared domains live inside the hub surface's domain tree. Listed here for visibility._
|
|
83
|
+
|
|
84
|
+
| # | Domain | Hub Path | Consumed By | Status |
|
|
85
|
+
|---|--------|----------|-------------|--------|
|
|
86
|
+
| NN | _Domain Name_ | [web/NN-slug/](surfaces/web/NN-slug/) | Desktop, Mobile | `[SURFACE]` |
|
|
87
|
+
|
|
88
|
+
## Decision Log
|
|
89
|
+
|
|
90
|
+
Numbered decisions with source references.
|
|
91
|
+
|
|
92
|
+
| # | Decision | Source | Domain |
|
|
93
|
+
|---|----------|--------|--------|
|
|
94
|
+
| D-01 | _Decision description_ | _Discussion context_ | [domain-index.md](./path) |
|
|
95
|
+
|
|
96
|
+
## MoSCoW Summary
|
|
97
|
+
|
|
98
|
+
> Features reference their fractal path. Path format: `{surface}/{domain}.{sub-domain}.{feature}`
|
|
99
|
+
|
|
100
|
+
### Must Have
|
|
101
|
+
- _Feature 1_ → `web/01.02.01` ([link](./path/01.02.01-feature.md))
|
|
102
|
+
- _Feature 2_ → `desktop/01.01.03` ([link](./path/01.01.03-feature.md))
|
|
103
|
+
|
|
104
|
+
### Should Have
|
|
105
|
+
- _Feature 3_ → `web/02.01` ([link](./path))
|
|
106
|
+
|
|
107
|
+
### Could Have
|
|
108
|
+
- _Feature 4_ → `desktop/01.03.02.04` ([link](./path))
|
|
109
|
+
|
|
110
|
+
### Won't Have (Now)
|
|
111
|
+
- _Feature 5_ — Reason for exclusion
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Ideation Meta Document Templates
|
|
2
|
+
|
|
3
|
+
> These are the templates for the `ideation/meta/` directory.
|
|
4
|
+
> Each meta file captures product-level information that isn't domain-specific.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## problem-statement.md
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
# Problem Statement
|
|
12
|
+
|
|
13
|
+
## The Problem
|
|
14
|
+
|
|
15
|
+
_One sentence: what problem exists, who has it, and why current solutions fail._
|
|
16
|
+
|
|
17
|
+
## Why It Matters
|
|
18
|
+
|
|
19
|
+
_Market size, pain severity, frequency of occurrence._
|
|
20
|
+
|
|
21
|
+
## Why Now
|
|
22
|
+
|
|
23
|
+
_What has changed that makes this solvable or valuable today._
|
|
24
|
+
|
|
25
|
+
## Root Cause
|
|
26
|
+
|
|
27
|
+
_The underlying cause, not just the symptom. Why do current solutions fail?_
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## personas.md
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# User Personas
|
|
36
|
+
|
|
37
|
+
> Every persona must have all 6 fields. Do not proceed to features until all personas
|
|
38
|
+
> are complete. See Vision Rubric Dimension 2.
|
|
39
|
+
|
|
40
|
+
## Persona: {{Name}}
|
|
41
|
+
|
|
42
|
+
| Field | Detail |
|
|
43
|
+
|-------|--------|
|
|
44
|
+
| **Name + Role** | _Named role with context — not "a user"_ |
|
|
45
|
+
| **Primary Pain Point** | _Specific friction in one sentence_ |
|
|
46
|
+
| **Current Workaround** | _Exact tool, process, or coping mechanism today_ |
|
|
47
|
+
| **Success Criteria** | _What "solved" looks like, measurable if possible_ |
|
|
48
|
+
| **Switching Trigger** | _What event/threshold makes them switch_ |
|
|
49
|
+
| **Unique Constraint** | _What makes their situation different from other personas_ |
|
|
50
|
+
|
|
51
|
+
### Workflow
|
|
52
|
+
|
|
53
|
+
_Primary workflow through the product — step by step._
|
|
54
|
+
|
|
55
|
+
### Anti-Persona Behavior
|
|
56
|
+
|
|
57
|
+
_Worst thing they could intentionally do. Worst thing they could accidentally do._
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
_Repeat for each persona (2-4 recommended)._
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## competitive-landscape.md
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# Competitive Landscape
|
|
70
|
+
|
|
71
|
+
## Top Competitors
|
|
72
|
+
|
|
73
|
+
| Competitor | What They Do | Strength | Weakness | Our Angle |
|
|
74
|
+
|-----------|-------------|----------|----------|-----------|
|
|
75
|
+
| _Name_ | _Description_ | _Why users choose them_ | _Where they fall short_ | _How we differentiate_ |
|
|
76
|
+
|
|
77
|
+
## Unique Differentiators
|
|
78
|
+
|
|
79
|
+
1. _Differentiator 1_ — why this matters to our personas
|
|
80
|
+
2. _Differentiator 2_ — why this is hard to copy
|
|
81
|
+
|
|
82
|
+
## Moat
|
|
83
|
+
|
|
84
|
+
_What makes this defensible over time? Network effects, data, expertise, switching costs?_
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## constraints.md
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
# Project Constraints
|
|
93
|
+
|
|
94
|
+
## Budget
|
|
95
|
+
- _Self-funded / VC-backed / enterprise budget_
|
|
96
|
+
- _Monthly infrastructure ceiling_
|
|
97
|
+
|
|
98
|
+
## Timeline
|
|
99
|
+
- _Launch target_
|
|
100
|
+
- _Phased rollout plan_
|
|
101
|
+
|
|
102
|
+
## Team
|
|
103
|
+
- _Solo dev / small team / full org_
|
|
104
|
+
- _Skill gaps, if any_
|
|
105
|
+
|
|
106
|
+
## Compliance
|
|
107
|
+
- _GDPR / PCI / COPPA / HIPAA / SOC 2 / Other_
|
|
108
|
+
- _Age restrictions_
|
|
109
|
+
|
|
110
|
+
## Performance
|
|
111
|
+
- _Expected scale (users, requests, data volume)_
|
|
112
|
+
- _Latency requirements_
|
|
113
|
+
|
|
114
|
+
## Project Surfaces
|
|
115
|
+
|
|
116
|
+
| Surface | Type | Cross-Platform? | Notes |
|
|
117
|
+
|---------|------|----------------|-------|
|
|
118
|
+
| _Web app_ | _SPA / SSR / Static_ | N/A | _Primary surface_ |
|
|
119
|
+
| _Desktop_ | _Tauri / Electron_ | _Yes/No_ | _Offline capability_ |
|
|
120
|
+
| _Mobile_ | _Native / RN / PWA_ | _Yes/No_ | |
|
|
121
|
+
| _API_ | _REST / GraphQL / tRPC_ | N/A | |
|
|
122
|
+
| _CLI_ | _Yes/No_ | _Yes/No_ | |
|
|
123
|
+
|
|
124
|
+
> Surface classification drives tech stack in `/create-prd`, folder structure in
|
|
125
|
+
> `/decompose-architecture`, and spec shapes downstream.
|
|
126
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Infrastructure Verification Report Template
|
|
2
|
+
|
|
3
|
+
Use this template when creating the report during `/verify-infrastructure`.
|
|
4
|
+
|
|
5
|
+
## Initial Report (Step 0.6)
|
|
6
|
+
|
|
7
|
+
Create at `docs/audits/verify-infrastructure-YYYY-MM-DD-HHMM[-auth].md`:
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# Infrastructure Verification Report
|
|
11
|
+
|
|
12
|
+
**Date**: YYYY-MM-DD HH:MM
|
|
13
|
+
**Trigger**: [infrastructure slice | auth slice]
|
|
14
|
+
**Verdict**: ⏳ in-progress
|
|
15
|
+
|
|
16
|
+
## Results
|
|
17
|
+
|
|
18
|
+
| # | Check | Status | Notes |
|
|
19
|
+
|---|-------|--------|-------|
|
|
20
|
+
| 0 | Placeholder audit | ⏳ | |
|
|
21
|
+
| 1 | CI/CD config | ⏳ | |
|
|
22
|
+
| 2 | CI/CD green | ⏳ | |
|
|
23
|
+
| 3 | Environment audit | ⏳ | |
|
|
24
|
+
| 4 | Migration check | ⏳ | |
|
|
25
|
+
| 5 | Staging deployment | ⏳ | |
|
|
26
|
+
| 6 | Auth smoke test | ⏳ | |
|
|
27
|
+
| 6.5 | Logging gate | ⏳ | |
|
|
28
|
+
| 6.6 | Error tracking gate | ⏳ | |
|
|
29
|
+
|
|
30
|
+
## Failures (if any)
|
|
31
|
+
|
|
32
|
+
None yet.
|
|
33
|
+
|
|
34
|
+
## Next Steps
|
|
35
|
+
|
|
36
|
+
In progress.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Final Report (Step 8)
|
|
40
|
+
|
|
41
|
+
Update the same file — change the Verdict and fill in results:
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
# Infrastructure Verification Report
|
|
45
|
+
|
|
46
|
+
**Date**: YYYY-MM-DD
|
|
47
|
+
**Trigger**: [infrastructure slice | auth slice]
|
|
48
|
+
**Verdict**: [PASS | FAIL]
|
|
49
|
+
|
|
50
|
+
## Results
|
|
51
|
+
|
|
52
|
+
| # | Check | Status | Notes |
|
|
53
|
+
|---|-------|--------|-------|
|
|
54
|
+
| 0 | Placeholder audit | ✅/❌ | |
|
|
55
|
+
| 1 | CI/CD config | ✅/❌ | |
|
|
56
|
+
| 2 | CI/CD green | ✅/❌ | |
|
|
57
|
+
| 3 | Environment audit | ✅/❌ | |
|
|
58
|
+
| 4 | Migration check | ✅/❌ | |
|
|
59
|
+
| 5 | Staging deployment | ✅/❌ | |
|
|
60
|
+
| 6 | Auth smoke test | ✅/❌/⏭️ | |
|
|
61
|
+
| 6.5 | Logging gate | ✅/❌ | |
|
|
62
|
+
| 6.6 | Error tracking gate | ✅/❌ | |
|
|
63
|
+
|
|
64
|
+
## Failures (if any)
|
|
65
|
+
|
|
66
|
+
[Details of any failing checks]
|
|
67
|
+
|
|
68
|
+
## Next Steps
|
|
69
|
+
|
|
70
|
+
[What to do next based on the verdict]
|
|
71
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Input Classification Table
|
|
2
|
+
|
|
3
|
+
Classify user-provided input to determine which mode the `idea-extraction` skill operates in.
|
|
4
|
+
|
|
5
|
+
| Input Type | Detection Criteria | Extraction Mode |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| **Rich document** | >5KB, detailed docs, design conversations, prior specs | Extraction |
|
|
8
|
+
| **Thin document** | <5KB, structured but shallow (bullet list, rough PRD) | Expansion |
|
|
9
|
+
| **Conversational dump** | Chat logs, unstructured conversation transcripts | Extraction (with noise filtering) |
|
|
10
|
+
| **Verbal / one-liner** | User describes idea in chat, no files | Interview |
|
|
11
|
+
| **Nothing** | "I want to build an app" or similar zero-context input | Interview (deep) |
|
|
12
|
+
|
|
13
|
+
## Mode References
|
|
14
|
+
|
|
15
|
+
Each mode's full process is defined in `.agent/skills/idea-extraction/SKILL.md`:
|
|
16
|
+
|
|
17
|
+
- **Extraction Mode** → `## Input-Adaptive Modes → Extraction Mode — Rich Input`
|
|
18
|
+
- **Expansion Mode** → `## Input-Adaptive Modes → Expansion Mode — Thin Input`
|
|
19
|
+
- **Interview Mode** → `## Input-Adaptive Modes → Interview Mode — No Input / One-Liner`
|
|
20
|
+
|
|
21
|
+
## Proportionality Rule (Extraction Mode only)
|
|
22
|
+
|
|
23
|
+
If source input > 50KB, total ideation output must be ≥ 30% of source line count.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Map Guard Protocol
|
|
2
|
+
|
|
3
|
+
**Purpose**: Enforce strict surface stack map verification before any workflow step that depends on tech stack decisions. Auto-recover when possible, hard stop when not.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
|
|
9
|
+
### 1. Read the Map
|
|
10
|
+
|
|
11
|
+
Read the surface stack map from `.agent/instructions/tech-stack.md`.
|
|
12
|
+
|
|
13
|
+
### 2. Check Required Cells
|
|
14
|
+
|
|
15
|
+
For the current workflow, verify that every cell the workflow depends on is filled (non-empty, no `{{PLACEHOLDER}}` literal).
|
|
16
|
+
|
|
17
|
+
Required cells vary by workflow — check the `requires_placeholders` frontmatter of the current workflow file, or the specific cells referenced in the workflow steps.
|
|
18
|
+
|
|
19
|
+
### 3. Classify Empty Cells
|
|
20
|
+
|
|
21
|
+
**If ALL required cells are filled** → proceed. No action needed.
|
|
22
|
+
|
|
23
|
+
**If ANY required cell is empty** → classify each empty cell:
|
|
24
|
+
|
|
25
|
+
| Empty Cell | Recovery Action | Auto-Recoverable? |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Languages / Frameworks / Databases / ORMs | Run `/bootstrap-agents` with confirmed values from `architecture-draft.md` | **YES** — auto-invoke |
|
|
28
|
+
| Auth / Security | Run `/bootstrap-agents` with confirmed values from `architecture-draft.md` | **YES** — auto-invoke |
|
|
29
|
+
| CI/CD / Hosting | Run `/bootstrap-agents` with confirmed values from `architecture-draft.md` | **YES** — auto-invoke |
|
|
30
|
+
| Commands section | Run `/bootstrap-agents` | **YES** — auto-invoke |
|
|
31
|
+
| `patterns.md` | Run `/bootstrap-agents-provision` | **YES** — auto-invoke |
|
|
32
|
+
| `structure.md` | Run `/create-prd-compile` Step 9.5 | **NO** — hard stop |
|
|
33
|
+
| Cells requiring decisions not yet made | Run `/create-prd-stack` | **NO** — hard stop |
|
|
34
|
+
|
|
35
|
+
### 4. Auto-Recovery (for YES cells)
|
|
36
|
+
|
|
37
|
+
If the empty cells are auto-recoverable:
|
|
38
|
+
|
|
39
|
+
1. **Read `docs/plans/architecture-draft.md`** — extract confirmed tech stack decisions (languages, frameworks, databases, ORMs, hosting, auth, CI/CD)
|
|
40
|
+
2. **Build the bootstrap key set** from confirmed decisions
|
|
41
|
+
3. **Execute `/bootstrap-agents`** with those keys — read `.agent/workflows/bootstrap-agents.md` and run BOTH shards (fill + provision)
|
|
42
|
+
4. **Re-read the surface stack map** after bootstrap completes
|
|
43
|
+
5. **Re-check the required cells** — if now filled → proceed. If still empty → escalate to hard stop (Step 5)
|
|
44
|
+
|
|
45
|
+
> This auto-recovery fires silently. Do NOT ask the user "should I run bootstrap?" — just run it. Bootstrap is idempotent and safe.
|
|
46
|
+
|
|
47
|
+
### 5. Hard Stop (for NO cells or failed auto-recovery)
|
|
48
|
+
|
|
49
|
+
> **HARD STOP** — The surface stack map has empty cells that cannot be auto-recovered.
|
|
50
|
+
>
|
|
51
|
+
> | Empty Cell | Required Action |
|
|
52
|
+
> |---|---|
|
|
53
|
+
> | [cell name] | [what needs to happen] |
|
|
54
|
+
>
|
|
55
|
+
> Do NOT proceed. Do NOT use conversation-confirmed values. Do NOT apply timing fallbacks.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## What This Replaces
|
|
60
|
+
|
|
61
|
+
This protocol replaces all instances of the timing fallback pattern:
|
|
62
|
+
|
|
63
|
+
> ~~"If a cell is empty but the value was just confirmed in the current conversation... proceed using the conversation-confirmed value"~~
|
|
64
|
+
|
|
65
|
+
That pattern is **permanently banned**. It creates an escape hatch that allows agents to bypass map guards entirely. If a cell is empty and auto-recovery fails, the upstream workflow that should have filled it has a bug. Surface the bug, don't work around it.
|