Skip to content

FE-897: Alpha hardening residues#237

Merged
lunelson merged 6 commits into
nextfrom
ln/fe-897-alpha-hardening-residues
Jun 22, 2026
Merged

FE-897: Alpha hardening residues#237
lunelson merged 6 commits into
nextfrom
ln/fe-897-alpha-hardening-residues

Conversation

@lunelson

@lunelson lunelson commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Stack Context

This PR sits above FE-861 and closes the small alpha-hardening residue collection tracked by FE-897.

What?

  • Adds explicit --all-seeds workbench seeding and the seed disposition catalog.
  • Introduces the import-free session runtime vocabulary leaf and redirects consumers to it.
  • Records the FE-893 prompt-shape decisions and generated-reference deferrals.
  • Removes the dead runtime-vocab re-export facade and collapses duplicate seed run-loop code.

Why?

These residues were too small to justify separate frontier branches but still needed a tracked cleanup pass before the alpha stack could be tied off cleanly.

@lunelson lunelson changed the title Add all-seeds seed fixture mode FE-897: Alpha hardening residues Jun 19, 2026
@lunelson lunelson marked this pull request as ready for review June 19, 2026 14:37
Copilot AI review requested due to automatic review settings June 19, 2026 14:37
@cursor

cursor Bot commented Jun 19, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation, dev-only seed CLI behavior, and a pure constants refactor with import-boundary tests; no auth, persistence contract, or product wiring changes.

Overview
Closes FE-897 alpha-hardening residues: dev seeding, runtime vocabulary ownership, and documented prompt-shape decisions.

Seeding: npm run seed now requires --workspace plus either --seed <set>/<slug> or an explicit --all-seeds (mutually exclusive). All-seeds loads every tracked fixture into the named workspace as distinct specs (slug derived from set-slug). .fixtures/seeds/README.md adds a disposition catalog (test / preview / manual workbench / probe input / parked) with tests that every tracked set is listed.

Runtime vocab: Axis constants and types move from session/runtime-state.ts into a new import-free session/schema/kinds.ts (mirroring graph kinds.ts). Pi chrome, projections, and runtime extensions import the leaf; topology tests lock the boundary (no goal, no READINESS_GRADES).

Prompt shape: Canonical .pi/skills/README.md and .pi/agents/README.md record adopted SYSTEM.md paths and defer SKILL.md + references/, [sub], and _generated/ vocab until concrete triggers; prompt-shape-readmes.test.ts guards that wording. PLAN / SPEC mark alpha-hardening done and fold deferred FE-893 items into D58/D85 narrative.

Reviewed by Cursor Bugbot for commit 82cd906. Bugbot is set up for automated code reviews on this repo. Configure here.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR closes the FE-897 alpha-hardening residue bundle by (1) introducing an import-free session runtime vocabulary leaf, (2) adding an explicit --all-seeds seeding mode plus a disposition catalog for tracked seed sets, and (3) recording FE-893 prompt-shape decisions/deferrals in canonical READMEs with guard tests.

Changes:

  • Added src/session/schema/kinds.ts as a pure constants/types leaf for session runtime vocabulary and updated downstream imports/tests to use it.
  • Extended the seed-fixtures CLI with --all-seeds, added a tracked seed disposition catalog, and expanded tests to lock the behavior and documentation.
  • Documented deferred/adopted prompt-resource shapes in .pi READMEs and added a test to ensure those decisions remain recorded.

Reviewed changes

Copilot reviewed 26 out of 27 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/session/schema/README.md New topology README describing the session schema vocab leaf and dependency rule.
src/session/schema/kinds.ts New import-free constants/types leaf for session runtime vocab (mode/role/strategy/lens).
src/session/runtime-state.ts Refactored to consume runtime vocab from schema/kinds.ts instead of duplicating literals.
src/session/README.md Documents the new session runtime vocabulary leaf and updated ownership boundaries.
src/session/agent-context-seed.ts Redirected type import to the new runtime vocab leaf.
src/projections/session/runtime-state.ts Redirected runtime-vocab type imports to the new leaf.
src/projections/session/runtime-policy.ts Redirected runtime-vocab type imports to the new leaf.
src/projections/session/affordances.ts Redirected runtime-vocab type imports to the new leaf.
src/projections/session/tests/runtime-state.test.ts Updated to import strategy ids from the new vocab leaf.
src/projections/tests/topology-boundaries.test.ts Added topology assertions for the new session schema leaf and removed inline vocab exports from runtime-state.
src/graph/seed-fixtures.ts Added --all-seeds selection, tracked-seed discovery, and per-seed spec slugging for bulk workbench seeding.
src/graph/tests/seed-fixtures.test.ts Added CLI tests for --all-seeds and locked the seed disposition catalog coverage.
src/.pi/skills/README.md Recorded deferred prompt-resource shape decisions (references/, generated vocab refs).
src/.pi/extensions/runtime/state.ts Redirected runtime-vocab type imports to the new leaf.
src/.pi/extensions/commands/index.ts Split runtime-state mutation import from runtime-vocab imports (now from schema leaf).
src/.pi/extensions/chrome/index.ts Redirected runtime-vocab type imports to the new leaf.
src/.pi/components/runtime-posture/axis-picker.ts Redirected runtime-vocab imports to the new leaf.
src/.pi/agents/README.md Recorded adopted/deferred agent prompt-shape decisions (SYSTEM.md, [sub]).
src/.pi/tests/runtime-axis-picker.test.ts Redirected runtime-vocab imports to the new leaf.
src/.pi/tests/runtime-axis-picker.harness.test.ts Redirected runtime-vocab imports to the new leaf.
src/.pi/tests/prompt-shape-readmes.test.ts New test ensuring deferred/adopted prompt-shape decisions stay recorded in READMEs.
src/.pi/tests/architecture.test.ts Updated expectation to point at the new runtime vocab leaf for role ids.
package-lock.json Lockfile update (bin path normalization for a dependency).
memory/SPEC.md Updated D73-L/D58-L text to include the session schema leaf and prompt-shape deferral decisions.
memory/PLAN.md Marked alpha-hardening as done and recorded completion notes/branch metadata.
.fixtures/seeds/README.md New disposition catalog for tracked seed sets and --all-seeds usage.
.fixtures/README.md Linked to seed catalog and documented --all-seeds opt-in behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +1 to +10
import {
AGENT_LENS_IDS,
AGENT_STRATEGY_IDS,
OPERATIONAL_MODE_IDS,
type AgentLensSelection,
type AgentStrategySelection,
type AutoAxisSelection,
type OperationalModeId,
} from './schema/kinds.js';


Drizzle-free, Pi-free closed vocabulary for session-domain state.

- `kinds.ts` is the session-side mirror of `src/graph/schema/kinds.ts`: a pure constants leaf that imports nothing and owns the runtime axis vocab for `op_mode`, `strategy`, `lens`, and the `auto` sentinel.
Comment thread src/session/README.md
Comment on lines +16 to +20
- **Runtime vocabulary leaf** — `schema/kinds.ts` mirrors
`graph/schema/kinds.ts` for the session side: a drizzle-free, Pi-free leaf that
owns closed `op_mode` / `strategy` / `lens` ids plus the `auto` sentinel and
display-only planned mode choices. `runtime-state.ts` consumes and re-exports
this vocab; it no longer owns duplicate axis literals.
Base automatically changed from ln/fe-861-generalized-capture to next June 22, 2026 11:38
lunelson added 6 commits June 22, 2026 11:39
ln-judo-review found two code-judo moves left by the alpha-hardening
residue commits:

- src/session/runtime-state.ts carried ~18 lines of  re-exports that no consumer imports (every axis-vocab
  consumer already imports from the leaf). The build surfaced six consumers
  the review grep missed (axis-picker, two picker tests, commands/index,
  chrome/index, agent-context-seed); redirect them to schema/kinds.js, then
  delete the facade and trim the internal import to the seven body-used
  symbols. Reinforces D73-L: the leaf is the unambiguous single source.

- src/graph/seed-fixtures.ts had single/all branches each spelling
  readSelectedSeed → seedFixture → stdout. Collapse to one seeding path;
  preserves identical stdout, --reset semantics, and the all-seeds summary.

Net -28 lines. npm run verify green (124 files, 941 tests).
@lunelson lunelson force-pushed the ln/fe-897-alpha-hardening-residues branch from 06a7e1c to 82cd906 Compare June 22, 2026 11:39
@lunelson lunelson merged commit 6f49ef8 into next Jun 22, 2026
5 checks passed
@lunelson lunelson deleted the ln/fe-897-alpha-hardening-residues branch June 22, 2026 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants