Repository navigation
docs(onboarding): make deploy/compose the primary onboarding path #109
Description
schemaVersion: requirement-record.v1
revision: R1
status: needs-design
priority: P1
productOwner: "@PeterGuy326"
technicalOwner: "unassigned"
userOutcome: "A first-time user takes deploy/compose as the documented primary path to a working mem (netdisk) instance, with the bare-metal development path clearly demoted to development-only and given WSL/Linux equivalence."
requirements:
- REQ-001
- REQ-002
- REQ-003
acceptanceCriteria:
- AC-001
- AC-002
- AC-003
parent: null
dependencies: []
supersedes: []
lastDecisionAt: nullUser problem and observable outcome
Ops dogfood (2026-08-29): the bare-metal development path demands Go 1.25 / Python 3.11 / uv / protoc 34.1 / PostgreSQL@17+pgvector / MinIO / Ollama with macOS-brew-leaning docs and no WSL/Linux equivalents (ops machine satisfied none); meanwhile deploy/compose proved a fully working one-shot path — six services healthy, first-user registration and folder creation completed through the browser (localhost:8080, verifiable). Conclusion: the container path is the shortest time-to-value and should be the primary onboarding entry. Observations are evidence input; implementation truth belongs to Tech P9.
Observable outcome: README/onboarding leads with deploy/compose; bare-metal is demoted to a development-only section with platform-equivalent guidance; first-time guidance points at the container path.
Requirements
- REQ-001: Onboarding repositioning — README and onboarding docs present
deploy/composeas the primary entry (ops-verified one-shot: generate-env → compose up → register → folder creation); the verified closed loop is stated with evidence vocabulary. - REQ-002: Bare-metal demotion with equivalence — the bare-metal development path is demoted to development-only and gains WSL/Linux equivalence for every macOS-brew step (version pins explicit).
- REQ-003: First-time guidance — doctor/first-run messaging points first-time users to the container path; onboarding runbook evidence recorded per ledger discipline (ops logs as input).
Acceptance criteria
- AC-001: Docs fixture — README/onboarding lead with the container path; bare-metal section demoted and version-pinned with WSL/Linux equivalents.
- AC-002: Runbook evidence — the container-path closed loop (up → register → folder creation) is evidenced on a clean environment.
- AC-003: Guidance fixture — first-time messaging points at the container path; no bare-metal-first instruction remains in the primary flow.
Non-goals and forbidden shortcuts
- No removal of the bare-metal development path (development use retained).
- No compose topology or service changes.
Lifecycle, status, priority, blockers, and open decisions
- status=needs-design; priority P1; technicalOwner unassigned (docs-heavy; assign at implementation kickoff).
- Blockers: none.
- Open decision: whether doctor-level container-path detection belongs here or in a shared doctor surface (coordinate with the doc environment-readiness issue if tech adjudicates a shared tooling home).
Evidence plan
- Docs fixtures plus container-path runbook evidence; ops deploy logs (mem_deploy.log / mem_assess.txt) as evidence input.
Decisions
- DEC-MEM-109-001 (2026-08-29T02:26:00Z): issue created per founder-approved dogfood intake (2026-08-29); ops deploy logs are evidence input; implementation truth belongs to Tech P9.
Revision history
- R1 (2026-08-29T02:26:00Z): initial record created per founder-approved draft C (dogfood P1 container-first onboarding).
Activity
waterbro-8 commentedon Aug 30, 2026
裁决摘要(技术 P9)
REQ-003 拆,不砍:已按
requirement-decision.v1移入新 issue #112(mem doctor/ first-run 指引面)。#109 收窄为纯文档 issue。取证基线:main @ 419a420。Owner
technicalOwner: "@waterbro-8"— owns the docs change and its evidence packet.@PeterGuy326or@Bindy-lbb(.github/CODEOWNERS):AGENTS.mdstep 6 forbids author self-approval, and the technical owner is the author here.What #109 keeps, with the scope sharpened against the actual tree
Verified so the ACs are checkable rather than aspirational:
docs/RUN_LOCAL.md:24tells the user to install PostgreSQL + pgvector via brew, andscripts/dev_up.sh:31,117,208resolveBREW_PREFIXand otherwise die withbrew install ...instructions.README.md:181(开发环境) lists Go 1.25 / Python 3.11 / uv / protoc 34.1 / Docker as prerequisites with no platform notes.docs/DEPLOYMENT.md:99already documents a "Single-node Compose" profile, anddeploy/compose/carriesgenerate-env.shplus an eight-servicecompose.yaml(postgres, redis, minio, minio-init, migrate, worker, memd, web). What is missing is exactly what the ops dogfood hit:README.md:231快速开始 tells a first-time visitor to run./scripts/dev_up.sh, i.e. the bare-metal path, and never mentionsdeploy/compose.docs/DEPLOYMENT.mdfor the profile detail; duplicating compose prose into README is refused, because the two would drift andDEPLOYMENT.mdis the owner of that content.setsid/keg-only path resolution indev_up.sh— with version pins stated per platform, and with the macOS path still first-class (non-goal: no removal of the bare-metal path).Suggested labels (needs a maintainer — this account cannot write)
waterbro-8has no body/label write rights upstream (PATCH issue and POST labels both 403, admin required). Please @PeterGuy326: retypetype:feature→type:docs, addarea:docs, addevidence:e2-source(source-level premise above; the ops clean-environment container runbook required by AC-002 is what raises it to E3), and set the lifecycle label once the record is at R2.priority:p1and the user outcome are unchanged by this revision.—— 技术 P9
PeterGuy326 commentedon Sep 1, 2026
R2 owner decision — docs-only, Compose-first onboarding
This comment is the effective product-owner R2 decision. It supersedes earlier proposed R2 wording that was not posted by the product owner. The delivery contract is ready; it is not a PR approval or merge authorization.
Approved scope
generate-env→compose up→ register → create a folder.Boundaries and non-goals
This is a documentation-only change. It does not authorize changes to runtime behavior, a doctor or first-run CLI surface, Compose topology, Docker behavior, service configuration, or model defaults. The doctor/first-run capability remains exclusively in #112.
Implementation may now be planned against R2 with normal independent review, required CI, and merge evidence still required.
sun-970 commentedon Sep 8, 2026
Review notes
The R2 narrowing looks sound. A few observations:
REQ-001 scope is well-bounded. The README currently points first-time users at
./scripts/dev_up.sh(line 231) with zero mention ofdeploy/compose. The fix is a reorder + a pointer todocs/DEPLOYMENT.md, not duplicate prose. Good — duplication would drift.REQ-002 checklist is concrete and verifiable. The three brew-shaped steps (PostgreSQL+pgvector, MinIO binary,
setsid/keg-only resolution indev_up.sh) are enumerable, so AC-001 can be objectively checked. Suggest formatting the per-platform version pins as a table for easy scanning.AC-002 evidence bar is appropriate. A clean-host runthrough of the full four-step closed loop (generate-env → compose up → register → folder creation) with reproducible logs is a reasonable acceptance threshold. Consider recording the session as an asciinema cast or timestamped log snippet so future reviewers can verify without re-running the full stack.
Label housekeeping is still pending. The issue still carries
type:feature— per the R2 decision it should betype:docs+area:docs. @PeterGuy326, could you update the labels when you get a chance?No blockers from my side. The dependency chain (#109 docs → #112 doctor CLI surface) is correctly ordered so P1 delivery is not gated by P2 CLI work.
wadrzl commentedon Sep 8, 2026
Issue #109 Verification (2026-09-08)
Baseline: origin/main read today. R2 scope (REQ-003/AC-003 moved to #112). No open PR targets this issue; PRs #126, #148 (docs) and #131 (doctor, retargeted to #112) all closed without merge.
Requirements (R2 scope)
Acceptance criteria (R2 scope)
Closed PRs — what they attempted and why they did not land
Adjacent state
Summary
0/2 requirements met. 0/2 ACs met (R2 scope). Three attempts closed without merge; no open successor. The docs change itself is small (README reorder + one platform table) but has not cleared review. Owner @waterbro-8 is recorded; no label housekeeping done (still type:feature, should be type:docs per R2).
waterbro-8 commentedon Sep 17, 2026
Organization-branch PR: #215.
README now leads with
deploy/compose(generate-env→compose up --wait→ register at localhost:8080). Bare-metaldev_up.shis a development-only subsection.docs/RUN_LOCAL.mdadds Ubuntu/Debian and WSL2 equivalents for the brew-only steps.AC-003 first-run messaging already names
deploy/composeonmainviamem doctor(#112). Compose closed-loop on a clean host is NOT VERIFIED in this environment (no Docker daemon). Previous fork #148 remains closed. No merge.docs(onboarding): make deploy/compose the primary onboarding path (#109)