Files
pad/internal/collections
xarmian 1db0e6a505 docs+test: closes the PLAN-1397 library overhaul loop (TASK-1404) (#533)
* docs+test: closes the PLAN-1397 library overhaul loop (TASK-1404)

## Tests

New `internal/collections/playbook_library_test.go` with 4 regression
guards for the invokable-first library:

- TestPlaybookLibrary_InvokableEntriesPresent — asserts ship + plan +
  decompose are all present by invocation_slug, that each has at
  least one Argument declared, and that at least 3 invokable entries
  exist. Catches T1 widening getting half-reverted or T6's library
  rebuild dropping an entry.
- TestPlaybookLibrary_AllTriggersKnown — asserts every library
  entry's Trigger is one of the canonical values (manual,
  on-implement, on-review, on-plan, on-triage, on-release,
  on-deploy, on-pr-create, on-task-complete, always). Catches typos
  that would seed an invalid trigger.
- TestPlaybookLibrary_ShipBodyShared — confirms the library `ship`
  entry and ShipPlaybook() seed share the same body constant. The
  whole point of T3 was to avoid duplication; this prevents drift.
- TestPlaybookLibraryArchive_BodiesCompiled — keeps archivedPlaybooks()
  greppable and verifies the canonical retired title ("Implementation
  Workflow") is still in the archive.

## CLAUDE.md

- Added a "Library — discovery surface" subsection to the Playbooks
  section explaining the invokable-first lineup, the archive, and
  how `softwareStarterPlaybookTitles` seeds plan + decompose into
  software workspaces.
- Expanded "Code map" with the four new/refactored library files
  (playbook_library.go, playbook_library_plan.go,
  playbook_library_decompose.go, playbook_library_archive.go).
- Cross-referenced PLAN-1397 alongside PLAN-1377 for design history.

## skills/pad/SKILL.md

- "Planning: 'Let's create a plan'" and "Decomposition: 'Break plan
  X into tasks'" now name `/pad plan` and `/pad decompose` as the
  canonical entry points, with the inline workflow as the fallback
  when those playbooks aren't activated in the workspace.
- The high-level "Planning:" intent list at the top of the routing
  section updated to match.
- Note: SKILL.md is embedded into the Go binary at build time. The
  next `make install` distributes the skill update; the .agents/
  copy regenerates automatically.

Parent: PLAN-1397. Closes the loop — all 7 tasks of the playbook
library overhaul shipped.

* fix(test): source knownPlaybookTriggers from SoftwarePlaybookTriggers per Codex review (round 1)

Round 1: the hand-maintained `knownPlaybookTriggers` map admitted
`on-pr-create`, `on-task-complete`, and `always` — all valid in
the schema for *conventions*, but NOT in `SoftwarePlaybookTriggers`
(templates.go:266). A library entry could ship one of those and
the regression test would pass, but the same trigger would be
rejected when seeded into a software workspace at activation.

Fix: derive the test's known-set from `SoftwarePlaybookTriggers`
directly. If the schema widens or narrows, the test follows
automatically — no drift between the assertion baseline and the
actual schema. Also added a note clarifying that templates with
domain-specific trigger vocabularies (e.g. hiring's
on-candidate-advance) would need their own library scoped to
that template.

The set is now exactly: manual, on-implement, on-triage,
on-release, on-plan, on-review, on-deploy.
2026-05-13 07:17:58 -04:00
..