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,226 @@
|
|
|
1
|
+
# Decomposition Templates
|
|
2
|
+
|
|
3
|
+
Templates for shard skeletons and layer indexes created during `/decompose-architecture-structure`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Shard Skeleton
|
|
8
|
+
|
|
9
|
+
For each shard, create at `docs/plans/ia/[NN-domain-name].md`:
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# [Shard ##] — [Domain Name]
|
|
13
|
+
|
|
14
|
+
> **Architecture Source**: [link to architecture-design.md]
|
|
15
|
+
> **Status**: Skeleton | Draft | Review | Complete
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
[1-2 sentence description of this domain's scope]
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
[Level-1 sub-features from the relevant ideation domain folder for this domain. Check `ideation-index.md` Structure Map for the correct folder path — folders are under `domains/` or `surfaces/{name}/`. Read the folder's `*-index.md` for the children table, then each child feature file. NOT architecture-level headlines. See /decompose-architecture-structure Step 5 for seeding instructions.]
|
|
22
|
+
|
|
23
|
+
## User Interactions
|
|
24
|
+
[To be filled during /write-architecture-spec]
|
|
25
|
+
|
|
26
|
+
## Data Model
|
|
27
|
+
[To be filled during /write-architecture-spec]
|
|
28
|
+
|
|
29
|
+
## Access Control
|
|
30
|
+
[To be filled during /write-architecture-spec]
|
|
31
|
+
|
|
32
|
+
## Accessibility
|
|
33
|
+
|
|
34
|
+
<!-- Filled by /write-architecture-spec-design Step 5.5 -->
|
|
35
|
+
<!-- For web/mobile/desktop surfaces: WCAG 2.1 AA requirements per interaction -->
|
|
36
|
+
<!-- For api/cli/extension only: "Not applicable — no visual surfaces" -->
|
|
37
|
+
|
|
38
|
+
## Edge Cases
|
|
39
|
+
[To be filled during /write-architecture-spec]
|
|
40
|
+
|
|
41
|
+
## Surface Applicability
|
|
42
|
+
<!-- Populated during decomposition from architecture design's Project Surfaces -->
|
|
43
|
+
| Surface | Applicable | Notes |
|
|
44
|
+
|---------|-----------|-------|
|
|
45
|
+
| [populated from architecture design] | | |
|
|
46
|
+
|
|
47
|
+
> `all` shorthand: If the shard applies to every surface, write `Surfaces: all` instead of the table.
|
|
48
|
+
|
|
49
|
+
## Cross-Shard Dependencies
|
|
50
|
+
[List which other shards this one depends on or is depended upon by]
|
|
51
|
+
|
|
52
|
+
## Deep Dives Needed
|
|
53
|
+
[List any features complex enough to warrant a separate deep dive document]
|
|
54
|
+
|
|
55
|
+
## Changelog
|
|
56
|
+
|
|
57
|
+
| Date | Change | Workflow | Sections Affected |
|
|
58
|
+
|------|--------|----------|-------------------|
|
|
59
|
+
| [date] | Initial creation | /decompose-architecture-structure | All |
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## IA Index
|
|
65
|
+
|
|
66
|
+
Create at `docs/plans/ia/index.md`:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# IA Layer — Information Architecture
|
|
70
|
+
|
|
71
|
+
> **Architecture Source**: [link to architecture-design.md]
|
|
72
|
+
|
|
73
|
+
## Reading Order
|
|
74
|
+
|
|
75
|
+
Read cross-cutting shards first, then feature shards in numerical order.
|
|
76
|
+
|
|
77
|
+
## Shards
|
|
78
|
+
|
|
79
|
+
| # | Shard | Surfaces | Status | Deep Dives |
|
|
80
|
+
|---|-------|----------|--------|------------|
|
|
81
|
+
| 00 | [00-shard-name.md](00-shard-name.md) | all | 🔲 | — |
|
|
82
|
+
| 01 | [01-shard-name.md](01-shard-name.md) | web, mobile | 🔲 | — |
|
|
83
|
+
| ... | ... | ... | ... | ... |
|
|
84
|
+
|
|
85
|
+
## Conventions
|
|
86
|
+
|
|
87
|
+
- Every shard must define: features, user interactions, data model, access control, accessibility, edge cases
|
|
88
|
+
- Cross-shard dependencies must be bidirectional (if A references B, B must reference A)
|
|
89
|
+
- Complex features get a separate deep dive in `deep-dives/`
|
|
90
|
+
- Status: 🔲 Skeleton → 📝 Draft → 👀 Review → ✅ Complete
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## BE Index Skeleton
|
|
96
|
+
|
|
97
|
+
Create at `docs/plans/be/index.md`:
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
# BE Layer — Backend Specifications
|
|
101
|
+
|
|
102
|
+
> **IA Source**: [link to ia/index.md]
|
|
103
|
+
|
|
104
|
+
## Reading Order
|
|
105
|
+
|
|
106
|
+
Read cross-cutting specs first, then feature specs in numerical order.
|
|
107
|
+
|
|
108
|
+
## Conventions Template
|
|
109
|
+
|
|
110
|
+
Every BE spec MUST include:
|
|
111
|
+
- API Endpoints (method, path, description)
|
|
112
|
+
- Request/Response Contracts ({{CONTRACT_LIBRARY}} schemas)
|
|
113
|
+
- Database Schema (tables, fields, indexes, permissions)
|
|
114
|
+
- Middleware & Policies (auth, rate limits, validation)
|
|
115
|
+
- Data Flow (request lifecycle)
|
|
116
|
+
- Error Handling (specific error codes, not generic 500s)
|
|
117
|
+
- IA Source Map (which IA shard sections and deep dives inform each part)
|
|
118
|
+
|
|
119
|
+
## Shard-to-Spec Mapping
|
|
120
|
+
|
|
121
|
+
Populated by `/write-be-spec`. Mapping depends on shard document type
|
|
122
|
+
(classified during `/write-architecture-spec`):
|
|
123
|
+
|
|
124
|
+
| IA Shard | Type | BE Spec(s) | Status |
|
|
125
|
+
|----------|------|-----------|--------|
|
|
126
|
+
| *(populated by /write-be-spec)* | | | |
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## FE Index Skeleton
|
|
132
|
+
|
|
133
|
+
Create at `docs/plans/fe/index.md`:
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# FE Layer — Frontend Specifications
|
|
137
|
+
|
|
138
|
+
> **BE Source**: [link to be/index.md]
|
|
139
|
+
|
|
140
|
+
## Reading Order
|
|
141
|
+
|
|
142
|
+
Read cross-cutting specs first, then feature specs in numerical order.
|
|
143
|
+
|
|
144
|
+
## Conventions Template
|
|
145
|
+
|
|
146
|
+
Every FE spec MUST include:
|
|
147
|
+
- Component Inventory (tree with props interfaces)
|
|
148
|
+
- Page/Route Definitions (URL patterns, guards, redirects)
|
|
149
|
+
- State Management (server state, client state, URL state)
|
|
150
|
+
- Interaction Specification (click, hover, keyboard, form validation)
|
|
151
|
+
- Responsive Behavior (breakpoints, component behavior)
|
|
152
|
+
- Accessibility (ARIA roles, keyboard navigation, screen reader)
|
|
153
|
+
- Loading/Error/Empty States
|
|
154
|
+
- Source Map (traceability to BE spec and IA shard sections)
|
|
155
|
+
|
|
156
|
+
## Spec-to-Source Mapping
|
|
157
|
+
|
|
158
|
+
Populated by `/write-fe-spec`. FE specs are organized by UI surface, not backend boundary:
|
|
159
|
+
|
|
160
|
+
| # | FE Spec | BE Source(s) | IA Source | Status |
|
|
161
|
+
|---|---------|-------------|-----------|--------|
|
|
162
|
+
| *(populated by /write-fe-spec)* | | | | |
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Master Index — Single-Surface
|
|
168
|
+
|
|
169
|
+
Create or update `docs/plans/index.md`:
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
# [Project Name] — Specification Index
|
|
173
|
+
|
|
174
|
+
## Documents
|
|
175
|
+
|
|
176
|
+
| Document | Description | Status |
|
|
177
|
+
|----------|-------------|--------|
|
|
178
|
+
| [Ideation](ideation/ideation-index.md) | Problem, personas, features, constraints, domain map | ✅ |
|
|
179
|
+
| [Architecture Design](YYYY-MM-DD-architecture-design.md) | Tech stack, system design, security | ✅ |
|
|
180
|
+
|
|
181
|
+
## Specification Layers
|
|
182
|
+
|
|
183
|
+
| Layer | Index | Purpose | Specs |
|
|
184
|
+
|-------|-------|---------|-------|
|
|
185
|
+
| **IA** | [ia/index.md](ia/index.md) | Features, interactions, data models, access control | N shards |
|
|
186
|
+
| **BE** | [be/index.md](be/index.md) | API endpoints, contracts, database schemas, middleware | N specs |
|
|
187
|
+
| **FE** | [fe/index.md](fe/index.md) | Components, routing, state, interactions, a11y | N specs |
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Master Index — Multi-Surface
|
|
191
|
+
|
|
192
|
+
```markdown
|
|
193
|
+
# [Project Name] — Specification Index
|
|
194
|
+
|
|
195
|
+
## Documents
|
|
196
|
+
|
|
197
|
+
| Document | Description | Status |
|
|
198
|
+
|----------|-------------|--------|
|
|
199
|
+
| [Ideation](ideation/ideation-index.md) | Problem, personas, features, constraints, domain map | ✅ |
|
|
200
|
+
| [Architecture Design](YYYY-MM-DD-architecture-design.md) | Tech stack, system design, security | ✅ |
|
|
201
|
+
|
|
202
|
+
## IA Layer (shared across all surfaces)
|
|
203
|
+
|
|
204
|
+
| Layer | Index | Purpose | Shards |
|
|
205
|
+
|-------|-------|---------|--------|
|
|
206
|
+
| **IA** | [ia/index.md](ia/index.md) | Features, interactions, data models, access control | N shards |
|
|
207
|
+
|
|
208
|
+
> IA shards are domain-based, not surface-based. Each shard declares its surface applicability.
|
|
209
|
+
|
|
210
|
+
## Per-Surface Layers
|
|
211
|
+
|
|
212
|
+
| Surface | BE Index | FE Index | Description |
|
|
213
|
+
|---------|----------|----------|-------------|
|
|
214
|
+
| **Shared** | [be/index.md](be/index.md) | [fe/index.md](fe/index.md) | Cross-surface contracts (pre-scaffolded dirs) |
|
|
215
|
+
| **[Surface 1]** | [be/surface-1/index.md](be/surface-1/index.md) | [fe/surface-1/index.md](fe/surface-1/index.md) | [description] |
|
|
216
|
+
| **[Surface 2]** | [be/surface-2/index.md](be/surface-2/index.md) | [fe/surface-2/index.md](fe/surface-2/index.md) | [description] |
|
|
217
|
+
|
|
218
|
+
## Pipeline
|
|
219
|
+
|
|
220
|
+
IA shards (shared) → per-surface BE specs → per-surface FE specs → audit → plan → implement → validate
|
|
221
|
+
|
|
222
|
+
Shared BE specs must be completed first — surface-specific specs depend on them.
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Each surface's own `index.md` contains BE/FE tables scoped to that surface.
|
|
226
|
+
IA shards are referenced from the shared `ia/index.md` — filtered by the shard's Surface Applicability.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Deep Ideation Loading Protocol
|
|
2
|
+
|
|
3
|
+
> **Purpose**: When ideation output is large (many domains, many features), the single `ideation-index.md` summary is insufficient for downstream architecture decisions. This protocol reads domain-level index files to build a structured **Domain Digest Table** that captures every feature, role assignment, and decision without requiring the agent to hold hundreds of leaf-level files in context.
|
|
4
|
+
|
|
5
|
+
## When to Invoke
|
|
6
|
+
|
|
7
|
+
**Always invoke** this protocol when ANY of these thresholds are met (read from the `## Progress Summary` table in `ideation-index.md`):
|
|
8
|
+
|
|
9
|
+
| Metric | Threshold |
|
|
10
|
+
|--------|-----------|
|
|
11
|
+
| Total domains | ≥ 6 |
|
|
12
|
+
| Total leaf features | ≥ 50 |
|
|
13
|
+
| Total surfaces | ≥ 2 (multi-product projects) |
|
|
14
|
+
|
|
15
|
+
If none of these thresholds are met, the standard `ideation-index.md` read is sufficient — skip this protocol.
|
|
16
|
+
|
|
17
|
+
## Procedure
|
|
18
|
+
|
|
19
|
+
### Step 1 — Enumerate domain folders
|
|
20
|
+
|
|
21
|
+
Read the `## Structure Map` in `ideation-index.md`. For each row in the domain tables, record:
|
|
22
|
+
- Domain number and name
|
|
23
|
+
- Path to the domain folder
|
|
24
|
+
- Status (`[SURFACE]`, `[BREADTH]`, `[DEEP]`, `[EXHAUSTED]`)
|
|
25
|
+
- Child count (from the "Children" column)
|
|
26
|
+
- Surface (for multi-product projects)
|
|
27
|
+
|
|
28
|
+
This produces a **domain enumeration list** — typically 6-20 entries.
|
|
29
|
+
|
|
30
|
+
### Step 2 — Read each domain index
|
|
31
|
+
|
|
32
|
+
For each domain in the enumeration list, read `{domain-folder}/{domain}-index.md`. Extract:
|
|
33
|
+
|
|
34
|
+
1. **Children table** — every sub-domain and feature with: number, name, type, status, depth
|
|
35
|
+
2. **Role Matrix** — which personas have access to which children, and at what level (Full / Config / Read-only / Reports / None)
|
|
36
|
+
3. **Decision Log** — any product decisions made during ideation for this domain
|
|
37
|
+
4. **Open Questions** — deferred questions tagged for downstream stages
|
|
38
|
+
|
|
39
|
+
> **Context management**: Read domain indexes one at a time. Extract the structured data, then move to the next. Do not attempt to hold all domain indexes simultaneously.
|
|
40
|
+
|
|
41
|
+
### Step 3 — Read CX files for cross-domain dependencies
|
|
42
|
+
|
|
43
|
+
Read `ideation-cx.md` (global cross-cuts) and each domain-level `{domain}-cx.md`. Extract:
|
|
44
|
+
- Cross-domain data dependencies (which entities are shared)
|
|
45
|
+
- Trigger chains (domain A event → domain B action)
|
|
46
|
+
- Shared entity ownership
|
|
47
|
+
|
|
48
|
+
### Step 4 — Build the Domain Digest Table
|
|
49
|
+
|
|
50
|
+
Compile the extracted data into a structured table:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
## Ideation Digest
|
|
54
|
+
|
|
55
|
+
> Auto-generated by the Deep Ideation Loading Protocol. Source: domain-level index files.
|
|
56
|
+
> This section is the primary source for entity identification, data strategy, and phasing decisions.
|
|
57
|
+
|
|
58
|
+
### Domain Summary
|
|
59
|
+
|
|
60
|
+
| # | Domain | Surface | Features | Sub-domains | Depth | Must Have | Roles | Key Entities |
|
|
61
|
+
|---|--------|---------|----------|-------------|-------|----------|-------|-------------|
|
|
62
|
+
| 01 | {name} | {surface} | {N} | {N} | {status} | {N} | {list} | {entity hints} |
|
|
63
|
+
|
|
64
|
+
### Cross-Domain Dependencies
|
|
65
|
+
|
|
66
|
+
| Source Domain | Target Domain | Type | Shared Entities |
|
|
67
|
+
|--------------|--------------|------|----------------|
|
|
68
|
+
| {source} | {target} | data / trigger / permission | {entities} |
|
|
69
|
+
|
|
70
|
+
### Ideation Decisions (from domain logs)
|
|
71
|
+
|
|
72
|
+
| # | Domain | Decision | Impact |
|
|
73
|
+
|---|--------|----------|--------|
|
|
74
|
+
| D-{NN} | {domain} | {decision} | {what this affects downstream} |
|
|
75
|
+
|
|
76
|
+
### Deferred Questions (tagged for /create-prd)
|
|
77
|
+
|
|
78
|
+
| # | Domain | Question | Owner |
|
|
79
|
+
|---|--------|----------|-------|
|
|
80
|
+
| Q-{NN} | {domain} | {question} | /create-prd |
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 5 — Derive Key Entities column
|
|
84
|
+
|
|
85
|
+
For each domain, scan the Children table for entity hints:
|
|
86
|
+
- Feature names that imply data objects (e.g., "Device History" → `Device`, `RepairRecord`)
|
|
87
|
+
- Role Matrix intersections that imply access-controlled resources
|
|
88
|
+
- Cross-cut shared entities from CX files
|
|
89
|
+
|
|
90
|
+
List the implied entities in the "Key Entities" column. These are **hints**, not schema — they inform data strategy without prescribing it.
|
|
91
|
+
|
|
92
|
+
### Step 6 — Write to architecture-draft.md
|
|
93
|
+
|
|
94
|
+
Write the completed Domain Digest Table to `docs/plans/architecture-draft.md` as the first section (`## Ideation Digest`). If the file doesn't exist yet, create it with this section.
|
|
95
|
+
|
|
96
|
+
> **Write immediately.** Do not hold the digest in memory — write it to disk as soon as it's compiled. All subsequent create-prd shards read from `architecture-draft.md`.
|
|
97
|
+
|
|
98
|
+
## Downstream Consumption
|
|
99
|
+
|
|
100
|
+
| Consumer | What It Uses |
|
|
101
|
+
|----------|-------------|
|
|
102
|
+
| `create-prd-architecture` (Step 5: Data strategy) | Key Entities column → entity identification; Cross-Domain Dependencies → data ownership and sync |
|
|
103
|
+
| `create-prd-compile` (Step 9: Phasing) | Features + Must Have counts → phase complexity sizing; Sub-domain counts → dependency ordering |
|
|
104
|
+
| `create-prd-security` | Roles column → access control scope; Cross-Domain Dependencies → trust boundaries |
|
|
105
|
+
|
|
106
|
+
## Anti-Patterns
|
|
107
|
+
|
|
108
|
+
| ❌ Wrong | ✅ Right |
|
|
109
|
+
|---------|---------|
|
|
110
|
+
| Reading all 295 leaf-level feature files | Reading 8-20 domain index files |
|
|
111
|
+
| Skipping this protocol because "ideation-index.md has a summary" | Invoking when thresholds are met — summaries lose detail |
|
|
112
|
+
| Deriving entities from the MoSCoW bullet list | Deriving entities from the Children tables + CX dependencies |
|
|
113
|
+
| Holding all domain indexes in context simultaneously | Reading one at a time, extracting structured data, moving on |
|
|
114
|
+
| Writing the digest at the end of create-prd | Writing it to architecture-draft.md immediately in Step 1.5 |
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Design System Decision Options & Output Template
|
|
2
|
+
|
|
3
|
+
Reference material for the `/create-prd-design-system` workflow. Contains option menus for all seven decisions and the canonical output template for `docs/plans/design-system.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Navigation Paradigm Options
|
|
8
|
+
|
|
9
|
+
### Web surfaces
|
|
10
|
+
|
|
11
|
+
- **Sidebar + topnav** — Collapsible sidebar for section nav, top bar for global actions. Good for complex apps with deep IA; competes with content width on small screens.
|
|
12
|
+
- **Tab bar (app-style)** — Horizontal tab bar, web app feels like a native app. Limited to 5–7 top-level destinations; unfamiliar on traditional websites.
|
|
13
|
+
- **Full-page transitions** — Each section is a full-page view with navigation between pages. Poor for frequent cross-section navigation; high cognitive load for data-heavy apps.
|
|
14
|
+
- **Command palette primary** — Keyboard-first navigation with minimal visible chrome. High power-user efficiency; steep learning curve, requires discoverability affordances.
|
|
15
|
+
- **Minimal/none** — No persistent navigation; content-first with contextual links. Clean and focused; users may feel lost without orientation cues.
|
|
16
|
+
|
|
17
|
+
### Mobile surfaces
|
|
18
|
+
|
|
19
|
+
- **Bottom tab bar** — iOS/Android standard, 3–5 tabs at screen bottom. Limited to 5 top-level destinations; thumb-friendly.
|
|
20
|
+
- **Drawer + top header** — Slide-out drawer with a persistent top header bar. Supports many sections; discoverability issues — out of sight, out of mind.
|
|
21
|
+
- **Stack navigation only** — Linear forward/back navigation with no persistent tabs. No quick access to unrelated sections; relies on back button.
|
|
22
|
+
- **Tab bar + stack hybrid** — Bottom tabs for top-level sections, stack navigation within each tab. Combines discoverability with depth; tab count still limited.
|
|
23
|
+
|
|
24
|
+
### Desktop (native) surfaces
|
|
25
|
+
|
|
26
|
+
- **Menu bar + sidebar** — OS-native menu bar with sidebar panel. Platform-specific conventions differ (macOS vs Windows vs Linux).
|
|
27
|
+
- **Ribbon (Office-style)** — Grouped toolbar with tabbed ribbon. Heavy initial learning curve; takes vertical space.
|
|
28
|
+
- **Panel system** — Draggable/dockable panels with customizable layout. Window management complexity; steep learning curve.
|
|
29
|
+
- **Sidebar only** — Vertical sidebar as sole navigation element. No menu bar discoverability for infrequent actions.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Page Archetype Options
|
|
34
|
+
|
|
35
|
+
| Archetype | Description | Typical Layout Zones |
|
|
36
|
+
|-----------|-------------|---------------------|
|
|
37
|
+
| **Dashboard** | Data overview with cards/charts | Nav zone · Summary strip · Grid/card zone · Detail panel |
|
|
38
|
+
| **List → Detail** | Browse items, select to view/edit | Nav zone · Filter bar · List zone · Detail zone |
|
|
39
|
+
| **Form** | Multi-step or single-page data entry | Nav zone · Form zone · Action bar |
|
|
40
|
+
| **Content/Article** | Long-form reading with optional sidebar | Nav zone · Content zone · Sidebar/TOC zone |
|
|
41
|
+
| **Settings** | Tabbed or sectioned preference panels | Nav zone · Section nav · Settings zone |
|
|
42
|
+
| **Empty/Onboarding** | First-run or zero-data state | Nav zone · Illustration zone · CTA zone |
|
|
43
|
+
| **Auth** | Login/signup/password-reset | Centered card zone · Background zone |
|
|
44
|
+
| **Error** | 404/500/offline states | Nav zone · Error illustration zone · Recovery CTA |
|
|
45
|
+
|
|
46
|
+
### Example wireframe (Dashboard archetype)
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
┌─────────────────────────────────────┐
|
|
50
|
+
│ Nav Zone │
|
|
51
|
+
├────────┬────────────────────────────┤
|
|
52
|
+
│ │ Summary Strip │
|
|
53
|
+
│ Side ├────────────────────────────┤
|
|
54
|
+
│ bar │ │
|
|
55
|
+
│ Zone │ Content Zone │
|
|
56
|
+
│ │ │
|
|
57
|
+
├────────┴────────────────────────────┤
|
|
58
|
+
│ Action Bar │
|
|
59
|
+
└─────────────────────────────────────┘
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Global Component Categories
|
|
65
|
+
|
|
66
|
+
- **Navigation components** — derived from the navigation paradigm (e.g., TopNav, Sidebar, BottomTabBar, Breadcrumb)
|
|
67
|
+
- **Layout components** — derived from archetypes (e.g., PageShell, ContentArea, Sidebar, ActionBar)
|
|
68
|
+
- **Feedback components** — Loading skeleton, Toast, ErrorBoundary, EmptyState
|
|
69
|
+
- **Form primitives** — Input, Select, Checkbox, Radio, TextArea, DatePicker, FileUpload
|
|
70
|
+
- **Data display** — Table, Card, Badge, Avatar, Stat, Chart container
|
|
71
|
+
- **Overlay components** — Modal, Drawer, Popover, Tooltip, ContextMenu
|
|
72
|
+
- **Action components** — Button, IconButton, Link, Dropdown menu
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Motion Language Options
|
|
77
|
+
|
|
78
|
+
| Level | Description | Typical Durations | Use When |
|
|
79
|
+
|-------|-------------|-------------------|----------|
|
|
80
|
+
| **Instant** | No transitions — all state changes are immediate | 0ms | Performance-critical tools, terminal UIs, accessibility-first products |
|
|
81
|
+
| **Subtle** | Micro-transitions only — fades and opacity shifts | 100–150ms ease-out | Productivity tools, data-dense dashboards, professional/enterprise apps |
|
|
82
|
+
| **Balanced** | Purposeful transitions for navigation and state changes | 150–300ms ease-in-out | Most consumer apps, SaaS products, general-purpose UIs |
|
|
83
|
+
| **Rich** | Expressive animations — page transitions, element choreography, spring physics | 200–500ms spring/cubic-bezier | Marketing sites, creative tools, consumer apps where delight matters |
|
|
84
|
+
|
|
85
|
+
> **Mandatory regardless of level**: All motion must respect `prefers-reduced-motion: reduce`. When reduced motion is active, all animations collapse to instant (0ms) or opacity-only transitions (≤100ms).
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Data Density Options
|
|
90
|
+
|
|
91
|
+
| Philosophy | Description | Best For | Characteristics |
|
|
92
|
+
|------------|-------------|----------|-----------------|
|
|
93
|
+
| **Compact** | Maximum information per viewport — tight spacing, smaller text, dense tables | Data-heavy dashboards, admin panels, developer tools | 12–14px body text, 4–8px element spacing, minimal whitespace |
|
|
94
|
+
| **Spacious** | Generous whitespace, larger text, breathing room between elements | Consumer apps, marketing, content-focused products | 16–18px body text, 16–24px element spacing, generous padding |
|
|
95
|
+
| **Hybrid** | Context-dependent — compact for data tables/lists, spacious for forms/content | Apps mixing data overview with detail editing | Defined rules for when each density applies |
|
|
96
|
+
|
|
97
|
+
If **Hybrid** is selected, ask the user to define the density rules:
|
|
98
|
+
- Which archetypes get compact density?
|
|
99
|
+
- Which archetypes get spacious density?
|
|
100
|
+
- What is the transition behavior between densities?
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Global State Design Language Options
|
|
105
|
+
|
|
106
|
+
### Loading states
|
|
107
|
+
|
|
108
|
+
| Option | Description | Best For |
|
|
109
|
+
|--------|-------------|----------|
|
|
110
|
+
| **Skeleton screens** | Grey placeholder shapes matching the expected layout | Content-heavy pages where layout stability matters |
|
|
111
|
+
| **Spinner/shimmer** | Centered spinner or shimmer overlay | Simple actions, modals, inline operations |
|
|
112
|
+
| **Progressive** | Skeleton for page-level, spinner for component-level operations | Complex apps with mixed loading contexts |
|
|
113
|
+
|
|
114
|
+
### Error states
|
|
115
|
+
|
|
116
|
+
- **Inline** — Error message appears near the failed element (forms, field validation)
|
|
117
|
+
- **Toast** — Transient notification for non-blocking errors (network retry, background sync)
|
|
118
|
+
- **Full-page** — Dedicated error page (404, 500, offline)
|
|
119
|
+
- **Error boundary** — Component-level fallback UI (prevents cascade, isolates failure)
|
|
120
|
+
|
|
121
|
+
### Empty states
|
|
122
|
+
|
|
123
|
+
- **Illustration + copy** — Custom illustration with descriptive text and CTA
|
|
124
|
+
- **Minimal** — Text-only with action link
|
|
125
|
+
- **Contextual** — Different empty states per archetype (empty dashboard vs. empty list)
|
|
126
|
+
|
|
127
|
+
**Copy tone**: Helpful / Playful / Neutral — must align with the confirmed design direction.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## design-system.md Output Template
|
|
132
|
+
|
|
133
|
+
The final `docs/plans/design-system.md` must have this exact structure:
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Design System
|
|
137
|
+
|
|
138
|
+
> **Confirmed Design Direction**: [confirmed direction from brand-guidelines]
|
|
139
|
+
> **Date**: [YYYY-MM-DD]
|
|
140
|
+
> **Status**: Locked
|
|
141
|
+
|
|
142
|
+
## Navigation Paradigm
|
|
143
|
+
[Confirmed paradigm with rationale]
|
|
144
|
+
[Surface-specific notes if multi-surface project]
|
|
145
|
+
|
|
146
|
+
## Layout Grid
|
|
147
|
+
|
|
148
|
+
| Breakpoint | Columns | Gutter | Max Width |
|
|
149
|
+
|------------|---------|--------|-----------|
|
|
150
|
+
| Mobile (≤768px) | [confirmed] | [confirmed] | [confirmed] |
|
|
151
|
+
| Tablet (769–1024px) | [confirmed] | [confirmed] | [confirmed] |
|
|
152
|
+
| Desktop (≥1025px) | [confirmed] | [confirmed] | [confirmed] |
|
|
153
|
+
|
|
154
|
+
**Grid type**: [confirmed]
|
|
155
|
+
|
|
156
|
+
## Page Archetypes
|
|
157
|
+
|
|
158
|
+
### [Archetype Name]
|
|
159
|
+
**Layout zones**: [nav] | [content] | [sidebar] | [action]
|
|
160
|
+
[Optional: ASCII wireframe for additional clarity]
|
|
161
|
+
|
|
162
|
+
[repeat for each confirmed archetype]
|
|
163
|
+
|
|
164
|
+
## Global Component Inventory
|
|
165
|
+
- `<ComponentName>` — [what it does / what it renders]
|
|
166
|
+
- `<ComponentName>` — [what it does / what it renders]
|
|
167
|
+
[repeat for each confirmed global component]
|
|
168
|
+
|
|
169
|
+
## Motion Language
|
|
170
|
+
**Style**: [confirmed style — Instant / Subtle / Balanced / Rich]
|
|
171
|
+
**Default duration**: [confirmed duration range]
|
|
172
|
+
**Default easing**: [confirmed easing function]
|
|
173
|
+
**Interaction transitions**: [confirmed interaction transition behavior]
|
|
174
|
+
**Reduced-motion policy**: All animations disabled when `prefers-reduced-motion: reduce` is active.
|
|
175
|
+
|
|
176
|
+
## Data Density Philosophy
|
|
177
|
+
**Default density**: [confirmed density — Compact / Spacious / Hybrid]
|
|
178
|
+
**Rules**: [when each density applies — per archetype if hybrid]
|
|
179
|
+
|
|
180
|
+
## Global State Design Language
|
|
181
|
+
|
|
182
|
+
### Loading States
|
|
183
|
+
- **Skeleton screens**: use when [confirmed rule]
|
|
184
|
+
- **Spinner/shimmer**: use when [confirmed rule]
|
|
185
|
+
- **Progressive**: use when [confirmed rule]
|
|
186
|
+
|
|
187
|
+
### Error States
|
|
188
|
+
- **Inline errors**: use when [confirmed rule — e.g., form field validation]
|
|
189
|
+
- **Toast errors**: use when [confirmed rule — e.g., non-blocking network errors]
|
|
190
|
+
- **Full-page errors**: use when [confirmed rule — e.g., 404, 500, offline]
|
|
191
|
+
- **Error boundaries**: use when [confirmed rule — e.g., component-level isolation]
|
|
192
|
+
|
|
193
|
+
### Empty States
|
|
194
|
+
**Illustration style**: [confirmed style]
|
|
195
|
+
**Copy tone**: [confirmed tone — must align with confirmed design direction]
|
|
196
|
+
**CTA**: Every empty state MUST include a primary call-to-action that guides the user toward populating the view.
|
|
197
|
+
[Per-archetype empty state rules if contextual]
|
|
198
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Design System Prerequisite Check
|
|
2
|
+
|
|
3
|
+
Run this check before writing any FE spec.
|
|
4
|
+
|
|
5
|
+
## Procedure
|
|
6
|
+
|
|
7
|
+
1. Check whether `docs/plans/design-system.md` exists.
|
|
8
|
+
2. If it does not exist → **stop** and tell the user: _"The design system has not been established yet. Run `/create-prd-design-system` to lock navigation paradigm, layout grid, page archetypes, and global state design language before writing FE specs."_
|
|
9
|
+
3. If it exists → read and extract all seven decision areas: Navigation Paradigm, Layout Grid, Page Archetypes, Global Component Inventory, Motion Language, Data Density Philosophy, and Global State Design Language.
|
|
10
|
+
4. The extracted decisions are **requirements** for this FE spec — any violation is a rubric failure under Dimension 11 (Design System Consistency).
|
|
11
|
+
|
|
12
|
+
## Fail-Fast Validation Checks
|
|
13
|
+
|
|
14
|
+
Verify the following before proceeding. If any check fails, classification must **stop** and instruct the user to run `/create-prd-design-system` to resolve drift before continuing:
|
|
15
|
+
|
|
16
|
+
- **Page archetype match**: At least one page archetype from `design-system.md` applies to the feature being classified. If no archetype matches, the design system is incomplete for this feature.
|
|
17
|
+
- **Global component / navigation compliance**: The navigation paradigm and Global Component Inventory sections are populated (not empty or placeholder). Every navigation element the FE spec will use must exist in the inventory — re-inventing global components is a rubric failure.
|
|
18
|
+
- **Global state design language compliance**: The Loading States, Error States, and Empty States sub-sections are populated with confirmed approaches. The FE spec must use these confirmed patterns — inventing loading/error/empty state patterns outside the design language is a rubric failure.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Domain Exhaustion Criteria
|
|
2
|
+
|
|
3
|
+
Final validation gate before vision compilation. All criteria must pass.
|
|
4
|
+
|
|
5
|
+
| Check | Criteria | Action if Fail |
|
|
6
|
+
|-------|----------|----------------|
|
|
7
|
+
| All leaf nodes ≥ `[DEEP]` | Every feature file in the tree is `[DEEP]` or `[EXHAUSTED]` | Drill remaining feature files |
|
|
8
|
+
| Status propagation correct | Parent nodes reflect their children's status | Update parent indexes |
|
|
9
|
+
| All Must Have features ≥ Level 2 | Every Must Have has sub-features AND edge cases AND Role Lens | Deep Think + drill |
|
|
10
|
+
| Deep Think zero hypotheses | Final Deep Think pass across ALL leaf nodes yields no new hypotheses | Present any new hypotheses, drill if confirmed |
|
|
11
|
+
| All CX files clean | No Medium/Low confidence entries remain at any level — all are High or rejected | Run synthesis questions on pending pairs |
|
|
12
|
+
| Role Lens complete | Every feature file has a populated Role Lens table | Fill missing Role Lens entries |
|
|
13
|
+
| User confirmation | User explicitly confirms "nothing else" for each domain | Ask for each under-explored domain |
|
|
14
|
+
|
|
15
|
+
## Execution Procedure
|
|
16
|
+
|
|
17
|
+
1. Walk the fractal tree. For each leaf node below `[DEEP]`:
|
|
18
|
+
- "Feature [X] in [domain] is still at [status]. Drill deeper or intentionally minimal?"
|
|
19
|
+
- If "drill" → return to `/ideate-discover`
|
|
20
|
+
- If "intentionally minimal" → note in feature file and proceed
|
|
21
|
+
|
|
22
|
+
2. Run **final Deep Think pass**: For each `[DEEP]` leaf node, apply the four Deep Think questions. Present any new hypotheses.
|
|
23
|
+
- If confirmed → drill, update feature files
|
|
24
|
+
- If zero hypotheses → mark `[EXHAUSTED]`, propagate status upward
|
|
25
|
+
|
|
26
|
+
3. Walk ALL CX files at every level. Resolve any Medium/Low confidence entries.
|
|
27
|
+
|
|
28
|
+
4. Verify all feature files have populated Role Lens tables.
|
|
29
|
+
|
|
30
|
+
5. Update `ideation-index.md` progress summary with final counts (total leaf nodes, exhausted count, CX entries confirmed).
|
|
31
|
+
|
|
32
|
+
## Proportionality Check
|
|
33
|
+
|
|
34
|
+
- **Rich inputs**: Total domain file content (all files combined) should be at least 30% of the original source document's line count. If short, identify what was lost.
|
|
35
|
+
- **All inputs**: Each domain with `[DEEP]` or `[EXHAUSTED]` status should have at least 3 sub-areas drilled with edge cases.
|
|
36
|
+
|
|
37
|
+
If proportionality fails, return to `/ideate-discover` for the under-explored areas.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Engagement Tier Protocol
|
|
2
|
+
|
|
3
|
+
**Purpose**: Single source of truth for engagement tier definitions and behavior. Workflows reference this instead of inlining tier blocks.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Tier Definitions
|
|
8
|
+
|
|
9
|
+
| Tier | When | User Experience |
|
|
10
|
+
|------|------|-----------------|
|
|
11
|
+
| **Auto** | 6+ well-constrained axes, experienced user, clear preferences | Agent uses Deep Think reasoning per axis, presents all decisions for batch review at shard end |
|
|
12
|
+
| **Hybrid** | 3-5 axes, some need discussion, some are obvious | Group related decisions, present key choices, auto-confirm obvious ones |
|
|
13
|
+
| **Interactive** | ≤2 axes, novel/uncertain domain, user requests it | Full interview — one decision at a time with options and trade-offs |
|
|
14
|
+
|
|
15
|
+
## Tier Selection
|
|
16
|
+
|
|
17
|
+
Read the user's context:
|
|
18
|
+
1. Count the number of decision axes in the current step
|
|
19
|
+
2. Assess user's familiarity (prior conversations, explicit preferences, technical depth)
|
|
20
|
+
3. Default to **Interactive** if uncertain
|
|
21
|
+
|
|
22
|
+
Present the proposed tier: "I'll approach this as [tier] — [brief rationale]. Want a different level of involvement?"
|
|
23
|
+
|
|
24
|
+
**HARD GATE**: Wait for user acknowledgment before proceeding. If the user requests a different tier, switch.
|
|
25
|
+
|
|
26
|
+
## Behavior by Tier
|
|
27
|
+
|
|
28
|
+
### Auto Tier
|
|
29
|
+
1. For each decision: apply Deep Think reasoning (consider constraints, project goals, prior decisions)
|
|
30
|
+
2. Write the decision with `[AUTO-CONFIRMED — reasoning: ...]` annotation
|
|
31
|
+
3. At shard end: present ALL auto-confirmed decisions in a summary table
|
|
32
|
+
4. User reviews batch — any rejection triggers Interactive re-presentation for that decision
|
|
33
|
+
5. Remove `[AUTO-CONFIRMED]` annotations after batch approval
|
|
34
|
+
|
|
35
|
+
### Hybrid Tier
|
|
36
|
+
1. Group related decisions (e.g., all auth decisions together)
|
|
37
|
+
2. For obvious decisions: present with recommendation, apply if user says "looks good"
|
|
38
|
+
3. For debatable decisions: present options with trade-offs, wait for selection
|
|
39
|
+
4. Follow the decision-confirmation-protocol for each group
|
|
40
|
+
|
|
41
|
+
### Interactive Tier
|
|
42
|
+
1. Present one decision at a time
|
|
43
|
+
2. Include 2-3 options with trade-offs and your recommendation
|
|
44
|
+
3. Wait for explicit selection
|
|
45
|
+
4. Follow the decision-confirmation-protocol for each decision
|
|
46
|
+
|
|
47
|
+
## Gate Classification
|
|
48
|
+
|
|
49
|
+
Not all decisions follow the engagement tier. Some are always user-facing regardless of tier:
|
|
50
|
+
|
|
51
|
+
| Gate Type | Always Interactive? | Examples |
|
|
52
|
+
|-----------|-------------------|----------|
|
|
53
|
+
| **Product** | Yes — user always decides | Feature scope, UX philosophy, pricing |
|
|
54
|
+
| **Architecture** | Yes — present options | Database choice, framework, hosting |
|
|
55
|
+
| **Structural** | No — tier-aware | File naming, directory organization |
|
|
56
|
+
| **Implementation** | No — agent decides | Import ordering, variable naming |
|
|
57
|
+
|
|
58
|
+
See `.agent/rules/decision-classification.md` for the full classification.
|