cc-codeconductor 1.5.0 → 1.5.1

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 (144) hide show
  1. package/README.md +20 -7
  2. package/dist/domain/product/entities.d.ts +1 -1
  3. package/dist/index.js +521 -246
  4. package/dist/library.js +47 -3
  5. package/dist/validation/schemas.d.ts +183 -21
  6. package/docs/generated/cli.md +8 -0
  7. package/package.json +1 -1
  8. package/presets/agy/workflows/cc-api-contract.md +4 -5
  9. package/presets/agy/workflows/cc-backlog.md +4 -5
  10. package/presets/agy/workflows/cc-clarify.md +4 -5
  11. package/presets/agy/workflows/cc-council.md +4 -5
  12. package/presets/agy/workflows/cc-db-migration.md +4 -5
  13. package/presets/agy/workflows/cc-explore.md +4 -5
  14. package/presets/agy/workflows/cc-feature.md +4 -5
  15. package/presets/agy/workflows/cc-fix.md +4 -5
  16. package/presets/agy/workflows/cc-handoff.md +8 -5
  17. package/presets/agy/workflows/cc-iterative.md +4 -5
  18. package/presets/agy/workflows/cc-odd.md +4 -3
  19. package/presets/agy/workflows/cc-openspec.md +5 -6
  20. package/presets/agy/workflows/cc-pagespeed.md +4 -5
  21. package/presets/agy/workflows/cc-prototype.md +4 -5
  22. package/presets/agy/workflows/cc-refactor.md +4 -5
  23. package/presets/agy/workflows/cc-review.md +4 -5
  24. package/presets/agy/workflows/cc-scorecard.md +4 -5
  25. package/presets/agy/workflows/cc-security.md +4 -5
  26. package/presets/agy/workflows/cc-spec-mutation.md +4 -5
  27. package/presets/agy/workflows/cc-tdd-cycle.md +4 -5
  28. package/presets/agy/workflows/cc-test-plan.md +4 -5
  29. package/presets/agy/workflows/cc-triage.md +4 -5
  30. package/presets/claude/CLAUDE.md +6 -5
  31. package/presets/claude/commands/cc/api-contract.md +4 -5
  32. package/presets/claude/commands/cc/backlog.md +4 -5
  33. package/presets/claude/commands/cc/clarify.md +4 -5
  34. package/presets/claude/commands/cc/council.md +4 -5
  35. package/presets/claude/commands/cc/db-migration.md +4 -5
  36. package/presets/claude/commands/cc/explore.md +4 -5
  37. package/presets/claude/commands/cc/feature.md +4 -5
  38. package/presets/claude/commands/cc/fix.md +4 -5
  39. package/presets/claude/commands/cc/handoff.md +8 -5
  40. package/presets/claude/commands/cc/iterative.md +4 -5
  41. package/presets/claude/commands/cc/odd.md +4 -3
  42. package/presets/claude/commands/cc/openspec.md +23 -7
  43. package/presets/claude/commands/cc/pagespeed.md +4 -5
  44. package/presets/claude/commands/cc/prototype.md +4 -5
  45. package/presets/claude/commands/cc/refactor.md +4 -5
  46. package/presets/claude/commands/cc/review.md +4 -5
  47. package/presets/claude/commands/cc/scorecard.md +4 -5
  48. package/presets/claude/commands/cc/security.md +4 -5
  49. package/presets/claude/commands/cc/spec-mutation.md +4 -5
  50. package/presets/claude/commands/cc/tdd-cycle.md +4 -5
  51. package/presets/claude/commands/cc/test-plan.md +4 -5
  52. package/presets/claude/commands/cc/triage.md +4 -5
  53. package/presets/claude/settings.json +32 -78
  54. package/presets/codex/config.toml +2 -0
  55. package/presets/codex/skills/cc-api-contract/SKILL.md +4 -5
  56. package/presets/codex/skills/cc-backlog/SKILL.md +4 -5
  57. package/presets/codex/skills/cc-clarify/SKILL.md +4 -5
  58. package/presets/codex/skills/cc-council/SKILL.md +10 -5
  59. package/presets/codex/skills/cc-db-migration/SKILL.md +4 -5
  60. package/presets/codex/skills/cc-explore/SKILL.md +4 -5
  61. package/presets/codex/skills/cc-feature/SKILL.md +4 -5
  62. package/presets/codex/skills/cc-fix/SKILL.md +4 -5
  63. package/presets/codex/skills/cc-handoff/SKILL.md +8 -5
  64. package/presets/codex/skills/cc-iterative/SKILL.md +4 -5
  65. package/presets/codex/skills/cc-odd/SKILL.md +4 -3
  66. package/presets/codex/skills/cc-openspec/SKILL.md +11 -6
  67. package/presets/codex/skills/cc-pagespeed/SKILL.md +4 -5
  68. package/presets/codex/skills/cc-prototype/SKILL.md +4 -5
  69. package/presets/codex/skills/cc-refactor/SKILL.md +4 -5
  70. package/presets/codex/skills/cc-review/SKILL.md +4 -5
  71. package/presets/codex/skills/cc-scorecard/SKILL.md +4 -5
  72. package/presets/codex/skills/cc-security/SKILL.md +4 -5
  73. package/presets/codex/skills/cc-spec-mutation/SKILL.md +4 -5
  74. package/presets/codex/skills/cc-tdd-cycle/SKILL.md +4 -5
  75. package/presets/codex/skills/cc-test-plan/SKILL.md +4 -5
  76. package/presets/codex/skills/cc-triage/SKILL.md +4 -5
  77. package/presets/cursor/commands/cc/api-contract.md +4 -5
  78. package/presets/cursor/commands/cc/backlog.md +4 -5
  79. package/presets/cursor/commands/cc/clarify.md +4 -5
  80. package/presets/cursor/commands/cc/council.md +4 -5
  81. package/presets/cursor/commands/cc/db-migration.md +4 -5
  82. package/presets/cursor/commands/cc/explore.md +4 -5
  83. package/presets/cursor/commands/cc/feature.md +4 -5
  84. package/presets/cursor/commands/cc/fix.md +4 -5
  85. package/presets/cursor/commands/cc/handoff.md +8 -5
  86. package/presets/cursor/commands/cc/iterative.md +4 -5
  87. package/presets/cursor/commands/cc/odd.md +4 -3
  88. package/presets/cursor/commands/cc/openspec.md +5 -6
  89. package/presets/cursor/commands/cc/pagespeed.md +4 -5
  90. package/presets/cursor/commands/cc/prototype.md +4 -5
  91. package/presets/cursor/commands/cc/refactor.md +4 -5
  92. package/presets/cursor/commands/cc/review.md +4 -5
  93. package/presets/cursor/commands/cc/scorecard.md +4 -5
  94. package/presets/cursor/commands/cc/security.md +4 -5
  95. package/presets/cursor/commands/cc/spec-mutation.md +4 -5
  96. package/presets/cursor/commands/cc/tdd-cycle.md +4 -5
  97. package/presets/cursor/commands/cc/test-plan.md +4 -5
  98. package/presets/cursor/commands/cc/triage.md +4 -5
  99. package/presets/gemini/commands/cc/api-contract.toml +4 -5
  100. package/presets/gemini/commands/cc/backlog.toml +4 -5
  101. package/presets/gemini/commands/cc/clarify.toml +4 -5
  102. package/presets/gemini/commands/cc/council.toml +4 -5
  103. package/presets/gemini/commands/cc/db-migration.toml +4 -5
  104. package/presets/gemini/commands/cc/explore.toml +4 -5
  105. package/presets/gemini/commands/cc/feature.toml +4 -5
  106. package/presets/gemini/commands/cc/fix.toml +4 -5
  107. package/presets/gemini/commands/cc/handoff.toml +8 -5
  108. package/presets/gemini/commands/cc/iterative.toml +4 -5
  109. package/presets/gemini/commands/cc/odd.toml +4 -3
  110. package/presets/gemini/commands/cc/openspec.toml +5 -6
  111. package/presets/gemini/commands/cc/pagespeed.toml +4 -5
  112. package/presets/gemini/commands/cc/prototype.toml +4 -5
  113. package/presets/gemini/commands/cc/refactor.toml +4 -5
  114. package/presets/gemini/commands/cc/review.toml +4 -5
  115. package/presets/gemini/commands/cc/scorecard.toml +4 -5
  116. package/presets/gemini/commands/cc/security.toml +4 -5
  117. package/presets/gemini/commands/cc/spec-mutation.toml +4 -5
  118. package/presets/gemini/commands/cc/tdd-cycle.toml +4 -5
  119. package/presets/gemini/commands/cc/test-plan.toml +4 -5
  120. package/presets/gemini/commands/cc/triage.toml +4 -5
  121. package/presets/opencode/commands/cc-api-contract.md +4 -5
  122. package/presets/opencode/commands/cc-backlog.md +4 -5
  123. package/presets/opencode/commands/cc-clarify.md +4 -5
  124. package/presets/opencode/commands/cc-council.md +4 -5
  125. package/presets/opencode/commands/cc-db-migration.md +4 -5
  126. package/presets/opencode/commands/cc-explore.md +4 -5
  127. package/presets/opencode/commands/cc-feature.md +4 -5
  128. package/presets/opencode/commands/cc-fix.md +4 -5
  129. package/presets/opencode/commands/cc-handoff.md +8 -5
  130. package/presets/opencode/commands/cc-iterative.md +4 -5
  131. package/presets/opencode/commands/cc-odd.md +4 -3
  132. package/presets/opencode/commands/cc-openspec.md +6 -7
  133. package/presets/opencode/commands/cc-pagespeed.md +4 -5
  134. package/presets/opencode/commands/cc-prototype.md +4 -5
  135. package/presets/opencode/commands/cc-refactor.md +4 -5
  136. package/presets/opencode/commands/cc-review.md +4 -5
  137. package/presets/opencode/commands/cc-scorecard.md +4 -5
  138. package/presets/opencode/commands/cc-security.md +4 -5
  139. package/presets/opencode/commands/cc-spec-mutation.md +4 -5
  140. package/presets/opencode/commands/cc-tdd-cycle.md +4 -5
  141. package/presets/opencode/commands/cc-test-plan.md +4 -5
  142. package/presets/opencode/commands/cc-triage.md +4 -5
  143. package/src/presets/manifests/codex.yml +3 -0
  144. package/src/presets/models/roles.yml +26 -28
package/dist/library.js CHANGED
@@ -149,7 +149,7 @@ function validateProductEvent(data) {
149
149
  function validateSkillsRegistry(data) {
150
150
  return SkillsRegistrySchema.parse(data);
151
151
  }
152
- var CouncilAgentSpecSchema, CouncilSpecSchema, ProjectProfileSchema, CompileCheckConfigSchema, LoopConfigSchema, CodeConductorConfigSchema, RunnerTargetSchema, InstallStrategySchema, ManifestEntrySchema, InstallManifestSchema, ToolProviderNamesSchema, PermissionProviderNamesSchema, ModelConfigSchema, SkillFrontmatterSchema, CommandFrontmatterSchema, TargetCapabilitiesSchema, 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, DeliveryRouteSchema, TokenUsageSchema, DeliveryTelemetrySchema, DeliveryLedgerTaskSchema, DeliveryLedgerSchema, DeliveryLedgerRequestSchema, TaskOutcomeSchema, HarnessComponentIdSchema, HarnessComponentLayerSchema, HarnessToggleKindSchema, HarnessCatalogEntrySchema, HarnessCatalogSchema, HarnessOverlaySchema, HarnessExperimentSchema, HarnessSuiteTaskSchema, HarnessSuiteSchema, EvaluationIndexSchema, ExecutionProfileNameSchema, ExecutionProfileSchema, SkillsRegistrySchema;
152
+ var CouncilAgentSpecSchema, CouncilSpecSchema, ProjectProfileSchema, CompileCheckConfigSchema, LoopConfigSchema, CodeConductorConfigSchema, RunnerTargetSchema, InstallStrategySchema, ManifestEntrySchema, InstallManifestSchema, ToolProviderNamesSchema, PermissionProviderNamesSchema, ModelConfigSchema, SkillFrontmatterSchema, CommandFrontmatterSchema, TargetCapabilitiesSchema, 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, FixIntakeOutputSchema, ScorecardVerdictSchema, ScorecardCriterionIdSchema, ScorecardCriterionSchema, ScorecardRecordSchema, TaskOutcomeSourceSchema, TaskOutcomeStatusSchema, DeliveryRouteSchema, TokenUsageSchema, DeliveryTelemetrySchema, DeliveryLedgerTaskSchema, DeliveryLedgerSchema, HandoffEnvelopeSchema, RepoRelativePathSchema, DeliveryLedgerRequestSchema, TaskOutcomeSchema, HarnessComponentIdSchema, HarnessComponentLayerSchema, HarnessToggleKindSchema, HarnessCatalogEntrySchema, HarnessCatalogSchema, HarnessOverlaySchema, HarnessExperimentSchema, HarnessSuiteTaskSchema, HarnessSuiteSchema, EvaluationIndexSchema, ExecutionProfileNameSchema, ExecutionProfileSchema, SkillsRegistrySchema;
153
153
  var init_schemas = __esm(() => {
154
154
  init_runner_target();
155
155
  CouncilAgentSpecSchema = z.object({
@@ -226,6 +226,7 @@ var init_schemas = __esm(() => {
226
226
  "append",
227
227
  "merge-json",
228
228
  "merge-managed",
229
+ "create-only",
229
230
  "skip"
230
231
  ]);
231
232
  ManifestEntrySchema = z.object({
@@ -530,7 +531,8 @@ var init_schemas = __esm(() => {
530
531
  "goal.updated",
531
532
  "blocker.detected",
532
533
  "verification.completed",
533
- "feedback.processed"
534
+ "feedback.processed",
535
+ "context.compiled"
534
536
  ]);
535
537
  ProductEventSchema = z.object({
536
538
  id: z.string(),
@@ -875,6 +877,11 @@ var init_schemas = __esm(() => {
875
877
  risks: z.array(z.string()).default([]),
876
878
  openQuestions: z.array(z.string()).optional()
877
879
  });
880
+ FixIntakeOutputSchema = z.object({
881
+ actualBehavior: z.string(),
882
+ expectedBehavior: z.string(),
883
+ reproductionSteps: z.array(z.string())
884
+ });
878
885
  ScorecardVerdictSchema = z.enum(["PASS", "REVISE", "REJECT"]);
879
886
  ScorecardCriterionIdSchema = z.enum([
880
887
  "acceptance",
@@ -946,16 +953,51 @@ var init_schemas = __esm(() => {
946
953
  nextStep: z.string().min(1),
947
954
  memoryTopicKey: z.string().min(1),
948
955
  workspace: z.record(z.string(), z.string()),
956
+ technicalPlanPath: z.string().min(1).optional(),
949
957
  createdAt: z.string().datetime(),
950
958
  updatedAt: z.string().datetime()
951
959
  });
960
+ HandoffEnvelopeSchema = z.object({
961
+ version: z.literal(1),
962
+ task: z.object({
963
+ id: z.string().min(1),
964
+ objective: z.string().min(1),
965
+ acceptanceCriteria: z.array(z.string().min(1)),
966
+ status: CanonicalTaskCardStatusSchema
967
+ }),
968
+ decisions: z.object({
969
+ constraints: z.array(z.string()),
970
+ unresolved: z.array(z.string())
971
+ }),
972
+ scope: z.object({
973
+ relevantFiles: z.array(z.string()),
974
+ boundaries: z.array(z.string())
975
+ }),
976
+ verification: z.object({
977
+ evidence: z.array(z.string())
978
+ }),
979
+ change: z.object({
980
+ touchedFiles: z.array(z.string())
981
+ }),
982
+ next: z.object({
983
+ role: z.string().min(1),
984
+ objective: z.string().min(1)
985
+ }),
986
+ sources: z.object({
987
+ deliveryLedger: z.string().min(1),
988
+ memoryTopicKey: z.string().min(1),
989
+ technicalPlanPath: z.string().min(1).optional()
990
+ })
991
+ });
992
+ RepoRelativePathSchema = z.string().min(1).refine((path) => !/^([/\\]|[A-Za-z]:)/.test(path) && !path.split(/[/\\]/).includes(".."), 'Path must be relative to the repository and must not contain ".." segments');
952
993
  DeliveryLedgerRequestSchema = z.object({
953
994
  id: z.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/),
954
995
  authorized: z.boolean(),
955
996
  route: DeliveryRouteSchema,
956
997
  taskCard: CanonicalTaskCardSchema,
957
998
  tasks: z.array(DeliveryLedgerTaskSchema).min(1),
958
- nextStep: z.string().min(1)
999
+ nextStep: z.string().min(1),
1000
+ technicalPlanPath: RepoRelativePathSchema.optional()
959
1001
  });
960
1002
  TaskOutcomeSchema = z.object({
961
1003
  id: z.string(),
@@ -2970,9 +3012,11 @@ export {
2970
3012
  ExecutionContextSchema,
2971
3013
  ExecutionProfileNameSchema,
2972
3014
  ExecutionProfileSchema,
3015
+ FixIntakeOutputSchema,
2973
3016
  GoalGraphSchema,
2974
3017
  GoalTaskSchema,
2975
3018
  GraphRelationSchema,
3019
+ HandoffEnvelopeSchema,
2976
3020
  HarnessCatalogEntrySchema,
2977
3021
  HarnessCatalogSchema,
2978
3022
  HarnessComponentIdSchema,
@@ -358,24 +358,24 @@ export declare const RunnerTargetSchema: z.ZodEnum<["opencode", "claude", "codex
358
358
  /**
359
359
  * Install manifest schemas
360
360
  */
361
- export declare const InstallStrategySchema: z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "skip"]>;
361
+ export declare const InstallStrategySchema: z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "create-only", "skip"]>;
362
362
  export declare const ManifestEntrySchema: z.ZodObject<{
363
363
  src: z.ZodString;
364
364
  dest: z.ZodString;
365
- strategy: z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "skip"]>;
366
- globalStrategy: z.ZodOptional<z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "skip"]>>;
365
+ strategy: z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "create-only", "skip"]>;
366
+ globalStrategy: z.ZodOptional<z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "create-only", "skip"]>>;
367
367
  template: z.ZodOptional<z.ZodBoolean>;
368
368
  }, "strip", z.ZodTypeAny, {
369
369
  src: string;
370
370
  dest: string;
371
- strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip";
372
- globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip" | undefined;
371
+ strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip";
372
+ globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip" | undefined;
373
373
  template?: boolean | undefined;
374
374
  }, {
375
375
  src: string;
376
376
  dest: string;
377
- strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip";
378
- globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip" | undefined;
377
+ strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip";
378
+ globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip" | undefined;
379
379
  template?: boolean | undefined;
380
380
  }>;
381
381
  export declare const InstallManifestSchema: z.ZodObject<{
@@ -383,28 +383,28 @@ export declare const InstallManifestSchema: z.ZodObject<{
383
383
  entries: z.ZodArray<z.ZodObject<{
384
384
  src: z.ZodString;
385
385
  dest: z.ZodString;
386
- strategy: z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "skip"]>;
387
- globalStrategy: z.ZodOptional<z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "skip"]>>;
386
+ strategy: z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "create-only", "skip"]>;
387
+ globalStrategy: z.ZodOptional<z.ZodEnum<["overwrite", "append", "merge-json", "merge-managed", "create-only", "skip"]>>;
388
388
  template: z.ZodOptional<z.ZodBoolean>;
389
389
  }, "strip", z.ZodTypeAny, {
390
390
  src: string;
391
391
  dest: string;
392
- strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip";
393
- globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip" | undefined;
392
+ strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip";
393
+ globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip" | undefined;
394
394
  template?: boolean | undefined;
395
395
  }, {
396
396
  src: string;
397
397
  dest: string;
398
- strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip";
399
- globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip" | undefined;
398
+ strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip";
399
+ globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip" | undefined;
400
400
  template?: boolean | undefined;
401
401
  }>, "many">;
402
402
  }, "strip", z.ZodTypeAny, {
403
403
  entries: {
404
404
  src: string;
405
405
  dest: string;
406
- strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip";
407
- globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip" | undefined;
406
+ strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip";
407
+ globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip" | undefined;
408
408
  template?: boolean | undefined;
409
409
  }[];
410
410
  target: "opencode" | "claude" | "codex" | "gemini" | "cursor" | "agy" | "pi";
@@ -412,8 +412,8 @@ export declare const InstallManifestSchema: z.ZodObject<{
412
412
  entries: {
413
413
  src: string;
414
414
  dest: string;
415
- strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip";
416
- globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "skip" | undefined;
415
+ strategy: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip";
416
+ globalStrategy?: "overwrite" | "append" | "merge-json" | "merge-managed" | "create-only" | "skip" | undefined;
417
417
  template?: boolean | undefined;
418
418
  }[];
419
419
  target: "opencode" | "claude" | "codex" | "gemini" | "cursor" | "agy" | "pi";
@@ -1686,20 +1686,20 @@ export declare const ProductMetaSchema: z.ZodObject<{
1686
1686
  lastIngestAt?: string | undefined;
1687
1687
  sourceHashes?: Record<string, string> | undefined;
1688
1688
  }>;
1689
- export declare const ProductEventTypeSchema: z.ZodEnum<["task.started", "task.completed", "decision.recorded", "evidence.added", "ingest.completed", "goal.updated", "blocker.detected", "verification.completed", "feedback.processed"]>;
1689
+ export declare const ProductEventTypeSchema: z.ZodEnum<["task.started", "task.completed", "decision.recorded", "evidence.added", "ingest.completed", "goal.updated", "blocker.detected", "verification.completed", "feedback.processed", "context.compiled"]>;
1690
1690
  export declare const ProductEventSchema: z.ZodObject<{
1691
1691
  id: z.ZodString;
1692
- type: z.ZodEnum<["task.started", "task.completed", "decision.recorded", "evidence.added", "ingest.completed", "goal.updated", "blocker.detected", "verification.completed", "feedback.processed"]>;
1692
+ type: z.ZodEnum<["task.started", "task.completed", "decision.recorded", "evidence.added", "ingest.completed", "goal.updated", "blocker.detected", "verification.completed", "feedback.processed", "context.compiled"]>;
1693
1693
  timestamp: z.ZodString;
1694
1694
  payload: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1695
1695
  }, "strip", z.ZodTypeAny, {
1696
1696
  id: string;
1697
- type: "task.started" | "task.completed" | "decision.recorded" | "evidence.added" | "ingest.completed" | "goal.updated" | "blocker.detected" | "verification.completed" | "feedback.processed";
1697
+ type: "task.started" | "task.completed" | "decision.recorded" | "evidence.added" | "ingest.completed" | "goal.updated" | "blocker.detected" | "verification.completed" | "feedback.processed" | "context.compiled";
1698
1698
  timestamp: string;
1699
1699
  payload: Record<string, unknown>;
1700
1700
  }, {
1701
1701
  id: string;
1702
- type: "task.started" | "task.completed" | "decision.recorded" | "evidence.added" | "ingest.completed" | "goal.updated" | "blocker.detected" | "verification.completed" | "feedback.processed";
1702
+ type: "task.started" | "task.completed" | "decision.recorded" | "evidence.added" | "ingest.completed" | "goal.updated" | "blocker.detected" | "verification.completed" | "feedback.processed" | "context.compiled";
1703
1703
  timestamp: string;
1704
1704
  payload?: Record<string, unknown> | undefined;
1705
1705
  }>;
@@ -3648,6 +3648,19 @@ export declare const TechnicalPlanOutputSchema: z.ZodObject<{
3648
3648
  filesAffected?: string[] | undefined;
3649
3649
  openQuestions?: string[] | undefined;
3650
3650
  }>;
3651
+ export declare const FixIntakeOutputSchema: z.ZodObject<{
3652
+ actualBehavior: z.ZodString;
3653
+ expectedBehavior: z.ZodString;
3654
+ reproductionSteps: z.ZodArray<z.ZodString, "many">;
3655
+ }, "strip", z.ZodTypeAny, {
3656
+ actualBehavior: string;
3657
+ expectedBehavior: string;
3658
+ reproductionSteps: string[];
3659
+ }, {
3660
+ actualBehavior: string;
3661
+ expectedBehavior: string;
3662
+ reproductionSteps: string[];
3663
+ }>;
3651
3664
  export declare const ScorecardVerdictSchema: z.ZodEnum<["PASS", "REVISE", "REJECT"]>;
3652
3665
  export declare const ScorecardCriterionIdSchema: z.ZodEnum<["acceptance", "minimal_diff", "tests", "regressions", "conventions", "documentation", "context_discipline", "cc_gain"]>;
3653
3666
  export declare const ScorecardCriterionSchema: z.ZodObject<{
@@ -3919,6 +3932,7 @@ export declare const DeliveryLedgerSchema: z.ZodObject<{
3919
3932
  nextStep: z.ZodString;
3920
3933
  memoryTopicKey: z.ZodString;
3921
3934
  workspace: z.ZodRecord<z.ZodString, z.ZodString>;
3935
+ technicalPlanPath: z.ZodOptional<z.ZodString>;
3922
3936
  createdAt: z.ZodString;
3923
3937
  updatedAt: z.ZodString;
3924
3938
  }, "strip", z.ZodTypeAny, {
@@ -3960,6 +3974,7 @@ export declare const DeliveryLedgerSchema: z.ZodObject<{
3960
3974
  nextStep: string;
3961
3975
  memoryTopicKey: string;
3962
3976
  workspace: Record<string, string>;
3977
+ technicalPlanPath?: string | undefined;
3963
3978
  }, {
3964
3979
  id: string;
3965
3980
  version: 1;
@@ -3999,6 +4014,149 @@ export declare const DeliveryLedgerSchema: z.ZodObject<{
3999
4014
  nextStep: string;
4000
4015
  memoryTopicKey: string;
4001
4016
  workspace: Record<string, string>;
4017
+ technicalPlanPath?: string | undefined;
4018
+ }>;
4019
+ /**
4020
+ * A compact, derived view of a Delivery Ledger for a new agent or session.
4021
+ * It intentionally contains references and current evidence, never a transcript.
4022
+ */
4023
+ export declare const HandoffEnvelopeSchema: z.ZodObject<{
4024
+ version: z.ZodLiteral<1>;
4025
+ task: z.ZodObject<{
4026
+ id: z.ZodString;
4027
+ objective: z.ZodString;
4028
+ acceptanceCriteria: z.ZodArray<z.ZodString, "many">;
4029
+ status: z.ZodEnum<["draft", "ready", "in-progress", "review", "done", "blocked"]>;
4030
+ }, "strip", z.ZodTypeAny, {
4031
+ id: string;
4032
+ status: "in-progress" | "done" | "blocked" | "draft" | "ready" | "review";
4033
+ objective: string;
4034
+ acceptanceCriteria: string[];
4035
+ }, {
4036
+ id: string;
4037
+ status: "in-progress" | "done" | "blocked" | "draft" | "ready" | "review";
4038
+ objective: string;
4039
+ acceptanceCriteria: string[];
4040
+ }>;
4041
+ decisions: z.ZodObject<{
4042
+ constraints: z.ZodArray<z.ZodString, "many">;
4043
+ unresolved: z.ZodArray<z.ZodString, "many">;
4044
+ }, "strip", z.ZodTypeAny, {
4045
+ constraints: string[];
4046
+ unresolved: string[];
4047
+ }, {
4048
+ constraints: string[];
4049
+ unresolved: string[];
4050
+ }>;
4051
+ scope: z.ZodObject<{
4052
+ relevantFiles: z.ZodArray<z.ZodString, "many">;
4053
+ boundaries: z.ZodArray<z.ZodString, "many">;
4054
+ }, "strip", z.ZodTypeAny, {
4055
+ boundaries: string[];
4056
+ relevantFiles: string[];
4057
+ }, {
4058
+ boundaries: string[];
4059
+ relevantFiles: string[];
4060
+ }>;
4061
+ verification: z.ZodObject<{
4062
+ evidence: z.ZodArray<z.ZodString, "many">;
4063
+ }, "strip", z.ZodTypeAny, {
4064
+ evidence: string[];
4065
+ }, {
4066
+ evidence: string[];
4067
+ }>;
4068
+ change: z.ZodObject<{
4069
+ touchedFiles: z.ZodArray<z.ZodString, "many">;
4070
+ }, "strip", z.ZodTypeAny, {
4071
+ touchedFiles: string[];
4072
+ }, {
4073
+ touchedFiles: string[];
4074
+ }>;
4075
+ next: z.ZodObject<{
4076
+ role: z.ZodString;
4077
+ objective: z.ZodString;
4078
+ }, "strip", z.ZodTypeAny, {
4079
+ role: string;
4080
+ objective: string;
4081
+ }, {
4082
+ role: string;
4083
+ objective: string;
4084
+ }>;
4085
+ sources: z.ZodObject<{
4086
+ deliveryLedger: z.ZodString;
4087
+ memoryTopicKey: z.ZodString;
4088
+ technicalPlanPath: z.ZodOptional<z.ZodString>;
4089
+ }, "strip", z.ZodTypeAny, {
4090
+ memoryTopicKey: string;
4091
+ deliveryLedger: string;
4092
+ technicalPlanPath?: string | undefined;
4093
+ }, {
4094
+ memoryTopicKey: string;
4095
+ deliveryLedger: string;
4096
+ technicalPlanPath?: string | undefined;
4097
+ }>;
4098
+ }, "strip", z.ZodTypeAny, {
4099
+ version: 1;
4100
+ task: {
4101
+ id: string;
4102
+ status: "in-progress" | "done" | "blocked" | "draft" | "ready" | "review";
4103
+ objective: string;
4104
+ acceptanceCriteria: string[];
4105
+ };
4106
+ scope: {
4107
+ boundaries: string[];
4108
+ relevantFiles: string[];
4109
+ };
4110
+ decisions: {
4111
+ constraints: string[];
4112
+ unresolved: string[];
4113
+ };
4114
+ verification: {
4115
+ evidence: string[];
4116
+ };
4117
+ change: {
4118
+ touchedFiles: string[];
4119
+ };
4120
+ next: {
4121
+ role: string;
4122
+ objective: string;
4123
+ };
4124
+ sources: {
4125
+ memoryTopicKey: string;
4126
+ deliveryLedger: string;
4127
+ technicalPlanPath?: string | undefined;
4128
+ };
4129
+ }, {
4130
+ version: 1;
4131
+ task: {
4132
+ id: string;
4133
+ status: "in-progress" | "done" | "blocked" | "draft" | "ready" | "review";
4134
+ objective: string;
4135
+ acceptanceCriteria: string[];
4136
+ };
4137
+ scope: {
4138
+ boundaries: string[];
4139
+ relevantFiles: string[];
4140
+ };
4141
+ decisions: {
4142
+ constraints: string[];
4143
+ unresolved: string[];
4144
+ };
4145
+ verification: {
4146
+ evidence: string[];
4147
+ };
4148
+ change: {
4149
+ touchedFiles: string[];
4150
+ };
4151
+ next: {
4152
+ role: string;
4153
+ objective: string;
4154
+ };
4155
+ sources: {
4156
+ memoryTopicKey: string;
4157
+ deliveryLedger: string;
4158
+ technicalPlanPath?: string | undefined;
4159
+ };
4002
4160
  }>;
4003
4161
  export declare const DeliveryLedgerRequestSchema: z.ZodObject<{
4004
4162
  id: z.ZodString;
@@ -4091,6 +4249,7 @@ export declare const DeliveryLedgerRequestSchema: z.ZodObject<{
4091
4249
  title: string;
4092
4250
  }>, "many">;
4093
4251
  nextStep: z.ZodString;
4252
+ technicalPlanPath: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
4094
4253
  }, "strip", z.ZodTypeAny, {
4095
4254
  id: string;
4096
4255
  tasks: {
@@ -4126,6 +4285,7 @@ export declare const DeliveryLedgerRequestSchema: z.ZodObject<{
4126
4285
  route: "openspec" | "read-only" | "small" | "tracked";
4127
4286
  nextStep: string;
4128
4287
  authorized: boolean;
4288
+ technicalPlanPath?: string | undefined;
4129
4289
  }, {
4130
4290
  id: string;
4131
4291
  tasks: {
@@ -4161,6 +4321,7 @@ export declare const DeliveryLedgerRequestSchema: z.ZodObject<{
4161
4321
  route: "openspec" | "read-only" | "small" | "tracked";
4162
4322
  nextStep: string;
4163
4323
  authorized: boolean;
4324
+ technicalPlanPath?: string | undefined;
4164
4325
  }>;
4165
4326
  export declare const TaskOutcomeSchema: z.ZodObject<{
4166
4327
  id: z.ZodString;
@@ -4633,6 +4794,7 @@ export type HarnessSuiteTaskInput = z.infer<typeof HarnessSuiteTaskSchema>;
4633
4794
  export type HarnessSuiteInput = z.infer<typeof HarnessSuiteSchema>;
4634
4795
  export type WorkflowCommandInput = z.infer<typeof WorkflowCommandSchema>;
4635
4796
  export type DeliveryLedgerInput = z.infer<typeof DeliveryLedgerSchema>;
4797
+ export type HandoffEnvelopeInput = z.infer<typeof HandoffEnvelopeSchema>;
4636
4798
  export type DeliveryLedgerRequestInput = z.infer<typeof DeliveryLedgerRequestSchema>;
4637
4799
  export type CommandEnvelopeInput = z.infer<typeof CommandEnvelopeSchema>;
4638
4800
  export type WorkflowProfileInput = z.infer<typeof WorkflowProfileSchema>;
@@ -152,6 +152,14 @@ Run CCEP contract workflows.
152
152
  cc-codeconductor ccep <subcommand>
153
153
  ```
154
154
 
155
+ ## odd
156
+
157
+ Create, resume, and hand off tracked delivery work.
158
+
159
+ ```text
160
+ cc-codeconductor odd <create|read|reconcile|handoff>
161
+ ```
162
+
155
163
  ## openspec
156
164
 
157
165
  Run the OpenSpec delivery loop.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-codeconductor",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "A multi-agent orchestration framework for AI-assisted software engineering workflows.",
5
5
  "keywords": [
6
6
  "ai",
@@ -13,11 +13,10 @@ API contract request: $ARGUMENTS
13
13
 
14
14
  Command: `api-contract` (fixed for this workflow — do not infer from user text)
15
15
 
16
- 1. Run: `npx cc-codeconductor ccep parse --command api-contract "$ARGUMENTS" --output json`
17
- 2. Run: `npx cc-codeconductor ccep resolve --command api-contract "$ARGUMENTS" --output json`
18
- 3. Run: `npx cc-codeconductor ccep profile api-contract --output json`
19
- 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.
20
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
16
+ 1. Run: `npx cc-codeconductor ccep profile api-contract --output json` to get the phases and their roles.
17
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command api-contract --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
18
+ 3. 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
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
21
20
 
22
21
  ---
23
22
 
@@ -18,11 +18,10 @@ deliver implementation — that is `/cc-openspec`.
18
18
 
19
19
  Command: `backlog` (fixed for this workflow — do not infer from user text)
20
20
 
21
- 1. Run: `npx cc-codeconductor ccep parse --command backlog "$ARGUMENTS" --output json`
22
- 2. Run: `npx cc-codeconductor ccep resolve --command backlog "$ARGUMENTS" --output json`
23
- 3. Run: `npx cc-codeconductor ccep profile backlog --output json`
24
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command backlog --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
25
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
21
+ 1. Run: `npx cc-codeconductor ccep profile backlog --output json` to get the phases and their roles.
22
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command backlog --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
23
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command backlog --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
24
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
26
25
 
27
26
  ---
28
27
 
@@ -12,11 +12,10 @@ Clarify request: $ARGUMENTS
12
12
 
13
13
  Command: `clarify` (fixed for this workflow — do not infer from user text)
14
14
 
15
- 1. Run: `npx cc-codeconductor ccep parse --command clarify "$ARGUMENTS" --output json`
16
- 2. Run: `npx cc-codeconductor ccep resolve --command clarify "$ARGUMENTS" --output json`
17
- 3. Run: `npx cc-codeconductor ccep profile clarify --output json`
18
- 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.
19
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
15
+ 1. Run: `npx cc-codeconductor ccep profile clarify --output json` to get the phases and their roles.
16
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command clarify --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
17
+ 3. 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
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
20
19
 
21
20
  ---
22
21
 
@@ -12,11 +12,10 @@ Task request: $ARGUMENTS
12
12
  Command: `council` (fixed for this workflow — do not infer from user text)
13
13
  command: council
14
14
 
15
- 1. Run: `npx cc-codeconductor ccep parse --command council "$ARGUMENTS" --output json`
16
- 2. Run: `npx cc-codeconductor ccep resolve --command council "$ARGUMENTS" --output json`
17
- 3. Run: `npx cc-codeconductor ccep profile council --output json`
18
- 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.
19
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
15
+ 1. Run: `npx cc-codeconductor ccep profile council --output json` to get the phases and their roles.
16
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command council --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
17
+ 3. 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
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
20
19
 
21
20
  ---
22
21
 
@@ -13,11 +13,10 @@ Migration request: $ARGUMENTS
13
13
 
14
14
  Command: `db-migration` (fixed for this workflow — do not infer from user text)
15
15
 
16
- 1. Run: `npx cc-codeconductor ccep parse --command db-migration "$ARGUMENTS" --output json`
17
- 2. Run: `npx cc-codeconductor ccep resolve --command db-migration "$ARGUMENTS" --output json`
18
- 3. Run: `npx cc-codeconductor ccep profile db-migration --output json`
19
- 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.
20
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
16
+ 1. Run: `npx cc-codeconductor ccep profile db-migration --output json` to get the phases and their roles.
17
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command db-migration --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
18
+ 3. 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
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
21
20
  Canonical delivery order is test-before-implement whenever both phases apply.
22
21
 
23
22
  ---
@@ -12,11 +12,10 @@ Explore request: $ARGUMENTS
12
12
 
13
13
  Command: `explore` (fixed for this workflow — do not infer from user text)
14
14
 
15
- 1. Run: `npx cc-codeconductor ccep parse --command explore "$ARGUMENTS" --output json`
16
- 2. Run: `npx cc-codeconductor ccep resolve --command explore "$ARGUMENTS" --output json`
17
- 3. Run: `npx cc-codeconductor ccep profile explore --output json`
18
- 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.
19
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
15
+ 1. Run: `npx cc-codeconductor ccep profile explore --output json` to get the phases and their roles.
16
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command explore --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
17
+ 3. 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
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
20
19
 
21
20
  ---
22
21
 
@@ -35,11 +35,10 @@ unavailable visual or emulator checks remain pending rather than claimed complet
35
35
 
36
36
  Command: `feature` (fixed for this workflow — do not infer from user text)
37
37
 
38
- 1. Run: `npx cc-codeconductor ccep parse --command feature "$ARGUMENTS" --output json`
39
- 2. Run: `npx cc-codeconductor ccep resolve --command feature "$ARGUMENTS" --output json`
40
- 3. Run: `npx cc-codeconductor ccep profile feature --output json`
41
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command feature --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
42
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
38
+ 1. Run: `npx cc-codeconductor ccep profile feature --output json` to get the phases and their roles.
39
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command feature --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
40
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command feature --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
41
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
43
42
  Canonical delivery order is test-before-implement whenever both phases apply.
44
43
 
45
44
  ---
@@ -45,11 +45,10 @@ unavailable visual or emulator checks remain pending rather than claimed complet
45
45
 
46
46
  Command: `fix` (fixed for this workflow — do not infer from user text)
47
47
 
48
- 1. Run: `npx cc-codeconductor ccep parse --command fix "$ARGUMENTS" --output json`
49
- 2. Run: `npx cc-codeconductor ccep resolve --command fix "$ARGUMENTS" --output json`
50
- 3. Run: `npx cc-codeconductor ccep profile fix --output json`
51
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command fix --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
52
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
48
+ 1. Run: `npx cc-codeconductor ccep profile fix --output json` to get the phases and their roles.
49
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command fix --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
50
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command fix --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
51
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
53
52
  Canonical delivery order is test-before-implement whenever both phases apply.
54
53
 
55
54
  ---
@@ -12,11 +12,10 @@ Handoff request: $ARGUMENTS
12
12
 
13
13
  Command: `handoff` (fixed for this workflow — do not infer from user text)
14
14
 
15
- 1. Run: `npx cc-codeconductor ccep parse --command handoff "$ARGUMENTS" --output json`
16
- 2. Run: `npx cc-codeconductor ccep resolve --command handoff "$ARGUMENTS" --output json`
17
- 3. Run: `npx cc-codeconductor ccep profile handoff --output json`
18
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command handoff --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.
15
+ 1. Run: `npx cc-codeconductor ccep profile handoff --output json` to get the phases and their roles.
16
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command handoff --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
17
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command handoff --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
18
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
20
19
 
21
20
  ---
22
21
 
@@ -36,6 +35,10 @@ pass/fail (not log dumps), open questions, and the next `/cc-` command.
36
35
  Link the Delivery Ledger and verification evidence when they exist; do not
37
36
  repeat the original request or transcript. Do not edit source or tests.
38
37
 
38
+ If a Delivery Ledger exists, run `npx cc-codeconductor odd handoff --id <ledger-id> --output json`
39
+ and use its `handoff` envelope as the source for these fields. Secret redaction
40
+ still applies.
41
+
39
42
  ---
40
43
 
41
44
  ## Completion