Docs: alpha.11 CLI surface + multi-backend cache + polyglot database realignment#162
Conversation
…tive + version Lane D (doc-truth align) commit 1: add the new `netscript init` surface introduced by the alpha.11 fix-train (PR #160) to the scaffold reference. - `--cache` / `--no-cache` (default on) + `--cache-backend redis|garnet|deno-kv` (default redis; redis/garnet are Aspire container resources, deno-kv is app-level/no container). - Interactive-vs-non-interactive callout: TTY prompts for omitted options incl. the two cache questions; `--yes`/`--ci` skip prompts; defaults = Postgres-ready workspace + Redis cache. - `netscript --version` prints the installed CLI version. Grounded against integration/alpha11-fixtrain init-command.ts + cache-backend.ts. Docs-only; lands as a separate docs PR. Refs #141 #153. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct
…s published docs `aspire run` is not a valid Aspire CLI command (the CLI has `aspire start`); Run-1 eye-test blocker F-12 confirmed it orphans the scaffolded AppHost on Windows. Sweeps all 61 published pages (tutorials, capabilities, how-to, explanation, landing, cli-reference) to `aspire start`. Internal `_plan/` worklogs left untouched. 1:1 string swap, no other content change. Refs #141 #153 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct
Bare `jsr:@netscript/cli` resolves to JSR `latest`, which is null while the
package is prerelease-only — so every unpinned `deno install`/`deno x` in the
docs dead-ends at "no matching version" (Run-1 eye-test blocker F-1). Pin all
20 occurrences to the dynamic `{{ releaseSpecifier }}` (= `@<releaseVersion>`,
sourced from packages/cli/deno.json), so published docs always show the exact
current alpha pin and self-advance on each release bump.
Plain fences/prose use `{{ releaseSpecifier }}`; comp-tag JS string args use
`" + releaseSpecifier + "` concatenation to avoid nested-`{{}}` parse breaks.
Lume build verified green (306 files, exit 0).
Refs #141 #153
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct
…default) Present the scaffold cache as a multi-backend capability across the site: `redis` is the default backend everywhere; `garnet` and `deno-kv` are first-class alternatives selectable via `--cache-backend`. Garnet is kept only where shown as an explicit alternative backend choice, and real symbols (createGarnetListTransport, Cache.<backend> keys, GARNET_URI/REDIS_URI) are preserved. - 45 docs files realigned (concepts, cli-reference, glossary, explanation/*, capabilities/*, how-to/*, tutorials/*, index/why/quickstart). - aspire-resource-graph diagram: add the default Redis cache resource node and wiring; SVG regenerated (byte-clean, single-diagram delta). - quickstart bare `netscript init` now passes `--db postgres` to match the tutorial stack. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct
…sql/mssql/sqlite via --db) Mirror the cache multi-backend realignment for the database. NetScript scaffolds a Prisma-backed database for four engines chosen at scaffold time with `--db`: postgres | mysql | mssql | sqlite. Postgres stays the recommended default (every tutorial uses `--db postgres`); mysql/mssql/sqlite are first-class alternatives. postgres/mysql/mssql provision an Aspire container resource; sqlite is file-backed with no container. This is enrichment, not replacement: wherever the docs presented Postgres as the sole app database (monolithic framing), add concise polyglot framing or — on the anchor pages (database, cli-reference, glossary, use-a-second-database, database-migration) — a richer backend/--db passage with the sqlite no-container caveat. Tutorials keep every `--db postgres` command verbatim and gain one swap-engine note near the first scaffold step. Rule-C kept untouched (engine-specific by design, not the app-DB-engine choice): Postgres-as-subsystem backends (queue provider FOR UPDATE SKIP LOCKED / advisory locks, saga/durable stores), connection-string mechanics (DATABASE_URL / POSTGRES_URI), Prisma provider literals, engine-specific paths, and the runtime second-datasource adapter barrel (which ships postgres/mssql/mysql only — no sqlite adapter was fabricated). - 27 docs files realigned (capabilities/*, cli-reference, glossary, explanation/*, how-to/*, tutorials/*, concepts/index/why/quickstart). - Lume build: green (306 files). No diagram sources changed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct
Follow-up: database presented as polyglot (commit
|
… engine (not Postgres-only) A file-grounded subsystem audit showed the saga `prisma` store and the better-auth backend are NOT Postgres-specific — both persist through the project's Prisma client, so they follow whichever engine was scaffolded with `--db` (Postgres by default; mysql / mssql / sqlite all work). The docs presented them as "Postgres" stores, implying a hard coupling that does not exist. Add concise polyglot framing at the definitional points only: - capabilities/durable-sagas.md — `prisma` store backend + trait-matrix row. - explanation/durability-model.md — `prisma` store row + "choosing kv vs prisma". - capabilities/auth.md — better-auth tables provisioning note. - how-to/add-authentication.md — auth.prisma aggregation line + table caption. Deliberately left unchanged (genuinely engine-specific, per the same audit): - The queue PostgreSQL provider — hard-tied to Postgres (`FOR UPDATE SKIP LOCKED`, `JSONB`, `TIMESTAMPTZ`, raw `$N` SQL); a polyglot queue is real engineering (SQLite infeasible) and is tracked as backlog, not a doc framing. - The durable-streams service's Postgres/Redis dependency line (service infra, accurate by default). Lume build: green (306 files). No diagram sources changed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct
Folded in: Prisma-backed subsystems are not Postgres-only (commit
|
|
@openhands-agent model=openrouter/qwen/qwen3.7-max provider=openrouter output=pr-comment iterations=600 use harness You are the IMPL-EVAL evaluator (separate session from the generator) for PR #162 — docs realignment. This is a documentation accuracy validation against framework ground truth. You are the evaluator only: you do NOT edit docs or "fix" anything. You read the changed docs, verify each claim against the actual code, run the docs build, and emit a per-domain verdict. SKILLActivate and follow these repo skills before any work:
Scope of this PR (three docs passes, one branch)The PR branch
Ground-truth anchors you MUST verify against code (do not trust the prose)
Gate
Output
|
OpenHands Agent — CompletedModel: openrouter/qwen/qwen3.7-max PR #162 Documentation Realignment Evaluation SummarySummaryEvaluating three commits on branch
Verification ResultsDomain 1: Multi-backend cache (commit b847c6a) - PASSClaim: redis is default cache backend; garnet/deno-kv are alternatives via Code anchors verified:
Docs verified ( Verdict: PASS - All claims align with code surface. Correctly frames redis as default, uses Domain 2: Polyglot database (commit 2853981) - PASSClaim: scaffold-time Code anchors verified:
Docs verified ( Runtime adapter separation verified (
Verdict: PASS - All claims align. Correctly frames Postgres as "recommended" (not literal default), correctly identifies sqlite container-less, correctly separates scaffold from runtime adapter surface. Domain 3: Prisma-backed subsystems follow scaffolded engine (commit 474a47c) - PASSClaim: sagas Code anchors verified:
Docs verified (commit
Verdict: PASS - All claims align. Correctly distinguishes engine-agnostic (sagas prisma store, better-auth) from engine-specific (queue postgres adapter). No relabeling of queue as polyglot. Gate: Documentation build - PASSLume build result: 306 files generated in 6.46 seconds, 0 errors Command: Xrefs verified: All Overall VerdictPR #162: PASS (3/3 domains PASS, Lume build green) All documentation claims verified against:
No broken xrefs. No invented flags ( ChangesDocumentation-only changes across three commits:
No source code changes. No test changes. Validation
Remaining risksNone identified. All factual claims in documentation align with implementation ground truth. Run: https://github.com/rickylabs/netscript/actions/runs/28300391133 |
Docs: alpha.11 CLI surface + multi-backend cache realignment
Aligns the docs site to the built alpha.11 CLI surface, with a site-wide realignment presenting the scaffold cache as a multi-backend capability.
Cache: multi-backend (this commit)
redisis the default cache backend everywhere;garnetanddeno-kvare first-class alternatives selectable via--cache-backend.createGarnetListTransport(),Cache.<backend>config keys,GARNET_URI/REDIS_URI,CACHE_PROVIDERvalues.concepts,cli-reference,glossary,explanation/*,capabilities/*,how-to/*,tutorials/*, plusindex/why/quickstart.aspire-resource-graphdiagram: adds the default Redis cache resource node + wiring; SVG regenerated (byte-clean — single-diagram delta, renderer verified deterministic vs the other 14).quickstartbarenetscript initnow passes--db postgresto match the tutorial stack.Ground truth
Cache surface verified against the merged CLI:
CacheBackendChoice = 'redis' | 'garnet' | 'deno-kv', defaultsCACHE_BACKEND: 'redis'/CACHE_ENABLED: true, flags--cache [enabled](default on) +--cache-backend <backend>(default redis), disable via--cache=false.redis/garnetemit an Aspire container resource;deno-kvis app-level (no container).Gates
Garnetsweep: every remaining mention is an intentional alternative-backend reference or a real exported symbol.🤖 Generated with Claude Code