devrites 7.2.6 → 7.2.7
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/SECURITY.md +11 -7
- package/docs/engine/commands.md +3 -3
- package/engine/internal/lib/context.go +7 -4
- package/engine/internal/lib/dispatch.go +77 -21
- package/engine/internal/lib/taskgraph.go +94 -21
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/.claude/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/.claude/skills/rite-spec/SKILL.md +2 -2
- package/pack/.claude/skills/rite-temper/SKILL.md +4 -5
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/generated/claude/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/generated/claude/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/claude/skills/rite-temper/SKILL.md +4 -5
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/generated/codex/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/generated/codex/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/codex/skills/rite-temper/SKILL.md +4 -5
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/generated/devin/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/generated/devin/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/generated/devin/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/devin/skills/rite-temper/SKILL.md +4 -5
- package/pack/generated/dsh/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/generated/dsh/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/generated/dsh/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/generated/dsh/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/generated/dsh/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/generated/dsh/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/generated/dsh/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/dsh/skills/rite-temper/SKILL.md +4 -5
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/generated/omp/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/omp/skills/rite-temper/SKILL.md +4 -5
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +3 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +3 -6
- package/pack/generated/pi/skills/devrites-lib/reference/standards/principles.md +5 -6
- package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +3 -1
- package/pack/generated/pi/skills/rite-autocomplete/reference/lookahead.md +18 -35
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +7 -8
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +23 -13
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +5 -5
- package/pack/generated/pi/skills/rite-spec/SKILL.md +2 -2
- package/pack/generated/pi/skills/rite-temper/SKILL.md +4 -5
- package/package.json +3 -3
|
@@ -61,14 +61,13 @@ Without a safe seam, escalate or park; only a real human/risk/scope gate stops f
|
|
|
61
61
|
## Other stop classes
|
|
62
62
|
|
|
63
63
|
- **Gate severity:** escalating always stops. Blocking with a ranked recommended
|
|
64
|
-
option (`proposed` or option 1 labelled Recommended)
|
|
65
|
-
`devrites-engine state resolve
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
(`slice: seal`), which only a human answers; it stops.
|
|
64
|
+
option (`proposed` or option 1 labelled Recommended) auto-picks via
|
|
65
|
+
`devrites-engine state resolve` and continues, Spec Drift Guard included when
|
|
66
|
+
the answer changes ownership or acceptance. Added acceptance or scope is never
|
|
67
|
+
auto-picked. No recommended option still stops. An avoidable principle conflict
|
|
68
|
+
complies: change the spec and resolve it. Re-read on entry. `continuation: clear`
|
|
69
|
+
with `awaiting_human` still folds resolved decisions. Do not report a stop from chat.
|
|
70
|
+
Validating auto-picks, except Seal `slice: seal`, which a human answers.
|
|
72
71
|
- **Temper:** `expand` and extra acceptance stop: ask through `AskUserQuestion`, hold the
|
|
73
72
|
fold, and continue only after a human resolves the qid (an ADR is not that answer).
|
|
74
73
|
Irreversible-risk still pauses. `hold-rigor`, `reduce-to-MVP`, and a skip do not pause.
|
|
@@ -27,16 +27,21 @@ N_eff = min(
|
|
|
27
27
|
cap -- this invocation's --parallel N (wins over leftover sentinel max_parallel)
|
|
28
28
|
| else sentinel max_parallel | else 10 (autocomplete default)
|
|
29
29
|
eligible set -- dependency-satisfied pending slices, pairwise path-disjoint
|
|
30
|
-
AFK headroom --
|
|
30
|
+
AFK headroom -- outside /rite-autocomplete only (max_slices, max_agents,
|
|
31
|
+
max_minutes, review queue). Autocomplete ignores those;
|
|
32
|
+
do not shrink this batch for them
|
|
31
33
|
host capacity -- concurrent worktree writers + the runtime isolation table
|
|
32
34
|
)
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
Select **greedily in plan order** with
|
|
36
38
|
`devrites-engine parallel select --slug <slug> --cap N --from-plan`: ready set
|
|
37
|
-
(dependencies
|
|
39
|
+
(dependencies built — state.md checkbox, or an evidence.md heading that says that slice was checkpointed plus a `Checkpoint: <sha>` line — minus running-lease slices), Writer allowlist
|
|
38
40
|
(else Files likely touched), plus manifest/lockfile when `External dependencies:`
|
|
39
|
-
names a package (
|
|
41
|
+
names a package (module path, npm scope, backticked name, or a non-toolchain version).
|
|
42
|
+
`context --phase build` with no `--slice` stays on `active_slice` unless AFK
|
|
43
|
+
`max_parallel` is at least 2 or a lease is running; a HITL `--parallel N` run
|
|
44
|
+
passes `--whole` so the other slices stay visible.
|
|
40
45
|
`next` prints `eligible_now:`/`batch:`. `n_eff` counts new picks only.
|
|
41
46
|
With a running lease, a single new pick still uses `parallel add`;
|
|
42
47
|
`n_eff=0` with a running lease waits for siblings, not Prove. Without one:
|
|
@@ -76,10 +81,11 @@ snapshot directory, formatter sweep — and compare paths case-folded
|
|
|
76
81
|
(`src/Api.ts` = `src/api.ts`); `--from-plan` adds the manifest/lockfile for a package.
|
|
77
82
|
Slices colliding on either run serially; the rest
|
|
78
83
|
stay eligible. Record `serial: <ids> — <surface>` in `evidence.md`. Under AFK
|
|
79
|
-
with `max_parallel ≥ 2`, `dispatch open` refuses a
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
with `max_parallel ≥ 2`, `dispatch open` refuses a build wright wave narrower
|
|
85
|
+
than the from-plan batch until that wave holds the other picks or `serial:`
|
|
86
|
+
names each skipped one. Repairing a slice, or a slice already in the lease,
|
|
87
|
+
does not waive them. A `serial:` reason that only says the skipped slice is
|
|
88
|
+
repairing, already started, or in a wave does not count. HITL is never refused. **Failing
|
|
83
89
|
case:** two slices each add a dependency, run in parallel, and integrate fails or
|
|
84
90
|
lands a broken lockfile.
|
|
85
91
|
|
|
@@ -106,8 +112,11 @@ Lease: `batch_id`, `created_at`, `base_sha`, `n`,
|
|
|
106
112
|
`pre-dispatch <id>` preflight row; a malformed contract or non-zero
|
|
107
113
|
precondition is dropped from the batch and recorded as a gap, not dispatched.
|
|
108
114
|
2. Write lease; freeze `B=HEAD`; `parallel create` worktrees.
|
|
109
|
-
3. Dispatch ≤10 wrights in parallel (cwd=worktree; allowlist; prove `HEAD==B
|
|
110
|
-
one
|
|
115
|
+
3. Dispatch ≤10 wrights in parallel (cwd=worktree; allowlist; prove `HEAD==B`).
|
|
116
|
+
One wave, one role per sibling: `--role slice-wright.<SLICE-ID> --slice <SLICE-ID>`
|
|
117
|
+
for each. `start` every role before waiting on any. One shared `slice-wright`
|
|
118
|
+
role is refused: it has one handle, so the other slices never start.
|
|
119
|
+
A linked worktree has no `.devrites`:
|
|
111
120
|
tell each wright to run `gates precheck` with `DEVRITES_ROOT=<control>/.devrites`.
|
|
112
121
|
4. Inspect each returned path list, cumulative diff from `B`, transfer identity,
|
|
113
122
|
and required result fields against the immutable contract. Reject malformed,
|
|
@@ -122,10 +131,11 @@ Lease: `batch_id`, `created_at`, `base_sha`, `n`,
|
|
|
122
131
|
A recheck round is one dispatch per changed surface, not one per checklist: the
|
|
123
132
|
recheck agent carries every open checklist (code, test, doubt) for that diff and
|
|
124
133
|
answers each by name. Merging cuts dispatches; dropping a checklist does not.
|
|
125
|
-
Reviewer fan-out
|
|
126
|
-
|
|
127
|
-
(
|
|
128
|
-
|
|
134
|
+
Reviewer fan-out does not shrink the writer batch. Reviewers queue at the
|
|
135
|
+
same cap as writers (10; see
|
|
136
|
+
[`parallel-dispatch.md`](../../devrites-lib/reference/parallel-dispatch.md#scale-limits)).
|
|
137
|
+
`max_agents` does not shrink it under autocomplete. Past that cap, queue a
|
|
138
|
+
second pass — a batch never assumes unbounded reviewers.
|
|
129
139
|
5. Non-green siblings → **repair round** (below) in the same worktrees; lease
|
|
130
140
|
stays `running` — no abort while repair budget remains. A green sibling →
|
|
131
141
|
`parallel record-green`, then step 6 for it alone.
|
|
@@ -129,11 +129,11 @@ open findings move to the new slice owning their paths), or record
|
|
|
129
129
|
`## <DRIFT-ID> — <SLICE-ID> reslice review` with why no smaller split exists and
|
|
130
130
|
a spec trace of the slice's obligations (hardening no AC/INV/PROH requires moves to
|
|
131
131
|
a sibling slice dependents do not need, still gated before Seal), and
|
|
132
|
-
reopen with `--reslice-review <DRIFT-ID>`.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
[`parallel-batch.md`](parallel-batch.md).
|
|
132
|
+
reopen with `--reslice-review <DRIFT-ID>`. Same-worktree stays one writer.
|
|
133
|
+
Never run two writers in one worktree, mix isolated and same-worktree writers,
|
|
134
|
+
or substitute a generic agent. Opt-in `/rite-build --parallel N` is the
|
|
135
|
+
exception: one wright per worktree, each its own `slice-wright.<SLICE-ID>` role
|
|
136
|
+
on one wave ([`parallel-batch.md`](parallel-batch.md)).
|
|
137
137
|
|
|
138
138
|
The `return` that completes the wave releases its claim; `dispatch abandon --release`
|
|
139
139
|
releases it on any other host-confirmed terminal path (a stop, a launch refused with no
|
|
@@ -117,8 +117,8 @@ load a routed standard to discover required behavior, not to prescribe implement
|
|
|
117
117
|
and [`interview-patterns.md`](reference/interview-patterns.md) for a vague ask. Every
|
|
118
118
|
material dimension is resolved by a human pick or explicitly deferred as non-blocking;
|
|
119
119
|
only genuinely reversible, low-impact details go to `assumptions.md`. A paper-only
|
|
120
|
-
uncertainty may take one scoped `/rite-prototype` detour. A
|
|
121
|
-
|
|
120
|
+
uncertainty may take one scoped `/rite-prototype` detour. A principle conflict
|
|
121
|
+
complies by changing the spec. Only an unavoidable violation blocks for a human.
|
|
122
122
|
4a. **Build-interruption forecast.** Search first, then list and close foreseeable human needs:
|
|
123
123
|
product/acceptance ambiguity, irreversible/external approval, or human-only access. Record
|
|
124
124
|
owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
|
|
@@ -123,12 +123,11 @@ the spec applicability map triggers that risk family.
|
|
|
123
123
|
[`devrites-strategy-reviewer`](../../agents/devrites-strategy-reviewer.md)
|
|
124
124
|
through the native fresh-context contract in
|
|
125
125
|
[`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** its `--role strategy-reviewer` read-set
|
|
126
|
-
(hardened spec, `strategy.md`, claim-check artifacts) + rubric, no authoring reasoning. Fold
|
|
127
|
-
exact strategy reviewer rechecks open findings and affected coverage/regressions under
|
|
126
|
+
(hardened spec, `strategy.md`, claim-check artifacts) + rubric, no authoring reasoning. Fold findings once and recheck them under
|
|
128
127
|
[the canonical retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
|
|
129
|
-
Product/scope
|
|
130
|
-
|
|
131
|
-
If the named agent is unavailable, stop for HITL. After an accepted edit to a
|
|
128
|
+
Product/scope and unapproved irreversible risk stay human gates;
|
|
129
|
+
exhaustion keeps the blocker.
|
|
130
|
+
If the named agent is unavailable, stop for HITL. Except `sequence_lookahead: yes` and no spawn tool: record the review pending, stay `running`, continue Define. Not access. After an accepted edit to a
|
|
132
131
|
coverage-bound input, repeat step 6's native coverage revalidation before handoff.
|
|
133
132
|
8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `/rite-define`.
|
|
134
133
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.7",
|
|
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",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"release:dry": "semantic-release --dry-run --no-ci"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@commitlint/cli": "^21.2.
|
|
79
|
+
"@commitlint/cli": "^21.2.4",
|
|
80
80
|
"@commitlint/config-conventional": "^21.2.3",
|
|
81
81
|
"@semantic-release/changelog": "^7.0.0",
|
|
82
82
|
"@semantic-release/commit-analyzer": "14.0.0-beta.4",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"@semantic-release/git": "^11.0.1",
|
|
85
85
|
"@semantic-release/npm": "^13.2.0",
|
|
86
86
|
"@semantic-release/release-notes-generator": "15.0.0-beta.3",
|
|
87
|
-
"conventional-changelog-conventionalcommits": "^10.4.
|
|
87
|
+
"conventional-changelog-conventionalcommits": "^10.4.1",
|
|
88
88
|
"husky": "^9.1.7",
|
|
89
89
|
"semantic-release": "^25.0.9"
|
|
90
90
|
},
|