Skip to content

Make status and doctor observation-safe for non-enrolled repositories #935

Description

@StatPan

Goal

Let Gira inspect any GitHub repository without treating absent Gira metadata as a product failure.

Scope

  • Consume the explicit operation-mode/policy contract.
  • Classify status and doctor findings as environment, provider observation, or managed-policy findings.
  • Make next-step output policy-aware and non-mutating by default.
  • Add JSON provenance and regression fixtures for non-enrolled repositories.

Non-goals

  • Do not alter ticket start, PR, or finish gating.
  • Do not add a new root command or auto-enroll repositories.

Acceptance Criteria

  • In observation mode, missing Gira labels and milestones are advisory rather than doctor failure.
  • Status does not prescribe managed lifecycle actions for an unenrolled repository.
  • JSON distinguishes mode, policy source, enforced findings, and advisories.
  • Managed behavior is retained by regression tests.

Doctor Impact

This ticket changes doctor and status classification only; it must preserve strict managed-policy findings where that policy is explicitly enabled.

Expected Delivery

  • One focused PR after the shared policy-contract ticket is available.

Verification

  • Focused Go tests plus go test ./... before PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:readyReady to start.type:taskConcrete implementation task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions