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 - Follow-up questions
- Whether this output changed existing pages - 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 ## Standard Workflows
### Workflow A: Ingest One Source ### Workflow A: Ingest One Source
@@ -136,6 +159,8 @@ When user says "ingest <source>":
6. Update `index.md`. 6. Update `index.md`.
7. Append ingest entry to `log.md`. 7. Append ingest entry to `log.md`.
8. Report what changed, what is uncertain, and suggested next source/questions. 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 ### 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. - `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. - `partial` — the script gestures at it but never lands it.
- `absent` — the script never reaches 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. 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. 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. 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. 6. Update `**Last synced:**` to today.
7. Update `index.md` and append a `sync` entry to `log.md`. 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> ## YYYY-MM-DD — <operation>
- Intent: ingest | query | lint | maintenance - Intent: ingest | query | lint | maintenance | sync
- Input: <source path / question / scope> - Input: <source path / question / scope>
- Pages changed: [[...]], [[...]] - Pages changed: [[...]], [[...]]
- Notes: <what changed, uncertainty, next steps> - Notes: <what changed, uncertainty, next steps>
@@ -153,5 +153,5 @@ Entry format:
- Input: first run of Workflow D, establishing `wiki/script-coverage.md`. - Input: first run of Workflow D, establishing `wiki/script-coverage.md`.
- Pages created: [[script-coverage]] (coverage) — 19 rows, one per concept page. - 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). - 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. - 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.