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.
- package/README.md +14 -0
- package/package.json +1 -1
- package/template/.agent/instructions/commands.md +8 -32
- package/template/.agent/instructions/patterns.md +3 -3
- package/template/.agent/instructions/tech-stack.md +71 -23
- package/template/.agent/instructions/workflow.md +12 -1
- package/template/.agent/rules/completion-checklist.md +6 -0
- package/template/.agent/rules/security-first.md +3 -3
- package/template/.agent/rules/vertical-slices.md +1 -1
- package/template/.agent/skill-library/MANIFEST.md +6 -0
- package/template/.agent/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
- package/template/.agent/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
- package/template/.agent/skills/api-versioning/SKILL.md +44 -298
- package/template/.agent/skills/api-versioning/references/typescript.md +157 -0
- package/template/.agent/skills/architecture-mapping/SKILL.md +7 -7
- package/template/.agent/skills/bootstrap-agents/SKILL.md +151 -152
- package/template/.agent/skills/clean-code/SKILL.md +64 -118
- package/template/.agent/skills/clean-code/references/typescript.md +126 -0
- package/template/.agent/skills/database-schema-design/SKILL.md +93 -317
- package/template/.agent/skills/database-schema-design/references/relational.md +228 -0
- package/template/.agent/skills/error-handling-patterns/SKILL.md +62 -557
- package/template/.agent/skills/error-handling-patterns/references/go.md +162 -0
- package/template/.agent/skills/error-handling-patterns/references/python.md +262 -0
- package/template/.agent/skills/error-handling-patterns/references/rust.md +112 -0
- package/template/.agent/skills/error-handling-patterns/references/typescript.md +178 -0
- package/template/.agent/skills/idea-extraction/SKILL.md +119 -12
- package/template/.agent/skills/logging-best-practices/SKILL.md +108 -767
- package/template/.agent/skills/logging-best-practices/references/go.md +49 -0
- package/template/.agent/skills/logging-best-practices/references/python.md +52 -0
- package/template/.agent/skills/logging-best-practices/references/typescript.md +215 -0
- package/template/.agent/skills/migration-management/SKILL.md +127 -311
- package/template/.agent/skills/migration-management/references/relational.md +214 -0
- package/template/.agent/skills/parallel-feature-development/SKILL.md +34 -43
- package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +1 -1
- package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +1 -1
- package/template/.agent/skills/prd-templates/SKILL.md +20 -3
- package/template/.agent/skills/prd-templates/references/be-spec-template.md +2 -2
- package/template/.agent/skills/prd-templates/references/decomposition-templates.md +2 -2
- package/template/.agent/skills/prd-templates/references/fe-spec-template.md +1 -1
- package/template/.agent/skills/prd-templates/references/ideation-domain-template.md +8 -2
- package/template/.agent/skills/prd-templates/references/ideation-index-template.md +25 -1
- package/template/.agent/skills/prd-templates/references/operational-templates.md +1 -1
- package/template/.agent/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -21
- package/template/.agent/skills/prd-templates/references/skill-loading-protocol.md +32 -0
- package/template/.agent/skills/prd-templates/references/slice-completion-gates.md +21 -0
- package/template/.agent/skills/prd-templates/references/spec-coverage-sweep.md +3 -3
- package/template/.agent/skills/prd-templates/references/tdd-testing-policy.md +39 -0
- package/template/.agent/skills/prd-templates/references/vision-template.md +1 -1
- package/template/.agent/skills/regex-patterns/SKILL.md +122 -540
- package/template/.agent/skills/regex-patterns/references/go.md +44 -0
- package/template/.agent/skills/regex-patterns/references/javascript.md +63 -0
- package/template/.agent/skills/regex-patterns/references/python.md +77 -0
- package/template/.agent/skills/regex-patterns/references/rust.md +43 -0
- package/template/.agent/skills/session-continuity/SKILL.md +11 -9
- package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +2 -2
- package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/05-session-close.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +57 -78
- package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.agent/skills/tdd-workflow/SKILL.md +94 -317
- package/template/.agent/skills/tdd-workflow/references/typescript.md +231 -0
- package/template/.agent/skills/testing-strategist/SKILL.md +74 -687
- package/template/.agent/skills/testing-strategist/references/typescript.md +328 -0
- package/template/.agent/skills/workflow-automation/SKILL.md +62 -154
- package/template/.agent/skills/workflow-automation/references/inngest.md +88 -0
- package/template/.agent/skills/workflow-automation/references/temporal.md +64 -0
- package/template/.agent/workflows/bootstrap-agents-fill.md +85 -143
- package/template/.agent/workflows/bootstrap-agents-provision.md +90 -107
- package/template/.agent/workflows/create-prd-architecture.md +16 -14
- package/template/.agent/workflows/create-prd-compile.md +11 -12
- package/template/.agent/workflows/create-prd-design-system.md +1 -1
- package/template/.agent/workflows/create-prd-security.md +9 -11
- package/template/.agent/workflows/create-prd-stack.md +10 -4
- package/template/.agent/workflows/create-prd.md +5 -6
- package/template/.agent/workflows/decompose-architecture-structure.md +3 -5
- package/template/.agent/workflows/decompose-architecture-validate.md +18 -1
- package/template/.agent/workflows/evolve-contract.md +11 -11
- package/template/.agent/workflows/ideate-discover.md +10 -6
- package/template/.agent/workflows/ideate-extract.md +61 -4
- package/template/.agent/workflows/ideate-validate.md +3 -3
- package/template/.agent/workflows/ideate.md +2 -2
- package/template/.agent/workflows/implement-slice-setup.md +25 -23
- package/template/.agent/workflows/implement-slice-tdd.md +51 -92
- package/template/.agent/workflows/implement-slice.md +4 -4
- package/template/.agent/workflows/plan-phase-preflight.md +6 -2
- package/template/.agent/workflows/plan-phase-write.md +6 -8
- package/template/.agent/workflows/resolve-ambiguity.md +1 -1
- package/template/.agent/workflows/update-architecture-map.md +22 -5
- package/template/.agent/workflows/validate-phase.md +26 -29
- package/template/.agent/workflows/verify-infrastructure.md +10 -10
- package/template/.agent/workflows/write-architecture-spec-design.md +17 -12
- package/template/.agent/workflows/write-be-spec-classify.md +25 -21
- package/template/.agent/workflows/write-be-spec.md +1 -1
- package/template/.agent/workflows/write-fe-spec-classify.md +6 -12
- package/template/.agent/workflows/write-fe-spec-write.md +1 -1
- package/template/AGENTS.md +1 -1
- package/template/GEMINI.md +3 -3
- package/template/docs/kit-architecture.md +34 -8
package/README.md
CHANGED
|
@@ -30,6 +30,20 @@ This installs the `.agent/` folder, `docs/` structure, and agent config files in
|
|
|
30
30
|
|
|
31
31
|
The pipeline tells you what to run next at every step. You never have to guess.
|
|
32
32
|
|
|
33
|
+
## Keeping Up to Date
|
|
34
|
+
|
|
35
|
+
The kit evolves independently of your project. To pull improvements into an existing project:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/sync-kit
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This performs a **semantic merge** — it applies new workflows, skills, and rules from the upstream kit while preserving your project-specific values (tech stack, validation commands, filled placeholders). It will never overwrite your project decisions.
|
|
42
|
+
|
|
43
|
+
- First sync does a full comparison; subsequent syncs are incremental (commit-scoped)
|
|
44
|
+
- Tracks sync state in `.agent/kit-sync.md` so it knows what changed since last update
|
|
45
|
+
- Flags any structural migrations needed (e.g., ideation format changes)
|
|
46
|
+
|
|
33
47
|
## Documentation
|
|
34
48
|
|
|
35
49
|
| Document | Contents |
|
package/package.json
CHANGED
|
@@ -2,44 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
<!--
|
|
4
4
|
THIS FILE IS A TEMPLATE.
|
|
5
|
-
The /bootstrap-agents workflow
|
|
6
|
-
|
|
5
|
+
The /bootstrap-agents workflow fills per-surface command sections below.
|
|
6
|
+
For single-surface projects, one flat section is written.
|
|
7
|
+
For multi-surface projects, one section per surface.
|
|
7
8
|
-->
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
<!-- Bootstrap writes command sections here. Each surface from the map gets its own section. -->
|
|
11
|
+
<!-- Single-surface projects get a flat layout (no surface header). -->
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
{{DEV_COMMAND}} # Start dev server
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Testing
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
{{TEST_COMMAND}} # Run all tests
|
|
21
|
-
{{TEST_WATCH_COMMAND}} # Watch mode
|
|
22
|
-
{{TEST_COVERAGE_COMMAND}} # With coverage report
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Linting & Formatting
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
{{LINT_COMMAND}} # Lint check
|
|
29
|
-
{{LINT_FIX_COMMAND}} # Lint with auto-fix
|
|
30
|
-
{{FORMAT_COMMAND}} # Format check
|
|
31
|
-
{{TYPE_CHECK_COMMAND}} # TypeScript type validation
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Build & Preview
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
{{BUILD_COMMAND}} # Production build
|
|
38
|
-
{{PREVIEW_COMMAND}} # Preview production build locally
|
|
39
|
-
```
|
|
13
|
+
{{COMMAND_SECTIONS}}
|
|
40
14
|
|
|
41
15
|
## Validation (run after every code change)
|
|
42
16
|
|
|
17
|
+
The validation command runs all checks for the primary surface. For multi-surface projects, run each surface's validation command.
|
|
18
|
+
|
|
43
19
|
// turbo
|
|
44
20
|
```bash
|
|
45
21
|
{{VALIDATION_COMMAND}}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
## TypeScript → skills: `clean-code`, `typescript-advanced-patterns`
|
|
10
10
|
- **Strict mode** everywhere — `strict: true` in tsconfig
|
|
11
11
|
- **Explicit types** — No `any`, no implicit returns
|
|
12
|
-
- **
|
|
12
|
+
- **{{CONTRACT_LIBRARY}} validation** — All API inputs validated with {{CONTRACT_LIBRARY}} schemas
|
|
13
13
|
- **Self-documenting** — Clear naming over comments
|
|
14
|
-
- **
|
|
14
|
+
- **{{CONTRACT_LIBRARY}} inference** — Derive types from {{CONTRACT_LIBRARY}} schemas (e.g., `z.infer<typeof schema>` for Zod, type inference for Pydantic)
|
|
15
15
|
|
|
16
16
|
## File Organization → skill: `clean-code`
|
|
17
17
|
- **File size limits** — Per-type limits (enforced by extensibility rule): 200 lines for components (.tsx), 300 for utilities (.ts), 150 for schemas (.schema.ts), 400 for tests (.test.ts), 100 for config files
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
> ⚠️ **Framework component patterns not yet configured.** Run /bootstrap-agents with FRAMEWORK_PATTERNS to fill this section. Until then, follow the framework's official documentation for component conventions and apply the naming and file organisation rules above.
|
|
25
25
|
|
|
26
26
|
## API & Data → skill: `rest-api-design`
|
|
27
|
-
- **Input validation** —
|
|
27
|
+
- **Input validation** — {{CONTRACT_LIBRARY}} schemas on every endpoint
|
|
28
28
|
- **Error format** — Consistent: `{ success: boolean, data?: T, error?: { code, message } }`
|
|
29
29
|
- **No magic strings** — Constants and enums for repeated values
|
|
30
30
|
- **Rate limiting** — On all public-facing endpoints
|
|
@@ -2,39 +2,87 @@
|
|
|
2
2
|
|
|
3
3
|
<!--
|
|
4
4
|
THIS FILE IS A TEMPLATE.
|
|
5
|
-
The /bootstrap-agents workflow
|
|
6
|
-
|
|
5
|
+
The /bootstrap-agents workflow fills the Surface Stack Map and Global Settings below.
|
|
6
|
+
Empty cells are marked with — (not applicable) or ⚠️ (not yet resolved).
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
|
-
## Stack
|
|
9
|
+
## Surface Stack Map
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
The surface stack map is the **single source of truth** for all per-surface stack decisions and cross-cutting project-wide skills. Every workflow that needs to load skills or run commands resolves them from this map — NOT from scattered placeholders.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### How Workflows Use This Map
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| **Auth provider** | {{AUTH_PROVIDER}} |
|
|
21
|
-
| **Hosting** | {{HOSTING}} |
|
|
22
|
-
| **CDN / Assets** | {{CDN_ASSETS}} |
|
|
23
|
-
| **CI/CD** | {{CICD}} |
|
|
24
|
-
| **Monitoring** | {{MONITORING}} |
|
|
15
|
+
**Surface-aware workflows** (spec-writing, implementation):
|
|
16
|
+
1. Determine the shard/slice's surface from its directory path or surface tag
|
|
17
|
+
2. Look up the row for that surface in the Per-Surface table below
|
|
18
|
+
3. Load all skills listed in the required column(s) — cells are comma-separated lists
|
|
19
|
+
4. Skip cells marked `—` (not applicable for this surface)
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
**Cross-cutting workflows** (validation, infrastructure verification):
|
|
22
|
+
1. Read the Cross-Cutting Skills table below
|
|
23
|
+
2. Load all skills listed in the required category
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
**Single-surface projects**: The Per-Surface table has exactly one row. All lookups resolve identically to a flat scalar model. No conditional logic needed.
|
|
26
|
+
|
|
27
|
+
### Per-Surface Skills
|
|
28
|
+
|
|
29
|
+
Each cell is a comma-separated list of skill directory names from `.agent/skills/`. Use `—` for "not applicable."
|
|
30
|
+
|
|
31
|
+
<!-- Bootstrap fills this table. One row per confirmed surface + a `shared` row for cross-surface backend. -->
|
|
32
|
+
|
|
33
|
+
| Surface | Languages | BE Frameworks | FE Frameworks | FE Design | ORMs | State Mgmt | Databases | Unit Tests | E2E Tests | Test Cmd | Validation Cmd | Lint Cmd | Build Cmd | Dev Cmd | Package Mgr |
|
|
34
|
+
|---------|-----------|---------------|---------------|-----------|------|------------|-----------|------------|-----------|----------|----------------|----------|-----------|---------|-------------|
|
|
35
|
+
| {{SURFACE_ROW}} |
|
|
36
|
+
|
|
37
|
+
> **Multi-value cells**: A surface can list multiple skills per column (e.g., `tailwind, vanilla-css` or `supabase, surrealdb, pglite`). Workflows iterate and load ALL listed skills.
|
|
38
|
+
|
|
39
|
+
> **Shared row**: The `shared` surface represents cross-surface backend infrastructure (API layer, shared database, etc.). Shards in `docs/plans/shared/` resolve against this row.
|
|
40
|
+
|
|
41
|
+
### Cross-Cutting Skills
|
|
42
|
+
|
|
43
|
+
Project-wide skills that don't vary per surface. Each value column is also comma-separated.
|
|
44
|
+
|
|
45
|
+
<!-- Bootstrap fills this table from project-wide tech stack decisions. -->
|
|
46
|
+
|
|
47
|
+
| Category | Skills |
|
|
48
|
+
|----------|--------|
|
|
49
|
+
| Auth | {{AUTH}} |
|
|
50
|
+
| CI/CD | {{CI_CD}} |
|
|
51
|
+
| Hosting | {{HOSTING}} |
|
|
52
|
+
| Security | {{SECURITY}} |
|
|
53
|
+
| API Design | {{API_DESIGN}} |
|
|
54
|
+
| Accessibility | {{ACCESSIBILITY}} |
|
|
55
|
+
| Contract Library | {{CONTRACT_LIBRARY}} |
|
|
56
|
+
|
|
57
|
+
### Map Verification
|
|
58
|
+
|
|
59
|
+
A valid surface stack map must satisfy:
|
|
60
|
+
1. **At least one row** in the Per-Surface table (even single-surface projects)
|
|
61
|
+
2. **Languages column is never empty** — every surface has at least one language
|
|
62
|
+
3. **Test Cmd column is never empty** — every surface must be testable
|
|
63
|
+
4. **No `⚠️` cells** — all skill resolution must be complete before implementation begins
|
|
64
|
+
|
|
65
|
+
Verification gates in `plan-phase` and `implement-slice` check these conditions. See `.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md` for the full verification procedure.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Global Settings
|
|
70
|
+
|
|
71
|
+
<!-- These are project-wide values, not per-surface. Bootstrap fills them. -->
|
|
72
|
+
|
|
73
|
+
| Setting | Value |
|
|
74
|
+
|---------|-------|
|
|
75
|
+
| Project Name | {{PROJECT_NAME}} |
|
|
76
|
+
| Description | {{DESCRIPTION}} |
|
|
77
|
+
| Stack Summary | {{TECH_STACK_SUMMARY}} |
|
|
78
|
+
| Surfaces | {{SURFACES}} |
|
|
79
|
+
| Architecture Doc | {{ARCHITECTURE_DOC}} |
|
|
80
|
+
|
|
81
|
+
---
|
|
34
82
|
|
|
35
83
|
## Installed Skills
|
|
36
84
|
|
|
37
|
-
<!-- Updated by /
|
|
85
|
+
<!-- Updated by /bootstrap-agents-provision after skill discovery and provisioning -->
|
|
38
86
|
{{INSTALLED_SKILLS}}
|
|
39
87
|
|
|
40
88
|
## Reference
|
|
@@ -6,6 +6,7 @@ Before taking any action on a task:
|
|
|
6
6
|
- Read the agent config file at project root (`AGENTS.md` for Antigravity, `GEMINI.md` for Gemini CLI, or equivalent for your agent)
|
|
7
7
|
- Read relevant `.agent/instructions/` files for the task type
|
|
8
8
|
- Check [Engineering Standards](../../docs/plans/ENGINEERING-STANDARDS.md) for quality bar — if this file doesn't exist yet, the pipeline hasn't reached /create-prd; run /ideate then /create-prd first
|
|
9
|
+
- **Session Resumption**: If `.agent/progress/index.md` exists, read `.agent/skills/session-continuity/protocols/01-session-resumption.md` and follow the **Session Resumption Protocol** to load cross-session context and identify the resumption point
|
|
9
10
|
|
|
10
11
|
## 2. Check Skills
|
|
11
12
|
- Scan `.agent/skills/` for applicable skills
|
|
@@ -27,11 +28,21 @@ Before taking any action on a task:
|
|
|
27
28
|
## 4. Validate (MANDATORY)
|
|
28
29
|
After **every** code change, run:
|
|
29
30
|
```bash
|
|
30
|
-
|
|
31
|
+
See `.agent/instructions/commands.md` for the validation command.
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
Do NOT mark a task complete until all validations pass.
|
|
34
35
|
|
|
36
|
+
## 5. Learn (MANDATORY)
|
|
37
|
+
|
|
38
|
+
After completing a workflow or substantial task:
|
|
39
|
+
|
|
40
|
+
- **Pattern Extraction**: Read `.agent/skills/session-continuity/protocols/04-pattern-extraction.md` and follow the **Pattern Extraction Protocol**. Reflect on what worked, what didn't, and log reusable patterns to `memory/patterns.md`. Skip only if the task was trivial (routine, nothing new learned).
|
|
41
|
+
- **Session Close**: Read `.agent/skills/session-continuity/protocols/05-session-close.md` and follow the **Session Close Protocol**. Write a session log to `.agent/progress/sessions/` so the next session can resume cleanly.
|
|
42
|
+
|
|
43
|
+
> These steps are **not optional**. They are what differentiate a pipeline that gets
|
|
44
|
+
> smarter over time from one that repeats the same mistakes.
|
|
45
|
+
|
|
35
46
|
## Principles
|
|
36
47
|
|
|
37
48
|
- **Ask before assuming** — Clarify ambiguous requirements
|
|
@@ -38,6 +38,11 @@ A unit of work is only DONE when:
|
|
|
38
38
|
- Overall progress fractions updated
|
|
39
39
|
4. **The Locks**: All task claims (`[!]` flags and `files:` blocks) are removed.
|
|
40
40
|
5. **The Memory**: Blockers and patterns are logged to `.agent/progress/memory/`.
|
|
41
|
+
- Follow `.agent/skills/session-continuity/protocols/04-pattern-extraction.md` — reflect on what worked, what didn't, classify, and write to `memory/patterns.md`
|
|
42
|
+
- Log any new blockers or resolutions to `memory/blockers.md`
|
|
43
|
+
- If decisions were made using Protocol 6 (Decision Effect Analysis), verify they're recorded in `memory/decisions.md`
|
|
44
|
+
6. **The Session Log**: A session close log exists in `.agent/progress/sessions/`.
|
|
45
|
+
- Follow `.agent/skills/session-continuity/protocols/05-session-close.md` — write what was accomplished, deferred, and where the next session should start
|
|
41
46
|
|
|
42
47
|
## Enforcement
|
|
43
48
|
|
|
@@ -46,3 +51,4 @@ updating progress files, **you may not skip it**.
|
|
|
46
51
|
|
|
47
52
|
If you skip the progress tracking steps, you have failed the task, regardless of how
|
|
48
53
|
good the code is.
|
|
54
|
+
|
|
@@ -14,15 +14,15 @@ trigger: always_on
|
|
|
14
14
|
| Rule | Implementation |
|
|
15
15
|
|------|---------------|
|
|
16
16
|
| **No PII in AI payloads** | User data (email, name, DOB, payment info) is NEVER included in AI model requests |
|
|
17
|
-
| **PII fields tagged in schemas** |
|
|
17
|
+
| **PII fields tagged in schemas** | {{CONTRACT_LIBRARY}} schemas mark sensitive fields for automated auditing |
|
|
18
18
|
| **No PII in logs** | Structured logging with automatic PII redaction |
|
|
19
19
|
| **No PII in error messages** | Error responses never include user data — use IDs and codes only |
|
|
20
20
|
| **Encrypted at rest** | All PII fields encrypted in database |
|
|
21
21
|
|
|
22
22
|
## Input Validation
|
|
23
23
|
|
|
24
|
-
- **Every** API endpoint validates input with
|
|
25
|
-
- **Every** form validates client-side with
|
|
24
|
+
- **Every** API endpoint validates input with {{CONTRACT_LIBRARY}} — no exceptions
|
|
25
|
+
- **Every** form validates client-side with {{CONTRACT_LIBRARY}} AND server-side with the same schema
|
|
26
26
|
- **No** raw user input reaches a database query — always parameterized
|
|
27
27
|
- **No** user input is rendered as HTML — always escaped
|
|
28
28
|
- **Rate limiting** — Every public-facing endpoint must have rate limiting configured. No exceptions. Use the project's configured rate limiting utility (see `patterns.md` for the approach). Unauthenticated endpoints must have stricter limits than authenticated ones.
|
|
@@ -25,7 +25,7 @@ trigger: always_on
|
|
|
25
25
|
A feature slice is complete when:
|
|
26
26
|
|
|
27
27
|
- [ ] Data layer: schema defined, permissions set, seed data exists
|
|
28
|
-
- [ ] API layer: endpoints exist, validated with
|
|
28
|
+
- [ ] API layer: endpoints exist, validated with {{CONTRACT_LIBRARY}}, tested
|
|
29
29
|
- [ ] User-facing: component renders, handles loading/error/empty states
|
|
30
30
|
- [ ] Admin: can create/read/update/delete the resource
|
|
31
31
|
- [ ] Tests pass at all levels (contract, unit, integration, E2E)
|
|
@@ -220,7 +220,13 @@ Note: `DESIGN_DIRECTION` does not copy a skill from the library — it fills pla
|
|
|
220
220
|
| Stack Key | Value Pattern | Library Path | Installed As |
|
|
221
221
|
|-----------|--------------|-------------|-------------|
|
|
222
222
|
| `CI_CD` | `*github*` | `stack/devops/github-actions` | `github-actions` |
|
|
223
|
+
| `CI_CD` | `*github*` | `stack/devops/git-workflow` | `git-workflow` |
|
|
224
|
+
| `CI_CD` | `*github*` | `stack/devops/git-advanced` | `git-advanced` |
|
|
223
225
|
| `CI_CD` | `*terraform*` | `stack/devops/terraform` | `terraform` |
|
|
226
|
+
| `CI_CD` | `*gitlab*` | `stack/devops/git-workflow` | `git-workflow` |
|
|
227
|
+
| `CI_CD` | `*gitlab*` | `stack/devops/git-advanced` | `git-advanced` |
|
|
228
|
+
| `CI_CD` | `*bitbucket*` | `stack/devops/git-workflow` | `git-workflow` |
|
|
229
|
+
| `CI_CD` | `*bitbucket*` | `stack/devops/git-advanced` | `git-advanced` |
|
|
224
230
|
|
|
225
231
|
### DevOps / Infrastructure
|
|
226
232
|
|