yet-another-agentic-workflow 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -0
- package/dist/adapters.d.ts +43 -0
- package/dist/adapters.js +191 -0
- package/dist/adapters.js.map +1 -0
- package/dist/architect.d.ts +38 -0
- package/dist/architect.js +275 -0
- package/dist/architect.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +580 -0
- package/dist/cli.js.map +1 -0
- package/dist/feature.d.ts +30 -0
- package/dist/feature.js +344 -0
- package/dist/feature.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +26 -0
- package/dist/init.js +255 -0
- package/dist/init.js.map +1 -0
- package/dist/installer.d.ts +64 -0
- package/dist/installer.js +365 -0
- package/dist/installer.js.map +1 -0
- package/dist/observability.d.ts +37 -0
- package/dist/observability.js +200 -0
- package/dist/observability.js.map +1 -0
- package/dist/parser.d.ts +6 -0
- package/dist/parser.js +166 -0
- package/dist/parser.js.map +1 -0
- package/dist/persistence.d.ts +83 -0
- package/dist/persistence.js +279 -0
- package/dist/persistence.js.map +1 -0
- package/dist/providers.d.ts +14 -0
- package/dist/providers.js +27 -0
- package/dist/providers.js.map +1 -0
- package/dist/review.d.ts +29 -0
- package/dist/review.js +66 -0
- package/dist/review.js.map +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.js +44 -0
- package/dist/schema.js.map +1 -0
- package/dist/skills.d.ts +24 -0
- package/dist/skills.js +210 -0
- package/dist/skills.js.map +1 -0
- package/dist/types.d.ts +86 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -0
- package/schemas/agent.schema.json +37 -0
- package/schemas/context.schema.json +13 -0
- package/schemas/eval.schema.json +26 -0
- package/schemas/hook.schema.json +29 -0
- package/schemas/skill.schema.json +23 -0
- package/schemas/state.schema.json +14 -0
- package/schemas/workflow.schema.json +34 -0
- package/schemas/yaaw.schema.json +58 -0
- package/skills/clarify/SKILL.md +14 -0
- package/skills/code-review/SKILL.md +29 -0
- package/skills/slice-work/SKILL.md +15 -0
- package/skills/spec/SKILL.md +21 -0
- package/skills/tdd/SKILL.md +25 -0
- package/templates/instructions/managed-block.md +17 -0
package/dist/feature.js
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { join, resolve } from "node:path";
|
|
2
|
+
import { loadAndValidateProjectDefinition } from "./parser.js";
|
|
3
|
+
import { invokeSkill } from "./skills.js";
|
|
4
|
+
export class FeatureWorkflowError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "FeatureWorkflowError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const SKILL_DOCUMENTS = {
|
|
11
|
+
clarify: `---
|
|
12
|
+
name: clarify
|
|
13
|
+
purpose: Resolve consequential ambiguity before implementation.
|
|
14
|
+
description: Resolve only the unknowns that materially change behavior, scope, or the public testing seam.
|
|
15
|
+
dependencies: []
|
|
16
|
+
---
|
|
17
|
+
# Clarify
|
|
18
|
+
|
|
19
|
+
Resolve ambiguity from evidence before asking questions.
|
|
20
|
+
|
|
21
|
+
1. Read the request, relevant conversation, repository instructions, domain documentation, ADRs, code, and nearby tests. Use the project's domain vocabulary.
|
|
22
|
+
2. Separate facts that the repository can answer from unknowns that change observable behavior, scope, data contracts, or irreversible decisions.
|
|
23
|
+
3. State the requested user-visible outcome and identify the highest existing public seam through which it can be verified. Prefer an existing seam; propose a new one only when the behavior cannot be observed otherwise.
|
|
24
|
+
4. Ask one focused question only when competing answers would produce meaningfully different implementations and no repository evidence resolves them. Otherwise record the smallest reasonable assumption.
|
|
25
|
+
5. Produce resolved decisions, assumptions, the selected public seam, remaining unknowns, and the next action. Stop when specification work is unblocked.
|
|
26
|
+
`,
|
|
27
|
+
spec: `---
|
|
28
|
+
name: spec
|
|
29
|
+
purpose: Convert a resolved request into a concise, durable behavioral specification.
|
|
30
|
+
description: Synthesize repository evidence and resolved decisions into behavior, seams, and independently verifiable acceptance criteria.
|
|
31
|
+
dependencies: [clarify]
|
|
32
|
+
---
|
|
33
|
+
# Specification
|
|
34
|
+
|
|
35
|
+
Synthesize what is already known; do not restart the requirements interview. Use repository domain vocabulary and respect applicable ADRs.
|
|
36
|
+
|
|
37
|
+
## Required specification
|
|
38
|
+
|
|
39
|
+
- **Problem and goal:** the user's problem and the outcome that resolves it.
|
|
40
|
+
- **User-visible solution:** numbered user stories or scenarios that describe actors, behavior, and benefit.
|
|
41
|
+
- **Expected behavior:** normal flow, consequential failure states, and externally visible state transitions.
|
|
42
|
+
- **Implementation decisions:** durable contracts, schema or API decisions, and architectural constraints. Avoid speculative file paths and code snippets.
|
|
43
|
+
- **Testing decisions:** select the highest existing public seam that can prove the behavior, name prior test patterns to follow, and justify any new seam.
|
|
44
|
+
- **Constraints and non-goals:** explicit boundaries that prevent scope drift.
|
|
45
|
+
- **Acceptance criteria:** independently verifiable observations with an unambiguous source of truth.
|
|
46
|
+
- **Important decisions and unknowns:** preserve rationale and identify only unresolved items that can still change delivery.
|
|
47
|
+
|
|
48
|
+
Prefer fewer, higher-leverage seams. Tests should observe behavior through public interfaces and remain valid when internals are refactored.
|
|
49
|
+
`,
|
|
50
|
+
"slice-work": `---
|
|
51
|
+
name: slice-work
|
|
52
|
+
purpose: Divide a specification into independently verifiable vertical slices.
|
|
53
|
+
description: Turn a specification into tracer-bullet slices with acceptance criteria, testing seams, and explicit blocking edges.
|
|
54
|
+
dependencies: [spec]
|
|
55
|
+
---
|
|
56
|
+
# Slice work
|
|
57
|
+
|
|
58
|
+
Build a dependency graph of tracer-bullet vertical slices, not a layer-by-layer task list.
|
|
59
|
+
|
|
60
|
+
1. Make each slice deliver one narrow but complete user-visible behavior through every relevant layer. A completed slice must be demonstrable or verifiable on its own and fit within one fresh working context.
|
|
61
|
+
2. Give each slice an ID, title, delivered behavior, acceptance criteria, public verification seam, verification command or method, and \`blockedBy\` IDs.
|
|
62
|
+
3. Keep blocking edges real: a slice depends only on work that must exist before it can start. Order blockers first and identify the current frontier—all slices whose blockers are complete.
|
|
63
|
+
4. Prefer the smallest end-to-end slice first. Add a prefactoring slice only when it independently keeps verification green and materially makes the behavior change easier.
|
|
64
|
+
5. Treat wide mechanical refactors as the exception. Use expand–contract: add the new form beside the old, migrate bounded batches while verification stays green, then remove the old form after all migrations.
|
|
65
|
+
6. Avoid predicted file paths and speculative implementation detail. Preserve the specification's domain language and observable boundaries.
|
|
66
|
+
`,
|
|
67
|
+
tdd: `---
|
|
68
|
+
name: tdd
|
|
69
|
+
purpose: Implement behavior through a failing test, the smallest passing change, and refactoring.
|
|
70
|
+
description: Deliver one vertical slice at a time with public-interface tests, boundary-only mocks, and recorded red-green evidence.
|
|
71
|
+
dependencies: []
|
|
72
|
+
---
|
|
73
|
+
# Test-driven development
|
|
74
|
+
|
|
75
|
+
Work one acceptance criterion and one pre-agreed public seam at a time. Read relevant domain documentation and ADRs so test names and interfaces use repository language.
|
|
76
|
+
|
|
77
|
+
## Test quality
|
|
78
|
+
|
|
79
|
+
- Verify behavior through the public interface at the selected seam. Tests should survive internal refactoring and read as executable specifications.
|
|
80
|
+
- Derive expected results from an independent source of truth: a known literal, worked example, contract, or acceptance criterion.
|
|
81
|
+
- Avoid **implementation-coupled** tests of private methods, internal collaborators, call order, or incidental storage.
|
|
82
|
+
- Avoid **tautological** assertions that recompute the result with the same logic as production code.
|
|
83
|
+
- Mock only at system boundaries such as external APIs, time, randomness, or an unavailable external store. Prefer real controlled dependencies and never mock code the project owns merely to make a test easy.
|
|
84
|
+
|
|
85
|
+
## Red-green-refactor cycle
|
|
86
|
+
|
|
87
|
+
1. Confirm the active criterion and public seam. Write one focused behavioral test.
|
|
88
|
+
2. Run it and record RED: exact command, relevant failure, and non-zero status. A test that passes immediately does not prove the change.
|
|
89
|
+
3. Implement the smallest production change that produces GREEN. Do not anticipate later slices or add speculative generality.
|
|
90
|
+
4. Run the focused test and record GREEN. Refactor only the code exercised by the slice, without changing behavior, and keep the focused test green.
|
|
91
|
+
5. Repeat with the next behavior learned from the previous cycle; do not write a horizontal batch of imagined tests up front.
|
|
92
|
+
6. Run relevant typechecking and focused tests during work, then the full required verification suite once the slice is complete. Record commands, outputs, and exit statuses.
|
|
93
|
+
`,
|
|
94
|
+
"code-review": `---
|
|
95
|
+
name: code-review
|
|
96
|
+
purpose: Review an implementation against one explicit axis using repository evidence.
|
|
97
|
+
description: Review a fixed change set against either the specification or engineering standards without letting one axis mask the other.
|
|
98
|
+
dependencies: []
|
|
99
|
+
---
|
|
100
|
+
# Code review
|
|
101
|
+
|
|
102
|
+
Review one axis only. The workflow invokes separate spec and standards reviewers so their evidence and verdicts remain independent.
|
|
103
|
+
|
|
104
|
+
## Establish the review set
|
|
105
|
+
|
|
106
|
+
1. Pin the fixed point from the supplied diff, commit, branch, transaction artifact, or persisted workflow record. Confirm that the change set is non-empty.
|
|
107
|
+
2. Inspect changed code and recorded verification evidence. Do not expand the review into unrelated pre-existing code.
|
|
108
|
+
3. Load only the evidence for the assigned axis.
|
|
109
|
+
|
|
110
|
+
## Spec axis
|
|
111
|
+
|
|
112
|
+
Compare the change with the originating specification and acceptance criteria. Find missing or partial behavior, behavior that appears implemented incorrectly, and unrequested scope creep. Cite the criterion and changed file or hunk for every finding. If no specification exists, report that the axis was not assessable rather than inventing requirements.
|
|
113
|
+
|
|
114
|
+
## Standards axis
|
|
115
|
+
|
|
116
|
+
Apply documented repository standards first; they override generic heuristics. Then use this compact smell baseline as judgement, not automatic failure: mysterious names, duplicated logic, data clumps or primitive obsession, repeated conditionals, shotgun surgery or divergent change, speculative generality, message chains, and middle-man abstractions. Skip concerns already enforced by successful tooling.
|
|
117
|
+
|
|
118
|
+
## Verdict
|
|
119
|
+
|
|
120
|
+
- Report each finding with a stable code, severity, file or hunk, evidence, and the smallest corrective direction.
|
|
121
|
+
- Distinguish documented violations from judgement calls.
|
|
122
|
+
- Return explicit \`PASS\` with no findings, or \`FAIL\` with at least one evidence-backed finding.
|
|
123
|
+
- Remain read-only: do not repair the implementation from the reviewer role.
|
|
124
|
+
`
|
|
125
|
+
};
|
|
126
|
+
/** Return the official Phase 4 feature workflow and all primitives it requires. */
|
|
127
|
+
export function createOfficialFeaturePrimitives(verificationCommands, context = []) {
|
|
128
|
+
const commands = verificationCommands.length
|
|
129
|
+
? [...verificationCommands]
|
|
130
|
+
: ["REPLACE_WITH_VERIFICATION_COMMAND"];
|
|
131
|
+
const contextNames = context.map(({ name }) => name);
|
|
132
|
+
const skills = [
|
|
133
|
+
{
|
|
134
|
+
name: "clarify",
|
|
135
|
+
purpose: "Resolve consequential ambiguity before implementation.",
|
|
136
|
+
steps: ["inspect evidence", "resolve repository facts", "select public seam", "record decisions and assumptions"]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "spec",
|
|
140
|
+
purpose: "Turn resolved requirements into observable acceptance criteria.",
|
|
141
|
+
steps: ["state problem and user-visible solution", "define behavior and contracts", "select testing seams", "write acceptance criteria and non-goals"],
|
|
142
|
+
dependencies: ["clarify"]
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: "slice-work",
|
|
146
|
+
purpose: "Divide a specification into independently verifiable vertical slices.",
|
|
147
|
+
steps: ["draft tracer bullets", "define slice criteria and seams", "map blocking edges", "identify the frontier"],
|
|
148
|
+
dependencies: ["spec"]
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "tdd",
|
|
152
|
+
purpose: "Implement behavior with a red-green-refactor feedback loop.",
|
|
153
|
+
steps: ["test through the public seam", "confirm red", "implement minimum change", "confirm green", "refactor and verify"]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "code-review",
|
|
157
|
+
purpose: "Review an implementation against one explicit axis using evidence.",
|
|
158
|
+
steps: ["pin the change set", "select one review axis", "inspect axis evidence", "report evidence-backed findings or pass"]
|
|
159
|
+
}
|
|
160
|
+
];
|
|
161
|
+
const agents = [
|
|
162
|
+
{
|
|
163
|
+
name: "worker",
|
|
164
|
+
objective: "Implement one independently verifiable vertical slice.",
|
|
165
|
+
permissions: { filesystem: "read-write", shell: "execute", network: false },
|
|
166
|
+
context: contextNames,
|
|
167
|
+
skills: ["tdd"],
|
|
168
|
+
tools: ["filesystem", "shell"]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "spec-reviewer",
|
|
172
|
+
objective: "Determine whether the implementation satisfies the requested behavior and acceptance criteria.",
|
|
173
|
+
permissions: { filesystem: "read", shell: "read-only", network: false },
|
|
174
|
+
context: contextNames,
|
|
175
|
+
skills: ["code-review"]
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
name: "standards-reviewer",
|
|
179
|
+
objective: "Determine whether the implementation follows repository engineering standards and architecture.",
|
|
180
|
+
permissions: { filesystem: "read", shell: "read-only", network: false },
|
|
181
|
+
context: contextNames,
|
|
182
|
+
skills: ["code-review"]
|
|
183
|
+
}
|
|
184
|
+
];
|
|
185
|
+
const hook = {
|
|
186
|
+
name: "before-complete",
|
|
187
|
+
event: "before_complete",
|
|
188
|
+
run: commands
|
|
189
|
+
};
|
|
190
|
+
const evaluation = {
|
|
191
|
+
name: "feature-verification",
|
|
192
|
+
run: commands,
|
|
193
|
+
success: { exit_code: 0 }
|
|
194
|
+
};
|
|
195
|
+
const workflow = {
|
|
196
|
+
name: "feature",
|
|
197
|
+
description: "Take one feature request through clarification, specification, slicing, implementation, verification, independent review, and completion.",
|
|
198
|
+
steps: [
|
|
199
|
+
{ id: "clarify", uses: "skill:clarify" },
|
|
200
|
+
{ id: "spec", uses: "skill:spec", needs: ["clarify"] },
|
|
201
|
+
{ id: "slice", uses: "skill:slice-work", needs: ["spec"] },
|
|
202
|
+
{ id: "implement", uses: "agent:worker", needs: ["slice"] },
|
|
203
|
+
{ id: "verify", uses: "eval:feature-verification", needs: ["implement"] },
|
|
204
|
+
{ id: "review-spec", uses: "agent:spec-reviewer", needs: ["verify"] },
|
|
205
|
+
{ id: "review-standards", uses: "agent:standards-reviewer", needs: ["verify"] },
|
|
206
|
+
{ id: "complete", uses: "hook:before-complete", needs: ["review-spec", "review-standards"] }
|
|
207
|
+
]
|
|
208
|
+
};
|
|
209
|
+
return { skills, agents, hook, evaluation, workflow, skillDocuments: { ...SKILL_DOCUMENTS } };
|
|
210
|
+
}
|
|
211
|
+
function workflowLevels(workflow) {
|
|
212
|
+
const pending = new Map(workflow.steps.map((step) => [step.id, step]));
|
|
213
|
+
const completed = new Set();
|
|
214
|
+
const levels = [];
|
|
215
|
+
while (pending.size > 0) {
|
|
216
|
+
const ready = [...pending.values()].filter((step) => (step.needs ?? []).every((need) => completed.has(need)));
|
|
217
|
+
if (ready.length === 0) {
|
|
218
|
+
throw new FeatureWorkflowError(`workflow '${workflow.name}' has a dependency cycle`);
|
|
219
|
+
}
|
|
220
|
+
levels.push(ready);
|
|
221
|
+
for (const step of ready) {
|
|
222
|
+
pending.delete(step.id);
|
|
223
|
+
completed.add(step.id);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return levels;
|
|
227
|
+
}
|
|
228
|
+
function findPrimitive(definition, uses) {
|
|
229
|
+
const [kind, name] = uses.split(":", 2);
|
|
230
|
+
const collections = {
|
|
231
|
+
skill: definition.skills,
|
|
232
|
+
agent: definition.agents,
|
|
233
|
+
hook: definition.hooks,
|
|
234
|
+
eval: definition.evals,
|
|
235
|
+
workflow: definition.workflows,
|
|
236
|
+
context: definition.context,
|
|
237
|
+
state: definition.state
|
|
238
|
+
};
|
|
239
|
+
const value = collections[kind].find((candidate) => candidate.name === name);
|
|
240
|
+
if (!value)
|
|
241
|
+
throw new FeatureWorkflowError(`workflow reference '${uses}' was not found`);
|
|
242
|
+
return { kind, value };
|
|
243
|
+
}
|
|
244
|
+
async function stageInstructions(step, definition, root, loadedSkills) {
|
|
245
|
+
const { kind, value } = findPrimitive(definition, step.uses);
|
|
246
|
+
if (kind === "skill") {
|
|
247
|
+
const invocation = await invokeSkill(value.name, root);
|
|
248
|
+
const newlyLoaded = invocation.skills.filter((skill) => !loadedSkills.has(skill.name));
|
|
249
|
+
for (const skill of invocation.skills)
|
|
250
|
+
loadedSkills.add(skill.name);
|
|
251
|
+
return newlyLoaded.map((skill) => `### Skill: ${skill.name}\n\n${skill.instructions}`).join("\n\n") || `Apply the already loaded '${value.name}' skill.`;
|
|
252
|
+
}
|
|
253
|
+
if (kind === "agent") {
|
|
254
|
+
const agent = value;
|
|
255
|
+
const skillSections = [];
|
|
256
|
+
for (const skillName of agent.skills ?? []) {
|
|
257
|
+
const invocation = await invokeSkill(skillName, root);
|
|
258
|
+
for (const skill of invocation.skills) {
|
|
259
|
+
if (loadedSkills.has(skill.name))
|
|
260
|
+
continue;
|
|
261
|
+
loadedSkills.add(skill.name);
|
|
262
|
+
skillSections.push(`### Skill: ${skill.name}\n\n${skill.instructions}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const contextPaths = (agent.context ?? []).map((name) => {
|
|
266
|
+
const item = definition.context.find((candidate) => candidate.name === name);
|
|
267
|
+
return item ? `${name} (${item.path})` : name;
|
|
268
|
+
});
|
|
269
|
+
const reviewBoundary = agent.name === "spec-reviewer"
|
|
270
|
+
? "Review axis: SPEC ONLY. Inspect request, specification, acceptance criteria, diff, and tests. Ignore style and architecture. Return JSON with verdict, summary, and evidence-backed behavior findings."
|
|
271
|
+
: agent.name === "standards-reviewer"
|
|
272
|
+
? "Review axis: STANDARDS ONLY. Inspect project context, diff, architecture, maintainability, and tests. Do not judge whether requested behavior is complete. Return JSON with verdict, summary, and evidence-backed engineering findings."
|
|
273
|
+
: undefined;
|
|
274
|
+
return [
|
|
275
|
+
`Objective: ${agent.objective}`,
|
|
276
|
+
...(reviewBoundary ? [reviewBoundary] : []),
|
|
277
|
+
`Permissions: filesystem=${agent.permissions.filesystem}, shell=${agent.permissions.shell}, network=${agent.permissions.network ?? false}`,
|
|
278
|
+
`Context: ${contextPaths.join(", ") || "none"}`,
|
|
279
|
+
...skillSections
|
|
280
|
+
].join("\n\n");
|
|
281
|
+
}
|
|
282
|
+
if (kind === "eval") {
|
|
283
|
+
const evaluation = value;
|
|
284
|
+
return `Run every command and record literal evidence:\n${evaluation.run.map((command) => `- ${command}`).join("\n")}\nPass condition: exit_code=${evaluation.success.exit_code}.`;
|
|
285
|
+
}
|
|
286
|
+
if (kind === "hook") {
|
|
287
|
+
const hook = value;
|
|
288
|
+
return `Lifecycle gate: ${hook.event}. Run:\n${hook.run.map((command) => `- ${command}`).join("\n")}\nThis gate must pass before completion.`;
|
|
289
|
+
}
|
|
290
|
+
return `Load and apply ${step.uses}.`;
|
|
291
|
+
}
|
|
292
|
+
/** Compile the official feature DAG into one executable agent invocation packet. */
|
|
293
|
+
export async function createFeatureInvocation(request, projectDirectory = ".") {
|
|
294
|
+
const normalized = request.trim();
|
|
295
|
+
if (!normalized)
|
|
296
|
+
throw new FeatureWorkflowError("the feature request must be a non-empty string");
|
|
297
|
+
const root = resolve(projectDirectory);
|
|
298
|
+
const configPath = join(root, ".yaaw", "yaaw.yaml");
|
|
299
|
+
const validation = await loadAndValidateProjectDefinition(configPath);
|
|
300
|
+
if (!validation.ok) {
|
|
301
|
+
const details = validation.issues.map((issue) => `${issue.path}: ${issue.message}`).join("; ");
|
|
302
|
+
throw new FeatureWorkflowError(`${configPath} is invalid: ${details}`);
|
|
303
|
+
}
|
|
304
|
+
const workflow = validation.value.workflows.find(({ name }) => name === "feature");
|
|
305
|
+
if (!workflow)
|
|
306
|
+
throw new FeatureWorkflowError("the project does not define the official 'feature' workflow");
|
|
307
|
+
const levels = workflowLevels(workflow);
|
|
308
|
+
const loadedSkills = new Set();
|
|
309
|
+
const stages = [];
|
|
310
|
+
const promptSections = [
|
|
311
|
+
"# YAAW feature workflow",
|
|
312
|
+
"",
|
|
313
|
+
`Request: ${normalized}`,
|
|
314
|
+
"",
|
|
315
|
+
"Execute stages in dependency order. Steps in the same parallel group are independent. Do not claim completion until verification, both review axes, and the completion gate pass. Repair failures and repeat the affected gates."
|
|
316
|
+
];
|
|
317
|
+
for (const [levelIndex, level] of levels.entries()) {
|
|
318
|
+
const heading = level.length > 1
|
|
319
|
+
? `## Parallel group ${levelIndex + 1}: ${level.map(({ id }) => id).join(" + ")}`
|
|
320
|
+
: `## Stage ${levelIndex + 1}: ${level[0].id}`;
|
|
321
|
+
promptSections.push("", heading);
|
|
322
|
+
for (const step of level) {
|
|
323
|
+
const instructions = await stageInstructions(step, validation.value, root, loadedSkills);
|
|
324
|
+
const stage = {
|
|
325
|
+
id: step.id,
|
|
326
|
+
uses: step.uses,
|
|
327
|
+
needs: [...(step.needs ?? [])],
|
|
328
|
+
instructions
|
|
329
|
+
};
|
|
330
|
+
stages.push(stage);
|
|
331
|
+
promptSections.push("", `### ${step.id} (${step.uses})`, "", instructions);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
promptSections.push("", "## Completion record", "", "Submit the two review reports independently with `yaaw review spec --data <file>` and `yaaw review standards --data <file>`. Return the resolved decisions, specification, slices, changed files, exact verification commands and results, both review verdicts, repairs, and final gate status.");
|
|
335
|
+
return {
|
|
336
|
+
request: normalized,
|
|
337
|
+
workflow: workflow.name,
|
|
338
|
+
order: stages.map(({ id }) => id),
|
|
339
|
+
parallelGroups: levels.filter((level) => level.length > 1).map((level) => level.map(({ id }) => id)),
|
|
340
|
+
stages,
|
|
341
|
+
prompt: promptSections.join("\n")
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../src/feature.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { AdapterError, syncAdapterSkills } from "./adapters.js";
|
|
2
|
+
export { ArchitectError, architectWorkflow, diagnoseArchitecture } from "./architect.js";
|
|
3
|
+
export { createFeatureInvocation, createOfficialFeaturePrimitives, FeatureWorkflowError } from "./feature.js";
|
|
4
|
+
export { discoverRepository, InitConflictError, initializeRepository, relativeInitPaths } from "./init.js";
|
|
5
|
+
export { loadAndValidateProjectDefinition, parseAndValidateProjectDefinition, parseProjectDefinition, validateProjectDefinition } from "./parser.js";
|
|
6
|
+
export { discoverSkills, displaySkillPath, invokeSkill, SkillSystemError } from "./skills.js";
|
|
7
|
+
export { checkpointFeatureWorkflow, loadWorkflowState, PersistenceError, resumeFeatureWorkflow, startFeatureWorkflow, submitIndependentReview } from "./persistence.js";
|
|
8
|
+
export { assertIndependentReviewGate, createReviewRecord, ReviewError } from "./review.js";
|
|
9
|
+
export { finishWorkflowRun, ObservabilityError, readWorkflowRun, recordWorkflowRunEvent, startWorkflowRun } from "./observability.js";
|
|
10
|
+
export { applyInstallation, detectLegacyProviders, doctorRepository, installRepository, MANAGED_BLOCK_END, MANAGED_BLOCK_START, MANAGED_INSTRUCTION_BLOCK, planInstallation, providerNames, readInstallManifest } from "./installer.js";
|
|
11
|
+
export { getProvider, listProviders, providerRegistry } from "./providers.js";
|
|
12
|
+
export type { AdapterDifference, AdapterManifest, AdapterName, AdapterSkillRecord, AdapterSyncOptions, AdapterSyncResult } from "./adapters.js";
|
|
13
|
+
export type { ArchitectAnswers, ArchitectDiagnosis, ArchitectOptions, ArchitectResult } from "./architect.js";
|
|
14
|
+
export type { FeatureInvocation, FeatureStage, OfficialFeaturePrimitives } from "./feature.js";
|
|
15
|
+
export type { CommandKind, InitOptions, InitResult, RepositoryDiscovery } from "./init.js";
|
|
16
|
+
export type { AgentDefinition, ContextDefinition, EvalDefinition, HookDefinition, ProjectDefinition, SkillDefinition, StateDefinition, ValidationIssue, ValidationResult, WorkflowDefinition, WorkflowStepDefinition } from "./types.js";
|
|
17
|
+
export type { LoadedSkill, SkillInvocation, SkillSummary } from "./skills.js";
|
|
18
|
+
export type { CheckpointUpdate, DecisionRecord, HandoffRecord, PersistedFeatureInvocation, PersistedSlice, VerificationRecord, WorkflowState, WorkflowStatus } from "./persistence.js";
|
|
19
|
+
export type { IndependentReviews, ReviewAxis, ReviewFinding, ReviewRecord, ReviewSubmission, ReviewVerdict } from "./review.js";
|
|
20
|
+
export type { RecordWorkflowRunOptions, StartWorkflowRunOptions, WorkflowResult, WorkflowRun, WorkflowRunEvent, WorkflowRunEventType } from "./observability.js";
|
|
21
|
+
export type { DoctorCheck, DoctorResult, InstallationPlan, InstallManifest, InstallOperation, InstallOptions, InstallResult, ManagedFileRecord, PlanKind, PlanStatus } from "./installer.js";
|
|
22
|
+
export type { ProviderDefinition, ProviderId } from "./providers.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { AdapterError, syncAdapterSkills } from "./adapters.js";
|
|
2
|
+
export { ArchitectError, architectWorkflow, diagnoseArchitecture } from "./architect.js";
|
|
3
|
+
export { createFeatureInvocation, createOfficialFeaturePrimitives, FeatureWorkflowError } from "./feature.js";
|
|
4
|
+
export { discoverRepository, InitConflictError, initializeRepository, relativeInitPaths } from "./init.js";
|
|
5
|
+
export { loadAndValidateProjectDefinition, parseAndValidateProjectDefinition, parseProjectDefinition, validateProjectDefinition } from "./parser.js";
|
|
6
|
+
export { discoverSkills, displaySkillPath, invokeSkill, SkillSystemError } from "./skills.js";
|
|
7
|
+
export { checkpointFeatureWorkflow, loadWorkflowState, PersistenceError, resumeFeatureWorkflow, startFeatureWorkflow, submitIndependentReview } from "./persistence.js";
|
|
8
|
+
export { assertIndependentReviewGate, createReviewRecord, ReviewError } from "./review.js";
|
|
9
|
+
export { finishWorkflowRun, ObservabilityError, readWorkflowRun, recordWorkflowRunEvent, startWorkflowRun } from "./observability.js";
|
|
10
|
+
export { applyInstallation, detectLegacyProviders, doctorRepository, installRepository, MANAGED_BLOCK_END, MANAGED_BLOCK_START, MANAGED_INSTRUCTION_BLOCK, planInstallation, providerNames, readInstallManifest } from "./installer.js";
|
|
11
|
+
export { getProvider, listProviders, providerRegistry } from "./providers.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type CommandKind = "test" | "lint" | "typecheck" | "build";
|
|
2
|
+
export interface RepositoryDiscovery {
|
|
3
|
+
root: string;
|
|
4
|
+
projectName: string;
|
|
5
|
+
languages: string[];
|
|
6
|
+
packageManager?: string;
|
|
7
|
+
commands: Partial<Record<CommandKind, string>>;
|
|
8
|
+
git: boolean;
|
|
9
|
+
aiInstructions: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface InitOptions {
|
|
12
|
+
force?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface InitResult {
|
|
15
|
+
discovery: RepositoryDiscovery;
|
|
16
|
+
configPath: string;
|
|
17
|
+
discoveryPath: string;
|
|
18
|
+
statePath: string;
|
|
19
|
+
skillPaths: string[];
|
|
20
|
+
}
|
|
21
|
+
export declare class InitConflictError extends Error {
|
|
22
|
+
constructor(path: string);
|
|
23
|
+
}
|
|
24
|
+
export declare function discoverRepository(directory?: string): Promise<RepositoryDiscovery>;
|
|
25
|
+
export declare function initializeRepository(directory?: string, options?: InitOptions): Promise<InitResult>;
|
|
26
|
+
export declare function relativeInitPaths(result: InitResult): string[];
|