Konverter .gitea/scripts/wiki_mirror.py, Push-Skript wiki-push.sh, Job wiki-mirror in release.yml, Dispatch-Workflow wiki-mirror.yml und --check-Schritt in ci.yml. Version 9.0.0-beta.13. Files changed: - .gitea/scripts/wiki-push.sh - .gitea/scripts/wiki_mirror.py - .gitea/workflows/ci.yml - .gitea/workflows/release.yml - .gitea/workflows/wiki-mirror.yml - CHANGES.md - README.md - VERSION - docs/dev/development.md - tools/chemenu/tests/test_wiki_mirror.py Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
107 lines
5.3 KiB
Markdown
107 lines
5.3 KiB
Markdown
# Chemenu - Personal IT Knowledge Base
|
|
|
|
A structured, LLM-maintained knowledge base for your personal IT work.
|
|
|
|
Chemenu is a pattern for a personal knowledge base maintained by an LLM. Instead of going back
|
|
to the raw documents for every question, the LLM **incrementally builds and maintains a
|
|
persistent wiki** that compounds over time: knowledge is compiled once and kept current, not
|
|
re-derived on every question.
|
|
|
|
## Getting started
|
|
|
|
Two starting points, depending on what you're doing:
|
|
|
|
- **A new instance.** Every instance is installed from a release, into an empty folder you
|
|
choose: you give your agent one sentence, and it follows `instructions/setup-instance.md` from
|
|
the latest release - preflight, git init, author identity, an optional remote, your authoring
|
|
conventions and persona, the first commit. The sentence, what the agent will ask you, and what
|
|
to do when it stops are in [INSTALL.md](INSTALL.md).
|
|
|
|
- **A further checkout of an instance you already have** (a second machine). Clone the
|
|
instance's own repository, then run the preflight and publish the skills, which are
|
|
**generated and not committed**:
|
|
|
|
```bash
|
|
tools/preflight.sh # checks python/git/rg, records their paths, creates tools/.venv
|
|
# (PowerShell 7 on Windows: tools/preflight.ps1, see instructions/preflight.md)
|
|
tools/wikitool instructions sync
|
|
```
|
|
|
|
`tools/wikitool` refuses to start (exit 42) until the preflight has passed; if it stops
|
|
instead, its output says what to install - `instructions/preflight.md`. `instructions sync`
|
|
copies each `instructions/<name>/SKILL.md` into `.agents/skills/` (GitHub Copilot, Codex CLI,
|
|
Mistral Vibe) and `.claude/skills/` (Claude Code). Full procedure:
|
|
`instructions/bootstrap.md`.
|
|
|
|
<!-- dist:strip-start -->
|
|
- **Working on the stack itself.** A clone of this repository is a development checkout, with
|
|
a demo corpus; it is never an instance. Setting it up, and `dist export` as
|
|
the build and test tool it is, are in `docs/dev/development.md` (for you) and
|
|
`instructions/dev/dev-setup.md` (for the agent).
|
|
<!-- dist:strip-end -->
|
|
|
|
## Documentation
|
|
|
|
The human documentation lives under `docs/`, sorted by what you want from it:
|
|
|
|
- [docs/tutorials/](docs/tutorials/README.md) - learning: a guided first walk through an
|
|
instance, starting with the installation in [INSTALL.md](INSTALL.md).
|
|
- [docs/how-to/](docs/how-to/README.md) - doing: one task per page, for the operator of an
|
|
instance.
|
|
- [docs/reference/](docs/reference/README.md) - looking up: commands, exit codes, skills, page
|
|
types, configuration. The command reference is
|
|
[docs/reference/commands/](docs/reference/commands/README.md); agents use the same records in
|
|
[tools/CONTRACT.md](tools/CONTRACT.md).
|
|
- [docs/explanation/](docs/explanation/README.md) - understanding: why the stack is built the way
|
|
it is.
|
|
|
|
Most days you need three of the how-to guides: [ingest a source](docs/how-to/ingest-a-source.md),
|
|
[query the wiki](docs/how-to/query-the-wiki.md) and [maintain it](docs/how-to/maintain-the-wiki.md).
|
|
How the parts fit together is [docs/explanation/architecture.md](docs/explanation/architecture.md).
|
|
|
|
<!-- dist:strip-start -->
|
|
The Gitea wiki of this repository shows these pages for the latest release. It is generated from
|
|
`docs/` and not edited; how it is built is in [docs/dev/development.md](docs/dev/development.md).
|
|
<!-- dist:strip-end -->
|
|
|
|
## Your first ingestion
|
|
|
|
Once the instance runs, [From your first source to your first answer](docs/tutorials/first-source-to-first-answer.md)
|
|
takes a sample document that ships with it through an ingest and a cited answer, step by step.
|
|
|
|
## Changelog
|
|
|
|
Changes to the wiki stack (schema, skills, `wikitool`, READMEs) are tracked in
|
|
[`CHANGES.md`](CHANGES.md), not in an inline version history here.
|
|
|
|
## Resources
|
|
|
|
- Original idea: [Andrej Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
|
|
- Extended with: [agentmemory](https://github.com/rohitg00/agentmemory) patterns
|
|
- Search tool: [qmd](https://github.com/tobi/qmd) (for scaling)
|
|
|
|
## License
|
|
|
|
Chemenu is dual-licensed, because it is two things in one repository.
|
|
|
|
| Half | Licence | File |
|
|
|------|---------|------|
|
|
| The stack — `tools/`, `types/` | GNU AGPL-3.0-or-later | [LICENSE](LICENSE) |
|
|
| The content — `kb/`, `raw/`, `instructions/`, the `CONTRACT.md` layer, and the prose documents at the root | CC-BY-4.0 | [LICENSE-CONTENT](LICENSE-CONTENT) |
|
|
|
|
The boundary between the two is not a list someone maintains by hand: it is the
|
|
file plan `tools/wikitool dist export` already computes, so it cannot drift out
|
|
of agreement with what actually ships. [NOTICE](NOTICE) states that, and carries
|
|
the attribution for the vendored [Commonplace](https://github.com/zby/commonplace)
|
|
research base.
|
|
|
|
**What this means for your own wiki.** The pages you write in your own instance
|
|
are yours; the AGPL covers the compiler, not the knowledge it compiles. What the
|
|
copyleft asks is that changes *to the machinery* stay available — including when
|
|
you run it as a service rather than shipping it, which is why the licence is the
|
|
Affero variant.
|
|
|
|
If you set up an instance and later publish it, keep `LICENSE`, `LICENSE-CONTENT`
|
|
and `NOTICE` in the tree. `dist export` puts them there and refuses to build a
|
|
distribution without them, so under normal use this takes no effort.
|