thoth-agents 0.2.11 → 0.3.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.
- package/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +21 -0
- package/README.md +301 -311
- package/dist/agents/configured-role-prompt.d.ts +9 -0
- package/dist/agents/prompt-sections.d.ts +8 -4
- package/dist/agents/prompt-utils.d.ts +0 -4
- package/dist/{chunk-ASKXWU6E.js → chunk-2MZ5C2RN.js} +1078 -1725
- package/dist/chunk-XO74DXBZ.js +1781 -0
- package/dist/{chunk-6BNAV534.js → chunk-YUCGIJPP.js} +12 -30
- package/dist/cli/claude-code-install.d.ts +24 -26
- package/dist/cli/claude-code-paths.d.ts +0 -28
- package/dist/cli/codex-install.d.ts +2 -2
- package/dist/cli/codex-paths.d.ts +0 -2
- package/dist/cli/index.js +279 -119
- package/dist/cli/install.d.ts +5 -1
- package/dist/cli/model-catalog/cache.d.ts +1 -1
- package/dist/cli/operations/claude-code.d.ts +6 -3
- package/dist/cli/operations/codex.d.ts +2 -1
- package/dist/cli/operations/opencode.d.ts +2 -1
- package/dist/cli/operations/types.d.ts +9 -1
- package/dist/cli/package-root.d.ts +1 -0
- package/dist/cli/providers.d.ts +6 -116
- package/dist/cli/skills.d.ts +19 -32
- package/dist/cli/thoth-mem-install.d.ts +45 -0
- package/dist/cli/tui/components/StatusView.d.ts +12 -1
- package/dist/cli/tui/index.js +256 -142
- package/dist/cli/tui/operations.d.ts +4 -3
- package/dist/cli/types.d.ts +0 -10
- package/dist/config/constants.d.ts +20 -16
- package/dist/config/index.d.ts +0 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/schema.d.ts +2 -38
- package/dist/config/utils.d.ts +1 -2
- package/dist/harness/adapters/codex-surfaces.d.ts +3 -3
- package/dist/harness/core/agent-pack.d.ts +37 -29
- package/dist/harness/core/memory-governance.d.ts +24 -48
- package/dist/harness/core/sdd.d.ts +364 -131
- package/dist/harness/generate-integration-packages.d.ts +20 -0
- package/dist/harness/opencode-init-command.d.ts +11 -0
- package/dist/harness/types.d.ts +14 -1
- package/dist/harness/writers/claude-code-subagent.d.ts +3 -1
- package/dist/hooks/index.d.ts +0 -5
- package/dist/index.js +562 -1314
- package/dist/mcp/index.d.ts +1 -2
- package/package.json +17 -12
- package/plugin/.claude-plugin/.thoth-agents-plugin-assets.json +50 -0
- package/plugin/.claude-plugin/plugin.json +8 -0
- package/plugin/.codex-plugin/.thoth-agents-plugin-assets.json +16 -0
- package/plugin/.codex-plugin/plugin.json +7 -0
- package/plugin/.mcp.json +19 -0
- package/plugin/agents/deep.md +89 -0
- package/plugin/agents/designer.md +89 -0
- package/plugin/agents/explorer.md +90 -0
- package/plugin/agents/librarian.md +90 -0
- package/plugin/agents/oracle.md +92 -0
- package/plugin/agents/orchestrator.md +128 -0
- package/plugin/agents/quick.md +89 -0
- package/plugin/codex.mcp.json +17 -0
- package/plugin/settings.json +3 -0
- package/plugin/skills/thoth-archive/SKILL.md +40 -0
- package/plugin/skills/thoth-archive/scripts/archive.mjs +748 -0
- package/plugin/skills/thoth-constitution/SKILL.md +45 -0
- package/plugin/skills/thoth-constitution/scripts/validate.mjs +167 -0
- package/plugin/skills/thoth-constitution/templates/constitution.md +54 -0
- package/plugin/skills/thoth-init/SKILL.md +30 -0
- package/plugin/skills/thoth-init/scripts/init.mjs +141 -0
- package/plugin/skills/thoth-sdd/SKILL.md +83 -0
- package/plugin/skills/thoth-sdd/references/phases/analyze.md +21 -0
- package/plugin/skills/thoth-sdd/references/phases/checklist.md +20 -0
- package/plugin/skills/thoth-sdd/references/phases/clarify.md +15 -0
- package/plugin/skills/thoth-sdd/references/phases/converge.md +14 -0
- package/plugin/skills/thoth-sdd/references/phases/explore.md +10 -0
- package/plugin/skills/thoth-sdd/references/phases/implement.md +19 -0
- package/plugin/skills/thoth-sdd/references/phases/plan.md +15 -0
- package/plugin/skills/thoth-sdd/references/phases/specify.md +21 -0
- package/plugin/skills/thoth-sdd/references/phases/tasks.md +20 -0
- package/plugin/skills/thoth-sdd/references/phases/verify.md +22 -0
- package/plugin/skills/thoth-sdd/scripts/validate.mjs +1117 -0
- package/plugin/skills/thoth-sdd/templates/archive-report.md +25 -0
- package/plugin/skills/thoth-sdd/templates/checklist.md +27 -0
- package/plugin/skills/thoth-sdd/templates/plan.md +38 -0
- package/plugin/skills/thoth-sdd/templates/spec.md +54 -0
- package/plugin/skills/thoth-sdd/templates/tasks.md +29 -0
- package/plugin/skills/thoth-sdd/templates/verify-report.md +28 -0
- package/skills/README.md +12 -0
- package/skills/thoth-archive/SKILL.md +40 -0
- package/skills/thoth-archive/scripts/archive.mjs +748 -0
- package/skills/thoth-constitution/SKILL.md +45 -0
- package/skills/thoth-constitution/scripts/validate.mjs +167 -0
- package/skills/thoth-constitution/templates/constitution.md +54 -0
- package/skills/thoth-init/SKILL.md +30 -0
- package/skills/thoth-init/scripts/init.mjs +141 -0
- package/skills/thoth-sdd/SKILL.md +83 -0
- package/skills/thoth-sdd/references/phases/analyze.md +21 -0
- package/skills/thoth-sdd/references/phases/checklist.md +20 -0
- package/skills/thoth-sdd/references/phases/clarify.md +15 -0
- package/skills/thoth-sdd/references/phases/converge.md +14 -0
- package/skills/thoth-sdd/references/phases/explore.md +10 -0
- package/skills/thoth-sdd/references/phases/implement.md +19 -0
- package/skills/thoth-sdd/references/phases/plan.md +15 -0
- package/skills/thoth-sdd/references/phases/specify.md +21 -0
- package/skills/thoth-sdd/references/phases/tasks.md +20 -0
- package/skills/thoth-sdd/references/phases/verify.md +22 -0
- package/skills/thoth-sdd/scripts/validate.mjs +1117 -0
- package/skills/thoth-sdd/templates/archive-report.md +25 -0
- package/skills/thoth-sdd/templates/checklist.md +27 -0
- package/skills/thoth-sdd/templates/plan.md +38 -0
- package/skills/thoth-sdd/templates/spec.md +54 -0
- package/skills/thoth-sdd/templates/tasks.md +29 -0
- package/skills/thoth-sdd/templates/verify-report.md +28 -0
- package/thoth-agents.schema.json +0 -39
- package/dist/chunk-OZE7JVGS.js +0 -2344
- package/dist/cli/custom-skills.d.ts +0 -49
- package/dist/cli/skill-manifest.d.ts +0 -32
- package/dist/harness/core/skills.d.ts +0 -211
- package/dist/harness/generate-codex-plugin.d.ts +0 -9
- package/dist/harness/writers/claude-code-skill-layout.d.ts +0 -16
- package/dist/harness/writers/fs-skill-collect.d.ts +0 -7
- package/dist/harness/writers/skill-layout.d.ts +0 -16
- package/dist/hooks/chat-headers.d.ts +0 -16
- package/dist/hooks/phase-reminder/index.d.ts +0 -28
- package/dist/hooks/post-read-nudge/index.d.ts +0 -18
- package/dist/hooks/skill-sync.d.ts +0 -10
- package/dist/hooks/thoth-mem/index.d.ts +0 -46
- package/dist/hooks/thoth-mem/protocol.d.ts +0 -7
- package/dist/mcp/thoth.d.ts +0 -3
- package/dist/sdd/artifact-governance/artifact-loader.d.ts +0 -130
- package/dist/sdd/artifact-governance/index.d.ts +0 -6
- package/dist/sdd/artifact-governance/tasks-validator.d.ts +0 -17
- package/dist/sdd/artifact-governance/types.d.ts +0 -52
- package/dist/thoth/client.d.ts +0 -14
- package/dist/thoth/index.d.ts +0 -2
- package/src/skills/_shared/openspec-convention.md +0 -350
- package/src/skills/_shared/persistence-contract.md +0 -163
- package/src/skills/_shared/thoth-mem-convention.md +0 -123
- package/src/skills/executing-plans/SKILL.md +0 -288
- package/src/skills/plan-reviewer/SKILL.md +0 -219
- package/src/skills/requirements-interview/SKILL.md +0 -233
- package/src/skills/sdd-apply/SKILL.md +0 -89
- package/src/skills/sdd-archive/SKILL.md +0 -92
- package/src/skills/sdd-clarify/SKILL.md +0 -105
- package/src/skills/sdd-constitution/SKILL.md +0 -107
- package/src/skills/sdd-design/SKILL.md +0 -155
- package/src/skills/sdd-init/SKILL.md +0 -233
- package/src/skills/sdd-propose/SKILL.md +0 -101
- package/src/skills/sdd-spec/SKILL.md +0 -136
- package/src/skills/sdd-tasks/SKILL.md +0 -232
- package/src/skills/sdd-verify/SKILL.md +0 -131
- package/src/skills/thoth-mem-agents/SKILL.md +0 -210
|
@@ -1,187 +1,420 @@
|
|
|
1
1
|
import type { AgentRoleName } from './agent-pack';
|
|
2
|
-
|
|
3
|
-
export type
|
|
2
|
+
import type { MemoryDispatchContract } from './memory-governance';
|
|
3
|
+
export type SddRoute = 'direct' | 'accelerated' | 'full';
|
|
4
|
+
export type SddIntent = 'documentation' | 'mechanical' | 'behavior' | 'architecture';
|
|
5
|
+
export type SddScope = 'local' | 'multi-file' | 'cross-cutting';
|
|
6
|
+
export type SddClarity = 'clear' | 'partial' | 'uncertain';
|
|
7
|
+
export type SddRisk = 'low' | 'medium' | 'high';
|
|
8
|
+
export type SddPlanningMode = 'none' | 'fast-forward' | 'gated';
|
|
9
|
+
export type SddValidationGate = 'specify' | 'plan' | 'tasks' | 'checklist' | 'ready' | 'closeout';
|
|
10
|
+
export type SddArtifactRevisionPolicy = 'none' | 'revalidate-affected-downstream';
|
|
11
|
+
export interface SddRoutingInput {
|
|
12
|
+
intent: SddIntent;
|
|
13
|
+
scope: SddScope;
|
|
14
|
+
clarity: SddClarity;
|
|
15
|
+
contractRisk: SddRisk;
|
|
16
|
+
failureCost: SddRisk;
|
|
17
|
+
requestedRoute?: SddRoute;
|
|
18
|
+
sddRequested?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface SddRoutingDecision {
|
|
21
|
+
route: SddRoute;
|
|
22
|
+
requiresUserInput: boolean;
|
|
23
|
+
reasons: string[];
|
|
24
|
+
}
|
|
25
|
+
export type SddPhaseId = 'explore' | 'specify' | 'clarify' | 'plan' | 'checklist' | 'tasks' | 'analyze' | 'implement' | 'verify' | 'converge' | 'archive';
|
|
26
|
+
export type SddPhaseActivation = 'required' | 'conditional';
|
|
4
27
|
export interface SddPhaseContract {
|
|
5
28
|
id: SddPhaseId;
|
|
6
29
|
order: number;
|
|
7
|
-
|
|
30
|
+
availableFor: SddRoute[];
|
|
31
|
+
requiredFor: SddRoute[];
|
|
32
|
+
activation: SddPhaseActivation;
|
|
8
33
|
prerequisites: SddPhaseId[];
|
|
9
34
|
producesArtifact: boolean;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
artifactSkill?: string;
|
|
14
|
-
artifactMeaning?: string;
|
|
35
|
+
defaultAgentRole: AgentRoleName;
|
|
36
|
+
eligibleAgentRoles: AgentRoleName[];
|
|
37
|
+
reason: string;
|
|
15
38
|
condition?: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
39
|
+
}
|
|
40
|
+
export interface SddPhaseProtocol {
|
|
41
|
+
id: SddPhaseId;
|
|
42
|
+
objective: string;
|
|
43
|
+
requiredInputs: string[];
|
|
44
|
+
instructions: string[];
|
|
45
|
+
allowedWrites: string[];
|
|
46
|
+
outputSchema: string[];
|
|
47
|
+
doneWhen: string[];
|
|
48
|
+
blockingConditions: string[];
|
|
49
|
+
handoff: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface SddPhaseDispatchInput {
|
|
52
|
+
phase: SddPhaseId;
|
|
53
|
+
route: SddRoute;
|
|
54
|
+
changeName: string;
|
|
55
|
+
inputArtifacts?: string[];
|
|
56
|
+
requirements?: string[];
|
|
57
|
+
boundaries?: string[];
|
|
58
|
+
verification?: string[];
|
|
59
|
+
memory: MemoryDispatchContract;
|
|
60
|
+
}
|
|
61
|
+
export type SddArtifactId = 'spec' | 'plan' | 'tasks' | 'requirements-checklist' | 'research' | 'data-model' | 'contracts' | 'quickstart' | 'verify-report' | 'archive-report';
|
|
62
|
+
export interface SddArtifactContract {
|
|
63
|
+
id: SddArtifactId;
|
|
64
|
+
path: string;
|
|
65
|
+
producedBy: SddPhaseId;
|
|
66
|
+
consumes: SddArtifactId[];
|
|
67
|
+
requiredFor: SddRoute[];
|
|
23
68
|
}
|
|
24
69
|
export interface SddWorkflowContract {
|
|
70
|
+
artifactRoot: string;
|
|
25
71
|
phases: SddPhaseContract[];
|
|
72
|
+
routePolicies: SddRouteExecutionPolicy[];
|
|
26
73
|
routingRules: string[];
|
|
27
74
|
artifactRules: string[];
|
|
28
75
|
verificationRules: string[];
|
|
29
76
|
}
|
|
30
|
-
export
|
|
31
|
-
|
|
77
|
+
export interface SddRouteExecutionPolicy {
|
|
78
|
+
route: SddRoute;
|
|
79
|
+
planningMode: SddPlanningMode;
|
|
80
|
+
validationGates: SddValidationGate[];
|
|
81
|
+
optionalArtifactsByDefault: boolean;
|
|
82
|
+
routineUserPauses: boolean;
|
|
83
|
+
artifactRevisionPolicy: SddArtifactRevisionPolicy;
|
|
84
|
+
}
|
|
32
85
|
export declare const SDD_PHASES: readonly [{
|
|
33
|
-
readonly id: "
|
|
86
|
+
readonly id: "explore";
|
|
34
87
|
readonly order: 0;
|
|
35
|
-
readonly
|
|
88
|
+
readonly availableFor: ["full"];
|
|
89
|
+
readonly requiredFor: ["full"];
|
|
90
|
+
readonly activation: "required";
|
|
36
91
|
readonly prerequisites: [];
|
|
37
92
|
readonly producesArtifact: false;
|
|
38
|
-
readonly
|
|
39
|
-
readonly
|
|
93
|
+
readonly defaultAgentRole: "explorer";
|
|
94
|
+
readonly eligibleAgentRoles: ["explorer"];
|
|
95
|
+
readonly reason: "Resolve broad repository uncertainty before requirements are fixed.";
|
|
40
96
|
}, {
|
|
41
|
-
readonly id: "
|
|
97
|
+
readonly id: "specify";
|
|
42
98
|
readonly order: 1;
|
|
43
|
-
readonly
|
|
44
|
-
readonly
|
|
99
|
+
readonly availableFor: ["accelerated", "full"];
|
|
100
|
+
readonly requiredFor: ["accelerated", "full"];
|
|
101
|
+
readonly activation: "required";
|
|
102
|
+
readonly prerequisites: ["explore"];
|
|
45
103
|
readonly producesArtifact: true;
|
|
46
|
-
readonly
|
|
47
|
-
readonly
|
|
48
|
-
readonly
|
|
49
|
-
readonly defaultAgentRole: "quick";
|
|
50
|
-
readonly supportingAgentRoles: ["explorer"];
|
|
51
|
-
readonly delegationReason: "Fast mechanical bootstrap, with explorer supplying repository facts when needed.";
|
|
104
|
+
readonly defaultAgentRole: "orchestrator";
|
|
105
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
106
|
+
readonly reason: "Define the user-visible requirements and acceptance contract.";
|
|
52
107
|
}, {
|
|
53
|
-
readonly id: "
|
|
108
|
+
readonly id: "clarify";
|
|
54
109
|
readonly order: 2;
|
|
55
|
-
readonly
|
|
56
|
-
readonly
|
|
110
|
+
readonly availableFor: ["accelerated", "full"];
|
|
111
|
+
readonly requiredFor: [];
|
|
112
|
+
readonly activation: "conditional";
|
|
113
|
+
readonly prerequisites: ["specify"];
|
|
57
114
|
readonly producesArtifact: false;
|
|
58
|
-
readonly
|
|
59
|
-
readonly
|
|
60
|
-
readonly
|
|
61
|
-
readonly
|
|
115
|
+
readonly defaultAgentRole: "orchestrator";
|
|
116
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
117
|
+
readonly reason: "Resolve only material ambiguity that would change the solution.";
|
|
118
|
+
readonly condition: "Activate when unresolved decisions cannot be handled by a safe local assumption.";
|
|
62
119
|
}, {
|
|
63
|
-
readonly id: "
|
|
120
|
+
readonly id: "plan";
|
|
64
121
|
readonly order: 3;
|
|
122
|
+
readonly availableFor: ["accelerated", "full"];
|
|
65
123
|
readonly requiredFor: ["accelerated", "full"];
|
|
66
|
-
readonly
|
|
124
|
+
readonly activation: "required";
|
|
125
|
+
readonly prerequisites: ["specify"];
|
|
67
126
|
readonly producesArtifact: true;
|
|
68
|
-
readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly
|
|
71
|
-
readonly supportingAgentRoles: ["oracle"];
|
|
72
|
-
readonly delegationReason: "Structured technical reasoning and trade-off synthesis before implementation.";
|
|
73
|
-
readonly handoffHints: ["Preserve accepted scope and explicit non-goals downstream.", "Carry deferred or discovery affected areas forward as follow-up."];
|
|
127
|
+
readonly defaultAgentRole: "orchestrator";
|
|
128
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
129
|
+
readonly reason: "Translate requirements into an executable technical approach.";
|
|
74
130
|
}, {
|
|
75
|
-
readonly id: "
|
|
131
|
+
readonly id: "checklist";
|
|
76
132
|
readonly order: 4;
|
|
77
|
-
readonly
|
|
78
|
-
readonly
|
|
79
|
-
readonly
|
|
80
|
-
readonly
|
|
81
|
-
readonly artifactSkill: "sdd-spec";
|
|
82
|
-
readonly defaultAgentRole: "deep";
|
|
83
|
-
readonly supportingAgentRoles: ["oracle"];
|
|
84
|
-
readonly delegationReason: "High-quality requirement contract work where ambiguity propagates downstream.";
|
|
85
|
-
readonly handoffHints: ["Preserve recorded Assumptions and any [NEEDS CLARIFICATION] resolutions.", "Keep the requirements-quality checklist resolved before tasks."];
|
|
86
|
-
}, {
|
|
87
|
-
readonly id: "clarify";
|
|
88
|
-
readonly order: 5;
|
|
89
|
-
readonly requiredFor: ["full"];
|
|
90
|
-
readonly prerequisites: ["spec"];
|
|
91
|
-
readonly producesArtifact: false;
|
|
92
|
-
readonly owner: "write-capable-agent";
|
|
93
|
-
readonly artifactSkill: "sdd-clarify";
|
|
94
|
-
readonly defaultAgentRole: "deep";
|
|
95
|
-
readonly supportingAgentRoles: ["oracle"];
|
|
96
|
-
readonly delegationReason: "Resolve residual spec ambiguity in place before design consumes it.";
|
|
97
|
-
readonly handoffHints: ["Preserve clarified resolutions written back into the spec.", "Keep the requirements-quality checklist re-validated before design."];
|
|
98
|
-
}, {
|
|
99
|
-
readonly id: "design";
|
|
100
|
-
readonly order: 6;
|
|
101
|
-
readonly requiredFor: ["full"];
|
|
102
|
-
readonly prerequisites: ["proposal", "clarify"];
|
|
133
|
+
readonly availableFor: ["accelerated", "full"];
|
|
134
|
+
readonly requiredFor: [];
|
|
135
|
+
readonly activation: "conditional";
|
|
136
|
+
readonly prerequisites: ["specify", "plan"];
|
|
103
137
|
readonly producesArtifact: true;
|
|
104
|
-
readonly
|
|
105
|
-
readonly
|
|
106
|
-
readonly
|
|
107
|
-
readonly
|
|
108
|
-
readonly supportingAgentRoles: ["designer"];
|
|
109
|
-
readonly delegationReason: "Technical architecture and file-change design; designer only supports UI/UX concerns.";
|
|
110
|
-
readonly handoffHints: ["Preserve coverage decisions and architecture constraints in tasks.", "Honor the Constitution Check outcome recorded during design."];
|
|
138
|
+
readonly defaultAgentRole: "orchestrator";
|
|
139
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
140
|
+
readonly reason: "Audit requirement quality when risk justifies an explicit checklist.";
|
|
141
|
+
readonly condition: "Activate for high-risk, compliance-sensitive, or ambiguity-prone requirements.";
|
|
111
142
|
}, {
|
|
112
143
|
readonly id: "tasks";
|
|
113
|
-
readonly order:
|
|
114
|
-
readonly
|
|
115
|
-
readonly prerequisites: ["proposal", "spec", "design"];
|
|
116
|
-
readonly producesArtifact: true;
|
|
117
|
-
readonly owner: "write-capable-agent";
|
|
118
|
-
readonly artifactSkill: "sdd-tasks";
|
|
119
|
-
readonly defaultAgentRole: "quick";
|
|
120
|
-
readonly alternateAgentRoles: ["deep"];
|
|
121
|
-
readonly alternateAgentCondition: "Only when the task plan is complex.";
|
|
122
|
-
readonly delegationReason: "Mechanical conversion of settled design into dependency-ordered execution tasks.";
|
|
123
|
-
}, {
|
|
124
|
-
readonly id: "plan-review";
|
|
125
|
-
readonly order: 8;
|
|
144
|
+
readonly order: 5;
|
|
145
|
+
readonly availableFor: ["accelerated", "full"];
|
|
126
146
|
readonly requiredFor: ["accelerated", "full"];
|
|
127
|
-
readonly
|
|
147
|
+
readonly activation: "required";
|
|
148
|
+
readonly prerequisites: ["specify", "plan"];
|
|
128
149
|
readonly producesArtifact: true;
|
|
129
|
-
readonly
|
|
130
|
-
readonly
|
|
131
|
-
readonly
|
|
132
|
-
readonly artifactMeaning: "durable-plan-review-result";
|
|
133
|
-
readonly defaultAgentRole: "oracle";
|
|
134
|
-
readonly persistenceAgentRole: "quick";
|
|
135
|
-
readonly delegationReason: "Independent read-only executability review of tasks before implementation; quick persists the durable review artifact when writes are required.";
|
|
150
|
+
readonly defaultAgentRole: "orchestrator";
|
|
151
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
152
|
+
readonly reason: "Produce dependency-ordered implementation slices with verification.";
|
|
136
153
|
}, {
|
|
137
|
-
readonly id: "
|
|
138
|
-
readonly order:
|
|
139
|
-
readonly
|
|
140
|
-
readonly
|
|
154
|
+
readonly id: "analyze";
|
|
155
|
+
readonly order: 6;
|
|
156
|
+
readonly availableFor: ["full"];
|
|
157
|
+
readonly requiredFor: ["full"];
|
|
158
|
+
readonly activation: "required";
|
|
159
|
+
readonly prerequisites: ["specify", "plan", "tasks"];
|
|
141
160
|
readonly producesArtifact: false;
|
|
142
|
-
readonly
|
|
143
|
-
readonly
|
|
144
|
-
readonly
|
|
161
|
+
readonly defaultAgentRole: "oracle";
|
|
162
|
+
readonly eligibleAgentRoles: ["oracle"];
|
|
163
|
+
readonly reason: "Independently check cross-artifact consistency before high-risk implementation.";
|
|
145
164
|
}, {
|
|
146
|
-
readonly id: "
|
|
147
|
-
readonly order:
|
|
165
|
+
readonly id: "implement";
|
|
166
|
+
readonly order: 7;
|
|
167
|
+
readonly availableFor: ["direct", "accelerated", "full"];
|
|
148
168
|
readonly requiredFor: ["direct", "accelerated", "full"];
|
|
149
|
-
readonly
|
|
169
|
+
readonly activation: "required";
|
|
170
|
+
readonly prerequisites: ["tasks", "analyze"];
|
|
150
171
|
readonly producesArtifact: false;
|
|
151
|
-
readonly
|
|
152
|
-
readonly
|
|
153
|
-
readonly
|
|
154
|
-
readonly delegationReason: "Correctness-heavy implementation by default; quick handles mechanical batches and designer owns UI/visual work.";
|
|
172
|
+
readonly defaultAgentRole: "orchestrator";
|
|
173
|
+
readonly eligibleAgentRoles: ["orchestrator", "designer", "quick", "deep"];
|
|
174
|
+
readonly reason: "Let the adaptive root act directly or route the settled work to one writer.";
|
|
155
175
|
}, {
|
|
156
176
|
readonly id: "verify";
|
|
157
|
-
readonly order:
|
|
158
|
-
readonly
|
|
159
|
-
readonly
|
|
177
|
+
readonly order: 8;
|
|
178
|
+
readonly availableFor: ["direct", "accelerated", "full"];
|
|
179
|
+
readonly requiredFor: ["direct", "accelerated", "full"];
|
|
180
|
+
readonly activation: "required";
|
|
181
|
+
readonly prerequisites: ["implement"];
|
|
160
182
|
readonly producesArtifact: true;
|
|
161
|
-
readonly gate: "iterative-verify";
|
|
162
|
-
readonly maxRounds: 3;
|
|
163
|
-
readonly owner: "oracle";
|
|
164
|
-
readonly artifactSkill: "sdd-verify";
|
|
165
183
|
readonly defaultAgentRole: "oracle";
|
|
166
|
-
readonly
|
|
167
|
-
readonly
|
|
184
|
+
readonly eligibleAgentRoles: ["oracle"];
|
|
185
|
+
readonly reason: "Independently judge the result against requirements, contracts, and focused checks.";
|
|
186
|
+
}, {
|
|
187
|
+
readonly id: "converge";
|
|
188
|
+
readonly order: 9;
|
|
189
|
+
readonly availableFor: ["accelerated", "full"];
|
|
190
|
+
readonly requiredFor: [];
|
|
191
|
+
readonly activation: "conditional";
|
|
192
|
+
readonly prerequisites: ["verify"];
|
|
193
|
+
readonly producesArtifact: true;
|
|
194
|
+
readonly defaultAgentRole: "orchestrator";
|
|
195
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
196
|
+
readonly reason: "Append traceable remaining work to tasks.md before another implementation loop.";
|
|
197
|
+
readonly condition: "Activate only when verification finds actionable defects.";
|
|
168
198
|
}, {
|
|
169
199
|
readonly id: "archive";
|
|
170
|
-
readonly order:
|
|
200
|
+
readonly order: 10;
|
|
201
|
+
readonly availableFor: ["accelerated", "full"];
|
|
171
202
|
readonly requiredFor: ["accelerated", "full"];
|
|
203
|
+
readonly activation: "required";
|
|
172
204
|
readonly prerequisites: ["verify"];
|
|
173
205
|
readonly producesArtifact: true;
|
|
174
|
-
readonly
|
|
175
|
-
readonly
|
|
176
|
-
readonly
|
|
177
|
-
|
|
206
|
+
readonly defaultAgentRole: "orchestrator";
|
|
207
|
+
readonly eligibleAgentRoles: ["orchestrator"];
|
|
208
|
+
readonly reason: "Transactionally sync declared durable deltas and close verified work with a dated audit trail.";
|
|
209
|
+
}];
|
|
210
|
+
export declare const SDD_ARTIFACT_GRAPH: readonly [{
|
|
211
|
+
readonly id: "spec";
|
|
212
|
+
readonly path: "spec.md";
|
|
213
|
+
readonly producedBy: "specify";
|
|
214
|
+
readonly consumes: [];
|
|
215
|
+
readonly requiredFor: ["accelerated", "full"];
|
|
216
|
+
}, {
|
|
217
|
+
readonly id: "plan";
|
|
218
|
+
readonly path: "plan.md";
|
|
219
|
+
readonly producedBy: "plan";
|
|
220
|
+
readonly consumes: ["spec"];
|
|
221
|
+
readonly requiredFor: ["accelerated", "full"];
|
|
222
|
+
}, {
|
|
223
|
+
readonly id: "tasks";
|
|
224
|
+
readonly path: "tasks.md";
|
|
225
|
+
readonly producedBy: "tasks";
|
|
226
|
+
readonly consumes: ["spec", "plan"];
|
|
227
|
+
readonly requiredFor: ["accelerated", "full"];
|
|
228
|
+
}, {
|
|
229
|
+
readonly id: "requirements-checklist";
|
|
230
|
+
readonly path: "checklists/requirements.md";
|
|
231
|
+
readonly producedBy: "checklist";
|
|
232
|
+
readonly consumes: ["spec"];
|
|
233
|
+
readonly requiredFor: [];
|
|
234
|
+
}, {
|
|
235
|
+
readonly id: "research";
|
|
236
|
+
readonly path: "research.md";
|
|
237
|
+
readonly producedBy: "plan";
|
|
238
|
+
readonly consumes: ["spec"];
|
|
239
|
+
readonly requiredFor: [];
|
|
240
|
+
}, {
|
|
241
|
+
readonly id: "data-model";
|
|
242
|
+
readonly path: "data-model.md";
|
|
243
|
+
readonly producedBy: "plan";
|
|
244
|
+
readonly consumes: ["spec"];
|
|
245
|
+
readonly requiredFor: [];
|
|
246
|
+
}, {
|
|
247
|
+
readonly id: "contracts";
|
|
248
|
+
readonly path: "contracts/";
|
|
249
|
+
readonly producedBy: "plan";
|
|
250
|
+
readonly consumes: ["spec"];
|
|
251
|
+
readonly requiredFor: [];
|
|
252
|
+
}, {
|
|
253
|
+
readonly id: "quickstart";
|
|
254
|
+
readonly path: "quickstart.md";
|
|
255
|
+
readonly producedBy: "plan";
|
|
256
|
+
readonly consumes: ["spec", "plan"];
|
|
257
|
+
readonly requiredFor: [];
|
|
258
|
+
}, {
|
|
259
|
+
readonly id: "verify-report";
|
|
260
|
+
readonly path: "verify-report.md";
|
|
261
|
+
readonly producedBy: "verify";
|
|
262
|
+
readonly consumes: ["spec", "plan", "tasks"];
|
|
263
|
+
readonly requiredFor: ["accelerated", "full"];
|
|
264
|
+
}, {
|
|
265
|
+
readonly id: "archive-report";
|
|
266
|
+
readonly path: "archive-report.md";
|
|
267
|
+
readonly producedBy: "archive";
|
|
268
|
+
readonly consumes: ["spec", "plan", "tasks", "verify-report"];
|
|
269
|
+
readonly requiredFor: ["accelerated", "full"];
|
|
270
|
+
}];
|
|
271
|
+
export declare const SDD_ROUTE_EXECUTION_POLICIES: readonly [{
|
|
272
|
+
readonly route: "direct";
|
|
273
|
+
readonly planningMode: "none";
|
|
274
|
+
readonly validationGates: [];
|
|
275
|
+
readonly optionalArtifactsByDefault: false;
|
|
276
|
+
readonly routineUserPauses: false;
|
|
277
|
+
readonly artifactRevisionPolicy: "none";
|
|
278
|
+
}, {
|
|
279
|
+
readonly route: "accelerated";
|
|
280
|
+
readonly planningMode: "fast-forward";
|
|
281
|
+
readonly validationGates: ["specify", "ready", "closeout"];
|
|
282
|
+
readonly optionalArtifactsByDefault: false;
|
|
283
|
+
readonly routineUserPauses: false;
|
|
284
|
+
readonly artifactRevisionPolicy: "revalidate-affected-downstream";
|
|
285
|
+
}, {
|
|
286
|
+
readonly route: "full";
|
|
287
|
+
readonly planningMode: "gated";
|
|
288
|
+
readonly validationGates: ["specify", "plan", "tasks", "ready", "closeout"];
|
|
289
|
+
readonly optionalArtifactsByDefault: false;
|
|
290
|
+
readonly routineUserPauses: false;
|
|
291
|
+
readonly artifactRevisionPolicy: "revalidate-affected-downstream";
|
|
292
|
+
}];
|
|
293
|
+
export declare const SDD_PHASE_PROTOCOLS: readonly [{
|
|
294
|
+
readonly id: "explore";
|
|
295
|
+
readonly objective: "Resolve repository uncertainty before requirements are fixed.";
|
|
296
|
+
readonly requiredInputs: ["User request and known scope", "Repository instructions and relevant starting anchors", "Questions that materially affect specification"];
|
|
297
|
+
readonly instructions: ["Inspect only enough repository context to make downstream requirements decision-ready.", "Separate confirmed behavior, constraints, assumptions, and unresolved material decisions.", "Return distilled evidence instead of raw searches or full-file content."];
|
|
298
|
+
readonly allowedWrites: ["None; exploration is read-only."];
|
|
299
|
+
readonly outputSchema: ["relevant paths and symbols", "current behavior and constraints", "material uncertainties and safe assumptions", "recommended specification anchors"];
|
|
300
|
+
readonly doneWhen: ["The root can dispatch specification without repeating repository discovery."];
|
|
301
|
+
readonly blockingConditions: ["A material product choice remains human-owned and cannot be safely assumed."];
|
|
302
|
+
readonly handoff: ["The root passes the relevant paths, constraints, accepted assumptions, and unresolved decisions to specify."];
|
|
303
|
+
}, {
|
|
304
|
+
readonly id: "specify";
|
|
305
|
+
readonly objective: "Create a testable, implementation-neutral feature contract in spec.md.";
|
|
306
|
+
readonly requiredInputs: ["User intent and accepted scope", "Explore handoff when the route is full", "Project constitution and existing public contracts when relevant"];
|
|
307
|
+
readonly instructions: ["Record intent and scope as Why, Impact, and Affected capabilities before prescribing any contract.", "Define prioritized independent stories and map each story to its FR-### and SC-### contracts with Covers metadata.", "Give every normative MUST or SHALL requirement a descriptive title and declare it INTERNAL or as an ADDED, MODIFIED, REMOVED, or RENAMED durable capability delta.", "Classify every success criterion as buildable or outcome; both remain measurable, but only buildable criteria require implementation task coverage.", "Capture assumptions, acceptance scenarios, edge cases, dependencies, and explicit non-goals.", "Use a clarification marker only when no safe default exists and the answer materially changes scope or behavior."];
|
|
308
|
+
readonly allowedWrites: ["openspec/changes/<feature>/spec.md"];
|
|
309
|
+
readonly outputSchema: ["spec.md path", "requirements summary", "open clarifications"];
|
|
310
|
+
readonly doneWhen: ["Every accepted FR and SC is testable, materially unambiguous, mapped to a story, and implementation-neutral."];
|
|
311
|
+
readonly blockingConditions: ["A material unresolved choice prevents a truthful acceptance contract."];
|
|
312
|
+
readonly handoff: ["Pass accepted scope, requirements, assumptions, and clarification decisions to plan."];
|
|
313
|
+
}, {
|
|
314
|
+
readonly id: "clarify";
|
|
315
|
+
readonly objective: "Resolve only material ambiguity and write accepted answers back into spec.md.";
|
|
316
|
+
readonly requiredInputs: ["spec.md", "The unresolved material decision"];
|
|
317
|
+
readonly instructions: ["Ask a targeted question only when repository evidence and safe assumptions cannot resolve it.", "Update the canonical specification with the accepted decision instead of creating a parallel answer document."];
|
|
318
|
+
readonly allowedWrites: ["openspec/changes/<feature>/spec.md"];
|
|
319
|
+
readonly outputSchema: ["resolved decision", "updated spec anchor", "remaining risks"];
|
|
320
|
+
readonly doneWhen: ["The material ambiguity is resolved in the canonical spec."];
|
|
321
|
+
readonly blockingConditions: ["The required human decision has not been provided."];
|
|
322
|
+
readonly handoff: ["Pass the updated spec and accepted decision to plan."];
|
|
323
|
+
}, {
|
|
324
|
+
readonly id: "plan";
|
|
325
|
+
readonly objective: "Translate the accepted specification into an executable technical approach.";
|
|
326
|
+
readonly requiredInputs: ["spec.md", "Relevant repository evidence and constraints", "Project constitution"];
|
|
327
|
+
readonly instructions: ["Make each technical choice traceable to a requirement or repository constraint.", "Name affected components, interfaces, files, risks, migrations, and verification strategy.", "Create research, data model, contracts, or quickstart artifacts only when they reduce implementation risk.", "Read active constitution principles for the plan; do not amend or run constitution lifecycle validation unless an explicit constitution amendment is itself in scope."];
|
|
328
|
+
readonly allowedWrites: ["openspec/changes/<feature>/plan.md", "Optional research.md, data-model.md, contracts/, and quickstart.md under the same change"];
|
|
329
|
+
readonly outputSchema: ["plan.md path", "technical decisions", "affected surfaces"];
|
|
330
|
+
readonly doneWhen: ["A competent implementer can execute the plan without guessing about critical architecture or constraints."];
|
|
331
|
+
readonly blockingConditions: ["The plan contradicts spec.md, the constitution, or confirmed repository constraints."];
|
|
332
|
+
readonly handoff: ["Pass the accepted plan, affected surfaces, dependencies, and verification strategy to tasks."];
|
|
333
|
+
}, {
|
|
334
|
+
readonly id: "checklist";
|
|
335
|
+
readonly objective: "Audit requirement quality when risk justifies an explicit checklist.";
|
|
336
|
+
readonly requiredInputs: ["spec.md", "Risk or compliance reason for the audit"];
|
|
337
|
+
readonly instructions: ["Evaluate requirement completeness, clarity, consistency, measurability, and scenario coverage.", "Record the risk or ambiguity activation reason and add only the applicable security, accessibility, compliance, performance, migration, or domain lenses.", "Record checked revalidation after requirement-affecting changes, or an evidence-backed no-op when nothing relevant changed.", "Do not turn the checklist into implementation tests or QA execution steps."];
|
|
338
|
+
readonly allowedWrites: ["openspec/changes/<feature>/checklists/requirements.md"];
|
|
339
|
+
readonly outputSchema: ["checklist path", "passed items", "unresolved requirement gaps"];
|
|
340
|
+
readonly doneWhen: ["Every checklist item has an evidence-backed state."];
|
|
341
|
+
readonly blockingConditions: ["A high-risk requirement gap remains unresolved before task generation."];
|
|
342
|
+
readonly handoff: ["Pass unresolved gaps back to specify; otherwise pass readiness to tasks."];
|
|
343
|
+
}, {
|
|
344
|
+
readonly id: "tasks";
|
|
345
|
+
readonly objective: "Produce dependency-ordered, independently verifiable implementation slices.";
|
|
346
|
+
readonly requiredInputs: ["spec.md", "plan.md", "Optional planning support artifacts"];
|
|
347
|
+
readonly instructions: ["Cover every FR and buildable SC with concrete tasks, exact paths, dependencies, and verification; outcome SC remain verification targets but do not require fake implementation tasks.", "Put test-first work before its corresponding implementation when behavior changes.", "Mark [P] only for proven non-overlapping mutable surfaces; otherwise state why no safe parallel work exists.", "Do not create ceremonial tasks for trivial edits or combine unrelated mutable surfaces."];
|
|
348
|
+
readonly allowedWrites: ["openspec/changes/<feature>/tasks.md"];
|
|
349
|
+
readonly outputSchema: ["tasks.md path", "requirement coverage", "dependency order"];
|
|
350
|
+
readonly doneWhen: ["Every FR and buildable SC has executable task coverage and every task has a verification step."];
|
|
351
|
+
readonly blockingConditions: ["A task requires an unresolved requirement, architecture choice, or hidden prerequisite."];
|
|
352
|
+
readonly handoff: ["Pass spec.md, plan.md, tasks.md, dependencies, and verification commands to analyze or implement."];
|
|
353
|
+
}, {
|
|
354
|
+
readonly id: "analyze";
|
|
355
|
+
readonly objective: "Perform read-only cross-artifact consistency and readiness analysis before full SDD implementation.";
|
|
356
|
+
readonly requiredInputs: ["spec.md", "plan.md", "tasks.md", "Project constitution"];
|
|
357
|
+
readonly instructions: ["Detect contradictions, ambiguity, duplication, scope drift, orphan tasks, and uncovered requirements.", "Challenge artifact completeness, requirement correctness, and cross-artifact coherence as separate review dimensions.", "Require task coverage for every FR and buildable SC; assess outcome SC as measurable verification targets without manufacturing implementation tasks.", "Report requirement coverage as a percentage and classify findings as CRITICAL, HIGH, MEDIUM, or LOW.", "Treat constitution violations and baseline requirements with zero task coverage as blocking."];
|
|
358
|
+
readonly allowedWrites: ["None; analysis is read-only and returns its report in-session."];
|
|
359
|
+
readonly outputSchema: ["findings table with stable IDs and severity", "requirement coverage percentage", "constitution alignment", "readiness verdict: ready | blocked"];
|
|
360
|
+
readonly doneWhen: ["Every high-signal cross-artifact inconsistency has a severity and remediation anchor."];
|
|
361
|
+
readonly blockingConditions: ["Any unresolved CRITICAL finding or constitution violation blocks implementation."];
|
|
362
|
+
readonly handoff: ["On ready, pass the reviewed artifact set and cautions to implement; on blocked, return findings to the owning coordination phase."];
|
|
363
|
+
}, {
|
|
364
|
+
readonly id: "implement";
|
|
365
|
+
readonly objective: "Execute the accepted task slice with one writer and focused verification.";
|
|
366
|
+
readonly requiredInputs: ["User request or assigned tasks.md slice", "Accepted spec.md and plan.md when present", "Exact implementation boundaries and verification commands"];
|
|
367
|
+
readonly instructions: ["The root marks selected artifact-backed tasks [~] before dispatch and marks them [x] only after task-specific evidence is verified.", "Use test-first or TDD execution for behavior changes and preserve one writer per mutable surface.", "Edit only the assigned implementation surface and report justified deviations from the accepted plan.", "When evidence refines the same intent, return it to root so canonical artifacts are updated and only affected downstream artifacts and gates are revalidated.", "Start a new change instead of expanding the active one when the intent changes."];
|
|
368
|
+
readonly allowedWrites: ["Assigned product and test files", "Root only: task checkbox transitions in openspec/changes/<feature>/tasks.md; child writers must not edit task state."];
|
|
369
|
+
readonly outputSchema: ["status: completed | partial | failed", "per-task outcome", "files changed", "executed verification and results", "deviations, issues, and remaining work"];
|
|
370
|
+
readonly doneWhen: ["The assigned task slice is complete and its focused checks pass with concrete evidence."];
|
|
371
|
+
readonly blockingConditions: ["A task needs scope expansion, a material unresolved decision, or fails repeatedly without a safe bounded recovery."];
|
|
372
|
+
readonly handoff: ["Pass changed files, per-task evidence, deviations, and verification results to verify."];
|
|
373
|
+
}, {
|
|
374
|
+
readonly id: "verify";
|
|
375
|
+
readonly objective: "Judge the implementation against accepted requirements using executed evidence.";
|
|
376
|
+
readonly requiredInputs: ["Implemented change or task results", "spec.md, plan.md, and tasks.md for artifact-backed routes", "Changed files and project verification commands"];
|
|
377
|
+
readonly instructions: ["Oracle must be independent from the implementation writer; self-review never satisfies this phase.", "Run or inspect the smallest sufficient executed checks; static confidence alone is not evidence.", "Judge completeness, correctness, and coherence independently so a passing test cannot hide missing or contradictory scope.", "Build a compliance matrix from every accepted requirement to code and executed checks.", "Record every outcome SC as PASS with concrete observed evidence or RISK with an explicit residual-risk entry.", "For accelerated and full routes, the root persists the read-only oracle result as verify-report.md."];
|
|
378
|
+
readonly allowedWrites: ["Root persistence only: openspec/changes/<feature>/verify-report.md for accelerated and full routes"];
|
|
379
|
+
readonly outputSchema: ["verdict: pass | fail", "compliance matrix", "executed checks and results", "critical issues with remediation anchors", "warnings and residual risks"];
|
|
380
|
+
readonly doneWhen: ["Every accepted requirement is represented in the compliance matrix and the verdict matches the evidence."];
|
|
381
|
+
readonly blockingConditions: ["Missing required evidence, incomplete tasks, failed checks, or unresolved critical issues force a fail verdict."];
|
|
382
|
+
readonly handoff: ["On fail, hand off actionable findings to converge; on pass, hand off the accepted verify-report.md to archive for artifact-backed routes."];
|
|
383
|
+
}, {
|
|
384
|
+
readonly id: "converge";
|
|
385
|
+
readonly objective: "Convert verified implementation gaps into traceable remaining tasks without editing product code.";
|
|
386
|
+
readonly requiredInputs: ["Failed verify result and remediation anchors", "spec.md, plan.md, and tasks.md", "Current maximum task and phase identifiers"];
|
|
387
|
+
readonly instructions: ["Use an append-only update: add one new Convergence phase to tasks.md and never rewrite, renumber, reorder, or delete existing tasks.", "Classify each gap as missing, partial, contradicts, or unrequested; append one traceable task per actionable gap, ordered by severity and linked to its source requirement.", "Must not edit product code; implementation belongs to the next implement pass.", "If there is no actionable gap, leave tasks.md byte-for-byte unchanged."];
|
|
388
|
+
readonly allowedWrites: ["Append-only changes to openspec/changes/<feature>/tasks.md"];
|
|
389
|
+
readonly outputSchema: ["outcome: tasks-appended | converged", "appended task IDs and source requirements", "next implementation scope"];
|
|
390
|
+
readonly doneWhen: ["Every actionable verification gap is represented by a new traceable task, or the implementation is confirmed converged."];
|
|
391
|
+
readonly blockingConditions: ["The verify findings lack enough evidence or source anchors to create truthful tasks."];
|
|
392
|
+
readonly handoff: ["On tasks-appended, return to implement and then verify; on converged, re-run verify before archive."];
|
|
393
|
+
}, {
|
|
394
|
+
readonly id: "archive";
|
|
395
|
+
readonly objective: "Close a verified artifact-backed change with a durable audit trail.";
|
|
396
|
+
readonly requiredInputs: ["Completed spec.md, plan.md, and tasks.md", "verify-report.md with verdict pass", "Change name and current date"];
|
|
397
|
+
readonly instructions: ["Confirm all tasks are complete, verify-report.md records pass, and there are no unresolved critical issues.", "Create archive-report.md with verification lineage, completed scope, residual warnings, and final archive path.", "After oracle pass, transactionally synchronize only explicitly declared durable deltas from spec.md into openspec/specs.", "Stage and back up canonical writes so handled failures roll back within the active process; this is not crash-atomic across forced process or operating-system termination.", "Move the complete change to openspec/changes/archive/YYYY-MM-DD-<feature>/.", "An INTERNAL requirement never updates openspec/specs; undeclared prose is never merged."];
|
|
398
|
+
readonly allowedWrites: ["openspec/changes/<feature>/archive-report.md", "Declared durable requirement updates under openspec/specs/", "Move openspec/changes/<feature>/ to openspec/changes/archive/YYYY-MM-DD-<feature>/"];
|
|
399
|
+
readonly outputSchema: ["status: archived | blocked", "archive path", "canonical specifications updated", "audit summary and verification lineage"];
|
|
400
|
+
readonly doneWhen: ["Declared durable deltas are transactionally synchronized, the audit report records the result, and the complete change directory is present at the dated archive path."];
|
|
401
|
+
readonly blockingConditions: ["Archive is blocked unless all tasks are complete, verify-report.md has verdict pass, and no unresolved critical issue remains."];
|
|
402
|
+
readonly handoff: ["Return the archive path and audit summary to the root for final synthesis."];
|
|
178
403
|
}];
|
|
179
404
|
export declare const SDD_WORKFLOW_CONTRACT: SddWorkflowContract;
|
|
405
|
+
export declare function classifySddRoute(input: SddRoutingInput): SddRoutingDecision;
|
|
180
406
|
export declare function getSddWorkflowContract(): SddWorkflowContract;
|
|
407
|
+
export declare function getSddRouteExecutionPolicy(route: SddRoute): SddRouteExecutionPolicy;
|
|
408
|
+
export declare function getSddArtifactGraph(): SddArtifactContract[];
|
|
181
409
|
export declare function getSddPhase(id: SddPhaseId): SddPhaseContract;
|
|
182
|
-
export declare function
|
|
183
|
-
export declare function
|
|
184
|
-
|
|
410
|
+
export declare function getSddPhaseProtocol(id: SddPhaseId): SddPhaseProtocol;
|
|
411
|
+
export declare function getSddPhaseProtocolsForRole(role: AgentRoleName): SddPhaseProtocol[];
|
|
412
|
+
export declare function renderSddPhaseDispatchEnvelope(input: SddPhaseDispatchInput): string;
|
|
413
|
+
export declare function renderSddPhaseDispatchTemplate(): string;
|
|
414
|
+
export declare function getSddPhaseOwner(_route: SddRoute, phaseId: SddPhaseId): AgentRoleName;
|
|
415
|
+
export declare function getRequiredSddPhaseOrder(route: SddRoute): SddPhaseId[];
|
|
416
|
+
export declare function canEnterSddPhase({ route, completed, target, }: {
|
|
417
|
+
route: SddRoute;
|
|
185
418
|
completed: readonly SddPhaseId[];
|
|
186
419
|
target: SddPhaseId;
|
|
187
420
|
}): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HarnessDiagnostic } from './types';
|
|
2
|
+
export interface GenerateIntegrationPackagesOptions {
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
}
|
|
5
|
+
export interface GenerateIntegrationPackagesResult {
|
|
6
|
+
written: string[];
|
|
7
|
+
diagnostics: HarnessDiagnostic[];
|
|
8
|
+
}
|
|
9
|
+
export type IntegrationDiagnosticLevel = 'info' | 'warning' | 'capability-gap' | 'error';
|
|
10
|
+
export interface IntegrationDiagnosticReport {
|
|
11
|
+
level: IntegrationDiagnosticLevel;
|
|
12
|
+
code: string;
|
|
13
|
+
message: string;
|
|
14
|
+
fallback?: HarnessDiagnostic['fallback'];
|
|
15
|
+
fatal: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function prepareIntegrationDiagnostics(diagnostics: readonly HarnessDiagnostic[]): IntegrationDiagnosticReport[];
|
|
18
|
+
export declare function formatIntegrationDiagnostic(diagnostic: IntegrationDiagnosticReport): string;
|
|
19
|
+
export declare function getIntegrationDiagnosticExitCode(diagnostics: readonly IntegrationDiagnosticReport[]): 0 | 1;
|
|
20
|
+
export declare function generateIntegrationPackages({ projectRoot, }: GenerateIntegrationPackagesOptions): GenerateIntegrationPackagesResult;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface OpenCodeInitCommandOptions {
|
|
2
|
+
projectRoot: string;
|
|
3
|
+
packageRoot: string;
|
|
4
|
+
}
|
|
5
|
+
export interface OpenCodeInitCommand {
|
|
6
|
+
template: string;
|
|
7
|
+
description: string;
|
|
8
|
+
agent: 'orchestrator';
|
|
9
|
+
subtask: false;
|
|
10
|
+
}
|
|
11
|
+
export declare function createOpenCodeInitCommand({ projectRoot, packageRoot, }: OpenCodeInitCommandOptions): OpenCodeInitCommand;
|
package/dist/harness/types.d.ts
CHANGED
|
@@ -3,6 +3,20 @@ export type HarnessArtifactKind = 'agent-config' | 'harness-config' | 'mcp-confi
|
|
|
3
3
|
export type HarnessDiagnosticSeverity = 'info' | 'warning' | 'error';
|
|
4
4
|
export type HarnessDiagnosticCode = 'harness.unsupported' | 'harness.capability_gap' | 'harness.surface_unvalidated' | 'harness.artifact_skipped' | (string & {});
|
|
5
5
|
export type HarnessCapabilityStatus = 'supported' | 'unsupported' | 'instruction-only' | 'unknown';
|
|
6
|
+
export type ProviderCapabilityState = 'supported' | 'degraded' | 'unsupported';
|
|
7
|
+
export type ProviderCapabilityEvidenceSource = 'provider' | 'harness' | 'none';
|
|
8
|
+
/**
|
|
9
|
+
* Ephemeral evidence supplied by a caller after a documented provider or
|
|
10
|
+
* harness surface has evaluated a provider-dependent outcome.
|
|
11
|
+
*/
|
|
12
|
+
export interface ProviderCapabilityEvidence {
|
|
13
|
+
state: ProviderCapabilityState;
|
|
14
|
+
source: ProviderCapabilityEvidenceSource;
|
|
15
|
+
basis: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface ProviderEvidenceInput {
|
|
18
|
+
providerEvidence?: ProviderCapabilityEvidence;
|
|
19
|
+
}
|
|
6
20
|
export interface HarnessCapabilities {
|
|
7
21
|
agentDefinitions: HarnessCapabilityStatus;
|
|
8
22
|
delegatedExecution: HarnessCapabilityStatus;
|
|
@@ -19,7 +33,6 @@ export interface HarnessRenderOptions {
|
|
|
19
33
|
overwrite?: boolean;
|
|
20
34
|
targetHarness?: HarnessId;
|
|
21
35
|
outputRoot?: string;
|
|
22
|
-
codexSkillOutputModes?: readonly ('plugin-package' | 'repo-local-fallback')[];
|
|
23
36
|
}
|
|
24
37
|
export interface HarnessArtifact {
|
|
25
38
|
path: string;
|