Repository navigation
docs: bring the documentation back in line with the code - #609
Merged
Merged
Conversation
A review of every maintained page against the source found drift in 30 documentation files. The fixes that change what a reader would do: - vm-daemon-setup.md put the vsock token where the daemon never reads it and never switched the daemon to vsock; it also said make install handles rpm-ostree on its own, when it refuses without /etc overrides. - mcp.md said execution halts on failed or unknown; it halts on any status but succeeded. - SECURITY.md described the intent secret screen and the role mapping as they were before 0.25.0. - automatic-rollback.md called signed status events future work. - audit-advisories.md listed 20 accepted advisories; two remain. - introduction.md and quickstart.md said the daemon runs as root. - Contributor docs gave clippy without --all-targets, a missing `npm run tauri` script, a PR-title CI check and an e2e PR label that do not exist, and a 7-story default that is now a larger curated set. Two non-doc changes ride along. Cargo.lock moves event-listener to 5.4.2 for RUSTSEC-2026-0221, which reached the daemon and the CLI through sqlx-core; cargo audit reported it as an unsound warning, so CI stayed green. A doc comment in dispatcher.rs named credential_argv_position, renamed to credential_argv_spec. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UpyrhbDTW1gBwzGAC44GYU
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UpyrhbDTW1gBwzGAC44GYU
vladimirrott
added a commit
to bferanmi806-sketch/sysknife
that referenced
this pull request
Oct 19, 2026
Resolves the one conflict in docs/testing/user-stories.md: lacs-project#609 rewrote the Ubuntu story sentence to carry the live-VM figure, and this branch moved the count to 99. The result keeps both: "a further 99 (79 of them in the recorded live-VM runs)". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UpyrhbDTW1gBwzGAC44GYU
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.
Summary
I had every maintained page reviewed against the source, verified each finding in the code myself, and fixed 30 documentation files. The ones that change what a reader would do:
docs/vm-daemon-setup.mdtold you to write the vsock token into your own home. The packaged daemon runs assysknifewith HOME/var/lib/sysknife, so it never read that file, and the page never switched the daemon to vsock at all. It now writes/var/lib/sysknife/.config/sysknife/token(owned bysysknife, mode0600) and adds theSYSKNIFE_LISTEN_URI=vsock://:9734drop-in. The same page saidmake installhandles rpm-ostree on its own; it refuses until you pass the/etcoverrides, and still stops at Fedora Atomic: make install has never completed, and it fails halfway #301.docs/mcp.md:sysknife_executehalts on any status butsucceeded,needs_rebootandrolled_backincluded, not only on failed or unknown.SECURITY.md: the intent screen matches credential values, not bare words such as "password", and the minimum role comes from the action's risk tier, not a hand-written match.docs/automatic-rollback.mdcalled signed status transitions future work. They exist, andaudit verifychecks them on SQLite. It also gains the one case where the daemon skips a rollback on purpose.docs/security/audit-advisories.mdlisted 20 accepted advisories. Two remain: RustSec withdrew the gtk-rs set on 2026-08-14 and the other eight crates left the lockfile.docs/introduction.md,docs/quickstart.md: the daemon runs as thesysknifesystem user with scoped sudo and polkit grants, not as root. The sample plan now matches whatprint_planprints.--all-features --all-targets --lockedas CI runs it;npm run tauri(no such script), the semantic PR-title check (no such workflow) and thee2ePR label (the smoke job is dispatch-only) are gone; the story harnesses' default set is described as it is in the scripts.Smaller fixes cover
docs/architecture.md(vsock and the CLI/MCP path, thesysknife-daemon-testcrate),docs/ubuntu-action-reference.md(SnapInstallhold path,UfwStatus numbered),docs/distro-support.md(helper and grant counts, the gate on hard-fenced reads, theBlockedtier),docs/typed-actions.md,docs/cli.md(Ctrl+C exits the REPL), the release docs, both user-story documents, ROADMAP (two shipped items removed), and dated notes on ADR 0002 and 0004.Two non-doc changes ride along:
Cargo.lock: event-listener 5.4.1 → 5.4.2 for RUSTSEC-2026-0221. Unlike every other accepted warning it reached the daemon and the CLI, throughsqlx-core.cargo auditreports it as unsound rather than a vulnerability, so CI stayed green.cargo auditnow shows onlyglibandproc-macro-error, both reachable from the shell alone.dispatcher.rsnamedcredential_argv_position, renamed earlier tocredential_argv_spec.Related Issue
None filed; this is a maintenance sweep ahead of 0.26.0.
Validation
Locally,
scripts/ci-local.sh --no-postgrespassed fmt, clippy, doc, the frontend,cargo audit, markdownlint, both link checks, yamllint, shellcheck and the release tests. The claim screen caught a "26-story" figure I had written, which no evidence file backs, and I replaced it with the script's own default. The one nextest failure was #604, the load-dependent planning-timeout flake, which is unrelated.Notes for Reviewers
I left dated documents as history: the red-team report, the 2026-04-25 gap analysis tables and ADR 0001. The Ubuntu story audit gained a note saying its remediation has since landed.
🤖 Generated with Claude Code
https://claude.ai/code/session_01UpyrhbDTW1gBwzGAC44GYU