feat(docs,content,ui): the documentation, twelve modules with the synced config beside the text, search, layers, themes and screenshots; the mock vault as templates
This commit is contained in:
@@ -1,28 +1,70 @@
|
||||
# Chief Beaver Officer land
|
||||
# beaver-land
|
||||
|
||||
landing page for LifeOS - obsidian vault structure + AI agent prompt.
|
||||
built with sveltekit, tailwind, mdsvex. deploys as static site.
|
||||
the site of the Beavering Manager: a landing page, a mock vault and the documentation for the whole [beaver](https://git.kotikot.com/beaver) setup. sveltekit + adapter-static, russian first with an english mirror under `/en`.
|
||||
|
||||
hand this repository to your own AI agent: the documentation is inside (`src/lib/docs/modules.{ru,en}.ts`), the vault layout is inside (`src/content/{ru,en}/vault/`), and the real config of my setup is copied in verbatim (`src/content/synced/`). it will work out the setup faster than a human reading the site.
|
||||
|
||||
what it does:
|
||||
- explains the LifeOS concept
|
||||
- interactive obsidian component to explore vault structure
|
||||
- prompt builder with raycast preset links
|
||||
|
||||
- explains the idea: a vault as the operating system of a life, an agent as its manager
|
||||
- interactive obsidian mock to explore the vault structure and the agent's zone
|
||||
- prompt builder with raycast preset links (the voice granules, assembled at build time)
|
||||
- documentation: twelve modules by depth of immersion, each step marked with its layer (gateway core, my setup, the optional ring around), the real config or a screenshot beside the text, a glossary on hover, search, light and dark themes
|
||||
|
||||
stack:
|
||||
- sveltekit + static adapter, tailwind css, webgl
|
||||
|
||||
- sveltekit + static adapter, tailwind css, webgl, shiki
|
||||
|
||||
content:
|
||||
`src/content/` has two kinds of files, and the difference matters:
|
||||
|
||||
- **synced** (`src/content/synced/{prompts,skills,code}/`) - copied verbatim
|
||||
from the vault and the sibling repos, because they hold nothing personal.
|
||||
generated, never edited by hand:
|
||||
|
||||
```
|
||||
bun scripts/sync-content.mjs # BEAVER_VAULT=~/path/to/vault to override
|
||||
```
|
||||
|
||||
- **hand-written** (`src/content/{ru,en}/`) - the mock vault (`vault/`), with
|
||||
the files that do hold personal data in the real one replaced by
|
||||
approximations at their real paths (the dispatcher/curator/distiller
|
||||
overlays, the people/diary/roadmap/tasks/home/finance skills, the profile,
|
||||
the corrections, the index, the curator log, the digests, the user lines),
|
||||
plus `code/` for the compose file. they show the shape and the kind of
|
||||
content that belongs there, with invented examples; the real ones are never
|
||||
copied. `en/prompts/` and `en/skills/` mirror `synced/` with translations of
|
||||
the files that are in russian; russian is the source of truth and nothing is
|
||||
translated from english into russian.
|
||||
|
||||
the sync script scans every tree and aborts when a forbidden string reaches
|
||||
`src/content/`. neither list lives in this repo: people's names are read from
|
||||
`👤 люди/` at run time, hosts, ids and nicknames from
|
||||
`~/.config/beaver-land/forbidden.txt` (`BEAVER_FORBIDDEN` overrides the path;
|
||||
one string per line, `#` comments). without that file the script refuses to
|
||||
run.
|
||||
|
||||
screenshots in `static/shots/` come from the fixture stands of the other repos
|
||||
(`beaver-gateway/t/smoke`, `beaver-plugin-obsidian/preview`,
|
||||
`beaver-calendar/preview`), never from real data; one light and one dark file
|
||||
per shot, the docs pick the one matching their theme. the recipe is in
|
||||
`static/shots/PROVENANCE.md`.
|
||||
|
||||
run:
|
||||
|
||||
```
|
||||
bun i
|
||||
bun dev
|
||||
```
|
||||
|
||||
build:
|
||||
|
||||
```
|
||||
bun run build
|
||||
```
|
||||
|
||||
creds:
|
||||
|
||||
- [raycast.com](https://raycast.com) (and my aww tysm) for design
|
||||
- [liquid-glass-js](https://github.com/dashersw/liquid-glass-js) for header
|
||||
- `claude --dangerously-skip-permissions` for implementation
|
||||
|
||||
Reference in New Issue
Block a user