Skip to content

docs(zavet): plain-prose pass on the knowledge layer - #129

Merged
azlekov merged 3 commits into
developfrom
prose/zavet-unslop
Aug 23, 2026
Merged

docs(zavet): plain-prose pass on the knowledge layer#129
azlekov merged 3 commits into
developfrom
prose/zavet-unslop

Conversation

@azlekov

@azlekov azlekov commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

What changed

Reword only, no meaning change, across 32 decisions, 8 specs and RULES.md.

Em dashes: 438 to 4. Every one left is protected: spec title: frontmatter, one inside a fenced Rust block, and glossary.md's **term** — meaning field separator.

D-0010 also used -- (ASCII double hyphen) as a dash substitute throughout, with lines running to 104 characters. That is the same tell wearing different punctuation, so it went too and the file was rewrapped.

Two things deliberately left alone

The id prefix split. Records 1 to 21 keep the bare D- prefix, 22 onward keep DIRASH-. .zavet/config records this as intentional, since a record keeps the prefix it was minted under. Nothing was normalized or renumbered.

harness. All ~20 occurrences stay. In this repo it is the literal domain term for an AI coding CLI, backed by a real Harness enum, a --harness flag, and detect::HARNESSES. It is not the banned metaphor noun, and the brief said to judge in context rather than sweep.

Where jargon was replaced, it was per-occurrence

surfacecoverage set, failure mode, places, entry points, interface, shows, comes from. runglevel where it described ACL fallback tiers. foldreduction / combines / also includes. Each substitution came from what the surrounding sentence was actually pointing at, so they vary. Worth a second look for that reason.

One judgement call left as-is: distribution-and-update.md keeps "if a musl-specific problem surfaces", read as ordinary English rather than the jargon noun.

Tested

Verified mechanically, all clean:

  • Frontmatter byte-identical across every file.
  • Heading set, order and text identical.
  • Every decision-id token preserved, both prefix forms.
  • No code identifier lost. The check compares the set of code spans with whitespace collapsed, so a sentence split that legitimately repeats an identifier passes while a dropped one fails.
  • Table shape unchanged.
  • No en dash and no parenthesis substituted for a dash.

One line still exceeds 82 characters: a markdown table row in onboarding.md that was already 157 characters and is now 154. A table row cannot wrap without breaking the table.

Titles and filenames untouched. Retitling is a separate pass.

Not verified

No claim was altered, but that rests on reading rather than a mechanical check. git diff --word-diff is the tractable way to review this.

azlekov and others added 2 commits August 21, 2026 02:55
Reword only, no meaning change, across 32 decisions, 8 specs and RULES.md.
Frontmatter, headings, decision ids, code identifiers, command strings and
table shape are unchanged, verified mechanically.

Em dashes 438 to 4, and every one left is protected: spec title
frontmatter, a fenced Rust block, and glossary.md's field separator. One
file also used ` -- ` as a dash substitute throughout; that is the same
tell and is gone too.

The id prefix split is preserved as minted. Records 1 to 21 keep the bare
D- prefix and 22 onward keep DIRASH-, because a record keeps the prefix it
was minted under.

harness stays everywhere it appears. It is this repo's literal domain term
for an AI coding CLI, backed by a Harness enum and a --harness flag, not
the banned metaphor.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
RULES.md feeds AGENTS.md and .grok/rules/zavet.md, so rewording it makes
both stale.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@azlekov
azlekov force-pushed the prose/zavet-unslop branch from c41c0d9 to de40307 Compare August 20, 2026 23:56
@azlekov

azlekov commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Rust (capture layer) is red here, and it is not this PR.

This branch changes 43 markdown files and zero Rust files:

$ git diff --name-only origin/develop..HEAD | sed 's/.*\.//' | sort | uniq -c
  43 md

The failure is a clippy lint in cli/dirad, a crate this branch never touches:

error: the `Err`-variant returned from this function is very large
   --> 386 | ) -> Result<(String, Option<bool>, ZavetConfig, Option<PathBuf>), Response> {
   = note: `-D clippy::result-large-err` implied by `-D warnings`
error: could not compile `dirad` (lib) due to 1 previous error

result_large_err fires on dira_core::protocol::Response being at least 160 bytes in the Err position. The fix is to box it, which is a real code change with its own judgement call, not something to smuggle into a prose pass. Filed separately.

🤖 Addressed by Claude Code

Rust (capture layer) and Rust (windows) both failed on one lint at
cli/dirad/src/zavet.rs:386. Response carries a DaemonInfo arm of about 160
bytes, so an unboxed Err of it trips clippy::result_large_err, and
-D warnings turns that into a build failure of dirad lib and lib test.

query_repo is the only Result<_, Response> in the workspace, so boxing
there is the whole fix. Its six callers all read Err(resp) => return resp
and now deref. One allocation on an error path that returns straight to
the client, which is the same trade Response::Status already documents
for the same lint.

The deeper fix is to shrink DaemonInfo itself, since that arm is what
makes the enum large for everyone. Recorded in #130 rather than done here.

No behaviour change. The error value and the wire response are identical;
only the return type between query_repo and its six callers moved.

Verified locally: cargo clippy -p dirad --all-targets -- -D warnings is
clean, and cargo test -p dirad --lib passes 160 tests.

Refs: DIRASH-0026, DIRASH-0027, DIRASH-0028, DIRASH-0032
@azlekov

azlekov commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the CI failure in its own commit on this branch, f50d99b.

Rust (capture layer) and Rust (windows) were one bug, not two: both died on clippy::result_large_err at cli/dirad/src/zavet.rs:386. Response carries a DaemonInfo arm of about 160 bytes, so an unboxed Err of it trips the lint, and -D warnings turns that into a build failure of dirad lib and lib test.

query_repo is the only Result<_, Response> in the workspace, so boxing there is the whole fix. Its six callers all read Err(resp) => return resp and now deref. That is the same trade Response::Status already documents for the same lint: one allocation on an error path that returns straight to the client.

Verified locally before pushing rather than pushing to find out:

cargo clippy -p dirad --all-targets -- -D warnings   # clean
cargo test -p dirad --lib                            # 160 passed, 0 failed

The diff on this branch is now 43 markdown files and 1 Rust file, and the Rust change is a separate commit so the prose pass stays readable on its own.

The deeper fix is to shrink DaemonInfo, since that arm is what makes the enum large for everyone. That is #130 and stays open.

🤖 Addressed by Claude Code

@azlekov
azlekov merged commit a0a481b into develop Aug 23, 2026
6 checks passed
@azlekov
azlekov deleted the prose/zavet-unslop branch August 23, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant