cfsa-antigravity 2.7.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/.agent/kit-sync.md +3 -3
- package/template/.agent/skills/idea-extraction/SKILL.md +61 -18
- package/template/.agent/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
- package/template/.agent/skills/prd-templates/references/be-spec-classification.md +41 -0
- package/template/.agent/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
- package/template/.agent/skills/prd-templates/references/constraint-exploration.md +41 -0
- package/template/.agent/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
- package/template/.agent/skills/prd-templates/references/decision-propagation.md +121 -0
- package/template/.agent/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
- package/template/.agent/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
- package/template/.agent/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
- package/template/.agent/skills/prd-templates/references/expansion-modes.md +27 -0
- package/template/.agent/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
- package/template/.agent/skills/prd-templates/references/input-classification.md +23 -0
- package/template/.agent/skills/prd-templates/references/map-guard-protocol.md +44 -0
- package/template/.agent/skills/prd-templates/references/persona-completeness-gate.md +20 -0
- package/template/.agent/skills/prd-templates/references/shard-boundary-analysis.md +76 -0
- package/template/.agent/skills/prd-templates/references/write-verification-protocol.md +57 -0
- package/template/.agent/workflows/create-prd-architecture.md +17 -23
- package/template/.agent/workflows/create-prd-compile.md +31 -22
- package/template/.agent/workflows/create-prd-design-system.md +18 -14
- package/template/.agent/workflows/create-prd-security.md +22 -24
- package/template/.agent/workflows/create-prd-stack.md +20 -11
- package/template/.agent/workflows/create-prd.md +27 -99
- package/template/.agent/workflows/decompose-architecture-structure.md +14 -4
- package/template/.agent/workflows/decompose-architecture-validate.md +29 -80
- package/template/.agent/workflows/decompose-architecture.md +27 -60
- package/template/.agent/workflows/evolve-contract.md +7 -2
- package/template/.agent/workflows/evolve-feature-cascade.md +34 -78
- package/template/.agent/workflows/evolve-feature-classify.md +22 -56
- package/template/.agent/workflows/ideate-discover.md +89 -100
- package/template/.agent/workflows/ideate-extract.md +42 -138
- package/template/.agent/workflows/ideate-validate.md +57 -133
- package/template/.agent/workflows/ideate.md +32 -19
- package/template/.agent/workflows/implement-slice-setup.md +15 -5
- package/template/.agent/workflows/implement-slice-tdd.md +21 -5
- package/template/.agent/workflows/plan-phase-write.md +30 -1
- package/template/.agent/workflows/propagate-decision-apply.md +23 -90
- package/template/.agent/workflows/propagate-decision-scan.md +20 -91
- package/template/.agent/workflows/remediate-pipeline-execute.md +6 -1
- package/template/.agent/workflows/validate-phase-quality.md +14 -3
- package/template/.agent/workflows/validate-phase-readiness.md +1 -1
- package/template/.agent/workflows/verify-infrastructure.md +2 -0
- package/template/.agent/workflows/write-architecture-spec-deepen.md +8 -2
- package/template/.agent/workflows/write-architecture-spec-design.md +11 -14
- package/template/.agent/workflows/write-be-spec-classify.md +26 -104
- package/template/.agent/workflows/write-be-spec-write.md +49 -3
- package/template/.agent/workflows/write-be-spec.md +1 -1
- package/template/.agent/workflows/write-fe-spec-write.md +62 -3
- package/template/.agent/workflows/write-fe-spec.md +1 -1
|
@@ -11,7 +11,7 @@ pipeline:
|
|
|
11
11
|
successors: [write-be-spec-write]
|
|
12
12
|
skills: [api-design-principles, database-schema-design, error-handling-patterns, find-skills, logging-best-practices, migration-management, prd-templates, resolve-ambiguity, testing-strategist, workflow-automation]
|
|
13
13
|
calls-bootstrap: false
|
|
14
|
-
requires_placeholders: [
|
|
14
|
+
requires_placeholders: [DATABASE_SKILLS, SECURITY_SKILLS, SURFACES]
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
// turbo-all
|
|
@@ -20,152 +20,74 @@ requires_placeholders: [LANGUAGE_SKILL, DATABASE_SKILLS, AUTH_SKILL, BACKEND_FRA
|
|
|
20
20
|
|
|
21
21
|
Identify the target IA shard, classify it, load skills, and read all source material including cross-references and deep dives.
|
|
22
22
|
|
|
23
|
-
**Prerequisite**: IA shard must be complete (status ✅ in `docs/plans/ia/index.md`). If not
|
|
23
|
+
**Prerequisite**: IA shard must be complete (status ✅ in `docs/plans/ia/index.md`). If not → **STOP**: run `/write-architecture-spec` first.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
27
|
## 1. Verify IA layer is complete, then identify the target shard
|
|
28
28
|
|
|
29
|
-
Before identifying the target shard, verify the entire IA layer is ready:
|
|
30
|
-
|
|
31
29
|
1. Read `docs/plans/ia/index.md`
|
|
32
30
|
2. Check every shard's status column
|
|
33
|
-
3.
|
|
34
|
-
|
|
35
|
-
> ❌ **Cannot write BE spec — IA layer is incomplete.**
|
|
36
|
-
> The following shards are not yet complete:
|
|
37
|
-
> - [shard-name]: [status]
|
|
38
|
-
>
|
|
39
|
-
> Run `/write-architecture-spec` for each incomplete shard before proceeding to `/write-be-spec`.
|
|
40
|
-
|
|
41
|
-
**Why**: BE specs resolve cross-shard IA references. If referenced shards are still skeletons, the BE spec will contain gaps or guesses that cascade into FE specs and implementation. The cost of waiting for IA completion is hours; the cost of writing BE specs against incomplete IA is days of rework.
|
|
42
|
-
|
|
43
|
-
---
|
|
31
|
+
3. If any shard is not ✅ → **STOP**: list incomplete shards and redirect to `/write-architecture-spec`
|
|
44
32
|
|
|
45
33
|
Determine which IA shard to process. Read it in full before proceeding.
|
|
46
34
|
|
|
47
35
|
## 2. Classify the shard
|
|
48
36
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
| Classification | Description | BE Spec Output | How to Detect |
|
|
52
|
-
|---------------|-------------|----------------|---------------|
|
|
53
|
-
| **Feature domain** | Defines user interactions, data models, and API-facing behavior for a single cohesive domain | 1 BE spec | Has data model + user flows + access model that imply API endpoints |
|
|
54
|
-
| **Multi-domain** | Covers multiple distinct backend sub-systems that share a product surface but have independent APIs | N BE specs (split along sub-feature boundaries) | Section headers map to independent API surfaces; data models don't overlap between sections; could be developed by different teams |
|
|
55
|
-
| **Cross-cutting** | Defines shared patterns consumed by all feature specs (auth, API conventions, error handling) | 1 cross-cutting BE spec (`00-*`) | Content is about "how all endpoints work" not "what this feature does" |
|
|
56
|
-
| **Structural reference** | Maps structure, naming, or routing without defining API behavior | 0 BE specs | No data model, no user flows, no endpoints — just reference tables |
|
|
57
|
-
| **Composite** | Contains both a structural reference section AND feature behavior (e.g., URL mapping + vanity URL lifecycle) | Depends — feature portion may belong in another shard's BE spec | Look for cross-references pointing the feature content to its owning domain |
|
|
58
|
-
|
|
59
|
-
**Multi-domain split heuristic — sub-feature endpoint inventory:**
|
|
60
|
-
|
|
61
|
-
Before classifying a shard as multi-domain, build a **sub-feature endpoint inventory**:
|
|
37
|
+
Read `.agent/skills/prd-templates/references/be-spec-classification.md` — follow the classification types, multi-domain split heuristic, and detection criteria.
|
|
62
38
|
|
|
63
|
-
|
|
64
|
-
|-------------|-------------------|---------------|-------------|
|
|
65
|
-
| [sub-feature] | `POST /api/...`, `GET /api/...` | [table/collection names] | [Yes/No] |
|
|
66
|
-
| [sub-feature] | `PUT /api/...`, `DELETE /api/...` | [table/collection names] | [Yes/No] |
|
|
39
|
+
Present the classification to the user before proceeding. Include: classification type + reasoning, expected BE spec count, split boundaries (if multi-domain), Referenced Material Inventory.
|
|
67
40
|
|
|
68
|
-
**
|
|
69
|
-
|
|
70
|
-
**Present the classification to the user before proceeding.** Include:
|
|
71
|
-
- The classification and reasoning
|
|
72
|
-
- How many BE specs will be produced
|
|
73
|
-
- For multi-domain: the proposed split boundaries
|
|
74
|
-
- For structural reference: confirmation that no BE spec is needed
|
|
41
|
+
**STOP** — do NOT proceed until the user explicitly confirms the classification.
|
|
75
42
|
|
|
76
43
|
## 2.5. Verify surface stack map is populated
|
|
77
44
|
|
|
78
|
-
Read the surface stack map from `.agent/instructions/tech-stack.md`. Determine this shard's surface from its directory path
|
|
79
|
-
- `docs/plans/shared/be/` or `docs/plans/be/` → surface `shared`
|
|
80
|
-
- `docs/plans/web/be/` → surface `web`
|
|
81
|
-
- `docs/plans/desktop/be/` → surface `desktop`
|
|
82
|
-
- etc.
|
|
83
|
-
|
|
84
|
-
Check that the following map cells have filled values for this shard's surface:
|
|
85
|
-
- **Languages** (per-surface)
|
|
86
|
-
- **Databases** (per-surface)
|
|
87
|
-
- **BE Frameworks** (per-surface)
|
|
88
|
-
- **ORMs** (per-surface)
|
|
89
|
-
- **Unit Tests** (per-surface)
|
|
90
|
-
- **Auth** (cross-cutting)
|
|
45
|
+
Read the surface stack map from `.agent/instructions/tech-stack.md`. Determine this shard's surface from its directory path.
|
|
91
46
|
|
|
92
|
-
|
|
47
|
+
Required map cells: Languages, Databases, BE Frameworks, ORMs, Unit Tests (all per-surface), Auth (cross-cutting).
|
|
93
48
|
|
|
94
|
-
|
|
49
|
+
If any required cells are empty → **STOP**: run `/create-prd` first.
|
|
95
50
|
|
|
96
51
|
## 3. Load skill bundle
|
|
97
52
|
|
|
98
|
-
Read `.agent/skills/prd-templates/references/skill-loading-protocol.md` and follow the
|
|
99
|
-
- `.agent/skills/api-design-principles/SKILL.md`
|
|
100
|
-
- `.agent/skills/error-handling-patterns/SKILL.md`
|
|
101
|
-
- `.agent/skills/database-schema-design/SKILL.md`
|
|
102
|
-
- `.agent/skills/migration-management/SKILL.md`
|
|
103
|
-
- `.agent/skills/testing-strategist/SKILL.md`
|
|
104
|
-
- `.agent/skills/logging-best-practices/SKILL.md`
|
|
53
|
+
Read `.agent/skills/prd-templates/references/skill-loading-protocol.md` and follow the Skill Loading Protocol for `write-be-spec-classify`.
|
|
105
54
|
|
|
106
|
-
|
|
55
|
+
Also read bundled skills: `api-design-principles`, `error-handling-patterns`, `database-schema-design`, `migration-management`, `testing-strategist`, `logging-best-practices`.
|
|
107
56
|
|
|
108
|
-
|
|
57
|
+
**Conditional**: If IA shard includes async/background/queue processing → also read `workflow-automation`.
|
|
109
58
|
|
|
110
|
-
When
|
|
59
|
+
When any requirement is unresolvable → load and follow `.agent/skills/resolve-ambiguity/SKILL.md`.
|
|
111
60
|
|
|
112
61
|
## 4. Read reference documents
|
|
113
62
|
|
|
114
|
-
Read
|
|
115
|
-
|
|
116
|
-
Also read `docs/plans/data-placement-strategy.md` if it exists — this document specifies which entities live in which store and defines PII boundaries. Every BE spec must place data consistently with this strategy.
|
|
63
|
+
Read `docs/plans/be/index.md` (conventions), `docs/plans/index.md` (master index), and `docs/plans/data-placement-strategy.md` (entity placement + PII boundaries).
|
|
117
64
|
|
|
118
65
|
## 5. Read the IA source material
|
|
119
66
|
|
|
120
|
-
This is the most critical step. Read **all** of the following:
|
|
121
|
-
|
|
122
67
|
### 5a. Primary shard
|
|
123
|
-
Read
|
|
68
|
+
Read `docs/plans/ia/[NN-shard-name].md` in full.
|
|
124
69
|
|
|
125
70
|
### 5b. Resolve cross-shard references
|
|
126
|
-
Scan
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
3. Record the reference as: `Source: [shard-file.md] § [section-name] (lines N–M)`
|
|
130
|
-
|
|
131
|
-
Build a **Referenced Material Inventory**:
|
|
132
|
-
```
|
|
133
|
-
Primary: 09-playground.md (full shard)
|
|
134
|
-
Cross-refs:
|
|
135
|
-
- 02-account-architecture.md § Junior Account Controls (lines 680–706)
|
|
136
|
-
- 03-rbac-policies.md § Permission Taxonomy: playground.* (lines 45–52)
|
|
137
|
-
- 12-resources-settings.md § Credentials Management (lines 93–174)
|
|
138
|
-
```
|
|
71
|
+
Scan for cross-references. For each: read the referenced section, note borrowed content, record as: `Source: [file] § [section] (lines N–M)`.
|
|
72
|
+
|
|
73
|
+
Build a **Referenced Material Inventory**.
|
|
139
74
|
|
|
140
75
|
### 5c. Read deep dives
|
|
141
|
-
List
|
|
142
|
-
Identify which deep dives are referenced by the primary shard. **Read each referenced deep dive in full** — these contain architectural decisions (technology choices, protocol designs, phasing strategies) that the BE spec must implement. Extract and record:
|
|
143
|
-
- Key decisions (what was decided and why)
|
|
144
|
-
- Architectural constraints (what the BE spec must conform to)
|
|
145
|
-
- Data schemas or contracts defined in the deep dive
|
|
76
|
+
List `docs/plans/ia/deep-dives/`. Read each referenced deep dive in full. Extract key decisions, architectural constraints, data schemas.
|
|
146
77
|
|
|
147
|
-
### 5d. Read
|
|
148
|
-
If the shard has
|
|
78
|
+
### 5d. Read testability section
|
|
79
|
+
If the shard has testability/acceptance criteria → read for performance targets and test requirements.
|
|
149
80
|
|
|
150
81
|
## 6. Check cross-cutting specs
|
|
151
82
|
|
|
152
|
-
Read any completed cross-cutting specs
|
|
83
|
+
Read any completed cross-cutting specs at `docs/plans/be/00-*.md`.
|
|
153
84
|
|
|
154
85
|
## 7. Present classification and request approval
|
|
155
86
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
Call `notify_user` presenting:
|
|
159
|
-
- The classification type and reasoning (from Step 2)
|
|
160
|
-
- The number of BE specs to be produced
|
|
161
|
-
- The Referenced Material Inventory (from Step 5)
|
|
162
|
-
- For multi-domain splits: the proposed split boundaries
|
|
163
|
-
|
|
164
|
-
> **Do NOT proceed to `/write-be-spec-write` until the user confirms the classification is correct. For multi-domain splits, the user must confirm the split boundaries.**
|
|
165
|
-
|
|
166
|
-
Once approved, run `/write-be-spec-write`.
|
|
87
|
+
Use `notify_user` presenting: classification, expected spec count, Referenced Material Inventory, split boundaries (if applicable).
|
|
167
88
|
|
|
168
|
-
|
|
89
|
+
**STOP** — do NOT proceed until the user confirms.
|
|
169
90
|
|
|
170
|
-
|
|
91
|
+
After approval: read `.agent/skills/prd-templates/references/be-spec-template.md` → create spec file stub at `docs/plans/be/[NN-feature-name].md`.
|
|
171
92
|
|
|
93
|
+
For structural reference (0 BE specs): confirm no write shard needed, propose next IA shard.
|
|
@@ -21,6 +21,10 @@ Write the BE spec(s) to `docs/plans/be/`, update indexes, run quality checks, an
|
|
|
21
21
|
|
|
22
22
|
**Prerequisite**: Read the spec file at `docs/plans/be/[NN-feature-name].md`. The `## Classification` section and Referenced Material Inventory should be present from the classify shard. If the file does not exist or lacks a `## Classification` section, run `/write-be-spec-classify` first.
|
|
23
23
|
|
|
24
|
+
**Re-run detection**: If the spec file already has content beyond the classification stub (filled endpoint sections, schema definitions, middleware rules):
|
|
25
|
+
- Present current state and ask: "This BE spec has existing content. **Continue** (skip filled sections) or **redo specific sections** (which ones)?"
|
|
26
|
+
- Wait for user response before proceeding.
|
|
27
|
+
|
|
24
28
|
---
|
|
25
29
|
|
|
26
30
|
## 7. Write the spec to `docs/plans/be/[NN-feature-name].md`
|
|
@@ -55,6 +59,45 @@ If a shard was classified as **structural reference** with 0 BE specs, add a row
|
|
|
55
59
|
|
|
56
60
|
Read `.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md` and follow the **Spec Pipeline Update Protocol** to mark this shard's BE column as complete in `.agent/progress/spec-pipeline.md`.
|
|
57
61
|
|
|
62
|
+
## 9.5. Iterative deepening passes
|
|
63
|
+
|
|
64
|
+
Re-read the complete BE spec draft and run the following passes. Each pass may produce new content that reveals further gaps — repeat until a pass produces no meaningful additions.
|
|
65
|
+
|
|
66
|
+
### Pass 1: Cross-endpoint consistency
|
|
67
|
+
|
|
68
|
+
Read all endpoints in this spec together as a set:
|
|
69
|
+
- Do endpoints touching the same entity use consistent field names, casing, and types?
|
|
70
|
+
- Do error codes follow the same pattern across all endpoints? (e.g., if `POST` returns `409` for duplicates, does `PUT` also?)
|
|
71
|
+
- Do paginated endpoints use the same pagination shape (cursor vs offset, page size defaults)?
|
|
72
|
+
- Do all endpoints that create/update the same entity validate the same required fields?
|
|
73
|
+
|
|
74
|
+
Fix every inconsistency found.
|
|
75
|
+
|
|
76
|
+
### Pass 2: Sequencing and concurrency scenarios
|
|
77
|
+
|
|
78
|
+
For each write endpoint (POST, PUT, PATCH, DELETE):
|
|
79
|
+
- What happens if a client calls this endpoint twice in rapid succession with the same payload?
|
|
80
|
+
- What happens if two different users call this endpoint simultaneously for the same resource?
|
|
81
|
+
- What happens if a client calls endpoint A then endpoint B before A's response returns?
|
|
82
|
+
- What happens if the resource is deleted between when the client last read it and when they submit an update?
|
|
83
|
+
|
|
84
|
+
Add any new error codes, race condition handling, or idempotency requirements discovered.
|
|
85
|
+
|
|
86
|
+
### Pass 3: Failure cascade analysis
|
|
87
|
+
|
|
88
|
+
For each endpoint that mutates data:
|
|
89
|
+
- If this endpoint fails mid-transaction, what state is the database left in?
|
|
90
|
+
- Which other endpoints return stale or inconsistent data after this failure?
|
|
91
|
+
- Does the spec define rollback behavior or is it assumed?
|
|
92
|
+
- If this endpoint creates a resource that other endpoints depend on, what happens to those endpoints if creation fails silently?
|
|
93
|
+
|
|
94
|
+
Add any new transaction boundary requirements, rollback specifications, or consistency guarantees.
|
|
95
|
+
|
|
96
|
+
**Pass loop guard**: Track total pass count.
|
|
97
|
+
- Passes 1-3 → mandatory.
|
|
98
|
+
- Pass 4-5 → optional, run if prior pass produced significant additions.
|
|
99
|
+
- **After pass 5** → **STOP**: "5 deepening passes completed. Present remaining gaps to user: continue deepening or accept current spec depth?"
|
|
100
|
+
|
|
58
101
|
## 10. Cross-reference check
|
|
59
102
|
|
|
60
103
|
Verify:
|
|
@@ -84,9 +127,12 @@ Read `.agent/skills/session-continuity/protocols/ambiguity-gates.md` and run:
|
|
|
84
127
|
## 13. Check for new dependencies
|
|
85
128
|
|
|
86
129
|
If this BE spec introduces a technology not already in the project's tech stack:
|
|
87
|
-
1. Identify the
|
|
88
|
-
2. Read `.agent/workflows/bootstrap-agents.md` and
|
|
89
|
-
3.
|
|
130
|
+
1. Identify the technology (e.g., WebSocket, S3 storage, Stripe, Redis)
|
|
131
|
+
2. Read `.agent/workflows/bootstrap-agents.md` and invoke `/bootstrap-agents PIPELINE_STAGE=write-be-spec` + the new dependency key
|
|
132
|
+
3. **HARD GATE**: Follow the bootstrap verification protocol (`.agent/skills/prd-templates/references/bootstrap-verification-protocol.md`). If bootstrap fails:
|
|
133
|
+
- **1st failure** → retry once
|
|
134
|
+
- **2nd failure** → **STOP**: tell the user which dependency failed and ask: "Install manually, skip, or abort?"
|
|
135
|
+
4. Confirm the matching skill is installed before proceeding.
|
|
90
136
|
|
|
91
137
|
## 14. Request review and propose next steps
|
|
92
138
|
|
|
@@ -35,7 +35,7 @@ Conditionally look for:
|
|
|
35
35
|
- TypeScript advanced patterns skill (for complex contract types)
|
|
36
36
|
- Security hardening skill (for auth/RBAC specs)
|
|
37
37
|
|
|
38
|
-
If a needed skill is missing, check if a matching entry exists in `.agent/skill-library/MANIFEST.md`. Read `.agent/workflows/bootstrap-agents.md` and execute its utility instructions immediately with the appropriate stack key to install it.
|
|
38
|
+
If a needed skill is missing, check if a matching entry exists in `.agent/skill-library/MANIFEST.md`. Read `.agent/workflows/bootstrap-agents.md` and execute its utility instructions immediately with the appropriate stack key to install it. **HARD GATE**: Follow the bootstrap verification protocol (`.agent/skills/prd-templates/references/bootstrap-verification-protocol.md`). Confirm the matching skill is installed before proceeding.
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
|
|
@@ -21,6 +21,10 @@ Write the FE spec to `docs/plans/fe/`, update indexes, run quality checks, and p
|
|
|
21
21
|
|
|
22
22
|
**Prerequisite**: Read the spec file at `docs/plans/fe/[NN-feature-name].md`. The `## Classification` section, Referenced Material Inventory, and Design Requirements should be present from the classify shard. If the file lacks a `## Classification` section, run `/write-fe-spec-classify` first.
|
|
23
23
|
|
|
24
|
+
**Re-run detection**: If the spec file already has content beyond the classification stub (filled component sections, state definitions, routing rules):
|
|
25
|
+
- Present current state and ask: "This FE spec has existing content. **Continue** (skip filled sections) or **redo specific sections** (which ones)?"
|
|
26
|
+
- Wait for user response before proceeding.
|
|
27
|
+
|
|
24
28
|
---
|
|
25
29
|
|
|
26
30
|
## 6. Write the spec to `docs/plans/fe/[NN-feature-name].md`
|
|
@@ -42,6 +46,55 @@ Change the spec's status from 🔲 to ✅ in `docs/plans/fe/index.md`.
|
|
|
42
46
|
|
|
43
47
|
Read `.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md` and follow the **Spec Pipeline Update Protocol** (skip for cross-cutting specs).
|
|
44
48
|
|
|
49
|
+
## 8.5. Iterative deepening passes
|
|
50
|
+
|
|
51
|
+
Re-read the complete FE spec draft and run the following passes. Each pass may produce new content — repeat until a pass produces no meaningful additions.
|
|
52
|
+
|
|
53
|
+
### Pass 1: State synchronization
|
|
54
|
+
|
|
55
|
+
For each component that consumes data from an API:
|
|
56
|
+
- When the underlying data changes (via another component, another tab, or another user), how does this component learn about it? Polling? WebSocket? Manual refresh?
|
|
57
|
+
- If component A mutates data that component B displays, is the update path defined? Does B re-fetch, or does A broadcast?
|
|
58
|
+
- If multiple components share the same data, is the source of truth defined? (Global store? Prop drilling? Context?)
|
|
59
|
+
- After a mutation fails, does the component roll back optimistic updates? Is the rollback state defined?
|
|
60
|
+
|
|
61
|
+
Add any new state management rules, re-fetch triggers, or optimistic update rollback specifications.
|
|
62
|
+
|
|
63
|
+
### Pass 2: Degraded network behavior
|
|
64
|
+
|
|
65
|
+
For each data-fetching view:
|
|
66
|
+
- What does the component show when the API returns in 3+ seconds? (Loading state is specced — but is the threshold defined?)
|
|
67
|
+
- What does the component show when the API returns a network error vs a 500 vs a 4xx?
|
|
68
|
+
- What happens to in-progress form submissions if the network drops mid-request?
|
|
69
|
+
- Are there any retry behaviors? If so, how many retries, at what interval, with what user feedback?
|
|
70
|
+
|
|
71
|
+
Add any new loading thresholds, retry specifications, or network error differentiation.
|
|
72
|
+
|
|
73
|
+
### Pass 3: User flow sequencing
|
|
74
|
+
|
|
75
|
+
Trace each multi-step user flow across pages/views:
|
|
76
|
+
- Can a user navigate backward mid-flow (browser back button, breadcrumbs)? What state is preserved?
|
|
77
|
+
- Can a user open the same flow in two browser tabs? What happens on submission in both?
|
|
78
|
+
- Can a user bookmark or deep-link to a mid-flow page? What happens on direct navigation?
|
|
79
|
+
- If the user leaves a form and returns, is the data persisted? In local storage? Session storage? Not at all?
|
|
80
|
+
|
|
81
|
+
Add any new navigation guard rules, state persistence decisions, or deep-link handling.
|
|
82
|
+
|
|
83
|
+
### Pass 4: Responsive interaction gaps
|
|
84
|
+
|
|
85
|
+
For each component with responsive breakpoints defined:
|
|
86
|
+
- At mobile breakpoint, do hover-dependent interactions have touch equivalents?
|
|
87
|
+
- At tablet breakpoint, do side-by-side layouts still allow sufficient touch target sizing?
|
|
88
|
+
- Do modal/dialog components have appropriate mobile behavior (full-screen vs overlay)?
|
|
89
|
+
- Are swipe gestures defined for mobile where drag-and-drop exists on desktop?
|
|
90
|
+
|
|
91
|
+
Add any new touch interaction specs or mobile-specific behavior.
|
|
92
|
+
|
|
93
|
+
**Pass loop guard**: Track total pass count.
|
|
94
|
+
- Passes 1-4 → mandatory.
|
|
95
|
+
- Pass 5 → optional, run if prior pass produced significant additions.
|
|
96
|
+
- **After pass 5** → **STOP**: "5 deepening passes completed. Present remaining gaps to user: continue deepening or accept current spec depth?"
|
|
97
|
+
|
|
45
98
|
## 9. Cross-reference check
|
|
46
99
|
|
|
47
100
|
Verify:
|
|
@@ -71,9 +124,9 @@ Read `.agent/skills/session-continuity/protocols/ambiguity-gates.md` and run:
|
|
|
71
124
|
## 12. Check for new dependencies
|
|
72
125
|
|
|
73
126
|
If this FE spec introduces a new technology:
|
|
74
|
-
1. Identify the
|
|
75
|
-
2. Read `.agent/workflows/bootstrap-agents.md` and
|
|
76
|
-
3. Confirm matching skill installed
|
|
127
|
+
1. Identify the technology (e.g., chart library, map SDK, i18n framework)
|
|
128
|
+
2. Read `.agent/workflows/bootstrap-agents.md` and invoke `/bootstrap-agents PIPELINE_STAGE=write-fe-spec` + the new dependency key
|
|
129
|
+
3. **HARD GATE**: Follow the bootstrap verification protocol (`.agent/skills/prd-templates/references/bootstrap-verification-protocol.md`). Confirm the matching skill is installed before proceeding.
|
|
77
130
|
|
|
78
131
|
## 13. Request review and propose next steps
|
|
79
132
|
|
|
@@ -100,3 +153,9 @@ Use `notify_user` presenting:
|
|
|
100
153
|
2. Verify each is reachable from at least one navigation element
|
|
101
154
|
3. Verify navigation structure itself is specced
|
|
102
155
|
4. Flag orphan routes (specced but unreachable) — these block `/plan-phase`
|
|
156
|
+
|
|
157
|
+
**Orphan route resolution**: If orphan routes are found:
|
|
158
|
+
- List each orphan route with its spec source
|
|
159
|
+
- For each, ask: "Add to navigation (where?), remove from spec, or defer to a later phase?"
|
|
160
|
+
- Update the relevant FE spec immediately based on user decision
|
|
161
|
+
- Re-run the completeness check until 0 orphans remain
|
|
@@ -32,7 +32,7 @@ Check installed skills for frontend-relevant coverage:
|
|
|
32
32
|
- Web performance optimization skill
|
|
33
33
|
- i18n / localization skill (if needed)
|
|
34
34
|
|
|
35
|
-
If a needed skill is missing, check if a matching entry exists in `.agent/skill-library/MANIFEST.md`. Read `.agent/workflows/bootstrap-agents.md` and execute its utility instructions immediately with the appropriate stack key to install it.
|
|
35
|
+
If a needed skill is missing, check if a matching entry exists in `.agent/skill-library/MANIFEST.md`. Read `.agent/workflows/bootstrap-agents.md` and execute its utility instructions immediately with the appropriate stack key to install it. **HARD GATE**: Follow the bootstrap verification protocol (`.agent/skills/prd-templates/references/bootstrap-verification-protocol.md`). Confirm the matching skill is installed before proceeding.
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|