thoth-agents 0.3.10 → 0.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +119 -33
  2. package/dist/{chunk-TKIDBRM3.js → chunk-5UBJB5QO.js} +4 -1
  3. package/dist/{chunk-M2WF46BP.js → chunk-DX4U3AD3.js} +387 -231
  4. package/dist/{chunk-JBG7XMIG.js → chunk-VPVBYBPU.js} +602 -180
  5. package/dist/cli/codex-plugin-install.d.ts +16 -2
  6. package/dist/cli/index.js +7 -5
  7. package/dist/cli/tui/index.js +2 -2
  8. package/dist/config/constants.d.ts +3 -3
  9. package/dist/harness/adapters/claude-code.d.ts +8 -0
  10. package/dist/harness/adapters/codex-surfaces.d.ts +2 -2
  11. package/dist/harness/core/agent-pack.d.ts +60 -5
  12. package/dist/harness/core/sdd.d.ts +32 -19
  13. package/dist/harness/writers/codex-plugin-package.d.ts +1 -0
  14. package/dist/index.js +2 -2
  15. package/package.json +4 -4
  16. package/plugin/.claude-plugin/.thoth-agents-plugin-assets.json +7 -7
  17. package/plugin/.claude-plugin/plugin.json +1 -1
  18. package/plugin/.codex-plugin/plugin.json +1 -1
  19. package/plugin/agents/deep.md +10 -31
  20. package/plugin/agents/designer.md +10 -31
  21. package/plugin/agents/explorer.md +10 -30
  22. package/plugin/agents/librarian.md +10 -30
  23. package/plugin/agents/oracle.md +11 -31
  24. package/plugin/agents/orchestrator.md +48 -35
  25. package/plugin/agents/quick.md +10 -31
  26. package/plugin/skills/plan-reviewer/SKILL.md +54 -15
  27. package/plugin/skills/thoth-archive/SKILL.md +5 -0
  28. package/plugin/skills/thoth-archive/scripts/archive.mjs +30 -10
  29. package/plugin/skills/thoth-constitution/SKILL.md +5 -0
  30. package/plugin/skills/thoth-constitution/templates/constitution.md +19 -2
  31. package/plugin/skills/thoth-init/SKILL.md +5 -0
  32. package/plugin/skills/thoth-sdd/SKILL.md +48 -11
  33. package/plugin/skills/thoth-sdd/references/phases/implement.md +44 -6
  34. package/plugin/skills/thoth-sdd/references/phases/tasks.md +23 -2
  35. package/plugin/skills/thoth-sdd/references/phases/verify.md +7 -5
  36. package/plugin/skills/thoth-sdd/scripts/validate.mjs +263 -30
  37. package/plugin/skills/thoth-sdd/templates/tasks.md +18 -2
  38. package/skills/README.md +2 -1
  39. package/skills/plan-reviewer/SKILL.md +54 -15
  40. package/skills/thoth-archive/SKILL.md +5 -0
  41. package/skills/thoth-archive/scripts/archive.mjs +30 -10
  42. package/skills/thoth-constitution/SKILL.md +5 -0
  43. package/skills/thoth-constitution/templates/constitution.md +19 -2
  44. package/skills/thoth-init/SKILL.md +5 -0
  45. package/skills/thoth-sdd/SKILL.md +48 -11
  46. package/skills/thoth-sdd/references/phases/implement.md +44 -6
  47. package/skills/thoth-sdd/references/phases/tasks.md +23 -2
  48. package/skills/thoth-sdd/references/phases/verify.md +7 -5
  49. package/skills/thoth-sdd/scripts/validate.mjs +263 -30
  50. package/skills/thoth-sdd/templates/tasks.md +18 -2
  51. package/.agents/plugins/marketplace.json +0 -20
  52. package/.claude-plugin/marketplace.json +0 -21
@@ -1,9 +1,11 @@
1
1
  ---
2
2
  name: plan-reviewer
3
- description: Review a ready Accelerated or Full SDD artifact set for execution blockers after the user chooses the optional Oracle plan review. Use only for the pre-implementation plan-review phase; return exact [OKAY] or [REJECT] semantics while keeping final verification separate.
3
+ description: Review a ready Accelerated or Full SDD artifact set for execution blockers after Oracle review is explicitly or recommended-default selected. Use only for the pre-implementation plan-review phase; return exact [OKAY] or [REJECT] semantics while keeping final verification separate.
4
+ license: MIT
5
+ compatibility: Designed for thoth-agents Accelerated and Full SDD workflows.
4
6
  metadata:
5
7
  author: thoth-agents
6
- version: '1.0'
8
+ version: "1.0"
7
9
  ---
8
10
 
9
11
  # Plan Reviewer
@@ -17,12 +19,16 @@ Use this skill only after all of these conditions hold:
17
19
 
18
20
  - The selected route is Accelerated or Full.
19
21
  - The route's `ready` validator gate has passed.
20
- - The user chose `Review plan with Oracle (Recommended)` instead of
21
- `Proceed without review`.
22
+ - `Review plan with Oracle (Recommended)` was explicitly selected or selected
23
+ by the bounded no-answer fallback.
22
24
 
23
- Do not activate automatically, and do not use it for Direct work. The user may
24
- proceed without this review. Skipping it means there is no pre-implementation
25
- Oracle review; mandatory final Oracle verify still applies.
25
+ At the ready gate, any explicit `Proceed without review` answer wins. When the
26
+ native question returns answerless, Root
27
+ makes at most three total attempts; after the third answerless result, Root
28
+ treats `Review plan with Oracle (Recommended)` as selected. This bounded
29
+ fallback is the only automatic activation. Do not use this skill for Direct
30
+ work. Explicitly proceeding without review means there is no pre-implementation
31
+ Oracle review; mandatory final verification still applies.
26
32
 
27
33
  ## Ownership and inputs
28
34
 
@@ -61,6 +67,29 @@ Judge the artifact set on five dimensions:
61
67
  Respect TDD ordering and the repository constitution when they apply. Report
62
68
  non-blocking cautions separately so they do not become artificial gates.
63
69
 
70
+ ## Native parallel executability
71
+
72
+ Structural ready validation proves that declared parallel metadata is
73
+ well-formed; it does not prove semantic independence. When `tasks.md` declares
74
+ parallel groups, Oracle must independently assess whether the plan can execute
75
+ them safely:
76
+
77
+ - Confirm each lane path union is genuinely disjoint from the other lanes and
78
+ its selected owner fits the bounded work.
79
+ - Confirm cross-lane data flow does not hide a dependency and that the declared
80
+ prerequisites and barrier reflect the real execution order.
81
+ - Confirm the handoff is sufficient for native capacity-bounded waves:
82
+ dispatch-before-wait for every admitted lane, refill before another wait, and
83
+ terminal reconciliation before releasing the barrier.
84
+ - Require a truthful sequential fallback when native concurrency or capacity is
85
+ unavailable or unproven.
86
+
87
+ For an evidence-backed `None` declaration, assess whether the claimed coupling
88
+ really prevents a safe group. Treat a structural-but-semantically-unsafe group
89
+ as a blocker only when the smallest repair is required before implementation;
90
+ keep capacity uncertainty as a non-blocking caution when the declared fallback
91
+ still makes the plan executable.
92
+
64
93
  ## Decision contract
65
94
 
66
95
  Default to `[OKAY]`. Return `[REJECT]` only when execution is genuinely blocked.
@@ -68,8 +97,10 @@ A rejection contains at most 3 actionable blockers. For each blocker, state why
68
97
  it blocks execution and the smallest concrete repair. Preserve the exact
69
98
  `[OKAY]` and `[REJECT]` tokens across every harness.
70
99
 
71
- After `[REJECT]`, Root repairs the canonical artifacts and offers the user the
72
- review-or-proceed choice again. Do not silently approve a changed plan.
100
+ After `[REJECT]`, Root repairs actionable same-intent planning artifacts,
101
+ revalidates affected gates, and starts a fresh Oracle approval round until
102
+ `[OKAY]`. A material human-owned blocker stops the loop for user input. Do not
103
+ silently approve a changed plan or reuse an Oracle to issue a new approval.
73
104
 
74
105
  ## Freshness and persistence
75
106
 
@@ -84,12 +115,20 @@ digests. Oracle returns this payload; Root is the only writer that persists it.
84
115
 
85
116
  ## Handoff
86
117
 
87
- After `[OKAY]`, Root summarizes the approved plan and must ask whether to implement or stop.
88
- Approval is not implementation authorization. Choosing
89
- `Proceed without review` at the earlier choice does authorize implementation.
90
-
91
- Plan review never replaces mandatory final Oracle verify. Every route still
92
- requires independent post-implementation verification by a non-writer.
118
+ After `[OKAY]`, Root summarizes the approved scope, approach, ownership,
119
+ verification, and material risks before asking the native question:
120
+ `Implement (Recommended)` or `Stop`. Any explicit `Stop` answer wins. If the
121
+ implementation question returns answerless, Root makes at most three total
122
+ attempts; after the third answerless result, Root treats implementation as
123
+ selected. `[OKAY]` alone does not authorize implementation before that explicit
124
+ choice or bounded fallback resolves. Choosing `Proceed without review` at the
125
+ earlier choice does authorize implementation.
126
+
127
+ Plan review never replaces or substitutes for mandatory final verification.
128
+ Every route still requires post-implementation verification, but ownership is
129
+ proportional: trivial deterministic Direct work may be Root-verified when Root
130
+ is not self-approving its own implementation; materially risky Direct work and
131
+ every Accelerated or Full final verify require a fresh read-only Oracle.
93
132
 
94
133
  ## Output
95
134
 
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: thoth-archive
3
3
  description: Close a passing artifact-backed thoth-agents change by transactionally synchronizing explicitly declared durable requirement deltas and moving the complete audit trail to a dated archive.
4
+ license: MIT
5
+ compatibility: Requires Node.js >=22.13 and write access to the project OpenSpec tree.
6
+ metadata:
7
+ author: thoth-agents
8
+ version: "1.0"
4
9
  ---
5
10
 
6
11
  # Thoth Archive
@@ -300,16 +300,36 @@ function parseStoryScenarios(spec) {
300
300
  const covers =
301
301
  /^\*\*Covers\*\*:\s*(.+)$/im.exec(story)?.[1].match(/\bFR-\d{3}\b/g) ??
302
302
  [];
303
- const scenarios = [
304
- ...story.matchAll(
305
- /^\d+\.\s+\*\*Given\*\*\s+(.+?),\s+\*\*When\*\*\s+(.+?),\s+\*\*Then\*\*\s+(.+?)\.?\s*$/gim,
306
- ),
307
- ].map((scenario, scenarioIndex) => ({
308
- title: `US${storyMatch[1]} - ${storyMatch[2].trim()} ${scenarioIndex + 1}`,
309
- given: scenario[1].trim(),
310
- when: scenario[2].trim(),
311
- result: scenario[3].trim(),
312
- }));
303
+ const acceptanceMarker = /^\*\*Acceptance scenarios\*\*:\s*$/im.exec(story);
304
+ const acceptance = acceptanceMarker
305
+ ? story.slice((acceptanceMarker.index ?? 0) + acceptanceMarker[0].length)
306
+ : '';
307
+ const scenarioStarts = [
308
+ ...acceptance.matchAll(/^\d+\.\s+\*\*Given\*\*/gim),
309
+ ];
310
+ const scenarios = scenarioStarts.map((scenarioStart, scenarioIndex) => {
311
+ const start = scenarioStart.index ?? 0;
312
+ const end = scenarioStarts[scenarioIndex + 1]?.index ?? acceptance.length;
313
+ const normalized = acceptance
314
+ .slice(start, end)
315
+ .replace(/\s+/g, ' ')
316
+ .trim();
317
+ const scenario =
318
+ /^\d+\.\s+\*\*Given\*\*\s+(.+?),\s+\*\*When\*\*\s+(.+?),\s+\*\*Then\*\*\s+(.+?)\.?\s*$/i.exec(
319
+ normalized,
320
+ );
321
+ if (!scenario) {
322
+ throw new Error(
323
+ `US${storyMatch[1]} acceptance scenario ${scenarioIndex + 1} must use Given, When, and Then`,
324
+ );
325
+ }
326
+ return {
327
+ title: `US${storyMatch[1]} - ${storyMatch[2].trim()} ${scenarioIndex + 1}`,
328
+ given: scenario[1].trim(),
329
+ when: scenario[2].trim(),
330
+ result: scenario[3].trim(),
331
+ };
332
+ });
313
333
 
314
334
  for (const requirementId of covers) {
315
335
  const current = scenariosByRequirement.get(requirementId) ?? [];
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: thoth-constitution
3
3
  description: Create or explicitly amend the project constitution, choose its governance SemVer bump, propagate its impact, and validate lifecycle metadata. Use only for constitution lifecycle work; routine SDD planning reads the constitution without activating this skill.
4
+ license: MIT
5
+ compatibility: Requires Node.js >=22.13 for bundled validation scripts.
6
+ metadata:
7
+ author: thoth-agents
8
+ version: "1.0"
4
9
  ---
5
10
 
6
11
  # Thoth Constitution
@@ -24,7 +24,11 @@ infrastructure without a current requirement is prohibited.
24
24
 
25
25
  Delivery MUST use the smallest coherent design that satisfies accepted
26
26
  requirements. Non-goals MUST be named, and scope cannot expand silently.
27
- SDD route selection MUST remain user-owned after an evidence-based recommendation.
27
+ Before the SDD route question, Root MUST summarize relevant context, scope,
28
+ clarity, risk, and its evidence-based recommendation. Any explicit answer wins.
29
+ When the native question returns answerless, Root MUST make at most three total
30
+ attempts; after the third answerless result, the recommended route counts as
31
+ selected.
28
32
 
29
33
  ### III. Testable contracts
30
34
 
@@ -33,7 +37,20 @@ changes MUST use test-first execution at an agreed public seam when practical.
33
37
 
34
38
  ### IV. Independent assurance
35
39
 
36
- The implementation writer cannot approve its own work. Pre-implementation plan review is optional and user-selected. When selected, it uses an independent read-only reviewer. Every final verify MUST use an independent read-only reviewer.
40
+ Every route MUST include verification proportional to the changed behavior and
41
+ risk. The implementation writer cannot approve its own work. Trivial
42
+ deterministic Direct work MAY be verified by Root when the decision is bounded
43
+ and independent of the implementation writer. Materially risky Direct work and
44
+ every Accelerated or Full final verify MUST use a fresh independent read-only
45
+ reviewer. Pre-implementation plan review is optional and is selected explicitly
46
+ or by the bounded recommended fallback; when offered, any explicit answer wins.
47
+ After the third answerless result,
48
+ `Review plan with Oracle (Recommended)` counts as selected. Actionable review
49
+ rejections MUST be repaired and revalidated before a fresh reviewer round until
50
+ approval or a material human-owned blocker. After approval, Root MUST give an
51
+ approved plan summary before asking `Implement (Recommended)` or `Stop`; any
52
+ explicit answer wins, while the third answerless result selects implementation.
53
+ Plan review never substitutes for final verification.
37
54
 
38
55
  ### V. Traceable delivery
39
56
 
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: thoth-init
3
3
  description: Initialize or synchronize the minimum project OpenSpec governance structure required by thoth-agents SDD flows.
4
+ license: MIT
5
+ compatibility: Requires Node.js >=22.13 and write access to the target project.
6
+ metadata:
7
+ author: thoth-agents
8
+ version: "1.0"
4
9
  ---
5
10
 
6
11
  # Thoth Init
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: thoth-sdd
3
- description: Run thoth-agents Direct, Accelerated, or Full specification-driven development with Spec Kit-grade artifacts, OpenSpec-style durable deltas, fast-forward planning, and oracle-only analysis and verification.
3
+ description: Run thoth-agents Direct, Accelerated, or Full specification-driven development with Spec Kit-grade artifacts, OpenSpec-style durable deltas, fast-forward planning, and proportional independent verification.
4
+ license: MIT
5
+ compatibility: Requires Node.js >=22.13 for bundled validation scripts.
6
+ metadata:
7
+ author: thoth-agents
8
+ version: "1.0"
4
9
  ---
5
10
 
6
11
  # Thoth SDD
@@ -18,21 +23,53 @@ intent is clear and risk is low.
18
23
 
19
24
  Accelerated is a **fast-forward** route: root writes `spec.md`, `plan.md`, and
20
25
  `tasks.md` in one uninterrupted pass and creates optional artifacts only for a
21
- concrete risk. After `ready`, both artifact-backed routes pause once to offer
26
+ concrete risk. After `ready`, both artifact-backed routes offer
22
27
  `Review plan with Oracle (Recommended)` or `Proceed without review`. Full uses
23
28
  separate planning gates because uncertainty or failure cost justifies them.
24
29
 
25
30
  An explicitly named route counts as the user's selection. Otherwise assess and
26
- recommend Direct, Accelerated, or Full, then wait for the user to choose; the
27
- recommendation is not the decision. A generic request to “use SDD” makes
28
- Accelerated the minimum recommendation but does not force it.
31
+ recommend Direct, Accelerated, or Full, first summarize the relevant request
32
+ context, scope, clarity, risk, and why the recommendation fits, then ask. When a
33
+ native route question returns answerless, make at most three total attempts;
34
+ after the third answerless result, treat the recommended route as selected. Any
35
+ explicit answer wins. A generic request to “use SDD” makes Accelerated the
36
+ minimum recommendation but does not force it.
37
+
38
+ At the post-`ready` review choice, an explicit answer wins, including
39
+ `Proceed without review`. When the native question returns answerless, make at
40
+ most three total attempts; after the third answerless result, treat
41
+ `Review plan with Oracle (Recommended)` as selected. Once review is selected,
42
+ repair actionable same-intent planning blockers, revalidate affected gates, and
43
+ use a fresh Oracle for every new approval round until `[OKAY]`; stop instead on
44
+ a material human-owned blocker.
45
+
46
+ These bounded fallbacks apply only to the route, plan-review, and implementation
47
+ questions. Never apply them to secrets, destructive or security-sensitive
48
+ actions, or material human-owned product or architecture decisions.
29
49
 
30
50
  ## Ownership
31
51
 
32
52
  - Root owns sequential coordination artifacts, gate execution, and archive.
33
53
  - Explorer owns Full-route repository discovery.
34
- - Designer, quick, deep, or root may implement according to scope.
35
- - Oracle owns `plan-review` when the user selects it and **every** `verify`. The
54
+ - SDD routes govern artifacts and gates, not implementation ownership. Root,
55
+ `designer`, `quick`, or `deep` may implement in Direct, Accelerated, or Full.
56
+ - Root decides ownership from explicit safe user direction and demonstrated net
57
+ gain. Delegation benefits include specialization, context isolation,
58
+ independent bounded work, quality, latency, or total cost; root continuity
59
+ benefits include short or sequential work, shared mutable state, accumulated
60
+ context, rediscovery, and coordination overhead. Route, file count, or cheaper
61
+ model price alone never selects an owner.
62
+ - Only after deciding to delegate implementation, select `designer` for UI/UX,
63
+ `quick` for known narrow low-risk work, or `deep` for coupled, edge-case-heavy,
64
+ migration, concurrency, shared-contract, or high-risk work.
65
+ - Each mutable surface has one writer; independent non-overlapping surfaces may
66
+ split, while coupled surfaces use one `deep` writer and ordered handoffs.
67
+ - Oracle owns `plan-review` when review is explicitly selected or chosen by the
68
+ bounded recommended fallback. Every route requires
69
+ mandatory verification, but final-verification ownership is proportional:
70
+ trivial deterministic Direct work may be verified by Root when Root is not
71
+ self-approving its own implementation; materially risky Direct work and every
72
+ Accelerated or Full final verify require a fresh read-only Oracle. The
36
73
  implementation writer never approves its own work.
37
74
 
38
75
  ## Progressive loading
@@ -78,10 +115,10 @@ node "<skill-dir>/scripts/validate.mjs" --change openspec/changes/<feature> --ro
78
115
  - **Checklist**: run only when activated; the later `ready` gate includes it if
79
116
  present.
80
117
 
81
- `ready` validates the artifacts needed before the user chooses
82
- `Review plan with Oracle (Recommended)` or `Proceed without review`. Review
83
- approval remains separate from implementation confirmation and never satisfies
84
- final verification.
118
+ `ready` validates the artifacts needed before the explicit or bounded-default
119
+ `Review plan with Oracle (Recommended)` / `Proceed without review` choice.
120
+ Review approval remains separate from implementation confirmation and never
121
+ satisfies final verification.
85
122
  `closeout` additionally requires completed tasks, independent oracle PASS,
86
123
  complete FR/buildable-SC evidence, an observed PASS or explicit residual RISK
87
124
  for every outcome SC, and an archive report ready for the transactional archive
@@ -1,12 +1,42 @@
1
1
  # Implement contract
2
2
 
3
- **Owner**: root, designer, quick, or deep; exactly one writer per mutable surface
3
+ **Owner**: adaptive root, `designer`, `quick`, or `deep` in every route; exactly
4
+ one writer per mutable surface
4
5
 
5
- Root marks selected artifact-backed tasks `[~]`, then assigns exact paths,
6
- accepted FR/buildable-SC scope, non-goals, and verification commands. Use the
7
- mandatory `tdd` skill for behavior changes and work in vertical red/green
8
- slices. Child writers never edit task state; root marks `[x]` only after checking
9
- task-specific evidence.
6
+ SDD routes govern artifacts and gates, not implementation ownership. Before
7
+ implementation or dispatch, root records the decided owner, task-shape/net-gain
8
+ rationale, exact paths, accepted FR/buildable-SC scope, non-goals, and
9
+ verification commands. Route, file count, or cheaper model price alone is not an
10
+ ownership rationale.
11
+
12
+ Root may retain implementation when short or sequential work, shared mutable
13
+ state, accumulated context, rediscovery, or coordination overhead outweighs
14
+ delegation benefit. Delegate when specialization, context isolation, independent
15
+ bounded work, quality, latency, or total cost creates demonstrated net gain. If
16
+ root owns the surface, do not dispatch a writer. If a specialist owns it, send a
17
+ bounded handoff with the exact surface, requirements, and checks.
18
+
19
+ Root marks selected artifact-backed tasks `[~]`; Direct or no-artifact work has
20
+ no task state. Use the mandatory `tdd` skill for behavior changes and work in
21
+ vertical red/green slices. Child writers never edit task state; root marks `[x]`
22
+ only after checking task-specific evidence.
23
+
24
+ After deciding delegation creates net gain, select deterministically:
25
+
26
+ - `designer` for user-facing UI/UX, interaction, accessibility, responsive, or
27
+ visual-quality work;
28
+ - `quick` for a known narrow mechanical low-risk surface with exact targets;
29
+ - `deep` for coupled multi-file, shared-contract, migration, concurrency,
30
+ edge-case-heavy, or high-risk work.
31
+
32
+ Proven independent surfaces may use different writers only with non-overlapping
33
+ ownership. Overlapping or compatibility-coupled work uses one `deep` writer and
34
+ ordered handoffs. A writer escalates before expanding beyond its routing
35
+ boundary. Every route requires mandatory verification, and the implementation
36
+ writer never approves its own work. For trivial deterministic Direct work, Root
37
+ may run the proportionate focused checks when Root is not self-approving its own
38
+ implementation. For materially risky Direct work and every Accelerated or Full
39
+ final verify, root hands the unchanged candidate to a fresh read-only Oracle.
10
40
 
11
41
  Implementation evidence may refine an artifact without restarting the workflow:
12
42
 
@@ -17,3 +47,11 @@ Implementation evidence may refine an artifact without restarting the workflow:
17
47
  silently expanding this one.
18
48
 
19
49
  Report files changed, checks executed, deviations, and remaining work.
50
+
51
+ ## Native dispatch groups and waves
52
+
53
+ For each ready group, confirm prerequisites, ordered lane tasks, exact path
54
+ union, owner, requirements, and checks. Select the capacity-bounded set of
55
+ undispatched ready lanes and create one fresh native specialist assignment per admitted lane. Issue every dispatch in that native wave before any wait, status,
56
+ result collection, or root implementation action. Retain handles; when terminal evidence frees capacity, dispatch the next undispatched ready lane before waiting again. Validate terminal evidence per lane, while root alone updates task state. Cross the declared barrier only after every lane is terminal and reconciled. Preserve truthful capability/capacity fallback: when native
57
+ concurrency is unavailable or width is one, use a truthful sequential fallback.
@@ -22,6 +22,27 @@ not justify artificial implementation tasks.
22
22
 
23
23
  Order test-first work before its implementation, group tasks by independently
24
24
  deliverable story, identify the MVP, and state dependencies. `[P]` is permitted
25
- only when mutable paths provably do not overlap and the Parallel execution
26
- section names a concrete pairing. If there is no safe parallel work, use
25
+ only for tasks assigned to a declared lane whose mutable path union does not
26
+ overlap another lane in the same group. If there is no safe parallel work, use
27
27
  `- None: <evidence-backed reason>` instead. Avoid ceremonial tasks.
28
+
29
+ ## Parallel execution
30
+
31
+ Declare safe work with this exact grammar:
32
+
33
+ ### Group P1
34
+
35
+ - Lane L1: T001 -> T002 | Owner: deep
36
+ - Lane L2: T003 -> T004 | Owner: quick
37
+ - Prerequisites: None
38
+ - Barrier: Final verification
39
+ - Rationale: Both lane path sets are disjoint and neither lane consumes peer output.
40
+
41
+ Groups and lanes are sequential and unique. Every `[P]` task belongs to exactly one lane; non-`[P]` tasks do not. Lane surfaces are the union of exact task
42
+ paths, and lanes in a group have disjoint surfaces and no cross-lane dependency.
43
+ The `Rationale` must explicitly state path-disjointness and cross-lane dependency
44
+ evidence so structural validation can gate the evidence shape and Oracle can
45
+ judge whether the claim is true.
46
+ Prerequisites name known tasks outside the group; the barrier is a downstream
47
+ task or `Final verification` after all lane members. If no group exists, use
48
+ only `- None: <evidence-backed reason>` and no task may use `[P]`.
@@ -1,10 +1,12 @@
1
1
  # Verify contract
2
2
 
3
- **Owner**: oracle, always read-only and independent
3
+ **Owner**: route- and risk-aware; Root for trivial deterministic Direct, otherwise a fresh read-only Oracle
4
4
 
5
- Oracle verifies Direct, Accelerated, and Full work. The root or writer that
6
- implemented the change cannot substitute for oracle. Inspect changed code and
7
- run or validate the smallest sufficient checks.
5
+ Every route requires mandatory verification. Trivial deterministic Direct work
6
+ may be verified by Root with focused deterministic checks. Materially risky
7
+ Direct work and Accelerated or Full final verification use a fresh read-only
8
+ Oracle. The implementation writer never approves its own work. Inspect changed
9
+ code and run or validate the smallest sufficient checks.
8
10
 
9
11
  Judge three dimensions separately: **completeness** of accepted scope and
10
12
  coverage, **correctness** against behavioral contracts and executed evidence,
@@ -16,7 +18,7 @@ task.
16
18
 
17
19
  Return `pass` or `fail`, compliance matrix, commands/results, stable findings,
18
20
  critical issues, warnings, and remediation anchors. For Direct, return the
19
- verdict in-session. For Accelerated and Full, root persists oracle's exact result
21
+ verdict in-session regardless of owner. For Accelerated and Full, root persists Oracle's exact result
20
22
  using `<skill-dir>/templates/verify-report.md`, where `<skill-dir>` is the
21
23
  directory containing the installed `thoth-sdd/SKILL.md`. Fail routes to converge
22
24
  (straight back to implement for Direct); PASS permits closeout and archive for