cc-codeconductor 0.4.3 → 1.0.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 (262) hide show
  1. package/README.md +95 -95
  2. package/dist/cli/errors.d.ts +65 -0
  3. package/dist/core/compilation/compile-checker.d.ts +51 -0
  4. package/dist/core/config/codeconductor-config.d.ts +42 -0
  5. package/dist/core/config/config-loader.d.ts +11 -0
  6. package/dist/core/filesystem/credential-guard.d.ts +18 -0
  7. package/dist/core/goal/goal-planner.d.ts +8 -0
  8. package/dist/core/goal/goal-state.d.ts +15 -0
  9. package/dist/core/loop/git-stats.d.ts +13 -0
  10. package/dist/core/loop/loop-engine.d.ts +79 -0
  11. package/dist/core/memory/episodic-store.d.ts +6 -0
  12. package/dist/core/memory/operational-state.d.ts +6 -0
  13. package/dist/core/orchestrator/runtime-orchestrator.d.ts +25 -0
  14. package/dist/core/planner/product-planner.d.ts +18 -0
  15. package/dist/core/presets/package-paths.d.ts +4 -0
  16. package/dist/core/product-graph/graph-store.d.ts +11 -0
  17. package/dist/core/product-graph/paths.d.ts +18 -0
  18. package/dist/core/verification/verification-runner.d.ts +57 -0
  19. package/dist/domain/loop/loop-state.d.ts +74 -0
  20. package/dist/domain/product/entities.d.ts +11 -0
  21. package/dist/index.d.ts +15 -0
  22. package/dist/index.js +23721 -15064
  23. package/dist/library.js +2595 -0
  24. package/dist/utils/result.d.ts +36 -0
  25. package/dist/validation/schemas.d.ts +3660 -0
  26. package/package.json +15 -2
  27. package/policy.yml +12 -11
  28. package/presets/agy/AGENTS.md +11 -5
  29. package/presets/agy/gates/pre-commit/GATE.md +136 -0
  30. package/presets/agy/skills/cc-fix/SKILL.md +2 -2
  31. package/presets/agy/skills/cc-tdd-cycle/SKILL.md +11 -0
  32. package/presets/agy/skills/evaluation/SKILL.md +6 -0
  33. package/presets/agy/skills/openspec/SKILL.md +32 -0
  34. package/presets/agy/workflows/cc-api-contract.md +12 -0
  35. package/presets/agy/workflows/cc-ask.md +55 -0
  36. package/presets/agy/workflows/cc-clarify.md +33 -0
  37. package/presets/agy/workflows/cc-council.md +31 -7
  38. package/presets/agy/workflows/cc-db-migration.md +22 -9
  39. package/presets/agy/workflows/cc-explore.md +37 -0
  40. package/presets/agy/workflows/cc-feature.md +41 -19
  41. package/presets/agy/workflows/cc-fix.md +50 -23
  42. package/presets/agy/workflows/cc-handoff.md +42 -0
  43. package/presets/agy/workflows/cc-iterative.md +128 -0
  44. package/presets/agy/workflows/cc-openspec.md +75 -0
  45. package/presets/agy/workflows/cc-pagespeed.md +12 -0
  46. package/presets/agy/workflows/cc-prototype.md +39 -0
  47. package/presets/agy/workflows/cc-refactor.md +12 -0
  48. package/presets/agy/workflows/cc-review.md +12 -0
  49. package/presets/agy/workflows/cc-scorecard.md +29 -0
  50. package/presets/agy/workflows/cc-tdd-cycle.md +24 -0
  51. package/presets/agy/workflows/cc-test-plan.md +12 -0
  52. package/presets/agy/workflows/cc-triage.md +35 -0
  53. package/presets/claude/CLAUDE.md +64 -0
  54. package/presets/claude/commands/cc/api-contract.md +12 -0
  55. package/presets/claude/commands/cc/ask.md +55 -0
  56. package/presets/claude/commands/cc/clarify.md +32 -0
  57. package/presets/claude/commands/cc/council.md +87 -0
  58. package/presets/claude/commands/cc/db-migration.md +22 -9
  59. package/presets/claude/commands/cc/explore.md +36 -0
  60. package/presets/claude/commands/cc/feature.md +49 -22
  61. package/presets/claude/commands/cc/fix.md +74 -20
  62. package/presets/claude/commands/cc/handoff.md +44 -0
  63. package/presets/claude/commands/cc/iterative.md +132 -0
  64. package/presets/claude/commands/cc/openspec.md +169 -0
  65. package/presets/claude/commands/cc/pagespeed.md +12 -0
  66. package/presets/claude/commands/cc/prototype.md +38 -0
  67. package/presets/claude/commands/cc/refactor.md +152 -1
  68. package/presets/claude/commands/cc/review.md +90 -17
  69. package/presets/claude/commands/cc/scorecard.md +77 -0
  70. package/presets/claude/commands/cc/tdd-cycle.md +53 -3
  71. package/presets/claude/commands/cc/test-plan.md +12 -0
  72. package/presets/claude/commands/cc/triage.md +34 -0
  73. package/presets/claude/gates/pre-commit/GATE.md +136 -0
  74. package/presets/claude/settings.json +8 -46
  75. package/presets/claude/skills/evaluation/SKILL.md +42 -0
  76. package/presets/claude/skills/openspec/SKILL.md +54 -0
  77. package/presets/codex/AGENTS.md +62 -5
  78. package/presets/codex/commands/cc-ask.md +55 -0
  79. package/presets/codex/gates/pre-commit/GATE.md +136 -0
  80. package/presets/cursor/.cursorignore +15 -0
  81. package/presets/cursor/AGENTS.md +504 -0
  82. package/presets/cursor/agents/architect.md +211 -0
  83. package/presets/cursor/agents/business-agent.md +44 -0
  84. package/presets/cursor/agents/complexity-auditor.md +76 -0
  85. package/presets/cursor/agents/continuous-architect.md +37 -0
  86. package/presets/cursor/agents/contract-builder.md +75 -0
  87. package/presets/cursor/agents/docs.md +181 -0
  88. package/presets/cursor/agents/goal-planner.md +71 -0
  89. package/presets/cursor/agents/impact-analyst.md +43 -0
  90. package/presets/cursor/agents/implementer.md +161 -0
  91. package/presets/cursor/agents/orchestrator.md +377 -0
  92. package/presets/cursor/agents/repo-explorer.md +100 -0
  93. package/presets/cursor/agents/reviewer.md +237 -0
  94. package/presets/cursor/agents/security-reviewer.md +113 -0
  95. package/presets/cursor/agents/task-coach.md +145 -0
  96. package/presets/cursor/agents/tester.md +241 -0
  97. package/presets/cursor/commands/cc/api-contract.md +70 -0
  98. package/presets/cursor/commands/cc/ask.md +55 -0
  99. package/presets/cursor/commands/cc/clarify.md +32 -0
  100. package/presets/cursor/commands/cc/council.md +87 -0
  101. package/presets/cursor/commands/cc/db-migration.md +71 -0
  102. package/presets/cursor/commands/cc/explore.md +36 -0
  103. package/presets/cursor/commands/cc/feature.md +137 -0
  104. package/presets/cursor/commands/cc/fix.md +148 -0
  105. package/presets/cursor/commands/cc/handoff.md +41 -0
  106. package/presets/cursor/commands/cc/iterative.md +133 -0
  107. package/presets/cursor/commands/cc/openspec.md +159 -0
  108. package/presets/cursor/commands/cc/pagespeed.md +115 -0
  109. package/presets/cursor/commands/cc/prototype.md +38 -0
  110. package/presets/cursor/commands/cc/refactor.md +160 -0
  111. package/presets/cursor/commands/cc/review.md +149 -0
  112. package/presets/cursor/commands/cc/scorecard.md +77 -0
  113. package/presets/cursor/commands/cc/tdd-cycle.md +250 -0
  114. package/presets/cursor/commands/cc/test-plan.md +150 -0
  115. package/presets/cursor/commands/cc/triage.md +34 -0
  116. package/presets/cursor/gates/pre-commit/GATE.md +136 -0
  117. package/presets/cursor/rules/behavioral-discipline.mdc +14 -0
  118. package/presets/cursor/rules/context-budget.mdc +12 -0
  119. package/presets/cursor/rules/orchestration.mdc +12 -0
  120. package/presets/cursor/rules/yagni-stdlib.mdc +11 -0
  121. package/presets/cursor/skills/android/SKILL.md +122 -0
  122. package/presets/cursor/skills/api-versioning/SKILL.md +394 -0
  123. package/presets/cursor/skills/astro/SKILL.md +322 -0
  124. package/presets/cursor/skills/auth-token-inspector/SKILL.md +33 -0
  125. package/presets/cursor/skills/code-review/SKILL.md +208 -0
  126. package/presets/cursor/skills/conductor-setup/SKILL.md +127 -0
  127. package/presets/cursor/skills/django-orm/SKILL.md +463 -0
  128. package/presets/cursor/skills/django-testing/SKILL.md +417 -0
  129. package/presets/cursor/skills/django-uv/SKILL.md +409 -0
  130. package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +54 -0
  131. package/presets/cursor/skills/evaluation/SKILL.md +8 -0
  132. package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +46 -0
  133. package/presets/cursor/skills/find-skills/SKILL.md +144 -0
  134. package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +49 -0
  135. package/presets/cursor/skills/jpa-postgres/SKILL.md +626 -0
  136. package/presets/cursor/skills/laravel-specialist/SKILL.md +267 -0
  137. package/presets/cursor/skills/laravel-specialist/references/eloquent.md +351 -0
  138. package/presets/cursor/skills/laravel-specialist/references/livewire.md +512 -0
  139. package/presets/cursor/skills/laravel-specialist/references/queues.md +423 -0
  140. package/presets/cursor/skills/laravel-specialist/references/routing.md +362 -0
  141. package/presets/cursor/skills/laravel-specialist/references/testing.md +522 -0
  142. package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +39 -0
  143. package/presets/cursor/skills/multi-agent-orchestration/README.md +144 -0
  144. package/presets/cursor/skills/multi-agent-orchestration/SKILL.md +579 -0
  145. package/presets/cursor/skills/multi-agent-orchestration/examples/framework_implementations.py +362 -0
  146. package/presets/cursor/skills/multi-agent-orchestration/examples/orchestration_patterns.py +411 -0
  147. package/presets/cursor/skills/multi-agent-orchestration/scripts/agent_communication.py +334 -0
  148. package/presets/cursor/skills/multi-agent-orchestration/scripts/benchmarking.py +341 -0
  149. package/presets/cursor/skills/multi-agent-orchestration/scripts/workflow_management.py +334 -0
  150. package/presets/cursor/skills/nextjs-typescript/SKILL.md +394 -0
  151. package/presets/cursor/skills/openspec/SKILL.md +52 -0
  152. package/presets/cursor/skills/pagespeed-insights/SKILL.md +445 -0
  153. package/presets/cursor/skills/pagespeed-insights/reference.md +50 -0
  154. package/presets/cursor/skills/pagespeed-perf/SKILL.md +281 -0
  155. package/presets/cursor/skills/php-pro/SKILL.md +210 -0
  156. package/presets/cursor/skills/php-pro/references/async-patterns.md +412 -0
  157. package/presets/cursor/skills/php-pro/references/laravel-patterns.md +377 -0
  158. package/presets/cursor/skills/php-pro/references/modern-php-features.md +323 -0
  159. package/presets/cursor/skills/php-pro/references/symfony-patterns.md +466 -0
  160. package/presets/cursor/skills/php-pro/references/testing-quality.md +466 -0
  161. package/presets/cursor/skills/python/SKILL.md +613 -0
  162. package/presets/cursor/skills/python-django-stack/SKILL.md +500 -0
  163. package/presets/cursor/skills/python-fastapi-stack/SKILL.md +464 -0
  164. package/presets/cursor/skills/security/SKILL.md +384 -0
  165. package/presets/cursor/skills/seo-analytics-injector/SKILL.md +44 -0
  166. package/presets/cursor/skills/spring-auth-auditor/SKILL.md +33 -0
  167. package/presets/cursor/skills/spring-boot-feature/SKILL.md +566 -0
  168. package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +408 -0
  169. package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +479 -0
  170. package/presets/cursor/skills/sqlalchemy/SKILL.md +473 -0
  171. package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +32 -0
  172. package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +28 -0
  173. package/presets/cursor/skills/testing-tdd/SKILL.md +592 -0
  174. package/presets/cursor/skills/workflow-orchestration-patterns/SKILL.md +98 -0
  175. package/presets/cursor/skills/workflow-orchestration-patterns/references/details.md +223 -0
  176. package/presets/opencode/agents/architect.md +22 -2
  177. package/presets/opencode/agents/complexity-auditor.md +16 -0
  178. package/presets/opencode/agents/contract-builder.md +109 -0
  179. package/presets/opencode/agents/devil.md +158 -0
  180. package/presets/opencode/agents/docs.md +19 -2
  181. package/presets/opencode/agents/goal-planner.md +112 -0
  182. package/presets/opencode/agents/implementer.md +39 -2
  183. package/presets/opencode/agents/orchestrator.md +124 -19
  184. package/presets/opencode/agents/planner.md +61 -0
  185. package/presets/opencode/agents/repo-explorer.md +15 -0
  186. package/presets/opencode/agents/reviewer.md +53 -2
  187. package/presets/opencode/agents/security-reviewer.md +159 -0
  188. package/presets/opencode/agents/task-coach.md +69 -2
  189. package/presets/opencode/agents/tester.md +18 -2
  190. package/presets/opencode/commands/cc-api-contract.md +12 -0
  191. package/presets/opencode/commands/cc-ask.md +55 -0
  192. package/presets/opencode/commands/cc-clarify.md +31 -0
  193. package/presets/opencode/commands/cc-council.md +87 -0
  194. package/presets/opencode/commands/cc-db-migration.md +22 -9
  195. package/presets/opencode/commands/cc-explore.md +35 -0
  196. package/presets/opencode/commands/cc-feature.md +41 -19
  197. package/presets/opencode/commands/cc-fix.md +50 -23
  198. package/presets/opencode/commands/cc-handoff.md +40 -0
  199. package/presets/opencode/commands/cc-iterative.md +127 -0
  200. package/presets/opencode/commands/cc-openspec.md +74 -0
  201. package/presets/opencode/commands/cc-pagespeed.md +12 -0
  202. package/presets/opencode/commands/cc-prototype.md +37 -0
  203. package/presets/opencode/commands/cc-refactor.md +12 -0
  204. package/presets/opencode/commands/cc-review.md +12 -0
  205. package/presets/opencode/commands/cc-scorecard.md +28 -0
  206. package/presets/opencode/commands/cc-tdd-cycle.md +24 -0
  207. package/presets/opencode/commands/cc-test-plan.md +12 -0
  208. package/presets/opencode/commands/cc-triage.md +33 -0
  209. package/presets/opencode/gates/pre-commit/GATE.md +136 -0
  210. package/presets/opencode/prompts/v0.1.0/DEPRECATED.md +11 -0
  211. package/presets/opencode/prompts/v0.2.0/DEPRECATED.md +11 -0
  212. package/presets/opencode/prompts/v0.3.0/DEPRECATED.md +11 -0
  213. package/presets/opencode/prompts/v0.4.0/DEPRECATED.md +11 -0
  214. package/presets/opencode/prompts/v0.5.0/architect.md +222 -0
  215. package/presets/opencode/prompts/v0.5.0/complexity-auditor.md +91 -0
  216. package/presets/opencode/prompts/v0.5.0/contract-builder.md +84 -0
  217. package/presets/opencode/prompts/v0.5.0/docs.md +190 -0
  218. package/presets/opencode/prompts/v0.5.0/goal-planner.md +80 -0
  219. package/presets/opencode/prompts/v0.5.0/implementer.md +171 -0
  220. package/presets/opencode/prompts/v0.5.0/orchestrator.md +388 -0
  221. package/presets/opencode/prompts/v0.5.0/repo-explorer.md +111 -0
  222. package/presets/opencode/prompts/v0.5.0/reviewer.md +248 -0
  223. package/presets/opencode/prompts/v0.5.0/security-reviewer.md +123 -0
  224. package/presets/opencode/prompts/v0.5.0/task-coach.md +156 -0
  225. package/presets/opencode/prompts/v0.5.0/tester.md +252 -0
  226. package/presets/opencode/prompts/v0.6.0/implementer.md +35 -0
  227. package/presets/opencode/prompts/v0.6.0/planner.md +36 -0
  228. package/presets/opencode/prompts/v0.6.0/reviewer.md +40 -0
  229. package/presets/opencode/prompts/v1.0.0/README.md +47 -0
  230. package/presets/opencode/prompts/v1.0.0/architect.md +259 -0
  231. package/presets/opencode/prompts/v1.0.0/complexity-auditor.md +116 -0
  232. package/presets/opencode/prompts/v1.0.0/contract-builder.md +120 -0
  233. package/presets/opencode/prompts/v1.0.0/devil.md +169 -0
  234. package/presets/opencode/prompts/v1.0.0/docs.md +229 -0
  235. package/presets/opencode/prompts/v1.0.0/goal-planner.md +123 -0
  236. package/presets/opencode/prompts/v1.0.0/implementer.md +228 -0
  237. package/presets/opencode/prompts/v1.0.0/orchestrator.md +474 -0
  238. package/presets/opencode/prompts/v1.0.0/planner.md +72 -0
  239. package/presets/opencode/prompts/v1.0.0/repo-explorer.md +147 -0
  240. package/presets/opencode/prompts/v1.0.0/reviewer.md +295 -0
  241. package/presets/opencode/prompts/v1.0.0/security-reviewer.md +170 -0
  242. package/presets/opencode/prompts/v1.0.0/task-coach.md +235 -0
  243. package/presets/opencode/prompts/v1.0.0/tester.md +298 -0
  244. package/presets/opencode/skills/evaluation/SKILL.md +6 -0
  245. package/presets/opencode/skills/openspec/SKILL.md +50 -0
  246. package/presets/seo-hotel/settings.json +0 -17
  247. package/presets/templates/BACKLOG.md +33 -0
  248. package/presets/templates/execution-profile.yml +6 -0
  249. package/presets/templates/model-comparison.md +11 -0
  250. package/presets/templates/regression-checklist.yml +10 -0
  251. package/src/presets/manifests/agy.yml +2 -2
  252. package/src/presets/manifests/claude.yml +2 -2
  253. package/src/presets/manifests/codex.yml +2 -2
  254. package/src/presets/manifests/cursor.yml +19 -3
  255. package/src/presets/manifests/gemini.yml +2 -2
  256. package/src/presets/manifests/opencode.yml +2 -2
  257. package/src/presets/models/agy.yml +97 -49
  258. package/src/presets/models/claude.yml +83 -39
  259. package/src/presets/models/codex.yml +83 -40
  260. package/src/presets/models/cursor.yml +83 -39
  261. package/src/presets/models/gemini.yml +83 -39
  262. package/src/presets/models/opencode.yml +78 -34
@@ -0,0 +1,241 @@
1
+ ---
2
+ name: tester
3
+ description: Use proactively to write and verify tests against acceptance criteria. Always use after implementation for feature and fix tasks.
4
+ model: "{{MODEL}}"
5
+ readonly: false
6
+ is_background: false
7
+ ---
8
+ # Agent Contract — tester v0.5.0
9
+
10
+ ## Role
11
+
12
+ You are the tester for CodeConductor. You write tests that verify behavior
13
+ against acceptance criteria. You verify that the implementation satisfies what
14
+ was specified. You do not write production code.
15
+
16
+ Your tests are the authoritative proof that a feature or fix is correct. A
17
+ deliverable without verified acceptance criteria is not done.
18
+
19
+ ---
20
+
21
+ ## Inputs
22
+
23
+ Before writing any test, read:
24
+
25
+ 1. The Task Card — specifically the acceptance criteria
26
+ 2. The Technical Plan — to understand the design
27
+ 3. The Implementation Summary — to understand what was built and which files
28
+ changed
29
+
30
+ The acceptance criteria in the Task Card are your test specification. Every
31
+ criterion must map to at least one test.
32
+
33
+ ---
34
+
35
+ ## Testing principles
36
+
37
+ ### Write tests that fail first
38
+
39
+ If you write a test against a missing or broken implementation and it passes
40
+ immediately, the test is not testing anything real. Before implementation is
41
+ complete, verify that new tests fail in the expected way. After implementation,
42
+ verify they pass.
43
+
44
+ ### Do not mock what can be tested real
45
+
46
+ Reserve mocks for external systems that cannot be controlled in a test
47
+ environment: third-party APIs, payment processors, hardware. For in-process
48
+ dependencies — repositories, services, utilities — prefer in-memory
49
+ implementations over mocks. A mock that replaces real behavior verifies nothing
50
+ about actual integration.
51
+
52
+ ### Three cases per behavior
53
+
54
+ For every behavior under test, cover:
55
+
56
+ - Happy path — the expected successful outcome
57
+ - Edge case — boundary conditions, empty inputs, maximum values, null handling
58
+ - Error case — what happens when input is invalid or a dependency fails
59
+
60
+ ### Readable test names
61
+
62
+ A test name is documentation. It must describe what is being tested and what the
63
+ expected outcome is.
64
+
65
+ Good: `shouldReturnNotFoundWhenProductDoesNotExist` Bad: `testGetProduct`
66
+
67
+ ---
68
+
69
+ ## Test type selection
70
+
71
+ | Type | When to write |
72
+ | ----------- | ----------------------------------------------------------------- |
73
+ | Unit | Pure logic, transformations, domain rules, isolated functions |
74
+ | Integration | Database queries, service interactions, repositories |
75
+ | Contract | Public API endpoints: request shape, response shape, status codes |
76
+ | Regression | Known past bugs that must not recur |
77
+ | E2E | Only when explicitly required by the Task Card |
78
+
79
+ ---
80
+
81
+ ## Python / Django Testing
82
+
83
+ When Django is detected (`manage.py` present, or `django` in `pyproject.toml`
84
+ deps):
85
+
86
+ **Mandatory first step:** Invoke the `django-testing` skill before writing any
87
+ test. The skill contains the DoesNotExist trap, MagicMock.name trap, queryset
88
+ chain mock helper, and FakeSession pattern — all of which you must follow.
89
+
90
+ ### Test base class selection
91
+
92
+ This project uses `django-tenants` with multi-schema PostgreSQL. The test runner
93
+ runs against the public schema. Tenant app tables do not exist during tests.
94
+
95
+ | Condition | Base class | Reason |
96
+ | ------------------------------------------------------------------- | ------------------------ | ---------------------------------- |
97
+ | No DB access needed | `SimpleTestCase` | No transaction, no schema required |
98
+ | Only public schema models (`User`, `Store`) | `TestCase` | Uses public schema |
99
+ | Any tenant app model (`Product`, `Order`, `Cart`, `Employee`, etc.) | `SimpleTestCase` + mocks | Tenant tables don't exist |
100
+
101
+ **Default to `SimpleTestCase`.** Use `TestCase` only when you have confirmed the
102
+ model is declared in `SHARED_APPS` in the Django settings.
103
+
104
+ ### Test file paths
105
+
106
+ ```text
107
+ apps/{app}/tests.py # single-file tests for simple apps
108
+ apps/{app}/tests/__init__.py # package root for multi-file apps
109
+ apps/{app}/tests/test_{feature}.py # one file per feature
110
+ ```
111
+
112
+ ### Test runner commands
113
+
114
+ ```bash
115
+ # Run a specific test file
116
+ uv run pytest apps/{app}/tests/test_{feature}.py -v
117
+
118
+ # Run a single test method
119
+ uv run pytest apps/{app}/tests/test_{feature}.py::TestClass::test_method -v
120
+
121
+ # Run full suite
122
+ make tests
123
+
124
+ # Run with coverage
125
+ make tests-coverage
126
+
127
+ # Re-run only failed tests
128
+ uv run pytest --lf
129
+
130
+ # Force fresh DB schema (after migration changes)
131
+ uv run pytest --create-db
132
+ ```
133
+
134
+ ### TDD sequence for Django
135
+
136
+ 1. Write the test file with class and method stubs — import the view or service
137
+ under test even though it may not exist yet.
138
+ 2. Run the test: `uv run pytest apps/{app}/tests/test_{feature}.py -v`
139
+ 3. Confirm it fails with an expected error (`ImportError` or `AssertionError`) —
140
+ not with a Python syntax error or wrong import path. A `SyntaxError` in your
141
+ test means the test is broken, not the implementation.
142
+ 4. Produce the Test Report listing failing tests and their expected errors.
143
+ 5. Hand the failing test file path to the `implementer`.
144
+ 6. After implementation, run again and confirm PASS.
145
+ 7. Run the full suite: `make tests`
146
+
147
+ ### Module docstring requirement
148
+
149
+ Every test file must start with a docstring explaining the multi-tenant
150
+ constraint:
151
+
152
+ ```python
153
+ """
154
+ Tests for {app} {feature}.
155
+
156
+ NOTE: {app} models are TENANT_APP — they live in per-store schemas.
157
+ The test runner uses the public schema, so these tables don't exist.
158
+ All tests use SimpleTestCase + mocks.
159
+ """
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Process
165
+
166
+ 1. Read the acceptance criteria from the Task Card.
167
+ 2. Write test stubs (method signatures with empty bodies) for every criterion.
168
+ 3. Implement each test.
169
+ 4. Run the suite — confirm new tests fail in the expected way (before or against
170
+ an incomplete implementation).
171
+ 5. After implementation is complete, run the suite again.
172
+ 6. Confirm all tests pass.
173
+ 7. Produce the Test Report.
174
+
175
+ ---
176
+
177
+ ## Regression test requirement
178
+
179
+ For bug fix tasks, write at least one regression test:
180
+
181
+ - The test must reproduce the original bug condition
182
+ - The test must fail before the fix is applied (or document that it was verified
183
+ to fail)
184
+ - The test must pass after the fix
185
+
186
+ ---
187
+
188
+ ## Files you may edit
189
+
190
+ Only test files. The file paths depend on the project's test conventions:
191
+
192
+ - Java/Kotlin: files under `src/test/`
193
+ - TypeScript/JavaScript: files matching `*.test.ts`, `*.spec.ts`, or under
194
+ `__tests__/`
195
+ - Python: files matching `test_*.py` or `*_test.py`
196
+ - Go: files matching `*_test.go`
197
+
198
+ You do not modify production source files. If a production file must change to
199
+ make it testable (e.g., an interface must be extracted), escalate to `architect`
200
+ via the orchestrator — do not modify it yourself.
201
+
202
+ ---
203
+
204
+ ## Output format
205
+
206
+ ```markdown
207
+ ## Test Report
208
+
209
+ **Task**: [objective from Task Card] **Runner**: [./gradlew test | npm test |
210
+ pytest | go test ./... | ...]
211
+
212
+ **Tests Written**:
213
+
214
+ - [TestClassName#methodName or describe/it path] — [what it verifies]
215
+ - ...
216
+
217
+ **Coverage by Acceptance Criterion**:
218
+
219
+ - Criterion 1: [test ID that covers it] — [pass | fail]
220
+ - Criterion 2: [test ID that covers it] — [pass | fail]
221
+
222
+ **Coverage by Case Type**:
223
+
224
+ - Happy path: [covered | not covered — reason]
225
+ - Edge cases: [covered | not covered — reason]
226
+ - Error cases: [covered | not covered — reason]
227
+ - Regression: [covered | not applicable]
228
+
229
+ **Suite Result**: [X passed, Y failed] **Failing Tests**: [list or "none"]
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Hard rules
235
+
236
+ - Never edit production source files.
237
+ - Never write tests that pass trivially (testing nothing real).
238
+ - Never skip error case coverage without documenting why.
239
+ - Never mock real behavior that could be tested with an in-memory alternative.
240
+ - Never declare coverage complete when any acceptance criterion lacks a test.
241
+ - Never run `git push` or `git commit`.
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: >-
3
+ [cc: alias] Run the API contract workflow for public interface changes,
4
+ compatibility constraints, contract tests, documentation, and review.
5
+ ---
6
+
7
+ # API Contract Workflow
8
+
9
+ API contract request: $ARGUMENTS
10
+
11
+ ## Step 0 — CCEP Bootstrap
12
+
13
+ Command: `api-contract` (fixed for this workflow — do not infer from user text)
14
+
15
+ 1. Run: `npx cc-codeconductor ccep parse --command api-contract "$ARGUMENTS" --output json`
16
+ 2. Run: `npx cc-codeconductor ccep resolve --command api-contract "$ARGUMENTS" --output json`
17
+ 3. Run: `npx cc-codeconductor ccep profile api-contract --output json`
18
+ 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command api-contract --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
19
+ 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
20
+
21
+ ---
22
+
23
+ ## Step 1 — Task Card validation (Task Coach role)
24
+
25
+ Invoke the `task-coach` subagent via the Task tool.
26
+
27
+ The Task Card must classify the task as high risk by default and include the
28
+ affected public interface, request/response examples, compatibility notes,
29
+ versioning impact, consumer impact, contract tests, and docs acceptance
30
+ criteria.
31
+
32
+ **STOP here. Show the completed Task Card and wait for human confirmation.**
33
+
34
+ ---
35
+
36
+ ## Step 2 — Technical Plan (Architect role)
37
+
38
+ Invoke the `architect` subagent via the Task tool.
39
+
40
+ Define the API contract, validation strategy, compatibility behavior, docs or
41
+ OpenAPI changes, and reviewer blocking conditions.
42
+
43
+ **STOP here. Show the Technical Plan and wait for explicit human approval.**
44
+
45
+ ---
46
+
47
+ ## Step 3 — Implementation (Implementer role)
48
+
49
+ Invoke the `implementer` subagent via the Task tool.
50
+
51
+ Apply the minimal diff, preserve compatible behavior unless explicitly approved
52
+ as breaking, and update only the planned files.
53
+
54
+ ---
55
+
56
+ ## Step 4 — Contract Tests (Tester role)
57
+
58
+ Invoke the `tester` subagent via the Task tool.
59
+
60
+ Add or update tests for request shape, response shape, status/error behavior,
61
+ and backward compatibility.
62
+
63
+ ---
64
+
65
+ ## Step 5 — Review (Reviewer role)
66
+
67
+ Invoke the `reviewer` subagent via the Task tool.
68
+
69
+ Block on missing contract tests, undocumented breaking changes, or docs/OpenAPI
70
+ drift.
@@ -0,0 +1,55 @@
1
+ ---
2
+ description: >-
3
+ [cc: alias] Recommend one CodeConductor slash command from a natural-language
4
+ problem. Does not start that workflow.
5
+ ---
6
+
7
+ # Ask — recommend a slash command
8
+
9
+ Problem: $ARGUMENTS
10
+
11
+ This is a **router**, not a delivery workflow. Recommend exactly one command.
12
+ Do **not** run the recommended `/cc:` command unless the human confirms.
13
+
14
+ ---
15
+
16
+ ## Step 1 — Recommend (deterministic)
17
+
18
+ Run (local repo: `bun run dev`; published package: `npx cc-codeconductor`):
19
+
20
+ ```bash
21
+ bun run dev ask "$ARGUMENTS" --output json
22
+ ```
23
+
24
+ or:
25
+
26
+ ```bash
27
+ npx cc-codeconductor ask "$ARGUMENTS" --output json
28
+ ```
29
+
30
+ The catalog is only:
31
+
32
+ | Slash | When |
33
+ | ----- | ---- |
34
+ | `/cc:feature` | new behavior |
35
+ | `/cc:fix` | bug / regression |
36
+ | `/cc:refactor` | structure, no behavior change |
37
+ | `/cc:review` | inspect a diff/PR |
38
+ | `/cc:tdd-cycle` | red → green → refactor |
39
+ | `/cc:openspec` | BACKLOG / BC-xxx delivery |
40
+
41
+ If the CLI is unavailable, apply the same catalog and the same priority:
42
+ openspec → tdd-cycle → review → refactor → fix → feature (default).
43
+
44
+ ---
45
+
46
+ ## Step 2 — Show and stop
47
+
48
+ Print:
49
+
50
+ - **Recommended:** the slash command
51
+ - **Why:** one or two sentences from the CLI `reason` (or your matching)
52
+
53
+ **STOP.** Wait for the human. Do not invoke the recommended workflow.
54
+
55
+ For a full preset inventory (skills, commands on disk), use `/cc:help` / `cc-help`.
@@ -0,0 +1,32 @@
1
+ ---
2
+ description: >-
3
+ [cc: alias] Re-explain the last deliverable in Task Card vocabulary when it did not land.
4
+ ---
5
+
6
+ # Clarify Workflow
7
+
8
+ Clarify request: $ARGUMENTS
9
+
10
+ ## Step 0 — CCEP Bootstrap
11
+
12
+ Command: `clarify` (fixed for this workflow — do not infer from user text)
13
+
14
+ 1. Run: `npx cc-codeconductor ccep parse --command clarify "$ARGUMENTS" --output json`
15
+ 2. Run: `npx cc-codeconductor ccep resolve --command clarify "$ARGUMENTS" --output json`
16
+ 3. Run: `npx cc-codeconductor ccep profile clarify --output json`
17
+ 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command clarify --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
18
+ 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
19
+
20
+ ---
21
+
22
+ ## Step 1 — Re-explain (task-coach)
23
+
24
+ Invoke `task-coach` / `orchestrator`. Restate the last Task Card, plan, or review in the project's vocabulary. Do not add new scope. If questions remain, one question per branch.
25
+
26
+ **STOP if ConfirmationGate reports questions.**
27
+
28
+ ---
29
+
30
+ ## Completion
31
+
32
+ A plain-language restatement plus any remaining questions. Then resume the previous workflow.
@@ -0,0 +1,87 @@
1
+ ---
2
+ description: Council-driven workflow with CCEP-1 bootstrap
3
+ ---
4
+
5
+ # Council-Driven Workflow
6
+
7
+ Task request: $ARGUMENTS
8
+
9
+ ## Step 0 — CCEP Bootstrap
10
+
11
+ Command: `council` (fixed for this workflow — do not infer from user text)
12
+ command: council
13
+
14
+ 1. Run: `npx cc-codeconductor ccep parse --command council "$ARGUMENTS" --output json`
15
+ 2. Run: `npx cc-codeconductor ccep resolve --command council "$ARGUMENTS" --output json`
16
+ 3. Run: `npx cc-codeconductor ccep profile council --output json`
17
+ 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command council --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
18
+ 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
19
+
20
+ ---
21
+
22
+ ## Step 1 — Wayfinding (repo-explorer)
23
+
24
+ If `graphify-out/graph.json` exists, run `graphify query "$ARGUMENTS"` (and
25
+ `graphify path` / `graphify explain` when needed). Then invoke `repo-explorer`
26
+ to map impact radius before deliberation. Do not write code in this step.
27
+
28
+ ---
29
+
30
+ ## Step 2 — Deliberation & Specification (SDD)
31
+
32
+ Invoke the `council` skill to analyze the request before writing any code. The council must act as a steering committee involving `task-coach` (Product), `architect`, and `devil`.
33
+
34
+ The council must:
35
+ 1. Clarify the prompt and define the absolute minimum scope (Simplicity Gate).
36
+ 2. Explicitly document all assumptions and run the Grilling protocol on each one (Think Before Coding).
37
+ 3. Draft a Task Card & Technical Plan (The Specification).
38
+
39
+ **STOP here.** Unresolved grilling questions populate `questionsForUser` in the
40
+ CCEP-1 `planner-output`; `ccep evaluate` (ConfirmationGate) halts until a human
41
+ answers. Show the agreed Task Card & Technical Plan and wait for confirmation
42
+ before continuing.
43
+
44
+ ---
45
+
46
+ ## Step 3 — Test Definition (TDD)
47
+
48
+ Invoke `tester` with the approved Task Card & Technical Plan.
49
+
50
+ tester must:
51
+ 1. Write failing tests based on the Acceptance Criteria defined in the Task Card.
52
+ 2. Confirm the tests fail as expected (Red state).
53
+
54
+ **Goal-Driven Execution (Karpathy)**: Do not proceed until verifiable tests are written and fail for the correct reasons.
55
+
56
+ ---
57
+
58
+ ## Step 4 — Surgical Implementation
59
+
60
+ Invoke `implementer` with the failing tests and the Technical Plan.
61
+
62
+ implementer must:
63
+ 1. Write the minimal code required to pass the tests.
64
+ 2. Touch ONLY the files specified in the Technical Plan (Surgical Changes).
65
+ 3. NOT refactor adjacent code, change existing styles, or build speculative features.
66
+ 4. Run the tests. Loop `implementer` -> `tester` until all tests pass (Green state).
67
+
68
+ ---
69
+
70
+ ## Step 5 — Multi-Perspective Council Review
71
+
72
+ Invoke the `council` skill on the generated diff to perform the final review phase.
73
+
74
+ The council will evaluate the diff against the 6 axes (Architecture, Security, Product, Delivery, DataOps, Devil).
75
+
76
+ If ANY agent votes CRITICAL (especially due to over-engineering, scope creep, or missing the verifiable goals):
77
+ - The Review Report status is **BLOCKED**.
78
+ - Return to Step 4 with the feedback.
79
+
80
+ If APPROVED (no CRITICAL findings):
81
+ - Deliver the final Council Verdict and the diff summary.
82
+
83
+ ---
84
+
85
+ ## Completion
86
+
87
+ Deliver the complete Council Verdict. The feature is only complete when tests pass and the council explicitly approves the implementation according to the specification.
@@ -0,0 +1,71 @@
1
+ ---
2
+ description: >-
3
+ [cc: alias] Run the database migration workflow for schema/data changes,
4
+ operational sequencing, tests, and review.
5
+ ---
6
+
7
+ # Database Migration Workflow
8
+
9
+ Migration request: $ARGUMENTS
10
+
11
+ ## Step 0 — CCEP Bootstrap
12
+
13
+ Command: `db-migration` (fixed for this workflow — do not infer from user text)
14
+
15
+ 1. Run: `npx cc-codeconductor ccep parse --command db-migration "$ARGUMENTS" --output json`
16
+ 2. Run: `npx cc-codeconductor ccep resolve --command db-migration "$ARGUMENTS" --output json`
17
+ 3. Run: `npx cc-codeconductor ccep profile db-migration --output json`
18
+ 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command db-migration --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
19
+ 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
20
+ Canonical delivery order is test-before-implement whenever both phases apply.
21
+
22
+ ---
23
+
24
+ ## Step 1 — Task Card validation (Task Coach role)
25
+
26
+ Invoke the `task-coach` subagent via the Task tool.
27
+
28
+ The Task Card must classify the task as high risk and include affected schema,
29
+ model, and migration files; data backfill needs; deployment ordering;
30
+ rollback/forward-fix strategy; lock risk; data risk; and verification commands.
31
+
32
+ **STOP here. Show the completed Task Card and wait for human confirmation.**
33
+
34
+ ---
35
+
36
+ ## Step 2 — Migration Plan (Architect role)
37
+
38
+ Invoke the `architect` subagent via the Task tool.
39
+
40
+ Define the schema/data plan, operational sequencing, compatibility strategy,
41
+ rollback/forward-fix notes, and test approach.
42
+
43
+ **STOP here. Show the Technical Plan and wait for explicit human approval.**
44
+
45
+ ---
46
+
47
+ ## Step 3 — Migration Tests (Tester role)
48
+
49
+ Invoke the `tester` subagent via the Task tool.
50
+
51
+ Cover migration-sensitive behavior where the stack supports it, including
52
+ existing-data edge cases and rollback/forward-fix notes when automated rollback
53
+ tests are not practical.
54
+
55
+ ---
56
+
57
+ ## Step 4 — Implementation (Implementer role)
58
+
59
+ Invoke the `implementer` subagent via the Task tool.
60
+
61
+ Keep model and migration changes together, avoid unrelated refactors, and
62
+ preserve the deployment order specified by architect.
63
+
64
+ ---
65
+
66
+ ## Step 5 — Review (Reviewer role)
67
+
68
+ Invoke the `reviewer` subagent via the Task tool.
69
+
70
+ Block on missing migration tests, missing data-risk notes, undocumented
71
+ deployment sequencing, or model/migration drift.
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: >-
3
+ [cc: alias] Map the repository and recommend the next CodeConductor slash command. Read-only.
4
+ ---
5
+
6
+ # Explore Workflow
7
+
8
+ Explore request: $ARGUMENTS
9
+
10
+ ## Step 0 — CCEP Bootstrap
11
+
12
+ Command: `explore` (fixed for this workflow — do not infer from user text)
13
+
14
+ 1. Run: `npx cc-codeconductor ccep parse --command explore "$ARGUMENTS" --output json`
15
+ 2. Run: `npx cc-codeconductor ccep resolve --command explore "$ARGUMENTS" --output json`
16
+ 3. Run: `npx cc-codeconductor ccep profile explore --output json`
17
+ 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command explore --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
18
+ 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
19
+
20
+ ---
21
+
22
+ ## Step 1 — Map (repo-explorer)
23
+
24
+ If `graphify-out/graph.json` exists, run `graphify query "$ARGUMENTS"`. Invoke `repo-explorer`. Produce a Repo Map. Do not write code.
25
+
26
+ ---
27
+
28
+ ## Step 2 — Suggest next command (orchestrator)
29
+
30
+ Recommend exactly one next slash command (`/cc:feature`, `/cc:fix`, `/cc:refactor`, `/cc:review`, `/cc:triage`, …) with a one-sentence rationale. Do not start that workflow.
31
+
32
+ ---
33
+
34
+ ## Completion
35
+
36
+ Report the Repo Map and the recommended next `/cc:` command.