Repository navigation
Capture content-addressed Issue lifecycle preflight evidence #607
Copy link
Copy link
Labels
bugSomething isn't workingSomething isn't workingready-for-agentFully specified and safe for an autonomous agentFully specified and safe for an autonomous agent
Description
Parent
What to build
Add one repository-native, read-only capture operation that exports the complete GitHub Issue/PR graph and label catalog as canonical JSON plus SHA-256 sidecars and a scope-bound manifest. The resulting bundle can later be persisted through the already approved retained remote Git commit and unmerged evidence PR contract for #459.
This slice establishes the content-addressed source of truth only. Independent verification is #608 and zero-write restoration planning is #609.
Acceptance criteria
-
captureincludes complete paginated Issue metadata, comments/events, labels, assignees, state, native parent/sub-issue and blocked-by/blocking relationships, closing references, plus PR head/base identities, commits, files, reviews, review comments, checks, statuses, and the repository label catalog. - Canonically equivalent API input produces byte-identical JSON and the same SHA-256; incomplete pagination, API errors, duplicate objects, truncated PR collections, or missing relationship fields fail closed.
- The manifest binds schema version, repository, capture UTC, named controller, target and exclusions, default-branch SHA, API/media versions, endpoint/page inventory, object counts, and the preflight digest.
- A final read-only stability pass rejects capture-time drift in the repository/branch identity, Issue/PR list, labels, comments/events, native relationships, or mutable open-PR evidence.
- Focused tests prove canonical identity, pagination and stability failure, complete required metadata, and the absence of GitHub writes.
Blocked by
None - can start immediately.
Out of scope
- Independent bundle verification (Verify content-addressed Issue lifecycle preflight evidence #608) and restoration planning (Plan zero-write Issue lifecycle restoration from an exact receipt #609).
- Executing or authorizing any GitHub metadata mutation.
- Correcting the 54 legacy lifecycle violations.
- Editing comments/events or treating them as rollback targets.
- Automatically creating, merging, or deleting an evidence branch or PR.
- Changing Enable the Issue Lifecycle required check after a green observation window #460, required checks, branch protection, deployment, runtime resources, research logic, or the Agent-led CEX PRD lane.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingready-for-agentFully specified and safe for an autonomous agentFully specified and safe for an autonomous agent
Activity
[-]Capture and verify content-addressed Issue lifecycle evidence[/-][+]Capture content-addressed Issue lifecycle preflight evidence[/+]feat(governance): capture issue lifecycle preflight (#607) (#610)
proerror77 commentedon Aug 2, 2026
Agent Brief
Category: bug
Summary: Bind the capture manifest to the observed GraphQL media type
Current behavior:
The merged capture records each GraphQL response media type in its page inventory, but the top-level
api.graphql_media_typefield is a hardcoded family name. The live response isgithub.v4; format=json, so the top-level provenance claim is not the exact observed identity. The CLI rescue clause also redundantly names an exception already covered byStandardError.Desired behavior:
The manifest must derive one non-empty GraphQL media type from the captured GraphQL pages, fail closed if the value is absent or changes between capture and stability readback, and write that exact observed value. Error handling should retain the same message and exit code with the redundant exception removed.
Key interfaces:
api.graphql_media_type— exact observed response media type, not a hardcoded assertionAcceptance criteria:
Out of scope:
GraphQL-Features: sub_issues; a live hierarchy query succeeds without it.proerror77 commentedon Aug 2, 2026
Completion evidence
Acceptance checks: PR #615 merged to
mainfrom exact head432397b3ff6696b79ae4b5cc012ab06ec8c74b8aat merge commit20ca2a1c04094455a31d5c3c5076e031c56e7140;api.graphql_media_typenow records the exact observedgithub.v4; format=json; focused fixtures prove missing and inconsistent GraphQL media types exit 2 before bundle creation while canonical, pagination, stability, and zero-write checks remain green; lifecycle audit, contract, workflow, reconciliation, status-reconciliation, Rust CI scope selector, Ruby/Bash syntax, shellcheck, scoped actionlint, and diff checks passed; Matt Standards and Spec reviews each reported 0 findings; requiredMonorepo CI gate,Prediction Markets CI gate, andSecurity Summary Reportchecks succeeded; the merged remote head branch was deleted and local tracking refs were pruned.Result: passed
ci(issue-lifecycle): audit closed-runtime evidence, detect double-clo…