ingest: Breiten-Auslöser als zweite Größenachse, Extract-Pass statt Seite pro Namen (schliesst #61)
Files changed: - CHANGES.md - VERSION - instructions/capture-session.md - instructions/ingest-large-tree.md - instructions/wiki-ingest/SKILL.md
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
type: types/instruction.md
|
||||
name: ingest-large-tree
|
||||
description: Ingest a large raw tree in planned units through a work/ workshop, instead of one oversized source page.
|
||||
description: Ingest a raw tree too large, or a single source too broad, for one pass - in planned units through a work/ workshop, instead of one oversized source page or a cohort of stub pages.
|
||||
---
|
||||
# Ingest a large raw tree
|
||||
|
||||
@@ -9,11 +9,15 @@ A tree too big for one ingest is cut into units before anything is written, and
|
||||
read, promoted and published on its own. The plan and the intermediate extracts live in a
|
||||
`work/` workshop, so the run survives across sessions and days instead of having to fit in one.
|
||||
|
||||
A single source carrying too many subjects lands here too, and takes the workshop but not the
|
||||
cut - see [A broad source is not cut](#a-broad-source-is-not-cut).
|
||||
|
||||
<!-- wikitool:toc -->
|
||||
## Contents
|
||||
|
||||
- [When to run](#when-to-run)
|
||||
- [Tiers](#tiers)
|
||||
- [A broad source is not cut](#a-broad-source-is-not-cut)
|
||||
- [Steps](#steps)
|
||||
- [Decision points](#decision-points)
|
||||
- [Scope](#scope)
|
||||
@@ -21,24 +25,72 @@ read, promoted and published on its own. The plan and the intermediate extracts
|
||||
|
||||
## When to run
|
||||
|
||||
Any one of these is enough:
|
||||
Any one of these is enough, on either axis.
|
||||
|
||||
**Volume** - more material than one pass can read:
|
||||
|
||||
- The input tree holds more than roughly **20 raw files**.
|
||||
- A single planned source page would carry more than roughly **15 `raw_files:` entries**.
|
||||
- A previous attempt at the same tree ran past its iteration budget, or produced a source page
|
||||
whose Key Takeaways are visibly thin for the amount of material behind them.
|
||||
|
||||
**Breadth** - one source carrying more subjects than one pass can do justice to:
|
||||
|
||||
- A single source looks likely to produce or update more than roughly **20 entities and
|
||||
concepts together**. Estimate it from the reading, before writing anything; on a finished page
|
||||
the same number is the length of `entities:` plus `concepts:`.
|
||||
|
||||
The two axes take different routes through this procedure. Volume is cut: several files become
|
||||
several units, each its own source page. Breadth is not cut at all - it takes the workshop for
|
||||
the extract pass and nothing else (§ [A broad source is not cut](#a-broad-source-is-not-cut)).
|
||||
|
||||
Otherwise use `wiki-ingest` unchanged. This procedure costs a workshop and a planning round;
|
||||
a single document does not earn it.
|
||||
a single, narrow document does not earn it.
|
||||
|
||||
## Tiers
|
||||
|
||||
| Tier | Input | Procedure |
|
||||
|------|-------|-----------|
|
||||
| Standard | One file, or a small folder | `wiki-ingest`, unchanged |
|
||||
| Tree | Trigger above | This instruction |
|
||||
| Tree | A volume trigger above | This instruction |
|
||||
| Broad | The breadth trigger above | This instruction, § A broad source is not cut |
|
||||
| Audited | A unit covering secrets, RBAC, ingress, disaster recovery, or an audit trail | This instruction plus step 5c |
|
||||
|
||||
## A broad source is not cut
|
||||
|
||||
A tree has seams: several files become several units, each its own source page. A single broad
|
||||
source has none, and two rules keep it that way:
|
||||
|
||||
- `raw/` holds a file **exactly as received** ([raw/CONTRACT.md](../raw/CONTRACT.md) § Rules).
|
||||
A promoted file is never split afterwards - a `kb/` claim is checked against the whole file.
|
||||
- **One raw file, one owner** (`tools/wikitool types describe source`). A raw file stands in
|
||||
exactly one `raw_files:`, and `lint` reports a second claimant. Several topical source pages
|
||||
over one file would leave nobody responsible for refreshing them when that file gets a new
|
||||
edition.
|
||||
|
||||
Cutting *before* `raw accept`, while the material is still in `incoming/`, is a different
|
||||
operation and stays available for what this instance assembles itself - a session transcript, an
|
||||
export bundle of separable documents. [capture-session.md](capture-session.md) § 1 is that case.
|
||||
It is not available for a document that arrived as one document.
|
||||
|
||||
So a broad source keeps one raw file and one source page. What the workshop buys is the step
|
||||
before any page is written:
|
||||
|
||||
1. `tools/wikitool work new --input <the file>`, then one unit per **subject cluster** in
|
||||
`plan.md` - not per subtree, since there is none.
|
||||
2. Extract per cluster (step 5b), listing the entities and concepts each cluster would produce.
|
||||
3. **Decide which of them earn a page.** That rule is `wiki-ingest` step 7, and this list is
|
||||
what it is applied to. The count from the trigger is an estimate; this is where it becomes a
|
||||
decision.
|
||||
4. One source page, one publish. There are no units to publish separately, so steps 5d-5e run
|
||||
once, over the whole extract.
|
||||
|
||||
The failure this prevents is not a vague source page - a source page is a reference, and a wide
|
||||
one still points where it should. It is the **cohort of stub subject pages** a single pass
|
||||
produces when every name in the source is turned into a page: pages that restate their title,
|
||||
pass `lint` (which measures structure, never substance), and read as covered ground to the next
|
||||
session.
|
||||
|
||||
## Steps
|
||||
|
||||
1. **Survey the tree, do not read it yet.**
|
||||
@@ -119,6 +171,9 @@ a single document does not earn it.
|
||||
|
||||
- **Where to cut?** Along the job a subtree does, not along file count. Two subtrees that
|
||||
would produce the same entity updates are one unit; one subtree serving two purposes is two.
|
||||
- **The breadth trigger fired, but the source reads narrower than it looked?** Close the
|
||||
workshop and run an ordinary `wiki-ingest`. The count is estimated before the reading, so
|
||||
being wrong about it is expected; carrying a workshop nobody needs is the avoidable half.
|
||||
- **A unit turns out to be a duplicate of an existing page?** Update that page instead of
|
||||
creating a second one, and say so in `plan.md`. That is a result, not a failure.
|
||||
- **The plan changes mid-run?** Edit `plan.md` and the checklist, and say why in `README.md`.
|
||||
@@ -128,6 +183,7 @@ a single document does not earn it.
|
||||
|
||||
## Scope
|
||||
|
||||
This is about *volume*, not difficulty. A short but hard source - a specification that needs
|
||||
careful reading - is still an ordinary `wiki-ingest`. And nothing here changes what a page must
|
||||
contain: [kb/CONTRACT.md](../kb/CONTRACT.md) and the collection contracts still decide that.
|
||||
This is about *size*, on the two axes § When to run names: volume and breadth. It is not about
|
||||
difficulty - a short but hard source, a specification that needs careful reading, is still an
|
||||
ordinary `wiki-ingest`. And nothing here changes what a page must contain:
|
||||
[kb/CONTRACT.md](../kb/CONTRACT.md) and the collection contracts still decide that.
|
||||
|
||||
Reference in New Issue
Block a user