Repository navigation
weaver doctor and setup refusals - #4
Closed
MrPickering wants to merge 1 commit into
Closed
MrPickering wants to merge 1 commit into
MrPickering wants to merge 1 commit into
Conversation
A book pipeline that travels as one zip holding both the tool and the book, edited by chat-only AIs, cannot work: every session can change the tool, and nothing can tell a modified tool from the released one. Weaver now checks its setup and refuses, in plain words, to write into a book when that setup is unsafe. - `weaver doctor [--root] [--json]` reports: Node >= 22, Git available, book under Git, tool and book in separate folders (including a copied Weaver engine inside the book), install integrity, and a note that a command-running AI host is required. - state:accept, release and `grounding --output` refuse when anything is blocking and write nothing. Read-only commands still run and warn on stderr. No flag or environment variable bypasses a refusal. - `weaver init` runs `git init` in new books. - integrity.json: a committed, lockfile-style sha256 manifest of the published package, hashed with CRLF normalised to LF so Windows, Linux and npm installs agree. `npm test` fails when it is stale. - Tests prove each blocking check can fail, including tampering with an installed copy from the packed tarball (doctor reports `modified`, release refuses). Verified: npm run preflight (19/19, leakscan, smoke, consumer install with tamper break-test); manual refusals for a book outside Git and a copied engine inside a book. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: 04db4d93-9884-44ee-b28f-627e92b33731 Agent: claude-code
This was referenced Sep 25, 2026
Contributor
Author
|
Landed on main via #9 (merge of the full stack). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #3. Merge #3 first, then retarget this PR to
main.Why
A pipeline that travels as one zip holding both the tool and the book, edited by chat-only AIs, can't work: every session can change the tool, and nothing tells a modified tool from the released one. Weaver should refuse to run in that setup and explain why in plain words. Firm on setup, flexible on story.
What
weaver doctor [--root] [--json]checks Node >= 22, Git available, book under Git, tool and book in separate folders (including a copied engine inside the book), install integrity, and a note that a command-running AI host is required.state:accept,releaseandgrounding --outputstop and write nothing when anything is blocking, with a plain-words problem, why and fix. Read-only commands warn on stderr and still run. No flag or environment variable bypasses a refusal.weaver initrunsgit initin new books.integrity.json: a committed, lockfile-style sha256 manifest of the published package, with CRLF normalised so every platform agrees.npm testfails when it's stale; runnpm run integrityafter changing package files.Verification
npm run preflight: 19/19 tests, leakscan, smoke, consumer installmodifiedandreleaserefuses.🤖 Generated with Claude Code