Part of #963, stabilization epic #979, and roadmap #900. Depends on accepted #990 (pure contract) and #991 (trusted delivery/publication). Replaces the admission/projection portion of unaccepted draft PR #989.
Problem and outcome
Every consumer must resolve the same exact-head contribution history and enforce admission before provider execution or label mutation. The convergence checkpoint found gate/status/controller/Board rejecting a configured branch conflict while Greptile structural requeue still mutated labels when episodes were empty.
Scope
- Direct Codex/Claude/Devin reviewer wrappers, including legacy Devin entrypoint, use one shared contributor-excluded admission decision before launch.
- Actual gate and both generated/package templates validate raw authoritative history before flattening/filtering; preserve current-head review and independent authority policy.
- SaaS/trailer/Greptile labeler entrypoints (check_run, live/replayed issue_comment and pull_request_review) carry the fetched exact head/branch and complete trusted history.
- All label mutation paths, including structural requeue and failure paths, require resolved eligible lineage first, regardless of episode count.
- Status/controller/Board and setup-rendered contracts preserve configured branch provenance and canonical identity semantics; informational versus merge-authority review stays separate.
- Complete canonical/tools/template/package mirror and import/materialization parity.
- Activate automatic runner publication/label reconciliation only in this final integration stage, after every consumer is wired to the accepted contract; maintained runner and both template/package copies move together.
- Activate delivery reconciliation and consumer admission atomically, including both Greptile structural failure paths on configured branch conflict with zero episodes. Episode presence is never a substitute for a resolved full decision.
Deterministic consumer matrix
Consume the eventually accepted #994 typed core and #991 producer adapters. Every exact route constructs one validated Target, preserves declared Identity/Authorities, validates raw History, combines raw arrivals once into a bound Chain, then uses the full resolve/admit decision. Core status ready must be translated deliberately if a legacy projection retains resolved; episode presence and current-writer fields never substitute for readiness. Keep I/O outside the pure core and reuse the already pinned trusted base. Activate all automatic runner/CLI publication and label transitions together with consumer admission, including maintained, generated and package copies.
Map every entrypoint to exact target binding, raw transport validation, configured branch conflict, ordinary matched/custom/no-contract controls, valid verified takeover/continuation, contributor exclusion, no-independent-reviewer owner action, and admission-before-side-effect. Include malformed/null/optional field controls, ambiguous/empty markers, 32-step cumulative history, semantic publication readback consumption, and normal single-builder behavior. Actual entrypoints are required; lower-helper tests alone do not prove composition.
Preserve both confirmed Greptile pull_request_review failure paths as real entrypoint tests: missing review ID and inline-comment fetch failure with required review comments. With a configured codex/ branch policy, branch codex/topic, builder:claude, an unmapped opener and genuine empty history, assert conflict and zero added or removed labels, including existing done/blocked labels. Compare the same fixture through gate and status/controller/Board; matched, custom-prefix and no-contract controls must retain valid behavior. No if episodes exemption.
Acceptance and Code Mower delivery
One isolated Code Mower Claude writer, one draft child PR using Refs #963, qualified independent exact-head Codex review with demonstrable complete diff/source coverage, no unresolved P0/P1/P2, deterministic matrix, exact unittest discovery, focused/Ruff/privacy/package checks, full CI and authoritative gate. No hosted Devin create allowance. #963 closes only after all three staged PRs are accepted and the shared outcome matrix passes on final main; #915 still verifies actual release artifacts and publication.
Part of #963, stabilization epic #979, and roadmap #900. Depends on accepted #990 (pure contract) and #991 (trusted delivery/publication). Replaces the admission/projection portion of unaccepted draft PR #989.
Problem and outcome
Every consumer must resolve the same exact-head contribution history and enforce admission before provider execution or label mutation. The convergence checkpoint found gate/status/controller/Board rejecting a configured branch conflict while Greptile structural requeue still mutated labels when episodes were empty.
Scope
Deterministic consumer matrix
Consume the eventually accepted #994 typed core and #991 producer adapters. Every exact route constructs one validated Target, preserves declared Identity/Authorities, validates raw History, combines raw arrivals once into a bound Chain, then uses the full resolve/admit decision. Core status
readymust be translated deliberately if a legacy projection retainsresolved; episode presence and current-writer fields never substitute for readiness. Keep I/O outside the pure core and reuse the already pinned trusted base. Activate all automatic runner/CLI publication and label transitions together with consumer admission, including maintained, generated and package copies.Map every entrypoint to exact target binding, raw transport validation, configured branch conflict, ordinary matched/custom/no-contract controls, valid verified takeover/continuation, contributor exclusion, no-independent-reviewer owner action, and admission-before-side-effect. Include malformed/null/optional field controls, ambiguous/empty markers, 32-step cumulative history, semantic publication readback consumption, and normal single-builder behavior. Actual entrypoints are required; lower-helper tests alone do not prove composition.
Preserve both confirmed Greptile pull_request_review failure paths as real entrypoint tests: missing review ID and inline-comment fetch failure with required review comments. With a configured
codex/branch policy, branchcodex/topic,builder:claude, an unmapped opener and genuine empty history, assert conflict and zero added or removed labels, including existing done/blocked labels. Compare the same fixture through gate and status/controller/Board; matched, custom-prefix and no-contract controls must retain valid behavior. Noif episodesexemption.Acceptance and Code Mower delivery
One isolated Code Mower Claude writer, one draft child PR using
Refs #963, qualified independent exact-head Codex review with demonstrable complete diff/source coverage, no unresolved P0/P1/P2, deterministic matrix, exact unittest discovery, focused/Ruff/privacy/package checks, full CI and authoritative gate. No hosted Devin create allowance. #963 closes only after all three staged PRs are accepted and the shared outcome matrix passes on final main; #915 still verifies actual release artifacts and publication.