Skip to content

Audit issue hygiene and PR closure semantics without mutation #458

Description

@proerror77

Parent

#455

What to build

Add one read-only lifecycle auditor that validates live issue metadata and PR closure semantics at the two approved seams. It reports actionable violations through one public CLI and fixture interface but never closes, reopens, relabels, rewrites, or accepts an issue automatically.

Acceptance criteria

  • The issue audit detects missing or conflicting category/state labels, literal escaped newlines, invalid tracking/runtime queue placement, missing active ownership, and inconsistent native parent/blocker relationships.
  • The PR audit accepts explicit Refs, final default-branch Closes, and None, while rejecting negated closing phrases, runtime/tracking closure, ambiguous relationships, external repository-qualified closing references, and closing keywords on non-default-base stacks.
  • PR bodies, titles, and the complete commit list are inspected because the repository squash-merge subject can preserve a closing keyword from the PR title.
  • Fixture-driven focused checks cover each valid and invalid counterexample through the public auditor interface.
  • The public CLI supports fixture input, one-PR audit, and full live-repository audit without a workflow-specific code path.
  • The live dry run reports current violations and reports the automatic-close setting as unknown/unavailable via documented API rather than inferring it.
  • Ruby syntax, shell syntax, shellcheck, focused fixtures, live PR audit, full read-only live audit, and git diff --check are recorded.

Blocked by

#456 defines the validated lifecycle contract.

Out of scope

Split note

The original combined auditor/workflow candidate exceeded the repository review boundary and had a safe rollback split. #458 now owns only the auditor and its focused fixtures; #467 owns the workflow entrypoint.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestready-for-agentFully specified and safe for an autonomous agent

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions