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.
- package/CHANGELOG.md +16 -0
- package/README.md +1 -1
- package/docs/adr/0037-autocomplete-lands-local-checkpoints.md +36 -0
- package/docs/adr/README.md +2 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +2 -0
- package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +2 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/codex/AGENTS.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +2 -0
- package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/devin/AGENTS.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +2 -0
- package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +2 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/pi/AGENTS.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +5 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +2 -0
- package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +3 -1
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +3 -1
- package/package.json +1 -1
- package/scripts/codex-generate.sh +1 -1
- package/scripts/devin-generate.sh +1 -1
- 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.
|
|
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.
|
package/docs/adr/README.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
package/scripts/pi-generate.sh
CHANGED
|
@@ -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
|
|
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
|
|