cc-codeconductor 1.1.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.
Files changed (143) hide show
  1. package/README.md +4 -2
  2. package/dist/core/verification/verification-runner.d.ts +7 -0
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1413 -309
  5. package/dist/library.js +29 -1
  6. package/dist/validation/schemas.d.ts +97 -26
  7. package/package.json +1 -1
  8. package/presets/agy/AGENTS.md +10 -9
  9. package/presets/agy/hooks.json +2 -2
  10. package/presets/agy/scripts/invoke-hook.cjs +115 -0
  11. package/presets/agy/skills/backlog/SKILL.md +40 -70
  12. package/presets/agy/skills/cc-spec-mutation/SKILL.md +165 -0
  13. package/presets/agy/skills/cc-tdd-cycle/SKILL.md +3 -0
  14. package/presets/agy/skills/evaluation/SKILL.md +61 -2
  15. package/presets/agy/skills/openspec/SKILL.md +49 -19
  16. package/presets/agy/skills/testing-tdd/SKILL.md +53 -0
  17. package/presets/agy/skills/using-cc-skills/SKILL.md +48 -0
  18. package/presets/agy/workflows/cc-api-contract.md +14 -0
  19. package/presets/agy/workflows/cc-db-migration.md +14 -0
  20. package/presets/agy/workflows/cc-feature.md +18 -0
  21. package/presets/agy/workflows/cc-fix.md +14 -0
  22. package/presets/agy/workflows/cc-iterative.md +14 -0
  23. package/presets/agy/workflows/cc-openspec.md +14 -0
  24. package/presets/agy/workflows/cc-scorecard.md +2 -0
  25. package/presets/agy/workflows/cc-spec-mutation.md +191 -0
  26. package/presets/agy/workflows/cc-tdd-cycle.md +14 -0
  27. package/presets/claude/commands/cc/api-contract.md +14 -0
  28. package/presets/claude/commands/cc/db-migration.md +14 -0
  29. package/presets/claude/commands/cc/feature.md +18 -0
  30. package/presets/claude/commands/cc/fix.md +17 -0
  31. package/presets/claude/commands/cc/iterative.md +14 -0
  32. package/presets/claude/commands/cc/openspec.md +14 -0
  33. package/presets/claude/commands/cc/review.md +3 -0
  34. package/presets/claude/commands/cc/scorecard.md +2 -0
  35. package/presets/claude/commands/cc/spec-mutation.md +190 -0
  36. package/presets/claude/commands/cc/tdd-cycle.md +17 -0
  37. package/presets/claude/settings.json +13 -11
  38. package/presets/claude/skills/backlog/SKILL.md +40 -70
  39. package/presets/claude/skills/evaluation/SKILL.md +47 -24
  40. package/presets/claude/skills/openspec/SKILL.md +46 -38
  41. package/presets/claude/skills/testing-tdd/SKILL.md +53 -0
  42. package/presets/claude/skills/using-cc-skills/SKILL.md +48 -0
  43. package/presets/codex/AGENTS.md +16 -12
  44. package/presets/codex/skills/backlog/SKILL.md +61 -0
  45. package/presets/codex/skills/cc-api-contract/SKILL.md +87 -0
  46. package/presets/codex/skills/cc-backlog/SKILL.md +108 -0
  47. package/presets/codex/skills/cc-clarify/SKILL.md +36 -0
  48. package/presets/codex/skills/cc-council/SKILL.md +92 -0
  49. package/presets/codex/skills/cc-db-migration/SKILL.md +88 -0
  50. package/presets/codex/skills/cc-explore/SKILL.md +40 -0
  51. package/presets/codex/skills/cc-feature/SKILL.md +154 -0
  52. package/presets/codex/skills/cc-fix/SKILL.md +165 -0
  53. package/presets/codex/skills/cc-handoff/SKILL.md +45 -0
  54. package/presets/codex/skills/cc-iterative/SKILL.md +150 -0
  55. package/presets/codex/skills/cc-openspec/SKILL.md +191 -0
  56. package/presets/codex/skills/cc-pagespeed/SKILL.md +124 -0
  57. package/presets/codex/skills/cc-prototype/SKILL.md +42 -0
  58. package/presets/codex/skills/cc-refactor/SKILL.md +163 -0
  59. package/presets/codex/skills/cc-review/SKILL.md +152 -0
  60. package/presets/codex/skills/cc-scorecard/SKILL.md +82 -0
  61. package/presets/codex/skills/cc-security/SKILL.md +182 -0
  62. package/presets/codex/skills/cc-spec-mutation/SKILL.md +192 -0
  63. package/presets/codex/skills/cc-tdd-cycle/SKILL.md +266 -0
  64. package/presets/codex/skills/cc-test-plan/SKILL.md +153 -0
  65. package/presets/codex/skills/cc-triage/SKILL.md +38 -0
  66. package/presets/codex/skills/evaluation/SKILL.md +65 -0
  67. package/presets/codex/skills/openspec/SKILL.md +66 -0
  68. package/presets/codex/skills/testing-tdd/SKILL.md +53 -0
  69. package/presets/codex/skills/using-cc-skills/SKILL.md +48 -0
  70. package/presets/cursor/commands/cc/api-contract.md +14 -0
  71. package/presets/cursor/commands/cc/db-migration.md +14 -0
  72. package/presets/cursor/commands/cc/feature.md +18 -0
  73. package/presets/cursor/commands/cc/fix.md +17 -0
  74. package/presets/cursor/commands/cc/iterative.md +14 -0
  75. package/presets/cursor/commands/cc/openspec.md +14 -0
  76. package/presets/cursor/commands/cc/scorecard.md +2 -0
  77. package/presets/cursor/commands/cc/spec-mutation.md +190 -0
  78. package/presets/cursor/commands/cc/tdd-cycle.md +14 -0
  79. package/presets/cursor/skills/backlog/SKILL.md +40 -70
  80. package/presets/cursor/skills/evaluation/SKILL.md +61 -4
  81. package/presets/cursor/skills/openspec/SKILL.md +46 -36
  82. package/presets/cursor/skills/testing-tdd/SKILL.md +35 -574
  83. package/presets/cursor/skills/using-cc-skills/SKILL.md +48 -0
  84. package/presets/gemini/commands/cc/api-contract.toml +82 -0
  85. package/presets/gemini/commands/cc/ask.toml +54 -0
  86. package/presets/gemini/commands/cc/backlog.toml +103 -0
  87. package/presets/gemini/commands/cc/clarify.toml +31 -0
  88. package/presets/gemini/commands/cc/council.toml +87 -0
  89. package/presets/gemini/commands/cc/db-migration.toml +83 -0
  90. package/presets/gemini/commands/cc/explore.toml +35 -0
  91. package/presets/gemini/commands/cc/feature.toml +153 -0
  92. package/presets/gemini/commands/cc/fix.toml +163 -0
  93. package/presets/gemini/commands/cc/handoff.toml +40 -0
  94. package/presets/gemini/commands/cc/iterative.toml +145 -0
  95. package/presets/gemini/commands/cc/openspec.toml +186 -0
  96. package/presets/gemini/commands/cc/pagespeed.toml +119 -0
  97. package/presets/gemini/commands/cc/prototype.toml +37 -0
  98. package/presets/gemini/commands/cc/refactor.toml +158 -0
  99. package/presets/gemini/commands/cc/review.toml +150 -0
  100. package/presets/gemini/commands/cc/scorecard.toml +77 -0
  101. package/presets/gemini/commands/cc/security.toml +177 -0
  102. package/presets/gemini/commands/cc/spec-mutation.toml +187 -0
  103. package/presets/gemini/commands/cc/tdd-cycle.toml +264 -0
  104. package/presets/gemini/commands/cc/test-plan.toml +148 -0
  105. package/presets/gemini/commands/cc/triage.toml +33 -0
  106. package/presets/opencode/README.md +24 -21
  107. package/presets/opencode/agents/architect.md +6 -0
  108. package/presets/opencode/agents/implementer.md +7 -0
  109. package/presets/opencode/agents/reviewer.md +6 -0
  110. package/presets/opencode/agents/tester.md +6 -0
  111. package/presets/opencode/commands/cc-api-contract.md +14 -0
  112. package/presets/opencode/commands/cc-db-migration.md +14 -0
  113. package/presets/opencode/commands/cc-feature.md +18 -0
  114. package/presets/opencode/commands/cc-fix.md +17 -0
  115. package/presets/opencode/commands/cc-iterative.md +14 -0
  116. package/presets/opencode/commands/cc-openspec.md +14 -0
  117. package/presets/opencode/commands/cc-scorecard.md +2 -0
  118. package/presets/opencode/commands/cc-spec-mutation.md +190 -0
  119. package/presets/opencode/commands/cc-tdd-cycle.md +14 -0
  120. package/presets/opencode/opencode.jsonc +1 -1
  121. package/presets/opencode/prompts/v1.0.0/architect.md +6 -0
  122. package/presets/opencode/prompts/v1.0.0/implementer.md +7 -0
  123. package/presets/opencode/prompts/v1.0.0/reviewer.md +6 -0
  124. package/presets/opencode/prompts/v1.0.0/tester.md +6 -0
  125. package/presets/opencode/skills/backlog/SKILL.md +40 -70
  126. package/presets/opencode/skills/evaluation/SKILL.md +61 -2
  127. package/presets/opencode/skills/openspec/SKILL.md +46 -34
  128. package/presets/opencode/skills/testing-tdd/SKILL.md +35 -574
  129. package/presets/opencode/skills/using-cc-skills/SKILL.md +48 -0
  130. package/presets/shared/__pycache__/mutation_runner.cpython-314.pyc +0 -0
  131. package/presets/shared/invoke-hook.cjs +115 -0
  132. package/presets/shared/mutation_runner.py +273 -0
  133. package/src/presets/manifests/agy.yml +2 -0
  134. package/src/presets/manifests/claude.yml +3 -0
  135. package/src/presets/manifests/gemini.yml +15 -0
  136. package/src/presets/models/agy.yml +24 -24
  137. package/src/presets/models/claude.yml +10 -10
  138. package/src/presets/models/codex.yml +10 -10
  139. package/src/presets/models/cursor.yml +10 -10
  140. package/src/presets/models/gemini.yml +10 -10
  141. package/src/presets/models/opencode.yml +10 -10
  142. package/presets/agy/scripts/post-tool.sh +0 -25
  143. package/presets/agy/scripts/pre-tool.sh +0 -56
package/dist/library.js CHANGED
@@ -117,7 +117,7 @@ function validateCanonicalTaskCard(data) {
117
117
  function validateProductEvent(data) {
118
118
  return ProductEventSchema.parse(data);
119
119
  }
120
- var CouncilAgentSpecSchema, CouncilSpecSchema, ProjectProfileSchema, CompileCheckConfigSchema, LoopConfigSchema, CodeConductorConfigSchema, RunnerTargetSchema, InstallStrategySchema, ManifestEntrySchema, InstallManifestSchema, ToolProviderNamesSchema, PermissionProviderNamesSchema, ModelConfigSchema, ContractTargetSchema, ContractFormatSchema, AgentContractSchema, CouncilFindingSchema, CouncilVerdictInputSchema, ConsensusConfigSchema, CouncilVerdictSchema, ClaudeAgentFileSchema, OpenCodeAgentFileSchema, SentryStackFrameSchema, SentryWebhookSchema, MemoryPointerSchema, MemoryIndexSchema, GoalTaskSchema, GoalGraphSchema, ConfidenceLevelSchema, ProductNodeTypeSchema, GraphRelationSchema, KnowledgeEntitySchema, DecisionSchema, EvidenceSchema, CanonicalTaskCardStatusSchema, CanonicalTaskCardSchema, ProductGraphNodeSchema, ProductGraphEdgeSchema, ProductGraphSchema, ProductMetaSchema, ProductEventTypeSchema, ProductEventSchema, OperationalStateSchema, StrategicMemorySchema, ImpactReportSchema, BusinessReviewOutputSchema, VerificationReportSchema, BacklogStatusSchema, BacklogTypeSchema, BacklogPrioritySchema, BacklogGlobalSchema, BacklogItemSchema, BacklogDocumentSchema, OpenspecTaskCardPhaseSchema, OpenspecTaskCardStatusSchema, OpenspecTaskCardSchema, OpenspecStateSchema, WorkflowCommandSchema, CcepOutputFormatSchema, CommandEnvelopeSchema, WorkflowPhaseSchema, WorkflowRiskRuleSchema, WorkflowProfileSchema, ExecutionContextSchema, PlannerOutputSchema, AgentArtifactSchema, AgentOutputSchema, ImplementerTestsSchema, ImplementerOutputSchema, ReviewAxisSchema, ReviewFindingSchema, ReviewerOutputSchema, TechnicalPlanOutputSchema, ScorecardVerdictSchema, ScorecardCriterionIdSchema, ScorecardCriterionSchema, ScorecardRecordSchema, TaskOutcomeSourceSchema, TaskOutcomeStatusSchema, TaskOutcomeSchema, HarnessComponentIdSchema, HarnessComponentLayerSchema, HarnessToggleKindSchema, HarnessCatalogEntrySchema, HarnessCatalogSchema, HarnessOverlaySchema, HarnessExperimentSchema, HarnessSuiteTaskSchema, HarnessSuiteSchema, EvaluationIndexSchema, ExecutionProfileNameSchema, ExecutionProfileSchema;
120
+ var CouncilAgentSpecSchema, CouncilSpecSchema, ProjectProfileSchema, CompileCheckConfigSchema, LoopConfigSchema, CodeConductorConfigSchema, RunnerTargetSchema, InstallStrategySchema, ManifestEntrySchema, InstallManifestSchema, ToolProviderNamesSchema, PermissionProviderNamesSchema, ModelConfigSchema, ContractTargetSchema, ContractFormatSchema, AgentContractSchema, CouncilFindingSchema, CouncilVerdictInputSchema, ConsensusConfigSchema, CouncilVerdictSchema, ClaudeAgentFileSchema, OpenCodeAgentFileSchema, SentryStackFrameSchema, SentryWebhookSchema, MemoryPointerSchema, MemoryIndexSchema, GoalTaskSchema, GoalGraphSchema, ConfidenceLevelSchema, ProductNodeTypeSchema, GraphRelationSchema, KnowledgeEntitySchema, DecisionSchema, EvidenceSchema, CanonicalTaskCardStatusSchema, CanonicalTaskCardSchema, ProductGraphNodeSchema, ProductGraphEdgeSchema, ProductGraphSchema, ProductMetaSchema, ProductEventTypeSchema, ProductEventSchema, OperationalStateSchema, StrategicMemorySchema, ImpactReportSchema, BusinessReviewOutputSchema, VerificationReportSchema, BacklogStatusSchema, BacklogTypeSchema, BacklogPrioritySchema, BacklogGlobalSchema, BacklogItemSchema, BacklogDocumentSchema, OpenspecTaskCardPhaseSchema, OpenspecTaskCardStatusSchema, OpenspecTaskCardSchema, OpenspecStateSchema, SpecAnalyzeFindingSchema, SpecAnalyzeReportSchema, WorkflowCommandSchema, CcepOutputFormatSchema, CommandEnvelopeSchema, WorkflowPhaseSchema, WorkflowRiskRuleSchema, WorkflowProfileSchema, ExecutionContextSchema, PlannerOutputSchema, AgentArtifactSchema, AgentOutputSchema, ImplementerTestsSchema, ImplementerOutputSchema, ReviewAxisSchema, ReviewFindingSchema, ReviewerOutputSchema, TechnicalPlanOutputSchema, ScorecardVerdictSchema, ScorecardCriterionIdSchema, ScorecardCriterionSchema, ScorecardRecordSchema, TaskOutcomeSourceSchema, TaskOutcomeStatusSchema, TaskOutcomeSchema, HarnessComponentIdSchema, HarnessComponentLayerSchema, HarnessToggleKindSchema, HarnessCatalogEntrySchema, HarnessCatalogSchema, HarnessOverlaySchema, HarnessExperimentSchema, HarnessSuiteTaskSchema, HarnessSuiteSchema, EvaluationIndexSchema, ExecutionProfileNameSchema, ExecutionProfileSchema;
121
121
  var init_schemas = __esm(() => {
122
122
  CouncilAgentSpecSchema = z.object({
123
123
  id: z.string(),
@@ -608,6 +608,24 @@ var init_schemas = __esm(() => {
608
608
  changePaths: z.record(z.string(), z.string()).optional().default({}),
609
609
  itemSnapshots: z.record(z.string(), z.string()).optional().default({})
610
610
  });
611
+ SpecAnalyzeFindingSchema = z.object({
612
+ severity: z.enum(["CRITICAL", "HIGH", "MEDIUM", "LOW"]),
613
+ code: z.string(),
614
+ message: z.string()
615
+ });
616
+ SpecAnalyzeReportSchema = z.object({
617
+ changePath: z.string(),
618
+ frIds: z.array(z.string()),
619
+ scIds: z.array(z.string()),
620
+ mappedFr: z.array(z.string()),
621
+ mappedSc: z.array(z.string()),
622
+ mappedToTests: z.array(z.string()),
623
+ frCoveragePct: z.number(),
624
+ scCoveragePct: z.number(),
625
+ testCoveragePct: z.number(),
626
+ findings: z.array(SpecAnalyzeFindingSchema),
627
+ stop: z.boolean()
628
+ });
611
629
  WorkflowCommandSchema = z.enum([
612
630
  "feature",
613
631
  "fix",
@@ -615,6 +633,7 @@ var init_schemas = __esm(() => {
615
633
  "review",
616
634
  "test-plan",
617
635
  "tdd-cycle",
636
+ "spec-mutation",
618
637
  "api-contract",
619
638
  "db-migration",
620
639
  "pagespeed",
@@ -1852,6 +1871,12 @@ async function loadTddSuiteEvidence(projectRoot, taskId, evidenceId) {
1852
1871
  }
1853
1872
  return ok({ capturedBy, suiteFailed, suitePassed });
1854
1873
  }
1874
+ async function hasTddRunnerEvidence(projectRoot, taskId) {
1875
+ const collected = await collectTaskEvidence(projectRoot, taskId);
1876
+ if (!collected.success)
1877
+ return false;
1878
+ return collected.data.records.some((ev) => ev.type === "tdd" && ev.source === TDD_EVIDENCE_SOURCE && ev.data?.capturedBy === TDD_CAPTURED_BY);
1879
+ }
1855
1880
 
1856
1881
  // src/core/orchestrator/runtime-orchestrator.ts
1857
1882
  async function rollbackTaskStatus(projectRoot, graph, task, previousStatus, previousState, cause) {
@@ -2636,6 +2661,7 @@ export {
2636
2661
  rollbackTaskStatus,
2637
2662
  loopStateMachine,
2638
2663
  loadTddSuiteEvidence,
2664
+ hasTddRunnerEvidence,
2639
2665
  goalTaskToCanonicalCard,
2640
2666
  getReadyTasks,
2641
2667
  getNextTask,
@@ -2659,6 +2685,8 @@ export {
2659
2685
  TaskOutcomeSourceSchema,
2660
2686
  TaskOutcomeSchema,
2661
2687
  StrategicMemorySchema,
2688
+ SpecAnalyzeReportSchema,
2689
+ SpecAnalyzeFindingSchema,
2662
2690
  SentryWebhookSchema,
2663
2691
  SentryStackFrameSchema,
2664
2692
  ScorecardVerdictSchema,
@@ -2145,11 +2145,81 @@ export declare const OpenspecStateSchema: z.ZodObject<{
2145
2145
  changePaths?: Record<string, string> | undefined;
2146
2146
  itemSnapshots?: Record<string, string> | undefined;
2147
2147
  }>;
2148
- export declare const WorkflowCommandSchema: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2148
+ export declare const SpecAnalyzeFindingSchema: z.ZodObject<{
2149
+ severity: z.ZodEnum<["CRITICAL", "HIGH", "MEDIUM", "LOW"]>;
2150
+ code: z.ZodString;
2151
+ message: z.ZodString;
2152
+ }, "strip", z.ZodTypeAny, {
2153
+ code: string;
2154
+ message: string;
2155
+ severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW";
2156
+ }, {
2157
+ code: string;
2158
+ message: string;
2159
+ severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW";
2160
+ }>;
2161
+ export declare const SpecAnalyzeReportSchema: z.ZodObject<{
2162
+ changePath: z.ZodString;
2163
+ frIds: z.ZodArray<z.ZodString, "many">;
2164
+ scIds: z.ZodArray<z.ZodString, "many">;
2165
+ mappedFr: z.ZodArray<z.ZodString, "many">;
2166
+ mappedSc: z.ZodArray<z.ZodString, "many">;
2167
+ mappedToTests: z.ZodArray<z.ZodString, "many">;
2168
+ frCoveragePct: z.ZodNumber;
2169
+ scCoveragePct: z.ZodNumber;
2170
+ testCoveragePct: z.ZodNumber;
2171
+ findings: z.ZodArray<z.ZodObject<{
2172
+ severity: z.ZodEnum<["CRITICAL", "HIGH", "MEDIUM", "LOW"]>;
2173
+ code: z.ZodString;
2174
+ message: z.ZodString;
2175
+ }, "strip", z.ZodTypeAny, {
2176
+ code: string;
2177
+ message: string;
2178
+ severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW";
2179
+ }, {
2180
+ code: string;
2181
+ message: string;
2182
+ severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW";
2183
+ }>, "many">;
2184
+ stop: z.ZodBoolean;
2185
+ }, "strip", z.ZodTypeAny, {
2186
+ findings: {
2187
+ code: string;
2188
+ message: string;
2189
+ severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW";
2190
+ }[];
2191
+ changePath: string;
2192
+ frIds: string[];
2193
+ scIds: string[];
2194
+ mappedFr: string[];
2195
+ mappedSc: string[];
2196
+ mappedToTests: string[];
2197
+ frCoveragePct: number;
2198
+ scCoveragePct: number;
2199
+ testCoveragePct: number;
2200
+ stop: boolean;
2201
+ }, {
2202
+ findings: {
2203
+ code: string;
2204
+ message: string;
2205
+ severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW";
2206
+ }[];
2207
+ changePath: string;
2208
+ frIds: string[];
2209
+ scIds: string[];
2210
+ mappedFr: string[];
2211
+ mappedSc: string[];
2212
+ mappedToTests: string[];
2213
+ frCoveragePct: number;
2214
+ scCoveragePct: number;
2215
+ testCoveragePct: number;
2216
+ stop: boolean;
2217
+ }>;
2218
+ export declare const WorkflowCommandSchema: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "spec-mutation", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2149
2219
  export declare const CcepOutputFormatSchema: z.ZodEnum<["taskcard", "plan", "verdict"]>;
2150
2220
  export declare const CommandEnvelopeSchema: z.ZodObject<{
2151
2221
  protocolVersion: z.ZodLiteral<"ccep-1">;
2152
- command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2222
+ command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "spec-mutation", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2153
2223
  userRequest: z.ZodString;
2154
2224
  projectId: z.ZodString;
2155
2225
  repoContext: z.ZodObject<{
@@ -2192,7 +2262,7 @@ export declare const CommandEnvelopeSchema: z.ZodObject<{
2192
2262
  maxVariance: "low";
2193
2263
  }>;
2194
2264
  }, "strip", z.ZodTypeAny, {
2195
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2265
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2196
2266
  constraints: {
2197
2267
  outputFormat: "taskcard" | "plan" | "verdict";
2198
2268
  needConfirmation: boolean;
@@ -2212,7 +2282,7 @@ export declare const CommandEnvelopeSchema: z.ZodObject<{
2212
2282
  maxVariance: "low";
2213
2283
  };
2214
2284
  }, {
2215
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2285
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2216
2286
  constraints: {
2217
2287
  outputFormat: "taskcard" | "plan" | "verdict";
2218
2288
  needConfirmation: boolean;
@@ -2289,7 +2359,7 @@ export declare const WorkflowRiskRuleSchema: z.ZodObject<{
2289
2359
  export declare const WorkflowProfileSchema: z.ZodEffects<z.ZodObject<{
2290
2360
  id: z.ZodString;
2291
2361
  version: z.ZodNumber;
2292
- command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2362
+ command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "spec-mutation", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2293
2363
  taskCard: z.ZodOptional<z.ZodObject<{
2294
2364
  type: z.ZodString;
2295
2365
  requiredFields: z.ZodArray<z.ZodString, "many">;
@@ -2390,7 +2460,7 @@ export declare const WorkflowProfileSchema: z.ZodEffects<z.ZodObject<{
2390
2460
  }, "strip", z.ZodTypeAny, {
2391
2461
  id: string;
2392
2462
  version: number;
2393
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2463
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2394
2464
  phases: {
2395
2465
  id: string;
2396
2466
  type?: string | undefined;
@@ -2425,7 +2495,7 @@ export declare const WorkflowProfileSchema: z.ZodEffects<z.ZodObject<{
2425
2495
  }, {
2426
2496
  id: string;
2427
2497
  version: number;
2428
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2498
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2429
2499
  phases: {
2430
2500
  id: string;
2431
2501
  type?: string | undefined;
@@ -2460,7 +2530,7 @@ export declare const WorkflowProfileSchema: z.ZodEffects<z.ZodObject<{
2460
2530
  }>, {
2461
2531
  id: string;
2462
2532
  version: number;
2463
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2533
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2464
2534
  phases: {
2465
2535
  id: string;
2466
2536
  type?: string | undefined;
@@ -2495,7 +2565,7 @@ export declare const WorkflowProfileSchema: z.ZodEffects<z.ZodObject<{
2495
2565
  }, {
2496
2566
  id: string;
2497
2567
  version: number;
2498
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2568
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2499
2569
  phases: {
2500
2570
  id: string;
2501
2571
  type?: string | undefined;
@@ -2531,7 +2601,7 @@ export declare const WorkflowProfileSchema: z.ZodEffects<z.ZodObject<{
2531
2601
  export declare const ExecutionContextSchema: z.ZodObject<{
2532
2602
  envelope: z.ZodObject<{
2533
2603
  protocolVersion: z.ZodLiteral<"ccep-1">;
2534
- command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2604
+ command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "spec-mutation", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2535
2605
  userRequest: z.ZodString;
2536
2606
  projectId: z.ZodString;
2537
2607
  repoContext: z.ZodObject<{
@@ -2574,7 +2644,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2574
2644
  maxVariance: "low";
2575
2645
  }>;
2576
2646
  }, "strip", z.ZodTypeAny, {
2577
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2647
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2578
2648
  constraints: {
2579
2649
  outputFormat: "taskcard" | "plan" | "verdict";
2580
2650
  needConfirmation: boolean;
@@ -2594,7 +2664,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2594
2664
  maxVariance: "low";
2595
2665
  };
2596
2666
  }, {
2597
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2667
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2598
2668
  constraints: {
2599
2669
  outputFormat: "taskcard" | "plan" | "verdict";
2600
2670
  needConfirmation: boolean;
@@ -2617,7 +2687,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2617
2687
  profile: z.ZodEffects<z.ZodObject<{
2618
2688
  id: z.ZodString;
2619
2689
  version: z.ZodNumber;
2620
- command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2690
+ command: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "spec-mutation", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2621
2691
  taskCard: z.ZodOptional<z.ZodObject<{
2622
2692
  type: z.ZodString;
2623
2693
  requiredFields: z.ZodArray<z.ZodString, "many">;
@@ -2718,7 +2788,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2718
2788
  }, "strip", z.ZodTypeAny, {
2719
2789
  id: string;
2720
2790
  version: number;
2721
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2791
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2722
2792
  phases: {
2723
2793
  id: string;
2724
2794
  type?: string | undefined;
@@ -2753,7 +2823,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2753
2823
  }, {
2754
2824
  id: string;
2755
2825
  version: number;
2756
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2826
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2757
2827
  phases: {
2758
2828
  id: string;
2759
2829
  type?: string | undefined;
@@ -2788,7 +2858,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2788
2858
  }>, {
2789
2859
  id: string;
2790
2860
  version: number;
2791
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2861
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2792
2862
  phases: {
2793
2863
  id: string;
2794
2864
  type?: string | undefined;
@@ -2823,7 +2893,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2823
2893
  }, {
2824
2894
  id: string;
2825
2895
  version: number;
2826
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2896
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2827
2897
  phases: {
2828
2898
  id: string;
2829
2899
  type?: string | undefined;
@@ -2857,19 +2927,19 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2857
2927
  intakeSchema?: string | undefined;
2858
2928
  }>;
2859
2929
  intent: z.ZodObject<{
2860
- type: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2930
+ type: z.ZodEnum<["feature", "fix", "refactor", "review", "test-plan", "tdd-cycle", "spec-mutation", "api-contract", "db-migration", "pagespeed", "openspec", "backlog", "scorecard", "council", "iterative", "explore", "triage", "prototype", "handoff", "clarify", "security"]>;
2861
2931
  goal: z.ZodString;
2862
2932
  domain: z.ZodOptional<z.ZodString>;
2863
2933
  entity: z.ZodOptional<z.ZodString>;
2864
2934
  operation: z.ZodOptional<z.ZodString>;
2865
2935
  }, "strip", z.ZodTypeAny, {
2866
- type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2936
+ type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2867
2937
  goal: string;
2868
2938
  domain?: string | undefined;
2869
2939
  entity?: string | undefined;
2870
2940
  operation?: string | undefined;
2871
2941
  }, {
2872
- type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2942
+ type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2873
2943
  goal: string;
2874
2944
  domain?: string | undefined;
2875
2945
  entity?: string | undefined;
@@ -2932,7 +3002,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2932
3002
  profile: {
2933
3003
  id: string;
2934
3004
  version: number;
2935
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3005
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2936
3006
  phases: {
2937
3007
  id: string;
2938
3008
  type?: string | undefined;
@@ -2967,7 +3037,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2967
3037
  };
2968
3038
  outputSchema: string;
2969
3039
  envelope: {
2970
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3040
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2971
3041
  constraints: {
2972
3042
  outputFormat: "taskcard" | "plan" | "verdict";
2973
3043
  needConfirmation: boolean;
@@ -2988,7 +3058,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
2988
3058
  };
2989
3059
  };
2990
3060
  intent: {
2991
- type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3061
+ type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
2992
3062
  goal: string;
2993
3063
  domain?: string | undefined;
2994
3064
  entity?: string | undefined;
@@ -3017,7 +3087,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
3017
3087
  profile: {
3018
3088
  id: string;
3019
3089
  version: number;
3020
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3090
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3021
3091
  phases: {
3022
3092
  id: string;
3023
3093
  type?: string | undefined;
@@ -3052,7 +3122,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
3052
3122
  };
3053
3123
  outputSchema: string;
3054
3124
  envelope: {
3055
- command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3125
+ command: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3056
3126
  constraints: {
3057
3127
  outputFormat: "taskcard" | "plan" | "verdict";
3058
3128
  needConfirmation: boolean;
@@ -3073,7 +3143,7 @@ export declare const ExecutionContextSchema: z.ZodObject<{
3073
3143
  };
3074
3144
  };
3075
3145
  intent: {
3076
- type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3146
+ type: "council" | "security" | "feature" | "fix" | "refactor" | "review" | "test-plan" | "tdd-cycle" | "spec-mutation" | "api-contract" | "db-migration" | "pagespeed" | "openspec" | "backlog" | "scorecard" | "iterative" | "explore" | "triage" | "prototype" | "handoff" | "clarify";
3077
3147
  goal: string;
3078
3148
  domain?: string | undefined;
3079
3149
  entity?: string | undefined;
@@ -3920,6 +3990,7 @@ export type OpenspecTaskCardPhaseInput = z.infer<typeof OpenspecTaskCardPhaseSch
3920
3990
  export type OpenspecTaskCardStatusInput = z.infer<typeof OpenspecTaskCardStatusSchema>;
3921
3991
  export type OpenspecTaskCardInput = z.infer<typeof OpenspecTaskCardSchema>;
3922
3992
  export type OpenspecStateInput = z.infer<typeof OpenspecStateSchema>;
3993
+ export type SpecAnalyzeReportInput = z.infer<typeof SpecAnalyzeReportSchema>;
3923
3994
  export type ScorecardVerdictInput = z.infer<typeof ScorecardVerdictSchema>;
3924
3995
  export type ScorecardCriterionInput = z.infer<typeof ScorecardCriterionSchema>;
3925
3996
  export type ScorecardRecordInput = z.infer<typeof ScorecardRecordSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-codeconductor",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "A multi-agent orchestration framework for AI-assisted software engineering workflows.",
5
5
  "keywords": [
6
6
  "ai",
@@ -72,6 +72,7 @@ Antigravity CLI loads custom slash commands from `.agents/workflows/*.md`. The f
72
72
  | `/cc-review` | Runs a structured, multi-perspective code review and audit |
73
73
  | `/cc-test-plan` | Generates a structured test plan for a given scope |
74
74
  | `/cc-tdd-cycle` | Runs a Test-Driven Development (TDD) cycle |
75
+ | `/cc-spec-mutation` | Spec-locked TDD with SHA-256 freeze and mutation-testing gate |
75
76
  | `/cc-api-contract`| Handles API contract modification and validation |
76
77
  | `/cc-db-migration`| Coordinates database schema migrations safely |
77
78
  | `/cc-iterative` | Advanced iterative workflow — wayfinding, grilling, TDD, council |
@@ -141,7 +142,7 @@ When multiple signals apply, take the highest risk level. Do not average.
141
142
 
142
143
  **Does not:** Write code. Execute tests. Push to any branch.
143
144
 
144
- **Model:** `{{MODEL_GEMINI}}`
145
+ **Model:** `{{MODEL}}`
145
146
 
146
147
  **Responsibilities:**
147
148
  1. Validate the Task Card before doing anything else.
@@ -189,7 +190,7 @@ High-risk checkpoint: [yes | no — if yes, describe what triggers a stop]
189
190
  - bash: `deny`
190
191
  - network: `deny`
191
192
 
192
- **Model:** `{{MODEL_GEMINI}}`
193
+ **Model:** `{{MODEL}}`
193
194
 
194
195
  **Intake process:**
195
196
  1. Read the entire request before asking anything.
@@ -234,7 +235,7 @@ High-risk checkpoint: [yes | no — if yes, describe what triggers a stop]
234
235
  - bash: `allow` (git log, git diff, git status)
235
236
  - network: `deny`
236
237
 
237
- **Model:** `{{MODEL_GEMINI}}`
238
+ **Model:** `{{MODEL}}`
238
239
 
239
240
  **Repo Map format:**
240
241
  ```markdown
@@ -269,7 +270,7 @@ High-risk checkpoint: [yes | no — if yes, describe what triggers a stop]
269
270
  - bash: `deny`
270
271
  - network: `deny`
271
272
 
272
- **Model:** `{{MODEL_GEMINI}}`
273
+ **Model:** `{{MODEL}}`
273
274
 
274
275
  **Does not:** Write files. Execute commands. Make routing decisions.
275
276
 
@@ -293,7 +294,7 @@ When the orchestrator receives a GoalGraph, it delegates tasks in dependency ord
293
294
  - bash: `deny`
294
295
  - network: `deny`
295
296
 
296
- **Model:** `{{MODEL_GEMINI}}`
297
+ **Model:** `{{MODEL}}`
297
298
 
298
299
  **Technical Plan format:**
299
300
  ```markdown
@@ -330,7 +331,7 @@ When the orchestrator receives a GoalGraph, it delegates tasks in dependency ord
330
331
  - bash: `allow` (build, test, and lint commands only)
331
332
  - network: `deny`
332
333
 
333
- **Model:** `{{MODEL_GEMINI}}`
334
+ **Model:** `{{MODEL}}`
334
335
 
335
336
  **Pre-implementation checklist:**
336
337
  1. Create a Git Worktree: `git worktree add ../<branch>-session <branch>`
@@ -371,7 +372,7 @@ When the orchestrator receives a GoalGraph, it delegates tasks in dependency ord
371
372
  - bash: `allow` (test commands only)
372
373
  - network: `deny`
373
374
 
374
- **Model:** `{{MODEL_GEMINI}}`
375
+ **Model:** `{{MODEL}}`
375
376
 
376
377
  **Coverage Summary format:**
377
378
  ```markdown
@@ -400,7 +401,7 @@ When the orchestrator receives a GoalGraph, it delegates tasks in dependency ord
400
401
  - bash: `allow` (git diff, git status, test commands)
401
402
  - network: `deny`
402
403
 
403
- **Model:** `{{MODEL_GEMINI}}`
404
+ **Model:** `{{MODEL}}`
404
405
 
405
406
  **Review Axes & Gates:**
406
407
  - **Simplicity Gate**: Flag overcomplicated/speculative code. Ask: "Would a senior engineer say this is overbuilt?"
@@ -458,7 +459,7 @@ When the orchestrator receives a GoalGraph, it delegates tasks in dependency ord
458
459
  - bash: `deny`
459
460
  - network: `deny`
460
461
 
461
- **Model:** `{{MODEL_GEMINI}}`
462
+ **Model:** `{{MODEL}}`
462
463
 
463
464
  ---
464
465
 
@@ -7,7 +7,7 @@
7
7
  "hooks": [
8
8
  {
9
9
  "type": "command",
10
- "command": "if [ -f \"./.agents/scripts/post-tool.sh\" ]; then bash ./.agents/scripts/post-tool.sh; else bash \"$HOME/.gemini/config/scripts/post-tool.sh\"; fi"
10
+ "command": "node -e \"const fs=require('fs'),p=['scripts/invoke-hook.cjs','.agents/scripts/invoke-hook.cjs'].find(f=>fs.existsSync(f));if(p)require(require('path').resolve(p));else{if(process.argv.includes('--format=agy')){process.stdout.write(process.argv.includes('post-tool')?'{}\\n':'{\\\"decision\\\":\\\"allow\\\"}\\n');}process.exit(0);}\" post-tool --format=agy"
11
11
  }
12
12
  ]
13
13
  }
@@ -21,7 +21,7 @@
21
21
  "hooks": [
22
22
  {
23
23
  "type": "command",
24
- "command": "if [ -f \"./.agents/scripts/pre-tool.sh\" ]; then bash ./.agents/scripts/pre-tool.sh; else bash \"$HOME/.gemini/config/scripts/pre-tool.sh\"; fi"
24
+ "command": "node -e \"const fs=require('fs'),p=['scripts/invoke-hook.cjs','.agents/scripts/invoke-hook.cjs'].find(f=>fs.existsSync(f));if(p)require(require('path').resolve(p));else{if(process.argv.includes('--format=agy')){process.stdout.write(process.argv.includes('post-tool')?'{}\\n':'{\\\"decision\\\":\\\"allow\\\"}\\n');}process.exit(0);}\" pre-tool --format=agy"
25
25
  }
26
26
  ]
27
27
  }
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const { spawnSync } = require('node:child_process');
5
+ const { existsSync } = require('node:fs');
6
+ const { join, resolve } = require('node:path');
7
+
8
+ const VALID_EVENTS = ['pre-tool', 'post-tool', 'session-start'];
9
+ const SPAWN_TIMEOUT = 10000;
10
+
11
+ const rawArgs = process.argv.slice(1);
12
+ const args = rawArgs.filter((arg) => {
13
+ if (VALID_EVENTS.includes(arg) || arg.startsWith('-')) return true;
14
+ return false;
15
+ });
16
+
17
+ const event = args.find((a) => VALID_EVENTS.includes(a)) || 'pre-tool';
18
+ const extra = args.filter((a) => a !== event);
19
+ const isAgy = process.argv.some((a) => a === '--format=agy') || extra.includes('--format=agy');
20
+
21
+ function findProjectRoot() {
22
+ const candidates = [
23
+ process.env.PROJECT_ROOT,
24
+ process.env.WORKSPACE_DIR,
25
+ resolve(__dirname, '..', '..'),
26
+ process.cwd(),
27
+ ].filter(Boolean);
28
+
29
+ for (const dir of candidates) {
30
+ if (
31
+ existsSync(join(dir, 'package.json')) ||
32
+ existsSync(join(dir, '.git')) ||
33
+ existsSync(join(dir, '.agents')) ||
34
+ existsSync(join(dir, '.claude'))
35
+ ) {
36
+ return dir;
37
+ }
38
+ }
39
+ return resolve(__dirname, '..', '..');
40
+ }
41
+
42
+ const projectRoot = findProjectRoot();
43
+
44
+ function canRun(bin) {
45
+ try {
46
+ const result = spawnSync(bin, ['--version'], {
47
+ encoding: 'utf8',
48
+ windowsHide: true,
49
+ stdio: 'ignore',
50
+ timeout: SPAWN_TIMEOUT,
51
+ });
52
+ return result.status === 0;
53
+ } catch {
54
+ return false;
55
+ }
56
+ }
57
+
58
+ function tryRun(bin, runArgs) {
59
+ try {
60
+ const result = spawnSync(bin, runArgs, {
61
+ cwd: projectRoot,
62
+ stdio: 'inherit',
63
+ windowsHide: true,
64
+ env: process.env,
65
+ timeout: SPAWN_TIMEOUT,
66
+ });
67
+ if (result.error) {
68
+ return false;
69
+ }
70
+ if (result.status === 0) {
71
+ process.exit(0);
72
+ }
73
+ if (!isAgy && result.status === 2) {
74
+ process.exit(2);
75
+ }
76
+ return false;
77
+ } catch {
78
+ return false;
79
+ }
80
+ }
81
+
82
+ function fallback() {
83
+ if (isAgy) {
84
+ if (event === 'post-tool' || event === 'session-start') {
85
+ process.stdout.write('{}\n');
86
+ } else {
87
+ process.stdout.write('{"decision":"allow"}\n');
88
+ }
89
+ }
90
+ process.exit(0);
91
+ }
92
+
93
+ try {
94
+ const srcMain = join(projectRoot, 'src', 'cli', 'main.ts');
95
+ if (existsSync(srcMain) && canRun('bun')) {
96
+ tryRun('bun', ['run', srcMain, 'hook', event, ...extra]);
97
+ }
98
+
99
+ const packaged = join(projectRoot, 'node_modules', 'cc-codeconductor', 'dist', 'index.js');
100
+ if (existsSync(packaged)) {
101
+ tryRun(process.execPath, [packaged, 'hook', event, ...extra]);
102
+ }
103
+
104
+ const localDist = join(projectRoot, 'dist', 'index.js');
105
+ if (existsSync(localDist)) {
106
+ tryRun(process.execPath, [localDist, 'hook', event, ...extra]);
107
+ }
108
+
109
+ tryRun('npx', ['--no-install', 'cc-codeconductor', 'hook', event, ...extra]);
110
+ } catch {
111
+ // Ignore errors in runner attempts
112
+ }
113
+
114
+ fallback();
115
+