docs: Obsidian-style vault under docs/
Add a navigable Obsidian vault as the project's first-class technical documentation. Notes cross-reference with [[wikilinks]]; docs/index.md is the Map of Content. New notes: index.md MOC, entry point architecture.md what the extension owns vs what lives outside data-model.md entity-by-entity schema reference menu-tree.md the arbitrary-depth tree concept order-flow.md state machine + invoice listener + print nostr-layer.md kinds 0/30402/5/1059, signing, t-tags api-reference.md endpoint catalog by audience cms.md Vue 3 + Quasar 2 UMD conventions, q-tree webapp-integration.md multi-restaurant cart pattern + atomicity glossary.md domain terms Existing notes (kept as-is): adr-0001-menu-tree.md the storage choice rationale design-conversation.md trimmed transcript README.md adds a Documentation section pointing at docs/index.md with the headline note list. Each note links to ~3-5 others; the vault forms a connected graph. A project-level memory rule (saved outside the repo) commits us to keeping these docs in sync as the code evolves: any commit that materially changes schema, API, order flow, Nostr surface, CMS conventions, or webapp integration must update the relevant note(s) in the same commit.
This commit is contained in:
parent
7f7915a041
commit
42a8b08a5b
11 changed files with 1015 additions and 0 deletions
50
docs/index.md
Normal file
50
docs/index.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Restaurant extension — docs
|
||||
|
||||
Map of Content for the restaurant LNbits extension.
|
||||
|
||||
> Treat this folder as an Obsidian vault: notes use `[[wikilinks]]` to
|
||||
> cross-reference. Open the folder in Obsidian (or any markdown editor
|
||||
> that resolves bare-name links) for the full graph.
|
||||
|
||||
## Start here
|
||||
|
||||
- [[architecture]] — what the extension is and how it sits inside
|
||||
LNbits, alongside the customer webapp and Nostr.
|
||||
- [[glossary]] — domain terms used throughout the docs.
|
||||
|
||||
## Concepts
|
||||
|
||||
- [[data-model]] — every table, every relationship.
|
||||
- [[menu-tree]] — the arbitrary-depth menu structure (capped at 4
|
||||
levels), where items can attach to any node.
|
||||
- [[order-flow]] — the order state machine, the invoice listener,
|
||||
and the kitchen pipeline.
|
||||
- [[nostr-layer]] — what we publish to Nostr (kind 0, kind 30402,
|
||||
kind 5) and what we listen for (kind 1059, scaffolded).
|
||||
|
||||
## Surface
|
||||
|
||||
- [[api-reference]] — REST endpoints organized by audience
|
||||
(public read, customer order placement, owner CRUD).
|
||||
- [[cms]] — the operator UI: Vue 3 + Quasar 2 UMD conventions,
|
||||
template structure, q-tree menu builder.
|
||||
- [[webapp-integration]] — how the AIO webapp aggregates multiple
|
||||
restaurants into a single cart and pays each one's invoice.
|
||||
|
||||
## Decisions
|
||||
|
||||
- [[adr-0001-menu-tree]] — why an adjacency list with materialized
|
||||
path, not a closure table or `ltree`.
|
||||
|
||||
## Process
|
||||
|
||||
- [[design-conversation]] — trimmed transcript of the design
|
||||
discussion that produced the initial scaffold. Keep for
|
||||
rationale that didn't make it into commit messages.
|
||||
|
||||
## Maintenance
|
||||
|
||||
This vault is the project's first-class technical documentation.
|
||||
Every commit that changes the surface listed in [[architecture]] or
|
||||
the rules above must update the matching note(s) in the same commit.
|
||||
Stale docs are worse than no docs.
|
||||
Loading…
Add table
Add a link
Reference in a new issue