Repository navigation
Description
WS1 — The pack interface: one manifest per domain, score as a field of a pack
Important
Problem — Domain knowledge today loads through the score machinery alone: a score's stages compile into the runtime instructions, and there is no declared unit bundling skills + templates + corrector + catalog + eval corpus. The autoresearch reframe (parent #368) needs a single harness-agnostic seam that every domain pack implements.
Approach — Introduce the pack manifest as the unit of generality, owned by the schema package with one validator consumed by the extension, the CLI, and CI. The loader/compiler treats the onboarding score as one field of a pack. No physics content moves in this slice — the pulse repertoire is re-expressed as a pack manifest, byte-identical in output.
Scope — in: manifest schema, validator, loader refactor, golden compiled-output parity · out: the instruction rewrite (WS2), new packs (WS3), runtime pack switching (follow-up).
Acceptance Criteria
- A pack manifest schema exists (skills, template registry, corrector with integrity manifest, catalog schema, onboarding score, eval corpus pointer) with one shared validator
- The extension loads the existing pulse-designer repertoire through a pack manifest with byte-identical compiled output against today's golden
- A second pack can be registered by manifest alone — no loader code change
- Boot-time selection behaves exactly as today for the default pack
Testing Decisions
Extend the existing score-loader unit tests with manifest fixtures; add a schema round-trip in the schema package's suite; add a golden compiled-output parity test (new loader vs current output). This is the TDD spec — the parity test goes red first.
Key Decisions
- A score is one field of a pack, not a peer of it.
- The manifest names the corrector and its integrity manifest explicitly — the threshold condition is a load-time property, not a convention.
- Boot-time selection stays in v1; router-time recompilation is explicitly deferred.
Constraints & Invariants
- No file outside the loader/compiler seam changes behavior; the corrector paths a manifest names must live outside agent-editable trees.
Prior Art
- The score loader/compiler and entitlement filter (extension session-prep); the schema package's single-validator pattern.
Source
Part of #368 · design-of-record: vault spec note spec-20260813-162300-autoresearch-studio
Activity
feat(schema): pack manifest kind — the unit of generality (WS1 #369)
feat(extension): loadPacks — ordered-root pack resolution through the…
feat(extension): the quantum-control pack + golden byte-parity (WS1 #369
feat(extension): boot selection through the default pack (WS1 #369)
feat(extension): load-time corrector integrity (WS1 #369)
ci: validate the shipped pack manifest through amico-validate (WS1 #369)
WS1 — The pack interface: one manifest per domain, score as a field o…
fix: golden parity files are path-portable (WS1 #369 follow-up) (#392)