Skip to content

[Feature]: Unify the remaining strict and advisory gate decisions #39

Description

@Baziar

Problem statement

Doctor, verify, readiness, agent sync, and the intelligence runner already
distinguish blockers from advice, but the rules are still represented in several
domain-specific receipts. A warning must not become blocking merely because one
renderer or command interprets --strict differently.

Proposed solution

Current foundation

  • blocking/advisory/informational Doctor findings;
  • strict intelligence-runner and consumer freshness checks;
  • release posture and blocker handoff contracts;
  • stable tests for several advisory-only scenarios;
  • project-scoped Goal decisions that keep unrelated stale Goal evidence
    advisory without weakening current architecture evidence.

Remaining work

Inventory every public gate and define one compositional decision model mapping
finding severity, evidence state, policy profile, and scope to a verdict and exit
family. Domain receipts keep their facts; the shared layer only decides policy.

Acceptance criteria

  • One gate-decision contract covers local, CI, release, and consumer profiles.
  • --strict selects policy; it does not blindly convert all warnings to errors.
  • Missing mandatory evidence cannot pass as empty success.
  • Workspace aggregation preserves and explains exact project blockers.
  • Every block has a reason code, evidence reference, and next action.
  • Human, JSON, event, and exit projections share the same verdict.
  • A table-driven matrix covers mixed advisory, stale, unsupported, and blocking evidence.
  • Existing behavior has an explicit compatibility decision.

Completion evidence

Publish the gate inventory and prove standalone stages and the aggregate runner
return the same semantic decision on Linux, macOS, and Windows.

Alternatives considered

The following alternatives or adjacent concerns are intentionally outside this issue:

  • redefining Doctor findings;
  • forcing all organizations to use release policy;
  • using a numeric score to override an explicit blocker.

Expected impact

Developers, CI, releases, and agent consumers receive the same explainable gate
decision without harmless advice becoming a false blocker.

Activity

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

    area: intelligenceModel/Graph/Context/Doctor/consumer chainneeds-triageScope, owner, or scheduling is not confirmed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions