devrites 4.0.7 → 4.0.9

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 (60) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +5 -3
  3. package/docs/skills.md +2 -2
  4. package/pack/.claude/agents/devrites-plan-drafter.md +9 -0
  5. package/pack/.claude/agents/devrites-plan-reviewer.md +4 -1
  6. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +11 -0
  7. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +3 -1
  8. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +1 -0
  9. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +11 -5
  10. package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +35 -6
  11. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +2 -1
  12. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +57 -0
  13. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
  14. package/pack/.claude/skills/rite-build/SKILL.md +11 -2
  15. package/pack/.claude/skills/rite-build/reference/phase-contract.md +18 -4
  16. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +4 -0
  17. package/pack/.claude/skills/rite-plan/SKILL.md +10 -0
  18. package/pack/.claude/skills/rite-prove/SKILL.md +13 -2
  19. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +6 -0
  20. package/pack/.claude/skills/rite-vet/SKILL.md +4 -2
  21. package/pack/.claude/skills/rite-vet/reference/artifacts.md +4 -4
  22. package/pack/generated/claude/agents/devrites-plan-drafter.md +9 -0
  23. package/pack/generated/claude/agents/devrites-plan-reviewer.md +4 -1
  24. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +11 -0
  25. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +3 -1
  26. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +1 -0
  27. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -5
  28. package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +35 -6
  29. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +2 -1
  30. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +57 -0
  31. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
  32. package/pack/generated/claude/skills/rite-build/SKILL.md +11 -2
  33. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +18 -4
  34. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +4 -0
  35. package/pack/generated/claude/skills/rite-plan/SKILL.md +10 -0
  36. package/pack/generated/claude/skills/rite-prove/SKILL.md +13 -2
  37. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +6 -0
  38. package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -2
  39. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +4 -4
  40. package/pack/generated/codex/AGENTS.md +1 -1
  41. package/pack/generated/codex/agents/devrites-plan-drafter.toml +9 -0
  42. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +4 -1
  43. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +11 -0
  44. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +3 -1
  45. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +1 -0
  46. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -5
  47. package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +35 -6
  48. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +2 -1
  49. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +57 -0
  50. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -0
  51. package/pack/generated/codex/skills/rite-build/SKILL.md +11 -2
  52. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +18 -4
  53. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +4 -0
  54. package/pack/generated/codex/skills/rite-plan/SKILL.md +10 -0
  55. package/pack/generated/codex/skills/rite-prove/SKILL.md +13 -2
  56. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +6 -0
  57. package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -2
  58. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +4 -4
  59. package/package.json +1 -1
  60. package/scripts/codex-generate.sh +1 -1
@@ -46,6 +46,13 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ Past evidence being irretrievable is not by itself terminal. When an in-scope
50
+ trusted diagnostic seam can make the next retained fingerprint uniquely
51
+ actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
52
+ Vet inline, then pause for a fresh GO before the single evidence-acquisition
53
+ attempt. Use `Next: none` only after proving no safe in-scope amplification seam
54
+ exists, a real human/risk/scope gate owns it, or bounded recovery is exhausted.
55
+
49
56
  ## Stop on gate severity
50
57
 
51
58
  - `blocking` gate fires → synchronous pause.
@@ -14,7 +14,9 @@ first**; if none, tell the user to run `$rite-spec <feature>`.
14
14
 
15
15
  The root owns gates/workspace; a
16
16
  fresh-context [`devrites-slice-wright`](.codex/agents/devrites-slice-wright.toml)
17
- writes source and tests. Apply the readiness, selection, host, HITL/AFK,
17
+ writes product source and tests. Exact Vet-ready executable workflow artifacts use
18
+ [`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md).
19
+ Apply the readiness, selection, host, HITL/AFK,
18
20
  dispatch, doubt, fail-on-red, record, and stop checks. See
19
21
  [`reference/wright-dispatch.md`](reference/wright-dispatch.md).
20
22
 
@@ -61,7 +63,9 @@ reads named on-demand rules while writing; root reads them for doubt/record gate
61
63
  principle was broken**; a fresh violation is handled like any irreversible-risk item: a
62
64
  human-approved, scoped exception in the register or a stop, never folded into the slice. No
63
65
  `.devrites/principles.md` → none declared → nothing to honor.
64
- - **You never edit source.** You write only `.devrites/` bookkeeping. Follow the
66
+ - **You never edit product source/tests.** You write `.devrites/` bookkeeping and,
67
+ only through `workflow-artifacts.md`, an exact Vet-ready executable workflow-artifact set.
68
+ Follow the
65
69
  host gate in `wright-dispatch.md` before every build or recovery dispatch. On a
66
70
  supported host, the wright is the only writer of code and tests. Codex gives
67
71
  the root workspace permission only so that native writer dispatch can execute;
@@ -69,6 +73,11 @@ reads named on-demand rules while writing; root reads them for doubt/record gate
69
73
  list directly in the task, dispatch the exact `devrites-slice-wright`, then
70
74
  compare `git diff --name-only` with those task paths. Any extra source file is
71
75
  a hard STOP.
76
+ - **Executable workflow-artifact branch.** If every implementation target is an
77
+ exact admitted path under the active `.devrites/work/<slug>/`, the controlling
78
+ root materializes and proves that atomic set itself. It does not dispatch the wright,
79
+ decrement/count a product slice, update the candidate manifest, or execute the
80
+ consumptive action. After narrow Vet, restore the caller cursor.
72
81
 
73
82
  ## Workflow
74
83
 
@@ -8,16 +8,30 @@ See [`one-slice-cycle.md`](one-slice-cycle.md); candidate lifecycle is
8
8
  `Readiness inputs SHA-256`, all applicable exact reviewer accounts,
9
9
  ID-and-meaning traceability, and green proof preflight; run
10
10
  `devrites-engine check readiness <slug>`. Any miss/nonzero stops.
11
- 2. **Select one slice.** Restate goal, acceptance criteria, exclusions, and exact
11
+ 2. **Select one target.** Restate goal, acceptance criteria, exclusions, and exact
12
12
  source/test paths. Before dispatch, validate relevant `assumptions.md` rows
13
13
  against live evidence. If one is disproved and changes acceptance, architecture,
14
14
  scope, or proof, use the Spec Drift Guard/plan recovery; a human-owned unknown
15
15
  stops. Resolve HITL before source work. AFK answers only permitted gates;
16
16
  human-owned or irreversible risk persists a question and stops for `$rite-resolve`.
17
- 3. **Dispatch the sole writer.** Apply [`wright-dispatch.md`](wright-dispatch.md).
17
+ If the target is only an exact Vet-ready executable workflow-artifact set under
18
+ the active feature workspace, apply
19
+ [`workflow-artifacts.md`](../../devrites-lib/reference/standards/workflow-artifacts.md)
20
+ instead of treating it as a product slice.
21
+ 3. **Dispatch or materialize.** Product source/tests apply [`wright-dispatch.md`](wright-dispatch.md).
18
22
  Put the smallest exact project-relative source/test path list directly in the task;
19
- dispatch the exact `devrites-slice-wright` fresh. Root never writes, wright never
20
- widens, and a missing profile stops.
23
+ dispatch the exact `devrites-slice-wright` fresh. Root never writes those product
24
+ paths, wright never widens, and a missing profile stops.
25
+ For the workflow-artifact branch, the controlling root writes only the admitted
26
+ `.devrites/work/<slug>/` paths, proves the complete atomic set, rechecks an
27
+ identical product candidate, records hashes/evidence, and runs narrow Vet. Do not
28
+ dispatch any agent as a substitute writer and do not charge a product slice.
29
+
30
+ ### Executable workflow-artifact branch
31
+
32
+ The controlling root materializes the exact admitted workflow-artifact set and
33
+ **does not dispatch the wright**. This branch never changes product slice state or
34
+ the candidate manifest; it returns through narrow Vet before any consumptive action.
21
35
  4. **Inspect the return.** Wait; compare its file list and `git diff --name-only`
22
36
  with the contract. Reject stale, partial, malformed, or out-of-scope work.
23
37
  Preserve user work; source restoration uses the same bounded wright.
@@ -15,6 +15,10 @@ the wright or recreate an engine bridge.
15
15
 
16
16
  1. Derive the smallest exact project-relative source/test path list; reject
17
17
  directories/globs, traversal, symlink escapes, duplicates, and `.devrites/**`.
18
+ A target composed only of vetted executable workflow artifacts routes to the
19
+ controlling root under
20
+ [`workflow-artifacts.md`](../../devrites-lib/reference/standards/workflow-artifacts.md);
21
+ its rejection here is not a blocker.
18
22
  2. Put it in the task with goal, verbatim acceptance, exclusions, context,
19
23
  `test-plan.md` proof commands, and applicable standards.
20
24
  A new path requires a new bounded contract; the wright cannot widen the task.
@@ -81,6 +81,16 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
81
81
  `devrites-plan-drafter` in `repair` mode with only the selected mode, affected artifact
82
82
  paths, settled contract, and observed failure/drift. Await one atomic `plan-candidate`;
83
83
  the drafter writes nothing and returns human-owned choices separately.
84
+ When the observed failure is missing or ambiguous consumptive-action evidence,
85
+ require the drafter to apply `one-shot-actions.md` and return the bounded
86
+ diagnostic-amplification design, injective boundary map, per-seam fixtures, and
87
+ collision mutant. Past evidence loss alone is not a terminal conclusion.
88
+ The drafter never supplies implementation bodies. Bind the exact active
89
+ `.devrites/work/<slug>/` targets and complete executable contract; after Vet
90
+ READY, the controlling root materializes the exact vetted workflow-artifact paths
91
+ under
92
+ [`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
93
+ without dispatching the product wright.
84
94
  3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
85
95
  Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
86
96
  boundaries keep one reused contract artifact ahead of both asserting tests, and unaffected
@@ -40,6 +40,8 @@ Pull these via `Read` when relevant:
40
40
  - `definition-of-done.md`: acceptance, proof, gates, scope, rollback/docs.
41
41
  - `one-shot-actions.md`: pre-attempt evidence completeness and no-rerun handling for
42
42
  consumptive proof actions.
43
+ - `workflow-artifacts.md`: exact root-owned executable proof/controller/harness
44
+ artifacts under the active feature workspace.
43
45
 
44
46
 
45
47
  ## Operating rules
@@ -57,8 +59,11 @@ Pull these via `Read` when relevant:
57
59
  [`agents.md`](../devrites-lib/reference/standards/agents.md). The root owns exact
58
60
  vetted gate execution, browser capability, the evidence verdict, and canonical
59
61
  writes. The proof runner is read-only and validates immutable logs/artifacts.
60
- Every accepted source/test correction is one bounded
62
+ Every accepted product source/test correction is one bounded
61
63
  `devrites-slice-wright` task, never an inline edit.
64
+ Exact Vet-ready executable workflow artifacts under the active `.devrites/**`
65
+ workspace follow `workflow-artifacts.md` and are materialized by the controlling
66
+ root; they are not product writer work.
62
67
  - **Prove remains the controlling caller during technical backtracking.** Save
63
68
  its return cursor, invoke Plan/Vet or bounded remediation inline, consume each
64
69
  nested phase boundary, then resume the failed Prove step. Never make the human
@@ -114,7 +119,8 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
114
119
  gates prove only their named static criterion.
115
120
  Immediately before any consumptive action, apply `one-shot-actions.md` to the
116
121
  live candidate: require the vetted retained-artifact identity, bounds,
117
- sanitization, terminal-path fixtures, and cleanup-survival proof. A missing,
122
+ sanitization, injective boundary map, per-seam fault fixtures, collision mutant,
123
+ terminal-path fixtures, and cleanup-survival proof. A missing,
118
124
  stale, or disposable-only evidence surface returns to Vet inline and consumes
119
125
  no attempt. Record the admitted artifact identity before execution. After a
120
126
  failed consumptive action, triage from that artifact; never reproduce it by
@@ -155,6 +161,11 @@ failure is a blocker; this Upgrade admission never authorizes source or test cha
155
161
  reproduction to fix and re-vet the retained fingerprint. Once the failure
156
162
  condition is demonstrably changed, stop at the fresh-authorization boundary;
157
163
  only a new human GO may admit the next real attempt.
164
+ If the retained fingerprint is missing or ambiguous, the lost past evidence
165
+ does not prove that no safe future acquisition design exists. Treat an in-scope
166
+ discriminator as a diagnostic-amplification Plan gap: repair and narrow-Vet the
167
+ boundary map and collision proof inline, then stop for fresh GO before one
168
+ evidence-acquisition attempt. Do not guess the runtime fix or reuse the old GO.
158
169
  8. The root updates `evidence.md`, `browser-evidence.md` (when present),
159
170
  `traceability.md`, and `state.md`. Record exactly one binding for the observed
160
171
  digest in evidence and browser evidence. New proof goes to canonical
@@ -17,6 +17,10 @@ loop to `devrites-debug-recovery`.
17
17
  - flaky (passes on re-run, timing/order) → note it; don't paper over with retries.
18
18
  - external dependency down → record blocker; don't fake the result.
19
19
  3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
20
+ If consumptive evidence maps to multiple causal seams, this is a
21
+ diagnostic-amplification plan gap: design and Vet an injective boundary
22
+ discriminator offline instead of guessing a runtime correction or declaring
23
+ the cleaned-away past state terminal.
20
24
  4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
21
25
  scope, stop and record a blocker in `state.md` (then `$rite-plan unblock`).
22
26
  5. **Re-run** the same command when it is repeatable; confirm green and record both
@@ -24,6 +28,8 @@ loop to `devrites-debug-recovery`.
24
28
  completeness and any fresh authorization before a new attempt. Its spent
25
29
  action authorization does not stop offline recovery: a retained new fingerprint
26
30
  enters caller-owned diagnosis, correction, fixtures, and narrow Vet immediately.
31
+ A separately authorized diagnostic-amplification attempt may acquire the missing
32
+ discriminator after its evidence design passes Vet; it is not a blind rerun.
27
33
 
28
34
  ## Rules
29
35
  - Quote the real error text; don't paraphrase it away.
@@ -100,8 +100,10 @@ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
100
100
  discriminating assertion and decisive signal, not merely a command or expected exit zero.
101
101
  Identify every consumptive action under `one-shot-actions.md`. Before admitting
102
102
  it, require the exact durable retention surface, trust-safe diagnostic schema,
103
- cleanup ordering, terminal-path coverage, and discriminating fixtures in
104
- `test-plan.md`. Missing or stale one-shot evidence completeness is a technical
103
+ cleanup ordering, terminal-path coverage, a finite injective boundary map,
104
+ per-boundary fault fixtures, and an executed collision mutant in `test-plan.md`.
105
+ Every retained failure fingerprint must identify one actionable seam; a broad
106
+ operation/cause shared by multiple emit sites is a gap. Missing or stale one-shot evidence completeness is a technical
105
107
  preflight gap; do not spend the action to learn what cleanup would erase.
106
108
  Preflight observes; it need not make future behavior pass.
107
109
  2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
@@ -35,7 +35,7 @@ Inventory/currentness: <pass/gaps> · slice order/independence: <pass/gaps> ·
35
35
  UX/spec/architecture: <pass/n-a/gaps> · operations/rollout/rollback: <pass/n-a/gaps>
36
36
 
37
37
  Shared contract proof: <pass | gap: missing/one-sided/duplicated-contract/vague/non-consuming>
38
- One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + cleanup-survival fixtures | gap: exact missing proof>
38
+ One-shot evidence completeness: <n/a | pass: action + retained artifact + bounds/sanitization + injective boundary map + per-seam/collision/cleanup fixtures | gap: exact missing proof>
39
39
 
40
40
  ## 3. Axis findings (floor-gated)
41
41
  | Axis | Floor band | Findings (sev · confidence) |
@@ -96,9 +96,9 @@ aliases, user-specific absolute paths, or temporary proof trees. Evidence record
96
96
  the command actually executed.
97
97
 
98
98
  ## Consumptive action gates
99
- | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Terminal-path fixtures | Cleanup survival | Retry authority |
100
- |---|---|---|---|---|---|---|
101
- | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
99
+ | Action | Why one-shot/consumptive | Retained artifact | Bounds + sanitization | Boundary map + collision proof | Terminal-path fixtures | Cleanup survival | Retry authority |
100
+ |---|---|---|---|---|---|---|---|
101
+ | <exact approved action or n/a> | <one attempt/quota/state/evidence deletion> | <durable operator-controlled path/schema> | <size/cardinality + known/unknown/malformed handling> | <every emit seam -> stable boundary ID; per-seam injection + alias mutant rejected> | <success/known/unknown/hostile> | <assertion> | <none/fresh human authorization> |
102
102
 
103
103
  Every behavioral row names a positive, discriminating assertion and the decisive output it
104
104
  produces. A command or expected exit zero alone is not a behavioral assertion; static gates
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "4.0.7",
3
+ "version": "4.0.9",
4
4
  "description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code and Codex",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
@@ -95,7 +95,7 @@ This project has DevRites installed for both Claude Code and Codex.
95
95
  - Custom Codex subagents generated from the DevRites review agents live in `.codex/agents`.
96
96
  - In DevRites guidance, **invoke** means run a skill inline in the current context; **dispatch** means start a fresh agent with `spawn_agent`, wait for it, and reconcile its result.
97
97
  - Dispatch every exact named `devrites-<role>` required by the active workflow in a fresh subagent thread, wait for it, and reconcile its result. If that role is unavailable, stop for HITL; never skip it, never substitute a generic/default child, and never execute the specialist role in the root context.
98
- - The root uses the workspace-capable `devrites-orchestrator` profile because Codex children cannot elevate above the parent permission ceiling. This permission is for native writer dispatch and workflow artifacts; the root must never edit source or tests itself.
98
+ - The root uses the workspace-capable `devrites-orchestrator` profile because Codex children cannot elevate above the parent permission ceiling. This permission is for native writer dispatch and exact path-bounded executable workflow artifacts under the active `.devrites/work/<slug>/`; the root must never edit product source or tests itself.
99
99
  - Every generated specialist is hook-free. `devrites-slice-wright` alone uses `default_permissions = ":workspace"`; every other specialist uses `default_permissions = ":read-only"`. Exact paths are instruction-enforced: put the project-relative paths in the task, wait for the wright, compare its file list and `git diff --name-only` with that contract, and reject any extra path. Never bypass the wright, widen its contract, or edit source in the root; the root must never recreate an engine dispatch bridge.
100
100
  - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact commit/push/tag/PR plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Native host permission and sandbox prompts remain authoritative and cannot be inferred or bypassed.
101
101