devrites 5.3.0 → 5.4.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 +6 -0
- package/README.md +1 -1
- package/pack/.claude/skills/rite-build/SKILL.md +4 -2
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +22 -10
- package/pack/generated/claude/skills/rite-build/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +22 -10
- package/pack/generated/codex/skills/rite-build/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +22 -10
- package/pack/generated/omp/skills/rite-build/SKILL.md +4 -2
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +22 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
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
|
+
## [5.4.0](https://github.com/ViktorsBaikers/DevRites/compare/v5.3.0...v5.4.0) (2026-09-13)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* **rite:** auto re-batch on frozen-lease scope defect ([#67](https://github.com/ViktorsBaikers/DevRites/issues/67)) ([6728385](https://github.com/ViktorsBaikers/DevRites/commit/6728385b522a5b34bebacb89a5855e81d54c0f68))
|
|
10
|
+
|
|
5
11
|
## [5.3.0](https://github.com/ViktorsBaikers/DevRites/compare/v5.2.4...v5.3.0) (2026-09-13)
|
|
6
12
|
|
|
7
13
|
### Added
|
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
|
|
|
33
33
|
Unattended runs may create local WIP checkpoint commits along the way, but they
|
|
34
34
|
remain local unless Ship's disclosed plan includes an approved remote action.
|
|
35
35
|
|
|
36
|
-
**Status:** [`v5.
|
|
36
|
+
**Status:** [`v5.4.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v5.4.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
37
37
|
|
|
38
38
|
This is the latest published release; `main` may contain unreleased work.
|
|
39
39
|
|
|
@@ -62,8 +62,10 @@ All-green serial integrate; a red/gap sibling gets a bounded repair round in
|
|
|
62
62
|
its own worktree — never rebuilt from scratch while budget remains.
|
|
63
63
|
Plan-owned gaps still route through Spec Drift Guard (batch sweep, one folded
|
|
64
64
|
plan repair + one vet recheck inline); do not emit a human `Fix`. Exhausted
|
|
65
|
-
repair blocks and preserves everything; `cleanup --force`
|
|
66
|
-
|
|
65
|
+
repair blocks and preserves everything; `cleanup --force` salvages slice
|
|
66
|
+
branches before removing worktrees — human-gated to abandon a batch,
|
|
67
|
+
orchestrator-emitted only as the salvage step of an automatic frozen-lease
|
|
68
|
+
re-batch.
|
|
67
69
|
AFK charges after integrate only. Running lease blocks another
|
|
68
70
|
`/rite-build`. Details: `parallel-batch.md`.
|
|
69
71
|
|
|
@@ -59,12 +59,13 @@ Lease: `batch_id`, `created_at`, `base_sha`, `n`,
|
|
|
59
59
|
landed in control, so `parallel cleanup` removes worktrees/branches.
|
|
60
60
|
Blocked/human-stopped batches keep lease, worktrees, branches — nothing is
|
|
61
61
|
removed while the batch may resume. `parallel abort` + `cleanup --force`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
abandons the batch — the explicit human discard path; the single
|
|
63
|
+
orchestrator-emitted use is the automatic re-batch under Repair rounds,
|
|
64
|
+
where it acts as the salvage step only (uncommitted allowlisted changes →
|
|
65
|
+
slice-branch commit; branches past `B` kept; a failed salvage keeps the
|
|
66
|
+
worktree) and prints retained refs for the record. `abort` marks the lease
|
|
67
|
+
only — never rewinds control: a moved HEAD is external work, reported not
|
|
68
|
+
reset. Never integrate a rejected transfer commit.
|
|
68
69
|
|
|
69
70
|
## Repair rounds
|
|
70
71
|
|
|
@@ -79,9 +80,19 @@ while budget remains.
|
|
|
79
80
|
[`spec-drift-guard.md`](spec-drift-guard.md): batch-sweep contract
|
|
80
81
|
assumptions, one folded `/rite-plan repair` + one `/rite-vet` recheck
|
|
81
82
|
inline, resume repair in the same worktrees under the amended contract;
|
|
82
|
-
never emit `Fix:`. **
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
never emit `Fix:`. **Frozen-lease scope defect** — the amended contract or
|
|
84
|
+
a review requirement needs paths outside a slice's allowlist, or re-slices
|
|
85
|
+
the plan (a lease is immutable once written: its allowlists are the
|
|
86
|
+
disjointness guarantee) → **automatic re-batch, no human gate**:
|
|
87
|
+
`parallel cleanup --force` as the salvage step, record the retained refs in
|
|
88
|
+
the repair-round artifact, `parallel create` a fresh batch from control
|
|
89
|
+
`HEAD` under the corrected decomposition. Prior attempts stay reachable —
|
|
90
|
+
hand each new wright the salvaged branch ref
|
|
91
|
+
(`devrites/parallel/<slug>/<old-batch>/<slice>`) so it builds on what worked
|
|
92
|
+
instead of starting blind. If no corrected decomposition exists, that is
|
|
93
|
+
exhaustion → blocked, preserve, STOP. **Reviewer stall/cancel or missing
|
|
94
|
+
verdict** → re-dispatch the reviewer, not the wright. **Product/policy/
|
|
95
|
+
irreversible** → stops for the human.
|
|
85
96
|
- Dispatch a fresh `devrites-slice-wright` (cwd = the sibling's worktree, same
|
|
86
97
|
allowlist and host rules as step 3 — siblings may repair in parallel) with
|
|
87
98
|
the original contract + verbatim findings + "preserve what works; fix the
|
|
@@ -107,7 +118,8 @@ devrites-engine parallel record-green --root <repo> --slug <slug> --slice <id> -
|
|
|
107
118
|
devrites-engine parallel integrate --root <repo> --slug <slug> --apply-to-control
|
|
108
119
|
devrites-engine parallel status --root <repo> --slug <slug>
|
|
109
120
|
devrites-engine parallel lease-write|lease-read|lease-clear --root <repo> --slug <slug>
|
|
110
|
-
# human discard only
|
|
121
|
+
# abandoning the batch is human discard only; a frozen-lease re-batch may emit
|
|
122
|
+
# cleanup --force as its salvage step (see Repair rounds):
|
|
111
123
|
# parallel abort --root <repo> --slug <slug>
|
|
112
124
|
# parallel cleanup --root <repo> --slug <slug> --force (salvages, prints retained refs)
|
|
113
125
|
```
|
|
@@ -62,8 +62,10 @@ All-green serial integrate; a red/gap sibling gets a bounded repair round in
|
|
|
62
62
|
its own worktree — never rebuilt from scratch while budget remains.
|
|
63
63
|
Plan-owned gaps still route through Spec Drift Guard (batch sweep, one folded
|
|
64
64
|
plan repair + one vet recheck inline); do not emit a human `Fix`. Exhausted
|
|
65
|
-
repair blocks and preserves everything; `cleanup --force`
|
|
66
|
-
|
|
65
|
+
repair blocks and preserves everything; `cleanup --force` salvages slice
|
|
66
|
+
branches before removing worktrees — human-gated to abandon a batch,
|
|
67
|
+
orchestrator-emitted only as the salvage step of an automatic frozen-lease
|
|
68
|
+
re-batch.
|
|
67
69
|
AFK charges after integrate only. Running lease blocks another
|
|
68
70
|
`/rite-build`. Details: `parallel-batch.md`.
|
|
69
71
|
|
|
@@ -59,12 +59,13 @@ Lease: `batch_id`, `created_at`, `base_sha`, `n`,
|
|
|
59
59
|
landed in control, so `parallel cleanup` removes worktrees/branches.
|
|
60
60
|
Blocked/human-stopped batches keep lease, worktrees, branches — nothing is
|
|
61
61
|
removed while the batch may resume. `parallel abort` + `cleanup --force`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
abandons the batch — the explicit human discard path; the single
|
|
63
|
+
orchestrator-emitted use is the automatic re-batch under Repair rounds,
|
|
64
|
+
where it acts as the salvage step only (uncommitted allowlisted changes →
|
|
65
|
+
slice-branch commit; branches past `B` kept; a failed salvage keeps the
|
|
66
|
+
worktree) and prints retained refs for the record. `abort` marks the lease
|
|
67
|
+
only — never rewinds control: a moved HEAD is external work, reported not
|
|
68
|
+
reset. Never integrate a rejected transfer commit.
|
|
68
69
|
|
|
69
70
|
## Repair rounds
|
|
70
71
|
|
|
@@ -79,9 +80,19 @@ while budget remains.
|
|
|
79
80
|
[`spec-drift-guard.md`](spec-drift-guard.md): batch-sweep contract
|
|
80
81
|
assumptions, one folded `/rite-plan repair` + one `/rite-vet` recheck
|
|
81
82
|
inline, resume repair in the same worktrees under the amended contract;
|
|
82
|
-
never emit `Fix:`. **
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
never emit `Fix:`. **Frozen-lease scope defect** — the amended contract or
|
|
84
|
+
a review requirement needs paths outside a slice's allowlist, or re-slices
|
|
85
|
+
the plan (a lease is immutable once written: its allowlists are the
|
|
86
|
+
disjointness guarantee) → **automatic re-batch, no human gate**:
|
|
87
|
+
`parallel cleanup --force` as the salvage step, record the retained refs in
|
|
88
|
+
the repair-round artifact, `parallel create` a fresh batch from control
|
|
89
|
+
`HEAD` under the corrected decomposition. Prior attempts stay reachable —
|
|
90
|
+
hand each new wright the salvaged branch ref
|
|
91
|
+
(`devrites/parallel/<slug>/<old-batch>/<slice>`) so it builds on what worked
|
|
92
|
+
instead of starting blind. If no corrected decomposition exists, that is
|
|
93
|
+
exhaustion → blocked, preserve, STOP. **Reviewer stall/cancel or missing
|
|
94
|
+
verdict** → re-dispatch the reviewer, not the wright. **Product/policy/
|
|
95
|
+
irreversible** → stops for the human.
|
|
85
96
|
- Dispatch a fresh `devrites-slice-wright` (cwd = the sibling's worktree, same
|
|
86
97
|
allowlist and host rules as step 3 — siblings may repair in parallel) with
|
|
87
98
|
the original contract + verbatim findings + "preserve what works; fix the
|
|
@@ -107,7 +118,8 @@ devrites-engine parallel record-green --root <repo> --slug <slug> --slice <id> -
|
|
|
107
118
|
devrites-engine parallel integrate --root <repo> --slug <slug> --apply-to-control
|
|
108
119
|
devrites-engine parallel status --root <repo> --slug <slug>
|
|
109
120
|
devrites-engine parallel lease-write|lease-read|lease-clear --root <repo> --slug <slug>
|
|
110
|
-
# human discard only
|
|
121
|
+
# abandoning the batch is human discard only; a frozen-lease re-batch may emit
|
|
122
|
+
# cleanup --force as its salvage step (see Repair rounds):
|
|
111
123
|
# parallel abort --root <repo> --slug <slug>
|
|
112
124
|
# parallel cleanup --root <repo> --slug <slug> --force (salvages, prints retained refs)
|
|
113
125
|
```
|
|
@@ -62,8 +62,10 @@ All-green serial integrate; a red/gap sibling gets a bounded repair round in
|
|
|
62
62
|
its own worktree — never rebuilt from scratch while budget remains.
|
|
63
63
|
Plan-owned gaps still route through Spec Drift Guard (batch sweep, one folded
|
|
64
64
|
plan repair + one vet recheck inline); do not emit a human `Fix`. Exhausted
|
|
65
|
-
repair blocks and preserves everything; `cleanup --force`
|
|
66
|
-
|
|
65
|
+
repair blocks and preserves everything; `cleanup --force` salvages slice
|
|
66
|
+
branches before removing worktrees — human-gated to abandon a batch,
|
|
67
|
+
orchestrator-emitted only as the salvage step of an automatic frozen-lease
|
|
68
|
+
re-batch.
|
|
67
69
|
AFK charges after integrate only. Running lease blocks another
|
|
68
70
|
`$rite-build`. Details: `parallel-batch.md`.
|
|
69
71
|
|
|
@@ -59,12 +59,13 @@ Lease: `batch_id`, `created_at`, `base_sha`, `n`,
|
|
|
59
59
|
landed in control, so `parallel cleanup` removes worktrees/branches.
|
|
60
60
|
Blocked/human-stopped batches keep lease, worktrees, branches — nothing is
|
|
61
61
|
removed while the batch may resume. `parallel abort` + `cleanup --force`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
abandons the batch — the explicit human discard path; the single
|
|
63
|
+
orchestrator-emitted use is the automatic re-batch under Repair rounds,
|
|
64
|
+
where it acts as the salvage step only (uncommitted allowlisted changes →
|
|
65
|
+
slice-branch commit; branches past `B` kept; a failed salvage keeps the
|
|
66
|
+
worktree) and prints retained refs for the record. `abort` marks the lease
|
|
67
|
+
only — never rewinds control: a moved HEAD is external work, reported not
|
|
68
|
+
reset. Never integrate a rejected transfer commit.
|
|
68
69
|
|
|
69
70
|
## Repair rounds
|
|
70
71
|
|
|
@@ -79,9 +80,19 @@ while budget remains.
|
|
|
79
80
|
[`spec-drift-guard.md`](spec-drift-guard.md): batch-sweep contract
|
|
80
81
|
assumptions, one folded `$rite-plan repair` + one `$rite-vet` recheck
|
|
81
82
|
inline, resume repair in the same worktrees under the amended contract;
|
|
82
|
-
never emit `Fix:`. **
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
never emit `Fix:`. **Frozen-lease scope defect** — the amended contract or
|
|
84
|
+
a review requirement needs paths outside a slice's allowlist, or re-slices
|
|
85
|
+
the plan (a lease is immutable once written: its allowlists are the
|
|
86
|
+
disjointness guarantee) → **automatic re-batch, no human gate**:
|
|
87
|
+
`parallel cleanup --force` as the salvage step, record the retained refs in
|
|
88
|
+
the repair-round artifact, `parallel create` a fresh batch from control
|
|
89
|
+
`HEAD` under the corrected decomposition. Prior attempts stay reachable —
|
|
90
|
+
hand each new wright the salvaged branch ref
|
|
91
|
+
(`devrites/parallel/<slug>/<old-batch>/<slice>`) so it builds on what worked
|
|
92
|
+
instead of starting blind. If no corrected decomposition exists, that is
|
|
93
|
+
exhaustion → blocked, preserve, STOP. **Reviewer stall/cancel or missing
|
|
94
|
+
verdict** → re-dispatch the reviewer, not the wright. **Product/policy/
|
|
95
|
+
irreversible** → stops for the human.
|
|
85
96
|
- Dispatch a fresh `devrites-slice-wright` (cwd = the sibling's worktree, same
|
|
86
97
|
allowlist and host rules as step 3 — siblings may repair in parallel) with
|
|
87
98
|
the original contract + verbatim findings + "preserve what works; fix the
|
|
@@ -107,7 +118,8 @@ devrites-engine parallel record-green --root <repo> --slug <slug> --slice <id> -
|
|
|
107
118
|
devrites-engine parallel integrate --root <repo> --slug <slug> --apply-to-control
|
|
108
119
|
devrites-engine parallel status --root <repo> --slug <slug>
|
|
109
120
|
devrites-engine parallel lease-write|lease-read|lease-clear --root <repo> --slug <slug>
|
|
110
|
-
# human discard only
|
|
121
|
+
# abandoning the batch is human discard only; a frozen-lease re-batch may emit
|
|
122
|
+
# cleanup --force as its salvage step (see Repair rounds):
|
|
111
123
|
# parallel abort --root <repo> --slug <slug>
|
|
112
124
|
# parallel cleanup --root <repo> --slug <slug> --force (salvages, prints retained refs)
|
|
113
125
|
```
|
|
@@ -62,8 +62,10 @@ All-green serial integrate; a red/gap sibling gets a bounded repair round in
|
|
|
62
62
|
its own worktree — never rebuilt from scratch while budget remains.
|
|
63
63
|
Plan-owned gaps still route through Spec Drift Guard (batch sweep, one folded
|
|
64
64
|
plan repair + one vet recheck inline); do not emit a human `Fix`. Exhausted
|
|
65
|
-
repair blocks and preserves everything; `cleanup --force`
|
|
66
|
-
|
|
65
|
+
repair blocks and preserves everything; `cleanup --force` salvages slice
|
|
66
|
+
branches before removing worktrees — human-gated to abandon a batch,
|
|
67
|
+
orchestrator-emitted only as the salvage step of an automatic frozen-lease
|
|
68
|
+
re-batch.
|
|
67
69
|
AFK charges after integrate only. Running lease blocks another
|
|
68
70
|
`/rite-build`. Details: `parallel-batch.md`.
|
|
69
71
|
|
|
@@ -59,12 +59,13 @@ Lease: `batch_id`, `created_at`, `base_sha`, `n`,
|
|
|
59
59
|
landed in control, so `parallel cleanup` removes worktrees/branches.
|
|
60
60
|
Blocked/human-stopped batches keep lease, worktrees, branches — nothing is
|
|
61
61
|
removed while the batch may resume. `parallel abort` + `cleanup --force`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
abandons the batch — the explicit human discard path; the single
|
|
63
|
+
orchestrator-emitted use is the automatic re-batch under Repair rounds,
|
|
64
|
+
where it acts as the salvage step only (uncommitted allowlisted changes →
|
|
65
|
+
slice-branch commit; branches past `B` kept; a failed salvage keeps the
|
|
66
|
+
worktree) and prints retained refs for the record. `abort` marks the lease
|
|
67
|
+
only — never rewinds control: a moved HEAD is external work, reported not
|
|
68
|
+
reset. Never integrate a rejected transfer commit.
|
|
68
69
|
|
|
69
70
|
## Repair rounds
|
|
70
71
|
|
|
@@ -79,9 +80,19 @@ while budget remains.
|
|
|
79
80
|
[`spec-drift-guard.md`](spec-drift-guard.md): batch-sweep contract
|
|
80
81
|
assumptions, one folded `/rite-plan repair` + one `/rite-vet` recheck
|
|
81
82
|
inline, resume repair in the same worktrees under the amended contract;
|
|
82
|
-
never emit `Fix:`. **
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
never emit `Fix:`. **Frozen-lease scope defect** — the amended contract or
|
|
84
|
+
a review requirement needs paths outside a slice's allowlist, or re-slices
|
|
85
|
+
the plan (a lease is immutable once written: its allowlists are the
|
|
86
|
+
disjointness guarantee) → **automatic re-batch, no human gate**:
|
|
87
|
+
`parallel cleanup --force` as the salvage step, record the retained refs in
|
|
88
|
+
the repair-round artifact, `parallel create` a fresh batch from control
|
|
89
|
+
`HEAD` under the corrected decomposition. Prior attempts stay reachable —
|
|
90
|
+
hand each new wright the salvaged branch ref
|
|
91
|
+
(`devrites/parallel/<slug>/<old-batch>/<slice>`) so it builds on what worked
|
|
92
|
+
instead of starting blind. If no corrected decomposition exists, that is
|
|
93
|
+
exhaustion → blocked, preserve, STOP. **Reviewer stall/cancel or missing
|
|
94
|
+
verdict** → re-dispatch the reviewer, not the wright. **Product/policy/
|
|
95
|
+
irreversible** → stops for the human.
|
|
85
96
|
- Dispatch a fresh `devrites-slice-wright` (cwd = the sibling's worktree, same
|
|
86
97
|
allowlist and host rules as step 3 — siblings may repair in parallel) with
|
|
87
98
|
the original contract + verbatim findings + "preserve what works; fix the
|
|
@@ -107,7 +118,8 @@ devrites-engine parallel record-green --root <repo> --slug <slug> --slice <id> -
|
|
|
107
118
|
devrites-engine parallel integrate --root <repo> --slug <slug> --apply-to-control
|
|
108
119
|
devrites-engine parallel status --root <repo> --slug <slug>
|
|
109
120
|
devrites-engine parallel lease-write|lease-read|lease-clear --root <repo> --slug <slug>
|
|
110
|
-
# human discard only
|
|
121
|
+
# abandoning the batch is human discard only; a frozen-lease re-batch may emit
|
|
122
|
+
# cleanup --force as its salvage step (see Repair rounds):
|
|
111
123
|
# parallel abort --root <repo> --slug <slug>
|
|
112
124
|
# parallel cleanup --root <repo> --slug <slug> --force (salvages, prints retained refs)
|
|
113
125
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code and Codex",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|