docs: rebuild the public surface around install and first run - #253
Conversation
The README opened with links to FURPS and ADR, put a 7-item prerequisites
wall above install, and buried the first runnable command at line 177 of
437. Install itself read `cargo install --path .`, which assumes a clone the
README never mentions, even though the crate is published.
README:
- Tagline names the category and what you do with it, without internal
jargon ("program_deployment projects in standalone mode").
- Quick start moves to line 13: install from crates.io, create, run.
- Hero transcript of `lgs run`. Step labels are the literal format strings
from src/commands/run.rs; the bracketed values are the reader's.
- Prerequisites move below install and split into 3 always-needed and 4
workflow-specific, pointing at `lgs doctor`.
- Adds four badges (crates.io, docs.rs, CI, license), a nav bar, and a
"coming from Foundry or Anchor" mapping.
- The 53-line command dump becomes a 12-row verb table.
- 437 lines to 280; 39 em-dashes to 0.
Reference material moves out, nothing is deleted:
- docs/commands.md: the full command surface, grouped by intent, plus the
Command Semantics section verbatim. All 53 command lines preserved
byte-identical, with flags corrected against `logos-scaffold 0.3.0`:
create/new gained --template and --cache-root, setup and build gained
--prebuilt, deploy gained --program-path and --json, run gained
--watch-debounce-ms.
- docs/configuration.md: `[run]` profiles, post-deploy hooks, deploy/topup
toggles, watch mode.
- FURPS, ADR and DOGFOODING pointers move to a Project Documents table in
CONTRIBUTING.md.
Cargo.toml: the description still said "LSSA", a term with no remaining
occurrences in the README, and `repository` pointed at logos-co/logos-scaffold,
which 403s. Both surface on the crates.io page.
New: AGENTS.md, CODE_OF_CONDUCT.md, issue templates wired to `lgs report`,
demo.tape for recording the hero GIF, and a social preview image brief.
There was a problem hiding this comment.
Pull request overview
Restructures the repository’s public documentation so a new developer can get from landing → install → first successful run quickly, while moving deep reference material into docs/ and adding contributor-facing repo hygiene files (agents guidance, CoC, issue templates).
Changes:
- Rebuilds
README.mdaround “Quick start”, install, and troubleshooting; moves detailed command/config reference intodocs/. - Adds new documentation assets (
docs/commands.md,docs/configuration.md,docs/social-preview-brief.md) plus a VHS recording script (demo.tape). - Fixes crates.io metadata in
Cargo.toml(description + repository URL) and adds repo community/maintenance files (CoC, issue templates, AGENTS guidance).
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| README.md | Reorganized entry-point docs to surface install + first run and link out to reference docs. |
| docs/social-preview-brief.md | Brief for creating a GitHub social preview image aligned with README messaging. |
| docs/configuration.md | Extracted detailed [run] / lgs run configuration reference out of the README. |
| docs/commands.md | Extracted full CLI command/flag reference and semantics out of the README. |
| demo.tape | Adds a reproducible “hero” terminal recording script for README media. |
| CONTRIBUTING.md | Adds a “Project Documents” index and clarifies doc-update expectations for CLI/config changes. |
| CODE_OF_CONDUCT.md | Adds a Contributor Covenant Code of Conduct for community standards. |
| Cargo.toml | Updates crate description and repository URL metadata. |
| AGENTS.md | Adds repo orientation and workflow guidance for AI coding agents and contributors. |
| .github/ISSUE_TEMPLATE/feature_request.yml | Adds a structured feature request issue form. |
| .github/ISSUE_TEMPLATE/config.yml | Adds issue template config + contact links (security, command reference). |
| .github/ISSUE_TEMPLATE/bug_report.yml | Adds a structured bug report issue form emphasizing diagnostics. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (2)
.github/ISSUE_TEMPLATE/feature_request.yml:8
- The issue form markdown uses a relative link (
../blob/master/...) that won't resolve correctly from rendered GitHub issue forms. Use an absolute URL like the other contact links in.github/ISSUE_TEMPLATE/config.ymlso users can open CONTRIBUTING reliably.
Read [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md) first. This
README.md:67
- This section says "every command" but includes
curlspecifically for "firstsetup", which is not required for every command. Rewording avoids confusing readers about what they must install up-front.
You need these for every command:
55440f1 to
bf3a065
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (3)
README.md:79
- The prerequisites section suggests users can satisfy the circuits dependency by placing a release under
~/.logos-blockchain-circuits/, but the code explicitly avoids that fallback and instead downloads/install circuits into the project’s[circuits].install_dir(default.scaffold/circuits) unlessLOGOS_BLOCKCHAIN_CIRCUITSis set. This guidance is likely to mislead users on a fresh machine.
- A `logos-blockchain-circuits` release on disk, required by the LEZ standalone
build chain that `setup` invokes. Set `LOGOS_BLOCKCHAIN_CIRCUITS=<path>` or
place the release at `~/.logos-blockchain-circuits/`.
docs/commands.md:42
localnet logssupports--jsonoutput (seeLocalnetLogsArgsinsrc/cli.rs), but the command signature here omits it, which makes this reference incomplete/inaccurate for tooling usage.
logos-scaffold localnet logs [--tail N]
docs/commands.md:65
- Wallet subcommands also support
--json(bothwallet listandwallet topup), but the signatures here omit it. Since this file is intended as a flag reference, these options should be listed.
logos-scaffold wallet list [--long]
logos-scaffold wallet topup [<address> | --address <address-ref>] [--dry-run]
`cargo fmt --check` is the first CI step and has been failing on master since the setsid daemonize change, so every PR branch that merges master inherits a red run. One-line reformat, no behaviour change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Fixes found checking the new pages against `logos-scaffold 0.3.0` and the source: - README prerequisites claimed a `logos-blockchain-circuits` release had to be on disk, at `~/.logos-blockchain-circuits/`. `src/circuits.rs` deliberately never reads that path: it downloads the pinned release into `.scaffold/circuits` and exports `LOGOS_BLOCKCHAIN_CIRCUITS` itself. The env var is an override, not a setup step. Also moves `curl` out of the every-command list, since only the first `setup` needs it. - docs/commands.md: `--json` on `localnet logs`, `wallet list` and `wallet topup`; `--timeout-sec` on `test-node start` and `test-node run`; `--log-file[=PATH]` on `basecamp launch`; `--module` on `basecamp build-portable`. Adds the four basecamp subcommands the page omitted (`build`, `run`, `paths`, `docs`) with their semantics. - feature_request.yml linked CONTRIBUTING.md relatively; issue forms render outside the repo tree, so the link 404s. Absolute URL now. - configuration.md said "works with no configuration" twice, and ended on a "Checkpoint commands" block orphaned from the README section it was extracted from. - CODE_OF_CONDUCT.md shipped a "Maintainers: add a reporting address" note in the published text. Names the reporting channel instead. - README "Example runs" now says which project the binaries come from. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Review + verification of the documented surfaceThe restructure achieves what it set out to. Landing on tagline → quick start → what you get → prerequisites → install reads the way the comparable tools do, and moving the command dump into I checked the documentation claims mechanically rather than by eye, since that is where docs PRs usually rot. Command surface — clean. I extracted every Quick start runs as written.
Prerequisites correction is right. On the
|
weboko
left a comment
There was a problem hiding this comment.
Review: docs restructure — verified end-to-end ✅
Set up a full toolchain (Nix+flakes, Rust, risc0 r0vm 3.0.5 + guest toolchain) and validated the PR's central claim by running the new README Quick start verbatim against a real sequencer:
lgs new my-app --template lez-framework
lgs run # [1/5]..[5/5] → localnet ready (pid), program_id 90e8f478…, Sequencer: http://127.0.0.1:3040
lgs wallet -- check-health # exit 0
The printed step labels and "Sequencer: http://127.0.0.1:3040" line match the README's console block exactly.
Docs accuracy checks (all pass):
- Every command signature in
docs/commands.mdre-verified against--helpon a build of this branch —localnet logs --json,wallet list --json,wallet topup --json,test-node start --timeout-sec,run,deploy,localnet reset, the basecamp subcommands. All match. - Relative links in README / docs / CONTRIBUTING resolve within the tree;
AGENTS.md's "CI runs exactly these three" matches.github/workflows/ci.yml. - The
process.rscargo fmtfix is legitimate: it's the sole thing makingcargo fmt --check(CI's first step) red on master since #34, and it's a pure whitespace fix. Fine to carry here.
One cross-PR coordination note (non-blocking): docs/commands.md correctly says "init writes scaffold.toml (schema v0.2.0)" for this branch. #255 makes 0.3.0 current — whichever of these two lands second should update that line and the init/migration description to v0.3.0 so the docs and the code agree.
Reads clean and the DX is a real improvement. No blocking issues.
Generated by Claude Code
Re-review: docs restructure — README quick start verified verbatim against a real runEnvironment: Nix 2.35.2, Rust 1.94.1, r0vm 3.0.5 + risc0 guest toolchains (rust I ran the new Quick start block as written, on a clean project, and it does what it says:
Other accuracy checks, all pass:
Cargo metadata fixes are correct and overdue. The published 0.3.0 on crates.io still carries The restructure itself reads well. Tagline → quick start → what you get → prerequisites → install is the right order, moving the exhaustive command list into Non-blocking nits
Verdict: approve. Everything the docs claim, I checked, and it held — including the one claim that actually matters (the quick start runs verbatim end-to-end on a fresh machine). This is the lowest-risk PR of the four open ones: docs plus a formatting fix plus two Cargo metadata corrections, no behavioural change, tests green. Generated by Claude Code |
README.md conflicted wholesale: master's #256 edited four `basecamp` bullets in the old Command Semantics section, which this branch had already moved to docs/commands.md. Kept the restructured README and ported the four updated bullets (`setup`, `modules`, `launch`, `doctor`) into docs/commands.md, where that text now lives. Master's #258 landed the same rustfmt fix this branch carried, so src/process.rs merged clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- `localnet start` gained a setsid daemonization note on master (#34) after this branch extracted the command surface into docs/commands.md. Ports the sentence, and says the same thing in one clause in the README overview, since surviving a closed terminal is a property users notice. - FURPS Supportability #2 pointed at `README.md` for the hook env contract. That table now lives in docs/configuration.md. - PR template checklist now names docs/commands.md for flag changes, matching the rule CONTRIBUTING.md states. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated no new comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
docs/commands.md:43
- The
localnet resetusage line implies--yesand--dry-runare mutually exclusive ((--yes | --dry-run)), but the CLI currently allows both flags (there is no clapconflicts_withbetween them). Since this doc claims signatures were verified against--help, the usage line should match what--helpwould show.
logos-scaffold localnet reset (--yes | --dry-run) [--reset-wallet] [--verify-timeout-sec N]
Description
After so many iterations, especially using AI
README.mdfile became one big pile of stuff.I want to improve it, drop it into smaller files and make experience reading it pleasant.
User Story
A developer arriving at the repo could not get from landing to a running project. The README opened with links to FURPS.md and ADR.md, internal engineering documents. Install sat at line 55, behind a seven-item prerequisites wall, and read cargo install --path ., which assumes a clone the README never mentions. The first runnable command was at line 177 of 437. Measured against Foundry, Anchor, Stellar CLI, Hardhat, and dfx, tagline-to-install runs 12–26 lines; this repo was 51, and tagline-to-first-command was 174 against their 15–25.
Separately, the crates.io page carried a description saying "LSSA", a term with zero remaining occurrences in the README, and a repository URL (logos-co/logos-scaffold) that returns 403.
Change Summary
Restructures the README around install and first run, moves reference material into docs/, and fixes the two broken Cargo.toml metadata fields. README goes 437 → 280 lines. Nothing is deleted: the command dump and Command Semantics move to docs/commands.md, run configuration to docs/configuration.md, and FURPS/ADR/DOGFOODING pointers to a Project Documents table in CONTRIBUTING.md. Adds AGENTS.md, CODE_OF_CONDUCT.md, issue templates, and a social preview brief.
It also carries a one-line
cargo fmtfix tosrc/process.rs. That is not documentation, butcargo fmt --checkis CI's first step and has been failing on master since the setsid daemonize change, so this branch inherited a red run. Happy to split it out if you would rather fix master directly.Verification
cargo fmt --check,cargo check,cargo testpass locally on the merged branch (769 tests).docs/commands.mdre-checked against--helpfrom a build of this branch. That turned up the missing--jsononlocalnet logs/wallet list/wallet topup, the missing--timeout-secontest-node start/run, and four basecamp subcommands the page did not list at all (build,run,paths,docs).src/circuits.rsnever reads~/.logos-blockchain-circuits/(its module docs explain why), it downloads the pinned release into.scaffold/circuitsitself. Corrected to matchtemplates/default/README.md.Rebased on master (26 Aug)
Merged master. The README conflicted wholesale, since #256 edited four
basecampbullets in the old Command Semantics section that this branch had already moved todocs/commands.md. Resolution keeps the restructured README and ports those bullets (setup,modules,launch,doctor) to where the text now lives. #258 landed the samecargo fmtfix this branch carried, sosrc/process.rsmerged clean.Two pointers master had moved past also got carried over: the
setsiddaemonization sentence #34 added to thelocalnet startbullet, and FURPS Supportability #2, which pointed atREADME.mdfor the hook env contract that now lives indocs/configuration.md.Re-verified the whole basecamp command surface against
--helpafter the merge; #256 changed behaviour, not flags, so the signatures still hold.Left for maintainers
CODE_OF_CONDUCT.mdnow points reports at GitHub's report-abuse flow. Swap in a dedicated address if one exists.