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:
31
CLAUDE.md
31
CLAUDE.md
@@ -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`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user