@tiic-tech/openworkflow 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/adapters/codex/src/doctorCodexAdapter.d.ts +6 -0
- package/dist/adapters/codex/src/doctorCodexAdapter.js +124 -0
- package/dist/adapters/codex/src/doctorCodexAdapter.js.map +1 -0
- package/dist/adapters/codex/src/generateAgents.d.ts +2 -0
- package/dist/adapters/codex/src/generateAgents.js +40 -0
- package/dist/adapters/codex/src/generateAgents.js.map +1 -0
- package/dist/adapters/codex/src/generateCodexAdapter.d.ts +9 -0
- package/dist/adapters/codex/src/generateCodexAdapter.js +59 -0
- package/dist/adapters/codex/src/generateCodexAdapter.js.map +1 -0
- package/dist/adapters/codex/src/generateCommands.d.ts +6 -0
- package/dist/adapters/codex/src/generateCommands.js +205 -0
- package/dist/adapters/codex/src/generateCommands.js.map +1 -0
- package/dist/adapters/codex/src/generateSkills.d.ts +7 -0
- package/dist/adapters/codex/src/generateSkills.js +60 -0
- package/dist/adapters/codex/src/generateSkills.js.map +1 -0
- package/dist/adapters/codex/src/generatedFiles.d.ts +4 -0
- package/dist/adapters/codex/src/generatedFiles.js +67 -0
- package/dist/adapters/codex/src/generatedFiles.js.map +1 -0
- package/dist/adapters/codex/src/manifest.d.ts +4 -0
- package/dist/adapters/codex/src/manifest.js +40 -0
- package/dist/adapters/codex/src/manifest.js.map +1 -0
- package/dist/adapters/codex/src/templates.d.ts +7 -0
- package/dist/adapters/codex/src/templates.js +6 -0
- package/dist/adapters/codex/src/templates.js.map +1 -0
- package/dist/cli/src/args.d.ts +8 -0
- package/dist/cli/src/args.js +34 -0
- package/dist/cli/src/args.js.map +1 -0
- package/dist/cli/src/commands/doctor.d.ts +1 -0
- package/dist/cli/src/commands/doctor.js +26 -0
- package/dist/cli/src/commands/doctor.js.map +1 -0
- package/dist/cli/src/commands/init.d.ts +1 -0
- package/dist/cli/src/commands/init.js +52 -0
- package/dist/cli/src/commands/init.js.map +1 -0
- package/dist/cli/src/commands/shared.d.ts +4 -0
- package/dist/cli/src/commands/shared.js +19 -0
- package/dist/cli/src/commands/shared.js.map +1 -0
- package/dist/cli/src/commands/sync.d.ts +1 -0
- package/dist/cli/src/commands/sync.js +27 -0
- package/dist/cli/src/commands/sync.js.map +1 -0
- package/dist/cli/src/commands/validate.d.ts +1 -0
- package/dist/cli/src/commands/validate.js +17 -0
- package/dist/cli/src/commands/validate.js.map +1 -0
- package/dist/cli/src/dev/validateRepositoryContractsCli.d.ts +2 -0
- package/dist/cli/src/dev/validateRepositoryContractsCli.js +37 -0
- package/dist/cli/src/dev/validateRepositoryContractsCli.js.map +1 -0
- package/dist/cli/src/dev/verifyRuntimeSurface.d.ts +2 -0
- package/dist/cli/src/dev/verifyRuntimeSurface.js +344 -0
- package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -0
- package/dist/cli/src/dev/verifyWorkflowE2E.d.ts +2 -0
- package/dist/cli/src/dev/verifyWorkflowE2E.js +366 -0
- package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -0
- package/dist/cli/src/index.d.ts +2 -0
- package/dist/cli/src/index.js +51 -0
- package/dist/cli/src/index.js.map +1 -0
- package/dist/core/src/artifacts/registry.d.ts +53 -0
- package/dist/core/src/artifacts/registry.js +483 -0
- package/dist/core/src/artifacts/registry.js.map +1 -0
- package/dist/core/src/commands/registry.d.ts +36 -0
- package/dist/core/src/commands/registry.js +539 -0
- package/dist/core/src/commands/registry.js.map +1 -0
- package/dist/core/src/contracts/index.d.ts +23 -0
- package/dist/core/src/contracts/index.js +16 -0
- package/dist/core/src/contracts/index.js.map +1 -0
- package/dist/core/src/contracts/yaml.d.ts +2 -0
- package/dist/core/src/contracts/yaml.js +12 -0
- package/dist/core/src/contracts/yaml.js.map +1 -0
- package/dist/core/src/contracts.d.ts +23 -0
- package/dist/core/src/contracts.js +15 -0
- package/dist/core/src/contracts.js.map +1 -0
- package/dist/core/src/fs/index.d.ts +4 -0
- package/dist/core/src/fs/index.js +28 -0
- package/dist/core/src/fs/index.js.map +1 -0
- package/dist/core/src/fs.d.ts +4 -0
- package/dist/core/src/fs.js +28 -0
- package/dist/core/src/fs.js.map +1 -0
- package/dist/core/src/initOpenWorkflow.d.ts +7 -0
- package/dist/core/src/initOpenWorkflow.js +220 -0
- package/dist/core/src/initOpenWorkflow.js.map +1 -0
- package/dist/core/src/validateOpenWorkflow.d.ts +5 -0
- package/dist/core/src/validateOpenWorkflow.js +145 -0
- package/dist/core/src/validateOpenWorkflow.js.map +1 -0
- package/dist/core/src/validators/validateOpenWorkflow.d.ts +5 -0
- package/dist/core/src/validators/validateOpenWorkflow.js +551 -0
- package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -0
- package/dist/core/src/validators/validateRepositoryContracts.d.ts +2 -0
- package/dist/core/src/validators/validateRepositoryContracts.js +827 -0
- package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -0
- package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
- package/dist/core/src/workflow/initOpenWorkflow.js +182 -0
- package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -0
- package/dist/core/src/yaml.d.ts +2 -0
- package/dist/core/src/yaml.js +12 -0
- package/dist/core/src/yaml.js.map +1 -0
- package/package.json +55 -0
- package/references/artifact-authoring-templates.md +78 -0
- package/references/audit-first-discovery-loop.md +85 -0
- package/references/contract-graph.md +129 -0
- package/references/discovery-artifact-contracts.md +155 -0
- package/references/engineering-skill-reference-research.md +204 -0
- package/references/npm-cli-architecture.md +63 -0
- package/references/runtime-command-surface.md +169 -0
- package/schemas/artifact-contracts.schema.json +130 -0
- package/schemas/change.schema.json +71 -0
- package/schemas/contract-graph.schema.json +80 -0
- package/schemas/decision-record.schema.json +92 -0
- package/schemas/disclosure-levels.schema.json +66 -0
- package/schemas/openworkflow-contract.schema.json +88 -0
- package/schemas/product-design.schema.json +356 -0
- package/schemas/prototype-evidence.schema.json +325 -0
- package/schemas/prototype.schema.json +149 -0
- package/schemas/validation-target.schema.json +127 -0
- package/schemas/validation.schema.json +123 -0
- package/schemas/vision-session.schema.json +78 -0
- package/schemas/work-items.schema.json +87 -0
- package/schemas/workflow-index.schema.json +70 -0
- package/skills/build-prototype/SKILL.md +87 -0
- package/skills/build-prototype/agents/openai.yaml +4 -0
- package/skills/build-prototype/references/prototype-protocol.md +56 -0
- package/skills/build-prototype/scripts/init_prototype.py +260 -0
- package/skills/build-team/SKILL.md +292 -0
- package/skills/build-team/agents/openai.yaml +4 -0
- package/skills/build-team/references/runtime-schema.md +275 -0
- package/skills/build-team/references/team-protocol.md +244 -0
- package/skills/build-team/scripts/init_team_runtime.py +431 -0
- package/skills/build-validation/SKILL.md +81 -0
- package/skills/build-validation/agents/openai.yaml +4 -0
- package/skills/build-validation/references/validation-protocol.md +51 -0
- package/skills/build-validation/scripts/init_validation.py +194 -0
- package/skills/build-workflow/SKILL.md +65 -0
- package/skills/build-workflow/agents/openai.yaml +4 -0
- package/skills/build-workflow/references/workflow-layout.md +57 -0
- package/skills/build-workflow/scripts/init_workflow.py +423 -0
- package/skills/run-team/SKILL.md +93 -0
- package/skills/run-team/agents/openai.yaml +4 -0
- package/skills/run-team/references/delegation-and-agent-lifecycle.md +78 -0
- package/skills/run-team/references/run-loop.md +73 -0
- package/skills/run-team/references/runtime-audit.md +56 -0
- package/skills/run-team/references/scope-selection.md +64 -0
- package/skills/run-team/scripts/audit_team_runtime.py +173 -0
- package/skills/run-team/scripts/init_next_scope.py +304 -0
- package/templates/README.md +5 -0
- package/templates/codex/README.md +4 -0
- package/templates/openworkflow/README.md +4 -0
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
export const COMMAND_NAMESPACE = "ow";
|
|
2
|
+
export const WORKFLOW_COMMANDS = [
|
|
3
|
+
command("workflow", ["build-workflow"], "Initialize or reconcile OpenWorkflow contracts.", "workflow", [
|
|
4
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
5
|
+
".openworkflow/audit/",
|
|
6
|
+
]),
|
|
7
|
+
command("context", ["build-context"], "Map the repo context needed for vision and downstream workflow decisions.", "context", [
|
|
8
|
+
".openworkflow/context/CONTEXT.md",
|
|
9
|
+
".openworkflow/context/CONTEXT_MAP.yaml",
|
|
10
|
+
]),
|
|
11
|
+
command("vision", ["build-vision"], "Create or refine the product vision contract through focused collaboration.", "vision", [".openworkflow/vision/VISION.md", ".openworkflow/vision/VISION_CONTRACT.yaml"], visionProtocol()),
|
|
12
|
+
command("validation", ["build-validation"], "Prioritize the core feature or assumption that must be validated first.", "validation", [".openworkflow/validation/"], validationProtocol()),
|
|
13
|
+
command("proto", ["build-prototype", "ow:prototype"], "Build the smallest prototype needed to validate the current core feature.", "prototype", [".openworkflow/prototypes/"], prototypeProtocol()),
|
|
14
|
+
command("tune", ["ow:tune:proto"], "Revise the current prototype and record the decision audit automatically.", "prototype", [".openworkflow/prototypes/", ".openworkflow/decisions/"], tuneProtocol()),
|
|
15
|
+
command("decision", ["build-decision"], "Internally record prototype review outcomes for audit.", "decision", [".openworkflow/decisions/"], decisionProtocol(), "internal"),
|
|
16
|
+
command("design", ["build-design"], "Convert accepted prototype evidence into product design for production specification.", "design", [".openworkflow/design/"], designProtocol()),
|
|
17
|
+
command("spec", ["build-spec"], "Create one focused production spec from accepted product design.", "spec", [
|
|
18
|
+
".openworkflow/specs/",
|
|
19
|
+
]),
|
|
20
|
+
command("change", ["build-change"], "Create one focused production change for the current core feature.", "change", [
|
|
21
|
+
".openworkflow/changes/",
|
|
22
|
+
]),
|
|
23
|
+
command("team", ["run-team", "build-team"], "Execute approved production work through the Agent Team runtime.", "runtime", [
|
|
24
|
+
".openworkflow/runtime/",
|
|
25
|
+
]),
|
|
26
|
+
];
|
|
27
|
+
export function getWorkflowCommands() {
|
|
28
|
+
return WORKFLOW_COMMANDS;
|
|
29
|
+
}
|
|
30
|
+
function command(id, legacyIds, description, stage, targetArtifacts, protocol, visibility = "user") {
|
|
31
|
+
return {
|
|
32
|
+
id,
|
|
33
|
+
namespace: COMMAND_NAMESPACE,
|
|
34
|
+
trigger: `/${COMMAND_NAMESPACE}:${id}`,
|
|
35
|
+
legacyTriggers: legacyIds.map((legacyId) => `/${legacyId}`),
|
|
36
|
+
description,
|
|
37
|
+
stage,
|
|
38
|
+
visibility,
|
|
39
|
+
targetArtifacts,
|
|
40
|
+
protocol,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function visionProtocol() {
|
|
44
|
+
return {
|
|
45
|
+
depth: "deep",
|
|
46
|
+
interactionMode: "conversation-first-sustained-grill",
|
|
47
|
+
requiredContext: [
|
|
48
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
49
|
+
".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
|
|
50
|
+
],
|
|
51
|
+
optionalContext: [
|
|
52
|
+
".openworkflow/vision/VISION_CONTRACT.yaml",
|
|
53
|
+
".openworkflow/context/CONTEXT.md",
|
|
54
|
+
".openworkflow/context/CONTEXT_MAP.yaml",
|
|
55
|
+
".openworkflow/context/GLOSSARY.yaml",
|
|
56
|
+
"AGENT.md",
|
|
57
|
+
],
|
|
58
|
+
forbiddenContext: [".openworkflow/runtime/**", ".openworkflow/changes/**"],
|
|
59
|
+
allowedOutputs: [
|
|
60
|
+
".openworkflow/vision/VISION.md",
|
|
61
|
+
".openworkflow/vision/VISION_CONTRACT.yaml",
|
|
62
|
+
".openworkflow/vision/sessions/<id>/VISION_SESSION.yaml",
|
|
63
|
+
".openworkflow/vision/sessions/<id>/NOTE.md",
|
|
64
|
+
".openworkflow/context/CONTEXT.md",
|
|
65
|
+
".openworkflow/context/CONTEXT_MAP.yaml",
|
|
66
|
+
],
|
|
67
|
+
forbiddenOutputs: [
|
|
68
|
+
".openworkflow/validation/**",
|
|
69
|
+
".openworkflow/prototypes/**",
|
|
70
|
+
".openworkflow/specs/**",
|
|
71
|
+
".openworkflow/changes/**",
|
|
72
|
+
".openworkflow/runtime/**",
|
|
73
|
+
],
|
|
74
|
+
auditCheckpoints: {
|
|
75
|
+
before: [
|
|
76
|
+
"Confirm workflow and context indexes exist.",
|
|
77
|
+
"Start in conversation mode and ask the next useful vision question before writing artifacts.",
|
|
78
|
+
],
|
|
79
|
+
during: [
|
|
80
|
+
"Ask one focused question at a time and make each question depend on the previous answer.",
|
|
81
|
+
"Cover mandatory vision dimensions before validation handoff.",
|
|
82
|
+
"Provide concrete examples or options when the user is stuck.",
|
|
83
|
+
],
|
|
84
|
+
after: [
|
|
85
|
+
"Persist artifacts only after stable answers, explicit save request, or readiness checkpoint.",
|
|
86
|
+
"Handoff to validation only after mandatory coverage, unresolved blockers are named, and the user confirms readiness.",
|
|
87
|
+
"Confirm no validation, prototype, spec, change, or runtime artifacts were created.",
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
antiPatterns: [
|
|
91
|
+
"Do not open by writing vision artifacts before the conversation has stable answers.",
|
|
92
|
+
"Do not create validation rankings during vision work.",
|
|
93
|
+
"Do not create specs, changes, tasks, or teams from a vision session.",
|
|
94
|
+
"Do not batch many interview questions into one turn.",
|
|
95
|
+
"Do not hand off to validation after a fixed small number of questions.",
|
|
96
|
+
],
|
|
97
|
+
internalSections: [
|
|
98
|
+
{
|
|
99
|
+
tag: "conversation_first",
|
|
100
|
+
items: [
|
|
101
|
+
"Treat /ow:vision as a focused product conversation, not an artifact fill-out task.",
|
|
102
|
+
"Ask exactly one question unless the user explicitly requests a summary or save checkpoint.",
|
|
103
|
+
"Let each answer drive the next deeper question; do not run a generic questionnaire mechanically.",
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
tag: "mandatory_coverage",
|
|
108
|
+
items: [
|
|
109
|
+
"Cover target user and beneficiary.",
|
|
110
|
+
"Cover the problem, motivation, and emotional or quality bar.",
|
|
111
|
+
"Cover the core product surface and primary job to be done.",
|
|
112
|
+
"Cover explicit non-goals and exclusions.",
|
|
113
|
+
"Cover AI-native role, boundaries, and failure modes.",
|
|
114
|
+
"Cover privacy, data, sharing, and retention assumptions.",
|
|
115
|
+
"Cover alternatives or competing mental models.",
|
|
116
|
+
"Cover success signals and failure signals.",
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
tag: "readiness_gate",
|
|
121
|
+
items: [
|
|
122
|
+
"Do not hand off to /ow:validation until mandatory coverage is addressed, unresolved questions are explicit, and the user confirms readiness.",
|
|
123
|
+
"If a dimension is thin, ask another targeted question instead of writing a final artifact.",
|
|
124
|
+
"Vision readiness is based on coverage and user confirmation, not on a fixed number of turns.",
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
tag: "artifact_checkpoint",
|
|
129
|
+
items: [
|
|
130
|
+
"Write VISION_SESSION.yaml, VISION_CONTRACT.yaml, VISION.md, or context updates only after stable answers or an explicit checkpoint request.",
|
|
131
|
+
"Keep brainstorming and tentative hypotheses in NOTE.md or unresolved_questions rather than presenting them as stable product truth.",
|
|
132
|
+
"Summarize at meaningful checkpoints before persisting durable vision state.",
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
handoffCommands: ["/ow:validation"],
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function validationProtocol() {
|
|
140
|
+
return {
|
|
141
|
+
depth: "deep",
|
|
142
|
+
interactionMode: "audit-and-rank",
|
|
143
|
+
requiredContext: [
|
|
144
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
145
|
+
".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
|
|
146
|
+
".openworkflow/vision/VISION_CONTRACT.yaml",
|
|
147
|
+
],
|
|
148
|
+
optionalContext: [
|
|
149
|
+
".openworkflow/validation/VALIDATION_INDEX.yaml",
|
|
150
|
+
".openworkflow/vision/VISION.md",
|
|
151
|
+
".openworkflow/context/CONTEXT.md",
|
|
152
|
+
".openworkflow/context/CONTEXT_MAP.yaml",
|
|
153
|
+
],
|
|
154
|
+
forbiddenContext: [".openworkflow/runtime/**", ".openworkflow/changes/**"],
|
|
155
|
+
allowedOutputs: [
|
|
156
|
+
".openworkflow/validation/VALIDATION_INDEX.yaml",
|
|
157
|
+
".openworkflow/validation/<id>/VALIDATION.yaml",
|
|
158
|
+
".openworkflow/validation/<id>/NOTE.md",
|
|
159
|
+
],
|
|
160
|
+
forbiddenOutputs: [
|
|
161
|
+
".openworkflow/prototypes/**",
|
|
162
|
+
".openworkflow/specs/**",
|
|
163
|
+
".openworkflow/changes/**",
|
|
164
|
+
".openworkflow/runtime/**",
|
|
165
|
+
],
|
|
166
|
+
auditCheckpoints: {
|
|
167
|
+
before: ["Confirm a vision contract exists.", "Load only vision and validation index context."],
|
|
168
|
+
during: ["Classify features as existential, supporting, later, or out of scope.", "Name the single highest-risk validation question."],
|
|
169
|
+
after: ["Record the validation target and prototype brief.", "Confirm no prototype, spec, change, or runtime artifacts were created."],
|
|
170
|
+
},
|
|
171
|
+
antiPatterns: [
|
|
172
|
+
"Do not turn feature ranking into a production task list.",
|
|
173
|
+
"Do not prototype before naming the validation question.",
|
|
174
|
+
"Do not treat supporting features as blockers for existential validation.",
|
|
175
|
+
],
|
|
176
|
+
handoffCommands: ["/ow:proto", "/ow:vision"],
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function prototypeProtocol() {
|
|
180
|
+
return {
|
|
181
|
+
depth: "deep",
|
|
182
|
+
interactionMode: "classified-prototype-creation",
|
|
183
|
+
requiredContext: [
|
|
184
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
185
|
+
".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
|
|
186
|
+
".openworkflow/validation/VALIDATION_INDEX.yaml",
|
|
187
|
+
],
|
|
188
|
+
optionalContext: [
|
|
189
|
+
".openworkflow/prototypes/PROTOTYPE_INDEX.yaml",
|
|
190
|
+
".openworkflow/validation/**/VALIDATION.yaml",
|
|
191
|
+
".openworkflow/vision/VISION_CONTRACT.yaml",
|
|
192
|
+
"package.json",
|
|
193
|
+
],
|
|
194
|
+
forbiddenContext: [".openworkflow/runtime/**", ".openworkflow/changes/**", ".openworkflow/specs/**"],
|
|
195
|
+
allowedOutputs: [
|
|
196
|
+
".openworkflow/prototypes/PROTOTYPE_INDEX.yaml",
|
|
197
|
+
".openworkflow/prototypes/<id>/EVIDENCE.yaml",
|
|
198
|
+
".openworkflow/prototypes/<id>/NOTE.md",
|
|
199
|
+
".openworkflow/prototypes/<id>/review.html",
|
|
200
|
+
".openworkflow/prototypes/<id>/evidence/**",
|
|
201
|
+
".openworkflow/decisions/DECISION_INDEX.yaml",
|
|
202
|
+
".openworkflow/decisions/<id>/DECISION.yaml",
|
|
203
|
+
".openworkflow/decisions/<id>/NOTE.md",
|
|
204
|
+
".openworkflow/decisions/<id>/review.html",
|
|
205
|
+
],
|
|
206
|
+
forbiddenOutputs: [".openworkflow/specs/**", ".openworkflow/changes/**", ".openworkflow/runtime/**"],
|
|
207
|
+
auditCheckpoints: {
|
|
208
|
+
before: [
|
|
209
|
+
"Confirm validation target exists.",
|
|
210
|
+
"Classify prototype mode before implementation: visual, interaction, technical feasibility, 3D/material, workflow, or data/logic.",
|
|
211
|
+
"Detect reference inputs: image, URL, screenshot, HTML/CSS source, existing artifact, or design-system hint.",
|
|
212
|
+
],
|
|
213
|
+
during: [
|
|
214
|
+
"For visual-first prototypes, extract reference patterns and create a high-fidelity static concept with image generation before HTML unless the user explicitly skips it.",
|
|
215
|
+
"Derive a compact visual direction and token packet before implementation.",
|
|
216
|
+
"Build only what answers the validation question and keep one command or URL to run the prototype.",
|
|
217
|
+
"Verify rendered prototypes with browser and screenshot checks before handoff.",
|
|
218
|
+
],
|
|
219
|
+
after: [
|
|
220
|
+
"Record reference analysis, static concept evidence, runnable implementation evidence, verification, self-critique, and known limits separately.",
|
|
221
|
+
"Write a decision audit record internally after prototype evidence changes.",
|
|
222
|
+
"Write evidence and result artifacts.",
|
|
223
|
+
"Confirm no design, spec, change, team, persistence, or production hardening was created.",
|
|
224
|
+
],
|
|
225
|
+
},
|
|
226
|
+
antiPatterns: [
|
|
227
|
+
"Do not jump directly to HTML for a visual-first prototype before a visual direction or static concept unless the user explicitly skips it.",
|
|
228
|
+
"Do not ignore user-provided reference images, URLs, screenshots, or HTML/CSS source.",
|
|
229
|
+
"Do not force image generation for logic-only, data-flow, API, or technical feasibility prototypes.",
|
|
230
|
+
"Do not polish the prototype into production code.",
|
|
231
|
+
"Do not add persistence unless persistence is the validation question.",
|
|
232
|
+
"Do not create design, specs, changes, or teams from unaccepted prototype work.",
|
|
233
|
+
"Do not ask the user to manually invoke /ow:decision after prototype work; record the decision audit internally.",
|
|
234
|
+
],
|
|
235
|
+
internalSections: [
|
|
236
|
+
{
|
|
237
|
+
tag: "prototype_classification",
|
|
238
|
+
items: [
|
|
239
|
+
"Classify the prototype as visual, interaction, technical feasibility, 3D/material, workflow, or data/logic before choosing tools or writing files.",
|
|
240
|
+
"Name the validation question, the riskiest assumption, and the smallest success signal.",
|
|
241
|
+
"If classification is ambiguous, ask one clarifying question; otherwise proceed with the most likely mode and record the assumption.",
|
|
242
|
+
],
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
tag: "reference_extraction",
|
|
246
|
+
items: [
|
|
247
|
+
"When the user provides a target image, URL, screenshot, HTML/CSS, or reference artifact, perform reference-pattern extraction before visual generation or HTML implementation.",
|
|
248
|
+
"Extract transferable patterns: information architecture, layout rhythm, component grammar, typography posture, palette, motion, interaction details, and anti-patterns to avoid.",
|
|
249
|
+
"Record reference analysis as evidence by path or URL; do not paste bulky source or screenshots into YAML.",
|
|
250
|
+
],
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
tag: "visual_first_path",
|
|
254
|
+
items: [
|
|
255
|
+
"For visual, product-experience, 3D/material, and aesthetic-sensitive interaction prototypes, default to a high-fidelity static concept before runnable HTML.",
|
|
256
|
+
"Use image generation as the default first visual pass for composition, mood, material, visual hierarchy, and brand direction unless the user asks to skip image generation.",
|
|
257
|
+
"Record visual_concept_policy.image_generation as generated, skipped_by_user, or not_applicable; skipped_by_user requires a concrete skip reason.",
|
|
258
|
+
"Discuss or confirm the static concept before spending implementation effort when the user is actively collaborating; if the user asked for autonomous execution, proceed after the concept establishes clear direction.",
|
|
259
|
+
"Do not require image generation for data/logic, API, or pure technical feasibility prototypes.",
|
|
260
|
+
],
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
tag: "design_seed_protocol",
|
|
264
|
+
items: [
|
|
265
|
+
"Do not design from a blank aesthetic when a direction, design system, template seed, or reference exists.",
|
|
266
|
+
"Derive a compact visual packet before implementation: background, surface, foreground, muted, border, accent, display font, body font, radius, spacing, motion, and density.",
|
|
267
|
+
"Choose domain-appropriate posture: operational tools should be dense and restrained, editorial surfaces can be expressive, games can be playful, and dashboards should avoid marketing hero treatment.",
|
|
268
|
+
],
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
tag: "implementation_protocol",
|
|
272
|
+
items: [
|
|
273
|
+
"Implement the smallest runnable artifact that validates the current question, not a production app.",
|
|
274
|
+
"For HTML prototypes, keep final review surfaces free of designer-only controls unless those controls are part of the validation target.",
|
|
275
|
+
"Keep generated assets, screenshots, logs, and review HTML in the prototype evidence folder.",
|
|
276
|
+
],
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
tag: "verification_protocol",
|
|
280
|
+
items: [
|
|
281
|
+
"For rendered HTML or 3D prototypes, run browser verification and capture screenshots or notes for desktop and mobile when practical.",
|
|
282
|
+
"Verify that the page is nonblank, core interactions work, primary assets render, text does not overlap, and responsive layout remains coherent.",
|
|
283
|
+
"Record known limits separately from observations so downstream decision work can judge evidence quality.",
|
|
284
|
+
],
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
tag: "self_critique",
|
|
288
|
+
items: [
|
|
289
|
+
"Before handoff, critique the prototype across philosophy, hierarchy, execution, specificity, restraint, accessibility, and responsive behavior.",
|
|
290
|
+
"Any weak dimension must trigger one repair pass before evidence handoff unless the weakness is intentionally out of scope for the validation question.",
|
|
291
|
+
"Record critique findings and repairs as compact evidence references or YAML summary fields.",
|
|
292
|
+
],
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
tag: "internal_decision_audit",
|
|
296
|
+
items: [
|
|
297
|
+
"After creating or revising prototype evidence, write or update a decision audit record without asking the user to invoke /ow:decision.",
|
|
298
|
+
"Use revise when the user asks for another tuning pass, continue when the user explicitly accepts evidence for design, pivot or stop when explicitly directed, and needs_more_evidence when evidence is inconclusive.",
|
|
299
|
+
"Keep decision audit output in .openworkflow/decisions/** and do not expose internal bookkeeping as the user-facing workflow step.",
|
|
300
|
+
],
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
handoffCommands: ["/ow:tune", "/ow:design", "/ow:validation"],
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
function tuneProtocol() {
|
|
307
|
+
return {
|
|
308
|
+
depth: "deep",
|
|
309
|
+
interactionMode: "prototype-revision-orchestration",
|
|
310
|
+
requiredContext: [
|
|
311
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
312
|
+
".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
|
|
313
|
+
],
|
|
314
|
+
optionalContext: [
|
|
315
|
+
".openworkflow/validation/VALIDATION_INDEX.yaml",
|
|
316
|
+
".openworkflow/validation/**/VALIDATION.yaml",
|
|
317
|
+
".openworkflow/prototypes/PROTOTYPE_INDEX.yaml",
|
|
318
|
+
".openworkflow/prototypes/**/EVIDENCE.yaml",
|
|
319
|
+
".openworkflow/prototypes/**/NOTE.md",
|
|
320
|
+
".openworkflow/decisions/DECISION_INDEX.yaml",
|
|
321
|
+
".openworkflow/decisions/**/DECISION.yaml",
|
|
322
|
+
"package.json",
|
|
323
|
+
],
|
|
324
|
+
forbiddenContext: [".openworkflow/runtime/**", ".openworkflow/changes/**", ".openworkflow/specs/**"],
|
|
325
|
+
allowedOutputs: [
|
|
326
|
+
".openworkflow/prototypes/PROTOTYPE_INDEX.yaml",
|
|
327
|
+
".openworkflow/prototypes/<id>/EVIDENCE.yaml",
|
|
328
|
+
".openworkflow/prototypes/<id>/NOTE.md",
|
|
329
|
+
".openworkflow/prototypes/<id>/review.html",
|
|
330
|
+
".openworkflow/prototypes/<id>/evidence/**",
|
|
331
|
+
".openworkflow/decisions/DECISION_INDEX.yaml",
|
|
332
|
+
".openworkflow/decisions/<id>/DECISION.yaml",
|
|
333
|
+
".openworkflow/decisions/<id>/NOTE.md",
|
|
334
|
+
".openworkflow/decisions/<id>/review.html",
|
|
335
|
+
],
|
|
336
|
+
forbiddenOutputs: [".openworkflow/specs/**", ".openworkflow/changes/**", ".openworkflow/runtime/**"],
|
|
337
|
+
auditCheckpoints: {
|
|
338
|
+
before: [
|
|
339
|
+
"Resolve tune target: /ow:tune and /ow:tune:proto default to the current prototype.",
|
|
340
|
+
"If no current prototype exists but a current validation target exists, orchestrate prototype creation through /ow:proto behavior.",
|
|
341
|
+
"Load only the current prototype evidence, relevant validation target, and latest decision audit context.",
|
|
342
|
+
],
|
|
343
|
+
during: [
|
|
344
|
+
"Apply exactly one focused revision loop from user feedback.",
|
|
345
|
+
"Preserve M16 prototype evidence separation for concept, implementation, verification, self-critique, and known limits.",
|
|
346
|
+
"Run required verification for changed rendered artifacts.",
|
|
347
|
+
"Record decision audit outcome as revise, continue, pivot, stop, or needs_more_evidence.",
|
|
348
|
+
],
|
|
349
|
+
after: [
|
|
350
|
+
"Write updated prototype evidence and review artifacts.",
|
|
351
|
+
"Write or update the internal decision audit record.",
|
|
352
|
+
"Show the user only the tuning result, unresolved question if any, and the next user-facing command.",
|
|
353
|
+
],
|
|
354
|
+
},
|
|
355
|
+
antiPatterns: [
|
|
356
|
+
"Do not ask the user to manually invoke /ow:decision during a tune loop.",
|
|
357
|
+
"Do not restart full prototype discovery when a focused revision is enough.",
|
|
358
|
+
"Do not create design, specs, changes, or runtime work from unaccepted tune evidence.",
|
|
359
|
+
"Do not tune outside the current validation scope unless the user explicitly changes the target or validation.",
|
|
360
|
+
],
|
|
361
|
+
internalSections: [
|
|
362
|
+
{
|
|
363
|
+
tag: "target_resolution",
|
|
364
|
+
items: [
|
|
365
|
+
"/ow:tune resolves to the current prototype by default.",
|
|
366
|
+
"/ow:tune:proto is an explicit alias for tuning the current prototype.",
|
|
367
|
+
"/ow:tune:<target> reserves routing for explicit future artifact targets; in M17, implement prototype target behavior and record unsupported targets as unresolved.",
|
|
368
|
+
],
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
tag: "proto_orchestration",
|
|
372
|
+
items: [
|
|
373
|
+
"When no current prototype exists but a current validation target exists, use /ow:proto behavior to create the first prototype evidence before tuning.",
|
|
374
|
+
"When a current prototype exists, revise it in place unless the user explicitly requests a new prototype branch.",
|
|
375
|
+
"Keep the revision scoped to the user's feedback and the active validation question.",
|
|
376
|
+
],
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
tag: "revision_protocol",
|
|
380
|
+
items: [
|
|
381
|
+
"Treat user feedback as the tune brief; ask one clarifying question only when the requested revision is ambiguous or unsafe.",
|
|
382
|
+
"Update the smallest artifact set needed: prototype evidence, note, review surface, and evidence files.",
|
|
383
|
+
"Preserve visual concept policy, evidence refs, verification, and self-critique integrity from the prototype evidence contract.",
|
|
384
|
+
],
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
tag: "internal_decision_audit",
|
|
388
|
+
items: [
|
|
389
|
+
"Every tune pass must write or update a decision audit record internally.",
|
|
390
|
+
"Use outcome revise when the user asks for another iteration, continue when the user explicitly accepts the prototype for design, pivot or stop when explicitly directed, and needs_more_evidence when evidence is inconclusive.",
|
|
391
|
+
"Do not expose /ow:decision as the next manual user step; expose /ow:tune, /ow:design, or /ow:validation as appropriate.",
|
|
392
|
+
],
|
|
393
|
+
},
|
|
394
|
+
],
|
|
395
|
+
handoffCommands: ["/ow:tune", "/ow:design", "/ow:validation"],
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
function decisionProtocol() {
|
|
399
|
+
return {
|
|
400
|
+
depth: "deep",
|
|
401
|
+
interactionMode: "internal-audit-recording",
|
|
402
|
+
requiredContext: [
|
|
403
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
404
|
+
".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
|
|
405
|
+
".openworkflow/prototypes/PROTOTYPE_INDEX.yaml",
|
|
406
|
+
],
|
|
407
|
+
optionalContext: [
|
|
408
|
+
".openworkflow/decisions/DECISION_INDEX.yaml",
|
|
409
|
+
".openworkflow/prototypes/**/EVIDENCE.yaml",
|
|
410
|
+
".openworkflow/validation/**/VALIDATION.yaml",
|
|
411
|
+
],
|
|
412
|
+
forbiddenContext: [".openworkflow/runtime/**"],
|
|
413
|
+
allowedOutputs: [
|
|
414
|
+
".openworkflow/decisions/DECISION_INDEX.yaml",
|
|
415
|
+
".openworkflow/decisions/<id>/DECISION.yaml",
|
|
416
|
+
".openworkflow/decisions/<id>/NOTE.md",
|
|
417
|
+
".openworkflow/decisions/<id>/review.html",
|
|
418
|
+
".openworkflow/prototypes/<id>/EVIDENCE.yaml",
|
|
419
|
+
],
|
|
420
|
+
forbiddenOutputs: [".openworkflow/specs/**", ".openworkflow/changes/**", ".openworkflow/runtime/**"],
|
|
421
|
+
auditCheckpoints: {
|
|
422
|
+
before: ["Confirm prototype evidence exists.", "Load only prototype evidence, user feedback summary, and decision index context."],
|
|
423
|
+
during: ["Record audit outcome as continue, revise, pivot, stop, or needs_more_evidence.", "Keep only decision-rich evidence."],
|
|
424
|
+
after: ["Write the decision record.", "Authorize /ow:design only when outcome is continue.", "Return control to the user-facing proto or tune command."],
|
|
425
|
+
},
|
|
426
|
+
antiPatterns: [
|
|
427
|
+
"Do not infer acceptance without user review or explicit evidence.",
|
|
428
|
+
"Do not create design, specs, or changes during decision capture.",
|
|
429
|
+
"Do not leave unresolved prototype evidence as accepted.",
|
|
430
|
+
"Do not present /ow:decision as a normal user handoff; this is an internal audit command.",
|
|
431
|
+
],
|
|
432
|
+
internalSections: [
|
|
433
|
+
{
|
|
434
|
+
tag: "internal_audit_only",
|
|
435
|
+
items: [
|
|
436
|
+
"/ow:decision is preserved for durable audit records, not as a normal user-facing workflow step.",
|
|
437
|
+
"Proto and tune flows invoke this audit behavior internally after evidence changes or user review outcomes.",
|
|
438
|
+
"Visible user handoffs should name /ow:tune, /ow:design, /ow:validation, or /ow:vision instead of asking for manual /ow:decision.",
|
|
439
|
+
],
|
|
440
|
+
},
|
|
441
|
+
],
|
|
442
|
+
handoffCommands: ["/ow:design", "/ow:tune", "/ow:validation", "/ow:vision"],
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
function designProtocol() {
|
|
446
|
+
return {
|
|
447
|
+
depth: "deep",
|
|
448
|
+
interactionMode: "conversation-first-product-design",
|
|
449
|
+
requiredContext: [
|
|
450
|
+
".openworkflow/workflow/WORKFLOW_INDEX.yaml",
|
|
451
|
+
".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
|
|
452
|
+
".openworkflow/prototypes/PROTOTYPE_INDEX.yaml",
|
|
453
|
+
".openworkflow/decisions/DECISION_INDEX.yaml",
|
|
454
|
+
],
|
|
455
|
+
optionalContext: [
|
|
456
|
+
".openworkflow/prototypes/**/EVIDENCE.yaml",
|
|
457
|
+
".openworkflow/decisions/**/DECISION.yaml",
|
|
458
|
+
".openworkflow/validation/**/VALIDATION.yaml",
|
|
459
|
+
".openworkflow/vision/VISION_CONTRACT.yaml",
|
|
460
|
+
".openworkflow/context/CONTEXT_MAP.yaml",
|
|
461
|
+
],
|
|
462
|
+
forbiddenContext: [".openworkflow/runtime/**", ".openworkflow/changes/**", ".openworkflow/specs/**"],
|
|
463
|
+
allowedOutputs: [
|
|
464
|
+
".openworkflow/design/DESIGN_INDEX.yaml",
|
|
465
|
+
".openworkflow/design/<id>/PRODUCT_DESIGN.yaml",
|
|
466
|
+
".openworkflow/design/<id>/NOTE.md",
|
|
467
|
+
],
|
|
468
|
+
conditionalOutputs: [
|
|
469
|
+
".openworkflow/design/<id>/TECH_SPEC.yaml",
|
|
470
|
+
".openworkflow/design/<id>/FRONTEND_SPEC.yaml",
|
|
471
|
+
".openworkflow/design/<id>/BACKEND_SPEC.yaml",
|
|
472
|
+
".openworkflow/design/<id>/API_CONTRACT.yaml",
|
|
473
|
+
".openworkflow/design/<id>/DB_SCHEMA_MODEL.yaml",
|
|
474
|
+
],
|
|
475
|
+
forbiddenOutputs: [".openworkflow/specs/**", ".openworkflow/changes/**", ".openworkflow/runtime/**"],
|
|
476
|
+
auditCheckpoints: {
|
|
477
|
+
before: [
|
|
478
|
+
"Confirm accepted prototype evidence or a continue decision exists.",
|
|
479
|
+
"Start by clarifying product behavior and UX gaps before writing PRODUCT_DESIGN.yaml.",
|
|
480
|
+
],
|
|
481
|
+
during: [
|
|
482
|
+
"Ask one focused design question at a time when behavior, states, edge cases, or scope are thin.",
|
|
483
|
+
"Cover mandatory design dimensions before spec handoff.",
|
|
484
|
+
"Create conditional packets only when explicitly needed.",
|
|
485
|
+
],
|
|
486
|
+
after: [
|
|
487
|
+
"Write PRODUCT_DESIGN.yaml only after enough design meaning is stable.",
|
|
488
|
+
"Hand off to /ow:spec only when spec readiness is true and blockers are explicit.",
|
|
489
|
+
],
|
|
490
|
+
},
|
|
491
|
+
antiPatterns: [
|
|
492
|
+
"Do not treat unreviewed prototype evidence as accepted.",
|
|
493
|
+
"Do not convert thin prototype evidence into design artifacts prematurely.",
|
|
494
|
+
"Do not create production specs or changes during design.",
|
|
495
|
+
"Do not generate conditional technical packets by default.",
|
|
496
|
+
],
|
|
497
|
+
internalSections: [
|
|
498
|
+
{
|
|
499
|
+
tag: "conversation_first",
|
|
500
|
+
items: [
|
|
501
|
+
"Treat /ow:design as product-design clarification before specification.",
|
|
502
|
+
"Ask one focused question when accepted evidence does not yet support durable product design.",
|
|
503
|
+
"Do not begin by authoring PRODUCT_DESIGN.yaml when journey, states, flows, or scope are still unclear.",
|
|
504
|
+
],
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
tag: "mandatory_coverage",
|
|
508
|
+
items: [
|
|
509
|
+
"Cover personas and usage context.",
|
|
510
|
+
"Cover journey map and key flows.",
|
|
511
|
+
"Cover UX states, state transitions, and feedback timing.",
|
|
512
|
+
"Cover interaction details and recovery behavior.",
|
|
513
|
+
"Cover edge cases and failure states.",
|
|
514
|
+
"Cover responsive behavior and accessibility expectations.",
|
|
515
|
+
"Cover scope boundaries, priority, and what remains out of scope.",
|
|
516
|
+
"Cover spec readiness and blockers.",
|
|
517
|
+
],
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
tag: "readiness_gate",
|
|
521
|
+
items: [
|
|
522
|
+
"Do not hand off to /ow:spec until design coverage is sufficient, blockers are explicit, and spec_readiness.ready is true.",
|
|
523
|
+
"If accepted prototype evidence is thin, ask targeted design questions or hand back to /ow:tune.",
|
|
524
|
+
"Design readiness depends on behavior clarity, not on having a long document.",
|
|
525
|
+
],
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
tag: "artifact_checkpoint",
|
|
529
|
+
items: [
|
|
530
|
+
"Persist PRODUCT_DESIGN.yaml after stable design answers or explicit checkpoint request.",
|
|
531
|
+
"Use conditional packets only when implementation constraints genuinely need a separate packet.",
|
|
532
|
+
"Keep unresolved design questions visible instead of silently inventing product behavior.",
|
|
533
|
+
],
|
|
534
|
+
},
|
|
535
|
+
],
|
|
536
|
+
handoffCommands: ["/ow:spec", "/ow:tune", "/ow:validation"],
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../packages/core/src/commands/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const SCHEMA_VERSION = "0.1.0";
|
|
2
|
+
export declare const CONTRACT_TYPES: readonly ["workflow", "context", "vision", "decision", "design", "spec", "validation", "prototype", "change", "work_items", "team", "runtime"];
|
|
3
|
+
export type ContractType = (typeof CONTRACT_TYPES)[number];
|
|
4
|
+
export type ContractStatus = "draft" | "active" | "superseded" | "archived";
|
|
5
|
+
export interface CommonContract {
|
|
6
|
+
schema_version: string;
|
|
7
|
+
contract_id: string;
|
|
8
|
+
contract_type: ContractType;
|
|
9
|
+
title: string;
|
|
10
|
+
status: ContractStatus | string;
|
|
11
|
+
source_artifacts?: string[];
|
|
12
|
+
depends_on?: string[];
|
|
13
|
+
produces?: string[];
|
|
14
|
+
updated_at?: string | null;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export interface InitOptions {
|
|
18
|
+
root: string;
|
|
19
|
+
projectTitle: string;
|
|
20
|
+
projectSlug: string;
|
|
21
|
+
tools: string[];
|
|
22
|
+
force: boolean;
|
|
23
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const SCHEMA_VERSION = "0.1.0";
|
|
2
|
+
export const CONTRACT_TYPES = [
|
|
3
|
+
"workflow",
|
|
4
|
+
"context",
|
|
5
|
+
"vision",
|
|
6
|
+
"decision",
|
|
7
|
+
"design",
|
|
8
|
+
"spec",
|
|
9
|
+
"validation",
|
|
10
|
+
"prototype",
|
|
11
|
+
"change",
|
|
12
|
+
"work_items",
|
|
13
|
+
"team",
|
|
14
|
+
"runtime",
|
|
15
|
+
];
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/contracts/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,MAAM;IACN,SAAS;CACD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import YAML from "yaml";
|
|
2
|
+
export function dumpYaml(value) {
|
|
3
|
+
return YAML.stringify(value, {
|
|
4
|
+
collectionStyle: "block",
|
|
5
|
+
lineWidth: 100,
|
|
6
|
+
nullStr: "null",
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
export function parseYaml(text) {
|
|
10
|
+
return YAML.parse(text);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=yaml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../../../packages/core/src/contracts/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QAC3B,eAAe,EAAE,OAAO;QACxB,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const SCHEMA_VERSION = "0.1.0";
|
|
2
|
+
export declare const CONTRACT_TYPES: readonly ["workflow", "context", "vision", "decision", "spec", "validation", "prototype", "change", "work_items", "team", "runtime"];
|
|
3
|
+
export type ContractType = (typeof CONTRACT_TYPES)[number];
|
|
4
|
+
export type ContractStatus = "draft" | "active" | "superseded" | "archived";
|
|
5
|
+
export interface CommonContract {
|
|
6
|
+
schema_version: string;
|
|
7
|
+
contract_id: string;
|
|
8
|
+
contract_type: ContractType;
|
|
9
|
+
title: string;
|
|
10
|
+
status: ContractStatus | string;
|
|
11
|
+
source_artifacts?: string[];
|
|
12
|
+
depends_on?: string[];
|
|
13
|
+
produces?: string[];
|
|
14
|
+
updated_at?: string | null;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export interface InitOptions {
|
|
18
|
+
root: string;
|
|
19
|
+
projectTitle: string;
|
|
20
|
+
projectSlug: string;
|
|
21
|
+
tools: string[];
|
|
22
|
+
force: boolean;
|
|
23
|
+
}
|