devrites 6.4.4 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -1
  3. package/docs/adr/0037-autocomplete-lands-local-checkpoints.md +36 -0
  4. package/docs/adr/README.md +2 -1
  5. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
  6. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +2 -0
  7. package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
  8. package/pack/.claude/skills/rite-build/reference/checkpoint.md +3 -1
  9. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
  10. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +2 -0
  11. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
  12. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +3 -1
  13. package/pack/generated/codex/AGENTS.md +1 -1
  14. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
  15. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +2 -0
  16. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
  17. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +3 -1
  18. package/pack/generated/devin/AGENTS.md +1 -1
  19. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
  20. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +2 -0
  21. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
  22. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +3 -1
  23. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
  24. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +2 -0
  25. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
  26. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +3 -1
  27. package/pack/generated/pi/AGENTS.md +1 -1
  28. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
  29. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +2 -0
  30. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
  31. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +3 -1
  32. package/package.json +1 -1
  33. package/scripts/codex-generate.sh +1 -1
  34. package/scripts/devin-generate.sh +1 -1
  35. package/scripts/pi-generate.sh +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
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
+ ## [6.5.0](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.5...v6.5.0) (2026-10-17)
6
+
7
+ ### Added
8
+
9
+ * **devrites:** autocomplete lands local checkpoints without a prompt ([#121](https://github.com/ViktorsBaikers/DevRites/issues/121)) ([82831f2](https://github.com/ViktorsBaikers/DevRites/commit/82831f21c9556391452dbdcc4a9f68dd4d729ccf))
10
+
11
+ ### Fixed
12
+
13
+ * **no-release:** treat uncompiled LSP errors as stale ([#120](https://github.com/ViktorsBaikers/DevRites/issues/120)) ([c1b0cb2](https://github.com/ViktorsBaikers/DevRites/commit/c1b0cb2fd929923f2edc00121b4d7ba8ad2c7c30))
14
+
15
+ ## [6.4.5](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.4...v6.4.5) (2026-10-16)
16
+
17
+ ### Fixed
18
+
19
+ * **devrites:** recheck packets carry only the role's own fingerprints ([#119](https://github.com/ViktorsBaikers/DevRites/issues/119)) ([781a9d4](https://github.com/ViktorsBaikers/DevRites/commit/781a9d473dd20ad10f02ca8d45793e8a8844ce46))
20
+
5
21
  ## [6.4.4](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.3...v6.4.4) (2026-10-16)
6
22
 
7
23
  ### Fixed
package/README.md CHANGED
@@ -31,7 +31,7 @@ history can't lose it. After you clear the conversation, switch hosts, or hand
31
31
  the feature to another engineer, the next session reads the same plan,
32
32
  decisions, and evidence before it continues.
33
33
 
34
- **Status:** [`v6.4.4`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v6.4.4): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
34
+ **Status:** [`v6.5.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v6.5.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
35
35
 
36
36
  This is the latest published release; `main` may contain unreleased work.
37
37
 
@@ -0,0 +1,36 @@
1
+ # ADR-0037: Autocomplete lands local checkpoints and self-resolves own scratch
2
+
3
+ - **Status:** Accepted
4
+ - **Date:** 2026-10-17
5
+ - **Supersedes:** the ADR-0022 clause that put local checkpoint commits under fresh approval
6
+
7
+ ## Context
8
+
9
+ ADR-0022 kept the rule that a seal GO, AFK mode, or autocomplete flag never
10
+ authorizes an irreversible action, and listed `commit` with push, tag, and PR. The
11
+ generated `AGENTS.md` block repeated it. The checkpoint protocol and
12
+ `afk-hitl.md` already treated a local, unpushed `WIP(<slug>):` checkpoint as
13
+ landing automatically and folded at `/rite-ship`. Hosts read the generated block as
14
+ a host ask-first rule, so `/rite-autocomplete` stopped for a human at every slice
15
+ checkpoint. On Boxset, 3 of 5 human stops in one day were local checkpoint approvals.
16
+ The other 2 were safety gates for fixed `/tmp` paths that the writer had itself
17
+ created, which filesystem birth times proved afterwards.
18
+
19
+ ## Decision
20
+
21
+ - A local, unpushed `WIP(<slug>):` checkpoint commit made under the checkpoint
22
+ protocol (exact manifest staging, scope checks, no amend, reset, rebase, push, or
23
+ force) is not irreversible. It lands without a prompt in AFK and HITL runs.
24
+ - Push, tag, PR, the ship commit, and any history rewrite remain irreversible and
25
+ keep fresh, explicit, per-attempt user approval.
26
+ - A writer's overwrite or removal of a path outside the workspace that it created
27
+ itself in the same wave is not filesystem destruction. When birth times and
28
+ ownership prove it, the root records the evidence and continues. An unprovable
29
+ path still pauses.
30
+ - A host repository's own ask-first commit rule still wins.
31
+
32
+ ## Consequences
33
+
34
+ - `/rite-autocomplete` runs from Frame to a sealed, locally checkpointed feature
35
+ without per-slice human stops; `/rite-ship` remains the single human Git gate.
36
+ - Each landed checkpoint stays reversible by the owner (`git reset`) until ship.
@@ -67,7 +67,7 @@ architecture; per-feature `decisions.md` files stay scoped to that feature.
67
67
  | [0019](0019-native-boundary-with-deterministic-gates.md) | Native boundary with deterministic gates | Accepted in part; semantic gates superseded by 0022, native writer and fresh approval retained | `engine/internal/gate/gate_test.go` |
68
68
  | [0020](0020-thin-engine-native-orchestration-boundary.md) | Thin engine and native host orchestration | Accepted in part; engine-surface/migration scope superseded by 0022, native orchestration retained | `tests/native-orchestration-contract-test.sh`, `engine/root_routing_test.go` |
69
69
  | [0021](0021-observable-workspace-compatibility.md) | Observable and reversible workspace compatibility | Superseded by 0022 | historical |
70
- | [0022](0022-native-orchestration-thin-engine.md) | Native orchestration with a thin deterministic engine | Accepted in part; snapshot/JSON-output clauses superseded by 0023; retained policy-command/install clauses narrowed by 0024; no-migrator normalization scope superseded by 0029 | `engine/root_routing_test.go`, `engine/internal/gate/gate_test.go`, `engine/internal/lib/cursor_compat_test.go`, `tests/native-orchestration-contract-test.sh` |
70
+ | [0022](0022-native-orchestration-thin-engine.md) | Native orchestration with a thin deterministic engine | Accepted in part; snapshot/JSON-output clauses superseded by 0023; retained policy-command/install clauses narrowed by 0024; no-migrator normalization scope superseded by 0029; local WIP checkpoint approval superseded by 0037 | `engine/root_routing_test.go`, `engine/internal/gate/gate_test.go`, `engine/internal/lib/cursor_compat_test.go`, `tests/native-orchestration-contract-test.sh` |
71
71
  | [0023](0023-native-workspace-reads-line-output.md) | Native workspace reads and line-oriented engine output | Accepted in part; AFK/recovery/doctor retention superseded by 0024 | `engine/root_routing_test.go`, `engine/internal/gate/gate_test.go`, `tests/native-orchestration-contract-test.sh`, `tests/npx-pack-smoke.sh` |
72
72
  | [0024](0024-native-policy-offline-installer-boundary.md) | Native policy and offline installer boundary | Accepted in part; offline engine-update clause superseded by 0028 | `tests/native-orchestration-contract-test.sh`, `tests/phase-gate-routing-test.sh`, `tests/install-smoke.sh`, `tests/host-artifacts-test.sh` |
73
73
  | [0025](0025-evidence-gated-workspace-upgrades.md) | Evidence-gated semantic workspace upgrades | Accepted; no-migrator scope superseded by 0029 | `tests/phase-gate-routing-test.sh`, `tests/host-artifacts-test.sh` |
@@ -82,3 +82,4 @@ architecture; per-feature `decisions.md` files stay scoped to that feature.
82
82
  | [0034](0034-workflow-artifact-byte-corrections-get-code-review.md) | Workflow Artifact byte corrections get code review, not a plan loop | Accepted; narrows 0027's semantic review for contract-preserving Workflow Artifact byte fixes | `engine/internal/lib/drift_test.go` |
83
83
  | [0035](0035-claude-root-leaves-plan-mode.md) | The Claude root no longer runs in plan mode | Accepted; supersedes the Claude root plan-mode clauses of 0015/0017 | `tests/native-orchestration-contract-test.sh`, `engine/internal/install/install_test.go` |
84
84
  | [0036](0036-archive-recall-is-a-read-time-query.md) | Archive recall is a read-time query | Accepted; consistent with 0014/0022 (no engine index or store) | `engine/internal/lib/recall_test.go` |
85
+ | [0037](0037-autocomplete-lands-local-checkpoints.md) | Autocomplete lands local checkpoints and self-resolves own scratch | Accepted; supersedes the ADR-0022 local-commit approval clause | `tests/authority-drift-test.sh` |
@@ -247,6 +247,11 @@ prove the old path unused before removing it, and a rollback for every destructi
247
247
  ([`deprecation.md`](deprecation.md)). The gate requires the safe path; it does not
248
248
  cancel the work.
249
249
 
250
+ A writer's overwrite or removal of a path outside the workspace that it created itself in
251
+ the same wave is not destruction. The root proves it with each path's birth time
252
+ (`stat -c %W`) at or after the wave's `started` time and the writer's ownership, records
253
+ that evidence, and continues without a question. Any path it cannot prove pauses as above.
254
+
250
255
  By default, AFK widens what's *automatic*; it never widens what's *irreversible*.
251
256
 
252
257
  Red checks remain hard non-advance build gates, but are not inherently irreversible or
@@ -86,6 +86,8 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
86
86
  - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
87
  Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
88
  leaf gap it would close (e.g. "no independent runtime run") closes there.
89
+ - A recheck packet lists only fingerprints that same role raised, plus the correction
90
+ diff. Another role's finding goes to that role's recheck, never a sibling's packet.
89
91
  - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is /rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
90
92
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
91
93
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
@@ -35,7 +35,9 @@ Review.
35
35
  oversized server, a pre-edit result, or a timed-out probe is `stale` (or `unavailable:
36
36
  <reason>` when none ran), never clean; fall back to the project typecheck/compile command. **Failing case:**
37
37
  the language server returns 0 diagnostics before the project finishes compiling and
38
- the slice records "diagnostics clean".
38
+ the slice records "diagnostics clean". The converse holds: an error that the project
39
+ compile/typecheck of the current bytes does not reproduce is stale. Record it once
40
+ with that command's result and move on; never stub, suppress, or re-chase it.
39
41
 
40
42
  Skipping step 1 on a multi-file slice is a Build orient gap unless recorded
41
43
  `cannot_verify`.
@@ -10,7 +10,9 @@ not a gate.
10
10
  The checkpoint stays local, unpushed scratch folded at `/rite-ship`; where the
11
11
  host repository's own agent contract requires approval before commits — an
12
12
  ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
13
- the orchestrator pauses for approval before landing it.
13
+ the orchestrator pauses for approval before landing it. The DevRites-generated
14
+ `AGENTS.md` block is not such a rule: under it the checkpoint lands without a
15
+ prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
14
16
 
15
17
  ## When (and when not)
16
18
 
@@ -247,6 +247,11 @@ prove the old path unused before removing it, and a rollback for every destructi
247
247
  ([`deprecation.md`](deprecation.md)). The gate requires the safe path; it does not
248
248
  cancel the work.
249
249
 
250
+ A writer's overwrite or removal of a path outside the workspace that it created itself in
251
+ the same wave is not destruction. The root proves it with each path's birth time
252
+ (`stat -c %W`) at or after the wave's `started` time and the writer's ownership, records
253
+ that evidence, and continues without a question. Any path it cannot prove pauses as above.
254
+
250
255
  By default, AFK widens what's *automatic*; it never widens what's *irreversible*.
251
256
 
252
257
  Red checks remain hard non-advance build gates, but are not inherently irreversible or
@@ -86,6 +86,8 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
86
86
  - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
87
  Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
88
  leaf gap it would close (e.g. "no independent runtime run") closes there.
89
+ - A recheck packet lists only fingerprints that same role raised, plus the correction
90
+ diff. Another role's finding goes to that role's recheck, never a sibling's packet.
89
91
  - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is /rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
90
92
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
91
93
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
@@ -35,7 +35,9 @@ Review.
35
35
  oversized server, a pre-edit result, or a timed-out probe is `stale` (or `unavailable:
36
36
  <reason>` when none ran), never clean; fall back to the project typecheck/compile command. **Failing case:**
37
37
  the language server returns 0 diagnostics before the project finishes compiling and
38
- the slice records "diagnostics clean".
38
+ the slice records "diagnostics clean". The converse holds: an error that the project
39
+ compile/typecheck of the current bytes does not reproduce is stale. Record it once
40
+ with that command's result and move on; never stub, suppress, or re-chase it.
39
41
 
40
42
  Skipping step 1 on a multi-file slice is a Build orient gap unless recorded
41
43
  `cannot_verify`.
@@ -10,7 +10,9 @@ not a gate.
10
10
  The checkpoint stays local, unpushed scratch folded at `/rite-ship`; where the
11
11
  host repository's own agent contract requires approval before commits — an
12
12
  ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
13
- the orchestrator pauses for approval before landing it.
13
+ the orchestrator pauses for approval before landing it. The DevRites-generated
14
+ `AGENTS.md` block is not such a rule: under it the checkpoint lands without a
15
+ prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
14
16
 
15
17
  ## When (and when not)
16
18
 
@@ -20,7 +20,7 @@ This project has DevRites installed for both Claude Code and Codex.
20
20
  - Every generated specialist is hook-free. Among the lifecycle `devrites-*` specialists, `devrites-slice-wright` alone uses `default_permissions = ":workspace"` and every other specialist in that family uses `default_permissions = ":read-only"`. The shipped profiles are the full role-to-permission map; `/rite-doctor` step 3 checks them. 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
  - The explicit `/overhaul` skill ships its own `overhaul-*` agents outside the DevRites lifecycle. They use `default_permissions = ":workspace"`, are dispatched only by that skill, and follow its own approval gate and path contracts instead of the lifecycle writer rules above.
22
22
  - The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` uses `default_permissions = ":workspace"`; `fast-planner`, `fast-checker`, and `fast-critic` stay `:read-only`. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
23
- - 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.
23
+ - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact push/tag/PR/ship-commit plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Local unpushed `WIP(<slug>):` checkpoint commits under the checkpoint protocol are not irreversible and land without a prompt. Native host permission and sandbox prompts remain authoritative and cannot be inferred or bypassed.
24
24
 
25
25
  ## Workflow contract
26
26
 
@@ -247,6 +247,11 @@ prove the old path unused before removing it, and a rollback for every destructi
247
247
  ([`deprecation.md`](deprecation.md)). The gate requires the safe path; it does not
248
248
  cancel the work.
249
249
 
250
+ A writer's overwrite or removal of a path outside the workspace that it created itself in
251
+ the same wave is not destruction. The root proves it with each path's birth time
252
+ (`stat -c %W`) at or after the wave's `started` time and the writer's ownership, records
253
+ that evidence, and continues without a question. Any path it cannot prove pauses as above.
254
+
250
255
  By default, AFK widens what's *automatic*; it never widens what's *irreversible*.
251
256
 
252
257
  Red checks remain hard non-advance build gates, but are not inherently irreversible or
@@ -86,6 +86,8 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
86
86
  - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
87
  Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
88
  leaf gap it would close (e.g. "no independent runtime run") closes there.
89
+ - A recheck packet lists only fingerprints that same role raised, plus the correction
90
+ diff. Another role's finding goes to that role's recheck, never a sibling's packet.
89
91
  - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is $rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
90
92
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
91
93
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
@@ -35,7 +35,9 @@ Review.
35
35
  oversized server, a pre-edit result, or a timed-out probe is `stale` (or `unavailable:
36
36
  <reason>` when none ran), never clean; fall back to the project typecheck/compile command. **Failing case:**
37
37
  the language server returns 0 diagnostics before the project finishes compiling and
38
- the slice records "diagnostics clean".
38
+ the slice records "diagnostics clean". The converse holds: an error that the project
39
+ compile/typecheck of the current bytes does not reproduce is stale. Record it once
40
+ with that command's result and move on; never stub, suppress, or re-chase it.
39
41
 
40
42
  Skipping step 1 on a multi-file slice is a Build orient gap unless recorded
41
43
  `cannot_verify`.
@@ -10,7 +10,9 @@ not a gate.
10
10
  The checkpoint stays local, unpushed scratch folded at `$rite-ship`; where the
11
11
  host repository's own agent contract requires approval before commits — an
12
12
  ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
13
- the orchestrator pauses for approval before landing it.
13
+ the orchestrator pauses for approval before landing it. The DevRites-generated
14
+ `AGENTS.md` block is not such a rule: under it the checkpoint lands without a
15
+ prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
14
16
 
15
17
  ## When (and when not)
16
18
 
@@ -15,7 +15,7 @@ This project has DevRites installed for Devin CLI.
15
15
  - Custom profiles do not inherit interactive tool grants, and background subagents auto-deny unapproved tools. Dispatch the write-capable wright in the foreground, or make sure its `edit`, `write`, and `exec` tools are approved first. Specialists cannot use `ask_user_question`; the root relays user questions and answers through the task text and returned result.
16
16
  - DevRites runtime helpers run through the installed `devrites-engine` binary.
17
17
  - Skills and agent profiles are loaded when a session starts. If they were installed while this session was open, restart the session or reopen the project before relying on them.
18
- - 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.
18
+ - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact push/tag/PR/ship-commit plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Local unpushed `WIP(<slug>):` checkpoint commits under the checkpoint protocol are not irreversible and land without a prompt.
19
19
 
20
20
  ## Workflow contract
21
21
 
@@ -247,6 +247,11 @@ prove the old path unused before removing it, and a rollback for every destructi
247
247
  ([`deprecation.md`](deprecation.md)). The gate requires the safe path; it does not
248
248
  cancel the work.
249
249
 
250
+ A writer's overwrite or removal of a path outside the workspace that it created itself in
251
+ the same wave is not destruction. The root proves it with each path's birth time
252
+ (`stat -c %W`) at or after the wave's `started` time and the writer's ownership, records
253
+ that evidence, and continues without a question. Any path it cannot prove pauses as above.
254
+
250
255
  By default, AFK widens what's *automatic*; it never widens what's *irreversible*.
251
256
 
252
257
  Red checks remain hard non-advance build gates, but are not inherently irreversible or
@@ -86,6 +86,8 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
86
86
  - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
87
  Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
88
  leaf gap it would close (e.g. "no independent runtime run") closes there.
89
+ - A recheck packet lists only fingerprints that same role raised, plus the correction
90
+ diff. Another role's finding goes to that role's recheck, never a sibling's packet.
89
91
  - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is /rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
90
92
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
91
93
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
@@ -35,7 +35,9 @@ Review.
35
35
  oversized server, a pre-edit result, or a timed-out probe is `stale` (or `unavailable:
36
36
  <reason>` when none ran), never clean; fall back to the project typecheck/compile command. **Failing case:**
37
37
  the language server returns 0 diagnostics before the project finishes compiling and
38
- the slice records "diagnostics clean".
38
+ the slice records "diagnostics clean". The converse holds: an error that the project
39
+ compile/typecheck of the current bytes does not reproduce is stale. Record it once
40
+ with that command's result and move on; never stub, suppress, or re-chase it.
39
41
 
40
42
  Skipping step 1 on a multi-file slice is a Build orient gap unless recorded
41
43
  `cannot_verify`.
@@ -10,7 +10,9 @@ not a gate.
10
10
  The checkpoint stays local, unpushed scratch folded at `/rite-ship`; where the
11
11
  host repository's own agent contract requires approval before commits — an
12
12
  ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
13
- the orchestrator pauses for approval before landing it.
13
+ the orchestrator pauses for approval before landing it. The DevRites-generated
14
+ `AGENTS.md` block is not such a rule: under it the checkpoint lands without a
15
+ prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
14
16
 
15
17
  ## When (and when not)
16
18
 
@@ -247,6 +247,11 @@ prove the old path unused before removing it, and a rollback for every destructi
247
247
  ([`deprecation.md`](deprecation.md)). The gate requires the safe path; it does not
248
248
  cancel the work.
249
249
 
250
+ A writer's overwrite or removal of a path outside the workspace that it created itself in
251
+ the same wave is not destruction. The root proves it with each path's birth time
252
+ (`stat -c %W`) at or after the wave's `started` time and the writer's ownership, records
253
+ that evidence, and continues without a question. Any path it cannot prove pauses as above.
254
+
250
255
  By default, AFK widens what's *automatic*; it never widens what's *irreversible*.
251
256
 
252
257
  Red checks remain hard non-advance build gates, but are not inherently irreversible or
@@ -86,6 +86,8 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
86
86
  - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
87
  Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
88
  leaf gap it would close (e.g. "no independent runtime run") closes there.
89
+ - A recheck packet lists only fingerprints that same role raised, plus the correction
90
+ diff. Another role's finding goes to that role's recheck, never a sibling's packet.
89
91
  - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is /rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
90
92
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
91
93
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
@@ -35,7 +35,9 @@ Review.
35
35
  oversized server, a pre-edit result, or a timed-out probe is `stale` (or `unavailable:
36
36
  <reason>` when none ran), never clean; fall back to the project typecheck/compile command. **Failing case:**
37
37
  the language server returns 0 diagnostics before the project finishes compiling and
38
- the slice records "diagnostics clean".
38
+ the slice records "diagnostics clean". The converse holds: an error that the project
39
+ compile/typecheck of the current bytes does not reproduce is stale. Record it once
40
+ with that command's result and move on; never stub, suppress, or re-chase it.
39
41
 
40
42
  Skipping step 1 on a multi-file slice is a Build orient gap unless recorded
41
43
  `cannot_verify`.
@@ -10,7 +10,9 @@ not a gate.
10
10
  The checkpoint stays local, unpushed scratch folded at `/rite-ship`; where the
11
11
  host repository's own agent contract requires approval before commits — an
12
12
  ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
13
- the orchestrator pauses for approval before landing it.
13
+ the orchestrator pauses for approval before landing it. The DevRites-generated
14
+ `AGENTS.md` block is not such a rule: under it the checkpoint lands without a
15
+ prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
14
16
 
15
17
  ## When (and when not)
16
18
 
@@ -16,7 +16,7 @@ This project has DevRites installed for pi.
16
16
  - The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` carries write tools; `fast-planner`, `fast-checker`, and `fast-critic` stay read-only. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
17
17
  - DevRites runtime helpers run through the installed `devrites-engine` binary.
18
18
  - Installed `.pi/` content loads only after the project is trusted. If pi has not trusted this project, the skills, agents, and prompts above are not active.
19
- - 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.
19
+ - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact push/tag/PR/ship-commit plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Local unpushed `WIP(<slug>):` checkpoint commits under the checkpoint protocol are not irreversible and land without a prompt.
20
20
 
21
21
  ## Workflow contract
22
22
 
@@ -247,6 +247,11 @@ prove the old path unused before removing it, and a rollback for every destructi
247
247
  ([`deprecation.md`](deprecation.md)). The gate requires the safe path; it does not
248
248
  cancel the work.
249
249
 
250
+ A writer's overwrite or removal of a path outside the workspace that it created itself in
251
+ the same wave is not destruction. The root proves it with each path's birth time
252
+ (`stat -c %W`) at or after the wave's `started` time and the writer's ownership, records
253
+ that evidence, and continues without a question. Any path it cannot prove pauses as above.
254
+
250
255
  By default, AFK widens what's *automatic*; it never widens what's *irreversible*.
251
256
 
252
257
  Red checks remain hard non-advance build gates, but are not inherently irreversible or
@@ -86,6 +86,8 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
86
86
  - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
87
  Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
88
  leaf gap it would close (e.g. "no independent runtime run") closes there.
89
+ - A recheck packet lists only fingerprints that same role raised, plus the correction
90
+ diff. Another role's finding goes to that role's recheck, never a sibling's packet.
89
91
  - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is /rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
90
92
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
91
93
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
@@ -35,7 +35,9 @@ Review.
35
35
  oversized server, a pre-edit result, or a timed-out probe is `stale` (or `unavailable:
36
36
  <reason>` when none ran), never clean; fall back to the project typecheck/compile command. **Failing case:**
37
37
  the language server returns 0 diagnostics before the project finishes compiling and
38
- the slice records "diagnostics clean".
38
+ the slice records "diagnostics clean". The converse holds: an error that the project
39
+ compile/typecheck of the current bytes does not reproduce is stale. Record it once
40
+ with that command's result and move on; never stub, suppress, or re-chase it.
39
41
 
40
42
  Skipping step 1 on a multi-file slice is a Build orient gap unless recorded
41
43
  `cannot_verify`.
@@ -10,7 +10,9 @@ not a gate.
10
10
  The checkpoint stays local, unpushed scratch folded at `/rite-ship`; where the
11
11
  host repository's own agent contract requires approval before commits — an
12
12
  ask-first rule such as this repository's `AGENTS.md` — that contract wins, and
13
- the orchestrator pauses for approval before landing it.
13
+ the orchestrator pauses for approval before landing it. The DevRites-generated
14
+ `AGENTS.md` block is not such a rule: under it the checkpoint lands without a
15
+ prompt, AFK or HITL. Push, tag, PR, and the ship commit stay human-gated.
14
16
 
15
17
  ## When (and when not)
16
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "6.4.4",
3
+ "version": "6.5.0",
4
4
  "description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
@@ -111,7 +111,7 @@ This project has DevRites installed for both Claude Code and Codex.
111
111
  - Every generated specialist is hook-free. Among the lifecycle `devrites-*` specialists, `devrites-slice-wright` alone uses `default_permissions = ":workspace"` and every other specialist in that family uses `default_permissions = ":read-only"`. The shipped profiles are the full role-to-permission map; `/rite-doctor` step 3 checks them. 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.
112
112
  - The explicit `/overhaul` skill ships its own `overhaul-*` agents outside the DevRites lifecycle. They use `default_permissions = ":workspace"`, are dispatched only by that skill, and follow its own approval gate and path contracts instead of the lifecycle writer rules above.
113
113
  - The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` uses `default_permissions = ":workspace"`; `fast-planner`, `fast-checker`, and `fast-critic` stay `:read-only`. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
114
- - 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.
114
+ - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact push/tag/PR/ship-commit plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Local unpushed `WIP(<slug>):` checkpoint commits under the checkpoint protocol are not irreversible and land without a prompt. Native host permission and sandbox prompts remain authoritative and cannot be inferred or bypassed.
115
115
 
116
116
  ## Workflow contract
117
117
 
@@ -213,7 +213,7 @@ This project has DevRites installed for Devin CLI.
213
213
  - Custom profiles do not inherit interactive tool grants, and background subagents auto-deny unapproved tools. Dispatch the write-capable wright in the foreground, or make sure its `edit`, `write`, and `exec` tools are approved first. Specialists cannot use `ask_user_question`; the root relays user questions and answers through the task text and returned result.
214
214
  - DevRites runtime helpers run through the installed `devrites-engine` binary.
215
215
  - Skills and agent profiles are loaded when a session starts. If they were installed while this session was open, restart the session or reopen the project before relying on them.
216
- - 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.
216
+ - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact push/tag/PR/ship-commit plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Local unpushed `WIP(<slug>):` checkpoint commits under the checkpoint protocol are not irreversible and land without a prompt.
217
217
 
218
218
  ## Workflow contract
219
219
 
@@ -256,7 +256,7 @@ This project has DevRites installed for pi.
256
256
  - The explicit `/rite-fast` skill ships its own `fast-*` agents. Only `fast-builder` carries write tools; `fast-planner`, `fast-checker`, and `fast-critic` stay read-only. `/rite-fast` dispatches them itself and applies its own exact-path contracts.
257
257
  - DevRites runtime helpers run through the installed `devrites-engine` binary.
258
258
  - Installed `.pi/` content loads only after the project is trusted. If pi has not trusted this project, the skills, agents, and prompts above are not active.
259
- - 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.
259
+ - A seal GO, AFK mode, or autocomplete flag never authorizes an irreversible action. Disclose the exact push/tag/PR/ship-commit plan and obtain fresh explicit user approval for that attempt; any changed or retried plan needs fresh approval. Local unpushed `WIP(<slug>):` checkpoint commits under the checkpoint protocol are not irreversible and land without a prompt.
260
260
 
261
261
  ## Workflow contract
262
262