Goal: decouple the gate from gittensor so it runs on ANY repo.
Scope: abstract the gate policy into a pack — gittensor (current behavior) + a general oss-anti-slop pack (slop/duplicate/linked-issue/readiness/AI-consensus, no emissions/registry/confirmed-contributor). Build ON the #526 slop core (#530–#532) and the .gittensory.yml config-as-code seam.
Acceptance: the gate runs end-to-end on a non-registered repo under oss-anti-slop with zero gittensor coupling; the gittensor pack is unchanged.
Depends on: #526 (#530–#532), config-as-code. Effort: L.
Inherits #525 cross-cutting AC: test:ci + 97% coverage; miner⊕maintainer access boundary (identity per-login, authority per-repo) + public-safe redaction (#542); advisory-first, no auto-merge/submit; no source upload from miner tooling. Part of #525.
Goal: decouple the gate from gittensor so it runs on ANY repo.
Scope: abstract the gate policy into a
pack—gittensor(current behavior) + a generaloss-anti-sloppack (slop/duplicate/linked-issue/readiness/AI-consensus, no emissions/registry/confirmed-contributor). Build ON the #526 slop core (#530–#532) and the.gittensory.ymlconfig-as-code seam.Acceptance: the gate runs end-to-end on a non-registered repo under
oss-anti-slopwith zero gittensor coupling; thegittensorpack is unchanged.Depends on: #526 (#530–#532), config-as-code. Effort: L.
Inherits #525 cross-cutting AC:
test:ci+ 97% coverage; miner⊕maintainer access boundary (identity per-login, authority per-repo) + public-safe redaction (#542); advisory-first, no auto-merge/submit; no source upload from miner tooling. Part of #525.