A user guide at /docs/, matched to the 0.3 interface #189

Merged
nectenda-agent merged 4 commits from worktree-nec-63-user-guide into main 2026-09-26 20:25:14 +01:00
Collaborator

Task: NEC-63 — https://projectron.nerchure.com/tasks/63

A user guide at nectenda.com/docs/: 25 guides in six groups, modelled on the structure that works in Relay's docs (see docs/ux-review-relay.md).

  • Renderer (site/docs.mjs):
    • Markdown with frontmatter, rendered into the site's existing design
    • a sidebar that becomes a menu on phones, "On this page", related guides, previous/next
    • callouts, and captioned figures
    • no JavaScript, and raw HTML is refused
    • verify notes and screenshot briefs are comments: the build lists them and never publishes them
    • site/docs.test.mjs covers each rule, and each was mutation-checked
  • Guides, each in the same shape (Before you start, Steps with exact labels in bold, Check the result, Troubleshooting, Related):
    • Get started
    • Share and collaborate
    • Manage access
    • Your account
    • Keep your notes safe
    • Troubleshooting (including a sync-status icon reference)
    • Self-hosting (which says honestly that it is not available yet)
  • Labels kept honest: scripts/guide-labels.test.mjs runs in the root lint on every PR. No guide may use a retired label, and every "Nectenda: …" item or "…" button a guide quotes must exist in the plugin's source. Mutation-checked.
  • Screenshots: ten, generated reproducibly by packages/e2e/docs-shots.mts --guides against a local shard. Seven need a person: Obsidian's plugin browser, the recovery key dialog, payment, device limit, and two others; the build lists them.
  • Plugin wording the guides quote, brought to the glossary:
    • the recovery dialogs say "passphrase"
    • the share notice no longer says "mapped"
    • two notices say "passphrase"
    • your own row in the people dialog no longer offers Remove
  • 14 verify notes remain as comments, for facts no code change settles: upgrade timing, Obsidian Sync's settings path, mobile access to .nectenda-backups, and similar. They are listed in the build output.

docs/positioning.md was checked: no "open source", "zero knowledge", "audited" or "no metadata" claims.

Tested:

  • Local gate: unit tests, typecheck, lint (including the guide label test), mirror check.
  • Site build, and site tests (14).
  • Full multi-vault e2e: 93 passed.

Changelog

User guides are now published at nectenda.com/docs, and the recovery dialogs consistently say "passphrase".

🤖 Generated with Claude Code

https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR

Task: NEC-63 — https://projectron.nerchure.com/tasks/63 A user guide at **nectenda.com/docs/**: 25 guides in six groups, modelled on the structure that works in Relay's docs (see `docs/ux-review-relay.md`). - **Renderer** (`site/docs.mjs`): - Markdown with frontmatter, rendered into the site's existing design - a sidebar that becomes a menu on phones, "On this page", related guides, previous/next - callouts, and captioned figures - no JavaScript, and raw HTML is refused - verify notes and screenshot briefs are comments: the build lists them and never publishes them - `site/docs.test.mjs` covers each rule, and each was mutation-checked - **Guides**, each in the same shape (Before you start, Steps with exact labels in bold, Check the result, Troubleshooting, Related): - Get started - Share and collaborate - Manage access - Your account - Keep your notes safe - Troubleshooting (including a sync-status icon reference) - Self-hosting (which says honestly that it is not available yet) - **Labels kept honest**: `scripts/guide-labels.test.mjs` runs in the root lint on every PR. No guide may use a retired label, and every "Nectenda: …" item or "…" button a guide quotes must exist in the plugin's source. Mutation-checked. - **Screenshots**: ten, generated reproducibly by `packages/e2e/docs-shots.mts --guides` against a local shard. Seven need a person: Obsidian's plugin browser, the recovery key dialog, payment, device limit, and two others; the build lists them. - **Plugin wording** the guides quote, brought to the glossary: - the recovery dialogs say "passphrase" - the share notice no longer says "mapped" - two notices say "passphrase" - your own row in the people dialog no longer offers Remove - 14 verify notes remain as comments, for facts no code change settles: upgrade timing, Obsidian Sync's settings path, mobile access to `.nectenda-backups`, and similar. They are listed in the build output. `docs/positioning.md` was checked: no "open source", "zero knowledge", "audited" or "no metadata" claims. Tested: - Local gate: unit tests, typecheck, lint (including the guide label test), mirror check. - Site build, and site tests (14). - Full multi-vault e2e: 93 passed. ## Changelog User guides are now published at nectenda.com/docs, and the recovery dialogs consistently say "passphrase". 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Task: NEC-63

Twenty-five guides in site/content/docs/, grouped Get started, Share and
collaborate, Manage access, Your account, Keep your notes safe,
Troubleshooting and Self-hosting. Each is Markdown with frontmatter, rendered
by docs.mjs through its own marked instance into public/docs/<slug>/, with a
sidebar that folds into a <details> menu on phones, "On this page" from the
H2s, related guides and previous/next links. /docs/ lists them all, and the
sitemap is generated from the same list.

Task guides share one template (Before you start, Steps, Check the result,
Troubleshooting) and the build refuses one without it. It also refuses raw
HTML in a guide, a link to a guide that does not exist, and a page title that
does not name Obsidian. HTML comments carry verify notes and screenshot
briefs; they are stripped before rendering and printed by the build, so
neither is published. A screenshot not yet in content/docs/img/ is not drawn
and is listed as pending.

The reference check now walks every page under public/, not only the top
level, and resolves a trailing-slash path to its index.html.

Labels were checked against packages/plugin/src on main, and against the
worktree-nec-124-invite-to-folder branch for invite-to-folder, the People
dialog and "Add to this vault". Where a label is expected to change (NEC-125),
the guide uses the ux-review glossary word and says so in a verify note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Task: NEC-63

Beside Pricing rather than inside the Product menu: the guides answer "how
do I use it", for people who have already installed it, and a link hidden in
a menu is one most of them will not find. Four entries still fit the phone
row at 360px. Every page under /docs/ marks Docs as current.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Task: NEC-63

`npm test` in site/ runs docs.test.mjs. It lives there, and runs in
deploy-site.yml rather than the root lint, because marked is installed only
in site/, outside the pnpm workspace. `site/**` in the workflow's paths
already covers every guide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Bring the guides up to the 0.3 interface, with screenshots and a label check
Some checks failed
Release note / release-note (pull_request) Successful in 12s
CI / build (pull_request) Successful in 5m26s
CI / e2e (pull_request) Successful in 5m37s
CI / promote (pull_request) Has been skipped
Deploy site / deploy (push) Successful in 59s
CI / e2e (push) Successful in 5m58s
CI / build (push) Successful in 6m8s
CI / promote (push) Has been cancelled
dd4f4cb437
The guides were drafted while #186-#188 were in review; this matches every
label and path to the plugin as merged (Shared with you, This vault, the
Security / Editing / Advanced pages, People…, Stop syncing here), and
removes the verify notes those merges settled. Fourteen that no merge can
settle stay, as comments the build lists and never publishes.

- scripts/guide-labels.test.mjs: no guide uses a retired label, and every
  "Nectenda: …" item or "…" button a guide quotes exists in the plugin's
  source. In scripts/ so the root lint runs it on every pull request,
  since it is a plugin change that breaks a guide. Mutation-checked.
- Ten screenshots from docs-shots.mts --guides, which now also shoots the
  sign-in screen and the share menu, clears stray notices, and writes
  each guide's image at half size. Seven remain for a person to take.
- Plugin wording the guides quote, brought to the glossary: the recovery
  dialogs say passphrase, the share notice no longer says "mapped", and
  your own row in the people dialog no longer offers Remove.

Task: NEC-63

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Nectenda/nectenda!189
No description provided.