os-sdlc: seam-decision artifact contract + gate check #351

Closed
opened 2026-08-14 13:03:56 +00:00 by jared · 3 comments
Owner

Parent

jared/cc-os#331 (spec: comment 3281 on that issue)

What to build

A tested, deterministic check of the seam-decision artifact's first line, usable as a map gate command. Contract: first line is exactly SEAM: <one-line seam identifier> or NO-WORKABLE-SEAM. Same family as the existing reviewer verdict first-line parsing. Body sections (chosen seam + evidence, rejected candidates + reasons, injection/stub guidance, assertion surface) are documented in the contract but not validated by the gate — form only, not correctness.

Acceptance criteria

  • A well-formed single-seam artifact passes the check
  • Missing, empty, multi-seam, and NO-WORKABLE-SEAM artifacts all fail the check
  • The check is invocable as a map row gate command
  • Tests live alongside the existing verdict-parsing prior art; full suite green

Blocked by

  • None — can start immediately
## Parent jared/cc-os#331 (spec: comment 3281 on that issue) ## What to build A tested, deterministic check of the seam-decision artifact's first line, usable as a map gate command. Contract: first line is exactly `SEAM: <one-line seam identifier>` or `NO-WORKABLE-SEAM`. Same family as the existing reviewer verdict first-line parsing. Body sections (chosen seam + evidence, rejected candidates + reasons, injection/stub guidance, assertion surface) are documented in the contract but not validated by the gate — form only, not correctness. ## Acceptance criteria - [ ] A well-formed single-seam artifact passes the check - [ ] Missing, empty, multi-seam, and `NO-WORKABLE-SEAM` artifacts all fail the check - [ ] The check is invocable as a map row gate command - [ ] Tests live alongside the existing verdict-parsing prior art; full suite green ## Blocked by - None — can start immediately
Author
Owner

Work starting on branch worktree-ticket-351 via the os-sdlc implement pipeline.

Work starting on branch worktree-ticket-351 via the os-sdlc implement pipeline.
Author
Owner

Resolution

Done: Seam-decision artifact contract + gate check implemented via the os-sdlc implement pipeline: SeamDecision first-line parser (SEAM: | NO-WORKABLE-SEAM), seam pseudo-gate in GateEvaluator failing missing/empty/multi-seam/no-workable-seam artifacts, gate wiring tests, contract doc at plugins/os-sdlc/references/seam-decision-contract.md. Reviewer APPROVE on round 3.

Evidence: Branch worktree-ticket-351 merged to main (commit 32ac8a0, merge commit on main); suite green 849 runs 0 failures; ticket files pass rubocop -c plugins/os-sdlc/.rubocop.yml; pipeline report .sdlc/tickets/351/briefs/011-review-to-done.md

Follow-ups: Pipeline gaps found during the run filed as #359 (code-probe agent type missing), #360 (red_assert_command runner adapter), #361 (Resumer#skip emits no dispatch), #362 (lint gate unscoped), #363 (reviewer verdict not persisted / format mismatch); reviewer non-blocking notes on multiple_seam_lines? strictness and SeamDecision owning the single-seam predicate are recorded in #363's territory — carried in verdict.md, no separate ticket

## Resolution **Done:** Seam-decision artifact contract + gate check implemented via the os-sdlc implement pipeline: SeamDecision first-line parser (SEAM: <id> | NO-WORKABLE-SEAM), seam pseudo-gate in GateEvaluator failing missing/empty/multi-seam/no-workable-seam artifacts, gate wiring tests, contract doc at plugins/os-sdlc/references/seam-decision-contract.md. Reviewer APPROVE on round 3. **Evidence:** Branch worktree-ticket-351 merged to main (commit 32ac8a0, merge commit on main); suite green 849 runs 0 failures; ticket files pass rubocop -c plugins/os-sdlc/.rubocop.yml; pipeline report .sdlc/tickets/351/briefs/011-review-to-done.md **Follow-ups:** Pipeline gaps found during the run filed as #359 (code-probe agent type missing), #360 (red_assert_command runner adapter), #361 (Resumer#skip emits no dispatch), #362 (lint gate unscoped), #363 (reviewer verdict not persisted / format mismatch); reviewer non-blocking notes on multiple_seam_lines? strictness and SeamDecision owning the single-seam predicate are recorded in #363's territory — carried in verdict.md, no separate ticket
jared closed this issue 2026-08-14 15:21:53 +00:00
Author
Owner

Post-mortem: the all-dispatches-ran-async deviation during this ticket traces to #333 (PostToolUse hook not registered in the plugin manifest; hooks/hooks.json is inert). Not a new gap — no new ticket filed.

Post-mortem: the all-dispatches-ran-async deviation during this ticket traces to #333 (PostToolUse hook not registered in the plugin manifest; hooks/hooks.json is inert). Not a new gap — no new ticket filed.
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#351
No description provided.