docs(readme): back to the short one
This commit is contained in:
@@ -1,70 +1,34 @@
|
|||||||
# beaver-land
|
# Chief Beaver Officer land
|
||||||
|
|
||||||
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`.
|
landing page for LifeOS - obsidian vault structure + AI agent prompt.
|
||||||
|
built with sveltekit, tailwind, mdsvex. deploys as static site.
|
||||||
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:
|
what it does:
|
||||||
|
- explains the LifeOS concept
|
||||||
- explains the idea: a vault as the operating system of a life, an agent as its manager
|
- interactive obsidian component to explore vault structure
|
||||||
- interactive obsidian mock to explore the vault structure and the agent's zone
|
- prompt builder with raycast preset links
|
||||||
- prompt builder with raycast preset links (the voice granules, assembled at build time)
|
- docs for the whole beaver setup (`/docs`)
|
||||||
- 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, shiki
|
|
||||||
|
|
||||||
content:
|
content:
|
||||||
`src/content/` has two kinds of files, and the difference matters:
|
- `src/content/synced/` is generated by `bun scripts/sync-content.mjs` from the vault and the sibling repos, never edited by hand
|
||||||
|
- `src/content/{ru,en}/` is the mock vault, hand-written; personal files are approximations at their real paths
|
||||||
|
- the script needs `~/.config/beaver-land/forbidden.txt` (hosts, ids, nicknames) and refuses to run without it
|
||||||
|
|
||||||
- **synced** (`src/content/synced/{prompts,skills,code}/`) - copied verbatim
|
stack:
|
||||||
from the vault and the sibling repos, because they hold nothing personal.
|
- sveltekit + static adapter, tailwind css, webgl
|
||||||
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:
|
run:
|
||||||
|
|
||||||
```
|
```
|
||||||
bun i
|
bun i
|
||||||
bun dev
|
bun dev
|
||||||
```
|
```
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
|
||||||
```
|
```
|
||||||
bun run build
|
bun run build
|
||||||
```
|
```
|
||||||
|
|
||||||
creds:
|
creds:
|
||||||
|
|
||||||
- [raycast.com](https://raycast.com) (and my aww tysm) for design
|
- [raycast.com](https://raycast.com) (and my aww tysm) for design
|
||||||
- [liquid-glass-js](https://github.com/dashersw/liquid-glass-js) for header
|
- [liquid-glass-js](https://github.com/dashersw/liquid-glass-js) for header
|
||||||
- `claude --dangerously-skip-permissions` for implementation
|
- `claude --dangerously-skip-permissions` for implementation
|
||||||
|
|||||||
Reference in New Issue
Block a user