devrites 6.4.0 → 6.4.2

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 CHANGED
@@ -2,6 +2,18 @@
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.4.2](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.1...v6.4.2) (2026-10-16)
6
+
7
+ ### Changed
8
+
9
+ * **devrites:** slim slice bundles; keep verdicts out of contracts ([#116](https://github.com/ViktorsBaikers/DevRites/issues/116)) ([d4cffbe](https://github.com/ViktorsBaikers/DevRites/commit/d4cffbe8a7980ec937ce0f8040bf9df10ae90065))
10
+
11
+ ## [6.4.1](https://github.com/ViktorsBaikers/DevRites/compare/v6.4.0...v6.4.1) (2026-10-16)
12
+
13
+ ### Fixed
14
+
15
+ * **devrites:** never message a running read-only leaf ([#115](https://github.com/ViktorsBaikers/DevRites/issues/115)) ([bd0428b](https://github.com/ViktorsBaikers/DevRites/commit/bd0428bd7bdce9c604198a1f8baf809df7e863cf))
16
+
5
17
  ## [6.4.0](https://github.com/ViktorsBaikers/DevRites/compare/v6.3.0...v6.4.0) (2026-10-16)
6
18
 
7
19
  ### Added
package/README.md CHANGED
@@ -31,7 +31,7 @@ history can't lose it. After you clear the conversation, switch hosts, or hand
31
31
  the feature to another engineer, the next session reads the same plan,
32
32
  decisions, and evidence before it continues.
33
33
 
34
- **Status:** [`v6.4.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v6.4.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
34
+ **Status:** [`v6.4.2`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v6.4.2): 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
 
@@ -33,7 +33,7 @@ workflow strategy.
33
33
  | `next [slug]` | Print the minimal remaining lifecycle path plus advisory skips. |
34
34
  | `handoff [slug]` | Emit the deterministic resume record: cursor fields, `awaiting_human`, open `questions.md` gate kinds, the `gates.md` reduction with unmet/stale/abandoned ids, `decisions.md` dead ends, missing required files, and the canonical read-next order. Read-only; the `/rite-handoff` spine and the compaction-fallback entry point. |
35
35
  | `recall --paths <p1,p2,...> [--limit n]` | Read-time query over `.devrites/archive/`: list archived features whose `touched-files.md` candidate manifest covers a queried project-relative path (exact or directory prefix, case-folded), ranked by overlap count, then newest archive-directory mtime, then slug (default 10 features). Each feature prints up to 8 `archive/<slug>/<file>:<line>` pointers, then `+N more`: `decisions.md` `DEC-###` entries and `## Carry-forward constraints` bullets whose `Files:` overlap (or a constraint naming no files), plus `review.md`/`seal.md`/`drift.md` lines that mention a queried path; fenced examples are ignored. Never writes, caches, or indexes (no metric either); symlinked archive entries are refused. An unreadable archive file prints `unreadable:` and the scan continues. Exit `0` (including `recall: no archive`), `1` invalid archive directory, `2` usage. |
36
- | `context [slug] (--phase <p>\|--skill <name>) [--role <r>] [--slice <SLICE-ID>] [--trigger a,b]` | Emit one deduplicated read-set bundle per phase/role/skill from each skill's `loads:` manifest; `--skill` works without a workspace when `--out` is given. A bundle without `--role` (the root's own read) gives over-budget artifacts as by-reference indexes; a `--role` bundle leads with the role's agent contract and names the manifest's `rootOnly` paths instead of inlining them. `--slice` inlines that slice's `tasks.md` block and turns each over-budget artifact into a by-reference index (path, SHA-256, headings, line hits for every ID the block cites); repeat `--slice` for several slices; an unknown slice exits `3`. |
36
+ | `context [slug] (--phase <p>\|--skill <name>) [--role <r>] [--slice <SLICE-ID>] [--trigger a,b]` | Emit one deduplicated read-set bundle per phase/role/skill from each skill's `loads:` manifest; `--skill` works without a workspace when `--out` is given. A bundle without `--role` (the root's own read) gives over-budget artifacts as by-reference indexes; a `--role` bundle leads with the role's agent contract and names the manifest's `rootOnly` paths instead of inlining them. `--slice` inlines that slice's `tasks.md` block and turns each over-budget artifact, and each artifact over 16 KiB except `spec.md`, into a by-reference index (path, SHA-256, headings, line hits for every ID the block cites); repeat `--slice` for several slices; an unknown slice exits `3`. |
37
37
  | `dispatch <slug> <open\|start\|seal\|return\|status\|abandon>` | Launch-wave barrier for parallel dispatch: seal needs a handle per role, return needs seal; start/return auto-record metrics. A build wave with a wright role needs `--slice <SLICE-ID>` per slice, and a slice-bound vet wave takes it too; every 5 rounds of either kind on one slice, `open` exits `3` until `--reslice-review <DRIFT-ID>` names an unused `drift.md` `## <DRIFT-ID>` heading for that slice. `open` also warns when an earlier wave for the same slice never returned. |
38
38
  | `metrics record <slug> --phase <p> --event <e> [--role r] [--bytes n] [--note s]` | Append an event to the workspace's `metrics.jsonl` ledger. |
39
39
  | `metrics summary [slug] [--by-slice]` | Reduce `metrics.jsonl` into a per-phase roll-up. `--by-slice` reads `dispatch.json` instead: per slice, build wright rounds, slice-bound Vet rechecks, and agent-minutes (role start to `returned_at`; abandoned waves excluded). |
@@ -46,8 +46,9 @@ Emits one deduplicated context bundle for a phase or standalone skill
46
46
  reads a single file. With --skill, slug may be omitted; then --out is
47
47
  required and no workspace section is included. --slice scopes the
48
48
  workspace section to one slice: tasks.md contributes that slice's block,
49
- and an artifact over its line/byte budget becomes a by-reference index
50
- (path, SHA-256, headings, and line hits for every ID the block cites).
49
+ and an artifact over its line/byte budget or over 16 KiB (spec.md excepted)
50
+ becomes a by-reference index (path, SHA-256, headings, and line hits for
51
+ every ID the block cites).
51
52
  Repeat --slice for a recheck that spans several slices.
52
53
  `
53
54
 
@@ -348,9 +349,16 @@ func expandIncludes(abs string, data []byte) []byte {
348
349
  })
349
350
  }
350
351
 
352
+ // sliceInlineMaxBytes caps a workspace artifact inlined whole into a --slice
353
+ // bundle. Planning budgets size a whole feature, not one slice's read; a
354
+ // larger artifact goes by reference so the slice's agent reads only the
355
+ // sections its block cites. spec.md, the acceptance source, stays whole.
356
+ const sliceInlineMaxBytes = 16 << 10
357
+
351
358
  // writeSliceEntry writes one workspace artifact of a --slice or root bundle:
352
- // with a slice, tasks.md as the slice block plus a by-reference index; any
353
- // canonical artifact over its line/byte budget as a by-reference index;
359
+ // with a slice, tasks.md as the slice block plus a by-reference index and any
360
+ // other artifact but spec.md over sliceInlineMaxBytes as a by-reference index;
361
+ // any canonical artifact over its line/byte budget as a by-reference index;
354
362
  // everything else whole.
355
363
  func writeSliceEntry(bundle *strings.Builder, project, abs, label, slice, block string, ids []citedID, seen map[string]bool) (loaded, byRef bool) {
356
364
  if seen[abs] {
@@ -361,6 +369,8 @@ func writeSliceEntry(bundle *strings.Builder, project, abs, label, slice, block
361
369
  if err == nil && name == "tasks.md" && slice != "" {
362
370
  seen[abs] = true
363
371
  fmt.Fprintf(bundle, "===== %s (%s block) =====\n%s\n", label, slice, block)
372
+ } else if err == nil && slice != "" && name != "spec.md" && len(data) > sliceInlineMaxBytes {
373
+ seen[abs] = true
364
374
  } else if status, ok := state.ArtifactBudget(name, data); err != nil || !ok || !status.Over {
365
375
  return writeContextEntry(bundle, abs, label, seen, false), false
366
376
  } else {
@@ -83,6 +83,9 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
83
83
  ## Independence
84
84
 
85
85
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, chosen verification methods, or edited context; seeding voids the packet. Canonical workspace artifacts in the engine-generated `--role` read-set (state cursor, decisions, `strategy.md` scores, prior review records) are inputs, not seeding: a verdict they record is a historical claim the reviewer re-verifies, never this pass's conclusion. The same holds for status, readiness-checklist, or gate lines inside a read-set artifact (e.g. a `spec.md` `Status:`/`Spec gate:` line from an older workspace). Never hand-edit installed read-sets or swap them for excerpts to strip that history.
86
+ - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
+ Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
+ leaf gap it would close (e.g. "no independent runtime run") closes there.
86
89
  - **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.
87
90
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
88
91
  - 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.
@@ -95,7 +95,9 @@ live foreign session releases the retained claim and stops the dispatch, per
95
95
  [`agents.md`](../../devrites-lib/reference/standards/agents.md). `.devrites/**`
96
96
  is never a task path; see [Workflow Artifact admission](../../devrites-lib/reference/standards/workflow-artifacts.md).
97
97
  Write the exact contract, with its `Writer-safe checks:` line, to
98
- `packets/<wave>.contract.md` and hand the wright that text verbatim. Ask the host
98
+ `packets/<wave>.contract.md` and hand the wright that text verbatim. Reviewers read
99
+ that file, so it states each defect to fix with its anchor, never a reviewer's verdict,
100
+ count, or pass status ("code review is no-findings" voids the next review). Ask the host
99
101
  for the exact writer in fresh context; a repair round on the same slice whose
100
102
  returned wright the host can still continue goes to that wright on its existing
101
103
  handle instead, so it does not re-read the slice from scratch. Wait, and track it
@@ -83,6 +83,9 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
83
83
  ## Independence
84
84
 
85
85
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, chosen verification methods, or edited context; seeding voids the packet. Canonical workspace artifacts in the engine-generated `--role` read-set (state cursor, decisions, `strategy.md` scores, prior review records) are inputs, not seeding: a verdict they record is a historical claim the reviewer re-verifies, never this pass's conclusion. The same holds for status, readiness-checklist, or gate lines inside a read-set artifact (e.g. a `spec.md` `Status:`/`Spec gate:` line from an older workspace). Never hand-edit installed read-sets or swap them for excerpts to strip that history.
86
+ - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
+ Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
+ leaf gap it would close (e.g. "no independent runtime run") closes there.
86
89
  - **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.
87
90
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
88
91
  - 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.
@@ -95,7 +95,9 @@ live foreign session releases the retained claim and stops the dispatch, per
95
95
  [`agents.md`](../../devrites-lib/reference/standards/agents.md). `.devrites/**`
96
96
  is never a task path; see [Workflow Artifact admission](../../devrites-lib/reference/standards/workflow-artifacts.md).
97
97
  Write the exact contract, with its `Writer-safe checks:` line, to
98
- `packets/<wave>.contract.md` and hand the wright that text verbatim. Ask the host
98
+ `packets/<wave>.contract.md` and hand the wright that text verbatim. Reviewers read
99
+ that file, so it states each defect to fix with its anchor, never a reviewer's verdict,
100
+ count, or pass status ("code review is no-findings" voids the next review). Ask the host
99
101
  for the exact writer in fresh context; a repair round on the same slice whose
100
102
  returned wright the host can still continue goes to that wright on its existing
101
103
  handle instead, so it does not re-read the slice from scratch. Wait, and track it
@@ -83,6 +83,9 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
83
83
  ## Independence
84
84
 
85
85
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, chosen verification methods, or edited context; seeding voids the packet. Canonical workspace artifacts in the engine-generated `--role` read-set (state cursor, decisions, `strategy.md` scores, prior review records) are inputs, not seeding: a verdict they record is a historical claim the reviewer re-verifies, never this pass's conclusion. The same holds for status, readiness-checklist, or gate lines inside a read-set artifact (e.g. a `spec.md` `Status:`/`Spec gate:` line from an older workspace). Never hand-edit installed read-sets or swap them for excerpts to strip that history.
86
+ - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
+ Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
+ leaf gap it would close (e.g. "no independent runtime run") closes there.
86
89
  - **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.
87
90
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
88
91
  - 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.
@@ -95,7 +95,9 @@ live foreign session releases the retained claim and stops the dispatch, per
95
95
  [`agents.md`](../../devrites-lib/reference/standards/agents.md). `.devrites/**`
96
96
  is never a task path; see [Workflow Artifact admission](../../devrites-lib/reference/standards/workflow-artifacts.md).
97
97
  Write the exact contract, with its `Writer-safe checks:` line, to
98
- `packets/<wave>.contract.md` and hand the wright that text verbatim. Ask the host
98
+ `packets/<wave>.contract.md` and hand the wright that text verbatim. Reviewers read
99
+ that file, so it states each defect to fix with its anchor, never a reviewer's verdict,
100
+ count, or pass status ("code review is no-findings" voids the next review). Ask the host
99
101
  for the exact writer in fresh context; a repair round on the same slice whose
100
102
  returned wright the host can still continue goes to that wright on its existing
101
103
  handle instead, so it does not re-read the slice from scratch. Wait, and track it
@@ -83,6 +83,9 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
83
83
  ## Independence
84
84
 
85
85
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, chosen verification methods, or edited context; seeding voids the packet. Canonical workspace artifacts in the engine-generated `--role` read-set (state cursor, decisions, `strategy.md` scores, prior review records) are inputs, not seeding: a verdict they record is a historical claim the reviewer re-verifies, never this pass's conclusion. The same holds for status, readiness-checklist, or gate lines inside a read-set artifact (e.g. a `spec.md` `Status:`/`Spec gate:` line from an older workspace). Never hand-edit installed read-sets or swap them for excerpts to strip that history.
86
+ - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
+ Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
+ leaf gap it would close (e.g. "no independent runtime run") closes there.
86
89
  - **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.
87
90
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
88
91
  - 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.
@@ -95,7 +95,9 @@ live foreign session releases the retained claim and stops the dispatch, per
95
95
  [`agents.md`](../../devrites-lib/reference/standards/agents.md). `.devrites/**`
96
96
  is never a task path; see [Workflow Artifact admission](../../devrites-lib/reference/standards/workflow-artifacts.md).
97
97
  Write the exact contract, with its `Writer-safe checks:` line, to
98
- `packets/<wave>.contract.md` and hand the wright that text verbatim. Ask the host
98
+ `packets/<wave>.contract.md` and hand the wright that text verbatim. Reviewers read
99
+ that file, so it states each defect to fix with its anchor, never a reviewer's verdict,
100
+ count, or pass status ("code review is no-findings" voids the next review). Ask the host
99
101
  for the exact writer in fresh context; a repair round on the same slice whose
100
102
  returned wright the host can still continue goes to that wright on its existing
101
103
  handle instead, so it does not re-read the slice from scratch. Wait, and track it
@@ -83,6 +83,9 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
83
83
  ## Independence
84
84
 
85
85
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, chosen verification methods, or edited context; seeding voids the packet. Canonical workspace artifacts in the engine-generated `--role` read-set (state cursor, decisions, `strategy.md` scores, prior review records) are inputs, not seeding: a verdict they record is a historical claim the reviewer re-verifies, never this pass's conclusion. The same holds for status, readiness-checklist, or gate lines inside a read-set artifact (e.g. a `spec.md` `Status:`/`Spec gate:` line from an older workspace). Never hand-edit installed read-sets or swap them for excerpts to strip that history.
86
+ - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
+ Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
+ leaf gap it would close (e.g. "no independent runtime run") closes there.
86
89
  - **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.
87
90
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
88
91
  - 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.
@@ -95,7 +95,9 @@ live foreign session releases the retained claim and stops the dispatch, per
95
95
  [`agents.md`](skill://devrites-lib/reference/standards/agents.md). `.devrites/**`
96
96
  is never a task path; see [Workflow Artifact admission](skill://devrites-lib/reference/standards/workflow-artifacts.md).
97
97
  Write the exact contract, with its `Writer-safe checks:` line, to
98
- `packets/<wave>.contract.md` and hand the wright that text verbatim. Ask the host
98
+ `packets/<wave>.contract.md` and hand the wright that text verbatim. Reviewers read
99
+ that file, so it states each defect to fix with its anchor, never a reviewer's verdict,
100
+ count, or pass status ("code review is no-findings" voids the next review). Ask the host
99
101
  for the exact writer in fresh context; a repair round on the same slice whose
100
102
  returned wright the host can still continue goes to that wright on its existing
101
103
  handle instead, so it does not re-read the slice from scratch. Wait, and track it
@@ -83,6 +83,9 @@ session B's `claim check` passes at minute 35 over session A's still-running wri
83
83
  ## Independence
84
84
 
85
85
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, chosen verification methods, or edited context; seeding voids the packet. Canonical workspace artifacts in the engine-generated `--role` read-set (state cursor, decisions, `strategy.md` scores, prior review records) are inputs, not seeding: a verdict they record is a historical claim the reviewer re-verifies, never this pass's conclusion. The same holds for status, readiness-checklist, or gate lines inside a read-set artifact (e.g. a `spec.md` `Status:`/`Spec gate:` line from an older workspace). Never hand-edit installed read-sets or swap them for excerpts to strip that history.
86
+ - Never message a running read-only leaf: a mid-run note voids it like a seeded packet.
87
+ Root proof that lands after dispatch is weighed at reconciliation, not forwarded; a
88
+ leaf gap it would close (e.g. "no independent runtime run") closes there.
86
89
  - **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.
87
90
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
88
91
  - 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.
@@ -95,7 +95,9 @@ live foreign session releases the retained claim and stops the dispatch, per
95
95
  [`agents.md`](../../devrites-lib/reference/standards/agents.md). `.devrites/**`
96
96
  is never a task path; see [Workflow Artifact admission](../../devrites-lib/reference/standards/workflow-artifacts.md).
97
97
  Write the exact contract, with its `Writer-safe checks:` line, to
98
- `packets/<wave>.contract.md` and hand the wright that text verbatim. Ask the host
98
+ `packets/<wave>.contract.md` and hand the wright that text verbatim. Reviewers read
99
+ that file, so it states each defect to fix with its anchor, never a reviewer's verdict,
100
+ count, or pass status ("code review is no-findings" voids the next review). Ask the host
99
101
  for the exact writer in fresh context; a repair round on the same slice whose
100
102
  returned wright the host can still continue goes to that wright on its existing
101
103
  handle instead, so it does not re-read the slice from scratch. Wait, and track it
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "6.4.0",
3
+ "version": "6.4.2",
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",