docs-v4: IA-deepening plan + seam audit + auth roadmap (planning only)#107
docs-v4: IA-deepening plan + seam audit + auth roadmap (planning only)#107rickylabs wants to merge 20 commits into
Conversation
…s (planning only) Planning artifacts only (no doc prose, no framework code). Closes the orphaned structural backlog (W4/W5/W6) plus verified feature gaps and a public-voice cleanup. - research.md: grounding synthesis, verified public surface (origin/main export maps), stale-baseline correction (auth packages DO exist), real integration spine from the netscript-start playground showcase. - doc-architecture-v3.md: locked IA — sitemap, capability-hub template, 4 independent tutorial tracks, full design system + 11 rendered diagrams, auto-resolving xref, deployed-v3 -> v3 migration map. - plan.md: 8 workstreams with acceptance gates, sequencing, risks, layered eval handoff. - ground/: leakage/voice audit (19 instances), diagram inventory, competitor bar-raising, playground showcase map. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Folds the WSL Codex adversarial hardening panel (commit 1cbe1875, 3 blockers / 6 majors / 1 minor) back into the docs-v3 IA plan so it can clear PLAN-EVAL on the merits. Planning artifacts only; no docs/site or code touched. Adds harness artifacts (worklog.md w/ Design checkpoint, drift.md, commits.md), the full 32-unit/242-subpath public-surface inventory (B2), tutorial proof-or-rescope plans for the ungrounded Tracks B/C (B3), and per-capability hub content contracts for the 8 complex hubs (M6). Hardens plan.md with an open-decision sweep (locks Mermaid build-time SVG, dedicated _data/xref.ts + comp.xref keys, Pagefind scope, alpha pill, archetype-internal-only, marketplace-stub, local+Aspire deploy), 20 ordered commit slices with file sets + proving gates (B1), and an executable gate table + deterministic leakage-scanner spec (M5). Edits doc-architecture-v3.md (remove public archetype framing M7, badge marketplace stub M8, split deploy to local+Aspire M9, ground Tracks B/C) and research.md (reproducibility section, m10). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
…A refs The adversarial panel committed its findings as 1cbe1875 inside the WSL worktree only; that commit was never pushed, so the file the plan/drift/ worklog reference was absent from this branch. Reproduce the authoritative 61-line findings file here and correct the four dangling 1cbe1875 SHA references to point at the file (noting the WSL-only provenance). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
PLAN-EVAL (OpenHands minimax-M3, run 27908862931) returned PASS with 5 non-blocking follow-ups. Surface inventory headline corrected to the verified live count 31 units / 210 subpaths (was 32 / 242; per-subpath classification was already complete). 7 per-unit counts reconciled; createJobTools reclassified as a scaffold helper (not a published subpath); S12/§5 surface-completeness gate now asserts 210 read live from the export maps; Track B proof gate now emits a mandatory SCOPE verdict so the rescope fallback is exercised, not latent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
…L PASS Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Additive post-PASS deepening per user review note (~90% approved, "expected more inspiration from competitor-doc-research.md"). No locked decision (D1-D4, OD1-OD8) or slice changed; surface counts and gates untouched. - vendor ground/competitor-doc-research.md (verbatim from origin/docs/overhaul-v3) - doc-architecture-v3 §0.5 front-door positioning contract (Integration-Tax lead, skeptical-senior-architect persona, 5 proof-backed credibility anchors, honest NestJS/Encore/tRPC/Temporal/Hono comparison matrix) - §8 rewritten into strict per-page-type section-order contracts (F/H/B/R/E) + §8.1 code conventions (file-path comments, line-diffing, types-first) - §5.1 components prioritized P0/P1/P2 + competitor mapping; add comp.tabbedCode, comp.tabbedRuntime (localStorage-synced), comp.learningPath, line-highlight - §5.3 per-engine schema/ERD diagrams + OTel traceparent propagation diagram - §11 competitor-pattern adoption matrix (every "what to steal" → a home) - plan.md: WS4/WS8/S03/S18 wiring + page-structure audit gate (§5, S20) - hub-content-contracts: Type-H structure rule (schema opener, types-first, file-path comments, production-notes close) - research §6 remapped to the vendored dossier; drift + worklog recorded Ready for user re-review. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Phase-0 grounding (wf_090ee054-3d5) for the docs-v4 information-architecture deepening run. Locks: 3-level Capability-Hub IA (Fresh promoted to a 10-page Web Layer section), real Mermaid build pipeline + missing-asset gate, 2 link fixes, and the drift-D1 process gates (caveat-harvest, link-integrity, seam-coverage). Seam audit verdict: exactly ONE real build-seam gap in the framework - better-auth plugins are mountable only via an undocumented escape hatch. Per user decision (2026-06-22): build the createNetscriptBetterAuth plugins passthrough (R0) and record the full seamless-auth roadmap (R1 schema-gen, R2 InteractiveFlowPort, R3 org/tenant primitives, R4 defineAuth() builder, R5 mappers/adapters/CLI) in arch-debt.md. Planning-only; no docs/site or framework code changes in this commit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
|
@openhands-agent model=openrouter/minimax/minimax-m3 provider=openrouter output=pr-comment iterations=120 use harness — run PLAN-EVAL (separate-session plan gate) for the docs-v4 IA-deepening run on this PR branch. This is a planning-only PR. Do NOT implement, author docs, or change Inputs to read (on this PR branch
|
OpenHands Agent — CompletedModel: openrouter/minimax/minimax-m3 OpenHands Run Summary — 27936594391-1Run-id: 27936594391-1 SummaryPerformed a PLAN-EVAL pass on the The plan is largely complete and internally consistent: locked decisions carry rationale, The three open IA questions explicitly delegated to PLAN-EVAL were ruled PASS:
One evaluator-run open-decision sweep finding was missed by the plan: a symbol-name drift ChangesDeliverable artifacts written
Verdict comment (PR #107)Per the trigger contract ( Source-tree / framework changes
Validation
Verdict (from
|
| # | Question | Ruling |
|---|---|---|
| 1 | Background-Processing vs Durable-Workflows split? | SPLIT (pillars 3 and 4; DurableStream is a durability primitive, not a worker). |
| 2 | Reference: pillar-local vs global catalog? | PILLAR-LOCAL + THIN GLOBAL INDEX (matches ia-tree.md:76). |
| 3 | Fresh Examples/sandbox: prose now, live StackBlitz? | PROSE NOW, STACKBLITZ BACKLOG (no @netscript/fresh subpath backing for prose-only is honest; defer avoids new external CI integration). |
PR-comment body
The workflow will post this on PR #107 as the OpenHands status comment:
## OpenHands PLAN-EVAL — docs-v4-ia-deepening
**Verdict:** `FAIL_PLAN` (first cycle; per `evaluator/plan-protocol.md` §"Loop limit", one
`FAIL_PLAN` cycle is allowed; a second unfixed cycle escalates to the user).
**Evaluator:** OpenHands minimax-M3, separate session (not the Claude author / not the
WSL Codex implementer). Run-id: 27936594391-1. Branch: `docs/v4-ia-deepening` @ `2db524bd`.
**Full verdict:** `.llm/tmp/run/docs-v4-ia-deepening/plan-eval.md`
### Required fixes
1. **`createSagaRuntime` symbol-name drift** (`seam-coverage.md:61`, `ia-tree.md` pillar-4).
The real export on this branch is `createSagaRuntime`
(`packages/plugin-sagas-core/src/runtime/create-saga-runtime.ts:73`, re-exported via
`packages/plugin-sagas-core/src/public/mod.ts`). Fix in W2 (IA restructure) + W6 (pillar
rewrite), and carry a `D2` entry in `drift.md` so the caveat-harvest gate has a reference.
This is the exact class of untracked caveat `drift.md` D1 was opened to prevent.
2. **Risk-register row for docs-vs-R0 ordering.** `plan.md:64`–`65` names the policy
("seam green first, or docs state 'shipping in <ref>'") but not as a tracked risk. Add a
named row (in `drift.md` or new `risk-register.md`) so IMPL-EVAL can verify the auth-pillar
pages carry the caveat if R0 is not green at docs-merge time.
3. **(Minor.) W4 scope — auth-pillar Plugins leaf must carry R1 schema-gen caveat.** Extend
the W4 conditional from the workspace tutorial to the auth-pillar Plugins leaf itself
(one-line edit).
### Rulings on the 3 delegated IA questions
| # | Question | Ruling |
|---|----------|--------|
| 1 | Background-Processing vs Durable-Workflows split? | **SPLIT** |
| 2 | Reference: pillar-local vs global catalog? | **PILLAR-LOCAL + THIN GLOBAL INDEX** |
| 3 | Fresh Examples/sandbox: prose now, StackBlitz? | **PROSE NOW, STACKBLITZ BACKLOG** |
### Spot-checks (against the live tree)
- `packages/fresh/deno.json` exports → all 11 subpaths exist; every IA-tree Web-Layer
page maps to a real export. ✓
- `packages/fresh/src/application/builders/mod.ts:26` — `definePage` exists. ✓
- `packages/fresh/src/application/route/mod.ts:99` — `defineRouteContract` exists. ✓
- `packages/auth-better-auth/src/better-auth.ts:23` — `NetscriptBetterAuthOptions` has no
`plugins` field (matches `seam-coverage.md` headline). ✓
- `packages/auth-better-auth/src/better-auth.ts:77` — `BetterAuthInstance` is structural;
`createBetterAuthBackend({ auth })` accepts it (escape-hatch code is type-correct). ✓
- `packages/plugin-streams-core/src/public/mod.ts` — producer-only exports (no consumer /
replay / consumer-group); "absent — already documented" verdict in `seam-coverage.md:63`
is correct. ✓
### What was NOT changed
- No source code, no `packages/**`, no `plugins/**`, no `docs/site`, no framework churn.
- No `deno.lock` mutation; no `git` commit; no push. This was a planning-only evaluation
per the trigger contract.Responses to review comments or issue comments
N/A — this is a planning-only PR with no review comments yet. The PR-comment body above is
the OpenHands status comment that the workflow will post.
Remaining risks
createSagaRuntimedrift may exist in other artifacts. I only spot-checked the docs
artifacts in this run dir. If other v4-era docs (underdocs/site/_plan/or other
ground/scouts) referencecreateDurableSagaRuntime, the fix S0: initial public repo genesis #1 should sweep those too.
The drift D2 entry should carry a list of all such locations.- R0 seam ordering hazard is the largest residual risk (see Required Fix S1: package quality — slow-types + docs (supervisor) — Waves 0–6 ✅ merged #2). The plan
says "seam green first, or docs state 'shipping in '" but does not commit to which
branch holds if neither holds at merge time. IMPL-EVAL will need to check this explicitly. - Caveat-harvest + link-integrity + seam-coverage gates (
plan.md:28–34) are
correctly aimed at the systemic process failure (drift.mdD1) but their exact CI wiring
is described as "wired into CI/review" without a named task or script. This is the kind of
thing that drifts during implementation — IMPL-EVAL should verify the gates actually fail
the build before they pass on paper. Marked PASS in this PLAN-EVAL pass per Phase-A
reporting (gates/plan-gate.md:42–45) — "absence of a script is not permission to omit
the check".
Files touched in this OpenHands run
.llm/tmp/run/docs-v4-ia-deepening/plan-eval.md(created — verdict)/home/runner/work/_temp/openhands/27936594391-1/summary.md(created — this file)
No deno.lock, no source code, no commit. Lock hygiene preserved.
Run: https://github.com/rickylabs/netscript/actions/runs/27936594391
- seam-coverage: createDurableSagaRuntime -> createSagaRuntime (real export; verified against source) - drift: add D2 (saga symbol drift) + risk register RR-1 (docs-vs-R0 ordering) and RR-2 (R0-without-R1 page-level caveat) - plan: W4 page-level R1 caveat line; build-flow step 5 references RR-1 PLAN-EVAL cycle 1 (OpenHands minimax-M3) = FAIL_PLAN; this closes all 3 required fixes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Layered PLAN gate, Layer B (Codex panel, PANEL: CHANGES_REQUIRED). All 7 planning-artifact precision/enforceability fixes applied; none contradict a locked user decision; panel concurs with OpenHands on the 3 open IA questions. - D2/W4: createSagaRuntime is reachable ONLY via @netscript/plugin-sagas-core/runtime (NOT root `.`, NOT src/public/mod.ts, NOT legacy createDurableSagaRuntime) — verified - W3/IA: 10 export-backed Web Layer pages + 1 non-export examples showcase leaf (relabeled) - IA query leaf: name root `.` cache helpers (hasAllCacheEntries/minCachedAt/projectCachedItemFromList) - W5/decision 5: process gates made mechanically enforceable (marker grammar + check scripts + featureGrid/diagram throw-on-missing, wired into build+CI) - W1: Track-D = repoint 2 hrefs (default), not author a new tutorial - seam-coverage: table-backed plugins (organization/twoFactor/admin/apiKey) require R1 schema-gen; only bearer/jwt are turnkey via R0 - W0: Mermaid pipeline gets determinism/rollback gate (temp-render diff + defer-not-block) Audit trail: panel/fold-in.md. Next: OpenHands PLAN-EVAL cycle 2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
|
@openhands-agent model=openrouter/minimax/minimax-m3 output=pr-comment use harness PLAN-EVAL — docs-v4-ia-deepening (cycle 2 of 2, FINAL)You are the PLAN-EVAL evaluator (separate session from the generator). This is the layered PLAN This is a PLANNING evaluation only. Do NOT author docs, do NOT change framework code, do NOT touch What changed since cycle 1
NOTE/CORRECTION you should verify: cycle-1 plan-eval.md stated Inputs to read (under
|
OpenHands Agent — CompletedModel: openrouter/minimax/minimax-m3 OpenHands Run Summary — 27938414502-1Run-id: 27938414502-1 SummaryPerformed the FINAL PLAN-EVAL pass on the Headline: ChangesDeliverable artifacts written
PR-comment body (cycle 2)A PR-comment body for PR #107 (rendered verbatim from the
Source-tree / framework changes
ValidationThis is a planning-only PR (per Spot-checks performed (read-only, source-grounded):
Responses to review comments or issue comments
Remaining risks
|
Layer A OpenHands minimax-M3 PLAN-EVAL cycle 2 = PASS (run 27938414502-1); Layer B WSL Codex panel findings all folded + re-verified. Hard stop lifted; build phase (W0-W6 + R0 seam) unblocked. 3 IA questions ruled (split BG/DW; pillar-local Reference + thin index; Fresh examples prose-now). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
…ith stable id seamless-auth-roadmap Carries the auth-better-auth seamless-integration roadmap (R0 passthrough through R5 plugin-aware Principal mapping) from PR #107 onto docs/v4-ia-build, adding a backtick stable id so the caveat-reference gate can resolve arch-debt:seamless-auth-roadmap markers in the upcoming supervised marker pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
|
Closing as superseded. This is a planning-only PR — 58 files, all under The docs-v4 content it planned already shipped to Reopen if the planning trail is needed; the branch is left in place. |
docs-v4 IA-deepening — planning only (no docs/site or framework code)
Closes the structural critique on the merged v3 site (PR #106). Grounded by a 4-scout Phase-0
workflow (
wf_090ee054-3d5); artifacts under.llm/tmp/run/docs-v4-ia-deepening/.What this PR contains
plan.md— locked decisions, workstreams W0–W6, build/eval/merge flow.ia-tree.md— concrete 3-level Capability-Hub IA (Fresh promoted to a 10-page Web Layer section).seam-coverage.md— full capability seam audit.research.md,drift.md(D1 process failure), and thearch-debt.mdauth roadmap entry.Headline findings
Concepts→Quickstart→How-To→Reference per pillar;
@netscript/freshbecomes its own multi-pageWeb Layer section grounded in verified export subpaths.
are mountable only via the undocumented
createBetterAuthBackend({ auth })escape hatch; thedocumented
createNetscriptBetterAuthfactory has nopluginsfield. Every other pillar ishonestly seamed or documented-as-limitation.
roadmap (R1 schema-gen · R2 InteractiveFlowPort · R3 org/tenant primitives · R4
defineAuth()builder · R5 mappers/adapters/CLI) in
arch-debt.md.fragile (hand-authored SVGs, mmdc render not wired to build, soft-degrade to alt-text). Fix =
real Mermaid pipeline wired into build + a missing-asset build gate.
wrong_stepcards on the Fresh page (all 4 tutorials exist — no dead entries).caveat-harvest, link-integrity build gate, seam-coverage discipline.
Gate
This is a hard PLAN gate: a WSL Codex adversarial panel + an OpenHands minimax-M3 PLAN-EVAL must
PASS before any authoring/build. No
docs/siteor framework changes until then.🤖 Generated with Claude Code