stack: Konfidenz-Mechanismus ersatzlos entfernt, Korpus migriert (schliesst #60, #86)
CI / verify (push) Successful in 56s
Release / release (push) Successful in 36s

Files changed:
- .wikitool-kb.json
- AGENTS.md
- CHANGES.md
- INSTALL-MCP.md
- INSTALL.md
- README.md
- VERSION
- instructions/capture-session.md
- instructions/dev/issue-tracking.md
- instructions/german-terminology.md
- instructions/kb-profiles.md
- instructions/migrate-corpus.md
- instructions/migrations/5.0.0-confidence-removal.md
- instructions/private-instance.md
- instructions/setup-instance.md
- instructions/wiki-lint/SKILL.md
- instructions/wiki-manage/SKILL.md
- instructions/wiki-query/SKILL.md
- kb/CONTRACT.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- kb/concepts/architectures/Consolidation Tiers.md
- kb/concepts/architectures/Context Isolation.md
- kb/concepts/architectures/Cross-platform Agent Skills.md
- kb/concepts/architectures/Episodic Memory.md
- kb/concepts/architectures/Hybrid Search.md
- kb/concepts/architectures/Implementation Spectrum.md
- kb/concepts/architectures/Knowledge Graph.md
- kb/concepts/architectures/LLM Wiki Pattern.md
- kb/concepts/architectures/MCP-Leseserver.md
- kb/concepts/architectures/Memory Lifecycle.md
- kb/concepts/architectures/OKF Compatibility.md
- kb/concepts/architectures/Optional Instance Context File.md
- kb/concepts/architectures/Personalization Plane.md
- kb/concepts/architectures/Procedural Memory.md
- kb/concepts/architectures/RAG.md
- kb/concepts/architectures/Scale Ceiling.md
- kb/concepts/architectures/Semantic Memory.md
- kb/concepts/architectures/Three-Layer Architecture.md
- kb/concepts/architectures/Token Economics.md
- kb/concepts/architectures/Working Memory.md
- kb/concepts/decisions/Delete Rather Than Anonymize.md
- kb/concepts/decisions/Denylist over Allowlist.md
- kb/concepts/decisions/Diff-Reviewable Agent Edits.md
- kb/concepts/decisions/Dual Licensing by File Plan.md
- kb/concepts/decisions/Issue Label Scheme.md
- kb/concepts/decisions/KB Stack Versioning.md
- kb/concepts/decisions/Structural Enforcement over Documented Rule.md
- kb/concepts/patterns/Audit Trail.md
- kb/concepts/patterns/BM25.md
- kb/concepts/patterns/Command Round-Trip Integrity.md
- kb/concepts/patterns/Confidence Scoring.md
- kb/concepts/patterns/Contradiction Resolution.md
- kb/concepts/patterns/Entity Extraction.md
- kb/concepts/patterns/Filter on Ingest.md
- kb/concepts/patterns/Forgetting.md
- kb/concepts/patterns/Graph Traversal.md
- kb/concepts/patterns/Mesh Sync.md
- kb/concepts/patterns/Quality Scoring.md
- kb/concepts/patterns/Reciprocal Rank Fusion.md
- kb/concepts/patterns/Self-Healing.md
- kb/concepts/patterns/Shared vs Private.md
- kb/concepts/patterns/Typed Relationships.md
- kb/concepts/patterns/Vector Search.md
- kb/concepts/patterns/Work Coordination.md
- kb/concepts/problems/Ambient Environment Dependency.md
- kb/concepts/problems/Detect-Repair Asymmetry.md
- kb/concepts/problems/Green Suite Blind Spot.md
- kb/concepts/problems/Naming Convention Conflict.md
- kb/concepts/problems/Write-Once Frontmatter Fields.md
- kb/concepts/protocols/CPPC.md
- kb/concepts/protocols/Modbus.md
- kb/concepts/protocols/SSD TRIM.md
- kb/concepts/workflows/Anti-Cramming Heuristic.md
- kb/concepts/workflows/Bulk Operations.md
- kb/concepts/workflows/CI Integration.md
- kb/concepts/workflows/Checkpoint Audit.md
- kb/concepts/workflows/Claude Code Auto Mode.md
- kb/concepts/workflows/Content Quality Control.md
- kb/concepts/workflows/Crystallization.md
- kb/concepts/workflows/Event-Driven Automation.md
- kb/concepts/workflows/Hooks.md
- kb/concepts/workflows/Index Scaling.md
- kb/concepts/workflows/Iteration and Cost Limits.md
- kb/concepts/workflows/KB Migration.md
- kb/concepts/workflows/Knowledge Compounding.md
- kb/concepts/workflows/Lint Workflow.md
- kb/concepts/workflows/Mass-Update Gate.md
- kb/concepts/workflows/Multi-Agent Collaboration.md
- kb/concepts/workflows/Privacy and Governance.md
- kb/concepts/workflows/Publish-Remote Gate.md
- kb/concepts/workflows/Quality and Self-Correction.md
- kb/concepts/workflows/Semantic Lint Automation.md
- kb/concepts/workflows/Session Orientation.md
- kb/concepts/workflows/Split Merge Reclassify.md
- kb/concepts/workflows/Split Threshold.md
- kb/concepts/workflows/Stub Threshold.md
- kb/concepts/workflows/Supersession.md
- kb/concepts/workflows/User Management.md
- kb/concepts/workflows/Workflow Extraction.md
- kb/concepts/workflows/Workflow Orchestration.md
- kb/entities/people/Andrej Karpathy.md
- kb/entities/people/E3DC GmbH.md
- kb/entities/people/Rohit Gupta.md
- kb/entities/people/Vannevar Bush.md
- kb/entities/projects/BCDModule.md
- kb/entities/projects/Chemenu.md
- kb/entities/projects/andybalholm-edl.md
- kb/entities/projects/goresponsiveness.md
- kb/entities/projects/ha-core.md
- kb/entities/projects/hacs-e3dc.md
- kb/entities/projects/hacs-integration-blueprint.md
- kb/entities/projects/llm-wiki-skills.md
- kb/entities/projects/plugnburn-edl.md
- kb/entities/projects/wiki-skills-vanillaflava.md
- kb/entities/projects/wiki-skills.md
- kb/entities/systems/AGENTS.md.md
- kb/entities/systems/CLAUDE.md.md
- kb/entities/systems/E3DC.md
- kb/entities/systems/ENVIRONMENT.md.md
- kb/entities/systems/Memex.md
- kb/entities/systems/Tolkien Gateway.md
- kb/entities/technologies/Arch Linux.md
- kb/entities/technologies/Disk Encryption.md
- kb/entities/technologies/Docker.md
- kb/entities/technologies/GRUB.md
- kb/entities/technologies/Gitea Actions.md
- kb/entities/technologies/Gitea.md
- kb/entities/technologies/Go.md
- kb/entities/technologies/Home Assistant.md
- kb/entities/technologies/Kernel PM Governors.md
- kb/entities/technologies/LVM.md
- kb/entities/technologies/Linux Kernel.md
- kb/entities/technologies/MQTT.md
- kb/entities/technologies/OPC UA.md
- kb/entities/technologies/Python.md
- kb/entities/technologies/Rust.md
- kb/entities/technologies/Wine GE.md
- kb/entities/technologies/Wine-Staging.md
- kb/entities/technologies/acpi-cpufreq.md
- kb/entities/technologies/amd-pstate.md
- kb/entities/technologies/iii Engine.md
- kb/entities/tools/AUR.md
- kb/entities/tools/Act Runner.md
- kb/entities/tools/Agent Memory.md
- kb/entities/tools/Aura.md
- kb/entities/tools/Bottles.md
- kb/entities/tools/ChatGPT.md
- kb/entities/tools/Claude Code.md
- kb/entities/tools/Codex CLI.md
- kb/entities/tools/Dataview.md
- kb/entities/tools/GPG.md
- kb/entities/tools/GitHub Copilot.md
- kb/entities/tools/Gitea MCP Server.md
- kb/entities/tools/Lutris.md
- kb/entities/tools/Marp.md
- kb/entities/tools/Mistral Vibe.md
- kb/entities/tools/NotebookLM.md
- kb/entities/tools/Obsidian Web Clipper.md
- kb/entities/tools/Obsidian.md
- kb/entities/tools/OpenAI Codex.md
- kb/entities/tools/OpenCode.md
- kb/entities/tools/Pi.md
- kb/entities/tools/Proton.md
- kb/entities/tools/Steam.md
- kb/entities/tools/Wine.md
- kb/entities/tools/awesome-llm-wiki.md
- kb/entities/tools/farzaa gist.md
- kb/entities/tools/gdeploy.md
- kb/entities/tools/makepkg.md
- kb/entities/tools/pascalandy schema.md
- kb/entities/tools/qmd.md
- kb/entities/tools/wikitool.md
- kb/index.md
- kb/log.md
- raw/CONTRACT.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/api.py
- tools/chemenu/cli.py
- tools/chemenu/commands/confidence_decay.py
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/commands/doctor.py
- tools/chemenu/commands/index_build.py
- tools/chemenu/commands/new_page.py
- tools/chemenu/commands/search.py
- tools/chemenu/commands/touch.py
- tools/chemenu/commands/version_cmd.py
- tools/chemenu/conventions.py
- tools/chemenu/corpus_diff.py
- tools/chemenu/frontmatter_io.py
- tools/chemenu/lint_core.py
- tools/chemenu/mcp/server.py
- tools/chemenu/page.py
- tools/chemenu/search/base.py
- tools/chemenu/search/filters.py
- tools/chemenu/search/ripgrep.py
- tools/chemenu/search/service.py
- tools/chemenu/search/types.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/test_api.py
- tools/chemenu/tests/test_confidence_decay.py
- tools/chemenu/tests/test_corpus_diff.py
- tools/chemenu/tests/test_docs_verify.py
- tools/chemenu/tests/test_frontmatter_io.py
- tools/chemenu/tests/test_index_build.py
- tools/chemenu/tests/test_kb_scan.py
- tools/chemenu/tests/test_lint.py
- tools/chemenu/tests/test_mcp_server.py
- tools/chemenu/tests/test_new_page.py
- tools/chemenu/tests/test_page_ops.py
- tools/chemenu/tests/test_provenance.py
- tools/chemenu/tests/test_raw_cmd.py
- tools/chemenu/tests/test_search.py
- tools/chemenu/tests/test_touch.py
- tools/chemenu/tests/test_type_resolver.py
- tools/chemenu/tests/test_version_cmd.py
- tools/chemenu/tests/test_xref.py
- tools/chemenu/version.py
- types/concept.md
- types/concept.schema.yaml
- types/entity.md
- types/entity.schema.yaml
- types/instruction.md
- types/type-spec.md
This commit is contained in:
2026-09-10 19:51:48 +02:00
parent bb8f956719
commit 54d9540c08
225 changed files with 637 additions and 1145 deletions
+2 -2
View File
@@ -79,8 +79,8 @@ reference it by name. Two half-accounts produce two source pages claiming the sa
### 2. Fix the fidelity before writing a word
Capture is layered, and **the layer is decided at capture and never rises afterwards.** No
citation syntax, no later review, no confidence bump can promote a paraphrase to a quote; only
going back to the original can, and a session's scrollback will not be there to go back to.
citation syntax and no later review can promote a paraphrase to a quote; only going back to the
original can, and a session's scrollback will not be there to go back to.
So decide, per passage, before writing:
+1 -1
View File
@@ -160,7 +160,7 @@ issues at that URL, which is exactly why `dist export` excludes
| `area/` | Means |
|---|---|
| `area/kb` | The `kb/` schema, contract, confidence machinery, lint - the knowledge base as a system. |
| `area/kb` | The `kb/` schema, contract, provenance machinery, lint - the knowledge base as a system. |
| `area/distribution` | Shipping, upgrading and versioning an instance. |
| `area/corpus` | The content and scope of `kb/` in this instance, and the demo/testbed question. |
| `area/workflow` | Git, merging, branching, publish, PRs. |
-1
View File
@@ -68,7 +68,6 @@ that offered the choice instead of making it. A list of phrases is not a list of
|---|---|---|
| reconciliation / to reconcile | Abgleich / abgleichen | Not „Abstimmung", including in compounds: `Abgleichsintervall` |
| claim | Aussage | **Never** „Anspruch" - that is a legal entitlement |
| confidence | Konfidenz | Matches the `confidence:` field and `wikitool confidence decay` |
| desired state | Soll-Zustand | |
| ownership (in prose) | Verwaltung / Zuständigkeit | But `Ownership Model` and `Ownership-Tier(s)` stay, **including as a heading** |
| built-in | -eigen (`K3s-eigen`) | |
+3 -3
View File
@@ -55,7 +55,7 @@ is not a profile.
| File | Holds | Profiles below |
|---|---|---|
| `kb/CONVENTIONS.md` | Language, section headings, naming forms, tone, relationship labels, confidence rubric - once per instance | [Language profiles](#language-profiles) |
| `kb/CONVENTIONS.md` | Language, section headings, naming forms, tone, relationship labels, the hedging rule - once per instance | [Language profiles](#language-profiles) |
| `kb/<name>/COLLECTION.md` | What one collection holds, its quality goal, its local linking and naming rules | [Collection profiles](#collection-profiles) |
2. **Copy the entry's text into the file**, then edit it until it is true of this instance.
@@ -89,7 +89,7 @@ stack's hardcoded behaviour until the conventions file existed.
| Naming | Human-readable titles with spaces; singular for entities; a decision named like any other concept, no `adr-NNN-` prefix; `X vs Y` for comparisons |
| Tone | Wikipedia register, with a German buzzword and filler list |
| Relationship labels | `hängt ab von` · `verwendet` · `implementiert` · `erweitert` · `ersetzt` · `steht in Konflikt mit` · `benötigt` · `erzeugt` · `konsumiert` · `besitzt` · `pflegt` · `läuft auf` · `verwandt mit` |
| Confidence rubric | 0.5 base, +0.2 per supporting source (max +0.6), recency and source-quality bonuses; hedge with "möglicherweise"/"kann" below 0.6, "unsicher"/"unbestätigt" below 0.4 |
| Hedging | By source standing, not a score: `provenance: general` with no `sources:` says "im Allgemeinen"/"üblicherweise"; a claim rests on its weakest cited source's `authority` (`normative` vs. `opinion`); disagreement is named in prose ("möglicherweise", "laut X, aber Y widerspricht") |
| Terminology | [german-terminology.md](german-terminology.md) - which English terms stay English, and which have a settled German form |
**The full text to copy** is this repo's own [kb/CONVENTIONS.md](../kb/CONVENTIONS.md). An
@@ -113,7 +113,7 @@ There is no worked text for the rest of it. The template's placeholders are the
A language profile is not a translation of `german`. Two of its sections are judgment about a
language rather than vocabulary in it - which foreign technical terms stay untranslated, and how
to hedge a low-confidence claim - and those are exactly the two that read as awkward when
to phrase hedged and disagreeing claims - and those are exactly the two that read as awkward when
translated mechanically. Write them, do not convert them.
The one part that is mechanical: `section_aliases:`. Whatever the corpus used before goes in
+3 -2
View File
@@ -105,8 +105,9 @@ declared by a migration document under `instructions/migrations/`. A single page
- **The check finds something mid-unit.** Fix it in that unit and re-run `verify`. Never carry
a finding into the next unit "to fix later": the next unit's diff baseline is this unit's
commit, so an uncorrected drop becomes invisible.
- **Contradiction with an existing page.** Never overwrite. Record both, ask the user, and pull
the confidence down with `touch --confidence-base` if it stays unresolved.
- **Contradiction with an existing page.** Never overwrite. Record both, ask the user, and hedge
the page's prose to the weaker of the two sources if it stays unresolved (kb/CONVENTIONS.md §
Hedging).
## Writing the migration document
@@ -0,0 +1,129 @@
---
type: types/instruction.md
name: 5.0.0-confidence-removal
description: Remove the confidence/confidence_base frontmatter fields from every entity and concept page - a shape change with no judgment call, since the machinery that read them is already gone.
manual: true
migrates_to: 5.0.0
migration_kind: mechanical
---
# Remove `confidence`/`confidence_base` from every page (5.0.0)
5.0.0 removes the confidence mechanism from the stack: the two frontmatter fields, the
`wikitool confidence decay`/`init-base` commands, the search sort/filter machinery, and the
advisory lint check that compared it to source standing. `AGENTS.md` invariant 3 and
`kb/CONVENTIONS.md`'s hedging rule take over the two jobs the number used to do - hedging follows
what the sources carry, and the work list finds unreviewed pages by `!sources`/`provenance=general`
rather than by a threshold. The full measurement behind the removal - why the mechanism never
tracked anything auditable - is the changelog entry for this version, not repeated here.
**No page learns anything new, and no body is touched.** This migration only drops two keys from
frontmatter; it is `mechanical` because there is no per-page judgment to make; the removal itself
was the judgment, made once, in the version that introduced this document.
<!-- wikitool:toc -->
## Contents
- [When to run](#when-to-run)
- [Steps](#steps)
- [How to tell a migrated page from an unmigrated one](#how-to-tell-a-migrated-page-from-an-unmigrated-one)
- [Decision points](#decision-points)
- [Scope](#scope)
<!-- /wikitool:toc -->
## When to run
After installing 5.0.0 machinery over an instance on 4.x. `tools/wikitool migrate status` names
it, and `tools/wikitool lint --fail-on-error` refuses with `schema_validation_errors` on every
entity/concept page still carrying either field - `types/entity.schema.yaml` and
`types/concept.schema.yaml` both declare `additionalProperties: false`, so the two keys are not
merely unused after 5.0.0, they are invalid.
**This is not a window to live in.** Unlike a labelled-edge migration, there is no advisory phase
here: a page carrying the old fields is schema-invalid the moment the new schema lands, not
merely outdated. Both schemas declare `additionalProperties: false`, so a `lint --fail-on-error`
run between the two halves refuses the whole corpus. Install the 5.0.0 machinery and run this
migration in the same sitting, publishing both together rather than the schema change on its
own.
## Steps
1. **Confirm the scope.** Only `entity` and `concept` pages ever declared the fields; `source`
and `comparison` pages never did and need no check:
```bash
tools/wikitool search --field 'confidence:*'
```
Every hit is a page this migration must touch. (Once the fields are gone from the schema,
the same predicate becomes a refusal rather than an empty result - that refusal is itself
the signal that the migration finished; see step 4.)
2. **Strip both fields from each page's frontmatter, mechanically, not by hand.** A script that
reads a page, deletes the `confidence`/`confidence_base` keys if present, and writes the
frontmatter back through this stack's own YAML writer - never a hand-edit, and never a
subagent guessing at formatting. The invariant a checked run must hold:
- `modified:` is byte-for-byte unchanged. This is a shape change, not a content
confirmation, and a bumped date would misstate 152 pages as freshly reviewed.
- The body is byte-for-byte unchanged, including footnotes and every generated region.
- Every page-reference array (`related:`, `sources:`, `entities:`, `concepts:`) is unchanged
in both content and order.
- The remaining frontmatter keys keep the schema's field order.
- No untracked or gitignored file is touched.
Cut the corpus into units against the iteration budget - `instructions/migrate-corpus.md`'s
rule of thumb is 48 pages or fewer per unit, which for ~152 affected pages is four units.
3. **Check each unit mechanically before anything else:**
```bash
tools/wikitool migrate verify --from <pre-migration rev> --path kb/<area> --fail-on-error
```
It compares wikilink and citation counts, footnote definitions, H1, and structural
frontmatter - `confidence_base` no longer among the fields it compares as of this same
version, so the field's absence is not itself reported as a defect. Everything else it
checks stays exactly as strict as it was.
4. **Record it. The checks tighten themselves:**
```bash
tools/wikitool lint --fail-on-error # schema_validation_errors must be 0
tools/wikitool migrate done 5.0.0 --pages <N>
```
Only once `lint --fail-on-error` passes clean is the run finished. From this point, `search
--field 'confidence<0.6'` (or any predicate naming either field) is refused with an "unknown
field" error rather than silently returning nothing - the search layer already refuses a
predicate no page in the corpus carries, so the migration's own completion is what makes
that refusal fire.
## How to tell a migrated page from an unmigrated one
An unmigrated entity or concept page still has `confidence:` and `confidence_base:` lines in its
frontmatter block; a migrated one has neither, and validates against the 5.0.0 schema without
them. `tools/wikitool search --field 'confidence:*'` lists every page still waiting; an empty
result (or, once the schema has landed, the predicate's own refusal) is the corpus-wide answer.
## Decision points
- **A page's `confidence_base` sat far below its cited sources' standing, or far above?** Not
this migration's question. The check that used to flag that mismatch
(`confidence_exceeds_source_standing`) is gone with the field it read, and its replacement -
if the corpus wants one - is a prose spot-check `wiki-lint` applies by hand, not a mechanical
gate. Do not use this migration as an occasion to also rewrite a page's hedging; that is
`wiki-manage`'s job, on its own schedule.
- **A page has `confidence` but no `confidence_base`, or the reverse?** Both are pre-existing
states this stack already tolerated (the decay formula skipped pages missing a base). Strip
whichever key is present; there is nothing to reconcile between them first.
- **Unsure whether a script wrote frontmatter correctly?** Diff one migrated page's frontmatter
block against its pre-migration version by hand before running the rest of a unit - the two
keys should be the only difference, in the position the schema declares.
## Scope
The `confidence`/`confidence_base` keys on every `kb/entities/**` and `kb/concepts/**` page.
Nothing under `raw/`, no body prose anywhere, and no other frontmatter field. Installing the
5.0.0 machinery itself - the schema change, the removed commands, the hedging rule in
`kb/CONVENTIONS.md` - is a separate step that must land first; this document only carries the
corpus across the boundary that step opens.
+2 -2
View File
@@ -51,7 +51,7 @@ changes to those paths go away. Measured, not assumed:
The middle row is the one that matters, because nothing announces it. An upstream that ships a
demo corpus *and* uses it as a test bed will add pages, and each one arrives in your instance
and starts showing up in your `lint`, your `index`, your `search` and your `confidence decay`.
and starts showing up in your `lint`, your `index` and your `search`.
So the merge has to be scoped. That is the procedure below, and it is not optional.
@@ -198,7 +198,7 @@ merge above. Nothing is lost by the detour: the fix has to pass that CI either w
issue there, or resolve deliberately and finish the commit yourself.
- **...but you changed how *your pages* are written?** That is not a stack change and the rule
above does not apply to it. Language, section headings, naming forms, tone, relationship
labels and the confidence rubric live in `kb/CONVENTIONS.md`, and each collection's authoring
labels and the hedging rule live in `kb/CONVENTIONS.md`, and each collection's authoring
rules in `kb/<name>/COLLECTION.md` - all under `kb/`, all yours, all restored by the merge
procedure rather than overwritten by it. If you find yourself editing `tools/` or `types/` to
change an authoring convention, that is a stack bug: file it, because the split exists
+2 -2
View File
@@ -101,7 +101,7 @@ bereit für den ersten `Ingest`.
3. `kb/CONVENTIONS.md.template` nach `kb/CONVENTIONS.md` kopieren, entlang des gewählten
Profils ausfüllen - Sprache, Abschnittsnamen, Namensformen, Ton, Beziehungslabels,
Confidence-Rubrik - und dabei die Sentinel-Zeile (`wikitool:template-unfilled`) entfernen.
Hedging-Regel - und dabei die Sentinel-Zeile (`wikitool:template-unfilled`) entfernen.
Die Platzhalter in geschweiften Klammern **sind** der Fragenkatalog.
4. Bei einer anderen Sprache als der des Quell-Repos: `german-terminology.md` löschen oder
@@ -182,7 +182,7 @@ bereit für den ersten `Ingest`.
Was diese Dateien **nicht** sind: eine Instruktionsquelle und eine Quelle im Sinne von
Invariante 3. Sie ändern keine Regel aus [AGENTS.md](../AGENTS.md), und eine Nutzeraussage
wandert daraus nie ohne den normalen Quelle/Provenance/Confidence-Prozess nach `kb/`.
wandert daraus nie ohne den normalen Quelle/Provenance-Prozess nach `kb/`.
`tools/wikitool doctor` prüft das Ergebnis in Schritt 12 (`personalization`): eine fehlende
Datei ist ein `FAIL`, eine, die noch den Sentinel trägt, ebenso - ein umbenanntes Template
+8 -10
View File
@@ -1,6 +1,6 @@
---
name: wiki-lint
description: Health-check the LLM wiki - broken links, orphan pages, uncovered raw files, stale claims, duplicated rules, missing cross-references, confidence decay. Use when the user says "lint the wiki", "health-check the wiki", or periodically every 10 sources per the Maintenance Schedule.
description: Health-check the LLM wiki - broken links, orphan pages, uncovered raw files, stale claims, duplicated rules, missing cross-references. Use when the user says "lint the wiki", "health-check the wiki", or periodically every 10 sources per the Maintenance Schedule.
---
# Wiki Lint
@@ -27,7 +27,7 @@ mechanical half looks exactly like a complete one.
- [ ] 5. Missing pages (judgment)
- [ ] 6. Duplicated rules (judgment)
- [ ] 7. Repair what is mechanical
- [ ] 8. Refresh confidence and verify the stack
- [ ] 8. Verify the stack
- [ ] 9. Rebuild, write the report, carry its findings out
```
@@ -93,18 +93,16 @@ mechanical half looks exactly like a complete one.
`tools/wikitool rename` - see [page-lifecycle.md](../page-lifecycle.md). Never hand-edit a
frontmatter array to clear one.
8. **Refresh confidence and verify the stack.**
8. **Verify the stack.**
```bash
tools/wikitool confidence decay --apply
tools/wikitool docs verify
tools/wikitool instructions verify
```
If decay reports pages with no `confidence_base`, run
`tools/wikitool confidence init-base --apply` first. `docs verify` catches command/contract
drift and ignore rules that would silently un-publish content; `instructions verify` catches
a skill copy that drifted from its source and an instruction nothing references.
`docs verify` catches command/contract drift and ignore rules that would silently un-publish
content; `instructions verify` catches a skill copy that drifted from its source and an
instruction nothing references.
9. **Rebuild, write the report, carry its findings out.**
@@ -138,8 +136,8 @@ mechanical half looks exactly like a complete one.
## wikitool commands used
`lint`, `search`, `sources coverage`, `xref add`, `xref remove`, `rename`, `new`,
`confidence decay --apply`, `confidence init-base --apply`, `docs verify`, `instructions verify`,
`sources rebuild-index`, `index rebuild`, `log append`, `publish` (only if asked)
`docs verify`, `instructions verify`, `sources rebuild-index`, `index rebuild`, `log append`,
`publish` (only if asked)
**Deliberately absent:** `rm` - a lint pass never deletes a page, and
[page-lifecycle.md](../page-lifecycle.md) is where a deletion belongs. `log status` - it decides
+3 -3
View File
@@ -13,8 +13,8 @@ integrating into an existing one.
**Before the first `wikitool` call:** [session-setup.md](../session-setup.md).
**Read before drafting:** [kb/CONTRACT.md](../../kb/CONTRACT.md) - linking, provenance and the
confidence machinery, all of which the tool enforces - and
**Read before drafting:** [kb/CONTRACT.md](../../kb/CONTRACT.md) - linking and provenance,
both of which the tool enforces - and
[kb/CONVENTIONS.md](../../kb/CONVENTIONS.md), which is where this instance's language, naming
forms, tone and relationship labels are, together with the target collection's own
`COLLECTION.md`, which carries its quality goal and what is local to that subtree. Field-level
@@ -82,7 +82,7 @@ requirements come from `tools/wikitool types describe <type>`.
tools/wikitool touch --page "<Title>" --summary "<new 1-liner>" [--provenance <value>]
```
Never hand-edit `modified:`, `summary:`, `provenance:` or `confidence:`.
Never hand-edit `modified:`, `summary:` or `provenance:`.
7. **Close out.** [publish-cycle.md](../publish-cycle.md), `--op update`.
+5 -5
View File
@@ -28,12 +28,12 @@ invariant - rather than synthesizing a plausible-sounding answer from general kn
tools/wikitool search "<the user's terms>"
```
Results carry kind, summary, confidence and modified date - enough to decide what is worth
opening. Narrow with predicates when the question is structural rather than lexical:
Results carry kind, summary and modified date - enough to decide what is worth opening.
Narrow with predicates when the question is structural rather than lexical:
```bash
tools/wikitool search "backup" --kind entity --subtype system
tools/wikitool search --field entity_type=system --field 'confidence<0.6' --sort -modified
tools/wikitool search --field entity_type=system --field '!sources' --sort -modified
tools/wikitool search --field tags=k8s --limit 30
tools/wikitool search "Longhorn" --matches # show the matching lines
```
@@ -45,8 +45,8 @@ invariant - rather than synthesizing a plausible-sounding answer from general kn
entries. Check `kb/sources/` when the question is about what a specific source said.
4. **Answer and cite.** Name the wiki pages the answer came from, and the sources behind them.
Hedge to the page's confidence: below 0.6 write "possibly"/"may"; below 0.4 write
"uncertain"/"unconfirmed".
Hedge to what those sources carry, not to a number - see
[kb/CONVENTIONS.md § Hedging](../../kb/CONVENTIONS.md#hedging).
5. **Decide what earns a page - before the first `new`.** Name every page you are considering,
then hold each one on its own against all three criteria: the answer required synthesis