spec-kitty / spec-kitty/spec-kitty
Pack metadata WP-split: authored pack.yaml/pack.md vs generated pack-manifest.yaml
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 165
- Avg merge
- 14h 22m
- Merged PRs (30d)
- 343
Description
**Gap #6 · Size S · blocked_by WP-core.**
The pack-layout contract forbids authors editing the generated manifest (`…/contracts/pack-layout.md:104`). Split the concerns into two files rather than fencing an authored block inside a generated one:
- **`pack.yaml`** (authored): `pack_id`, `pack_version`, `parent_pack`, `accompanies_doctrine_pack`, human metadata.
- **`pack.md`** (authored): human-readable pack description.
- **`pack-manifest.yaml`** (generated, never hand-edited): `constituents[]`, content hashes, `manifest_hash`, `charter:` profile.
Per ADR `docs/adr/3.x/2026-08-16-1-pack-metadata-manifest-unification.md` (unify decision) and the disposition `docs/plans/investigations/2026-08-pack-level-metadata-manifest.md`. Parent keystone: #2467. Trust-adjacent: #2539.
Contributor guide
Research direction
Start with the pack-layout contract at …/contracts/pack-layout.md:104, then read ADR docs/adr/3.x/2026-08-16-1-pack-metadata-manifest-unification.md and the disposition docs/plans/investigations/2026-08-pack-level-metadata-manifest.md. Check the dependency on WP-core and parent issue #2467 before changing anything. Done means authored metadata is in pack.yaml and pack.md, while pack-manifest.yaml contains only generated manifest data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100