feat: add ingest disposition triage with no-material stop path

Replace the unconditional fetch+compile rule with a disposition
(New / Update / Disputed / No material) stated after a wiki search.
No-material sources stay in raw/ and are logged with their disposition,
so thin sources no longer get forced into articles and lint can later
tell disposed stock from genuinely unreferenced raw files.
This commit is contained in:
Yuhan Lei
2026-07-23 22:01:44 +08:00
parent 9e8c4f44ce
commit 01898a68fd
2 changed files with 22 additions and 5 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ This skill gives you three operations:
| Operation | What it does | Output |
|-----------|--------------|--------|
| **Ingest** | Collects a source into `raw/` and compiles it into the wiki | New or updated wiki pages |
| **Ingest** | Collects a source into `raw/`, triages it, then creates or updates wiki articles — or just logs it when nothing is new | New or updated wiki pages |
| **Query** | Searches the wiki and answers with citations | Grounded answers linking to markdown pages |
| **Lint** | Checks index integrity, links, and wiki health | Auto-fixes plus reported issues |
+21 -4
View File
@@ -40,7 +40,7 @@ If Query or Lint cannot find the wiki structure, tell the user: "Run an ingest f
## Ingest
Fetch a source into raw/, then compile it into wiki/. Always both steps, no exceptions.
Fetch a source into raw/, then compile it into wiki/ — unless the source adds nothing new. Always fetch; whether to compile depends on the triage below.
### Fetch (raw/)
@@ -57,6 +57,17 @@ Fetch a source into raw/, then compile it into wiki/. Always both steps, no exce
See `references/raw-template.md` for the exact format.
### Triage
After saving the raw file and before editing wiki/, search wiki/ with the source's key entities and synonyms, then state the disposition:
- **New** — creates one or more new articles.
- **Update** — merges into existing article(s).
- **Disputed** — contradicts existing content; may combine with New or Update (see Compile for conflict annotation).
- **No material** — adds no knowledge beyond what the wiki already holds. Keep the raw file, log it (see Post-Ingest), and stop. Do not force an article out of a thin source.
New, Update, and Disputed may be combined. No material is exclusive.
### Compile (wiki/)
Determine where the new content belongs:
@@ -90,11 +101,17 @@ Append to `wiki/log.md`:
```
## [YYYY-MM-DD] ingest | <primary article title>
- Disposition: <New; Update; Disputed>
- Raw: <raw file path>
- Updated: <cascade-updated article title>
- Updated: <another cascade-updated article title>
```
Omit `- Updated:` lines when no cascade updates occur.
Omit `- Updated:` lines when no cascade updates occur. For No material, log and stop:
```
## [YYYY-MM-DD] ingest | no material: <raw file name>
- Disposition: No material
```
---
@@ -184,4 +201,4 @@ Append to `wiki/log.md`:
- wiki/ supports one level of topic subdirectories only. No deeper nesting.
- Today's date for log entries, Collected dates, and Archived dates. Updated dates reflect when the article's knowledge content last changed. Published dates come from the source (use `Unknown` when unavailable).
- Inside wiki/ files, all markdown links use paths relative to the current file. In conversation output, use project-root-relative paths (e.g., `wiki/topic/article.md`).
- Ingest updates both `wiki/index.md` and `wiki/log.md`. Archive (from Query) updates both. Lint updates `wiki/log.md` (and `wiki/index.md` only when auto-fixing index entries). Plain queries do not write any files.
- Ingest updates both `wiki/index.md` and `wiki/log.md` (a No material ingest updates only the log). Archive (from Query) updates both. Lint updates `wiki/log.md` (and `wiki/index.md` only when auto-fixing index entries). Plain queries do not write any files.