SKILLS_INDEX.md missing experiment-spec and dream rows #15

Closed
opened 2026-07-25 20:46:59 +00:00 by mathias · 2 comments
Owner

Overlap audit (fork, 2026-07-25): experiment-spec and dream exist as real skill directories on disk but are absent from SKILLS_INDEX.md's table entirely. Everything else in the table matches a real directory — no other stale/renamed entries found.

Action:

  1. Add both as index rows (description + "use when").
  2. Wire experiment-spec into the "Skill Relationships" diagram at the bottom of the index — it sits parallel to feature-spec, both downstream of spec-driven-dev (per its own description: "adapted for scientific/ML research projects, instead of feature-spec").
  3. dream is a memory-maintenance skill (not part of the requirements/spec chain) — add to the index table but it doesn't need a diagram edge, same treatment as trainer/session-retrospective.
Overlap audit (fork, 2026-07-25): `experiment-spec` and `dream` exist as real skill directories on disk but are absent from `SKILLS_INDEX.md`'s table entirely. Everything else in the table matches a real directory — no other stale/renamed entries found. Action: 1. Add both as index rows (description + "use when"). 2. Wire `experiment-spec` into the "Skill Relationships" diagram at the bottom of the index — it sits parallel to `feature-spec`, both downstream of `spec-driven-dev` (per its own description: "adapted for scientific/ML research projects, instead of feature-spec"). 3. `dream` is a memory-maintenance skill (not part of the requirements/spec chain) — add to the index table but it doesn't need a diagram edge, same treatment as `trainer`/`session-retrospective`.
mathias added the risk/lowsize/xstype/docs labels 2026-08-27 05:25:45 +00:00
Author
Owner

Fixed in 83b069a, released as v0.8.2 — CI run #27 conclusion: success.

Both rows added: experiment-spec next to feature-spec, dream next to trainer.

Where the rows went

Worth recording, because it explains the mechanism rather than the symptom. Both rows were written — they lived on feat/add-dream-skill and feat/experiment-spec-skill, the branches cleaned up in #22. Those branches predate the move of skills into skills/, so they carried dream/SKILL.md at the repo root. The squash-merge landed the SKILL.md (relocated) and dropped the index row. The own-the-task branch carried three index rows the same way; those did survive.

So this was not forgetfulness, it was a merge shape that silently drops part of a change. Adding two rows by hand fixes today only.

The gate

bin/check-index, called from task check, following bin/should-skip-release's precedent — a real script with a real test rather than untested logic inside the Taskfile. It asserts both directions:

  • every skills/*/SKILL.md has a row (the bug here),
  • every row names a skill that still exists (the reverse drift, after a delete).

tests/check_index_test.sh covers four cases against temp fixtures: complete index, missing row, stale row, absent index. Mutation-verified on the real repo — deleting the dream row again turns task check red and the report names it:

$ sed -i '/^| `dream`/d' SKILLS_INDEX.md && task check
ERROR: skills/dream has no row in SKILLS_INDEX.md
exit 201

Audit of the other 41 skills: no other rows missing, no stale rows.

Fixed in `83b069a`, released as **v0.8.2** — CI run [#27](https://git.d-ma.be/mathias/skills/actions/runs/4836) `conclusion: success`. Both rows added: `experiment-spec` next to `feature-spec`, `dream` next to `trainer`. ## Where the rows went Worth recording, because it explains the mechanism rather than the symptom. Both rows *were* written — they lived on `feat/add-dream-skill` and `feat/experiment-spec-skill`, the branches cleaned up in #22. Those branches predate the move of skills into `skills/`, so they carried `dream/SKILL.md` at the repo root. The squash-merge landed the SKILL.md (relocated) and dropped the index row. The `own-the-task` branch carried three index rows the same way; those did survive. So this was not forgetfulness, it was a merge shape that silently drops part of a change. Adding two rows by hand fixes today only. ## The gate `bin/check-index`, called from `task check`, following `bin/should-skip-release`'s precedent — a real script with a real test rather than untested logic inside the Taskfile. It asserts both directions: - every `skills/*/SKILL.md` has a row (the bug here), - every row names a skill that still exists (the reverse drift, after a delete). `tests/check_index_test.sh` covers four cases against temp fixtures: complete index, missing row, stale row, absent index. Mutation-verified on the real repo — deleting the `dream` row again turns `task check` red and the report names it: ``` $ sed -i '/^| `dream`/d' SKILLS_INDEX.md && task check ERROR: skills/dream has no row in SKILLS_INDEX.md exit 201 ``` Audit of the other 41 skills: no other rows missing, no stale rows.
Author
Owner

Correction to the comment above: I closed this one commit early. This issue asked for three things and 83b069a did two — the table rows and (not asked for, but related) the gate. Item 2, the Skill Relationships diagram, was still missing experiment-spec.

Added in b188965: feature-spec and experiment-spec now sit as siblings under spec-driven-dev, with the planning→atdd chain re-indented under feature-spec where it belongs. dream gets no edge, same treatment as trainer and session-retrospective, per item 3.

All three items done now. Issue stays closed.

Correction to the comment above: I closed this one commit early. This issue asked for three things and `83b069a` did two — the table rows and (not asked for, but related) the gate. Item 2, the Skill Relationships diagram, was still missing `experiment-spec`. Added in `b188965`: `feature-spec` and `experiment-spec` now sit as siblings under `spec-driven-dev`, with the planning→atdd chain re-indented under `feature-spec` where it belongs. `dream` gets no edge, same treatment as `trainer` and `session-retrospective`, per item 3. All three items done now. Issue stays closed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mathias/skills#15