Specify the coverage file shape and wire Workflow A into Workflow D (I4, I5)

- I4: added a fourth Required Page Template for wiki/script-coverage.md
  spelling out the exact positional shape parseCoverageTable requires
  (metadata line syntax, column order, station spelling, lowercase all/yes) —
  Workflow D described the fields but never the shape, so a compliant write
  could still fail every parse. Also spelled out the seven station names in
  Workflow D step 3 and resolved the step 4 (pinned rows are protected) vs
  step 5 (stale rows are removed) ambiguity for a pinned row whose concept
  page is gone.
- I5: added Workflow A step 9, pointing any ingest that touches
  wiki/concepts/ at Workflow D before reporting — previously that trigger
  lived only inside Workflow D's own list, so an ingest run top to bottom
  never synced coverage and the right pane went stale silently.
- log.md: added "sync" to the intent docstring's valid values (Workflow D
  already required it) and corrected the 2026-07-28 entry's attribution —
  the concept grouping lives in index.md, not in script-coverage.md itself.
This commit is contained in:
meels
2026-07-28 14:58:12 +02:00
parent 9eb29bb41e
commit 0a7271136a
2 changed files with 32 additions and 3 deletions

View File

@@ -122,6 +122,29 @@ Must include:
- Follow-up questions
- Whether this output changed existing pages
### 4) Coverage File (`wiki/script-coverage.md`)
Machine-read by the dashboard plugin, which parses the table positionally. The
shape below is required exactly — a deviation renders as parse errors, not as a
best-effort read.
- `# Script coverage`
- `#coverage` tag line
- `## Metadata`, containing these two lines verbatim in this form:
- `- **Script:** ` followed by the raw script path in backticks
- `- **Last synced:** ` followed by a `YYYY-MM-DD` date
- `## Coverage`, containing one markdown table with exactly these four columns in
this order: `Concept`, `Status`, `Station`, `Pinned`
- **Concept** — an Obsidian wikilink to a page in `wiki/concepts/`
- **Status** — exactly one of `covered`, `partial`, `absent`, lowercase
- **Station** — one of the seven station names spelled exactly as listed in
Workflow D, a comma-separated list of them, the lowercase word `all`, or an
em dash `—` when the status is `absent`
- **Pinned** — the lowercase word `yes`, or empty
- `## Notes` and `## Related Pages` are free prose and are not parsed.
The parser reads every markdown table in the file, so do not add a second table.
## Standard Workflows
### Workflow A: Ingest One Source
@@ -136,6 +159,8 @@ When user says "ingest <source>":
6. Update `index.md`.
7. Append ingest entry to `log.md`.
8. Report what changed, what is uncertain, and suggested next source/questions.
9. If this ingest created or modified any page in `wiki/concepts/`, run Workflow D
(Sync Script Coverage) before reporting.
### Workflow B: Answer Query
@@ -169,10 +194,14 @@ against the script named in that file's `**Script:**` metadata field.
- `covered` — the script delivers the idea, whether or not it uses the page's name.
- `partial` — the script gestures at it but never lands it.
- `absent` — the script never reaches it.
- `Station` is one of the seven, a comma-separated list, `all`, or `—` when absent.
- `Station` is one of the seven`Chat box`, `ReAct`, `Tools`, `Memory`,
`Skills`, `Process`, `OS` — spelled exactly as written here, or a
comma-separated list of them, or the lowercase word `all`, or `—` when absent.
4. **Never modify a row whose `Pinned` is `yes`** — not its status, not its station.
A pinned row is the user's judgment and outranks yours.
5. Add rows for concept pages with no row. Remove rows whose concept page no longer exists.
A pinned row whose concept page no longer exists is still removed — step 4
protects the user's judgement about a live concept, not a dangling row.
6. Update `**Last synced:**` to today.
7. Update `index.md` and append a `sync` entry to `log.md`.

4
log.md
View File

@@ -6,7 +6,7 @@ Entry format:
```
## YYYY-MM-DD — <operation>
- Intent: ingest | query | lint | maintenance
- Intent: ingest | query | lint | maintenance | sync
- Input: <source path / question / scope>
- Pages changed: [[...]], [[...]]
- Notes: <what changed, uncertainty, next steps>
@@ -153,5 +153,5 @@ Entry format:
- Input: first run of Workflow D, establishing `wiki/script-coverage.md`.
- Pages created: [[script-coverage]] (coverage) — 19 rows, one per concept page.
- Pages updated: `CLAUDE.md` (folder convention, `#coverage` tag row, Workflow D, new intent), `index.md` (new Coverage section; corrected the not-yet-ingested list — `Ideas for webinar.md` and `my theses.md` were listed under `raw/sources/` but live in `raw/notes/`, and `Agentic Engineering, explained by a 10x developer.md` was missing entirely).
- Notes: Initial assessment is 5 covered, 4 partial, 10 absent. Eight of the ten absent are human-side or strategy-side per this file's own concept grouping; the other two — [[integration-dead-ends]] and [[leave-less-room-for-imagination]] — are machine-side, absent because the script demos the happy path and never reaches connector gating or spec ambiguity. The `ReAct` station carries no wiki concept. No concept pages were edited.
- Notes: Initial assessment is 5 covered, 4 partial, 10 absent. Eight of the ten absent are human-side or strategy-side per the grouping in index.md; the other two — [[integration-dead-ends]] and [[leave-less-room-for-imagination]] — are machine-side, absent because the script demos the happy path and never reaches connector gating or spec ambiguity. The `ReAct` station carries no wiki concept. No concept pages were edited.
- Next: decide whether the human-side cluster earns a station or is a deliberate cut; decide separately whether the two absent machine-side failure modes belong in the demo; pin the rows that are decided so future syncs leave them alone.