cfsa-antigravity 2.0.0 → 2.2.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 (116) 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/example.md +21 -0
  5. package/template/.agent/instructions/patterns.md +3 -3
  6. package/template/.agent/instructions/tech-stack.md +71 -23
  7. package/template/.agent/instructions/workflow.md +12 -1
  8. package/template/.agent/rules/completion-checklist.md +6 -0
  9. package/template/.agent/rules/security-first.md +3 -3
  10. package/template/.agent/rules/vertical-slices.md +1 -1
  11. package/template/.agent/skill-library/MANIFEST.md +6 -0
  12. package/template/.agent/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
  13. package/template/.agent/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
  14. package/template/.agent/skills/api-versioning/SKILL.md +44 -298
  15. package/template/.agent/skills/api-versioning/references/typescript.md +157 -0
  16. package/template/.agent/skills/architecture-mapping/SKILL.md +13 -13
  17. package/template/.agent/skills/bootstrap-agents/SKILL.md +151 -152
  18. package/template/.agent/skills/clean-code/SKILL.md +64 -118
  19. package/template/.agent/skills/clean-code/references/typescript.md +126 -0
  20. package/template/.agent/skills/database-schema-design/SKILL.md +93 -317
  21. package/template/.agent/skills/database-schema-design/references/relational.md +228 -0
  22. package/template/.agent/skills/error-handling-patterns/SKILL.md +62 -557
  23. package/template/.agent/skills/error-handling-patterns/references/go.md +162 -0
  24. package/template/.agent/skills/error-handling-patterns/references/python.md +262 -0
  25. package/template/.agent/skills/error-handling-patterns/references/rust.md +112 -0
  26. package/template/.agent/skills/error-handling-patterns/references/typescript.md +178 -0
  27. package/template/.agent/skills/idea-extraction/SKILL.md +322 -224
  28. package/template/.agent/skills/logging-best-practices/SKILL.md +108 -767
  29. package/template/.agent/skills/logging-best-practices/references/go.md +49 -0
  30. package/template/.agent/skills/logging-best-practices/references/python.md +52 -0
  31. package/template/.agent/skills/logging-best-practices/references/typescript.md +215 -0
  32. package/template/.agent/skills/migration-management/SKILL.md +127 -311
  33. package/template/.agent/skills/migration-management/references/relational.md +214 -0
  34. package/template/.agent/skills/parallel-feature-development/SKILL.md +34 -43
  35. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +1 -1
  36. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +2 -2
  37. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +1 -1
  38. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +2 -1
  39. package/template/.agent/skills/prd-templates/SKILL.md +23 -6
  40. package/template/.agent/skills/prd-templates/references/be-spec-template.md +2 -2
  41. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +2 -2
  42. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +2 -0
  43. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +1 -1
  44. package/template/.agent/skills/prd-templates/references/fractal-cx-template.md +58 -0
  45. package/template/.agent/skills/prd-templates/references/fractal-feature-template.md +93 -0
  46. package/template/.agent/skills/prd-templates/references/fractal-node-index-template.md +55 -0
  47. package/template/.agent/skills/prd-templates/references/ideation-crosscut-template.md +26 -47
  48. package/template/.agent/skills/prd-templates/references/ideation-index-template.md +47 -31
  49. package/template/.agent/skills/prd-templates/references/operational-templates.md +1 -1
  50. package/template/.agent/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -21
  51. package/template/.agent/skills/prd-templates/references/skill-loading-protocol.md +32 -0
  52. package/template/.agent/skills/prd-templates/references/slice-completion-gates.md +29 -0
  53. package/template/.agent/skills/prd-templates/references/spec-coverage-sweep.md +3 -3
  54. package/template/.agent/skills/prd-templates/references/tdd-testing-policy.md +39 -0
  55. package/template/.agent/skills/prd-templates/references/vision-template.md +8 -8
  56. package/template/.agent/skills/regex-patterns/SKILL.md +122 -540
  57. package/template/.agent/skills/regex-patterns/references/go.md +44 -0
  58. package/template/.agent/skills/regex-patterns/references/javascript.md +63 -0
  59. package/template/.agent/skills/regex-patterns/references/python.md +77 -0
  60. package/template/.agent/skills/regex-patterns/references/rust.md +43 -0
  61. package/template/.agent/skills/resolve-ambiguity/SKILL.md +1 -1
  62. package/template/.agent/skills/session-continuity/SKILL.md +11 -9
  63. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +2 -2
  64. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +1 -1
  65. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +1 -1
  66. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +1 -1
  67. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +57 -78
  68. package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
  69. package/template/.agent/skills/spec-writing/SKILL.md +1 -1
  70. package/template/.agent/skills/tdd-workflow/SKILL.md +94 -317
  71. package/template/.agent/skills/tdd-workflow/references/typescript.md +231 -0
  72. package/template/.agent/skills/testing-strategist/SKILL.md +74 -687
  73. package/template/.agent/skills/testing-strategist/references/typescript.md +328 -0
  74. package/template/.agent/skills/workflow-automation/SKILL.md +62 -154
  75. package/template/.agent/skills/workflow-automation/references/inngest.md +88 -0
  76. package/template/.agent/skills/workflow-automation/references/temporal.md +64 -0
  77. package/template/.agent/workflows/bootstrap-agents-fill.md +85 -143
  78. package/template/.agent/workflows/bootstrap-agents-provision.md +90 -107
  79. package/template/.agent/workflows/create-prd-architecture.md +23 -16
  80. package/template/.agent/workflows/create-prd-compile.md +11 -12
  81. package/template/.agent/workflows/create-prd-design-system.md +1 -1
  82. package/template/.agent/workflows/create-prd-security.md +9 -11
  83. package/template/.agent/workflows/create-prd-stack.md +10 -4
  84. package/template/.agent/workflows/create-prd.md +9 -9
  85. package/template/.agent/workflows/decompose-architecture-structure.md +4 -6
  86. package/template/.agent/workflows/decompose-architecture-validate.md +18 -1
  87. package/template/.agent/workflows/decompose-architecture.md +18 -3
  88. package/template/.agent/workflows/evolve-contract.md +11 -11
  89. package/template/.agent/workflows/evolve-feature-classify.md +14 -6
  90. package/template/.agent/workflows/ideate-discover.md +72 -107
  91. package/template/.agent/workflows/ideate-extract.md +84 -63
  92. package/template/.agent/workflows/ideate-validate.md +26 -22
  93. package/template/.agent/workflows/ideate.md +9 -9
  94. package/template/.agent/workflows/implement-slice-setup.md +25 -23
  95. package/template/.agent/workflows/implement-slice-tdd.md +73 -89
  96. package/template/.agent/workflows/implement-slice.md +4 -4
  97. package/template/.agent/workflows/plan-phase-preflight.md +6 -2
  98. package/template/.agent/workflows/plan-phase-write.md +6 -8
  99. package/template/.agent/workflows/remediate-pipeline-assess.md +2 -1
  100. package/template/.agent/workflows/resolve-ambiguity.md +2 -2
  101. package/template/.agent/workflows/update-architecture-map.md +22 -5
  102. package/template/.agent/workflows/validate-phase-quality.md +155 -0
  103. package/template/.agent/workflows/validate-phase-readiness.md +167 -0
  104. package/template/.agent/workflows/validate-phase.md +19 -157
  105. package/template/.agent/workflows/verify-infrastructure.md +10 -10
  106. package/template/.agent/workflows/write-architecture-spec-design.md +23 -14
  107. package/template/.agent/workflows/write-be-spec-classify.md +25 -21
  108. package/template/.agent/workflows/write-be-spec.md +1 -1
  109. package/template/.agent/workflows/write-fe-spec-classify.md +6 -12
  110. package/template/.agent/workflows/write-fe-spec-write.md +1 -1
  111. package/template/AGENTS.md +6 -2
  112. package/template/GEMINI.md +5 -3
  113. package/template/docs/README.md +10 -10
  114. package/template/docs/kit-architecture.md +126 -33
  115. package/template/docs/plans/ideation/README.md +8 -3
  116. package/template/.agent/skills/prd-templates/references/ideation-domain-template.md +0 -55
@@ -0,0 +1,231 @@
1
+ # TypeScript TDD Patterns
2
+
3
+ Language-specific patterns for the `tdd-workflow` skill. Read `SKILL.md` first for universal methodology.
4
+
5
+ ---
6
+
7
+ ## Test Frameworks
8
+
9
+ | Tool | Purpose |
10
+ |------|---------|
11
+ | **Jest** or **Vitest** | Unit + integration test runner |
12
+ | **React Testing Library** | Component testing (user-centric) |
13
+ | **Playwright** | E2E browser automation |
14
+
15
+ ## Commands
16
+
17
+ ```bash
18
+ # Run tests
19
+ npm test
20
+
21
+ # Watch mode
22
+ npm test -- --watch
23
+
24
+ # Coverage report
25
+ npm run test:coverage
26
+
27
+ # E2E tests
28
+ npx playwright test
29
+ ```
30
+
31
+ ## Unit Test Pattern (Jest/Vitest)
32
+
33
+ ```typescript
34
+ import { render, screen, fireEvent } from '@testing-library/react'
35
+ import { Button } from './Button'
36
+
37
+ describe('Button Component', () => {
38
+ it('renders with correct text', () => {
39
+ render(<Button>Click me</Button>)
40
+ expect(screen.getByText('Click me')).toBeInTheDocument()
41
+ })
42
+
43
+ it('calls onClick when clicked', () => {
44
+ const handleClick = jest.fn()
45
+ render(<Button onClick={handleClick}>Click</Button>)
46
+
47
+ fireEvent.click(screen.getByRole('button'))
48
+
49
+ expect(handleClick).toHaveBeenCalledTimes(1)
50
+ })
51
+
52
+ it('is disabled when disabled prop is true', () => {
53
+ render(<Button disabled>Click</Button>)
54
+ expect(screen.getByRole('button')).toBeDisabled()
55
+ })
56
+ })
57
+ ```
58
+
59
+ ## API Integration Test Pattern
60
+
61
+ ```typescript
62
+ import { NextRequest } from 'next/server'
63
+ import { GET } from './route'
64
+
65
+ describe('GET /api/markets', () => {
66
+ it('returns markets successfully', async () => {
67
+ const request = new NextRequest('http://localhost/api/markets')
68
+ const response = await GET(request)
69
+ const data = await response.json()
70
+
71
+ expect(response.status).toBe(200)
72
+ expect(data.success).toBe(true)
73
+ expect(Array.isArray(data.data)).toBe(true)
74
+ })
75
+
76
+ it('validates query parameters', async () => {
77
+ const request = new NextRequest('http://localhost/api/markets?limit=invalid')
78
+ const response = await GET(request)
79
+
80
+ expect(response.status).toBe(400)
81
+ })
82
+
83
+ it('handles database errors gracefully', async () => {
84
+ // Mock database failure
85
+ const request = new NextRequest('http://localhost/api/markets')
86
+ // Test error handling
87
+ })
88
+ })
89
+ ```
90
+
91
+ ## E2E Test Pattern (Playwright)
92
+
93
+ ```typescript
94
+ import { test, expect } from '@playwright/test'
95
+
96
+ test('user can search and filter markets', async ({ page }) => {
97
+ await page.goto('/')
98
+ await page.click('a[href="/markets"]')
99
+
100
+ await expect(page.locator('h1')).toContainText('Markets')
101
+
102
+ await page.fill('input[placeholder="Search markets"]', 'election')
103
+ await page.waitForTimeout(600)
104
+
105
+ const results = page.locator('[data-testid="market-card"]')
106
+ await expect(results).toHaveCount(5, { timeout: 5000 })
107
+
108
+ const firstResult = results.first()
109
+ await expect(firstResult).toContainText('election', { ignoreCase: true })
110
+
111
+ await page.click('button:has-text("Active")')
112
+ await expect(results).toHaveCount(3)
113
+ })
114
+ ```
115
+
116
+ ## File Organization
117
+
118
+ ```
119
+ src/
120
+ ├── components/
121
+ │ ├── Button/
122
+ │ │ ├── Button.tsx
123
+ │ │ ├── Button.test.tsx # Unit tests
124
+ │ │ └── Button.stories.tsx # Storybook
125
+ │ └── MarketCard/
126
+ │ ├── MarketCard.tsx
127
+ │ └── MarketCard.test.tsx
128
+ ├── app/
129
+ │ └── api/
130
+ │ └── markets/
131
+ │ ├── route.ts
132
+ │ └── route.test.ts # Integration tests
133
+ └── e2e/
134
+ ├── markets.spec.ts # E2E tests
135
+ ├── trading.spec.ts
136
+ └── auth.spec.ts
137
+ ```
138
+
139
+ ## Mocking External Services
140
+
141
+ ```typescript
142
+ // Supabase mock
143
+ jest.mock('@/lib/supabase', () => ({
144
+ supabase: {
145
+ from: jest.fn(() => ({
146
+ select: jest.fn(() => ({
147
+ eq: jest.fn(() => Promise.resolve({
148
+ data: [{ id: 1, name: 'Test Market' }],
149
+ error: null
150
+ }))
151
+ }))
152
+ }))
153
+ }
154
+ }))
155
+
156
+ // Redis mock
157
+ jest.mock('@/lib/redis', () => ({
158
+ searchMarketsByVector: jest.fn(() => Promise.resolve([
159
+ { slug: 'test-market', similarity_score: 0.95 }
160
+ ])),
161
+ checkRedisHealth: jest.fn(() => Promise.resolve({ connected: true }))
162
+ }))
163
+
164
+ // OpenAI mock
165
+ jest.mock('@/lib/openai', () => ({
166
+ generateEmbedding: jest.fn(() => Promise.resolve(
167
+ new Array(1536).fill(0.1) // Mock 1536-dim embedding
168
+ ))
169
+ }))
170
+ ```
171
+
172
+ ## Coverage Thresholds
173
+
174
+ ```json
175
+ {
176
+ "jest": {
177
+ "coverageThresholds": {
178
+ "global": {
179
+ "branches": 80,
180
+ "functions": 80,
181
+ "lines": 80,
182
+ "statements": 80
183
+ }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ ## CI/CD Integration
190
+
191
+ ```yaml
192
+ # GitHub Actions
193
+ - name: Run Tests
194
+ run: npm test -- --coverage
195
+ - name: Upload Coverage
196
+ uses: codecov/codecov-action@v3
197
+ ```
198
+
199
+ ## Assertion Examples
200
+
201
+ ### ❌ Shallow (BANNED)
202
+ ```typescript
203
+ expect(result).toBeDefined()
204
+ expect(result).toBeTruthy()
205
+ expect(response.status).toBe(200) // alone — doesn't verify body
206
+ ```
207
+
208
+ ### ✅ Deep (REQUIRED)
209
+ ```typescript
210
+ expect(result).toEqual({
211
+ id: expect.any(String),
212
+ name: 'Test Market',
213
+ status: 'active',
214
+ trades: expect.arrayContaining([
215
+ expect.objectContaining({ amount: 100 })
216
+ ])
217
+ })
218
+ ```
219
+
220
+ ## Selector Guidance
221
+
222
+ ### ❌ Brittle
223
+ ```typescript
224
+ await page.click('.css-class-xyz')
225
+ ```
226
+
227
+ ### ✅ Semantic
228
+ ```typescript
229
+ await page.click('button:has-text("Submit")')
230
+ await page.click('[data-testid="submit-button"]')
231
+ ```