devrites 4.0.8 → 4.0.10
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/CHANGELOG.md +12 -0
- package/README.md +5 -3
- package/docs/skills.md +2 -2
- package/pack/.claude/agents/devrites-plan-drafter.md +2 -0
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +6 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/README.md +1 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +6 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +11 -5
- package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +2 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +76 -0
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +9 -0
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +11 -0
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +8 -0
- package/pack/.claude/skills/rite-build/SKILL.md +11 -2
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +18 -4
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +4 -0
- package/pack/.claude/skills/rite-plan/SKILL.md +6 -0
- package/pack/.claude/skills/rite-prove/SKILL.md +6 -1
- package/pack/generated/claude/agents/devrites-plan-drafter.md +2 -0
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +6 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +1 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +6 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -5
- package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +2 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +76 -0
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +9 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +11 -0
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +8 -0
- package/pack/generated/claude/skills/rite-build/SKILL.md +11 -2
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +18 -4
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +4 -0
- package/pack/generated/claude/skills/rite-plan/SKILL.md +6 -0
- package/pack/generated/claude/skills/rite-prove/SKILL.md +6 -1
- package/pack/generated/codex/AGENTS.md +1 -1
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +2 -0
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +6 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +1 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +6 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -5
- package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +2 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +76 -0
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +9 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +11 -0
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +8 -0
- package/pack/generated/codex/skills/rite-build/SKILL.md +11 -2
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +18 -4
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +4 -0
- package/pack/generated/codex/skills/rite-plan/SKILL.md +6 -0
- package/pack/generated/codex/skills/rite-prove/SKILL.md +6 -1
- package/package.json +1 -1
- package/scripts/codex-generate.sh +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
|
|
4
4
|
|
|
5
|
+
## [4.0.10](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.9...v4.0.10) (2026-08-08)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
* **rite:** reopen stale writer stops ([aebb7fb](https://github.com/ViktorsBaikers/DevRites/commit/aebb7fb5b3510d068172aa1ec9f654063f39d545))
|
|
10
|
+
|
|
11
|
+
## [4.0.9](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.8...v4.0.9) (2026-08-08)
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
* **rite:** materialize workflow proof artifacts ([95ec9d7](https://github.com/ViktorsBaikers/DevRites/commit/95ec9d7dfa2b0708566a66723a289eaeb0607ddf))
|
|
16
|
+
|
|
5
17
|
## [4.0.8](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.7...v4.0.8) (2026-08-08)
|
|
6
18
|
|
|
7
19
|
### Fixed
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
|
|
|
28
28
|
Unattended runs may create local WIP checkpoint commits along the way, but they
|
|
29
29
|
remain local unless Ship's disclosed plan includes an approved remote action.
|
|
30
30
|
|
|
31
|
-
**Status:** [`v4.0.
|
|
31
|
+
**Status:** [`v4.0.10`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.0.10): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
32
32
|
|
|
33
33
|
This is the latest published release; `main` may contain unreleased work.
|
|
34
34
|
|
|
@@ -83,7 +83,7 @@ the same skill.
|
|
|
83
83
|
| 3 | Temper | [`/rite-temper`](pack/.claude/skills/rite-temper/SKILL.md) | Challenges scope and failure modes before Define. It is optional for small work and always runs in `/rite-autocomplete`. |
|
|
84
84
|
| 4 | Define | [`/rite-define`](pack/.claude/skills/rite-define/SKILL.md) | Turns the approved spec into architecture, a plan, traceability, and vertical task slices; changed provider/consumer boundaries name one shared contract and consuming tests on both sides. |
|
|
85
85
|
| 5 | Vet | [`/rite-vet`](pack/.claude/skills/rite-vet/SKILL.md) | Reviews every plan before implementation. The review depth scales with the risk. |
|
|
86
|
-
| 6 | Build | [`/rite-build`](pack/.claude/skills/rite-build/SKILL.md) | In HITL, implements and verifies one slice, then stops. Run it again for each remaining slice. An explicit `.devrites/AFK` sentinel permits bounded low-risk slice chaining under its cap and pause rules. |
|
|
86
|
+
| 6 | Build | [`/rite-build`](pack/.claude/skills/rite-build/SKILL.md) | In HITL, implements and verifies one product slice, then stops. Run it again for each remaining slice. An explicit `.devrites/AFK` sentinel permits bounded low-risk slice chaining under its cap and pause rules. Exact Vet-ready executable workflow artifacts under the active feature workspace are root-materialized and excluded from product slice accounting. |
|
|
87
87
|
| 7 | Converge | [`/rite-converge`](pack/.claude/skills/rite-converge/SKILL.md) | Runs only when recovery is needed. It compares the code with the recorded intent, adds missing slices, and sends the changed plan back to Vet. |
|
|
88
88
|
| 8 | Prove | [`/rite-prove`](pack/.claude/skills/rite-prove/SKILL.md) | Runs positive, discriminating tests, build/runtime checks, and UI proof, then binds the evidence to the exact candidate digest. |
|
|
89
89
|
| 9 | Polish | [`/rite-polish`](pack/.claude/skills/rite-polish/SKILL.md) | Cleans up the candidate, normalizes UI when needed, performs durable capability/design/ADR rollups, and refreshes affected proof before closing it. |
|
|
@@ -103,7 +103,9 @@ Some work needs a different route:
|
|
|
103
103
|
consumptive proof action never retries blindly: retained evidence drives
|
|
104
104
|
offline repair and re-vetting. Ambiguous retained evidence first drives a vetted
|
|
105
105
|
boundary-discriminating diagnostic design; only its next real acquisition attempt
|
|
106
|
-
needs a new GO.
|
|
106
|
+
needs a new GO. After an upgrade introduces a supported workflow-artifact writer,
|
|
107
|
+
Autocomplete reopens a stale missing-writer stop once instead of preserving the
|
|
108
|
+
obsolete recovery count.
|
|
107
109
|
- [`/rite-upgrade [slug]`](pack/.claude/skills/rite-upgrade/SKILL.md) is a
|
|
108
110
|
compatibility route for an older active workspace that cannot resume. Age or
|
|
109
111
|
cursor form alone never triggers repair; it is not a lifecycle phase.
|
package/docs/skills.md
CHANGED
|
@@ -178,7 +178,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
178
178
|
|
|
179
179
|
| Skill | What It Does | Use When |
|
|
180
180
|
|---|---|---|
|
|
181
|
-
| [`rite-build`](../pack/.claude/skills/rite-build/SKILL.md) | In HITL, orchestrates one vertical slice through the sole wright; an explicit `.devrites/AFK` sentinel may chain bounded low-risk slices.
|
|
181
|
+
| [`rite-build`](../pack/.claude/skills/rite-build/SKILL.md) | In HITL, orchestrates one vertical product slice through the sole wright; an explicit `.devrites/AFK` sentinel may chain bounded low-risk slices. Exact Vet-ready executable proof artifacts under the active `.devrites/work/<slug>/` are instead materialized atomically by the controlling root and remain outside product candidate/slice accounting. | A plan exists, native semantic `CLEAR` and `READY` review passes, `test-plan.md` is complete, and the content-bound engine check passes. |
|
|
182
182
|
| [`devrites-source-driven`](../pack/.claude/skills/devrites-source-driven/SKILL.md) | Consult official docs / source before relying on framework behavior; record the source. | API, config, or framework behavior is assumed rather than known. |
|
|
183
183
|
| [`devrites-api-interface`](../pack/.claude/skills/devrites-api-interface/SKILL.md) | Design stable API / interface contracts: REST/GraphQL, module boundaries, type contracts, FE/BE split. | A slice crosses a boundary or defines a public interface. |
|
|
184
184
|
| [`devrites-debug-recovery`](../pack/.claude/skills/devrites-debug-recovery/SKILL.md) | Reproduce → ranked hypotheses → instrument → fix in scope → regression-test. Caller and recovery count at most three failures per causal fingerprint from context and Dead ends/evidence. | Tests, builds, or runtime checks fail. |
|
|
@@ -222,7 +222,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
|
|
|
222
222
|
|
|
223
223
|
| Skill | What It Does | Use When |
|
|
224
224
|
|---|---|---|
|
|
225
|
-
| [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → clarify → … → seal → ship), choosing the recommended option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers one up-front spec/clarify window; after decision coverage is CLEAR it runs without per-phase iteration, pausing only for genuine product/scope/policy decisions, irreversible risk, human-only access/actions, NO-GO, or budget exhaustion. Objective red checks use bounded technical recovery, including cold-resume recovery from retained one-shot evidence
|
|
225
|
+
| [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → clarify → … → seal → ship), choosing the recommended option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers one up-front spec/clarify window; after decision coverage is CLEAR it runs without per-phase iteration, pausing only for genuine product/scope/policy decisions, irreversible risk, human-only access/actions, NO-GO, or budget exhaustion. Objective red checks use bounded technical recovery, including cold-resume recovery from retained one-shot evidence and one-time migration of stale missing-writer stops when an upgraded contract supplies the first supported workflow-artifact writer. Spending an action authorization blocks only another real execution, not offline repair. Default stops at Seal GO; `--ship` (alias `--yolo`) reaches Ship preflight but still requires a fresh literal `GO` and native approval. | "Autocomplete", "do the whole thing", "run the full cycle", "one-shot this feature". |
|
|
226
226
|
| [`rite-zoom-out`](../pack/.claude/skills/rite-zoom-out/SKILL.md) | Map the modules, callers, callees, and decisions in an unfamiliar area using the project's domain glossary. | Explicit-only: `/rite-zoom-out` / `/rite zoom-out`. |
|
|
227
227
|
| [`rite-prototype`](../pack/.claude/skills/rite-prototype/SKILL.md) | Throwaway code answering ONE design question: logic harness OR 2 to 4 UI variations on one route. | Explicit-only: `/rite-prototype` / `/rite prototype`. |
|
|
228
228
|
| [`rite-handoff`](../pack/.claude/skills/rite-handoff/SKILL.md) | Compact chat session → handoff doc. References existing `.devrites/work/<slug>/` artifacts by path. | Explicit-only: `/rite-handoff` / `/rite handoff`. |
|
|
@@ -43,6 +43,8 @@ principle-exception questions. List them for the root.
|
|
|
43
43
|
## Rules
|
|
44
44
|
|
|
45
45
|
- Read-only. Do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
46
|
+
- Design executable workflow artifacts completely, but never return implementation bodies
|
|
47
|
+
or materialize them; the later Vet-ready step follows `workflow-artifacts.md`.
|
|
46
48
|
- Do not ask the user, approve the plan, set readiness, or advance a phase.
|
|
47
49
|
- Do not invoke another agent.
|
|
48
50
|
- Return candidate content only for requested paths. If unfinished, name the exact
|
|
@@ -68,6 +68,12 @@ has no clear next move.
|
|
|
68
68
|
repair its finite map and collision/fault fixtures offline, narrow-Vet it, and
|
|
69
69
|
stop for fresh authorization before the evidence-acquisition attempt. Missing
|
|
70
70
|
past evidence is terminal only when no safe amplification seam exists.
|
|
71
|
+
- **Route by artifact ownership.** Product source/tests go to the exact bounded
|
|
72
|
+
wright. Exact Vet-ready executable proof artifacts under the active `.devrites/**`
|
|
73
|
+
workspace follow
|
|
74
|
+
[`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
|
|
75
|
+
and are materialized by the controlling root. Never ask a read-only planner or
|
|
76
|
+
reviewer to return implementation bodies.
|
|
71
77
|
- **Classify before routing** with
|
|
72
78
|
[cleanup-and-classify.md](reference/cleanup-and-classify.md).
|
|
73
79
|
- **Durably record class and rationale** in `decisions.md` and the applicable
|
|
@@ -33,6 +33,7 @@ topic's owner.
|
|
|
33
33
|
| `principles.md` | Authoring or checking project invariants and approved exceptions. |
|
|
34
34
|
| `deprecation.md` | Removing, replacing, or migrating behavior, code, APIs, or data. |
|
|
35
35
|
| `agents.md` | Dispatching, awaiting, validating, or reconciling fresh-context agents. |
|
|
36
|
+
| `workflow-artifacts.md` | Materializing executable proof/controller/harness files under the active `.devrites/work/<slug>/`. |
|
|
36
37
|
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
37
38
|
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
38
39
|
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
@@ -259,6 +259,12 @@ changes, not a request for permission to retry.
|
|
|
259
259
|
recorded no-progress corrections still has recovery budget, even when an older
|
|
260
260
|
`state.md` says `Next step: none`. Resume it; do not treat session age or the
|
|
261
261
|
prior action's spent authorization as exhaustion.
|
|
262
|
+
- **Treat a newly supported writer route as progress once.** For exact Vet-ready
|
|
263
|
+
workflow artifacts, apply `workflow-artifacts.md` when prior attempts only asked
|
|
264
|
+
a read-only role or product wright for implementation and evidence records
|
|
265
|
+
**no controlling-root materialization attempt**. Preserve the old attempts, but
|
|
266
|
+
do not count them against the new root-materialization fingerprint. Record the
|
|
267
|
+
migration; after a root attempt exists, normal fingerprint accounting applies.
|
|
262
268
|
- **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
|
|
263
269
|
preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`.
|
|
264
270
|
Do not emit `/rite-plan unblock`, another phase command, a question, or
|
|
@@ -5,8 +5,9 @@ Follow DevRites policy and [`depth profiles`](../orchestration-profiles.md).
|
|
|
5
5
|
## Authority
|
|
6
6
|
|
|
7
7
|
- Root owns scope, questions/decisions/results, `.devrites/**`, and phase
|
|
8
|
-
transitions—not source/tests.
|
|
9
|
-
-
|
|
8
|
+
transitions—not product source/tests. Exact vetted executable workflow artifacts
|
|
9
|
+
follow [`workflow-artifacts.md`](workflow-artifacts.md).
|
|
10
|
+
- Only bounded wright writes product source/tests; others inspect an immutable
|
|
10
11
|
candidate.
|
|
11
12
|
- Every named role runs; unavailable → HITL, never skip/substitute.
|
|
12
13
|
- Leaves never invoke agents, ask humans, change phase, commit/push,
|
|
@@ -48,11 +49,16 @@ Running/orphaned/unavailable = `gap`; no root/generic substitute.
|
|
|
48
49
|
Claude grants only wright `acceptEdits`; Codex root is workspace-capable because
|
|
49
50
|
children cannot elevate. Wright alone is `:workspace`; others are `:read-only`.
|
|
50
51
|
|
|
51
|
-
Give wright the smallest exact project-relative file list—no
|
|
52
|
-
traversal/`.devrites/**`. No scope widening. Root rejects
|
|
53
|
-
`git diff --name-only` extras. Never patch in root, bypass/substitute wright,
|
|
52
|
+
Give wright the smallest exact project-relative product source/test file list—no
|
|
53
|
+
directories/globs, traversal/`.devrites/**`. No scope widening. Root rejects
|
|
54
|
+
`git diff --name-only` extras. Never patch product source/tests in root, bypass/substitute wright,
|
|
54
55
|
accept drift, or recreate a dispatch bridge.
|
|
55
56
|
|
|
57
|
+
The controlling root may materialize only the exact Vet-ready executable workflow
|
|
58
|
+
artifact paths under the active `.devrites/work/<slug>/` using
|
|
59
|
+
[`workflow-artifacts.md`](workflow-artifacts.md). This is not a writer dispatch,
|
|
60
|
+
product slice, candidate mutation, or exception to the source-writing boundary.
|
|
61
|
+
|
|
56
62
|
## Inputs and results
|
|
57
63
|
|
|
58
64
|
Each job gets objective/exclusions, exact paths/immutable candidate, rubric/result
|
|
@@ -132,4 +132,5 @@ Public commands need docs/generated hosts/reply marker;
|
|
|
132
132
|
internal skills need trigger/not-for plus proof they are not an agent/reference.
|
|
133
133
|
Agents need role/scope/mode/output/composition and
|
|
134
134
|
[`agents.md` § Result admission](agents.md#result-admission) for review roles.
|
|
135
|
-
Only `devrites-slice-wright` writes.
|
|
135
|
+
Only `devrites-slice-wright` writes product source/tests. The controlling root's
|
|
136
|
+
path-bounded `.devrites/**` workflow artifacts follow `workflow-artifacts.md`.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Executable workflow artifacts
|
|
2
|
+
|
|
3
|
+
Executable files used only to plan, isolate, or prove a DevRites workflow—such as
|
|
4
|
+
a controller, harness, proof bundle, fixture generator, or bounded materializer
|
|
5
|
+
under the active `.devrites/work/<slug>/`—are **workflow artifacts**, not product
|
|
6
|
+
source/tests. They remain excluded from the product candidate and never authorize
|
|
7
|
+
the real action they prepare.
|
|
8
|
+
|
|
9
|
+
## Ownership
|
|
10
|
+
|
|
11
|
+
After an exact design and path set pass Vet, the **controlling root is the sole materializer**
|
|
12
|
+
of these artifacts under its existing `.devrites/**` authority. For these paths,
|
|
13
|
+
never dispatch `devrites-slice-wright`,
|
|
14
|
+
never widen the wright contract, and never ask a
|
|
15
|
+
read-only planner/reviewer for implementation bodies. Product source/tests remain
|
|
16
|
+
wright-only.
|
|
17
|
+
|
|
18
|
+
Missing implementation bytes are an agent-owned materialization task, not
|
|
19
|
+
technical-recovery exhaustion, while the vetted behavior and exact paths are
|
|
20
|
+
complete. The root may not invent unresolved protocol choices; those return to
|
|
21
|
+
Plan/Vet.
|
|
22
|
+
|
|
23
|
+
## Cold-resume migration
|
|
24
|
+
|
|
25
|
+
A **stale writer-exhaustion cursor** must reopen when all of these are durable:
|
|
26
|
+
|
|
27
|
+
- Vet accepted the exact workflow-artifact paths and complete executable contract;
|
|
28
|
+
- the recorded blocker is only missing implementation bodies or a writable actor;
|
|
29
|
+
- prior no-progress attempts asked a read-only drafter/reviewer for bodies or sent
|
|
30
|
+
`.devrites/**` paths toward the product wright; and
|
|
31
|
+
- evidence records **no controlling-root materialization attempt** for that exact set.
|
|
32
|
+
|
|
33
|
+
This is a changed routing condition, not another correction attempt against the
|
|
34
|
+
old unsupported-writer fingerprint. Preserve that history, close or supersede its
|
|
35
|
+
terminal claim, record one new root-materialization fingerprint, and materialize
|
|
36
|
+
directly even when all product slices are built or the AFK slice budget is zero.
|
|
37
|
+
Do not consume product-slice budget, reopen an answered human gate, or require GO
|
|
38
|
+
for this offline work. After any controlling-root attempt is recorded, this
|
|
39
|
+
migration cannot apply again; route its observed atomic/proof failure under the
|
|
40
|
+
new fingerprint instead.
|
|
41
|
+
|
|
42
|
+
## Admission
|
|
43
|
+
|
|
44
|
+
Before writing:
|
|
45
|
+
|
|
46
|
+
1. Require the active slug, current readiness binding, resolved human gates, and
|
|
47
|
+
an exact file list in `plan.md` / `test-plan.md`. Reject directories, globs,
|
|
48
|
+
traversal, duplicates, symlinks, paths outside the active feature workspace,
|
|
49
|
+
and any product source/test or dependency path.
|
|
50
|
+
2. Bind the complete behavior, interfaces, failure relations, proof commands,
|
|
51
|
+
expected signals, and rollback for the atomic artifact set. A prose placeholder
|
|
52
|
+
or a request that a drafter supply code is a Plan gap, not implementation input.
|
|
53
|
+
3. Record preimages or absence for every target plus protected product manifests
|
|
54
|
+
and the current candidate digest. Resolve every parent no-follow before mutation.
|
|
55
|
+
|
|
56
|
+
## Materialize
|
|
57
|
+
|
|
58
|
+
The root authors the smallest complete bytes for all admitted targets. Write each
|
|
59
|
+
through a same-parent private temporary file, set the planned mode, flush it, and
|
|
60
|
+
atomically replace the target; settle the whole set or roll back partial output.
|
|
61
|
+
Do not install dependencies, touch Git, use the network, mutate product paths, or
|
|
62
|
+
execute the consumptive action.
|
|
63
|
+
|
|
64
|
+
## Verify and return
|
|
65
|
+
|
|
66
|
+
Read back the exact path set, modes, and SHA-256 identities. Run only the vetted
|
|
67
|
+
compile/static/fixture/mutant commands in their isolated non-consumptive modes;
|
|
68
|
+
require every discriminating signal. Recheck protected preimages and require the
|
|
69
|
+
candidate digest remains identical. Record the workflow-artifact hashes and proof
|
|
70
|
+
in canonical evidence, but never add these paths to the product candidate manifest
|
|
71
|
+
or built-slice count. Run the affected narrow Vet, restore the controlling return
|
|
72
|
+
cursor, and stop for fresh authorization before any real consumptive action.
|
|
73
|
+
|
|
74
|
+
An actual host permission failure, unresolved design choice, out-of-scope path, or
|
|
75
|
+
failed atomic/proof check blocks truthfully. The absence of a writable specialist
|
|
76
|
+
does not: root ownership is the supported path.
|
|
@@ -18,6 +18,10 @@ default and **Full** for high-risk scope or explicit `--full`; profiles are defi
|
|
|
18
18
|
When the cursor or approved plan contains a consumptive action, also read
|
|
19
19
|
`.claude/skills/devrites-lib/reference/standards/one-shot-actions.md` before any
|
|
20
20
|
stop/continue or execution decision.
|
|
21
|
+
When a blocked cursor names missing executable controller/harness/bundle bytes or
|
|
22
|
+
a missing writer under the active feature workspace, read
|
|
23
|
+
`.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md` before honoring
|
|
24
|
+
the terminal cursor or its recovery count.
|
|
21
25
|
|
|
22
26
|
## Operating rules
|
|
23
27
|
- **Use one initial human window.** Run spec and topology-first clarify; arm AFK
|
|
@@ -67,6 +71,11 @@ stop/continue or execution decision.
|
|
|
67
71
|
terminal `next_action`, reconcile retained consumptive-action artifacts and
|
|
68
72
|
per-fingerprint attempts from `drift.md` / `evidence.md`. A distinct retained
|
|
69
73
|
fingerprint below its no-progress cap reopens caller-owned offline recovery;
|
|
74
|
+
a stale pre-ownership workflow-artifact writer stop reopens under
|
|
75
|
+
`workflow-artifacts.md` when no controlling-root materialization attempt exists.
|
|
76
|
+
That materialization runs directly as non-consumptive prerequisite recovery,
|
|
77
|
+
even with no pending product slice or AFK budget; it does not re-ask an answered
|
|
78
|
+
human gate.
|
|
70
79
|
reconstruct any missing return cursor only from the current phase plus the
|
|
71
80
|
exact approved action in `test-plan.md` / evidence, never from chat or guesswork.
|
|
72
81
|
The idea + flags: `--ship` / `--yolo` (continue through ship preflight, then stop
|
|
@@ -64,6 +64,17 @@ Restore `return_phase` from the current phase and `return_next_action` only from
|
|
|
64
64
|
the exact approved action recorded in `test-plan.md` / evidence; ambiguity returns
|
|
65
65
|
to the applicable Vet contract and never licenses execution.
|
|
66
66
|
|
|
67
|
+
Also reconcile a **stale writer-exhaustion cursor** against
|
|
68
|
+
`workflow-artifacts.md`. When exact Vet-ready workflow-artifact paths and behavior
|
|
69
|
+
exist, the old attempts only targeted the read-only drafter/reviewer or product
|
|
70
|
+
wright, and there is **no controlling-root materialization attempt**, supported
|
|
71
|
+
root ownership is a changed routing condition. Preserve the old fingerprint,
|
|
72
|
+
record the new materialization fingerprint, and run that offline branch directly;
|
|
73
|
+
do not charge or require product-slice/AFK budget, re-ask a resolved question, or
|
|
74
|
+
request GO. Once a root materialization attempt exists, never apply this migration
|
|
75
|
+
again—route its observed failure normally. This reconciliation runs even when all
|
|
76
|
+
product slices are already built, before selecting the next forward phase.
|
|
77
|
+
|
|
67
78
|
1. Save the originating phase/action in the native return cursor unless a valid
|
|
68
79
|
one already exists.
|
|
69
80
|
2. Invoke the required repair, Vet, remediation, and proof skills inline. After
|
|
@@ -46,6 +46,14 @@ 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
|
+
A pre-ownership workflow-artifact writer stop is not unchanged evidence when the
|
|
50
|
+
current contract supplies controlling-root materialization. Prior drafter/wright refusals do not count
|
|
51
|
+
as root materialization attempts. Reopen only when exact paths and executable
|
|
52
|
+
behavior passed Vet and there is **no controlling-root materialization attempt**;
|
|
53
|
+
record the routing migration so it cannot reset again. Missing product slices,
|
|
54
|
+
unresolved protocol choices, or a recorded root attempt remain under their normal
|
|
55
|
+
gate/fingerprint rules.
|
|
56
|
+
|
|
49
57
|
Past evidence being irretrievable is not by itself terminal. When an in-scope
|
|
50
58
|
trusted diagnostic seam can make the next retained fingerprint uniquely
|
|
51
59
|
actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
|
|
@@ -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`](../../agents/devrites-slice-wright.md)
|
|
17
|
-
writes source and tests.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
@@ -85,6 +85,12 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
85
85
|
require the drafter to apply `one-shot-actions.md` and return the bounded
|
|
86
86
|
diagnostic-amplification design, injective boundary map, per-seam fixtures, and
|
|
87
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.
|
|
88
94
|
3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
|
|
89
95
|
Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
|
|
90
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
|
|
@@ -43,6 +43,8 @@ principle-exception questions. List them for the root.
|
|
|
43
43
|
## Rules
|
|
44
44
|
|
|
45
45
|
- Read-only. Do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
46
|
+
- Design executable workflow artifacts completely, but never return implementation bodies
|
|
47
|
+
or materialize them; the later Vet-ready step follows `workflow-artifacts.md`.
|
|
46
48
|
- Do not ask the user, approve the plan, set readiness, or advance a phase.
|
|
47
49
|
- Do not invoke another agent.
|
|
48
50
|
- Return candidate content only for requested paths. If unfinished, name the exact
|
|
@@ -68,6 +68,12 @@ has no clear next move.
|
|
|
68
68
|
repair its finite map and collision/fault fixtures offline, narrow-Vet it, and
|
|
69
69
|
stop for fresh authorization before the evidence-acquisition attempt. Missing
|
|
70
70
|
past evidence is terminal only when no safe amplification seam exists.
|
|
71
|
+
- **Route by artifact ownership.** Product source/tests go to the exact bounded
|
|
72
|
+
wright. Exact Vet-ready executable proof artifacts under the active `.devrites/**`
|
|
73
|
+
workspace follow
|
|
74
|
+
[`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
|
|
75
|
+
and are materialized by the controlling root. Never ask a read-only planner or
|
|
76
|
+
reviewer to return implementation bodies.
|
|
71
77
|
- **Classify before routing** with
|
|
72
78
|
[cleanup-and-classify.md](reference/cleanup-and-classify.md).
|
|
73
79
|
- **Durably record class and rationale** in `decisions.md` and the applicable
|
|
@@ -33,6 +33,7 @@ topic's owner.
|
|
|
33
33
|
| `principles.md` | Authoring or checking project invariants and approved exceptions. |
|
|
34
34
|
| `deprecation.md` | Removing, replacing, or migrating behavior, code, APIs, or data. |
|
|
35
35
|
| `agents.md` | Dispatching, awaiting, validating, or reconciling fresh-context agents. |
|
|
36
|
+
| `workflow-artifacts.md` | Materializing executable proof/controller/harness files under the active `.devrites/work/<slug>/`. |
|
|
36
37
|
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
37
38
|
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
38
39
|
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
@@ -259,6 +259,12 @@ changes, not a request for permission to retry.
|
|
|
259
259
|
recorded no-progress corrections still has recovery budget, even when an older
|
|
260
260
|
`state.md` says `Next step: none`. Resume it; do not treat session age or the
|
|
261
261
|
prior action's spent authorization as exhaustion.
|
|
262
|
+
- **Treat a newly supported writer route as progress once.** For exact Vet-ready
|
|
263
|
+
workflow artifacts, apply `workflow-artifacts.md` when prior attempts only asked
|
|
264
|
+
a read-only role or product wright for implementation and evidence records
|
|
265
|
+
**no controlling-root materialization attempt**. Preserve the old attempts, but
|
|
266
|
+
do not count them against the new root-materialization fingerprint. Record the
|
|
267
|
+
migration; after a root attempt exists, normal fingerprint accounting applies.
|
|
262
268
|
- **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
|
|
263
269
|
preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`.
|
|
264
270
|
Do not emit `/rite-plan unblock`, another phase command, a question, or
|
|
@@ -5,8 +5,9 @@ Follow DevRites policy and [`depth profiles`](../orchestration-profiles.md).
|
|
|
5
5
|
## Authority
|
|
6
6
|
|
|
7
7
|
- Root owns scope, questions/decisions/results, `.devrites/**`, and phase
|
|
8
|
-
transitions—not source/tests.
|
|
9
|
-
-
|
|
8
|
+
transitions—not product source/tests. Exact vetted executable workflow artifacts
|
|
9
|
+
follow [`workflow-artifacts.md`](workflow-artifacts.md).
|
|
10
|
+
- Only bounded wright writes product source/tests; others inspect an immutable
|
|
10
11
|
candidate.
|
|
11
12
|
- Every named role runs; unavailable → HITL, never skip/substitute.
|
|
12
13
|
- Leaves never invoke agents, ask humans, change phase, commit/push,
|
|
@@ -48,11 +49,16 @@ Running/orphaned/unavailable = `gap`; no root/generic substitute.
|
|
|
48
49
|
Claude grants only wright `acceptEdits`; Codex root is workspace-capable because
|
|
49
50
|
children cannot elevate. Wright alone is `:workspace`; others are `:read-only`.
|
|
50
51
|
|
|
51
|
-
Give wright the smallest exact project-relative file list—no
|
|
52
|
-
traversal/`.devrites/**`. No scope widening. Root rejects
|
|
53
|
-
`git diff --name-only` extras. Never patch in root, bypass/substitute wright,
|
|
52
|
+
Give wright the smallest exact project-relative product source/test file list—no
|
|
53
|
+
directories/globs, traversal/`.devrites/**`. No scope widening. Root rejects
|
|
54
|
+
`git diff --name-only` extras. Never patch product source/tests in root, bypass/substitute wright,
|
|
54
55
|
accept drift, or recreate a dispatch bridge.
|
|
55
56
|
|
|
57
|
+
The controlling root may materialize only the exact Vet-ready executable workflow
|
|
58
|
+
artifact paths under the active `.devrites/work/<slug>/` using
|
|
59
|
+
[`workflow-artifacts.md`](workflow-artifacts.md). This is not a writer dispatch,
|
|
60
|
+
product slice, candidate mutation, or exception to the source-writing boundary.
|
|
61
|
+
|
|
56
62
|
## Inputs and results
|
|
57
63
|
|
|
58
64
|
Each job gets objective/exclusions, exact paths/immutable candidate, rubric/result
|
|
@@ -132,4 +132,5 @@ Public commands need docs/generated hosts/reply marker;
|
|
|
132
132
|
internal skills need trigger/not-for plus proof they are not an agent/reference.
|
|
133
133
|
Agents need role/scope/mode/output/composition and
|
|
134
134
|
[`agents.md` § Result admission](agents.md#result-admission) for review roles.
|
|
135
|
-
Only `devrites-slice-wright` writes.
|
|
135
|
+
Only `devrites-slice-wright` writes product source/tests. The controlling root's
|
|
136
|
+
path-bounded `.devrites/**` workflow artifacts follow `workflow-artifacts.md`.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Executable workflow artifacts
|
|
2
|
+
|
|
3
|
+
Executable files used only to plan, isolate, or prove a DevRites workflow—such as
|
|
4
|
+
a controller, harness, proof bundle, fixture generator, or bounded materializer
|
|
5
|
+
under the active `.devrites/work/<slug>/`—are **workflow artifacts**, not product
|
|
6
|
+
source/tests. They remain excluded from the product candidate and never authorize
|
|
7
|
+
the real action they prepare.
|
|
8
|
+
|
|
9
|
+
## Ownership
|
|
10
|
+
|
|
11
|
+
After an exact design and path set pass Vet, the **controlling root is the sole materializer**
|
|
12
|
+
of these artifacts under its existing `.devrites/**` authority. For these paths,
|
|
13
|
+
never dispatch `devrites-slice-wright`,
|
|
14
|
+
never widen the wright contract, and never ask a
|
|
15
|
+
read-only planner/reviewer for implementation bodies. Product source/tests remain
|
|
16
|
+
wright-only.
|
|
17
|
+
|
|
18
|
+
Missing implementation bytes are an agent-owned materialization task, not
|
|
19
|
+
technical-recovery exhaustion, while the vetted behavior and exact paths are
|
|
20
|
+
complete. The root may not invent unresolved protocol choices; those return to
|
|
21
|
+
Plan/Vet.
|
|
22
|
+
|
|
23
|
+
## Cold-resume migration
|
|
24
|
+
|
|
25
|
+
A **stale writer-exhaustion cursor** must reopen when all of these are durable:
|
|
26
|
+
|
|
27
|
+
- Vet accepted the exact workflow-artifact paths and complete executable contract;
|
|
28
|
+
- the recorded blocker is only missing implementation bodies or a writable actor;
|
|
29
|
+
- prior no-progress attempts asked a read-only drafter/reviewer for bodies or sent
|
|
30
|
+
`.devrites/**` paths toward the product wright; and
|
|
31
|
+
- evidence records **no controlling-root materialization attempt** for that exact set.
|
|
32
|
+
|
|
33
|
+
This is a changed routing condition, not another correction attempt against the
|
|
34
|
+
old unsupported-writer fingerprint. Preserve that history, close or supersede its
|
|
35
|
+
terminal claim, record one new root-materialization fingerprint, and materialize
|
|
36
|
+
directly even when all product slices are built or the AFK slice budget is zero.
|
|
37
|
+
Do not consume product-slice budget, reopen an answered human gate, or require GO
|
|
38
|
+
for this offline work. After any controlling-root attempt is recorded, this
|
|
39
|
+
migration cannot apply again; route its observed atomic/proof failure under the
|
|
40
|
+
new fingerprint instead.
|
|
41
|
+
|
|
42
|
+
## Admission
|
|
43
|
+
|
|
44
|
+
Before writing:
|
|
45
|
+
|
|
46
|
+
1. Require the active slug, current readiness binding, resolved human gates, and
|
|
47
|
+
an exact file list in `plan.md` / `test-plan.md`. Reject directories, globs,
|
|
48
|
+
traversal, duplicates, symlinks, paths outside the active feature workspace,
|
|
49
|
+
and any product source/test or dependency path.
|
|
50
|
+
2. Bind the complete behavior, interfaces, failure relations, proof commands,
|
|
51
|
+
expected signals, and rollback for the atomic artifact set. A prose placeholder
|
|
52
|
+
or a request that a drafter supply code is a Plan gap, not implementation input.
|
|
53
|
+
3. Record preimages or absence for every target plus protected product manifests
|
|
54
|
+
and the current candidate digest. Resolve every parent no-follow before mutation.
|
|
55
|
+
|
|
56
|
+
## Materialize
|
|
57
|
+
|
|
58
|
+
The root authors the smallest complete bytes for all admitted targets. Write each
|
|
59
|
+
through a same-parent private temporary file, set the planned mode, flush it, and
|
|
60
|
+
atomically replace the target; settle the whole set or roll back partial output.
|
|
61
|
+
Do not install dependencies, touch Git, use the network, mutate product paths, or
|
|
62
|
+
execute the consumptive action.
|
|
63
|
+
|
|
64
|
+
## Verify and return
|
|
65
|
+
|
|
66
|
+
Read back the exact path set, modes, and SHA-256 identities. Run only the vetted
|
|
67
|
+
compile/static/fixture/mutant commands in their isolated non-consumptive modes;
|
|
68
|
+
require every discriminating signal. Recheck protected preimages and require the
|
|
69
|
+
candidate digest remains identical. Record the workflow-artifact hashes and proof
|
|
70
|
+
in canonical evidence, but never add these paths to the product candidate manifest
|
|
71
|
+
or built-slice count. Run the affected narrow Vet, restore the controlling return
|
|
72
|
+
cursor, and stop for fresh authorization before any real consumptive action.
|
|
73
|
+
|
|
74
|
+
An actual host permission failure, unresolved design choice, out-of-scope path, or
|
|
75
|
+
failed atomic/proof check blocks truthfully. The absence of a writable specialist
|
|
76
|
+
does not: root ownership is the supported path.
|
|
@@ -18,6 +18,10 @@ default and **Full** for high-risk scope or explicit `--full`; profiles are defi
|
|
|
18
18
|
When the cursor or approved plan contains a consumptive action, also read
|
|
19
19
|
`.claude/skills/devrites-lib/reference/standards/one-shot-actions.md` before any
|
|
20
20
|
stop/continue or execution decision.
|
|
21
|
+
When a blocked cursor names missing executable controller/harness/bundle bytes or
|
|
22
|
+
a missing writer under the active feature workspace, read
|
|
23
|
+
`.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md` before honoring
|
|
24
|
+
the terminal cursor or its recovery count.
|
|
21
25
|
|
|
22
26
|
## Operating rules
|
|
23
27
|
- **Use one initial human window.** Run spec and topology-first clarify; arm AFK
|
|
@@ -67,6 +71,11 @@ stop/continue or execution decision.
|
|
|
67
71
|
terminal `next_action`, reconcile retained consumptive-action artifacts and
|
|
68
72
|
per-fingerprint attempts from `drift.md` / `evidence.md`. A distinct retained
|
|
69
73
|
fingerprint below its no-progress cap reopens caller-owned offline recovery;
|
|
74
|
+
a stale pre-ownership workflow-artifact writer stop reopens under
|
|
75
|
+
`workflow-artifacts.md` when no controlling-root materialization attempt exists.
|
|
76
|
+
That materialization runs directly as non-consumptive prerequisite recovery,
|
|
77
|
+
even with no pending product slice or AFK budget; it does not re-ask an answered
|
|
78
|
+
human gate.
|
|
70
79
|
reconstruct any missing return cursor only from the current phase plus the
|
|
71
80
|
exact approved action in `test-plan.md` / evidence, never from chat or guesswork.
|
|
72
81
|
The idea + flags: `--ship` / `--yolo` (continue through ship preflight, then stop
|
|
@@ -64,6 +64,17 @@ Restore `return_phase` from the current phase and `return_next_action` only from
|
|
|
64
64
|
the exact approved action recorded in `test-plan.md` / evidence; ambiguity returns
|
|
65
65
|
to the applicable Vet contract and never licenses execution.
|
|
66
66
|
|
|
67
|
+
Also reconcile a **stale writer-exhaustion cursor** against
|
|
68
|
+
`workflow-artifacts.md`. When exact Vet-ready workflow-artifact paths and behavior
|
|
69
|
+
exist, the old attempts only targeted the read-only drafter/reviewer or product
|
|
70
|
+
wright, and there is **no controlling-root materialization attempt**, supported
|
|
71
|
+
root ownership is a changed routing condition. Preserve the old fingerprint,
|
|
72
|
+
record the new materialization fingerprint, and run that offline branch directly;
|
|
73
|
+
do not charge or require product-slice/AFK budget, re-ask a resolved question, or
|
|
74
|
+
request GO. Once a root materialization attempt exists, never apply this migration
|
|
75
|
+
again—route its observed failure normally. This reconciliation runs even when all
|
|
76
|
+
product slices are already built, before selecting the next forward phase.
|
|
77
|
+
|
|
67
78
|
1. Save the originating phase/action in the native return cursor unless a valid
|
|
68
79
|
one already exists.
|
|
69
80
|
2. Invoke the required repair, Vet, remediation, and proof skills inline. After
|
|
@@ -46,6 +46,14 @@ 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
|
+
A pre-ownership workflow-artifact writer stop is not unchanged evidence when the
|
|
50
|
+
current contract supplies controlling-root materialization. Prior drafter/wright refusals do not count
|
|
51
|
+
as root materialization attempts. Reopen only when exact paths and executable
|
|
52
|
+
behavior passed Vet and there is **no controlling-root materialization attempt**;
|
|
53
|
+
record the routing migration so it cannot reset again. Missing product slices,
|
|
54
|
+
unresolved protocol choices, or a recorded root attempt remain under their normal
|
|
55
|
+
gate/fingerprint rules.
|
|
56
|
+
|
|
49
57
|
Past evidence being irretrievable is not by itself terminal. When an in-scope
|
|
50
58
|
trusted diagnostic seam can make the next retained fingerprint uniquely
|
|
51
59
|
actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
|
|
@@ -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`](../../agents/devrites-slice-wright.md)
|
|
17
|
-
writes source and tests.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
@@ -85,6 +85,12 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
85
85
|
require the drafter to apply `one-shot-actions.md` and return the bounded
|
|
86
86
|
diagnostic-amplification design, injective boundary map, per-seam fixtures, and
|
|
87
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.
|
|
88
94
|
3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
|
|
89
95
|
Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
|
|
90
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
|
|
@@ -16,7 +16,7 @@ This project has DevRites installed for both Claude Code and Codex.
|
|
|
16
16
|
- Custom Codex subagents generated from the DevRites review agents live in `.codex/agents`.
|
|
17
17
|
- 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.
|
|
18
18
|
- 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.
|
|
19
|
-
- 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
|
|
19
|
+
- 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.
|
|
20
20
|
- 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.
|
|
21
21
|
- 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.
|
|
22
22
|
|
|
@@ -41,6 +41,8 @@ principle-exception questions. List them for the root.
|
|
|
41
41
|
## Rules
|
|
42
42
|
|
|
43
43
|
- Read-only. Do not edit source, tests, `.devrites/**`, Git state, or dependencies.
|
|
44
|
+
- Design executable workflow artifacts completely, but never return implementation bodies
|
|
45
|
+
or materialize them; the later Vet-ready step follows `workflow-artifacts.md`.
|
|
44
46
|
- Do not ask the user, approve the plan, set readiness, or advance a phase.
|
|
45
47
|
- Do not invoke another agent.
|
|
46
48
|
- Return candidate content only for requested paths. If unfinished, name the exact
|
|
@@ -68,6 +68,12 @@ has no clear next move.
|
|
|
68
68
|
repair its finite map and collision/fault fixtures offline, narrow-Vet it, and
|
|
69
69
|
stop for fresh authorization before the evidence-acquisition attempt. Missing
|
|
70
70
|
past evidence is terminal only when no safe amplification seam exists.
|
|
71
|
+
- **Route by artifact ownership.** Product source/tests go to the exact bounded
|
|
72
|
+
wright. Exact Vet-ready executable proof artifacts under the active `.devrites/**`
|
|
73
|
+
workspace follow
|
|
74
|
+
[`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
|
|
75
|
+
and are materialized by the controlling root. Never ask a read-only planner or
|
|
76
|
+
reviewer to return implementation bodies.
|
|
71
77
|
- **Classify before routing** with
|
|
72
78
|
[cleanup-and-classify.md](reference/cleanup-and-classify.md).
|
|
73
79
|
- **Durably record class and rationale** in `decisions.md` and the applicable
|
|
@@ -33,6 +33,7 @@ topic's owner.
|
|
|
33
33
|
| `principles.md` | Authoring or checking project invariants and approved exceptions. |
|
|
34
34
|
| `deprecation.md` | Removing, replacing, or migrating behavior, code, APIs, or data. |
|
|
35
35
|
| `agents.md` | Dispatching, awaiting, validating, or reconciling fresh-context agents. |
|
|
36
|
+
| `workflow-artifacts.md` | Materializing executable proof/controller/harness files under the active `.devrites/work/<slug>/`. |
|
|
36
37
|
| `context-hygiene.md` | Choosing `/clear`, `/compact`, or a handoff. |
|
|
37
38
|
| `anti-patterns.md` | A pack-wide rationalization or red flag appears. |
|
|
38
39
|
| `afk-hitl.md` | A pause, question, resume, or AFK decision is possible. |
|
|
@@ -259,6 +259,12 @@ changes, not a request for permission to retry.
|
|
|
259
259
|
recorded no-progress corrections still has recovery budget, even when an older
|
|
260
260
|
`state.md` says `Next step: none`. Resume it; do not treat session age or the
|
|
261
261
|
prior action's spent authorization as exhaustion.
|
|
262
|
+
- **Treat a newly supported writer route as progress once.** For exact Vet-ready
|
|
263
|
+
workflow artifacts, apply `workflow-artifacts.md` when prior attempts only asked
|
|
264
|
+
a read-only role or product wright for implementation and evidence records
|
|
265
|
+
**no controlling-root materialization attempt**. Preserve the old attempts, but
|
|
266
|
+
do not count them against the new root-materialization fingerprint. Record the
|
|
267
|
+
migration; after a root attempt exists, normal fingerprint accounting applies.
|
|
262
268
|
- **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
|
|
263
269
|
preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`.
|
|
264
270
|
Do not emit `$rite-plan unblock`, another phase command, a question, or
|
|
@@ -5,8 +5,9 @@ Follow DevRites policy and [`depth profiles`](../orchestration-profiles.md).
|
|
|
5
5
|
## Authority
|
|
6
6
|
|
|
7
7
|
- Root owns scope, questions/decisions/results, `.devrites/**`, and phase
|
|
8
|
-
transitions—not source/tests.
|
|
9
|
-
-
|
|
8
|
+
transitions—not product source/tests. Exact vetted executable workflow artifacts
|
|
9
|
+
follow [`workflow-artifacts.md`](workflow-artifacts.md).
|
|
10
|
+
- Only bounded wright writes product source/tests; others inspect an immutable
|
|
10
11
|
candidate.
|
|
11
12
|
- Every named role runs; unavailable → HITL, never skip/substitute.
|
|
12
13
|
- Leaves never invoke agents, ask humans, change phase, commit/push,
|
|
@@ -48,11 +49,16 @@ Running/orphaned/unavailable = `gap`; no root/generic substitute.
|
|
|
48
49
|
Claude grants only wright `acceptEdits`; Codex root is workspace-capable because
|
|
49
50
|
children cannot elevate. Wright alone is `:workspace`; others are `:read-only`.
|
|
50
51
|
|
|
51
|
-
Give wright the smallest exact project-relative file list—no
|
|
52
|
-
traversal/`.devrites/**`. No scope widening. Root rejects
|
|
53
|
-
`git diff --name-only` extras. Never patch in root, bypass/substitute wright,
|
|
52
|
+
Give wright the smallest exact project-relative product source/test file list—no
|
|
53
|
+
directories/globs, traversal/`.devrites/**`. No scope widening. Root rejects
|
|
54
|
+
`git diff --name-only` extras. Never patch product source/tests in root, bypass/substitute wright,
|
|
54
55
|
accept drift, or recreate a dispatch bridge.
|
|
55
56
|
|
|
57
|
+
The controlling root may materialize only the exact Vet-ready executable workflow
|
|
58
|
+
artifact paths under the active `.devrites/work/<slug>/` using
|
|
59
|
+
[`workflow-artifacts.md`](workflow-artifacts.md). This is not a writer dispatch,
|
|
60
|
+
product slice, candidate mutation, or exception to the source-writing boundary.
|
|
61
|
+
|
|
56
62
|
## Inputs and results
|
|
57
63
|
|
|
58
64
|
Each job gets objective/exclusions, exact paths/immutable candidate, rubric/result
|
|
@@ -132,4 +132,5 @@ Public commands need docs/generated hosts/reply marker;
|
|
|
132
132
|
internal skills need trigger/not-for plus proof they are not an agent/reference.
|
|
133
133
|
Agents need role/scope/mode/output/composition and
|
|
134
134
|
[`agents.md` § Result admission](agents.md#result-admission) for review roles.
|
|
135
|
-
Only `devrites-slice-wright` writes.
|
|
135
|
+
Only `devrites-slice-wright` writes product source/tests. The controlling root's
|
|
136
|
+
path-bounded `.devrites/**` workflow artifacts follow `workflow-artifacts.md`.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Executable workflow artifacts
|
|
2
|
+
|
|
3
|
+
Executable files used only to plan, isolate, or prove a DevRites workflow—such as
|
|
4
|
+
a controller, harness, proof bundle, fixture generator, or bounded materializer
|
|
5
|
+
under the active `.devrites/work/<slug>/`—are **workflow artifacts**, not product
|
|
6
|
+
source/tests. They remain excluded from the product candidate and never authorize
|
|
7
|
+
the real action they prepare.
|
|
8
|
+
|
|
9
|
+
## Ownership
|
|
10
|
+
|
|
11
|
+
After an exact design and path set pass Vet, the **controlling root is the sole materializer**
|
|
12
|
+
of these artifacts under its existing `.devrites/**` authority. For these paths,
|
|
13
|
+
never dispatch `devrites-slice-wright`,
|
|
14
|
+
never widen the wright contract, and never ask a
|
|
15
|
+
read-only planner/reviewer for implementation bodies. Product source/tests remain
|
|
16
|
+
wright-only.
|
|
17
|
+
|
|
18
|
+
Missing implementation bytes are an agent-owned materialization task, not
|
|
19
|
+
technical-recovery exhaustion, while the vetted behavior and exact paths are
|
|
20
|
+
complete. The root may not invent unresolved protocol choices; those return to
|
|
21
|
+
Plan/Vet.
|
|
22
|
+
|
|
23
|
+
## Cold-resume migration
|
|
24
|
+
|
|
25
|
+
A **stale writer-exhaustion cursor** must reopen when all of these are durable:
|
|
26
|
+
|
|
27
|
+
- Vet accepted the exact workflow-artifact paths and complete executable contract;
|
|
28
|
+
- the recorded blocker is only missing implementation bodies or a writable actor;
|
|
29
|
+
- prior no-progress attempts asked a read-only drafter/reviewer for bodies or sent
|
|
30
|
+
`.devrites/**` paths toward the product wright; and
|
|
31
|
+
- evidence records **no controlling-root materialization attempt** for that exact set.
|
|
32
|
+
|
|
33
|
+
This is a changed routing condition, not another correction attempt against the
|
|
34
|
+
old unsupported-writer fingerprint. Preserve that history, close or supersede its
|
|
35
|
+
terminal claim, record one new root-materialization fingerprint, and materialize
|
|
36
|
+
directly even when all product slices are built or the AFK slice budget is zero.
|
|
37
|
+
Do not consume product-slice budget, reopen an answered human gate, or require GO
|
|
38
|
+
for this offline work. After any controlling-root attempt is recorded, this
|
|
39
|
+
migration cannot apply again; route its observed atomic/proof failure under the
|
|
40
|
+
new fingerprint instead.
|
|
41
|
+
|
|
42
|
+
## Admission
|
|
43
|
+
|
|
44
|
+
Before writing:
|
|
45
|
+
|
|
46
|
+
1. Require the active slug, current readiness binding, resolved human gates, and
|
|
47
|
+
an exact file list in `plan.md` / `test-plan.md`. Reject directories, globs,
|
|
48
|
+
traversal, duplicates, symlinks, paths outside the active feature workspace,
|
|
49
|
+
and any product source/test or dependency path.
|
|
50
|
+
2. Bind the complete behavior, interfaces, failure relations, proof commands,
|
|
51
|
+
expected signals, and rollback for the atomic artifact set. A prose placeholder
|
|
52
|
+
or a request that a drafter supply code is a Plan gap, not implementation input.
|
|
53
|
+
3. Record preimages or absence for every target plus protected product manifests
|
|
54
|
+
and the current candidate digest. Resolve every parent no-follow before mutation.
|
|
55
|
+
|
|
56
|
+
## Materialize
|
|
57
|
+
|
|
58
|
+
The root authors the smallest complete bytes for all admitted targets. Write each
|
|
59
|
+
through a same-parent private temporary file, set the planned mode, flush it, and
|
|
60
|
+
atomically replace the target; settle the whole set or roll back partial output.
|
|
61
|
+
Do not install dependencies, touch Git, use the network, mutate product paths, or
|
|
62
|
+
execute the consumptive action.
|
|
63
|
+
|
|
64
|
+
## Verify and return
|
|
65
|
+
|
|
66
|
+
Read back the exact path set, modes, and SHA-256 identities. Run only the vetted
|
|
67
|
+
compile/static/fixture/mutant commands in their isolated non-consumptive modes;
|
|
68
|
+
require every discriminating signal. Recheck protected preimages and require the
|
|
69
|
+
candidate digest remains identical. Record the workflow-artifact hashes and proof
|
|
70
|
+
in canonical evidence, but never add these paths to the product candidate manifest
|
|
71
|
+
or built-slice count. Run the affected narrow Vet, restore the controlling return
|
|
72
|
+
cursor, and stop for fresh authorization before any real consumptive action.
|
|
73
|
+
|
|
74
|
+
An actual host permission failure, unresolved design choice, out-of-scope path, or
|
|
75
|
+
failed atomic/proof check blocks truthfully. The absence of a writable specialist
|
|
76
|
+
does not: root ownership is the supported path.
|
|
@@ -18,6 +18,10 @@ default and **Full** for high-risk scope or explicit `--full`; profiles are defi
|
|
|
18
18
|
When the cursor or approved plan contains a consumptive action, also read
|
|
19
19
|
`.agents/skills/devrites-lib/reference/standards/one-shot-actions.md` before any
|
|
20
20
|
stop/continue or execution decision.
|
|
21
|
+
When a blocked cursor names missing executable controller/harness/bundle bytes or
|
|
22
|
+
a missing writer under the active feature workspace, read
|
|
23
|
+
`.agents/skills/devrites-lib/reference/standards/workflow-artifacts.md` before honoring
|
|
24
|
+
the terminal cursor or its recovery count.
|
|
21
25
|
|
|
22
26
|
## Operating rules
|
|
23
27
|
- **Use one initial human window.** Run spec and topology-first clarify; arm AFK
|
|
@@ -67,6 +71,11 @@ stop/continue or execution decision.
|
|
|
67
71
|
terminal `next_action`, reconcile retained consumptive-action artifacts and
|
|
68
72
|
per-fingerprint attempts from `drift.md` / `evidence.md`. A distinct retained
|
|
69
73
|
fingerprint below its no-progress cap reopens caller-owned offline recovery;
|
|
74
|
+
a stale pre-ownership workflow-artifact writer stop reopens under
|
|
75
|
+
`workflow-artifacts.md` when no controlling-root materialization attempt exists.
|
|
76
|
+
That materialization runs directly as non-consumptive prerequisite recovery,
|
|
77
|
+
even with no pending product slice or AFK budget; it does not re-ask an answered
|
|
78
|
+
human gate.
|
|
70
79
|
reconstruct any missing return cursor only from the current phase plus the
|
|
71
80
|
exact approved action in `test-plan.md` / evidence, never from chat or guesswork.
|
|
72
81
|
The idea + flags: `--ship` / `--yolo` (continue through ship preflight, then stop
|
|
@@ -64,6 +64,17 @@ Restore `return_phase` from the current phase and `return_next_action` only from
|
|
|
64
64
|
the exact approved action recorded in `test-plan.md` / evidence; ambiguity returns
|
|
65
65
|
to the applicable Vet contract and never licenses execution.
|
|
66
66
|
|
|
67
|
+
Also reconcile a **stale writer-exhaustion cursor** against
|
|
68
|
+
`workflow-artifacts.md`. When exact Vet-ready workflow-artifact paths and behavior
|
|
69
|
+
exist, the old attempts only targeted the read-only drafter/reviewer or product
|
|
70
|
+
wright, and there is **no controlling-root materialization attempt**, supported
|
|
71
|
+
root ownership is a changed routing condition. Preserve the old fingerprint,
|
|
72
|
+
record the new materialization fingerprint, and run that offline branch directly;
|
|
73
|
+
do not charge or require product-slice/AFK budget, re-ask a resolved question, or
|
|
74
|
+
request GO. Once a root materialization attempt exists, never apply this migration
|
|
75
|
+
again—route its observed failure normally. This reconciliation runs even when all
|
|
76
|
+
product slices are already built, before selecting the next forward phase.
|
|
77
|
+
|
|
67
78
|
1. Save the originating phase/action in the native return cursor unless a valid
|
|
68
79
|
one already exists.
|
|
69
80
|
2. Invoke the required repair, Vet, remediation, and proof skills inline. After
|
|
@@ -46,6 +46,14 @@ 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
|
+
A pre-ownership workflow-artifact writer stop is not unchanged evidence when the
|
|
50
|
+
current contract supplies controlling-root materialization. Prior drafter/wright refusals do not count
|
|
51
|
+
as root materialization attempts. Reopen only when exact paths and executable
|
|
52
|
+
behavior passed Vet and there is **no controlling-root materialization attempt**;
|
|
53
|
+
record the routing migration so it cannot reset again. Missing product slices,
|
|
54
|
+
unresolved protocol choices, or a recorded root attempt remain under their normal
|
|
55
|
+
gate/fingerprint rules.
|
|
56
|
+
|
|
49
57
|
Past evidence being irretrievable is not by itself terminal. When an in-scope
|
|
50
58
|
trusted diagnostic seam can make the next retained fingerprint uniquely
|
|
51
59
|
actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
|
|
@@ -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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
@@ -85,6 +85,12 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
|
|
|
85
85
|
require the drafter to apply `one-shot-actions.md` and return the bounded
|
|
86
86
|
diagnostic-amplification design, injective boundary map, per-seam fixtures, and
|
|
87
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.
|
|
88
94
|
3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
|
|
89
95
|
Reconcile `plan.md`'s canonical `Shared contract proof`: changed provider/consumer
|
|
90
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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.10",
|
|
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
|
|
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
|
|