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.
Files changed (200) hide show
  1. package/package.json +1 -1
  2. package/template/.agent/kit-sync.md +3 -3
  3. package/template/.claude/commands/audit-ambiguity-execute.md +6 -0
  4. package/template/.claude/commands/audit-ambiguity-rubrics.md +6 -0
  5. package/template/.claude/commands/audit-ambiguity.md +6 -0
  6. package/template/.claude/commands/bootstrap-agents-fill.md +6 -0
  7. package/template/.claude/commands/bootstrap-agents-provision.md +6 -0
  8. package/template/.claude/commands/bootstrap-agents.md +6 -0
  9. package/template/.claude/commands/create-prd-architecture.md +6 -0
  10. package/template/.claude/commands/create-prd-compile.md +6 -0
  11. package/template/.claude/commands/create-prd-design-system.md +6 -0
  12. package/template/.claude/commands/create-prd-security.md +6 -0
  13. package/template/.claude/commands/create-prd-stack.md +6 -0
  14. package/template/.claude/commands/decompose-architecture-structure.md +6 -0
  15. package/template/.claude/commands/decompose-architecture-validate.md +6 -0
  16. package/template/.claude/commands/evolve-contract.md +6 -0
  17. package/template/.claude/commands/evolve-feature-cascade.md +6 -0
  18. package/template/.claude/commands/evolve-feature-classify.md +6 -0
  19. package/template/.claude/commands/evolve-feature.md +6 -0
  20. package/template/.claude/commands/ideate-discover.md +6 -0
  21. package/template/.claude/commands/ideate-extract.md +6 -0
  22. package/template/.claude/commands/ideate-validate.md +6 -0
  23. package/template/.claude/commands/implement-slice-setup.md +6 -0
  24. package/template/.claude/commands/implement-slice-tdd.md +6 -0
  25. package/template/.claude/commands/plan-phase-preflight.md +6 -0
  26. package/template/.claude/commands/plan-phase-write.md +6 -0
  27. package/template/.claude/commands/propagate-decision-apply.md +6 -0
  28. package/template/.claude/commands/propagate-decision-scan.md +6 -0
  29. package/template/.claude/commands/propagate-decision.md +6 -0
  30. package/template/.claude/commands/remediate-pipeline-assess.md +6 -0
  31. package/template/.claude/commands/remediate-pipeline-execute.md +6 -0
  32. package/template/.claude/commands/remediate-pipeline.md +6 -0
  33. package/template/.claude/commands/remediate-shard-split.md +6 -0
  34. package/template/.claude/commands/resolve-ambiguity.md +6 -0
  35. package/template/.claude/commands/setup-workspace-cicd.md +6 -0
  36. package/template/.claude/commands/setup-workspace-data.md +6 -0
  37. package/template/.claude/commands/setup-workspace-hosting.md +6 -0
  38. package/template/.claude/commands/setup-workspace-scaffold.md +6 -0
  39. package/template/.claude/commands/sync-kit.md +6 -0
  40. package/template/.claude/commands/update-architecture-map.md +6 -0
  41. package/template/.claude/commands/validate-phase-quality.md +6 -0
  42. package/template/.claude/commands/validate-phase-readiness.md +6 -0
  43. package/template/.claude/commands/verify-infrastructure.md +6 -0
  44. package/template/.claude/commands/write-architecture-spec-deepen.md +6 -0
  45. package/template/.claude/commands/write-architecture-spec-design.md +6 -0
  46. package/template/.claude/commands/write-be-spec-classify.md +6 -0
  47. package/template/.claude/commands/write-be-spec-write.md +6 -0
  48. package/template/.claude/commands/write-fe-spec-classify.md +6 -0
  49. package/template/.claude/commands/write-fe-spec-write.md +6 -0
  50. package/template/.claude/skills/accessibility/SKILL.md +522 -0
  51. package/template/.claude/skills/accessibility/references/WCAG.md +162 -0
  52. package/template/.claude/skills/accessibility/references/ia-spec-checklist.md +35 -0
  53. package/template/.claude/skills/adversarial-review/SKILL.md +90 -0
  54. package/template/.claude/skills/antigravity-workflows/SKILL.md +81 -0
  55. package/template/.claude/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  56. package/template/.claude/skills/api-design-principles/SKILL.md +169 -0
  57. package/template/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  58. package/template/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
  59. package/template/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  60. package/template/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
  61. package/template/.claude/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  62. package/template/.claude/skills/api-versioning/SKILL.md +166 -0
  63. package/template/.claude/skills/api-versioning/references/typescript.md +157 -0
  64. package/template/.claude/skills/architecture-mapping/SKILL.md +219 -0
  65. package/template/.claude/skills/bootstrap-agents/SKILL.md +258 -0
  66. package/template/.claude/skills/brainstorming/SKILL.md +177 -0
  67. package/template/.claude/skills/brand-guidelines/SKILL.md +44 -0
  68. package/template/.claude/skills/clean-code/SKILL.md +196 -0
  69. package/template/.claude/skills/clean-code/references/typescript.md +126 -0
  70. package/template/.claude/skills/code-review-pro/SKILL.md +152 -0
  71. package/template/.claude/skills/concise-planning/SKILL.md +107 -0
  72. package/template/.claude/skills/cross-layer-consistency/SKILL.md +117 -0
  73. package/template/.claude/skills/database-schema-design/SKILL.md +205 -0
  74. package/template/.claude/skills/database-schema-design/references/relational.md +228 -0
  75. package/template/.claude/skills/deployment-procedures/SKILL.md +241 -0
  76. package/template/.claude/skills/design-anti-cliche/SKILL.md +159 -0
  77. package/template/.claude/skills/design-direction/SKILL.md +45 -0
  78. package/template/.claude/skills/error-handling-patterns/SKILL.md +226 -0
  79. package/template/.claude/skills/error-handling-patterns/references/go.md +162 -0
  80. package/template/.claude/skills/error-handling-patterns/references/python.md +262 -0
  81. package/template/.claude/skills/error-handling-patterns/references/rust.md +112 -0
  82. package/template/.claude/skills/error-handling-patterns/references/typescript.md +178 -0
  83. package/template/.claude/skills/find-skills/SKILL.md +145 -0
  84. package/template/.claude/skills/git-advanced/SKILL.md +972 -0
  85. package/template/.claude/skills/git-workflow/SKILL.md +420 -0
  86. package/template/.claude/skills/idea-extraction/SKILL.md +644 -0
  87. package/template/.claude/skills/logging-best-practices/SKILL.md +192 -0
  88. package/template/.claude/skills/logging-best-practices/references/go.md +49 -0
  89. package/template/.claude/skills/logging-best-practices/references/python.md +52 -0
  90. package/template/.claude/skills/logging-best-practices/references/typescript.md +215 -0
  91. package/template/.claude/skills/migration-management/SKILL.md +200 -0
  92. package/template/.claude/skills/migration-management/references/relational.md +214 -0
  93. package/template/.claude/skills/minimalist-surgical-development/SKILL.md +135 -0
  94. package/template/.claude/skills/parallel-agents/SKILL.md +165 -0
  95. package/template/.claude/skills/parallel-debugging/SKILL.md +135 -0
  96. package/template/.claude/skills/parallel-feature-development/SKILL.md +157 -0
  97. package/template/.claude/skills/performance-budgeting/SKILL.md +144 -0
  98. package/template/.claude/skills/pipeline-rubrics/SKILL.md +51 -0
  99. package/template/.claude/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  100. package/template/.claude/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  101. package/template/.claude/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  102. package/template/.claude/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  103. package/template/.claude/skills/pipeline-rubrics/references/scoring.md +32 -0
  104. package/template/.claude/skills/pipeline-rubrics/references/vision-rubric.md +12 -0
  105. package/template/.claude/skills/prd-templates/SKILL.md +107 -0
  106. package/template/.claude/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
  107. package/template/.claude/skills/prd-templates/references/architecture-design-template.md +88 -0
  108. package/template/.claude/skills/prd-templates/references/be-spec-classification.md +41 -0
  109. package/template/.claude/skills/prd-templates/references/be-spec-template.md +107 -0
  110. package/template/.claude/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
  111. package/template/.claude/skills/prd-templates/references/constraint-exploration.md +41 -0
  112. package/template/.claude/skills/prd-templates/references/data-placement-template.md +74 -0
  113. package/template/.claude/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
  114. package/template/.claude/skills/prd-templates/references/decision-propagation.md +121 -0
  115. package/template/.claude/skills/prd-templates/references/decomposition-templates.md +226 -0
  116. package/template/.claude/skills/prd-templates/references/deep-ideation-loading-protocol.md +114 -0
  117. package/template/.claude/skills/prd-templates/references/design-system-decisions.md +198 -0
  118. package/template/.claude/skills/prd-templates/references/design-system-prerequisite-check.md +18 -0
  119. package/template/.claude/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
  120. package/template/.claude/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
  121. package/template/.claude/skills/prd-templates/references/engineering-standards-template.md +126 -0
  122. package/template/.claude/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
  123. package/template/.claude/skills/prd-templates/references/expansion-modes.md +27 -0
  124. package/template/.claude/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  125. package/template/.claude/skills/prd-templates/references/fe-spec-template.md +90 -0
  126. package/template/.claude/skills/prd-templates/references/feature-ledger-protocol.md +149 -0
  127. package/template/.claude/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
  128. package/template/.claude/skills/prd-templates/references/fractal-cx-template.md +58 -0
  129. package/template/.claude/skills/prd-templates/references/fractal-feature-template.md +93 -0
  130. package/template/.claude/skills/prd-templates/references/fractal-node-index-template.md +55 -0
  131. package/template/.claude/skills/prd-templates/references/gate-applicability.md +92 -0
  132. package/template/.claude/skills/prd-templates/references/ideation-crosscut-template.md +36 -0
  133. package/template/.claude/skills/prd-templates/references/ideation-index-template.md +111 -0
  134. package/template/.claude/skills/prd-templates/references/ideation-meta-template.md +126 -0
  135. package/template/.claude/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  136. package/template/.claude/skills/prd-templates/references/input-classification.md +23 -0
  137. package/template/.claude/skills/prd-templates/references/map-guard-protocol.md +65 -0
  138. package/template/.claude/skills/prd-templates/references/operational-templates.md +116 -0
  139. package/template/.claude/skills/prd-templates/references/persona-completeness-gate.md +20 -0
  140. package/template/.claude/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  141. package/template/.claude/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -0
  142. package/template/.claude/skills/prd-templates/references/shard-boundary-analysis.md +103 -0
  143. package/template/.claude/skills/prd-templates/references/shard-split-remediation.md +157 -0
  144. package/template/.claude/skills/prd-templates/references/skill-loading-protocol.md +36 -0
  145. package/template/.claude/skills/prd-templates/references/slice-completion-gates.md +29 -0
  146. package/template/.claude/skills/prd-templates/references/spec-coverage-sweep.md +44 -0
  147. package/template/.claude/skills/prd-templates/references/surface-model.md +61 -0
  148. package/template/.claude/skills/prd-templates/references/tdd-testing-policy.md +39 -0
  149. package/template/.claude/skills/prd-templates/references/vision-template.md +57 -0
  150. package/template/.claude/skills/prd-templates/references/workflow-checkpoint-protocol.md +112 -0
  151. package/template/.claude/skills/prd-templates/references/write-verification-protocol.md +57 -0
  152. package/template/.claude/skills/prompt-engineer/SKILL.md +203 -0
  153. package/template/.claude/skills/regex-patterns/SKILL.md +333 -0
  154. package/template/.claude/skills/regex-patterns/references/go.md +44 -0
  155. package/template/.claude/skills/regex-patterns/references/javascript.md +63 -0
  156. package/template/.claude/skills/regex-patterns/references/python.md +77 -0
  157. package/template/.claude/skills/regex-patterns/references/rust.md +43 -0
  158. package/template/.claude/skills/resolve-ambiguity/SKILL.md +278 -0
  159. package/template/.claude/skills/security-scanning-security-hardening/SKILL.md +231 -0
  160. package/template/.claude/skills/session-continuity/SKILL.md +732 -0
  161. package/template/.claude/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  162. package/template/.claude/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  163. package/template/.claude/skills/session-continuity/protocols/03-progress-update.md +70 -0
  164. package/template/.claude/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  165. package/template/.claude/skills/session-continuity/protocols/05-session-close.md +37 -0
  166. package/template/.claude/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  167. package/template/.claude/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  168. package/template/.claude/skills/session-continuity/protocols/08-spec-pipeline-update.md +55 -0
  169. package/template/.claude/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  170. package/template/.claude/skills/session-continuity/protocols/10-placeholder-verification-gate.md +83 -0
  171. package/template/.claude/skills/session-continuity/protocols/11-parallel-synthesis.md +21 -0
  172. package/template/.claude/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  173. package/template/.claude/skills/skill-creator/SKILL.md +203 -0
  174. package/template/.claude/skills/skill-creator/references/.gitkeep +0 -0
  175. package/template/.claude/skills/skill-creator/scripts/.gitkeep +0 -0
  176. package/template/.claude/skills/spec-writing/SKILL.md +110 -0
  177. package/template/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
  178. package/template/.claude/skills/systematic-debugging/SKILL.md +297 -0
  179. package/template/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  180. package/template/.claude/skills/systematic-debugging/condition-based-waiting.md +115 -0
  181. package/template/.claude/skills/systematic-debugging/defense-in-depth.md +122 -0
  182. package/template/.claude/skills/systematic-debugging/find-polluter.sh +63 -0
  183. package/template/.claude/skills/systematic-debugging/root-cause-tracing.md +169 -0
  184. package/template/.claude/skills/systematic-debugging/test-academic.md +14 -0
  185. package/template/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
  186. package/template/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
  187. package/template/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
  188. package/template/.claude/skills/tdd-workflow/SKILL.md +186 -0
  189. package/template/.claude/skills/tdd-workflow/references/typescript.md +231 -0
  190. package/template/.claude/skills/tech-stack-catalog/SKILL.md +49 -0
  191. package/template/.claude/skills/tech-stack-catalog/references/constraint-questions.md +237 -0
  192. package/template/.claude/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  193. package/template/.claude/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  194. package/template/.claude/skills/technical-writer/SKILL.md +242 -0
  195. package/template/.claude/skills/testing-strategist/SKILL.md +319 -0
  196. package/template/.claude/skills/testing-strategist/references/typescript.md +328 -0
  197. package/template/.claude/skills/verification-before-completion/SKILL.md +97 -0
  198. package/template/.claude/skills/workflow-automation/SKILL.md +166 -0
  199. package/template/.claude/skills/workflow-automation/references/inngest.md +88 -0
  200. package/template/.claude/skills/workflow-automation/references/temporal.md +64 -0
@@ -0,0 +1,116 @@
1
+ # Operational Templates
2
+
3
+ Templates for operational artifacts produced during planning, assessment, and provisioning workflows.
4
+
5
+ ---
6
+
7
+ ## Slice Acceptance Criteria
8
+
9
+ Use when writing slice entries during `/plan-phase` Step 4:
10
+
11
+ ```markdown
12
+ ### Slice N: [Name]
13
+ **Size**: S/M/L
14
+ **Surfaces**: Contract, API, DB, UI
15
+
16
+ #### Tasks
17
+ - [ ] Contract: {{CONTRACT_LIBRARY}} schema for [entity] ← no tag (orchestrator handles sequentially)
18
+ - [ ] `BE` API endpoints for [entity] ← backend agent
19
+ - [ ] `FE` [entity] page and components ← frontend agent
20
+ - [ ] `QA` Integration tests for [entity] ← QA agent (runs FIRST to write failing tests, AND after BE+FE to verify)
21
+
22
+ #### Acceptance Criteria
23
+ - [ ] Given [context], when [action], then [result]
24
+ - [ ] Given [context], when [error condition], then [error response]
25
+ - [ ] [Performance/security criteria if applicable]
26
+
27
+ #### Dependencies
28
+ - Requires: Slice M
29
+ - Enables: Slice P
30
+ ```
31
+
32
+ ---
33
+
34
+ ## Remediation State
35
+
36
+ Use when writing `docs/audits/remediation-state.md` during `/remediate-pipeline-assess`:
37
+
38
+ ```markdown
39
+ # Remediation State
40
+
41
+ > Generated: [ISO 8601 date]
42
+
43
+ ## Layer Status
44
+
45
+ - vision: [confirmed-clean | unverified-clean | needs-audit | no-content]
46
+ - architecture: [confirmed-clean | unverified-clean | needs-audit | no-content]
47
+ - ia: [confirmed-clean | unverified-clean | needs-audit | no-content]
48
+ - be: [confirmed-clean | unverified-clean | needs-audit | no-content]
49
+ - fe: [confirmed-clean | unverified-clean | needs-audit | no-content]
50
+
51
+ ## Current Layer
52
+
53
+ [layer — the layer to process next]
54
+
55
+ ## Layers Confirmed Clean This Session
56
+
57
+ (none yet)
58
+
59
+ ## Notes
60
+
61
+ [Any relevant context]
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Installed Skills List
67
+
68
+ Use when updating `{{INSTALLED_SKILLS}}` during `/bootstrap-agents-provision` Step 8:
69
+
70
+ ```markdown
71
+ ### Default Skills
72
+ - fix-bug — TDD bug fix workflow
73
+ - refactor — Safe refactoring with test verification
74
+ - add-feature — Add feature to existing architecture
75
+ - deploy — Full deployment pipeline
76
+ - pr-review — Structured PR review
77
+ - security-audit — Security review across all layers
78
+ - main-workflow — General development workflow
79
+ - iterate-plan — Tech stack gap analysis
80
+ - setup-session — Session initialization
81
+ - using-git-worktrees — Isolated workspace management
82
+ - github-workflow-automation — GitHub CI/CD patterns
83
+ - audit-context-building — Deep code analysis
84
+ - context7-auto-research — Auto documentation lookup
85
+ - self-improving-agent — Learning from experiences
86
+
87
+ ### Stack Skills
88
+ - [skill-name] — [description] (installed for [STACK_KEY]=[value])
89
+ - ...
90
+
91
+ ### Surface Skills
92
+ - [skill-name] — [description] (installed for [surface] surface)
93
+ - ...
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Sync Integration Inventory
99
+
100
+ Use when building the integration inventory during `/sync-kit` Step 5a:
101
+
102
+ ```markdown
103
+ ## New Kit Content Since Last Sync
104
+
105
+ ### New Rules
106
+ - [list new rules, e.g. boundary-not-placeholder]
107
+
108
+ ### New Skills
109
+ - [list new skills, e.g. parallel-agents, parallel-debugging]
110
+
111
+ ### Changed Rules/Instructions
112
+ - [list what changed, e.g. tdd-always now references BOUNDARY stubs]
113
+
114
+ ### New Concepts
115
+ - [list new concepts, e.g. boundary stubs, file ownership, synthesis protocol]
116
+ ```
@@ -0,0 +1,20 @@
1
+ # Persona Completeness Gate
2
+
3
+ Applies to every persona in `meta/personas.md` during ideation.
4
+
5
+ ## Required Fields (6)
6
+
7
+ Every persona must have all 6 fields populated before proceeding past persona exploration:
8
+
9
+ 1. **Name + specific role** — not generic ("Shop Owner" not "User")
10
+ 2. **Specific pain point** — the problem this product solves for them
11
+ 3. **Current workaround** — how they solve it today without this product
12
+ 4. **Success criteria** — what "solved" looks like for them (measurable)
13
+ 5. **Switching trigger** — what event would make them adopt this product
14
+ 6. **Edge case or constraint** — at least one thing unique to this persona (regulatory, workflow, scale)
15
+
16
+ ## Enforcement
17
+
18
+ If any field is absent for any persona → probe the user before proceeding.
19
+
20
+ Reference: `.agent/skills/pipeline-rubrics/references/ideation-rubric.md` Dimension 2.
@@ -0,0 +1,21 @@
1
+ # Placeholder Guard — Hard Stop Template
2
+
3
+ Use this template in any workflow `## 0. Placeholder guard` step to emit a hard stop when required placeholders are unfilled.
4
+
5
+ ## Hard Stop Message Format
6
+
7
+ Emit one block per unfilled placeholder:
8
+
9
+ > ❌ **Bootstrap incomplete — cannot proceed.**
10
+ >
11
+ > **Unfilled placeholder:** `{{PLACEHOLDER_NAME}}`
12
+ >
13
+ > **Recovery:** If `docs/plans/*-architecture-design.md` exists, read it and extract the confirmed [tech decision] value, then run `/bootstrap-agents` with `KEY=<confirmed-value>`. If no architecture design document exists, run `/create-prd-stack` first to confirm tech stack decisions.
14
+ >
15
+ > **Why this matters:** [specific step] cannot produce correct output without this skill — [concrete consequence of proceeding without it].
16
+
17
+ ## Guard Procedure
18
+
19
+ 1. For each placeholder listed in the workflow's `requires_placeholders` frontmatter, check whether the literal characters `{{` still appear in the value.
20
+ 2. If **any** are unfilled, emit the hard stop message above (one block per unfilled placeholder) and **do not proceed** to the next step.
21
+ 3. Only proceed when **all** required placeholders report no literal `{{` characters.
@@ -0,0 +1,50 @@
1
+ # Map Column Reference
2
+
3
+ Maps surface stack map columns and cross-cutting categories to the workflows that consume them.
4
+
5
+ > **How workflows use the map**: See `.agent/instructions/tech-stack.md` for the surface stack map format and resolution rules. Workflows determine their surface context (from shard directory or slice surface tag), then look up the corresponding row and column.
6
+
7
+ ## Per-Surface Columns
8
+
9
+ | Column | Workflows That Consume It |
10
+ |--------|--------------------------|
11
+ | **Languages** | write-be-spec-classify, write-fe-spec-classify, implement-slice-setup, implement-slice-tdd, evolve-contract |
12
+ | **BE Frameworks** | write-be-spec-classify |
13
+ | **FE Frameworks** | write-fe-spec-classify |
14
+ | **FE Design** | write-fe-spec-classify |
15
+ | **ORMs** | create-prd-architecture, write-be-spec-classify, implement-slice-setup, verify-infrastructure, validate-phase |
16
+ | **State Mgmt** | write-fe-spec-classify, implement-slice-setup |
17
+ | **Databases** | create-prd-architecture, write-architecture-spec-design, write-be-spec-classify |
18
+ | **Unit Tests** | create-prd-compile, write-be-spec-classify, implement-slice-setup, implement-slice-tdd, evolve-contract |
19
+ | **E2E Tests** | create-prd-compile, implement-slice-tdd, validate-phase |
20
+ | **Test Cmd** | implement-slice-tdd, validate-phase, evolve-contract |
21
+ | **Validation Cmd** | implement-slice-tdd, validate-phase, evolve-contract |
22
+ | **Lint Cmd** | validate-phase |
23
+ | **Build Cmd** | validate-phase |
24
+ | **Dev Cmd** | verify-infrastructure |
25
+ | **Package Mgr** | bootstrap-agents-fill |
26
+
27
+ ## Cross-Cutting Categories
28
+
29
+ | Category | Workflows That Consume It |
30
+ |----------|--------------------------|
31
+ | **Auth** | create-prd-security, write-be-spec-classify |
32
+ | **CI/CD** | create-prd-compile, decompose-architecture-structure, plan-phase-write, verify-infrastructure, validate-phase |
33
+ | **Hosting** | create-prd-architecture, decompose-architecture-structure, plan-phase-write, verify-infrastructure, validate-phase |
34
+ | **Security** | create-prd-security, write-architecture-spec-design, validate-phase |
35
+ | **API Design** | create-prd-architecture, write-architecture-spec-design, write-be-spec-classify |
36
+ | **Accessibility** | write-fe-spec-classify, write-fe-spec-write, write-architecture-spec-design, validate-phase |
37
+ | **Contract Library** | tdd-contract-first rule, implement-slice-setup |
38
+
39
+ ## Surface Context Resolution
40
+
41
+ How each workflow determines which surface's row to read:
42
+
43
+ | Workflow Type | Resolution Method |
44
+ |--------------|-------------------|
45
+ | Spec-writing (`write-be-spec`, `write-fe-spec`) | Shard directory path: `docs/plans/be/desktop/` → surface `desktop`; flat `docs/plans/be/` → surface `shared` |
46
+ | Implementation (`implement-slice`) | Slice's `surface:` tag from the phase plan |
47
+ | Planning (`plan-phase`) | Iterates ALL surfaces in the map |
48
+ | Validation (`validate-phase`) | Runs per-surface commands for all surfaces |
49
+ | Cross-cutting (`verify-infrastructure`) | Uses cross-cutting table + primary surface for commands |
50
+ | Architecture (`create-prd-*`) | Map may be incomplete during these workflows — falls back to inline conversation context |
@@ -0,0 +1,103 @@
1
+ # Shard Boundary Analysis
2
+
3
+ Reference data for the decompose-architecture workflow — shard boundary heuristics, load thresholds, classification types, and split proposal format.
4
+
5
+ ## Fractal Tree Signals for Shard Boundaries
6
+
7
+ | Signal | What It Means for Sharding |
8
+ |--------|---------------------------|
9
+ | Deep fractal tree (3+ levels) | Domain is complex enough for its own shard |
10
+ | Many children (5+ features) | Consider splitting into multiple shards |
11
+ | Dense CX file (5+ cross-cuts) | High coupling — keep together in one shard, or isolate carefully |
12
+ | Rich Role Matrix (3+ roles with access) | Shard needs multi-role IA spec coverage |
13
+ | Hub-and-spoke shared domains | Shared domains often become `00-*` cross-cutting shards |
14
+ | Leaf features marked `[EXHAUSTED]` | Most confident for shard scoping — behavior is fully defined |
15
+
16
+ ## Standard Boundary Heuristics
17
+
18
+ - Features that share the same data models belong together
19
+ - Features that can be developed/deployed independently are candidates for separation
20
+ - Features that share the same access control model may belong together
21
+ - Cross-cutting concerns (auth, API conventions, error handling) become `00-*` shards
22
+
23
+ ## Shard Load Thresholds (Pre-check from Ideation)
24
+
25
+ | Ideation Sub-Areas | Pre-Check Action |
26
+ |---|---|
27
+ | ≤6 | ✅ No concern — proceed |
28
+ | 7–9 | ⚠️ **Pre-flag for split review** — note in the shard skeleton |
29
+ | ≥10 | 🚩 **Proactive split proposal** — present to user NOW before calibration gate |
30
+
31
+ ## Sub-feature Count Thresholds (Calibration Gate)
32
+
33
+ Count sub-features using the **bullet/named-item rule**: count every bullet or named item under `## Features`, excluding group headers that introduce a group but are not themselves a concrete capability. Sub-bullets count independently. Test: "Would a product manager list this as a separate line item in a release note?"
34
+
35
+ | Sub-feature Count | Action |
36
+ |-------------------|--------|
37
+ | **≤6** | ✅ OK — proceed |
38
+ | **7–9** | ⚠️ Flag for user review — present sub-feature list and ask: "Keep as-is, or split?" |
39
+ | **≥10** | 🛑 **Hard stop** — present mandatory split proposal. No shard may exit with ≥10 sub-features. |
40
+
41
+ ## Shard Document Type Classification
42
+
43
+ | Classification | Expected BE Specs |
44
+ |---------------|-------------------|
45
+ | **Feature domain** | 1 |
46
+ | **Multi-domain** | N (split along sub-feature boundaries) |
47
+ | **Cross-cutting** | 1 (`00-*`) |
48
+ | **Structural reference** | 0 |
49
+
50
+ Annotation format for shard skeletons:
51
+ ```markdown
52
+ > **Document Type** (preliminary): Feature domain | Multi-domain | Cross-cutting | Structural reference
53
+ ```
54
+
55
+ ## Split Proposal Format
56
+
57
+ When a shard exceeds the ≥10 threshold:
58
+
59
+ ```
60
+ Shard [NN] — [domain name] has [N] sub-features (threshold: ≥10 → mandatory split)
61
+
62
+ Current sub-features:
63
+ 1. [sub-feature]
64
+ 2. [sub-feature]
65
+ ...
66
+
67
+ Proposed split:
68
+ [NN]a — [new domain name] → file: docs/plans/ia/[NN]a-[domain].md
69
+ Sub-features: 1, 3, 5
70
+ [NN]b — [new domain name] → file: docs/plans/ia/[NN]b-[domain].md
71
+ Sub-features: 2, 4, 6
72
+
73
+ Split rationale: [why these groups are independent]
74
+ ```
75
+
76
+ **After any split**: Update `docs/plans/ia/decomposition-plan.md` with the revised table, re-run the Must Have coverage gate, **then run `/remediate-shard-split` to update all downstream cross-references. Do NOT proceed until zero stale parent references remain.** See `.agent/skills/prd-templates/references/shard-split-remediation.md` for scan patterns and matching heuristics.
77
+
78
+ **Companion spec tracking**: When writing BE or FE specs for split shards, populate the `## Split Group` section in each spec file (see `be-spec-template.md` / `fe-spec-template.md`). This enables downstream discovery of sibling specs during implementation.
79
+
80
+ ## Total Shard Count Guidance
81
+
82
+ The decomposition should produce a shard count proportional to the ideation depth. Too few shards compress complex domains and lose detail. Too many create coordination overhead that exceeds agent context capacity.
83
+
84
+ ### Expected Range by Ideation Scale
85
+
86
+ | Ideation Scale | Domains | Expected Shards (incl. `00-infrastructure`) | Notes |
87
+ |----------------|---------|---------------------------------------------|-------|
88
+ | **Small** | 3–5 | 4–8 | Most domains map 1:1 to shards |
89
+ | **Medium** | 6–8 | 7–14 | Some multi-domain splits expected |
90
+ | **Large** | 9–12 | 12–20 | Cross-cutting shards multiply; enforce sub-feature limits aggressively |
91
+ | **Deep** | 13+ | 16–25 | Maximum recommended. Beyond 25 → consider surface-level decomposition or domain grouping |
92
+
93
+ ### Total Count Thresholds (Post-Skeleton Check)
94
+
95
+ After all shard skeletons are created in Step 5, count the total:
96
+
97
+ | Total Shards | Action |
98
+ |--------------|--------|
99
+ | **≤ 20** | ✅ Proceed |
100
+ | **21–25** | ⚠️ Warning — "Decomposition produced [N] shards. This will require [N × 3] spec documents (IA + BE + FE) and proportional phase planning. Confirm this is the intended scope or consider grouping related domains." |
101
+ | **> 25** | 🛑 **Hard stop** — "Decomposition produced [N] shards. This exceeds the recommended maximum for sequential agent processing. Present a domain grouping proposal that reduces shard count to ≤ 25." |
102
+
103
+ > **Why 25 max**: Each shard produces ~3 spec documents (IA + BE + FE). At 25 shards, that's 75 spec documents. Beyond this, cross-layer consistency checks become unreliable and phase planning produces impractical slice counts.
@@ -0,0 +1,157 @@
1
+ # Shard Split Remediation Reference
2
+
3
+ Templates, formats, and scan patterns for `/remediate-shard-split` workflow.
4
+
5
+ ## Sub-Shard Mapping Table Format
6
+
7
+ ```markdown
8
+ | Parent | Sub-Shard | Domain Name | Keywords |
9
+ |--------|-----------|-------------|----------|
10
+ | 00 | 00a | Consumer Identity | auth, identity, login, registration, session, token, OAuth, password |
11
+ | 00 | 00b | AI Gateway | AI, gateway, LLM, model, inference, prompt, embedding, agent |
12
+ | 00 | 00c | File Storage | file, storage, upload, media, blob, asset, image, document |
13
+ | 00 | 00d | Taxonomy | taxonomy, category, classification, tag, hierarchy, label |
14
+ ```
15
+
16
+ ### Keyword Extraction Rules
17
+
18
+ 1. Read each sub-shard's `## Features` section
19
+ 2. Extract nouns and domain terms from each feature bullet
20
+ 3. Include the sub-shard's domain name words as keywords
21
+ 4. Include obvious synonyms (e.g., "auth" → also "authentication", "login", "session")
22
+ 5. Aim for 5–10 keywords per sub-shard — enough for matching, not so many they overlap
23
+
24
+ ## Cross-Reference Scan Patterns
25
+
26
+ Grep the entire `docs/plans/` tree for the parent shard number using these patterns. The `NN` below represents the parent number (e.g., `00`, `01`, `02`).
27
+
28
+ ### Primary Patterns (always scan)
29
+
30
+ | Pattern | Matches |
31
+ |---------|---------|
32
+ | `Depends on:.*NN` | Depends-on header lines |
33
+ | `Consumed by:.*NN` | Consumed-by header lines |
34
+ | `\| *NN *\|` | Dependency table cells containing the shard number |
35
+ | `NN — ` or `NN —` | Shard references with em-dash (e.g., "00 — Infrastructure") |
36
+ | `NN - ` or `NN -` | Shard references with hyphen |
37
+ | `(NN` followed by space or `)` | Parenthetical shard references |
38
+ | `shard NN` (case-insensitive) | Inline text references |
39
+ | `NN-[a-z]*.md` parent filename refs | Links to the parent file (e.g., `00-infrastructure.md`) |
40
+
41
+ ### Scope
42
+
43
+ | Directory | Required |
44
+ |-----------|----------|
45
+ | `docs/plans/ia/` | Always |
46
+ | `docs/plans/be/` | If exists |
47
+ | `docs/plans/fe/` | If exists |
48
+ | `docs/plans/be/web/` | If exists |
49
+ | `docs/plans/fe/web/` | If exists |
50
+ | `docs/plans/be/desktop/` | If exists |
51
+ | `docs/plans/fe/desktop/` | If exists |
52
+ | `docs/plans/be/mobile/` | If exists |
53
+ | `docs/plans/fe/mobile/` | If exists |
54
+
55
+ ### Exclusions
56
+
57
+ - The parent stub file itself (already marked SPLIT)
58
+ - `docs/audits/` (audit records, not active specs)
59
+ - `docs/plans/ideation/` (upstream of decomposition — doesn't use shard numbers)
60
+
61
+ ## Context Matching Heuristics
62
+
63
+ When a stale reference includes a parenthetical description, match it against sub-shard keywords:
64
+
65
+ ### Matching Algorithm
66
+
67
+ 1. **Exact keyword match**: If the parenthetical contains a word that appears in exactly one sub-shard's keyword list → **clear match**
68
+ 2. **Strongest keyword match**: If the parenthetical contains words that appear in multiple sub-shards' keyword lists, pick the sub-shard with the most keyword hits → **clear match** if gap ≥ 2 hits, **ambiguous** otherwise
69
+ 3. **Contextual read**: If keyword matching is inconclusive, read the surrounding 5 lines in the downstream file for additional context clues (e.g., what feature is being described in that section)
70
+ 4. **No match**: If the parenthetical is generic (e.g., just "Infrastructure" with no specifics) → **flag for user resolution**
71
+
72
+ ### Multiple Dependency Detection
73
+
74
+ A downstream shard may legitimately depend on more than one sub-shard. Detect this when:
75
+
76
+ - The `Depends on:` section lists the parent *and* the downstream shard's features span multiple sub-shard domains
77
+ - The downstream shard's data model references entities owned by different sub-shards
78
+
79
+ In this case, propose expanding the single reference into multiple references:
80
+ ```
81
+ Before: Depends on: 00 (Infrastructure)
82
+ After: Depends on: 00a (Consumer Identity), 00c (File Storage)
83
+ ```
84
+
85
+ ## Remediation Display Format
86
+
87
+ ### Clear Match
88
+
89
+ ```
90
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
+ Reference N of X
92
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
93
+ Document: [path]
94
+ Line: [line number]
95
+ Current: [current text with stale reference]
96
+ Context: [extracted context clue]
97
+ Maps to: [proposed sub-shard] — [confidence: clear]
98
+ Fix to: [proposed replacement text]
99
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
100
+ [Y] Apply fix and move to next
101
+ [n] Skip this item
102
+ [e] Edit — provide custom replacement
103
+ [skip] Skip entire document
104
+ [stop-and-save] Save progress and stop
105
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
106
+ ```
107
+
108
+ ### Ambiguous Match
109
+
110
+ ```
111
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
112
+ Reference N of X — AMBIGUOUS
113
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
+ Document: [path]
115
+ Line: [line number]
116
+ Current: [current text with stale reference]
117
+ Context: [extracted context clue]
118
+ Candidates:
119
+ [1] [sub-shard] — [domain] (keyword match: "[matched words]")
120
+ [2] [sub-shard] — [domain] (keyword match: "[matched words]")
121
+ [M] Multiple — expand to: [sub-shard1], [sub-shard2]
122
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
123
+ Which sub-shard? [1/2/M/skip/stop-and-save]
124
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
125
+ ```
126
+
127
+ ## Remediation Record Template
128
+
129
+ ```markdown
130
+ # Shard Split Remediation — [Parent NN] → [Sub-shards]
131
+
132
+ **Date**: [YYYY-MM-DD]
133
+ **Parent shard**: [NN] — [domain name]
134
+ **Sub-shards**: [list with domain names]
135
+
136
+ ## Mapping Table Used
137
+
138
+ [copy of the confirmed mapping table]
139
+
140
+ ## Changes Applied
141
+
142
+ | # | Document | Line | Before | After | Confidence |
143
+ |---|----------|------|--------|-------|------------|
144
+ | 1 | [path] | [N] | [old text] | [new text] | clear/user-resolved |
145
+
146
+ ## Skipped References
147
+
148
+ | # | Document | Line | Text | Reason |
149
+ |---|----------|------|------|--------|
150
+ | 1 | [path] | [N] | [text] | [reason] |
151
+
152
+ ## Verification
153
+
154
+ - **Final grep result**: 0 stale references remaining ✅
155
+ - **Documents scanned**: [N]
156
+ - **Documents modified**: [N]
157
+ ```
@@ -0,0 +1,36 @@
1
+ # Skill Loading Protocol
2
+
3
+ Standard procedure for loading skills from the surface stack map before beginning spec or implementation work.
4
+
5
+ ## How to Load Skills from the Surface Stack Map
6
+
7
+ 1. **Determine the surface**: Identify which surface this work belongs to from the directory path or phase plan (e.g., `docs/plans/be/web/` → surface `web`; flat `docs/plans/be/` → surface `shared`).
8
+
9
+ 2. **Read the surface stack map**: Open `.agent/instructions/tech-stack.md` and locate this surface's row.
10
+
11
+ 3. **For each skill category** relevant to your workflow (Languages, Databases, BE Frameworks, FE Frameworks, FE Design, ORMs, Auth, Unit Tests, E2E Tests, State Mgmt, Accessibility, CI/CD, Hosting, Security):
12
+ - Read the skill name(s) listed in that cell
13
+ - For each skill directory name, read `.agent/skills/[skill]/SKILL.md`
14
+ - Follow its conventions (language, testing, framework, design, etc.)
15
+
16
+ 4. **Cross-cutting skills**: Some categories (Auth, Security, CI/CD, Hosting, Accessibility) are in the cross-cutting section — not per-surface. Read those from the cross-cutting rows.
17
+
18
+ 5. **Missing skill fallback**: If any skill in the bundle is not installed in `.agent/skills/` and is not in `.agent/skill-library/MANIFEST.md`, read `.agent/skills/find-skills/SKILL.md` and follow its discovery methodology to search for a community equivalent before proceeding without it.
19
+
20
+ ## Which Categories to Load Per Workflow
21
+
22
+ | Workflow | Required Categories |
23
+ |----------|-------------------|
24
+ | `write-be-spec-classify` | Languages, Databases, Auth, BE Frameworks, ORMs, Unit Tests |
25
+ | `write-fe-spec-classify` | Languages, FE Frameworks, FE Design, Accessibility, State Mgmt |
26
+ | `write-architecture-spec-design` | Databases, Security, API Design |
27
+ | `setup-workspace-scaffold` | Languages, BE Frameworks, FE Frameworks |
28
+ | `setup-workspace-cicd` | CI/CD, Languages |
29
+ | `setup-workspace-hosting` | Hosting, CI/CD |
30
+ | `setup-workspace-data` | Databases, ORMs |
31
+ | `implement-slice-tdd` | Languages, Unit Tests, E2E Tests |
32
+ | `validate-phase` | Unit Tests, E2E Tests, CI/CD, Hosting, Accessibility, Security |
33
+
34
+ ## Surface Stack Map Verification
35
+
36
+ Before loading, verify the required cells have filled values. If any required cell is empty → **HARD STOP**: tell the user to run `/create-prd` first to make tech stack decisions.
@@ -0,0 +1,29 @@
1
+ # Slice Completion Gates
2
+
3
+ Checklists that must pass before a slice can be marked complete. Every unchecked item is a hard stop.
4
+
5
+ ## UI Completeness Check (FE slices only)
6
+
7
+ - [ ] Every acceptance criterion mentioning "user sees", "user can", "displays", or "shows" has a rendered implementation — not just a passing test
8
+ - [ ] Every new route in this slice is wired into the app's navigation (not just exported as a component)
9
+ - [ ] Loading, error, and empty states are rendered in the UI — not just covered by tests
10
+ - [ ] The feature is reachable from the app's entry point via normal user navigation
11
+
12
+ Non-FE slices skip this block.
13
+
14
+ ## Spec Traceability Gate (all slices)
15
+
16
+ - [ ] Re-read the BE spec section(s) for every endpoint in this slice — every response field, error code, and validation rule has a corresponding test tagged with the spec reference
17
+ - [ ] Re-read the IA shard's `## Edge Cases` section for this slice's domain — every edge case relevant to this slice has a `// IA-EDGE:` tagged test
18
+ - [ ] No `// DECISION:` annotations exist for behaviors that are actually specified in the BE spec or IA shard (i.e., no spec-defined behavior was treated as an undocumented implementation decision)
19
+ - [ ] The {{CONTRACT_LIBRARY}} contract written in Step 2 matches the delivered implementation field-for-field — no fields added, removed, or renamed during implementation without a corresponding contract update
20
+
21
+ ## Resource Cleanup Gate (all slices)
22
+
23
+ - [ ] Every database client or connection created in this slice has a corresponding cleanup call (`disconnect`, `close`, `end`, `dispose`) in a `finally` block or lifecycle hook
24
+ - [ ] Every event listener or subscription registered in UI components has a corresponding cleanup in the component's unmount/destroy lifecycle
25
+ - [ ] Every `setInterval` or `setTimeout` with a stored reference has a corresponding `clearInterval`/`clearTimeout` on cleanup
26
+ - [ ] No file handles or streams are opened without corresponding `close`/`destroy` calls
27
+ - [ ] If using connection pools — pool size is configured (not left at framework default) and documented via code comment: `// POOL: max=N, reason=...`
28
+
29
+ > ❌ STOP — Do not call `notify_user` if any of the above are unchecked. Fix the gap and re-run the Test Cmd from the surface stack map.
@@ -0,0 +1,44 @@
1
+ # Spec Coverage Sweep
2
+
3
+ Verifies that a phase's implementation delivered what the specs required — not just that tests pass.
4
+
5
+ ## Procedure
6
+
7
+ For each slice in the phase plan (`docs/plans/phases/phase-N.md`):
8
+
9
+ ### FE Spec Coverage
10
+
11
+ 1. Read the slice's acceptance criteria
12
+ 2. Identify the FE spec(s) referenced by this slice (via the FE spec's `## Source Map`)
13
+ 3. For each named user flow in the relevant FE spec `## Interaction Specification` section that belongs to this slice:
14
+ - Verify a test exists in the test suite that covers this flow by name or by its acceptance criterion
15
+ - Verify the flow is implemented (not stubbed with `BOUNDARY:`) unless a valid boundary stub exists with a tracking issue
16
+
17
+ ### BE Spec Coverage
18
+
19
+ 4. Identify the BE spec section(s) for each endpoint in this slice
20
+ 5. For each endpoint:
21
+ - Verify every {{CONTRACT_LIBRARY}}-validated field in the BE spec has a corresponding test
22
+ - Verify every error code defined in the BE spec has a corresponding test that asserts the **full error response shape** (status + error code + message), not just the HTTP status
23
+ - Verify every auth rule (role, ownership check) defined in the BE spec has a corresponding permission test
24
+
25
+ ### IA Shard Coverage
26
+
27
+ 6. For each slice, identify which IA shard(s) the slice's features originate from (using either the phase plan's domain references or the FE spec's `## Source Map`). For each identified IA shard:
28
+ - Read the shard's `## Accessibility` section (surface-conditional: apply only for `web`, `mobile`, or `desktop` surfaces). For each accessibility requirement, verify a corresponding test exists (e.g., axe-core check, keyboard navigation test, screen reader label test).
29
+ - Read the shard's acceptance criteria or testability section (look for Given/When/Then format or numbered acceptance criteria). For each criterion, verify it maps to at least one named test in the test suite.
30
+ - Flag any IA criterion with no test coverage as an uncovered item — apply the hard-stop rule below.
31
+
32
+ ## Hard Stop Rule
33
+
34
+ If any flow, field, error code, auth rule, IA acceptance criterion, or accessibility requirement has no corresponding test:
35
+
36
+ > ❌ STOP — Do not mark this phase as complete. List the uncovered items. Either write the missing tests and re-run the Test Cmd from `.agent/instructions/commands.md`, or if the item was genuinely deferred (valid boundary stub + tracking issue), document the deferral explicitly in the phase validation report.
37
+
38
+ ## Pass Criteria
39
+
40
+ Every named user flow, BE endpoint field, error code, auth rule, IA acceptance criterion, and accessibility requirement in the phase's scope has a corresponding passing test or a documented valid boundary stub.
41
+
42
+ ## Report Section
43
+
44
+ Update report (`docs/audits/phase-N-validation.md`): Add a `## Spec Coverage` section listing the sweep results — covered items, uncovered items, boundary stubs, accessibility coverage, IA testability trace results, and the pass/fail verdict.
@@ -0,0 +1,61 @@
1
+ # Surface Model Reference
2
+
3
+ This document defines two distinct models used throughout the kit. Understanding the distinction prevents confusion between surface types (what kind of thing you're building) and implementation layers (what a complete feature requires).
4
+
5
+ ---
6
+
7
+ ## Surface Type Model
8
+
9
+ Used by: stack decisions, bootstrap key `SURFACES`, decomposition, `/plan-phase` Step 0.5
10
+
11
+ The surface type describes the *kind of deployment target* for the project.
12
+
13
+ | Surface Type | Description | Examples |
14
+ |---|---|---|
15
+ | `web` | Browser-based application | SaaS dashboard, marketing site, web app |
16
+ | `mobile` | Native or hybrid mobile app | iOS/Android app, React Native, Expo |
17
+ | `desktop` | Native desktop application | Electron, Tauri, native macOS/Windows |
18
+ | `cli` | Command-line interface | Developer tool, automation script, npm package |
19
+ | `api` | Headless API without a user-facing interface | REST API, GraphQL service, microservice |
20
+ | `extension` | Browser extension or plugin | Chrome extension, VS Code plugin |
21
+
22
+ ---
23
+
24
+ ## Implementation Layer Model
25
+
26
+ Used by: `vertical-slices.md` completeness rule, phase planning, slice acceptance criteria
27
+
28
+ The implementation layer describes *what a complete vertical feature slice requires* — regardless of surface type.
29
+
30
+ | Layer | What It Is | Required For |
31
+ |---|---|---|
32
+ | **Data layer** | Schema, migrations, seed data, storage config | Every feature that persists state |
33
+ | **API layer** | Endpoints, validation, middleware, business logic | Every feature with server-side behavior |
34
+ | **User-facing layer** | The interface for the primary user of this feature | Every feature (form adapts to surface type) |
35
+ | **Admin layer** | Management interface for operators or privileged users | Every feature that needs operator control |
36
+
37
+ ---
38
+
39
+ ## Reconciliation: Layers Are Always Present, Form Adapts
40
+
41
+ Every surface type has all four implementation layers — but the *form* of each layer adapts to the surface type.
42
+
43
+ | Surface Type | Data Layer | API Layer | User-Facing Layer | Admin Layer |
44
+ |---|---|---|---|---|
45
+ | `web` | DB schema + migrations | REST/GraphQL/tRPC endpoints | Browser UI (pages, components) | Admin dashboard or management UI |
46
+ | `mobile` | Local storage + remote sync | Mobile API endpoints | Native screens | Admin API or web admin |
47
+ | `desktop` | Local DB or file system | Internal IPC or local server | Native window UI | Settings/configuration panel |
48
+ | `cli` | Config files, local state | Internal command router | Command output, prompts, `--help` | Privileged commands, admin mode |
49
+ | `api` | DB schema | API endpoints | Response format (the interface for API consumers) | Admin endpoints or management API |
50
+ | `extension` | Extension storage | Background service worker | Popup or sidebar UI | Extension settings page |
51
+
52
+ **Key insight**: A CLI project has no "admin panel" in the web sense — but it has privileged commands and a management mode that fulfill the admin layer role. The layers are never absent; they just look different.
53
+
54
+ ---
55
+
56
+ ## Related Rules and Workflows
57
+
58
+ - `vertical-slices.md` — uses the Implementation Layer Model to define feature completeness
59
+ - `/plan-phase` Step 0.5 — uses the Surface Type Model to condition completeness checks
60
+ - `bootstrap-agents-fill.md` — fills `{{SURFACES}}` with confirmed Surface Type values
61
+ - `decompose-architecture.md` — uses surface types to determine which skills to load