cfsa-antigravity 2.0.0 → 2.1.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 (99) hide show
  1. package/README.md +14 -0
  2. package/package.json +1 -1
  3. package/template/.agent/instructions/commands.md +8 -32
  4. package/template/.agent/instructions/patterns.md +3 -3
  5. package/template/.agent/instructions/tech-stack.md +71 -23
  6. package/template/.agent/instructions/workflow.md +12 -1
  7. package/template/.agent/rules/completion-checklist.md +6 -0
  8. package/template/.agent/rules/security-first.md +3 -3
  9. package/template/.agent/rules/vertical-slices.md +1 -1
  10. package/template/.agent/skill-library/MANIFEST.md +6 -0
  11. package/template/.agent/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
  12. package/template/.agent/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
  13. package/template/.agent/skills/api-versioning/SKILL.md +44 -298
  14. package/template/.agent/skills/api-versioning/references/typescript.md +157 -0
  15. package/template/.agent/skills/architecture-mapping/SKILL.md +7 -7
  16. package/template/.agent/skills/bootstrap-agents/SKILL.md +151 -152
  17. package/template/.agent/skills/clean-code/SKILL.md +64 -118
  18. package/template/.agent/skills/clean-code/references/typescript.md +126 -0
  19. package/template/.agent/skills/database-schema-design/SKILL.md +93 -317
  20. package/template/.agent/skills/database-schema-design/references/relational.md +228 -0
  21. package/template/.agent/skills/error-handling-patterns/SKILL.md +62 -557
  22. package/template/.agent/skills/error-handling-patterns/references/go.md +162 -0
  23. package/template/.agent/skills/error-handling-patterns/references/python.md +262 -0
  24. package/template/.agent/skills/error-handling-patterns/references/rust.md +112 -0
  25. package/template/.agent/skills/error-handling-patterns/references/typescript.md +178 -0
  26. package/template/.agent/skills/idea-extraction/SKILL.md +119 -12
  27. package/template/.agent/skills/logging-best-practices/SKILL.md +108 -767
  28. package/template/.agent/skills/logging-best-practices/references/go.md +49 -0
  29. package/template/.agent/skills/logging-best-practices/references/python.md +52 -0
  30. package/template/.agent/skills/logging-best-practices/references/typescript.md +215 -0
  31. package/template/.agent/skills/migration-management/SKILL.md +127 -311
  32. package/template/.agent/skills/migration-management/references/relational.md +214 -0
  33. package/template/.agent/skills/parallel-feature-development/SKILL.md +34 -43
  34. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +1 -1
  35. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +1 -1
  36. package/template/.agent/skills/prd-templates/SKILL.md +20 -3
  37. package/template/.agent/skills/prd-templates/references/be-spec-template.md +2 -2
  38. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +2 -2
  39. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +1 -1
  40. package/template/.agent/skills/prd-templates/references/ideation-domain-template.md +8 -2
  41. package/template/.agent/skills/prd-templates/references/ideation-index-template.md +25 -1
  42. package/template/.agent/skills/prd-templates/references/operational-templates.md +1 -1
  43. package/template/.agent/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -21
  44. package/template/.agent/skills/prd-templates/references/skill-loading-protocol.md +32 -0
  45. package/template/.agent/skills/prd-templates/references/slice-completion-gates.md +21 -0
  46. package/template/.agent/skills/prd-templates/references/spec-coverage-sweep.md +3 -3
  47. package/template/.agent/skills/prd-templates/references/tdd-testing-policy.md +39 -0
  48. package/template/.agent/skills/prd-templates/references/vision-template.md +1 -1
  49. package/template/.agent/skills/regex-patterns/SKILL.md +122 -540
  50. package/template/.agent/skills/regex-patterns/references/go.md +44 -0
  51. package/template/.agent/skills/regex-patterns/references/javascript.md +63 -0
  52. package/template/.agent/skills/regex-patterns/references/python.md +77 -0
  53. package/template/.agent/skills/regex-patterns/references/rust.md +43 -0
  54. package/template/.agent/skills/session-continuity/SKILL.md +11 -9
  55. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +2 -2
  56. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +1 -1
  57. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +1 -1
  58. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +1 -1
  59. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +57 -78
  60. package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
  61. package/template/.agent/skills/tdd-workflow/SKILL.md +94 -317
  62. package/template/.agent/skills/tdd-workflow/references/typescript.md +231 -0
  63. package/template/.agent/skills/testing-strategist/SKILL.md +74 -687
  64. package/template/.agent/skills/testing-strategist/references/typescript.md +328 -0
  65. package/template/.agent/skills/workflow-automation/SKILL.md +62 -154
  66. package/template/.agent/skills/workflow-automation/references/inngest.md +88 -0
  67. package/template/.agent/skills/workflow-automation/references/temporal.md +64 -0
  68. package/template/.agent/workflows/bootstrap-agents-fill.md +85 -143
  69. package/template/.agent/workflows/bootstrap-agents-provision.md +90 -107
  70. package/template/.agent/workflows/create-prd-architecture.md +16 -14
  71. package/template/.agent/workflows/create-prd-compile.md +11 -12
  72. package/template/.agent/workflows/create-prd-design-system.md +1 -1
  73. package/template/.agent/workflows/create-prd-security.md +9 -11
  74. package/template/.agent/workflows/create-prd-stack.md +10 -4
  75. package/template/.agent/workflows/create-prd.md +5 -6
  76. package/template/.agent/workflows/decompose-architecture-structure.md +3 -5
  77. package/template/.agent/workflows/decompose-architecture-validate.md +18 -1
  78. package/template/.agent/workflows/evolve-contract.md +11 -11
  79. package/template/.agent/workflows/ideate-discover.md +10 -6
  80. package/template/.agent/workflows/ideate-extract.md +61 -4
  81. package/template/.agent/workflows/ideate-validate.md +3 -3
  82. package/template/.agent/workflows/ideate.md +2 -2
  83. package/template/.agent/workflows/implement-slice-setup.md +25 -23
  84. package/template/.agent/workflows/implement-slice-tdd.md +51 -92
  85. package/template/.agent/workflows/implement-slice.md +4 -4
  86. package/template/.agent/workflows/plan-phase-preflight.md +6 -2
  87. package/template/.agent/workflows/plan-phase-write.md +6 -8
  88. package/template/.agent/workflows/resolve-ambiguity.md +1 -1
  89. package/template/.agent/workflows/update-architecture-map.md +22 -5
  90. package/template/.agent/workflows/validate-phase.md +26 -29
  91. package/template/.agent/workflows/verify-infrastructure.md +10 -10
  92. package/template/.agent/workflows/write-architecture-spec-design.md +17 -12
  93. package/template/.agent/workflows/write-be-spec-classify.md +25 -21
  94. package/template/.agent/workflows/write-be-spec.md +1 -1
  95. package/template/.agent/workflows/write-fe-spec-classify.md +6 -12
  96. package/template/.agent/workflows/write-fe-spec-write.md +1 -1
  97. package/template/AGENTS.md +1 -1
  98. package/template/GEMINI.md +3 -3
  99. package/template/docs/kit-architecture.md +34 -8
@@ -26,7 +26,12 @@ interactions — then present hypotheses to the user for confirmation or rejecti
26
26
  ## Output Structure
27
27
 
28
28
  This skill writes directly to the `docs/plans/ideation/` folder. No monolithic
29
- intermediary file.
29
+ intermediary file. The **folder structure is dynamic** — it adapts to the project's
30
+ complexity based on the Structural Classification decided in `ideate-extract`.
31
+
32
+ ### Single-Surface Layout (default)
33
+
34
+ Used for projects with one delivery platform (e.g., just a web app).
30
35
 
31
36
  ```
32
37
  docs/plans/ideation/
@@ -43,10 +48,109 @@ docs/plans/ideation/
43
48
  └── cross-cut-ledger.md ← Running ledger accumulated at every level
44
49
  ```
45
50
 
51
+ ### Multi-Product Layout (Option B)
52
+
53
+ Used when the project has **distinct products** with different tech stacks, different
54
+ users, or surface-exclusive features. Surfaces are top-level folders. Shared/cross-cutting
55
+ domains live in `domains/` as siblings.
56
+
57
+ ```
58
+ docs/plans/ideation/
59
+ ├── ideation-index.md
60
+ ├── meta/
61
+ │ ├── problem-statement.md
62
+ │ ├── personas.md
63
+ │ ├── competitive-landscape.md
64
+ │ └── constraints.md
65
+ ├── surfaces/ ← Only created for multi-product projects
66
+ │ ├── web/
67
+ │ │ ├── 01-accounts.md
68
+ │ │ └── 02-education-hub.md
69
+ │ ├── desktop/
70
+ │ │ ├── 01-operations.md
71
+ │ │ └── 02-inventory.md
72
+ │ └── mobile/
73
+ │ ├── 01-device-guardian.md
74
+ │ └── 02-device-locator.md
75
+ ├── domains/ ← Shared/cross-cutting domains
76
+ │ ├── 01-device-history.md
77
+ │ ├── 02-payments.md
78
+ │ └── 03-certification.md
79
+ └── cross-cuts/
80
+ └── cross-cut-ledger.md
81
+ ```
82
+
46
83
  Templates for each file type are in `.agent/skills/prd-templates/references/ideation-*.md`.
47
84
 
48
85
  ---
49
86
 
87
+ ## Structural Classification Protocol
88
+
89
+ > **This classification must happen BEFORE any domain files are written.**
90
+ > It determines the folder layout for the entire ideation phase. The classification
91
+ > is performed in `ideate-extract` (Step 1.3) and recorded in `ideation-index.md`.
92
+
93
+ ### Three Project Shapes
94
+
95
+ | Shape | Signals | Folder Structure |
96
+ |---|---|---|
97
+ | **Single-surface** | One platform, simple audience, "make me a website" | Flat `domains/` |
98
+ | **Multi-surface, mostly shared** | 2+ platforms, same tech stack, >80% shared logic | Flat `domains/` + surface annotation in domain frontmatter |
99
+ | **Multi-product** | 2+ platforms, different tech stacks/users, surface-exclusive features | `surfaces/` + `domains/` (Option B) |
100
+
101
+ ### Detection: When to Ask vs When to Detect
102
+
103
+ | Input Mode | How Structure Is Determined |
104
+ |---|---|
105
+ | **Interview** (verbal / no input) | Ask the user directly — see Interview Questions below |
106
+ | **Document** (rich / thin) | Scan for surface signals — see Detection Signals below |
107
+ | **One-liner** | Infer from the description — "make me a website" = single surface, skip the question |
108
+
109
+ ### Interview Questions (asked early, before domain exploration)
110
+
111
+ When the input doesn't make the project shape obvious, ask these two questions
112
+ **immediately after the opening problem statement question** — before any domain
113
+ exploration or file creation:
114
+
115
+ 1. **"Who are the distinct user types or audiences?"**
116
+ - Single audience (e.g., "small business owners") → likely single-surface
117
+ - Multiple distinct audiences (e.g., "consumers, repair technicians, shop owners") → likely multi-product
118
+
119
+ 2. **"What platforms or surfaces does this need to live on?"** (web, mobile, desktop, API, CLI)
120
+ - One platform → single-surface
121
+ - Multiple platforms, same stack → multi-surface-shared
122
+ - Multiple platforms, different stacks or exclusive features → multi-product
123
+
124
+ ### Detection Signals (for document input)
125
+
126
+ When processing a document, scan for these signals before creating any domain files:
127
+
128
+ | Signal | Example | Classification |
129
+ |---|---|---|
130
+ | Distinct platform names in section headings | "Consumer Web Platform", "Shop Software (Tauri)", "Native Mobile Apps" | Multi-product |
131
+ | Different tech stacks mentioned per surface | "Astro/React for web", "Rust/Tauri for desktop", "React Native for mobile" | Multi-product |
132
+ | Surface-exclusive features | "Board Viewer (desktop only)", "Device Guardian (Android only)" | Multi-product |
133
+ | Single platform implied | "The website will...", "Users visit the app and..." | Single-surface |
134
+ | Features described without surface context | "User authentication", "Dashboard", "Settings" | Single-surface (default) |
135
+
136
+ ### Domain Placement Rules (for multi-product)
137
+
138
+ Once the multi-product classification is confirmed, every domain must be assigned:
139
+
140
+ | Domain type | Placement | Test |
141
+ |---|---|---|
142
+ | **Surface-exclusive** | `surfaces/{surface-name}/NN-domain.md` | "Does this feature/capability exist ONLY on one surface?" |
143
+ | **Shared / cross-cutting** | `domains/NN-domain.md` | "Does this feature span 2+ surfaces?" |
144
+ | **Uncertain** | Ask the user: "Does [domain] belong to [surface] specifically, or is it shared across surfaces?" | — |
145
+
146
+ ### Classification Persistence
147
+
148
+ The classification is recorded in `ideation-index.md` under a `## Structural Classification`
149
+ section. All downstream steps (domain creation, discovery, validation) read this section
150
+ to determine where to place new domain files.
151
+
152
+ ---
153
+
50
154
  ## Input-Adaptive Modes
51
155
 
52
156
  Before starting, classify what the user has provided and select the right mode.
@@ -61,10 +165,11 @@ to organize it, validate it, and fill gaps.
61
165
 
62
166
  **Process:**
63
167
  1. Read/ingest every document provided
64
- 2. Identify natural domain boundaries in the content
65
- 3. Create the `ideation/` folder structure: one domain file per identified domain
66
- 4. Seed each domain file with the relevant content from the source
67
- 5. Present the organized inventory: "Here's what I extracted, organized by domain: [list]. Is anything missing?"
168
+ 2. **Run Structural Classification** scan for surface signals (see protocol above). Determine project shape before creating any files.
169
+ 3. Identify natural domain boundaries in the content
170
+ 4. Create the `ideation/` folder structure using the classified layout — one domain file per identified domain, placed in the correct folder (surface-specific or shared)
171
+ 5. Seed each domain file with the relevant content from the source
172
+ 6. Present the organized inventory: "Here's what I extracted, organized by domain: [list]. Is anything missing?"
68
173
  6. Identify gaps — domains or sub-topics not covered by the existing material
69
174
  7. For each gap, switch to Interview Mode for that topic
70
175
  8. Run Deep Think: "Based on the content you provided, I would also expect to see [X] and [Y]. Are those relevant?"
@@ -108,11 +213,12 @@ persistent, deep questioning.
108
213
 
109
214
  **Process:**
110
215
  1. Start: "In one sentence, what problem does this solve and for whom?"
111
- 2. From that sentence, identify key nouns these become initial domains
112
- 3. Create domain files for each identified domain
113
- 4. Run the Recursive Domain Exhaustion Protocol (below)
114
- 5. Use the decision classification rule to route questions appropriately
115
- 6. Don't stop until the deep think protocol generates zero new hypotheses
216
+ 2. **Run Structural Classification** ask the two interview questions (audiences + surfaces) immediately after the opening problem statement. Determine project shape before creating any files.
217
+ 3. From the problem statement + classification, identify key nouns — these become initial domains
218
+ 4. Create domain files for each identified domain, placing them in the correct folder based on the structural classification
219
+ 5. Run the Recursive Domain Exhaustion Protocol (below)
220
+ 6. Use the decision classification rule to route questions appropriately
221
+ 7. Don't stop until the deep think protocol generates zero new hypotheses
116
222
 
117
223
  **Interview techniques:**
118
224
  - **Challenge weak answers:** "You mentioned risk management — what happens when a user hits their position limit? What's the escalation path?"
@@ -194,8 +300,9 @@ not count-based.
194
300
 
195
301
  1. List all domains from the user's input
196
302
  2. **Deep Think:** "Based on this product type and industry, what domains would I expect to see that haven't been mentioned?" Present hypotheses to user.
197
- 3. Create a domain file for each confirmed domain (using the ideation-domain-template)
198
- 4. Update `ideation-index.md` with the complete domain map
303
+ 3. **For multi-product projects:** For each confirmed domain, determine placement — "Does this belong to a specific surface, or is it shared?" Create the domain file in the appropriate folder (`surfaces/{name}/` or `domains/`).
304
+ **For single-surface projects:** Create a domain file for each confirmed domain in `domains/` (using the ideation-domain-template).
305
+ 4. Update `ideation-index.md` with the complete domain map (paths reflect the actual folder structure)
199
306
  5. Note preliminary cross-cuts: "Domain A might touch Domain B because [reason]" → add to ledger as Level 0 entries
200
307
  6. **Gate:** User confirms the domain list before proceeding
201
308