os-sdlc v2: shard-plan gate subcommand — disjoint shard map with reserved-file set #216

Closed
opened 2026-08-01 16:52:35 +00:00 by jared · 2 comments
Owner

Parent

#195 (PRD: os-sdlc:implement v2)

What to build

A deterministic shard-plan subcommand on the os-sdlc gate CLI: given a ticket's test files and code paths, emit a shard map JSON (shard → {test files, owned code files}) with a reserved set of shared entrypoint/registry files owned by no shard. Reserved files come from (a) any file referenced by more than one shard's collaborator cluster and (b) a configurable reserved list in .sdlc/project.yaml. If disjoint shards cannot be produced, exit indicating single-programmer fallback (current behavior), never serialized shards.

Acceptance criteria

  • Emits shard map JSON for fixture layouts: single test file, multiple independent files, overlapping collaborator clusters, reserved-file collisions
  • project.yaml reserved list respected and surfaced in the reserved set
  • Fallback signal when disjoint sharding impossible
  • Tested at the gate CLI subprocess boundary (exit status + emitted JSON), like existing red/green-assert tests

Blocked by

None — can start immediately.

## Parent #195 (PRD: os-sdlc:implement v2) ## What to build A deterministic `shard-plan` subcommand on the os-sdlc gate CLI: given a ticket's test files and code paths, emit a shard map JSON (shard → {test files, owned code files}) with a reserved set of shared entrypoint/registry files owned by no shard. Reserved files come from (a) any file referenced by more than one shard's collaborator cluster and (b) a configurable reserved list in .sdlc/project.yaml. If disjoint shards cannot be produced, exit indicating single-programmer fallback (current behavior), never serialized shards. ## Acceptance criteria - [ ] Emits shard map JSON for fixture layouts: single test file, multiple independent files, overlapping collaborator clusters, reserved-file collisions - [ ] project.yaml reserved list respected and surfaced in the reserved set - [ ] Fallback signal when disjoint sharding impossible - [ ] Tested at the gate CLI subprocess boundary (exit status + emitted JSON), like existing red/green-assert tests ## Blocked by None — can start immediately.
Author
Owner

Work started in worktree spec-195-impl (session 2026-08-01).

Work started in worktree spec-195-impl (session 2026-08-01).
Author
Owner

Implemented on branch worktree-spec-195-impl (commits 12d76a2, 9e3fece, f5a4961). Suite 498 runs / 0 failures; opus critique + corrections applied; aidd-lint clean of blocking offenses.

Implemented on branch worktree-spec-195-impl (commits 12d76a2, 9e3fece, f5a4961). Suite 498 runs / 0 failures; opus critique + corrections applied; aidd-lint clean of blocking offenses.
jared 2026-08-01 18:54:41 +00:00
  • closed this issue
  • added the
    review
    label
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#216
No description provided.