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.
Files changed (51) hide show
  1. package/package.json +1 -1
  2. package/template/.agent/kit-sync.md +3 -3
  3. package/template/.agent/skills/idea-extraction/SKILL.md +61 -18
  4. package/template/.agent/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
  5. package/template/.agent/skills/prd-templates/references/be-spec-classification.md +41 -0
  6. package/template/.agent/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
  7. package/template/.agent/skills/prd-templates/references/constraint-exploration.md +41 -0
  8. package/template/.agent/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
  9. package/template/.agent/skills/prd-templates/references/decision-propagation.md +121 -0
  10. package/template/.agent/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
  11. package/template/.agent/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
  12. package/template/.agent/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
  13. package/template/.agent/skills/prd-templates/references/expansion-modes.md +27 -0
  14. package/template/.agent/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
  15. package/template/.agent/skills/prd-templates/references/input-classification.md +23 -0
  16. package/template/.agent/skills/prd-templates/references/map-guard-protocol.md +44 -0
  17. package/template/.agent/skills/prd-templates/references/persona-completeness-gate.md +20 -0
  18. package/template/.agent/skills/prd-templates/references/shard-boundary-analysis.md +76 -0
  19. package/template/.agent/skills/prd-templates/references/write-verification-protocol.md +57 -0
  20. package/template/.agent/workflows/create-prd-architecture.md +17 -23
  21. package/template/.agent/workflows/create-prd-compile.md +31 -22
  22. package/template/.agent/workflows/create-prd-design-system.md +18 -14
  23. package/template/.agent/workflows/create-prd-security.md +22 -24
  24. package/template/.agent/workflows/create-prd-stack.md +20 -11
  25. package/template/.agent/workflows/create-prd.md +27 -99
  26. package/template/.agent/workflows/decompose-architecture-structure.md +14 -4
  27. package/template/.agent/workflows/decompose-architecture-validate.md +29 -80
  28. package/template/.agent/workflows/decompose-architecture.md +27 -60
  29. package/template/.agent/workflows/evolve-contract.md +7 -2
  30. package/template/.agent/workflows/evolve-feature-cascade.md +34 -78
  31. package/template/.agent/workflows/evolve-feature-classify.md +22 -56
  32. package/template/.agent/workflows/ideate-discover.md +89 -100
  33. package/template/.agent/workflows/ideate-extract.md +42 -138
  34. package/template/.agent/workflows/ideate-validate.md +57 -133
  35. package/template/.agent/workflows/ideate.md +32 -19
  36. package/template/.agent/workflows/implement-slice-setup.md +15 -5
  37. package/template/.agent/workflows/implement-slice-tdd.md +21 -5
  38. package/template/.agent/workflows/plan-phase-write.md +30 -1
  39. package/template/.agent/workflows/propagate-decision-apply.md +23 -90
  40. package/template/.agent/workflows/propagate-decision-scan.md +20 -91
  41. package/template/.agent/workflows/remediate-pipeline-execute.md +6 -1
  42. package/template/.agent/workflows/validate-phase-quality.md +14 -3
  43. package/template/.agent/workflows/validate-phase-readiness.md +1 -1
  44. package/template/.agent/workflows/verify-infrastructure.md +2 -0
  45. package/template/.agent/workflows/write-architecture-spec-deepen.md +8 -2
  46. package/template/.agent/workflows/write-architecture-spec-design.md +11 -14
  47. package/template/.agent/workflows/write-be-spec-classify.md +26 -104
  48. package/template/.agent/workflows/write-be-spec-write.md +49 -3
  49. package/template/.agent/workflows/write-be-spec.md +1 -1
  50. package/template/.agent/workflows/write-fe-spec-write.md +62 -3
  51. 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: [LANGUAGE_SKILL, DATABASE_SKILLS, AUTH_SKILL, BACKEND_FRAMEWORK_SKILL, ORM_SKILL, UNIT_TESTING_SKILL]
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, tell the user to run `/write-architecture-spec` first.
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. **Hard stop** if any shard is not ✅:
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
- Not every IA shard produces the same output. Before writing anything, classify the shard:
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
- | Sub-feature | Expected endpoints | Data model(s) | Independent? |
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
- **Split criterion**: Two or more independent groups each have their own data model and could be assigned to a different developer without coordination → split into separate BE specs. Section header count alone is **NOT** the criterion — independence of data models and API surfaces is.
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
- If any required cells are empty → **stop** and tell the user: *"Surface stack map is not fully populated for the `{surface}` surface. Run `/create-prd` first to make tech stack decisions and trigger bootstrap provisioning, then return to `/write-be-spec`."*
47
+ Required map cells: Languages, Databases, BE Frameworks, ORMs, Unit Tests (all per-surface), Auth (cross-cutting).
93
48
 
94
- Only proceed to Step 3 when all required map cells are filled.
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 **Skill Loading Protocol** for the `write-be-spec-classify` workflow. Load all categories listed in its table for this workflow, plus these bundled skills:
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
- **Async/background processing (conditional)**: If the IA shard includes background processing, async operations, event-driven workflows, or queue-based processing, also read `.agent/skills/workflow-automation/SKILL.md`.
55
+ Also read bundled skills: `api-design-principles`, `error-handling-patterns`, `database-schema-design`, `migration-management`, `testing-strategist`, `logging-best-practices`.
107
56
 
108
- ### Ambiguity resolution
57
+ **Conditional**: If IA shard includes async/background/queue processing → also read `workflow-automation`.
109
58
 
110
- When writing the BE spec, if any requirement cannot be resolved from `ideation-index.md`, `architecture-design.md`, `data-placement-strategy.md`, or upstream IA specs, **do not guess**. Load and follow `.agent/skills/resolve-ambiguity/SKILL.md` to resolve it first.
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 the file at `docs/plans/be/index.md` (conventions template) and the file at `docs/plans/index.md` (master index, tech stack).
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 the file at `docs/plans/ia/[NN-shard-name].md` (the full IA shard).
68
+ Read `docs/plans/ia/[NN-shard-name].md` in full.
124
69
 
125
70
  ### 5b. Resolve cross-shard references
126
- Scan the primary shard for all cross-references to other shards (look for `See [shard NN](...)`, `defined in [shard NN](...)`, or `Related shards:` headers). For each reference:
127
- 1. Read the referenced section (not the entire shard — just the relevant section)
128
- 2. Note what content is being borrowed (data model? access rules? edge cases?)
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 the files in `docs/plans/ia/deep-dives/`.
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 the IA shard's testability section
148
- If the shard has a testability/acceptance criteria section, read it — these become the BE spec's performance targets and test requirements.
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 feature specs must follow their patterns. List the files matching `docs/plans/be/00-*.md` (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
- Include the expected endpoint inventory in the classification presentation. The user must verify split boundaries align with the actual API surface before approving.
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
- > **Seed the spec file**: After classification is approved, read `.agent/skills/prd-templates/references/be-spec-template.md` for the **BE Spec Seed Stub** template. Create the spec file at `docs/plans/be/[NN-feature-name].md` using the stub, filling in the classification details and Referenced Material Inventory from above.
89
+ **STOP** do NOT proceed until the user confirms.
169
90
 
170
- For structural reference classification (0 BE specs): confirm no write shard is needed and propose moving to the next IA shard instead.
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 stack category (e.g., QUEUE, CACHE, SEARCH, STORAGE)
88
- 2. Read `.agent/workflows/bootstrap-agents.md` and fire bootstrap with `PIPELINE_STAGE=write-be-spec` + the key-value pair
89
- 3. Confirm matching skill installed
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 stack category (e.g., CHARTS, ANIMATION)
75
- 2. Read `.agent/workflows/bootstrap-agents.md` and fire bootstrap with `PIPELINE_STAGE=write-fe-spec` + the key-value pair
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