cfsa-antigravity 2.2.1 → 2.3.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/README.md +8 -0
- package/package.json +1 -1
- package/template/.agent/skills/idea-extraction/SKILL.md +65 -8
- package/template/.agent/workflows/ideate-discover.md +1 -1
- package/template/.agent/workflows/ideate-extract.md +50 -14
- package/template/.agent/workflows/ideate.md +17 -0
- package/template/.agent/workflows/implement-slice.md +1 -1
- package/template/.agent/workflows/plan-phase.md +7 -0
- package/template/.agent/workflows/sync-kit.md +1 -4
- package/template/.agent/workflows/validate-phase.md +1 -1
- package/template/.agent/workflows/write-architecture-spec.md +1 -1
- package/template/.agent/workflows/write-be-spec-write.md +1 -1
- package/template/.agent/workflows/write-be-spec.md +1 -1
- package/template/.agent/workflows/write-fe-spec.md +1 -1
- package/template/docs/plans/ideation/meta/.gitkeep +0 -0
- /package/template/{docs/plans/ideation/cross-cuts → .agent/skills/skill-creator/references}/.gitkeep +0 -0
- /package/template/{docs/plans/ideation/domains → .agent/skills/skill-creator/scripts}/.gitkeep +0 -0
package/README.md
CHANGED
|
@@ -22,6 +22,14 @@ This installs the `.agent/` folder, `docs/` structure, and agent config files in
|
|
|
22
22
|
| `cfsa-antigravity init --dry-run` | Preview what would be installed |
|
|
23
23
|
| `cfsa-antigravity init --path ./dir` | Install into specific directory |
|
|
24
24
|
|
|
25
|
+
### ⚠️ Important Note on `.gitignore`
|
|
26
|
+
If you are using AI-powered editors like **Cursor** or **Windsurf**, adding the `.agent/` folder to your `.gitignore` may prevent the IDE from indexing the workflows. This results in slash commands (like `/plan`, `/debug`) not appearing in the chat suggestion dropdown.
|
|
27
|
+
|
|
28
|
+
**Recommended Solution:**
|
|
29
|
+
To keep the `.agent/` folder local (not tracked by Git) while maintaining AI functionality:
|
|
30
|
+
1. Ensure `.agent/` is **NOT** in your project's `.gitignore`.
|
|
31
|
+
2. Instead, add it to your local exclude file: `.git/info/exclude`
|
|
32
|
+
|
|
25
33
|
## Get Started
|
|
26
34
|
|
|
27
35
|
```
|
package/package.json
CHANGED
|
@@ -191,6 +191,11 @@ The key question: **"Does this thing have its own internal features that interac
|
|
|
191
191
|
| Creating a domain for every feature mentioned | Grouping related features under their parent domain/sub-domain |
|
|
192
192
|
| Pre-creating 4 levels of empty folders | Creating depth reactively as complexity is discovered |
|
|
193
193
|
| Putting a shared domain in `shared/` when hub-and-spoke is active | Putting it inside the hub surface, with CX references from spokes |
|
|
194
|
+
| Using source document headings as the domain map | Extracting concepts from the content and classifying each through the gate |
|
|
195
|
+
| Creating a domain folder for every heading in the source | Only creating domain folders for concepts that pass the gate as true domains |
|
|
196
|
+
| Collapsing a rich multi-system area into a single domain | Recognizing 2+ interacting capabilities = sub-domain or promoted domain |
|
|
197
|
+
| Creating "Data Architecture" or "Tech Stack" as product domains | Noting architectural concerns for `/create-prd` — they are not product domains |
|
|
198
|
+
| Creating folders before presenting the classification to the user | Always presenting the classification table and getting user confirmation first |
|
|
194
199
|
|
|
195
200
|
---
|
|
196
201
|
|
|
@@ -268,16 +273,68 @@ Before starting, classify what the user has provided and select the right mode.
|
|
|
268
273
|
|
|
269
274
|
**The job:** Don't lose information. Organize, validate, and fill gaps.
|
|
270
275
|
|
|
271
|
-
**
|
|
276
|
+
> **CRITICAL**: Extraction mode uses the SAME interview question framework as Interview mode.
|
|
277
|
+
> The document is the interviewee. The only difference is that the document provides answers
|
|
278
|
+
> silently (the agent reads them) instead of interactively (the agent asks the user). Every
|
|
279
|
+
> answer extracted from the document must cite where in the document it came from. Every
|
|
280
|
+
> question the document doesn't answer becomes a real interview question for the user in Phase 2.
|
|
281
|
+
>
|
|
282
|
+
> **The source document's organization is a hint, not the truth.** Headings, section numbers,
|
|
283
|
+
> and document structure tell you where to LOOK for concepts. They do NOT tell you what those
|
|
284
|
+
> concepts ARE (domain, sub-domain, feature, cross-cut, or not-a-product-domain). The Node
|
|
285
|
+
> Classification Gate determines what each concept is. NEVER mirror source headings as domains.
|
|
286
|
+
|
|
287
|
+
**Process — Phase 1: Interview the Document** (silent — no user interaction)
|
|
288
|
+
|
|
272
289
|
1. Read/ingest every document provided
|
|
273
290
|
2. **Run Structural Classification** — determine project shape before creating any files
|
|
274
|
-
3.
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
291
|
+
3. **BLOCKING GATE — Extract concepts, not headings.** Read the entire document and identify every concept — a capability, system, feature, workflow, cross-cutting concern, or architectural note. For each concept, record:
|
|
292
|
+
- Concept name (what it is, in your words — not the source heading)
|
|
293
|
+
- Source location (line numbers or section reference — this is the citation)
|
|
294
|
+
- What the document says about it (summary of the content)
|
|
295
|
+
- How many distinct interacting capabilities it contains (the sub-domain test)
|
|
296
|
+
- Whether it is surface-exclusive, shared, or cross-cutting
|
|
297
|
+
Do NOT use source document headings as concept names unless they happen to be accurate after classification. The concept name must reflect what the thing actually IS after gate analysis.
|
|
298
|
+
4. **BLOCKING GATE — Classify every concept.** Run the Node Classification Gate on EACH extracted concept individually. For each concept, answer the gate questions explicitly:
|
|
299
|
+
- "Does it belong to an EXISTING domain?" → if YES, it's a sub-domain or feature of that domain
|
|
300
|
+
- "Does it have 2+ distinct capabilities that interact with each other?" → if YES, it's a sub-domain (folder); if NO, it's a feature (file)
|
|
301
|
+
- "Is it surface-exclusive?" → determines placement
|
|
302
|
+
- "Is it an architectural concern, not a product domain?" → note for `/create-prd`, do NOT create a domain
|
|
303
|
+
- "Is it a cross-cutting concern?" → log in CX files, do NOT create a domain
|
|
304
|
+
Produce a **classification table**:
|
|
305
|
+
|
|
306
|
+
| Concept | Source Location | Gate Result | Reasoning |
|
|
307
|
+
|---------|----------------|-------------|----------|
|
|
308
|
+
| Inventory System | lines 982–1017 | Sub-domain of Shop Software | 4+ interacting capabilities (purgatory model, alerts, visibility, pre-auth billing) |
|
|
309
|
+
| In-Platform Messaging | lines 759–788 | Feature of Consumer Platform | Single capability with role-based routing, no internal sub-features |
|
|
310
|
+
| Data Architecture | lines 1261–1282 | NOT a product domain | Architectural concern — database selection, sync strategy → note for /create-prd |
|
|
311
|
+
| Analytics & Insights | lines 730–758 | Cross-cutting concern | Three tiers serving all domains, no exclusive features of its own |
|
|
312
|
+
|
|
313
|
+
5. **BLOCKING GATE — Build proposed domain map.** From the classification table, group concepts into a proposed domain hierarchy:
|
|
314
|
+
- Only concepts classified as **domain** become domain folders
|
|
315
|
+
- Concepts classified as **sub-domain** nest inside their parent domain
|
|
316
|
+
- Concepts classified as **feature** become leaf files inside their parent
|
|
317
|
+
- Concepts classified as **cross-cut** go in the appropriate CX files
|
|
318
|
+
- Concepts classified as **not-a-product-domain** are noted in `meta/constraints.md` for `/create-prd`
|
|
319
|
+
6. **Identify gaps** — interview questions the document doesn't answer. These become Phase 2 interview questions.
|
|
320
|
+
|
|
321
|
+
**Process — Phase 2: Present and Interview the User**
|
|
322
|
+
|
|
323
|
+
7. **BLOCKING GATE — Present classification and get confirmation.** Show the user:
|
|
324
|
+
- The classification table (every concept, its source, its gate result, and reasoning)
|
|
325
|
+
- The proposed domain map (the folder hierarchy that would be created)
|
|
326
|
+
- The gap list (questions the document didn't answer)
|
|
327
|
+
Ask: "Here's how I classified your content. Does this look right?" **Wait for user confirmation or corrections. Do NOT create any folders until the user confirms.**
|
|
328
|
+
8. **Apply corrections** — if the user reclassifies any concept, update the table and domain map
|
|
329
|
+
9. **Create fractal folder structure** from the CONFIRMED domain map and seed with content from the source document
|
|
330
|
+
10. **Interview the user for gaps** — switch to Interview Mode for every gap identified in step 6. Use the same Deep Think questions, same exhaustion protocol, targeted at what the document didn't cover.
|
|
331
|
+
11. Run Deep Think: "Based on your content, I would also expect [X] and [Y]. Are those relevant?"
|
|
332
|
+
|
|
333
|
+
**Enforcement rules:**
|
|
334
|
+
- Do NOT create any domain folders before Step 9 (after user confirmation in Step 7)
|
|
335
|
+
- Do NOT mirror source document headings as domains — they are hints for finding concepts, not the classification itself
|
|
336
|
+
- Every concept in the classification table MUST show which gate questions were asked and how they were answered
|
|
337
|
+
- If a concept's classification is uncertain, present it to the user in Phase 2 with your best guess and reasoning — do not silently guess
|
|
281
338
|
|
|
282
339
|
### Expansion Mode — Thin Input
|
|
283
340
|
|
|
@@ -19,7 +19,7 @@ pipeline:
|
|
|
19
19
|
|
|
20
20
|
Explore domains through recursive breadth-before-depth with the Deep Think protocol. Write to the fractal folder structure — every node gets an index, CX file, and children.
|
|
21
21
|
|
|
22
|
-
**Prerequisite**: If invoked standalone, verify `docs/plans/ideation/ideation-index.md` exists with the fractal folder structure seeded. If not
|
|
22
|
+
**Prerequisite**: If invoked standalone, verify `docs/plans/ideation/ideation-index.md` exists with the fractal folder structure seeded. If this file does not exist → **STOP**: "Extraction output missing — the fractal folder structure has not been seeded. Run `/ideate-extract` first before proceeding to discovery." Do not proceed without this output.
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -38,9 +38,9 @@ Classify what the user has provided. This determines which mode the `idea-extrac
|
|
|
38
38
|
**For rich inputs (Extraction mode):**
|
|
39
39
|
1. Read/ingest all provided documents
|
|
40
40
|
2. **Proportionality check**: If source >50KB, total ideation output must be ≥30% of source line count
|
|
41
|
-
3.
|
|
42
|
-
4.
|
|
43
|
-
5. Identify gaps —
|
|
41
|
+
3. **Interview the document**: Run the interview question framework from `idea-extraction/SKILL.md` Extraction Mode Phase 1. Extract concepts (not headings) with citations. Classify every concept through the Node Classification Gate. Build the classification table and proposed domain map.
|
|
42
|
+
4. **BLOCKING GATE — Do NOT proceed to Step 1.5 until the classification table is built.** The classification table is a required artifact. No domain folders can be created without it.
|
|
43
|
+
5. Identify gaps — questions the document doesn't answer → these become Phase 2 user interview questions
|
|
44
44
|
6. Use idea-extraction skill to refine, not re-derive
|
|
45
45
|
|
|
46
46
|
**For thin inputs (Expansion mode):**
|
|
@@ -90,6 +90,29 @@ Before seeding, check whether `docs/plans/ideation/ideation-index.md` already ex
|
|
|
90
90
|
- **Start fresh** → archive to `docs/plans/ideation-archive-[timestamp]/`, then seed
|
|
91
91
|
- If it **does not exist**: proceed with seeding.
|
|
92
92
|
|
|
93
|
+
## 1.4.5. Classification Confirmation (Extraction mode only)
|
|
94
|
+
|
|
95
|
+
> **BLOCKING GATE**: Before creating ANY domain folder, you MUST complete this step.
|
|
96
|
+
> This step exists because the test revealed that the Node Classification Gate was being
|
|
97
|
+
> bypassed — the agent mirrored source document headings as domains instead of classifying
|
|
98
|
+
> each concept. This gate makes classification a hard prerequisite for folder creation.
|
|
99
|
+
|
|
100
|
+
1. **Verify the classification table exists.** Step 1 item 3 must have produced a completed classification table. If it doesn't exist, STOP — go back and run Extraction Mode Phase 1 from `idea-extraction/SKILL.md`.
|
|
101
|
+
2. **Present the classification table and proposed domain map to the user.** Show:
|
|
102
|
+
- Every concept with its source location, gate result, and reasoning
|
|
103
|
+
- The proposed domain hierarchy (what folders would be created and where)
|
|
104
|
+
- The gap list (questions the document didn't answer)
|
|
105
|
+
3. **Ask**: "Here's how I classified your content. Does this look right?"
|
|
106
|
+
4. **Wait for user confirmation or corrections.** Do NOT proceed until the user responds.
|
|
107
|
+
5. **Apply any corrections** the user provides — update the classification table and domain map.
|
|
108
|
+
|
|
109
|
+
**The classification table must show for each concept:**
|
|
110
|
+
- Concept name and source location (line numbers or section reference)
|
|
111
|
+
- Gate result: domain / sub-domain / feature / cross-cut / not-a-product-domain
|
|
112
|
+
- Gate reasoning: which gate questions were asked and how they were answered
|
|
113
|
+
|
|
114
|
+
**Do NOT mirror source document headings as domains.** Source headings are hints for finding concepts. The Node Classification Gate determines what each concept is.
|
|
115
|
+
|
|
93
116
|
## 1.5. Seed fractal `ideation/` folder
|
|
94
117
|
|
|
95
118
|
Read these templates:
|
|
@@ -101,13 +124,17 @@ Read these templates:
|
|
|
101
124
|
|
|
102
125
|
Read `.agent/skills/technical-writer/SKILL.md` and follow its methodology.
|
|
103
126
|
|
|
104
|
-
**
|
|
127
|
+
**ADDITIVE ONLY** — The `docs/plans/ideation/` directory already exists in the kit with `.gitkeep` and `README.md`. You are ADDING files into this existing directory. Do NOT delete, overwrite, or replace the directory itself. Do NOT remove any existing files. Create new files alongside what already exists.
|
|
128
|
+
|
|
129
|
+
**Create the base structure** (all project shapes). This is what the folder should contain AFTER seeding — kit-shipped files plus new pipeline files:
|
|
105
130
|
|
|
106
131
|
```
|
|
107
132
|
docs/plans/ideation/
|
|
108
|
-
├──
|
|
109
|
-
├──
|
|
110
|
-
|
|
133
|
+
├── .gitkeep ← KIT-SHIPPED — do not touch
|
|
134
|
+
├── README.md ← KIT-SHIPPED — do not touch
|
|
135
|
+
├── ideation-index.md ← NEW: super-index (from ideation-index-template)
|
|
136
|
+
├── ideation-cx.md ← NEW: global cross-cuts (from ideation-crosscut-template)
|
|
137
|
+
└── meta/ ← NEW: created by this step
|
|
111
138
|
├── problem-statement.md
|
|
112
139
|
├── personas.md
|
|
113
140
|
├── competitive-landscape.md
|
|
@@ -116,20 +143,29 @@ docs/plans/ideation/
|
|
|
116
143
|
|
|
117
144
|
**For multi-product projects**, additionally create `surfaces/` with sub-folders per surface.
|
|
118
145
|
|
|
119
|
-
**
|
|
146
|
+
**Post-seeding verification gate**: After creating all files, verify that `docs/plans/ideation/.gitkeep` and `docs/plans/ideation/README.md` still exist. If EITHER file is missing → **STOP**: "Kit-shipped files were destroyed during seeding. Restore `.gitkeep` and/or `README.md` to `docs/plans/ideation/` before continuing."
|
|
147
|
+
|
|
148
|
+
**Seed domains from CONFIRMED classification table** (not from source headings):
|
|
149
|
+
|
|
150
|
+
> **CRITICAL**: The domain list comes from the classification table confirmed in Step 1.4.5.
|
|
151
|
+
> Do NOT re-derive domains from the source document. Do NOT fall back to source headings.
|
|
152
|
+
> If Step 1.4.5 was not completed, STOP — you cannot seed without a confirmed classification.
|
|
120
153
|
|
|
121
|
-
For each domain
|
|
122
|
-
1.
|
|
154
|
+
For each concept classified as **domain** in the confirmed table:
|
|
155
|
+
1. Determine placement from the structural classification:
|
|
123
156
|
- Single-surface → create `docs/plans/ideation/{NN}-{slug}/`
|
|
124
157
|
- Hub-and-spoke → surface-exclusive in `surfaces/{surface}/{NN}-{slug}/`, shared in hub surface
|
|
125
158
|
- Peer → surface-exclusive in `surfaces/{surface}/{NN}-{slug}/`, shared in `shared/{NN}-{slug}/`
|
|
126
159
|
2. Create the domain folder with: `{slug}-index.md` + `{slug}-cx.md`
|
|
127
|
-
3. For
|
|
128
|
-
4.
|
|
160
|
+
3. For concepts classified as **sub-domain**, create sub-domain folders nested inside their parent domain
|
|
161
|
+
4. For concepts classified as **feature**, create feature files inside their parent domain or sub-domain
|
|
162
|
+
5. For concepts classified as **cross-cut**, add entries to the appropriate CX files (domain-level or global)
|
|
163
|
+
6. For concepts classified as **not-a-product-domain**, add notes to `meta/constraints.md` for `/create-prd`
|
|
164
|
+
7. Update `ideation-index.md` structure map with paths
|
|
129
165
|
|
|
130
|
-
**Seeding
|
|
166
|
+
**Seeding content by input type:**
|
|
131
167
|
|
|
132
|
-
- **Rich document**:
|
|
168
|
+
- **Rich document**: Seed each domain/sub-domain/feature with content from the source document using the source citations in the classification table. Run fidelity check: every major concept in the source must map to SOMETHING in the output (domain, sub-domain, feature, CX entry, or `/create-prd` note). Add `> Source: path/to/original.md` to index.
|
|
133
169
|
- **Chat transcript**: Noise filter → extract signal → seed domain folders with structured output.
|
|
134
170
|
- **Thin document**: Create domain folders with depth markers on feature files.
|
|
135
171
|
- **Verbal / one-liner**: Create domain folders with scaffolding. Feature files are `[SURFACE]`.
|
|
@@ -42,6 +42,23 @@ Transform a raw idea into comprehensive, structured ideation output through exha
|
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
+
## 0. Prerequisite gate
|
|
46
|
+
|
|
47
|
+
Check whether `docs/plans/ideation/ideation-index.md` already exists.
|
|
48
|
+
|
|
49
|
+
- **If it does NOT exist** → This is a fresh ideation. Proceed to Shard 1.
|
|
50
|
+
- **If it DOES exist** → **STOP**. Present to the user:
|
|
51
|
+
|
|
52
|
+
> ⚠️ **Ideation output already exists** at `docs/plans/ideation/ideation-index.md`.
|
|
53
|
+
>
|
|
54
|
+
> Running `/ideate` again will overwrite the existing ideation output.
|
|
55
|
+
>
|
|
56
|
+
> **Overwrite** (start fresh) or **Abort**?
|
|
57
|
+
|
|
58
|
+
**Do not proceed** to any shard until the user explicitly confirms "Overwrite." If the user says "Abort," end the workflow immediately.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
45
62
|
## Shard Overview
|
|
46
63
|
|
|
47
64
|
| # | Shard | What It Does |
|
|
@@ -45,7 +45,7 @@ Executes the TDD cycle (RED: write failing tests → GREEN: implement → REFACT
|
|
|
45
45
|
|
|
46
46
|
## Quality Gate
|
|
47
47
|
|
|
48
|
-
You may
|
|
48
|
+
**BLOCKING GATE** — You may NOT call `notify_user` until ALL items pass:
|
|
49
49
|
- [ ] All tests pass (Test Cmd from surface stack map)
|
|
50
50
|
- [ ] Full validation passes (Validation Cmd from surface stack map)
|
|
51
51
|
- [ ] All 4 progress tracking files updated (slice, phase, index, memory)
|
|
@@ -21,6 +21,13 @@ Break a phase into TDD vertical slices, each spanning all four surfaces (contrac
|
|
|
21
21
|
**Input**: Approved specs (IA + BE + FE) and the phasing section from architecture design
|
|
22
22
|
**Output**: Phase plan with ordered slices and acceptance criteria
|
|
23
23
|
|
|
24
|
+
**Prerequisite**: Approved specs across all three layers must exist. Verify:
|
|
25
|
+
1. `docs/plans/ia/index.md` exists and all shards show ✅
|
|
26
|
+
2. `docs/plans/be/index.md` exists and all specs show ✅
|
|
27
|
+
3. `docs/plans/fe/index.md` exists and all specs show ✅
|
|
28
|
+
|
|
29
|
+
If any index is missing or contains incomplete specs → **STOP**: "Spec layers are not complete. Run `/write-architecture-spec`, `/write-be-spec`, and/or `/write-fe-spec` to complete all specs before planning a phase."
|
|
30
|
+
|
|
24
31
|
---
|
|
25
32
|
|
|
26
33
|
## Shard 1: Pre-flight — `/plan-phase-preflight`
|
|
@@ -130,10 +130,7 @@ If `docs/plans/ideation/` doesn't exist, create the scaffold:
|
|
|
130
130
|
```
|
|
131
131
|
docs/plans/ideation/
|
|
132
132
|
├── .gitkeep
|
|
133
|
-
|
|
134
|
-
├── domains/.gitkeep
|
|
135
|
-
├── meta/.gitkeep
|
|
136
|
-
└── cross-cuts/.gitkeep
|
|
133
|
+
└── README.md ← copy from upstream
|
|
137
134
|
```
|
|
138
135
|
|
|
139
136
|
### 4.5c. Flag for re-ideation
|
|
@@ -45,7 +45,7 @@ Runs production readiness checks: API documentation sync, accessibility audit, p
|
|
|
45
45
|
|
|
46
46
|
## Quality Gate
|
|
47
47
|
|
|
48
|
-
You may
|
|
48
|
+
**BLOCKING GATE** — You may NOT call `notify_user` until ALL items pass:
|
|
49
49
|
- [ ] All code quality checks pass (Shard 1)
|
|
50
50
|
- [ ] All production readiness checks pass (Shard 2)
|
|
51
51
|
- [ ] Validation report written to `docs/audits/phase-N-validation.md`
|
|
@@ -51,7 +51,7 @@ Runs multiple deepening passes (cross-section consistency, "what if" scenarios,
|
|
|
51
51
|
|
|
52
52
|
## Quality Gate
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
**BLOCKING GATE** — Do NOT call `notify_user` or proceed to the next step until ALL items pass:
|
|
55
55
|
|
|
56
56
|
Read .agent/skills/code-review-pro/SKILL.md and apply its adversarial review discipline.
|
|
57
57
|
|
|
@@ -35,7 +35,7 @@ Write the BE spec(s) to `docs/plans/be/`, update indexes, run quality checks, an
|
|
|
35
35
|
|
|
36
36
|
**Rule**: For every unspecced expected endpoint, either add it to the spec immediately or add an explicit `[Deferred to Phase N — reason]` note in the Notes column. An empty Notes column for an unspecced endpoint is a spec failure.
|
|
37
37
|
|
|
38
|
-
**
|
|
38
|
+
**BLOCKING GATE**: Do NOT write the spec sections until every expected endpoint is either specced or explicitly deferred. This reconciliation table becomes the first section of the spec file after `## Classification`.
|
|
39
39
|
|
|
40
40
|
Read .agent/skills/technical-writer/SKILL.md and follow its methodology.
|
|
41
41
|
Read .agent/skills/spec-writing/SKILL.md and follow its completeness testing and cross-reference checking methodology.
|
|
@@ -62,7 +62,7 @@ Writes the BE spec(s) to `docs/plans/be/`, updates the BE index, runs cross-refe
|
|
|
62
62
|
|
|
63
63
|
## Quality Gate
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
**BLOCKING GATE** — Do NOT call `notify_user` or proceed to the next step until ALL items pass:
|
|
66
66
|
|
|
67
67
|
Read .agent/skills/code-review-pro/SKILL.md and apply its adversarial review discipline to each checklist item.
|
|
68
68
|
|
|
@@ -59,7 +59,7 @@ Writes the FE spec to `docs/plans/fe/`, updates the FE index, runs cross-referen
|
|
|
59
59
|
|
|
60
60
|
## Quality Gate
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
**BLOCKING GATE** — Do NOT call `notify_user` or proceed to the next step until ALL items pass:
|
|
63
63
|
|
|
64
64
|
Read .agent/skills/code-review-pro/SKILL.md and apply its adversarial review discipline to each checklist item.
|
|
65
65
|
|
|
File without changes
|
/package/template/{docs/plans/ideation/cross-cuts → .agent/skills/skill-creator/references}/.gitkeep
RENAMED
|
File without changes
|
/package/template/{docs/plans/ideation/domains → .agent/skills/skill-creator/scripts}/.gitkeep
RENAMED
|
File without changes
|