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`.