THE safety-critical chokepoint of Phase 4: the actual code path that decides "call gittensory_open_pr NOW" for an autonomous run. This must conservatively require BOTH a predicted-gate PASS (src/rules/predicted-gate.ts / gittensory_predict_gate) AND a slop score under a configurable threshold (gittensory_check_slop_risk) before the local-write action spec from buildOpenPrSpec (src/mcp/local-write-tools.ts) is ever invoked. Any ambiguity resolves to NOT submitting. This is exactly the kind of autonomous-write trigger the safety-tier system reserves for maintainer-only work — it is the single most consequential decision point in the whole miner runtime.
Deliverables
References
src/rules/predicted-gate.ts (263 lines) — the predicted-gate verdict this reads
src/mcp/server.ts:1198 (gittensory_check_slop_risk) — the slop-risk check this reads
src/mcp/local-write-tools.ts:32 (buildOpenPrSpec) — the local-write action spec this gates access to
src/settings/autonomy.ts (86 lines) — the autonomy-dial pattern (isActingAutonomyLevel, deny-by-default) to mirror for the dry-run gate
- New:
packages/gittensory-miner/src/manage/submission-gate.ts
THE safety-critical chokepoint of Phase 4: the actual code path that decides "call
gittensory_open_prNOW" for an autonomous run. This must conservatively require BOTH a predicted-gate PASS (src/rules/predicted-gate.ts/gittensory_predict_gate) AND a slop score under a configurable threshold (gittensory_check_slop_risk) before the local-write action spec frombuildOpenPrSpec(src/mcp/local-write-tools.ts) is ever invoked. Any ambiguity resolves to NOT submitting. This is exactly the kind of autonomous-write trigger the safety-tier system reserves for maintainer-only work — it is the single most consequential decision point in the whole miner runtime.Deliverables
packages/gittensory-miner/src/manage/submission-gate.ts—shouldSubmit(candidate) -> { allow: boolean; reasons: string[] }requiring predicted-gateconclusion === "merge"-equivalent AND slop band below the configured thresholdbuildOpenPrSpec/gittensory_open_pris gated exclusively through this function — no other code path may call itsrc/settings/autonomy.ts's AUTONOMY_LEVELS) that logs the decision without ever calling the write path, for safe rolloutReferences
src/rules/predicted-gate.ts(263 lines) — the predicted-gate verdict this readssrc/mcp/server.ts:1198(gittensory_check_slop_risk) — the slop-risk check this readssrc/mcp/local-write-tools.ts:32(buildOpenPrSpec) — the local-write action spec this gates access tosrc/settings/autonomy.ts(86 lines) — the autonomy-dial pattern (isActingAutonomyLevel, deny-by-default) to mirror for the dry-run gatepackages/gittensory-miner/src/manage/submission-gate.ts