feat: incoming/ as a queue - raw pending picks the next entry, raw accept takes a whole folder, a file in a subdirectory of incoming/ is refused (#112)
CI / verify (push) Successful in 5m24s
CI / pwsh (push) Successful in 1m58s
Release / release (push) Successful in 35s

Files changed:
- CHANGES.md
- README.md
- VERSION
- instructions/ingest-large-tree.md
- instructions/wiki-ingest/SKILL.md
- raw/CONTRACT.md
- tools/CONTRACT.md
- tools/chemenu/cli_contract.py
- tools/chemenu/commands/raw_cmd.py
- tools/chemenu/tests/test_raw_cmd.py
- tools/chemenu/tests/test_raw_fetch.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-03 09:49:20 +02:00
1 parent c4dcff76e6
commit 59c06e5ddc
11 files changed
+1009 -182

No files matched your search

+11 -8
View File
@@ -90,7 +90,7 @@ chemenu/
├── mcp-upload/ # QUARANTINE (optional): the MCP `submit` tool's write path, gitignored -
│ # read by no command in the ordinary pipeline; a human reviews it with
│ # `wikitool upload list/show/accept/reject`
├── incoming/ # INBOX: flat, content gitignored - drop a file here, `raw accept` promotes it
├── incoming/ # INBOX: content gitignored - drop a file or one folder per source here, `raw accept` promotes it
├── raw/ # INPUT: immutable, untrusted source material
│ ├── CONTRACT.md # Date shard, capture fields, immutability, untrusted content
│ ├── 2026/09/ # Where `raw accept` puts a file: the month it was accepted
@@ -185,12 +185,14 @@ working *with* it.
### Adding Knowledge (Ingest)
1. Drop a file into `incoming/` - flat, no classification to make. Everything past that
(the destination in `raw/`, which is a `YYYY/MM` shard of the day it was accepted,
and whether several files of one source get bundled) is computed by
`tools/wikitool raw accept`, never chosen by hand
2. Tell the LLM: `Ingest incoming/my-article.md`. It will ask you two things before
promoting: how faithful the capture is (`fidelity`) and what the material may claim
1. Drop a file into `incoming/` - directly, no classification to make. Files that belong
together go into one folder there instead: a folder is one source, accepted whole with
its structure kept. Everything past that (the destination in `raw/`, which is a `YYYY/MM`
shard of the day it was accepted, and whether several files of one source get bundled)
is computed by `tools/wikitool raw accept`, never chosen by hand
2. Tell the LLM: `Ingest incoming/my-article.md` - or just `Ingest`, which takes the oldest
entry waiting in `incoming/` (`tools/wikitool raw pending` lists them). It will ask you
two things before promoting: how faithful the capture is (`fidelity`) and what the material may claim
about its subject (`authority`). Both are recorded once and never guessed - they are
knowable now and unrecoverable later
3. The LLM will:
@@ -285,7 +287,8 @@ tools/wikitool types describe entity
### For You (Human)
1. **Curate sources** - Drop files you want processed into `incoming/` (flat)
1. **Curate sources** - Drop files you want processed into `incoming/` - directly, or one folder
per source
2. **Ask questions** - Query the wiki naturally
3. **Review changes** - Check `kb/log.md` and `kb/index.md`
4. **Direct the LLM** - Guide it on what to emphasize or investigate