devrites 6.4.5 → 6.6.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/code-navigation.md +3 -1
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +4 -0
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -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/claude/skills/rite-plan/SKILL.md +4 -0
- 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/code-navigation.md +3 -1
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -0
- 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/code-navigation.md +3 -1
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/devin/skills/rite-plan/SKILL.md +4 -0
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +5 -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/omp/skills/rite-plan/SKILL.md +4 -0
- 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/code-navigation.md +3 -1
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +3 -1
- package/pack/generated/pi/skills/rite-plan/SKILL.md +4 -0
- 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.6.0](https://github.com/ViktorsBaikers/DevRites/compare/v6.5.0...v6.6.0) (2026-10-17)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* **devrites:** swap the mechanism before pinning a pressured seam again ([#122](https://github.com/ViktorsBaikers/DevRites/issues/122)) ([92de92e](https://github.com/ViktorsBaikers/DevRites/commit/92de92e7e77d9d134f9fec46d5367a457f84fa67))
|
|
10
|
+
|
|
11
|
+
## [6.5.0](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.5...v6.5.0) (2026-10-17)
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
* **devrites:** autocomplete lands local checkpoints without a prompt ([#121](https://github.com/ViktorsBaikers/DevRites/issues/121)) ([82831f2](https://github.com/ViktorsBaikers/DevRites/commit/82831f21c9556391452dbdcc4a9f68dd4d729ccf))
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
* **no-release:** treat uncompiled LSP errors as stale ([#120](https://github.com/ViktorsBaikers/DevRites/issues/120)) ([c1b0cb2](https://github.com/ViktorsBaikers/DevRites/commit/c1b0cb2fd929923f2edc00121b4d7ba8ad2c7c30))
|
|
20
|
+
|
|
5
21
|
## [6.4.5](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.4...v6.4.5) (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.6.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v6.6.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
|
|
@@ -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
|
|
|
@@ -115,6 +115,10 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
|
|
|
115
115
|
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
116
116
|
seam without the counter is malformed. At the third
|
|
117
117
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
118
|
+
Under pressure the drafter first asks whether a different mechanism removes the
|
|
119
|
+
recurring failure class (read content-addressed Git objects instead of walking a live
|
|
120
|
+
directory; a bounded parser instead of hand checks) and proposes that swap before
|
|
121
|
+
another pin; acceptance stays unchanged. Accreting checks on one seam is the loop.
|
|
118
122
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
119
123
|
already-pinned clause by folding an explicit, bounded declared
|
|
120
124
|
residual/limitation into the contract text instead of another precision
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -117,6 +117,10 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
|
|
|
117
117
|
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
118
118
|
seam without the counter is malformed. At the third
|
|
119
119
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
120
|
+
Under pressure the drafter first asks whether a different mechanism removes the
|
|
121
|
+
recurring failure class (read content-addressed Git objects instead of walking a live
|
|
122
|
+
directory; a bounded parser instead of hand checks) and proposes that swap before
|
|
123
|
+
another pin; acceptance stays unchanged. Accreting checks on one seam is the loop.
|
|
120
124
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
121
125
|
already-pinned clause by folding an explicit, bounded declared
|
|
122
126
|
residual/limitation into the contract text instead of another precision
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -117,6 +117,10 @@ Before classifying any Reslice, read `.agents/skills/devrites-lib/reference/stan
|
|
|
117
117
|
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
118
118
|
seam without the counter is malformed. At the third
|
|
119
119
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
120
|
+
Under pressure the drafter first asks whether a different mechanism removes the
|
|
121
|
+
recurring failure class (read content-addressed Git objects instead of walking a live
|
|
122
|
+
directory; a bounded parser instead of hand checks) and proposes that swap before
|
|
123
|
+
another pin; acceptance stays unchanged. Accreting checks on one seam is the loop.
|
|
120
124
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
121
125
|
already-pinned clause by folding an explicit, bounded declared
|
|
122
126
|
residual/limitation into the contract text instead of another precision
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -116,6 +116,10 @@ Before classifying any Reslice, read `.devin/skills/devrites-lib/reference/stand
|
|
|
116
116
|
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
117
117
|
seam without the counter is malformed. At the third
|
|
118
118
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
119
|
+
Under pressure the drafter first asks whether a different mechanism removes the
|
|
120
|
+
recurring failure class (read content-addressed Git objects instead of walking a live
|
|
121
|
+
directory; a bounded parser instead of hand checks) and proposes that swap before
|
|
122
|
+
another pin; acceptance stays unchanged. Accreting checks on one seam is the loop.
|
|
119
123
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
120
124
|
already-pinned clause by folding an explicit, bounded declared
|
|
121
125
|
residual/limitation into the contract text instead of another precision
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -117,6 +117,10 @@ Before classifying any Reslice, read `.omp/skills/devrites-lib/reference/standar
|
|
|
117
117
|
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
118
118
|
seam without the counter is malformed. At the third
|
|
119
119
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
120
|
+
Under pressure the drafter first asks whether a different mechanism removes the
|
|
121
|
+
recurring failure class (read content-addressed Git objects instead of walking a live
|
|
122
|
+
directory; a bounded parser instead of hand checks) and proposes that swap before
|
|
123
|
+
another pin; acceptance stays unchanged. Accreting checks on one seam is the loop.
|
|
120
124
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
121
125
|
already-pinned clause by folding an explicit, bounded declared
|
|
122
126
|
residual/limitation into the contract text instead of another precision
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -117,6 +117,10 @@ Before classifying any Reslice, read `.pi/skills/devrites-lib/reference/standard
|
|
|
117
117
|
else 1) so the threshold is counted rather than judged; a packet that reports the same
|
|
118
118
|
seam without the counter is malformed. At the third
|
|
119
119
|
same-seam packet, mark it `convergence_pressure: true` with the seam named.
|
|
120
|
+
Under pressure the drafter first asks whether a different mechanism removes the
|
|
121
|
+
recurring failure class (read content-addressed Git objects instead of walking a live
|
|
122
|
+
directory; a bounded parser instead of hand checks) and proposes that swap before
|
|
123
|
+
another pin; acceptance stays unchanged. Accreting checks on one seam is the loop.
|
|
120
124
|
Under pressure the drafter may close a finding marked as a refinement of an
|
|
121
125
|
already-pinned clause by folding an explicit, bounded declared
|
|
122
126
|
residual/limitation into the contract text instead of another precision
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.6.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
|
|