SKILL.md-Sanierung: Checklisten, Kommandolisten, wiki-status-Hard-Rule, wiki-query-Filingpruefung (schliesst #70, #74, #75, #78)
Files changed: - CHANGES.md - VERSION - instructions/CONTRACT.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
This commit is contained in:
+103
-1
@@ -35,7 +35,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4.8.0-beta.10 - 2026-09-09 - instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (#71, #72, #79)
|
## 4.8.0-beta.11 - 2026-09-09 - SKILL.md-Sanierung: Checklisten, Kommandolisten, wiki-status-Hard-Rule, wiki-query-Filingpruefung (#70, #74, #75, #78)
|
||||||
|
|
||||||
**Author:** Torben Nehmer
|
**Author:** Torben Nehmer
|
||||||
|
|
||||||
@@ -51,6 +51,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
|||||||
- raw accept: Datums-Shard statt Typverzeichnis, fidelity/authority am Drop-Punkt (schliesst #67)
|
- raw accept: Datums-Shard statt Typverzeichnis, fidelity/authority am Drop-Punkt (schliesst #67)
|
||||||
- source_type ist Instanzsache: Profilkatalog, Setup-Frage, evolve-subtypes-Instruction (#68)
|
- source_type ist Instanzsache: Profilkatalog, Setup-Frage, evolve-subtypes-Instruction (#68)
|
||||||
- instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (#71, #72, #79)
|
- instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (#71, #72, #79)
|
||||||
|
- SKILL.md-Sanierung: Checklisten, Kommandolisten, wiki-status-Hard-Rule, wiki-query-Filingpruefung (#70, #74, #75, #78)
|
||||||
<!-- /wikitool:bumps -->
|
<!-- /wikitool:bumps -->
|
||||||
|
|
||||||
Das Label `status/incoming` gibt es seit heute in Gitea: der Mensch legt einen
|
Das Label `status/incoming` gibt es seit heute in Gitea: der Mensch legt einen
|
||||||
@@ -648,6 +649,107 @@ Unterabschnitte), `instructions/wiki-ingest/SKILL.md` (Schritte 1 und 6).
|
|||||||
|
|
||||||
Schließt #71, #72 und #79.
|
Schließt #71, #72 und #79.
|
||||||
|
|
||||||
|
### Vier Befunde in der Skill-Prosa, ein Publish
|
||||||
|
|
||||||
|
Der Rest der #65-Analyse, soweit er die fünf `SKILL.md` selbst betrifft. Vier
|
||||||
|
Issues, fünf Dateien, kein Codeanteil.
|
||||||
|
|
||||||
|
**Die Hard Rule von `wiki-status` war falsch (#70).** Sie sagte „read-only.
|
||||||
|
Never writes, scaffolds, or modifies any file" — und Schritt 2 ruft `lint`,
|
||||||
|
schreibt also einen Report, was Schritt 2 sogar selbst beschreibt. Ein Agent,
|
||||||
|
der die Regel wörtlich nimmt, kann den Skill nicht ausführen; einer, der ihn
|
||||||
|
ausführt, hat die stärkste Aussage des Dokuments gebrochen, bevor er Schritt 5
|
||||||
|
erreicht. Das ist die teurere Sorte Widerspruch, weil die Hard Rule genau die
|
||||||
|
Stelle ist, an der ein Konflikt entschieden wird. Sie lautet jetzt wie die von
|
||||||
|
`wiki-query` — read-only gegenüber Wiki-*Inhalt* — und benennt den einen Write
|
||||||
|
mitsamt Grund: `reports/` ist gitignored und trägt keine Wiki-Seite. Schritt 5
|
||||||
|
behauptet nicht mehr, es sei keine Datei geschrieben worden, sondern sagt, was
|
||||||
|
mit der geschriebenen *nicht* passiert (Semantic Review bleibt leer, nichts
|
||||||
|
wird ausgetragen — das ist `wiki-lint` Schritt 9). Der Decision Point „Never
|
||||||
|
publishes — nothing was written" trägt jetzt den wahren Grund: unter `kb/` hat
|
||||||
|
sich nichts geändert, und der Report kann gar nicht in einen Commit geraten.
|
||||||
|
|
||||||
|
**`wiki-ingest` und `wiki-lint` bekommen einen Abhak-Block (#74).** Anthropics
|
||||||
|
Skill-Doku empfiehlt für „particularly complex workflows" eine Checkliste, die
|
||||||
|
der Agent in die Antwort kopiert und mitführt. Zwölf Schritte fallen
|
||||||
|
unzweifelhaft darunter. Der Ausschlag gibt aber nicht die Länge, sondern was
|
||||||
|
still ausfällt: `## Not Extracted` in Schritt 6, die Coverage-Prüfung in
|
||||||
|
Schritt 10, die Lint-Kadenz in Schritt 12 — keiner davon erzeugt eine
|
||||||
|
Fehlermeldung, wenn er ausbleibt.
|
||||||
|
|
||||||
|
Die offene Frage des Issues — ob `wiki-lint` denselben Block bekommt — ist mit
|
||||||
|
ja beantwortet: neun Schritte, davon 3-6 reines Judgment, und ein Lauf, der
|
||||||
|
leise nur seine mechanische Hälfte gemacht hat, sieht aus wie ein
|
||||||
|
vollständiger. Damit haben zwei von fünf Skills einen Block und drei nicht, und
|
||||||
|
genau das wäre ohne festgeschriebenes Kriterium die nächste strukturelle
|
||||||
|
Ungleichheit im Sinne von #78. `instructions/CONTRACT.md` § Writing an
|
||||||
|
instruction trägt sie deshalb jetzt: ein Block, wenn **ein** Ablauf acht
|
||||||
|
Schritte oder mehr hat **und** darin still ausfallende Schritte stehen. Beide
|
||||||
|
Hälften nötig — ein langer Ablauf aus reinen Tool-Calls meldet seine Lücken
|
||||||
|
selbst, weil der nächste Call ohne den vorigen scheitert. Der Abschnitt nennt
|
||||||
|
die drei anderen Skills mit ihren Schrittzahlen, damit niemand aus Symmetrie
|
||||||
|
einen vierten Block nachrüstet.
|
||||||
|
|
||||||
|
**`wiki-query` prüfte nicht, bevor es filete (#75).** Die drei Kriterien
|
||||||
|
(Synthese über mehrere Seiten, etwas noch nicht Dokumentiertes, wird wieder
|
||||||
|
gefragt) standen im Filing-Schritt selbst, und der Skill darf mehrere Seiten
|
||||||
|
je Sitzung anlegen — es gab also keine Stelle, an der *jede* geplante Seite
|
||||||
|
einzeln gemessen wurde. Neuer Schritt 5 vor dem ersten `new`: Kandidaten
|
||||||
|
benennen, jeden für sich gegen alle drei halten, ein Stapel wird nie als Stapel
|
||||||
|
beurteilt. Wer durchfällt, wird nicht angelegt, sondern in der Antwort mit
|
||||||
|
einem Satz genannt — der Nutzer kann ihn trotzdem verlangen. Der bisherige
|
||||||
|
Filing-Schritt ist Schritt 6, `log append` Schritt 7, die Hard Rule zieht mit.
|
||||||
|
Der Mass-Update-Gate-Hinweis bleibt, sagt aber jetzt dazu, dass er keine
|
||||||
|
Ersatzprüfung ist: das Gate zählt Dateien und weiß nichts über Berechtigung,
|
||||||
|
und ein Stapel unter der Schwelle ist von ihm nicht freigegeben, nur nicht
|
||||||
|
angehalten worden. Dazu die `session-setup.md`-Zeile in derselben Form wie in
|
||||||
|
den drei anderen — Schritt 7 läuft *immer* und der Filing-Pfad zieht `new`,
|
||||||
|
`xref add` und die Rebuilds nach sich.
|
||||||
|
|
||||||
|
**Die Kommandolisten gingen mit den Schritten auseinander (#78).**
|
||||||
|
`cite add` fehlte in `wiki-ingest` und `wiki-manage`, obwohl beide es
|
||||||
|
ausdrücklich vorschreiben; `types describe` fehlte in `wiki-ingest`, wo
|
||||||
|
Schritt 6 die `source_type`-Werte daraus zieht; `xref add` fehlte in
|
||||||
|
`wiki-lint`, wo Schritt 1 das Umlabeln einer schwachen Kante darauf stützt;
|
||||||
|
`publish` fehlte in `wiki-lint` und `wiki-query`, wo je ein Decision Point es
|
||||||
|
beim Namen nennt. In die andere Richtung: `rm` stand in `wiki-lint`s Liste,
|
||||||
|
ohne dass ein Schritt es begründet — die gefährlichere Richtung der Drift, weil
|
||||||
|
`rm` Seiten löscht. Dazu `log status` (entscheidet den Trigger, gelaufen wird
|
||||||
|
es von `wiki-ingest`) und die nie benutzten Flags `lint --markdown` und
|
||||||
|
`lint --json`. Beide Streichungen stehen jetzt als **Deliberately absent** unter
|
||||||
|
der Liste, mit Grund — sonst trägt sie jemand aus Vollständigkeit wieder ein.
|
||||||
|
|
||||||
|
Nicht als Drift gezählt und bewusst gelistet geblieben: `publish`,
|
||||||
|
`log append`, `index rebuild` und `sources rebuild-index`, wo ein Skill sie
|
||||||
|
über `publish-cycle.md` delegiert. Ebenso `xref remove` in `wiki-manage`, das
|
||||||
|
zum Unlinking-Fall gehört, den der Skill als Ganzes an `page-lifecycle.md`
|
||||||
|
abgibt; auch das steht jetzt als Satz dort, nicht als stille Annahme.
|
||||||
|
|
||||||
|
Der zweite Teil von #78 ist die Symmetrie: `wiki-manage` und `wiki-status`
|
||||||
|
tragen jetzt einen Beispielblock wie die drei anderen. Fünf Skills mit
|
||||||
|
demselben Aufbau sollten denselben Aufbau haben — ein fehlender Abschnitt liest
|
||||||
|
sich sonst als Aussage („hier gibt es keine typischen Fälle"), die niemand
|
||||||
|
gemeint hat.
|
||||||
|
|
||||||
|
Die offene Frage aus #78 — ob `instructions verify` diesen Abgleich künftig
|
||||||
|
selbst macht — bleibt offen und ist ein eigenes Issue. Der Abgleich ist
|
||||||
|
mechanisch, aber nicht trivial: die drei Ausnahmen oben (Delegation, benannte
|
||||||
|
Delegation, „Deliberately absent") müsste ein Prüfer alle kennen, sonst meldet
|
||||||
|
er dieselben vier Stellen bei jedem Lauf.
|
||||||
|
|
||||||
|
**PATCH**, geprüft gegen den Drop-in-Test: eine Instanz kopiert `instructions/`
|
||||||
|
über sich, nichts wird umbenannt oder entfernt, kein Kommando, kein Flag, kein
|
||||||
|
maschinengelesenes Format, und der Rückweg funktioniert genauso. Kein
|
||||||
|
`--breaking`, kein Migrationsdokument.
|
||||||
|
|
||||||
|
Geändert: `instructions/wiki-status/SKILL.md`, `instructions/wiki-query/SKILL.md`,
|
||||||
|
`instructions/wiki-ingest/SKILL.md`, `instructions/wiki-lint/SKILL.md`,
|
||||||
|
`instructions/wiki-manage/SKILL.md`, `instructions/CONTRACT.md` (§ Writing an
|
||||||
|
instruction, neuer Unterabschnitt „When a skill carries a copy-in checklist").
|
||||||
|
`wiki-ingest` bleibt mit 233 Zeilen unter Anthropics 500er-Schwelle.
|
||||||
|
|
||||||
|
Schließt #70, #74, #75 und #78.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4.7.4 - 2026-09-04 - bootstrap.md nennt den session-id-WARN nach frischem Bootstrap explizit als erwartet
|
## 4.7.4 - 2026-09-04 - bootstrap.md nennt den session-id-WARN nach frischem Bootstrap explizit als erwartet
|
||||||
|
|||||||
@@ -217,6 +217,29 @@ reads, and no tool hook is wired on the primary harness at all - so a `head -100
|
|||||||
to score. The other half of the claim, what ended up in the context window, produces no event
|
to score. The other half of the claim, what ended up in the context window, produces no event
|
||||||
anywhere by construction. Gitea #72 records what a test would cost and why it was not bought.
|
anywhere by construction. Gitea #72 records what a test would cost and why it was not bought.
|
||||||
|
|
||||||
|
### When a skill carries a copy-in checklist
|
||||||
|
|
||||||
|
Anthropic's skill-authoring guidance suggests, for a "particularly complex workflow", a checklist
|
||||||
|
the agent copies into its response and ticks off as it goes. It names no threshold, so this repo
|
||||||
|
sets one - otherwise the two skills that have such a block and the three that do not read as an
|
||||||
|
accident rather than a decision.
|
||||||
|
|
||||||
|
A `SKILL.md` carries the block when **one** of its flows runs to eight steps or more *and* that
|
||||||
|
flow contains steps whose omission is silent - a judgment call, a field filled by hand, a
|
||||||
|
cadence check, anything no tool error and no validator would report missing. Both halves are
|
||||||
|
required. Length alone is not the problem: a long flow of tool calls announces its own gaps,
|
||||||
|
because the next call fails without the previous one.
|
||||||
|
|
||||||
|
Two skills qualify today, and the block names each of their numbered steps once, verbatim:
|
||||||
|
`wiki-ingest` (twelve steps, of which `## Not Extracted` in step 6, the coverage check in step 10
|
||||||
|
and the lint cadence in step 12 all fail quietly) and `wiki-lint` (nine, with steps 3-6 pure
|
||||||
|
judgment). The other three do not, and the reason is worth stating so nobody adds one out of
|
||||||
|
symmetry: `wiki-manage` has two flows of seven, `wiki-query` six, `wiki-status` five, and none of
|
||||||
|
them is long enough for a reader to lose the thread.
|
||||||
|
|
||||||
|
The block says that it is to be copied and carried, not read. A checklist read once is the table
|
||||||
|
of contents it replaced.
|
||||||
|
|
||||||
### How much reasoning a step may carry
|
### How much reasoning a step may carry
|
||||||
|
|
||||||
"Cut the reasoning" and "keep enough to decide an edge case" are one sentence pulling two ways,
|
"Cut the reasoning" and "keep enough to decide an edge case" are one sentence pulling two ways,
|
||||||
|
|||||||
@@ -16,6 +16,27 @@ Contracts are read **when the step needs them**, not upfront: a source that prod
|
|||||||
pages should never have cost the concept contract. Field-level requirements always come from
|
pages should never have cost the concept contract. Field-level requirements always come from
|
||||||
`tools/wikitool types describe <type>`, never from memory.
|
`tools/wikitool types describe <type>`, never from memory.
|
||||||
|
|
||||||
|
## Run checklist
|
||||||
|
|
||||||
|
Copy this block into your first reply of the run and tick each line as you reach it. It is
|
||||||
|
carried through the run, not read once: several steps below fail silently - nothing errors, no
|
||||||
|
validator complains - and the ticked list is the only record that they happened.
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
- [ ] 1. Promote from `incoming/` if that is where the file sits
|
||||||
|
- [ ] 2. Read the source
|
||||||
|
- [ ] 3. Extract metadata
|
||||||
|
- [ ] 4. Check what the wiki already knows
|
||||||
|
- [ ] 5. Discuss with the user
|
||||||
|
- [ ] 6. Create the source page (incl. `## Not Extracted`)
|
||||||
|
- [ ] 7. Create or update entity pages
|
||||||
|
- [ ] 8. Create or update concept pages
|
||||||
|
- [ ] 9. Cross-reference
|
||||||
|
- [ ] 10. Check coverage
|
||||||
|
- [ ] 11. Close out
|
||||||
|
- [ ] 12. Check the lint cadence
|
||||||
|
```
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
1. **Promote from `incoming/` if that is where the file sits.** Read
|
1. **Promote from `incoming/` if that is where the file sits.** Read
|
||||||
@@ -201,9 +222,9 @@ pages should never have cost the concept contract. Field-level requirements alwa
|
|||||||
|
|
||||||
## wikitool commands used
|
## wikitool commands used
|
||||||
|
|
||||||
`raw accept`, `search`, `new source`, `new entity`, `new concept`, `touch`, `xref add`,
|
`raw accept`, `search`, `types describe`, `new source`, `new entity`, `new concept`, `touch`,
|
||||||
`xref link-source`, `sources coverage`, `sources rebuild-index`, `index rebuild`, `log append`,
|
`cite add`, `xref add`, `xref link-source`, `sources coverage`, `sources rebuild-index`,
|
||||||
`log status`, `publish`
|
`index rebuild`, `log append`, `log status`, `publish`
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,24 @@ never something an agent has to remember.
|
|||||||
|
|
||||||
**Before the first `wikitool` call:** [session-setup.md](../session-setup.md).
|
**Before the first `wikitool` call:** [session-setup.md](../session-setup.md).
|
||||||
|
|
||||||
|
## Run checklist
|
||||||
|
|
||||||
|
Copy this block into your first reply of the pass and tick each line as you reach it. Steps 3-6
|
||||||
|
are pure judgment: nothing errors when they are skipped, and a pass that quietly ran only its
|
||||||
|
mechanical half looks exactly like a complete one.
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
- [ ] 1. Structural scan
|
||||||
|
- [ ] 2. Raw coverage
|
||||||
|
- [ ] 3. Contradictions (judgment)
|
||||||
|
- [ ] 4. Stale claims (judgment)
|
||||||
|
- [ ] 5. Missing pages (judgment)
|
||||||
|
- [ ] 6. Duplicated rules (judgment)
|
||||||
|
- [ ] 7. Repair what is mechanical
|
||||||
|
- [ ] 8. Refresh confidence and verify the stack
|
||||||
|
- [ ] 9. Rebuild, write the report, carry its findings out
|
||||||
|
```
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
1. **Structural scan.**
|
1. **Structural scan.**
|
||||||
@@ -119,9 +137,13 @@ never something an agent has to remember.
|
|||||||
|
|
||||||
## wikitool commands used
|
## wikitool commands used
|
||||||
|
|
||||||
`lint`, `lint --markdown`, `search`, `log status`, `sources coverage`, `xref remove`, `rename`,
|
`lint`, `search`, `sources coverage`, `xref add`, `xref remove`, `rename`, `new`,
|
||||||
`rm`, `new`, `confidence decay --apply`, `confidence init-base --apply`, `docs verify`,
|
`confidence decay --apply`, `confidence init-base --apply`, `docs verify`, `instructions verify`,
|
||||||
`instructions verify`, `sources rebuild-index`, `index rebuild`, `log append`
|
`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
|
||||||
|
this skill's *trigger*, but `wiki-ingest`'s last step is what runs it.
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
||||||
|
|||||||
@@ -102,9 +102,17 @@ page, so none of it is a file operation.
|
|||||||
|
|
||||||
## wikitool commands used
|
## wikitool commands used
|
||||||
|
|
||||||
`search`, `types list`, `types describe`, `new`, `touch`, `xref add`, `xref remove`,
|
`search`, `types list`, `types describe`, `new`, `touch`, `cite add`, `xref add`, `xref remove`,
|
||||||
`sources rebuild-index`, `index rebuild`, `log append`, `publish`
|
`sources rebuild-index`, `index rebuild`, `log append`, `publish`
|
||||||
|
|
||||||
|
`xref remove` belongs to the unlinking case, which this skill delegates whole to
|
||||||
|
[page-lifecycle.md](../page-lifecycle.md) rather than describing in a step of its own.
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
||||||
A new or updated page, published to `origin/main`.
|
A new or updated page, published to `origin/main`.
|
||||||
|
|
||||||
|
**Example triggers:**
|
||||||
|
|
||||||
|
- "Create a concept page for the deployment pipeline we just discussed"
|
||||||
|
- "Update the Index Scaling page with what the new lint run showed"
|
||||||
|
|||||||
@@ -9,9 +9,11 @@ description: Answer a question using the LLM wiki's compiled knowledge - read-on
|
|||||||
|
|
||||||
**Trigger:** User asks a question.
|
**Trigger:** User asks a question.
|
||||||
|
|
||||||
|
**Before the first `wikitool` call:** [session-setup.md](../session-setup.md).
|
||||||
|
|
||||||
**Hard rule:** read-only with respect to wiki *content*. Never modify, hand-edit, or scaffold a
|
**Hard rule:** read-only with respect to wiki *content*. Never modify, hand-edit, or scaffold a
|
||||||
page while answering. Two exceptions, both mechanical: step 5 (filing a valuable answer through
|
page while answering. Two exceptions, both mechanical: step 6 (filing a valuable answer through
|
||||||
`wikitool new`, never by hand) and step 6 (one audit entry via `wikitool log append`). If the
|
`wikitool new`, never by hand) and step 7 (one audit entry via `wikitool log append`). If the
|
||||||
wiki has no confident source, say so - per AGENTS.md's "never file an unsourced answer"
|
wiki has no confident source, say so - per AGENTS.md's "never file an unsourced answer"
|
||||||
invariant - rather than synthesizing a plausible-sounding answer from general knowledge.
|
invariant - rather than synthesizing a plausible-sounding answer from general knowledge.
|
||||||
|
|
||||||
@@ -46,12 +48,22 @@ invariant - rather than synthesizing a plausible-sounding answer from general kn
|
|||||||
Hedge to the page's confidence: below 0.6 write "possibly"/"may"; below 0.4 write
|
Hedge to the page's confidence: below 0.6 write "possibly"/"may"; below 0.4 write
|
||||||
"uncertain"/"unconfirmed".
|
"uncertain"/"unconfirmed".
|
||||||
|
|
||||||
5. **File it back, if it earns a page.** Only when the answer required synthesis across several
|
5. **Decide what earns a page - before the first `new`.** Name every page you are considering,
|
||||||
pages, revealed something not already written down, and will be asked again. Then scaffold
|
then hold each one on its own against all three criteria: the answer required synthesis
|
||||||
it - `tools/wikitool new ...` - and follow `wiki-manage`. Never write the page by hand, and
|
across several pages, it revealed something not yet written down, and it will be asked
|
||||||
never file an answer no source backs.
|
again. All three, per candidate. A batch is never judged as a batch - one page clearing the
|
||||||
|
bar says nothing about the next one.
|
||||||
|
|
||||||
6. **Log it.**
|
A candidate that misses any of the three is not scaffolded. Put one line in the answer
|
||||||
|
naming what was considered and why it stays unwritten, and let the user ask for it anyway.
|
||||||
|
That is the whole cost of being wrong here in the cautious direction; the other direction is
|
||||||
|
a page nobody asked for, which reads exactly like a page the wiki needed and is far harder to
|
||||||
|
find again than a sentence in a chat log.
|
||||||
|
|
||||||
|
6. **File back what survived.** Scaffold it - `tools/wikitool new ...` - and follow
|
||||||
|
`wiki-manage`. Never write the page by hand, and never file an answer no source backs.
|
||||||
|
|
||||||
|
7. **Log it.**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tools/wikitool log append --op query --title "<question>" --body "<outcome>"
|
tools/wikitool log append --op query --title "<question>" --body "<outcome>"
|
||||||
@@ -65,12 +77,14 @@ invariant - rather than synthesizing a plausible-sounding answer from general kn
|
|||||||
- **Filed a page?** Query does **not** auto-publish. Run `tools/wikitool publish` only if asked;
|
- **Filed a page?** Query does **not** auto-publish. Run `tools/wikitool publish` only if asked;
|
||||||
the sequence is in [publish-cycle.md](../publish-cycle.md).
|
the sequence is in [publish-cycle.md](../publish-cycle.md).
|
||||||
- **Several answers filed at once?** That can trip the Mass-Update Gate - see
|
- **Several answers filed at once?** That can trip the Mass-Update Gate - see
|
||||||
[gates.md](../gates.md).
|
[gates.md](../gates.md). The gate is a brake, not the check: it counts files and knows nothing
|
||||||
|
about whether any of them earned a page. Step 5 is what decides that, and a batch small enough
|
||||||
|
to pass the gate has not been cleared by it.
|
||||||
|
|
||||||
## wikitool commands used
|
## wikitool commands used
|
||||||
|
|
||||||
`search`, `log append`. If filing an answer back: `new`, `xref add`, `sources rebuild-index`,
|
`search`, `log append`. If filing an answer back: `new`, `xref add`, `sources rebuild-index`,
|
||||||
`index rebuild`.
|
`index rebuild`, and `publish` only if asked.
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,12 @@ semantic review a lint pass does.
|
|||||||
|
|
||||||
**Trigger:** User asks for wiki statistics, "what's new", or a quick health snapshot.
|
**Trigger:** User asks for wiki statistics, "what's new", or a quick health snapshot.
|
||||||
|
|
||||||
**Hard rule:** read-only. Never writes, scaffolds, or modifies any file. If something looks
|
**Hard rule:** read-only with respect to wiki *content*. Never create, modify, or scaffold a
|
||||||
wrong, point the user at `wiki-lint` or `wiki-manage` instead of fixing it here.
|
page, never repair a finding, never publish. One file does get written: the report `lint`
|
||||||
|
produces in step 2. That is not an exception being stretched - `reports/` is gitignored and holds
|
||||||
|
no wiki page ([reports/CONTRACT.md](../../reports/CONTRACT.md)), so the write leaves nothing
|
||||||
|
behind that the wiki ships. If something looks wrong, point the user at `wiki-lint` or
|
||||||
|
`wiki-manage` instead of fixing it here.
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
@@ -36,18 +40,23 @@ wrong, point the user at `wiki-lint` or `wiki-manage` instead of fixing it here.
|
|||||||
4. **Recent activity.** Read the last few entries of `kb/log.md`.
|
4. **Recent activity.** Read the last few entries of `kb/log.md`.
|
||||||
|
|
||||||
5. **Summarize in chat.** Counts by type, N orphan pages, N uncovered raw files, most-connected
|
5. **Summarize in chat.** Counts by type, N orphan pages, N uncovered raw files, most-connected
|
||||||
pages, and what changed recently. Do not write a report file - that is `wiki-lint`'s job.
|
pages, and what changed recently. Leave the step-2 report as `lint` left it: its "Semantic
|
||||||
|
Review" section stays empty and its findings are not carried into any page or into
|
||||||
|
`kb/log.md`. That is `wiki-lint`'s step 9, and it is what separates a snapshot from a pass.
|
||||||
|
|
||||||
## Decision points
|
## Decision points
|
||||||
|
|
||||||
- **Findings worth acting on?** Point at `wiki-lint` (repairs) or `wiki-manage` (content). Do
|
- **Findings worth acting on?** Point at `wiki-lint` (repairs) or `wiki-manage` (content). Do
|
||||||
not fix anything here.
|
not fix anything here.
|
||||||
- **Never publishes** - nothing was written.
|
- **Never publishes.** Nothing under `kb/` changed, and the step-2 report is gitignored, so
|
||||||
|
there is nothing a commit could pick up.
|
||||||
|
|
||||||
## wikitool commands used
|
## wikitool commands used
|
||||||
|
|
||||||
`lint` (no flags), `lint --json` (optional, for the link-graph data).
|
`lint` (no flags).
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
||||||
A short chat summary, plus a pointer to `wiki-lint` if deeper investigation is warranted.
|
A short chat summary, plus a pointer to `wiki-lint` if deeper investigation is warranted.
|
||||||
|
|
||||||
|
**Example trigger:** "Give me a quick wiki status"
|
||||||
|
|||||||
Reference in New Issue
Block a user