stack: SKILL.md-Links auf repo-root-relative Pfade umgestellt, docs verify/instructions verify pruefen Linkziele
Files changed: - CHANGES.md - VERSION - instructions/CONTRACT.md - instructions/dev/doc-pull-through.md - instructions/dev/stack-close/SKILL.md - instructions/dev/stack-dev/SKILL.md - instructions/wiki-ingest/SKILL.md - instructions/wiki-lint/SKILL.md - instructions/wiki-manage/SKILL.md - instructions/wiki-query/SKILL.md - instructions/wiki-status/SKILL.md - tools/CONTRACT.md - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/instructions_cmd.py - tools/chemenu/tests/test_docs_verify.py - tools/chemenu/tests/test_instructions_cmd.py
This commit is contained in:
@@ -10,7 +10,7 @@ description: Process a new source file into the LLM wiki - extract entities and
|
||||
**Trigger:** User drops a file into `incoming/` (the normal path - see step 1) or directly into
|
||||
`raw/`, or explicitly requests ingestion.
|
||||
|
||||
**Before the first `wikitool` call:** [session-setup.md](../session-setup.md).
|
||||
**Before the first `wikitool` call:** `instructions/session-setup.md`.
|
||||
|
||||
Contracts are read **when the step needs them**, not upfront: a source that produces no concept
|
||||
pages should never have cost the concept contract. Field-level requirements always come from
|
||||
@@ -40,7 +40,7 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
## Steps
|
||||
|
||||
1. **Promote from `incoming/` if that is where the file sits.** Read
|
||||
[raw/CONTRACT.md](../../raw/CONTRACT.md) "Getting a file in" and "Capture fields" if you have
|
||||
`raw/CONTRACT.md` "Getting a file in" and "Capture fields" if you have
|
||||
not this session - the directory and any bundling are computed, never chosen by hand, but the
|
||||
two capture flags are not: `raw accept` refuses without them.
|
||||
|
||||
@@ -63,7 +63,7 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
**A file that arrived through the MCP `submit` tool is not yet in `incoming/`** - it sits in
|
||||
`mcp-upload/<id>/`, a quarantine no command in this step reads. A reviewer promotes it first
|
||||
with `wikitool upload accept <id> --confirm <token>`, per
|
||||
[instructions/ingest-queue.md](../ingest-queue.md); once accepted it is an ordinary file in
|
||||
`instructions/ingest-queue.md`; once accepted it is an ordinary file in
|
||||
`incoming/` and this step applies to it exactly as to anything dropped there by hand.
|
||||
|
||||
**If this refuses because the name is already claimed** (a file stem or a bundle directory
|
||||
@@ -79,7 +79,7 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
|
||||
**Check the size first, on both axes.** *Volume* - how many raw files this ingest covers -
|
||||
and *breadth* - how many entities and concepts this one source would produce or update.
|
||||
Either one past the thresholds in [ingest-large-tree.md](../ingest-large-tree.md) § When to
|
||||
Either one past the thresholds in `instructions/ingest-large-tree.md` § When to
|
||||
run is that procedure, not this one: stop and follow it. There, volume is cut into units;
|
||||
breadth cannot be cut at all (`raw/` keeps a file whole, and one raw file has one owning
|
||||
source page) and buys an extract pass instead, before any page is written. Skipping either
|
||||
@@ -107,7 +107,7 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
which entities/concepts to create or update, any specific emphasis.
|
||||
|
||||
6. **Create the source page.** Read
|
||||
[kb/sources/COLLECTION.md](../../kb/sources/COLLECTION.md) first - it holds what this
|
||||
`kb/sources/COLLECTION.md` first - it holds what this
|
||||
instance expects of a source page's sections and how it names one.
|
||||
|
||||
```bash
|
||||
@@ -140,18 +140,18 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
article also pass `--set source_url=<upstream URL>`; `raw_files:` must still point at the
|
||||
local copy. Then write the Summary / Key Takeaways / Action Items prose from step 5 - in the
|
||||
KB language, whatever the source's own language is, quoting verbatim passages in the
|
||||
original. Which language that is: [kb/CONVENTIONS.md](../../kb/CONVENTIONS.md#language).
|
||||
original. Which language that is: `kb/CONVENTIONS.md` § Language.
|
||||
What is exempt from it, in any language:
|
||||
[kb/CONTRACT.md](../../kb/CONTRACT.md#language-and-identifiers).
|
||||
`kb/CONTRACT.md` § Language and identifiers.
|
||||
|
||||
Fill `## Not Extracted` in the same pass: what you read and deliberately did not promote,
|
||||
with the reason. Nothing in the repository can re-derive that judgment, and without it the
|
||||
same source gets re-litigated on the next pass.
|
||||
|
||||
7. **Create or update entity pages.** Read
|
||||
[kb/entities/COLLECTION.md](../../kb/entities/COLLECTION.md) and
|
||||
[kb/CONTRACT.md](../../kb/CONTRACT.md) plus
|
||||
[kb/CONVENTIONS.md](../../kb/CONVENTIONS.md) first - the second is where provenance and
|
||||
`kb/entities/COLLECTION.md` and
|
||||
`kb/CONTRACT.md` plus
|
||||
`kb/CONVENTIONS.md` first - the second is where provenance and
|
||||
citation are defined, the third where this instance's tone and naming forms are.
|
||||
|
||||
**A subject earns a page when the source carries material for one.** A name the source
|
||||
@@ -186,7 +186,7 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
|
||||
8. **Create or update concept pages** - only if the source produced any. Same pattern, including
|
||||
step 7's rule about which subjects earn a page at all, reading
|
||||
[kb/concepts/COLLECTION.md](../../kb/concepts/COLLECTION.md) first:
|
||||
`kb/concepts/COLLECTION.md` first:
|
||||
|
||||
```bash
|
||||
tools/wikitool new concept --name "<Name>" \
|
||||
@@ -211,7 +211,7 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
The new raw file(s) must no longer be listed as uncovered, and no `raw_files:` entry may be
|
||||
broken.
|
||||
|
||||
11. **Close out.** Follow [publish-cycle.md](../publish-cycle.md) with `--op ingest` and a
|
||||
11. **Close out.** Follow `instructions/publish-cycle.md` with `--op ingest` and a
|
||||
message of the form `ingest: <raw path>`.
|
||||
|
||||
12. **Check the lint cadence.**
|
||||
@@ -230,16 +230,16 @@ validator complains - and the ticked list is the only record that they happened.
|
||||
Two pages on one subject is the failure this step exists to prevent.
|
||||
- **One source names far more subjects than usual?** That is breadth, not volume. It is not
|
||||
split into several sources - it cannot be - and it does not get a page per name either:
|
||||
[ingest-large-tree.md](../ingest-large-tree.md) § A broad source is not cut.
|
||||
`instructions/ingest-large-tree.md` § A broad source is not cut.
|
||||
- **No raw file backs a claim you want to write?** Leave it out, or mark the page
|
||||
`provenance: mixed` and put it under `## General Guidance (unsourced)`.
|
||||
- **`publish` exited 42?** A single ingest is normally well under the Mass-Update Gate
|
||||
threshold. If it trips - a source touching many entities - show the user the output and stop;
|
||||
see [gates.md](../gates.md).
|
||||
- **A gate or the loop-breaker refuses anything?** Stop and follow [gates.md](../gates.md).
|
||||
see `instructions/gates.md`.
|
||||
- **A gate or the loop-breaker refuses anything?** Stop and follow `instructions/gates.md`.
|
||||
A multi-tool ingest should land in roughly 20-35 `wikitool` calls; needing far more is a sign
|
||||
the source should be split into several ingests - which is
|
||||
[ingest-large-tree.md](../ingest-large-tree.md), not a bigger budget.
|
||||
`instructions/ingest-large-tree.md`, not a bigger budget.
|
||||
|
||||
## wikitool commands used
|
||||
|
||||
|
||||
Reference in New Issue
Block a user