Skip to content

coord intake: validate and apply issue filing and triage as one guarded transaction #2134

Closed

Description

@EHotwagner

Parent: #2130

Observed behavior

p-add, padd-item, implementation findings and critic findings repeat the same fragile sequence: reconcile, read Backlog, infer owner, search issues/PRs, construct a body, create the issue, add it to a board, write status/blocker fields, flush and verify. Agents still hand-compose touch sets and field writes, and a filed item can exist without a usable board projection while later steps are running. #2109 demonstrates that even the apparently atomic add --status Blocked path bypasses a coherence guard.

Root cause

The engine validates individual fields and mutations but has no structured draft contract or transaction spanning issue creation, projection and verified terminal state.

Acceptance

  1. Define a versioned structured intake draft with owner repository, title, observed/requested behavior, established root cause or measured unknown, acceptance, verification, paths, class, optional phase/severity and optional dependency/park decision.
  2. intake validate checks required fields, canonical refs, touch-set grammar and live path existence/prefix validity without creating anything.
  3. Ownership is an explicit decision when ambiguous. The engine may return registry/capability candidates but must not infer semantic ownership from prose and silently commit it.
  4. Return duplicate candidates from open and closed issues/PRs using complete, fail-closed reads. Semantic equivalence remains an agent decision recorded as reuse or create.
  5. intake apply creates or reuses the issue, adds it to the configured board, writes coherent fields and verifies the resulting live issue/row as one idempotent operation keyed by draft id.
  6. A Blocked result requires a live parseable implementation dependency or human sentinel and writes Status plus Blocked by coherently; it cannot use the add --status Blocked bypasses the coherent-park gate — a third unguarded Status writer #2109 bypass.
  7. Ready is refused when the issue is closed, has unusable paths, has a live dependency, claim or implementation PR, or still requires a human choice.
  8. Backlog classifications use explicit reason codes (parked, awaiting-judgement, epic, not-yet-actionable) instead of relying on session prose.
  9. The receipt includes issue ref/URL, dedupe disposition, board identity, status, fields, projection freshness, pending-write count and any remaining judgement question.
  10. A retry after issue creation but before projection converges on the same issue and repairs/finishes the transaction; it never files a duplicate.
  11. Tests cover unreadable duplicate search, invalid paths, create/add interruption, coherent Blocked creation, reuse, user-owned product board, queued writes and final zero-pending verification.

Class: hardening

Paths: src/FS.GG.Coord.Cli src/FS.GG.Coord.Core src/FS.GG.Coord.GitHub tests/FS.GG.Coord.Cli.Tests tests/FS.GG.Coord.Core.Tests tests/FS.GG.Coord.GitHub.Tests .agents/skills/p-add .claude/skills/p-add .agents/skills/padd-item .claude/skills/padd-item .agents/skills/pnext-item/references/findings-and-filing.md .claude/skills/pnext-item/references/findings-and-filing.md work/2134-coord-intake readiness/2134-coord-intake tests/coord-engine-e2e/writes.sh tests/coord-engine-e2e/fixture_server.py tests/coord-engine-e2e/stateful_server.py scripts/fsgg-coord tests/coord-engine-e2e/shim-parity.sh scripts/fsgg-coord-guards.sh tests/coord-engine-parity/shim.sh

Activity

  1. moved this to Backlog in Coordinationon Aug 2, 2026
  2. moved this from Backlog to Ready in Coordinationon Aug 2, 2026
  3. EHotwagner commented on Aug 2, 2026

    @EHotwagner
    ContributorAuthor

    Mandatory delivery-route decision

    Decision maker: Codex filing agent
    Decision: sdd-required

    Rationale: The item defines an idempotent transaction spanning issue creation and board mutations, with interruption recovery, deduplication and externally visible state.

    Until #2137 provides the typed receipt, this comment is the durable manual decision. A worker must run the full SDD lifecycle inside the claim-to-done envelope and bind its work/spec evidence to this item; this is not an advisory. Material scope changes require a new route decision.

  4. moved this from Ready to In progress in Coordinationon Aug 8, 2026
  5. EHotwagner commented on Aug 8, 2026

    @EHotwagner
    ContributorAuthor

    dunlin-1c7c → smew-511d

    worker 'dunlin-1c7c' has TAKEN .github#2134 from you with claim --force — your claim was live and its marker has been deleted. STOP working this item: you no longer hold it, heartbeat will refuse, and anything you push against it now races a second worker. If this was wrong, say so here.

  6. EHotwagner commented on Aug 8, 2026

    @EHotwagner
    ContributorAuthor

    finch-c95e → dunlin-1c7c

    worker 'finch-c95e' has TAKEN .github#2134 from you with claim --force — your claim was live and its marker has been deleted. STOP working this item: you no longer hold it, heartbeat will refuse, and anything you push against it now races a second worker. If this was wrong, say so here.

  7. EHotwagner commented on Aug 8, 2026

    @EHotwagner
    ContributorAuthor

    merlin-a3e3 → finch-c95e

    worker 'merlin-a3e3' has TAKEN .github#2134 from you with claim --force — your claim was live and its marker has been deleted. STOP working this item: you no longer hold it, heartbeat will refuse, and anything you push against it now races a second worker. If this was wrong, say so here.

  8. EHotwagner commented on Aug 8, 2026

    @EHotwagner
    ContributorAuthor

    brant-88ab → merlin-a3e3

    worker 'brant-88ab' has TAKEN .github#2134 from you with claim --force — your claim was live and its marker has been deleted. STOP working this item: you no longer hold it, heartbeat will refuse, and anything you push against it now races a second worker. If this was wrong, say so here.

  9. moved this from In progress to In review in Coordinationon Aug 8, 2026
  10. moved this from In review to In progress in Coordinationon Aug 8, 2026
  11. moved this from In progress to In review in Coordinationon Aug 8, 2026
  12. moved this from In review to In progress in Coordinationon Aug 8, 2026
  13. moved this from In progress to In review in Coordinationon Aug 8, 2026
  14. EHotwagner commented on Aug 8, 2026

    @EHotwagner
    ContributorAuthor

    crake-8f7f → brant-88ab

    worker 'crake-8f7f' has TAKEN .github#2134 from you with claim --force — your claim was live and its marker has been deleted. STOP working this item: you no longer hold it, heartbeat will refuse, and anything you push against it now races a second worker. If this was wrong, say so here.

  15. moved this from In review to In progress in Coordinationon Aug 8, 2026
  16. EHotwagner commented on Aug 8, 2026

    @EHotwagner
    ContributorAuthor

    Automatic repair phase is active under fresh worker crake-8f7f. Exhausted PR #2291 was closed unmerged and is superseded by fresh PR #2293.

    Verification: Core 624/624, GitHub 467/467, CLI 611/611, writes 134/134, missing-title subject inversion red at 133/134 with zero mutations.

  17. moved this from In progress to In review in Coordinationon Aug 8, 2026
  18. moved this from In review to In progress in Coordinationon Aug 8, 2026
  19. moved this from In progress to In review in Coordinationon Aug 8, 2026
  20. moved this from In review to In progress in Coordinationon Aug 8, 2026
  21. moved this from In progress to In review in Coordinationon Aug 8, 2026
  22. moved this from In review to In progress in Coordinationon Aug 8, 2026
  23. moved this from In progress to In review in Coordinationon Aug 8, 2026
  24. moved this from In review to Done in Coordinationon Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions