Build #438 slice 1: implementation-open binds session + ticket + map #440

Closed
opened 2026-08-20 14:30:56 +00:00 by jared · 2 comments
Owner

Parent

#438 (map-driven os-sdlc runner build spec). Design: docs/os-sdlc-
rebuild/map-runner-design.md. Settled decisions + guard-manifest process:
docs/os-sdlc-rebuild/interface-sketches.md.

Pre-build gate

First step before any code: run the seam-design pass per docs/os-sdlc-
rebuild/seam-design-prompt.md to produce this slice's interface sketch. The
sketch is the guard manifest: any class, public method, or signature change
beyond it → stop, comment on this ticket, do not write it.

What to build

The E1 entrypoint opens an implementation: given SESSION_ID, TICKET,
MAP_PATH it loads and validates the map via slice 0's MapLoader, binds
session + ticket + map, and returns the entry node's instructions. Schema
bump (wipe-on-version, no migration) — MUST include implementations.position
now (settled decision; avoids a second wipe at slice 4).

Acceptance criteria

[ ] Opening with a valid map returns implementation_id, entry node, and
entry instructions
[ ] Opening with an invalid map fails loudly with the named defect, exit 3,
nothing persisted
[ ] implementations.position column exists in the bumped schema
[ ] Tests exercise the public CLI entrypoint against a disposable database

Blocked by

Origin

• Trigger: /to-tickets decomposition of #438 (2026-08-20, user-directed)
• Improvised this session: none
• Chain: DESIGN (docs/os-sdlc-rebuild/map-runner-design.md, docs/os-sdlc-
rebuild/interface-sketches.md, ADR-0133/0134/0135)
• Root candidate: #438

## Parent #438 (map-driven os-sdlc runner build spec). Design: docs/os-sdlc- rebuild/map-runner-design.md. Settled decisions + guard-manifest process: docs/os-sdlc-rebuild/interface-sketches.md. ## Pre-build gate First step before any code: run the seam-design pass per docs/os-sdlc- rebuild/seam-design-prompt.md to produce this slice's interface sketch. The sketch is the guard manifest: any class, public method, or signature change beyond it → stop, comment on this ticket, do not write it. ## What to build The E1 entrypoint opens an implementation: given SESSION_ID, TICKET, MAP_PATH it loads and validates the map via slice 0's MapLoader, binds session + ticket + map, and returns the entry node's instructions. Schema bump (wipe-on-version, no migration) — MUST include implementations.position now (settled decision; avoids a second wipe at slice 4). ## Acceptance criteria [ ] Opening with a valid map returns implementation_id, entry node, and entry instructions [ ] Opening with an invalid map fails loudly with the named defect, exit 3, nothing persisted [ ] implementations.position column exists in the bumped schema [ ] Tests exercise the public CLI entrypoint against a disposable database ## Blocked by - #439 ## Origin • Trigger: /to-tickets decomposition of #438 (2026-08-20, user-directed) • Improvised this session: none • Chain: DESIGN (docs/os-sdlc-rebuild/map-runner-design.md, docs/os-sdlc- rebuild/interface-sketches.md, ADR-0133/0134/0135) • Root candidate: #438
Author
Owner

Work started: building slice 1 via the TDD loop on branch build/438-slice-1. Seam-design pass running first per the pre-build gate.

Work started: building slice 1 via the TDD loop on branch build/438-slice-1. Seam-design pass running first per the pre-build gate.
Author
Owner

Resolution

Done: Slice 1 built TDD-first on branch build/438-slice-1, merged to main at 408cabd. E1 implementation-open binds session+ticket+map via OpenImplementation and WorkOrder value object; schema 6 adds implementations ticket/map_path/position; invalid map fails with named defect, exit 3, nothing persisted; round-open renamed with no alias (D11). Sketch decisions D9-D13 approved by the user and recorded in interface-sketches.md.

Evidence: ruby -Ilib tests/all.rb: 811 runs, 2078 assertions, 0 failures, 0 errors, 0 skips (verified by orchestrator). rubocop on the six touched lib files: no offenses. 9 CLI subprocess tests in tests/runner/cli_implementation_open_test.rb cover all four acceptance criteria.

Follow-ups: Doc/skill sweep of remaining round-open wording is already owned by slice 7 (existing #438 child ticket). Slice-2 instructions-representation question is owned by the slice-2 seam-design pass. MapLoader missing-file defect (:missing_map_file) dropped: outside #440 AC, exit 3 still occurs via the CLI blanket rescue.

## Resolution **Done:** Slice 1 built TDD-first on branch build/438-slice-1, merged to main at 408cabd. E1 implementation-open binds session+ticket+map via OpenImplementation and WorkOrder value object; schema 6 adds implementations ticket/map_path/position; invalid map fails with named defect, exit 3, nothing persisted; round-open renamed with no alias (D11). Sketch decisions D9-D13 approved by the user and recorded in interface-sketches.md. **Evidence:** ruby -Ilib tests/all.rb: 811 runs, 2078 assertions, 0 failures, 0 errors, 0 skips (verified by orchestrator). rubocop on the six touched lib files: no offenses. 9 CLI subprocess tests in tests/runner/cli_implementation_open_test.rb cover all four acceptance criteria. **Follow-ups:** Doc/skill sweep of remaining round-open wording is already owned by slice 7 (existing #438 child ticket). Slice-2 instructions-representation question is owned by the slice-2 seam-design pass. MapLoader missing-file defect (:missing_map_file) dropped: outside #440 AC, exit 3 still occurs via the CLI blanket rescue.
jared closed this issue 2026-08-20 17:35:26 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#440
No description provided.