cc-codeconductor 1.0.0 → 1.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.
- package/README.md +326 -87
- package/dist/core/compilation/compile-checker.d.ts +2 -0
- package/dist/core/loop/loop-engine.d.ts +3 -0
- package/dist/core/verification/verification-runner.d.ts +7 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3825 -597
- package/dist/library.js +195 -18
- package/dist/validation/schemas.d.ts +461 -44
- package/package.json +4 -1
- package/presets/agy/AGENTS.md +13 -9
- package/presets/agy/gates/pre-commit/GATE.md +5 -4
- package/presets/agy/hooks.json +2 -2
- package/presets/agy/scripts/invoke-hook.cjs +115 -0
- package/presets/agy/skills/backlog/SKILL.md +61 -0
- package/presets/agy/skills/cc-spec-mutation/SKILL.md +165 -0
- package/presets/agy/skills/cc-tdd-cycle/SKILL.md +3 -0
- package/presets/agy/skills/evaluation/SKILL.md +61 -2
- package/presets/agy/skills/openspec/SKILL.md +50 -16
- package/presets/agy/skills/security-ai-llm/SKILL.md +43 -0
- package/presets/agy/skills/security-blue-team/SKILL.md +43 -0
- package/presets/agy/skills/security-cloud/SKILL.md +43 -0
- package/presets/agy/skills/security-crypto/SKILL.md +43 -0
- package/presets/agy/skills/security-exploit-dev/SKILL.md +45 -0
- package/presets/agy/skills/security-grc/SKILL.md +43 -0
- package/presets/agy/skills/security-incident-response/SKILL.md +45 -0
- package/presets/agy/skills/security-log-analysis/SKILL.md +43 -0
- package/presets/agy/skills/security-malware-analysis/SKILL.md +44 -0
- package/presets/agy/skills/security-mobile/SKILL.md +43 -0
- package/presets/agy/skills/security-network/SKILL.md +43 -0
- package/presets/agy/skills/security-ot-ics/SKILL.md +43 -0
- package/presets/agy/skills/security-recon/SKILL.md +45 -0
- package/presets/agy/skills/security-red-team/SKILL.md +44 -0
- package/presets/agy/skills/security-reverse-engineering/SKILL.md +44 -0
- package/presets/agy/skills/security-soc-automation/SKILL.md +43 -0
- package/presets/agy/skills/security-threat-hunting/SKILL.md +43 -0
- package/presets/agy/skills/security-vuln-assessment/SKILL.md +45 -0
- package/presets/agy/skills/security-web/SKILL.md +44 -0
- package/presets/agy/skills/testing-tdd/SKILL.md +53 -0
- package/presets/agy/skills/using-cc-skills/SKILL.md +48 -0
- package/presets/agy/workflows/cc-api-contract.md +14 -0
- package/presets/agy/workflows/cc-ask.md +2 -1
- package/presets/agy/workflows/cc-backlog.md +69 -0
- package/presets/agy/workflows/cc-db-migration.md +14 -0
- package/presets/agy/workflows/cc-explore.md +1 -1
- package/presets/agy/workflows/cc-feature.md +18 -0
- package/presets/agy/workflows/cc-fix.md +14 -0
- package/presets/agy/workflows/cc-iterative.md +14 -0
- package/presets/agy/workflows/cc-openspec.md +17 -1
- package/presets/agy/workflows/cc-scorecard.md +2 -0
- package/presets/agy/workflows/cc-security.md +180 -0
- package/presets/agy/workflows/cc-spec-mutation.md +191 -0
- package/presets/agy/workflows/cc-tdd-cycle.md +14 -0
- package/presets/claude/CLAUDE.md +4 -0
- package/presets/claude/commands/cc/api-contract.md +14 -0
- package/presets/claude/commands/cc/ask.md +2 -1
- package/presets/claude/commands/cc/backlog.md +104 -0
- package/presets/claude/commands/cc/db-migration.md +14 -0
- package/presets/claude/commands/cc/explore.md +1 -1
- package/presets/claude/commands/cc/feature.md +18 -0
- package/presets/claude/commands/cc/fix.md +17 -0
- package/presets/claude/commands/cc/iterative.md +14 -0
- package/presets/claude/commands/cc/openspec.md +30 -1
- package/presets/claude/commands/cc/review.md +3 -0
- package/presets/claude/commands/cc/scorecard.md +2 -0
- package/presets/claude/commands/cc/security.md +179 -0
- package/presets/claude/commands/cc/spec-mutation.md +190 -0
- package/presets/claude/commands/cc/tdd-cycle.md +17 -0
- package/presets/claude/gates/pre-commit/GATE.md +5 -4
- package/presets/claude/settings.json +13 -11
- package/presets/claude/skills/backlog/SKILL.md +61 -0
- package/presets/claude/skills/evaluation/SKILL.md +47 -24
- package/presets/claude/skills/openspec/SKILL.md +46 -34
- package/presets/claude/skills/security/SKILL.md +382 -0
- package/presets/claude/skills/security-ai-llm/SKILL.md +43 -0
- package/presets/claude/skills/security-blue-team/SKILL.md +43 -0
- package/presets/claude/skills/security-cloud/SKILL.md +43 -0
- package/presets/claude/skills/security-crypto/SKILL.md +43 -0
- package/presets/claude/skills/security-exploit-dev/SKILL.md +45 -0
- package/presets/claude/skills/security-grc/SKILL.md +43 -0
- package/presets/claude/skills/security-incident-response/SKILL.md +45 -0
- package/presets/claude/skills/security-log-analysis/SKILL.md +43 -0
- package/presets/claude/skills/security-malware-analysis/SKILL.md +44 -0
- package/presets/claude/skills/security-mobile/SKILL.md +43 -0
- package/presets/claude/skills/security-network/SKILL.md +43 -0
- package/presets/claude/skills/security-ot-ics/SKILL.md +43 -0
- package/presets/claude/skills/security-recon/SKILL.md +45 -0
- package/presets/claude/skills/security-red-team/SKILL.md +44 -0
- package/presets/claude/skills/security-reverse-engineering/SKILL.md +44 -0
- package/presets/claude/skills/security-soc-automation/SKILL.md +43 -0
- package/presets/claude/skills/security-threat-hunting/SKILL.md +43 -0
- package/presets/claude/skills/security-vuln-assessment/SKILL.md +45 -0
- package/presets/claude/skills/security-web/SKILL.md +44 -0
- package/presets/claude/skills/testing-tdd/SKILL.md +53 -0
- package/presets/claude/skills/using-cc-skills/SKILL.md +48 -0
- package/presets/codex/AGENTS.md +16 -12
- package/presets/codex/commands/cc-ask.md +2 -1
- package/presets/codex/gates/pre-commit/GATE.md +5 -4
- package/presets/codex/skills/backlog/SKILL.md +61 -0
- package/presets/codex/skills/cc-api-contract/SKILL.md +87 -0
- package/presets/codex/skills/cc-backlog/SKILL.md +108 -0
- package/presets/codex/skills/cc-clarify/SKILL.md +36 -0
- package/presets/codex/skills/cc-council/SKILL.md +92 -0
- package/presets/codex/skills/cc-db-migration/SKILL.md +88 -0
- package/presets/codex/skills/cc-explore/SKILL.md +40 -0
- package/presets/codex/skills/cc-feature/SKILL.md +154 -0
- package/presets/codex/skills/cc-fix/SKILL.md +165 -0
- package/presets/codex/skills/cc-handoff/SKILL.md +45 -0
- package/presets/codex/skills/cc-iterative/SKILL.md +150 -0
- package/presets/codex/skills/cc-openspec/SKILL.md +191 -0
- package/presets/codex/skills/cc-pagespeed/SKILL.md +124 -0
- package/presets/codex/skills/cc-prototype/SKILL.md +42 -0
- package/presets/codex/skills/cc-refactor/SKILL.md +163 -0
- package/presets/codex/skills/cc-review/SKILL.md +152 -0
- package/presets/codex/skills/cc-scorecard/SKILL.md +82 -0
- package/presets/codex/skills/cc-security/SKILL.md +182 -0
- package/presets/codex/skills/cc-spec-mutation/SKILL.md +192 -0
- package/presets/codex/skills/cc-tdd-cycle/SKILL.md +266 -0
- package/presets/codex/skills/cc-test-plan/SKILL.md +153 -0
- package/presets/codex/skills/cc-triage/SKILL.md +38 -0
- package/presets/codex/skills/evaluation/SKILL.md +65 -0
- package/presets/codex/skills/openspec/SKILL.md +66 -0
- package/presets/codex/skills/testing-tdd/SKILL.md +53 -0
- package/presets/codex/skills/using-cc-skills/SKILL.md +48 -0
- package/presets/cursor/AGENTS.md +2 -2
- package/presets/cursor/commands/cc/api-contract.md +14 -0
- package/presets/cursor/commands/cc/ask.md +2 -1
- package/presets/cursor/commands/cc/backlog.md +105 -0
- package/presets/cursor/commands/cc/db-migration.md +14 -0
- package/presets/cursor/commands/cc/explore.md +1 -1
- package/presets/cursor/commands/cc/feature.md +18 -0
- package/presets/cursor/commands/cc/fix.md +17 -0
- package/presets/cursor/commands/cc/iterative.md +14 -0
- package/presets/cursor/commands/cc/openspec.md +30 -1
- package/presets/cursor/commands/cc/scorecard.md +2 -0
- package/presets/cursor/commands/cc/security.md +179 -0
- package/presets/cursor/commands/cc/spec-mutation.md +190 -0
- package/presets/cursor/commands/cc/tdd-cycle.md +14 -0
- package/presets/cursor/gates/pre-commit/GATE.md +5 -4
- package/presets/cursor/skills/backlog/SKILL.md +61 -0
- package/presets/cursor/skills/evaluation/SKILL.md +61 -4
- package/presets/cursor/skills/openspec/SKILL.md +47 -33
- package/presets/cursor/skills/security-ai-llm/SKILL.md +43 -0
- package/presets/cursor/skills/security-blue-team/SKILL.md +43 -0
- package/presets/cursor/skills/security-cloud/SKILL.md +43 -0
- package/presets/cursor/skills/security-crypto/SKILL.md +43 -0
- package/presets/cursor/skills/security-exploit-dev/SKILL.md +45 -0
- package/presets/cursor/skills/security-grc/SKILL.md +43 -0
- package/presets/cursor/skills/security-incident-response/SKILL.md +45 -0
- package/presets/cursor/skills/security-log-analysis/SKILL.md +43 -0
- package/presets/cursor/skills/security-malware-analysis/SKILL.md +44 -0
- package/presets/cursor/skills/security-mobile/SKILL.md +43 -0
- package/presets/cursor/skills/security-network/SKILL.md +43 -0
- package/presets/cursor/skills/security-ot-ics/SKILL.md +43 -0
- package/presets/cursor/skills/security-recon/SKILL.md +45 -0
- package/presets/cursor/skills/security-red-team/SKILL.md +44 -0
- package/presets/cursor/skills/security-reverse-engineering/SKILL.md +44 -0
- package/presets/cursor/skills/security-soc-automation/SKILL.md +43 -0
- package/presets/cursor/skills/security-threat-hunting/SKILL.md +43 -0
- package/presets/cursor/skills/security-vuln-assessment/SKILL.md +45 -0
- package/presets/cursor/skills/security-web/SKILL.md +44 -0
- package/presets/cursor/skills/testing-tdd/SKILL.md +35 -574
- package/presets/cursor/skills/using-cc-skills/SKILL.md +48 -0
- package/presets/gemini/commands/cc/api-contract.toml +82 -0
- package/presets/gemini/commands/cc/ask.toml +54 -0
- package/presets/gemini/commands/cc/backlog.toml +103 -0
- package/presets/gemini/commands/cc/clarify.toml +31 -0
- package/presets/gemini/commands/cc/council.toml +87 -0
- package/presets/gemini/commands/cc/db-migration.toml +83 -0
- package/presets/gemini/commands/cc/explore.toml +35 -0
- package/presets/gemini/commands/cc/feature.toml +153 -0
- package/presets/gemini/commands/cc/fix.toml +163 -0
- package/presets/gemini/commands/cc/handoff.toml +40 -0
- package/presets/gemini/commands/cc/iterative.toml +145 -0
- package/presets/gemini/commands/cc/openspec.toml +186 -0
- package/presets/gemini/commands/cc/pagespeed.toml +119 -0
- package/presets/gemini/commands/cc/prototype.toml +37 -0
- package/presets/gemini/commands/cc/refactor.toml +158 -0
- package/presets/gemini/commands/cc/review.toml +150 -0
- package/presets/gemini/commands/cc/scorecard.toml +77 -0
- package/presets/gemini/commands/cc/security.toml +177 -0
- package/presets/gemini/commands/cc/spec-mutation.toml +187 -0
- package/presets/gemini/commands/cc/tdd-cycle.toml +264 -0
- package/presets/gemini/commands/cc/test-plan.toml +148 -0
- package/presets/gemini/commands/cc/triage.toml +33 -0
- package/presets/opencode/README.md +24 -21
- package/presets/opencode/agents/architect.md +6 -0
- package/presets/opencode/agents/implementer.md +7 -0
- package/presets/opencode/agents/reviewer.md +6 -0
- package/presets/opencode/agents/tester.md +6 -0
- package/presets/opencode/commands/cc-api-contract.md +14 -0
- package/presets/opencode/commands/cc-ask.md +2 -1
- package/presets/opencode/commands/cc-backlog.md +68 -0
- package/presets/opencode/commands/cc-db-migration.md +14 -0
- package/presets/opencode/commands/cc-explore.md +1 -1
- package/presets/opencode/commands/cc-feature.md +18 -0
- package/presets/opencode/commands/cc-fix.md +17 -0
- package/presets/opencode/commands/cc-iterative.md +14 -0
- package/presets/opencode/commands/cc-openspec.md +17 -1
- package/presets/opencode/commands/cc-scorecard.md +2 -0
- package/presets/opencode/commands/cc-security.md +179 -0
- package/presets/opencode/commands/cc-spec-mutation.md +190 -0
- package/presets/opencode/commands/cc-tdd-cycle.md +14 -0
- package/presets/opencode/gates/pre-commit/GATE.md +5 -4
- package/presets/opencode/opencode.jsonc +1 -1
- package/presets/opencode/prompts/v1.0.0/architect.md +6 -0
- package/presets/opencode/prompts/v1.0.0/implementer.md +7 -0
- package/presets/opencode/prompts/v1.0.0/reviewer.md +6 -0
- package/presets/opencode/prompts/v1.0.0/tester.md +6 -0
- package/presets/opencode/skills/backlog/SKILL.md +61 -0
- package/presets/opencode/skills/evaluation/SKILL.md +61 -2
- package/presets/opencode/skills/openspec/SKILL.md +47 -31
- package/presets/opencode/skills/security-ai-llm/SKILL.md +43 -0
- package/presets/opencode/skills/security-blue-team/SKILL.md +43 -0
- package/presets/opencode/skills/security-cloud/SKILL.md +43 -0
- package/presets/opencode/skills/security-crypto/SKILL.md +43 -0
- package/presets/opencode/skills/security-exploit-dev/SKILL.md +45 -0
- package/presets/opencode/skills/security-grc/SKILL.md +43 -0
- package/presets/opencode/skills/security-incident-response/SKILL.md +45 -0
- package/presets/opencode/skills/security-log-analysis/SKILL.md +43 -0
- package/presets/opencode/skills/security-malware-analysis/SKILL.md +44 -0
- package/presets/opencode/skills/security-mobile/SKILL.md +43 -0
- package/presets/opencode/skills/security-network/SKILL.md +43 -0
- package/presets/opencode/skills/security-ot-ics/SKILL.md +43 -0
- package/presets/opencode/skills/security-recon/SKILL.md +45 -0
- package/presets/opencode/skills/security-red-team/SKILL.md +44 -0
- package/presets/opencode/skills/security-reverse-engineering/SKILL.md +44 -0
- package/presets/opencode/skills/security-soc-automation/SKILL.md +43 -0
- package/presets/opencode/skills/security-threat-hunting/SKILL.md +43 -0
- package/presets/opencode/skills/security-vuln-assessment/SKILL.md +45 -0
- package/presets/opencode/skills/security-web/SKILL.md +44 -0
- package/presets/opencode/skills/testing-tdd/SKILL.md +35 -574
- package/presets/opencode/skills/using-cc-skills/SKILL.md +48 -0
- package/presets/shared/__pycache__/mutation_runner.cpython-314.pyc +0 -0
- package/presets/shared/invoke-hook.cjs +115 -0
- package/presets/shared/mutation_runner.py +273 -0
- package/src/presets/council/council.yml +12 -0
- package/src/presets/manifests/agy.yml +2 -0
- package/src/presets/manifests/claude.yml +3 -0
- package/src/presets/manifests/gemini.yml +15 -0
- package/src/presets/models/agy.yml +24 -24
- package/src/presets/models/claude.yml +10 -10
- package/src/presets/models/codex.yml +10 -10
- package/src/presets/models/cursor.yml +10 -10
- package/src/presets/models/gemini.yml +10 -10
- package/src/presets/models/opencode.yml +10 -10
- package/presets/agy/scripts/post-tool.sh +0 -25
- package/presets/agy/scripts/pre-tool.sh +0 -56
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
Spec-locked TDD with a mutation-testing gate — refine the intent
|
|
4
|
+
into an immutable Gherkin contract (SHA-256 frozen), implement under the
|
|
5
|
+
three laws of TDD, pass a judge audit, and merge only if every mutant dies.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Spec-Mutation — Hard Spec → TDD → Judge → Mutation Gate
|
|
9
|
+
|
|
10
|
+
Scope: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
Describe what behavior you want to implement. Include:
|
|
13
|
+
|
|
14
|
+
- The function, method, or feature to implement
|
|
15
|
+
- The expected behavior (inputs, outputs, invariants, edge cases)
|
|
16
|
+
- The allowed file scope (production files that may change)
|
|
17
|
+
- The test command for the affected suite (e.g. `pytest tests/test_billing.py`)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 0 — CCEP Bootstrap
|
|
22
|
+
|
|
23
|
+
Command: `spec-mutation` (fixed for this workflow — do not infer from user text)
|
|
24
|
+
|
|
25
|
+
1. Run: `npx cc-codeconductor ccep parse --command spec-mutation "$ARGUMENTS" --output json`
|
|
26
|
+
2. Run: `npx cc-codeconductor ccep resolve --command spec-mutation "$ARGUMENTS" --output json`
|
|
27
|
+
3. Run: `npx cc-codeconductor ccep profile spec-mutation --output json`
|
|
28
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command spec-mutation --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
29
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
30
|
+
Canonical delivery order is test-before-implement whenever both phases apply.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Step 0b — OpenSpec quality gates
|
|
35
|
+
|
|
36
|
+
If `openspec status` reports an active change folder:
|
|
37
|
+
|
|
38
|
+
1. Run: `npx cc-codeconductor openspec validate --output json`
|
|
39
|
+
2. Run: `npx cc-codeconductor openspec analyze --output json`
|
|
40
|
+
3. If analyze `stop` is true or any finding is CRITICAL, stop. Do not delegate to implementer.
|
|
41
|
+
4. Next command spelling on this runner: `/cc-spec-mutation`
|
|
42
|
+
|
|
43
|
+
Local development: `bun run dev <same argv>`. Published package: `npx cc-codeconductor`.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Contract
|
|
48
|
+
|
|
49
|
+
The Gherkin specification is the **immutable contract** of the system. No code
|
|
50
|
+
merges unless it survives intentional source mutations. The loop is closed:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
[Human + spec_partner] ──> [gherkin_author] ──> [Test Freeze: SHA-256]
|
|
54
|
+
│
|
|
55
|
+
┌──────────────────────────────────────────────────────┘
|
|
56
|
+
▼
|
|
57
|
+
[tdd_craftsman] <───────────────┐ (surviving mutant)
|
|
58
|
+
(Red-Green-Refactor) │
|
|
59
|
+
│ │
|
|
60
|
+
▼ │
|
|
61
|
+
[judge] ───────────> [mutation_testing] ───> [Safe Merge]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Role mapping onto Conductor Agents (AGENTS.md):
|
|
65
|
+
|
|
66
|
+
| Workflow role | Conductor Agent | Deliverable |
|
|
67
|
+
| ------------------ | ----------------- | ------------------------------------------ |
|
|
68
|
+
| `craftsman_lead` | `orchestrator` | Routed Task Cards, per-stage scorecards |
|
|
69
|
+
| `spec_partner` | `task-coach` | Spec draft with invariants and boundaries |
|
|
70
|
+
| `gherkin_author` | `contract-builder`| Strict `.feature` file (Given/When/Then) |
|
|
71
|
+
| `tdd_craftsman` | `tester` → `implementer` | Failing test, then minimal production code |
|
|
72
|
+
| `judge` | `reviewer` | Binary verdict (PASS/REJECT) with scoring |
|
|
73
|
+
| `mutation_testing` | `tester` (runner) | Killed/survived mutant report |
|
|
74
|
+
|
|
75
|
+
## Stage 1 — Interactive refinement (`spec_partner` / task-coach)
|
|
76
|
+
|
|
77
|
+
Do not jump to implementation. Apply Socratic questioning to the initial intent:
|
|
78
|
+
|
|
79
|
+
- Preconditions, postconditions, and edge cases.
|
|
80
|
+
- Invariant matrix: what must always be true.
|
|
81
|
+
- Scope boundaries: explicit `Scope / Files` and `Scope / Out` for the Task Card.
|
|
82
|
+
|
|
83
|
+
Stop gate: human confirms the draft before formalization.
|
|
84
|
+
|
|
85
|
+
## Stage 2 — Hard Spec formalization (`gherkin_author` / contract-builder)
|
|
86
|
+
|
|
87
|
+
Formalize the agreed draft into `specs/<task>.feature` using strict Gherkin:
|
|
88
|
+
|
|
89
|
+
- No vague language ("must respond fast" is forbidden — use measurable Then steps).
|
|
90
|
+
- Every scenario declares preconditions (`Given`), actions (`When`), and
|
|
91
|
+
observable states (`Then`).
|
|
92
|
+
- Once the human approves the `.feature`, freeze it:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
shasum -a 256 specs/<task>.feature tests/ > .codeconductor/tasks/<task_id>.lock
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
From this point `specs/` and `tests/` are **read-only** for implementation
|
|
99
|
+
agents. Before every later gate, recompute the hash; any single-byte difference
|
|
100
|
+
aborts the pipeline with scorecard 0 (Specification Gaming).
|
|
101
|
+
|
|
102
|
+
## Stage 3 — TDD under the three laws (`tdd_craftsman`)
|
|
103
|
+
|
|
104
|
+
Delegates to the `/cc-tdd-cycle` state machine (`tddCycleStateMachine` in
|
|
105
|
+
`domain/loop`). Evidence must be captured with `captureTddSuiteEvidence` — do
|
|
106
|
+
not hand-edit JSON under `.codeconductor/evidence/`.
|
|
107
|
+
|
|
108
|
+
1. **Law 1 (RED):** no production code except to make a failing test pass. A
|
|
109
|
+
compile error from a missing interface counts as a failure.
|
|
110
|
+
2. **Law 2:** write exactly one failing assertion or scenario at a time.
|
|
111
|
+
3. **Law 3 (GREEN):** write only the minimal production code to pass. No
|
|
112
|
+
speculative code, no preventive heuristics, stdlib-first.
|
|
113
|
+
|
|
114
|
+
Hard rule: any write attempt against `specs/` or `tests/` during GREEN/REFACTOR
|
|
115
|
+
is a harness violation — stop execution and report.
|
|
116
|
+
|
|
117
|
+
## Stage 4 — Judge audit (`judge` / reviewer)
|
|
118
|
+
|
|
119
|
+
Deterministic gates before spending compute on mutation:
|
|
120
|
+
|
|
121
|
+
- Clean compile / diagnostics exit code 0.
|
|
122
|
+
- Traceability: every Gherkin step maps to an implemented test step.
|
|
123
|
+
- Scope Gaming audit: `git diff --name-only` must match the Task Card
|
|
124
|
+
`Scope / Files` exactly. Relaxed types, weakened assertions, or out-of-scope
|
|
125
|
+
edits → REJECT with findings.
|
|
126
|
+
|
|
127
|
+
Verdict is binary: PASS continues to the mutation gate; REJECT returns to the
|
|
128
|
+
`implement` phase with the findings attached.
|
|
129
|
+
|
|
130
|
+
## Stage 5 — Mutation gate (`mutation_testing`)
|
|
131
|
+
|
|
132
|
+
Run the deterministic AST mutator shipped with this preset:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
python3 presets/shared/mutation_runner.py \
|
|
136
|
+
--target <production_file.py> \
|
|
137
|
+
--test-command "<test command>" \
|
|
138
|
+
--spec-folder specs
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The runner applies deterministic operator mutations (`>` → `<=`, `==` → `!=`,
|
|
142
|
+
`is` → `is not`, …) one at a time, re-runs the suite per mutant, and restores
|
|
143
|
+
the original source unconditionally (`finally` rollback).
|
|
144
|
+
|
|
145
|
+
- **Mutant killed (tests fail):** the suite detects the corruption. Continue.
|
|
146
|
+
- **Mutant survived (tests pass):** the tests are blind to this branch. The
|
|
147
|
+
runner writes `specs/handover.md` + appends to
|
|
148
|
+
`specs/implementation-summary.md` and exits with code **2**.
|
|
149
|
+
|
|
150
|
+
Non-Python stacks: substitute Stryker (JS/TS), PITest (JVM), or Mutmut
|
|
151
|
+
(Python full-suite) with the same contract — 100% kill rate or hands-off.
|
|
152
|
+
|
|
153
|
+
### Hands-off protocol (exit code 2)
|
|
154
|
+
|
|
155
|
+
1. Do NOT modify production code to "fix" a surviving mutant.
|
|
156
|
+
2. Route back to `tdd_craftsman` with `specs/handover.md` as input: write the
|
|
157
|
+
missing failing test (Law 1 & 2) that asserts the mutated branch.
|
|
158
|
+
3. Re-run stages 3–5.
|
|
159
|
+
|
|
160
|
+
### Circuit breaker (max 3 loops)
|
|
161
|
+
|
|
162
|
+
The orchestrator keeps a persistent counter per Task Card. If the
|
|
163
|
+
`tdd_craftsman ↔ mutation_testing` loop does not reach a 100% kill rate after
|
|
164
|
+
**3 iterations**:
|
|
165
|
+
|
|
166
|
+
- Cancel active subagents (stop token/context spend).
|
|
167
|
+
- `git checkout -- <scope>` rollback to the last clean state.
|
|
168
|
+
- Scorecard: `STATUS = BLOCKED`; escalate to a human operator. The branch stays
|
|
169
|
+
frozen until human arbitration.
|
|
170
|
+
|
|
171
|
+
## Guardrails (harness-enforced, not prompt-enforced)
|
|
172
|
+
|
|
173
|
+
- **Test Freezing:** SHA-256 of `specs/` + `tests/` stored in
|
|
174
|
+
`.codeconductor/tasks/<task_id>.lock`; hash mismatch aborts the pipeline.
|
|
175
|
+
- **Scope Guardian:** `fs_write`/`fs_patch` paths are validated against the Task
|
|
176
|
+
Card `Scope / Files`; path escapes (`../`) and critical files (`**/.env*`,
|
|
177
|
+
`**/credentials*`, infrastructure roots) are denied per `policy.yml`.
|
|
178
|
+
- **RBAC per role:** `gherkin_author` writes only `specs/`; `tdd_craftsman`
|
|
179
|
+
reads specs/tests and writes only scoped `src/`; `judge` and
|
|
180
|
+
`mutation_testing` are read-only except the runner's rolled-back patch.
|
|
181
|
+
- **Worktree isolation:** run the whole flow in a dedicated `git worktree`;
|
|
182
|
+
protected branches (`main`, `master`, `develop`) are never touched.
|
|
183
|
+
|
|
184
|
+
## Completion criteria
|
|
185
|
+
|
|
186
|
+
- [ ] `.feature` approved and frozen (SHA-256 lock file exists and matches).
|
|
187
|
+
- [ ] RED → GREEN → REFACTOR evidence captured per phase.
|
|
188
|
+
- [ ] Judge verdict PASS (compile clean, traceability complete, scope clean).
|
|
189
|
+
- [ ] Mutation runner exits 0 with `total_mutants_killed == total_points`.
|
|
190
|
+
- [ ] Scorecard records the kill rate and iteration count (≤ 3).
|
|
@@ -30,6 +30,20 @@ Command: `tdd-cycle` (fixed for this workflow — do not infer from user text)
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
+
## Step 0b — OpenSpec quality gates
|
|
34
|
+
|
|
35
|
+
If `openspec status` reports an active change folder:
|
|
36
|
+
|
|
37
|
+
1. Run: `npx cc-codeconductor openspec validate --output json`
|
|
38
|
+
2. Run: `npx cc-codeconductor openspec analyze --output json`
|
|
39
|
+
3. If analyze `stop` is true or any finding is CRITICAL, stop. Do not delegate to implementer.
|
|
40
|
+
4. Next command spelling on this runner: `/cc-tdd-cycle`
|
|
41
|
+
|
|
42
|
+
Local development: `bun run dev <same argv>`. Published package: `npx cc-codeconductor`.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
|
|
33
47
|
## Before you begin — mandatory pre-check
|
|
34
48
|
|
|
35
49
|
This command enforces strict TDD discipline. The three phases are sequential and
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Pre-commit Gate: Typecheck and Test
|
|
1
|
+
# Pre-commit Gate: Typecheck, Lint, and Test
|
|
2
2
|
|
|
3
|
-
Este gate instala un hook `pre-commit` que ejecuta `bun run typecheck` y `bun run test` antes de permitir commits en el repositorio. Si cualquiera de estos comandos falla, el commit es bloqueado.
|
|
3
|
+
Este gate instala un hook `pre-commit` que ejecuta `bun run typecheck`, `bun run lint` y `bun run test` antes de permitir commits en el repositorio. Si cualquiera de estos comandos falla, el commit es bloqueado.
|
|
4
4
|
|
|
5
5
|
## Cuándo usar
|
|
6
6
|
|
|
@@ -63,6 +63,7 @@ mkdir -p "$GIT_DIR/hooks"
|
|
|
63
63
|
cat > "$HOOK_PATH" << 'HOOK_EOF'
|
|
64
64
|
#!/bin/bash
|
|
65
65
|
bun run typecheck || exit 1
|
|
66
|
+
bun run lint || exit 1
|
|
66
67
|
bun run test || exit 1
|
|
67
68
|
HOOK_EOF
|
|
68
69
|
|
|
@@ -78,7 +79,7 @@ echo "Pre-commit hook installed successfully."
|
|
|
78
79
|
- **Resolución dinámica de git dir**: Usa `git rev-parse --git-dir` para localizar el directorio correcto, incluso en worktrees.
|
|
79
80
|
- **Detección de conflictos**: Si Husky o lint-staged ya está en `package.json`, el script avisa y no instala para evitar conflictos.
|
|
80
81
|
- **Protección de hooks existentes**: Si ya existe un `.git/hooks/pre-commit`, el script no lo sobrescribe.
|
|
81
|
-
- **Solo Bun**: El hook ejecuta `bun run typecheck` y `bun run test`. Asegúrate de que estos scripts están definidos en `package.json`.
|
|
82
|
+
- **Solo Bun**: El hook ejecuta `bun run typecheck`, `bun run lint` y `bun run test`. Asegúrate de que estos scripts están definidos en `package.json`.
|
|
82
83
|
|
|
83
84
|
## Verificación
|
|
84
85
|
|
|
@@ -121,7 +122,7 @@ Verifica que el hook es ejecutable:
|
|
|
121
122
|
|
|
122
123
|
chmod +x .git/hooks/pre-commit
|
|
123
124
|
|
|
124
|
-
Verifica que `bun run typecheck` y `bun run test` existen en `package.json`:
|
|
125
|
+
Verifica que `bun run typecheck`, `bun run lint` y `bun run test` existen en `package.json`:
|
|
125
126
|
|
|
126
127
|
cat package.json | grep -A 5 '"scripts"'
|
|
127
128
|
|
|
@@ -257,3 +257,9 @@ Rules under CCEP-1:
|
|
|
257
257
|
- Never approve your own plan — the human approves before implementation starts.
|
|
258
258
|
- If scope expands during design, flag it as a separate task, not an extension
|
|
259
259
|
of the current one.
|
|
260
|
+
|
|
261
|
+
## Composition
|
|
262
|
+
|
|
263
|
+
Invoke via `/cc-feature`, `/cc-openspec`, or the orchestrator. Do not invoke
|
|
264
|
+
other agents. If an OpenSpec change folder is active, invoke skill `openspec`
|
|
265
|
+
and run `openspec analyze --output json` before implementation is allowed.
|
|
@@ -226,3 +226,10 @@ tests. On **REJECT**, stop and escalate to the orchestrator.
|
|
|
226
226
|
- Never modify the Technical Plan — if the plan is wrong, escalate to
|
|
227
227
|
`architect` via the orchestrator.
|
|
228
228
|
- Never commit without human confirmation.
|
|
229
|
+
|
|
230
|
+
## Composition
|
|
231
|
+
|
|
232
|
+
Invoke via `/cc-feature`, `/cc-fix`, `/cc-tdd-cycle`, or the orchestrator.
|
|
233
|
+
Do not invoke other agents. Invoke skill `testing-tdd`.
|
|
234
|
+
Deliverable is incomplete without a passing suite and runner TDD evidence when
|
|
235
|
+
TDD is required. Scorecard: `bun run dev scorecard create --from-diff`.
|
|
@@ -293,3 +293,9 @@ Invoke skill `evaluation` and run `scorecard record` with agent `reviewer`, mode
|
|
|
293
293
|
- Never issue vague findings ("this could be better") — every finding must name
|
|
294
294
|
the exact location and the specific required action.
|
|
295
295
|
- Never run `git push` or `git commit`.
|
|
296
|
+
|
|
297
|
+
## Composition
|
|
298
|
+
|
|
299
|
+
Invoke via `/cc-review` or the orchestrator. Do not invoke other agents.
|
|
300
|
+
Invoke skill `evaluation`. Deliverable is incomplete without
|
|
301
|
+
`scorecard create --from-diff` and a recorded PASS|REVISE|REJECT.
|
|
@@ -296,3 +296,9 @@ and confirmed failing; list the failing test paths in `artifacts` so the
|
|
|
296
296
|
- Never mock real behavior that could be tested with an in-memory alternative.
|
|
297
297
|
- Never declare coverage complete when any acceptance criterion lacks a test.
|
|
298
298
|
- Never run `git push` or `git commit`.
|
|
299
|
+
|
|
300
|
+
## Composition
|
|
301
|
+
|
|
302
|
+
Invoke via `/cc-tdd-cycle`, `/cc-feature`, or the orchestrator (test before
|
|
303
|
+
implement). Do not invoke other agents. Invoke skill `testing-tdd`.
|
|
304
|
+
Deliverable is incomplete without `captureTddSuiteEvidence` when TDD is required.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backlog
|
|
3
|
+
description: >
|
|
4
|
+
Guides agents through authoring BACKLOG.md and OpenSpec change folders.
|
|
5
|
+
Use when running /cc-backlog or /cc:backlog, creating or appending backlog
|
|
6
|
+
items, or preparing work for /cc-openspec. Delivery is skill openspec.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Backlog authoring
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Create or append `BACKLOG.md`, then `openspec validate` / `plan`. Do not deliver
|
|
14
|
+
the item here.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
- `/cc-backlog`, first backlog in a repo, or appending `### BC-xxx` items
|
|
19
|
+
|
|
20
|
+
**NOT** for executing an item (`openspec`) or for scorecards (`evaluation`).
|
|
21
|
+
|
|
22
|
+
## Process
|
|
23
|
+
|
|
24
|
+
1. If `graphify-out/graph.json` exists, `graphify query "<objectives>"`. Then
|
|
25
|
+
`repo-explorer`. Scope names real files.
|
|
26
|
+
2. Invoke `task-coach`. One grilling question per assumption. Reject vague
|
|
27
|
+
acceptance ("improve UX"). At most 3 `[NEEDS CLARIFICATION]`.
|
|
28
|
+
3. `ccep evaluate --command backlog`. If `stop`, wait for the human.
|
|
29
|
+
4. Create `BACKLOG.md` from `presets/templates/BACKLOG.md` or append under
|
|
30
|
+
`## Items`. Do not rewrite `## Global` or `## Archive`.
|
|
31
|
+
5. Next ID = max numeric suffix in Items + Archive + 1, zero-padded (`BC-013`).
|
|
32
|
+
6. `bun run dev openspec validate` (or `npx cc-codeconductor`). Fix until valid.
|
|
33
|
+
7. `openspec plan BC-xxx` for each **new** item this run. Then tell the user
|
|
34
|
+
to run `/cc-openspec`.
|
|
35
|
+
|
|
36
|
+
Required sections: `## Global`, `## Items`, `## Archive`. Each item:
|
|
37
|
+
`### BC-001 | Title` with Priority, Status (`READY` after grilling), Type,
|
|
38
|
+
Depends on, Description, Scope, Out of scope, Acceptance.
|
|
39
|
+
|
|
40
|
+
Local artifacts (`BACKLOG.md`, `openspec/`, `.codeconductor/openspec-state.json`)
|
|
41
|
+
are gitignored in consumer projects. Do not `git add` them.
|
|
42
|
+
|
|
43
|
+
## Common Rationalizations
|
|
44
|
+
|
|
45
|
+
| Rationalization | Reality |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| This fix is small; skip the Task Card | Every item needs measurable acceptance. |
|
|
48
|
+
| I'll validate later | Do not plan until `openspec validate` passes. |
|
|
49
|
+
| Archive can be rewritten | Archive is history. Never rewrite or re-execute. |
|
|
50
|
+
|
|
51
|
+
## Red Flags
|
|
52
|
+
|
|
53
|
+
- Acceptance that cannot fail a check
|
|
54
|
+
- Editing `openspec-state.json` by hand
|
|
55
|
+
- Planning an invalid backlog
|
|
56
|
+
|
|
57
|
+
## Verification
|
|
58
|
+
|
|
59
|
+
- [ ] `openspec validate` exit 0
|
|
60
|
+
- [ ] New items have `FR`/`SC`-ready measurable acceptance
|
|
61
|
+
- [ ] User pointed at `/cc-openspec` for delivery
|
|
@@ -1,6 +1,65 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: evaluation
|
|
3
|
-
description:
|
|
3
|
+
description:
|
|
4
|
+
Guides agents through scorecards, outcomes, model profiles, and eval suites.
|
|
5
|
+
Use when running /cc-scorecard or /cc:scorecard, measuring a deliverable, or
|
|
6
|
+
checking workflow gates with suite-run.
|
|
4
7
|
---
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
# Evaluation
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
A scorecard measures the deliverable against eight weighted criteria. Spec
|
|
14
|
+
quality checklists are reviewer-owned. "Seems right" is not a verdict.
|
|
15
|
+
|
|
16
|
+
Pass threshold: weighted score >= 2.0 and no criterion at 0.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- After implement/review, before `openspec archive`
|
|
21
|
+
- Comparing models or prompt versions
|
|
22
|
+
- Proving the workflow tools still work (`suite-run`)
|
|
23
|
+
|
|
24
|
+
**NOT** for rewriting specs (reviewer checklist) or for implementing code.
|
|
25
|
+
|
|
26
|
+
## Process
|
|
27
|
+
|
|
28
|
+
Local: `bun run dev`. Published: `npx cc-codeconductor`.
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
scorecard create --task BC-001 --from-diff
|
|
32
|
+
scorecard record --task BC-001 --verdict PASS --score 2.5
|
|
33
|
+
scorecard list | aggregate | models | regression | matrix | compare-models
|
|
34
|
+
scorecard prompt-diff 0.4.0 0.5.0 --agent architect
|
|
35
|
+
scorecard experiment start --suite harness-v1
|
|
36
|
+
scorecard suite-run --suite workflow-gates
|
|
37
|
+
scorecard suite-run --suite hook-guardrails
|
|
38
|
+
scorecard suite-run --suite scorecard-signals
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`openspec analyze` can auto-suggest `acceptance` / `tests` on `--from-diff`.
|
|
42
|
+
Archive needs PASS when review is required.
|
|
43
|
+
|
|
44
|
+
Outcomes append to `.codeconductor/evaluation/outcomes.jsonl`.
|
|
45
|
+
|
|
46
|
+
## Common Rationalizations
|
|
47
|
+
|
|
48
|
+
| Rationalization | Reality |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| I'll fill the scorecard by hand without a diff | Use `--from-diff` and runner evidence. |
|
|
51
|
+
| Suites are optional toys | `suite-run` is the workflow tool that proves gates. |
|
|
52
|
+
| Handmade TDD JSON is fine | The runner rejects it. |
|
|
53
|
+
|
|
54
|
+
## Red Flags
|
|
55
|
+
|
|
56
|
+
- PASS with a criterion at 0
|
|
57
|
+
- Archive without a recorded scorecard when review is required
|
|
58
|
+
- Declaring the workflow ready without `suite-run` or `scorecard record`
|
|
59
|
+
|
|
60
|
+
## Verification
|
|
61
|
+
|
|
62
|
+
- [ ] Scorecard created from diff (or explicit scores)
|
|
63
|
+
- [ ] Verdict PASS / REVISE / REJECT recorded
|
|
64
|
+
- [ ] For process changes: `scorecard suite-run --suite hook-guardrails` (and
|
|
65
|
+
`workflow-gates` / `scorecard-signals` when those gates changed)
|
|
@@ -1,50 +1,66 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: openspec
|
|
3
3
|
description:
|
|
4
|
-
|
|
5
|
-
Use when running /cc-openspec
|
|
4
|
+
Guides agents through OpenSpec delivery from BACKLOG.md (validate, analyze,
|
|
5
|
+
test-before-implement, scorecard, archive). Use when running /cc-openspec,
|
|
6
|
+
/cc:openspec, or delivering an existing backlog item. Authoring BACKLOG.md
|
|
7
|
+
is skill backlog, not this skill.
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# OpenSpec
|
|
10
|
+
# OpenSpec delivery
|
|
9
11
|
|
|
10
|
-
##
|
|
12
|
+
## Overview
|
|
11
13
|
|
|
12
|
-
`BACKLOG.md`
|
|
14
|
+
This skill delivers an existing `BACKLOG.md` item. It is a workflow with CLI
|
|
15
|
+
gates, not a reference doc. Specs describe WHAT; `design.md` describes HOW.
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
- `## Items` — active backlog entries
|
|
16
|
-
- `## Archive` — completed entries (do not re-execute)
|
|
17
|
+
## When to Use
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
- `/cc-openspec` or `openspec next` / `plan` / `done` / `archive`
|
|
20
|
+
- An item is `READY` or later and must move through the state machine
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
**NOT** for creating `BACKLOG.md` (use skill `backlog`) or for stack-specific
|
|
23
|
+
coding rules.
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
## Process
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
Local CLI is `bun run dev`. Published package is `npx cc-codeconductor`.
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
1. `openspec validate` — must pass before delivery.
|
|
30
|
+
2. `openspec plan BC-xxx` if the item is not yet `PLANNED`.
|
|
31
|
+
3. `openspec analyze --output json` — CRITICAL findings exit 1. Do not implement.
|
|
32
|
+
4. Phases: discover (`repo-explorer`) → design (`architect`) → test (`tester`) →
|
|
33
|
+
implement (`implementer`) → review (`reviewer`). If Global `TDD required: yes`,
|
|
34
|
+
test runs before implement.
|
|
35
|
+
5. `openspec done` on test/implement requires `captureTddSuiteEvidence`. Handmade
|
|
36
|
+
evidence JSON is rejected.
|
|
37
|
+
6. `scorecard create --task BC-xxx --from-diff` then record a verdict.
|
|
38
|
+
7. `openspec archive` only after human review when `Review required: yes` and
|
|
39
|
+
the scorecard is PASS.
|
|
27
40
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
npx cc-codeconductor openspec plan BC-001
|
|
32
|
-
npx cc-codeconductor openspec status
|
|
33
|
-
npx cc-codeconductor openspec next
|
|
34
|
-
```
|
|
41
|
+
Status machine: `TODO` → `READY` → `PLANNED` → `IN_PROGRESS` → `REVIEW` → `DONE`
|
|
42
|
+
→ Archive. `BLOCKED` returns to `READY`. Reviewer rejection: `REVIEW` →
|
|
43
|
+
`IN_PROGRESS`.
|
|
35
44
|
|
|
36
|
-
##
|
|
45
|
+
## Common Rationalizations
|
|
37
46
|
|
|
38
|
-
|
|
47
|
+
| Rationalization | Reality |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| Validate is bureaucracy | `openspec validate` is the gate. Skipping it is a defect. |
|
|
50
|
+
| I'll add tests after green | Global TDD required means tester before implementer. |
|
|
51
|
+
| I'll write the evidence JSON myself | Handmade TDD JSON is rejected. Use the verification runner. |
|
|
52
|
+
| The item is small; skip analyze | `openspec analyze` CRITICAL still stops implement. |
|
|
39
53
|
|
|
40
|
-
##
|
|
54
|
+
## Red Flags
|
|
41
55
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
| design | architect |
|
|
46
|
-
| test | tester |
|
|
47
|
-
| implement | implementer |
|
|
48
|
-
| review | reviewer |
|
|
56
|
+
- Implementing while analyze reports CRITICAL
|
|
57
|
+
- Archive without a PASS scorecard when review is required
|
|
58
|
+
- Acceptance like "improve UX" with no measurable check
|
|
49
59
|
|
|
50
|
-
|
|
60
|
+
## Verification
|
|
61
|
+
|
|
62
|
+
- [ ] `openspec validate` exit 0
|
|
63
|
+
- [ ] `openspec analyze --output json` has no CRITICAL
|
|
64
|
+
- [ ] TDD evidence from the runner when TDD is required
|
|
65
|
+
- [ ] `scorecard create --from-diff` recorded
|
|
66
|
+
- [ ] Suite check (optional): `bun run dev scorecard suite-run --suite workflow-gates`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-ai-llm
|
|
3
|
+
description: >
|
|
4
|
+
Harden LLM and agent integrations you operate: prompt injection, tool allowlists, secret leakage, and supply-chain of models. Defensive only.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AI / LLM Security
|
|
8
|
+
|
|
9
|
+
## Authorization
|
|
10
|
+
|
|
11
|
+
Use this skill only with **explicit written authorization** for a named
|
|
12
|
+
scope (systems, environments, and time window). If authorization is missing,
|
|
13
|
+
expired, or the request is for someone else's systems, **stop**.
|
|
14
|
+
|
|
15
|
+
This skill is **defensive and owner-authorized**. It does not authorize
|
|
16
|
+
offensive cyber operations.
|
|
17
|
+
|
|
18
|
+
## Do
|
|
19
|
+
|
|
20
|
+
- Treat model output as untrusted; never exec it without a schema
|
|
21
|
+
- Allowlist tools and paths; contain file writes
|
|
22
|
+
- Keep secrets out of prompts and logs
|
|
23
|
+
|
|
24
|
+
## Do not
|
|
25
|
+
|
|
26
|
+
- Help jailbreak third-party products or steal model weights
|
|
27
|
+
- Log raw user PII to prompt-debug stores
|
|
28
|
+
|
|
29
|
+
- Do not produce exploit payloads, malware, or attack procedures.
|
|
30
|
+
|
|
31
|
+
## How to Use
|
|
32
|
+
|
|
33
|
+
Load this skill from `/cc-security` when the Task Card domain is `security-ai-llm`.
|
|
34
|
+
Example prompts:
|
|
35
|
+
|
|
36
|
+
- `Review our agent tool runner for path traversal and unbounded shell.`
|
|
37
|
+
- `Add tests that a prompt cannot make the bot dump .env.`
|
|
38
|
+
|
|
39
|
+
## Integration
|
|
40
|
+
|
|
41
|
+
- Workflow: `/cc-security` (CCEP command `security`)
|
|
42
|
+
- Existing OWASP application-security skill remains `security` (not this id)
|
|
43
|
+
- High-risk changes still require `security-reviewer`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-blue-team
|
|
3
|
+
description: >
|
|
4
|
+
Improve detections, hardening, and response for the estate you defend. Detection-as-code and control design, not offense.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Blue Team Defense
|
|
8
|
+
|
|
9
|
+
## Authorization
|
|
10
|
+
|
|
11
|
+
Use this skill only with **explicit written authorization** for a named
|
|
12
|
+
scope (systems, environments, and time window). If authorization is missing,
|
|
13
|
+
expired, or the request is for someone else's systems, **stop**.
|
|
14
|
+
|
|
15
|
+
This skill is **defensive and owner-authorized**. It does not authorize
|
|
16
|
+
offensive cyber operations.
|
|
17
|
+
|
|
18
|
+
## Do
|
|
19
|
+
|
|
20
|
+
- Tune detections for true positives; document exceptions
|
|
21
|
+
- Pair every new control with a test or canary
|
|
22
|
+
- Share hunt hypotheses with IR, not with the public internet
|
|
23
|
+
|
|
24
|
+
## Do not
|
|
25
|
+
|
|
26
|
+
- Disable EDR or logging to 'reduce noise' without a ticket
|
|
27
|
+
- Copy attacker malware into production 'for training'
|
|
28
|
+
|
|
29
|
+
- Do not produce exploit payloads, malware, or attack procedures.
|
|
30
|
+
|
|
31
|
+
## How to Use
|
|
32
|
+
|
|
33
|
+
Load this skill from `/cc-security` when the Task Card domain is `security-blue-team`.
|
|
34
|
+
Example prompts:
|
|
35
|
+
|
|
36
|
+
- `We missed a token-replay. Propose a detection plus a unit test for the API gateway.`
|
|
37
|
+
- `Harden CI: pin actions, require reviews on workflows that deploy.`
|
|
38
|
+
|
|
39
|
+
## Integration
|
|
40
|
+
|
|
41
|
+
- Workflow: `/cc-security` (CCEP command `security`)
|
|
42
|
+
- Existing OWASP application-security skill remains `security` (not this id)
|
|
43
|
+
- High-risk changes still require `security-reviewer`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-cloud
|
|
3
|
+
description: >
|
|
4
|
+
Harden IAM, storage, keys, and org policies in cloud accounts you administer. Focus on identity, logging, and public-exposure controls.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Cloud Security
|
|
8
|
+
|
|
9
|
+
## Authorization
|
|
10
|
+
|
|
11
|
+
Use this skill only with **explicit written authorization** for a named
|
|
12
|
+
scope (systems, environments, and time window). If authorization is missing,
|
|
13
|
+
expired, or the request is for someone else's systems, **stop**.
|
|
14
|
+
|
|
15
|
+
This skill is **defensive and owner-authorized**. It does not authorize
|
|
16
|
+
offensive cyber operations.
|
|
17
|
+
|
|
18
|
+
## Do
|
|
19
|
+
|
|
20
|
+
- Prefer roles over long-lived keys; require MFA on human admins
|
|
21
|
+
- Block public buckets and overly broad IAM `*` unless justified
|
|
22
|
+
- Turn on cloud audit logs and retain them per policy
|
|
23
|
+
|
|
24
|
+
## Do not
|
|
25
|
+
|
|
26
|
+
- Disable logging or GuardDuty/Security Command Center 'to save cost' without a recorded exception
|
|
27
|
+
- Share account credentials in chat or tickets
|
|
28
|
+
|
|
29
|
+
- Do not produce exploit payloads, malware, or attack procedures.
|
|
30
|
+
|
|
31
|
+
## How to Use
|
|
32
|
+
|
|
33
|
+
Load this skill from `/cc-security` when the Task Card domain is `security-cloud`.
|
|
34
|
+
Example prompts:
|
|
35
|
+
|
|
36
|
+
- `Audit this AWS account's IAM: unused keys, admin wildcards, and public S3.`
|
|
37
|
+
- `Write a policy-as-code check that fails CI if a bucket ACL is public.`
|
|
38
|
+
|
|
39
|
+
## Integration
|
|
40
|
+
|
|
41
|
+
- Workflow: `/cc-security` (CCEP command `security`)
|
|
42
|
+
- Existing OWASP application-security skill remains `security` (not this id)
|
|
43
|
+
- High-risk changes still require `security-reviewer`
|