Summary
buildSelfDogfoodRegistrationPack (src/services/self-dogfood-registration-pack.ts:46-60) derives directPrFirst from the registration readiness report's current-lane mode, but the same pack also returns the config recommendation. The two can disagree, so the pack's contributorLaneStrategy text and directPrFirst flag contradict the gittensorConfigRecommendation shown right beside them.
// src/services/self-dogfood-registration-pack.ts:47-60
const issueDiscoveryReady =
readiness.issueDiscoveryReadiness.ready && readiness.issueDiscoveryReadiness.recommendation === "enabled";
const directPrFirst = !issueDiscoveryReady && readiness.recommendedRegistrationMode !== "issue_discovery"; // <- bug
// ...
contributorLaneStrategy: directPrFirst
? "Keep contributor intake direct-PR-first until issue-discovery signals, label policy, and queue health are excellent."
: "Issue-discovery intake is strong enough to keep a bounded issue-discovery lane alongside direct PRs.",
readiness.recommendedRegistrationMode reflects the repo's current registered lane, while the recommendation reflects the advised config:
// src/signals/registration-readiness.ts
recommendedRegistrationMode: laneToMode(lane), // :208 — current lane (registryConfig)
// laneToMode("issue_discovery") === "issue_discovery" // :88-90
// ...
const shouldEnableIssueDiscovery = contributorIntakeHealth.level === "healthy" && configQuality.level === "excellent"; // :278
const recommendedIssueDiscoveryShare = shouldEnableIssueDiscovery ? 0.1 : 0; // :280
participationMode: recommendedIssueDiscoveryShare > 0 ? "split" : "direct_pr", // :293
Failure case
Repo currently registered for issue discovery (issueDiscoveryShare = 1 → lane = "issue_discovery") but with non-excellent intake/config health:
readiness.recommendedRegistrationMode = "issue_discovery" (current lane).
recommendation.participationMode = "direct_pr" (because shouldEnableIssueDiscovery is false).
directPrFirst = !issueDiscoveryReady && ("issue_discovery" !== "issue_discovery") = ... && false = false.
So the pack returns:
directPrFirst: false
contributorLaneStrategy: "Issue-discovery intake is strong enough to keep a bounded issue-discovery lane alongside direct PRs."
gittensorConfigRecommendation.recommended.participationMode: "direct_pr"
The maintainer reading the pack is told issue-discovery intake is strong enough to keep an issue-discovery lane, while the same pack recommends reverting to direct-PR-only. The directPrFirst flag is also wrong (false when the recommendation is direct-PR).
Expected
directPrFirst and contributorLaneStrategy match the config recommendation in the same pack: direct-PR-first exactly when the recommendation is participationMode === "direct_pr" (i.e. recommendedIssueDiscoveryShare === 0).
Actual
directPrFirst is computed from readiness.recommendedRegistrationMode (the repo's current lane), which diverges from the recommendation whenever a repo is currently registered for issue-discovery/split but the recommendation advises reverting to direct-PR (degraded health/config). The lane-strategy text then contradicts the recommendation shown alongside it.
Suggested fix
Base directPrFirst on the recommendation, not on the current-lane readiness mode:
const directPrFirst = recommendation.recommended.participationMode === "direct_pr";
// equivalently: recommendation.recommended.issueDiscoveryShare === 0
Add fail-on-revert coverage: a pack built for a currently-issue-discovery repo whose recommendation is direct_pr must report directPrFirst: true and the direct-PR-first strategy text (not the "issue-discovery is strong enough" text).
Summary
buildSelfDogfoodRegistrationPack(src/services/self-dogfood-registration-pack.ts:46-60) derivesdirectPrFirstfrom the registration readiness report's current-lane mode, but the same pack also returns the config recommendation. The two can disagree, so the pack'scontributorLaneStrategytext anddirectPrFirstflag contradict thegittensorConfigRecommendationshown right beside them.readiness.recommendedRegistrationModereflects the repo's current registered lane, while the recommendation reflects the advised config:Failure case
Repo currently registered for issue discovery (
issueDiscoveryShare = 1→lane = "issue_discovery") but with non-excellent intake/config health:readiness.recommendedRegistrationMode = "issue_discovery"(current lane).recommendation.participationMode = "direct_pr"(becauseshouldEnableIssueDiscoveryis false).directPrFirst = !issueDiscoveryReady && ("issue_discovery" !== "issue_discovery") = ... && false = false.So the pack returns:
directPrFirst: falsecontributorLaneStrategy: "Issue-discovery intake is strong enough to keep a bounded issue-discovery lane alongside direct PRs."gittensorConfigRecommendation.recommended.participationMode: "direct_pr"The maintainer reading the pack is told issue-discovery intake is strong enough to keep an issue-discovery lane, while the same pack recommends reverting to direct-PR-only. The
directPrFirstflag is also wrong (false when the recommendation is direct-PR).Expected
directPrFirstandcontributorLaneStrategymatch the config recommendation in the same pack: direct-PR-first exactly when the recommendation isparticipationMode === "direct_pr"(i.e.recommendedIssueDiscoveryShare === 0).Actual
directPrFirstis computed fromreadiness.recommendedRegistrationMode(the repo's current lane), which diverges from the recommendation whenever a repo is currently registered for issue-discovery/split but the recommendation advises reverting to direct-PR (degraded health/config). The lane-strategy text then contradicts the recommendation shown alongside it.Suggested fix
Base
directPrFirston the recommendation, not on the current-lane readiness mode:Add fail-on-revert coverage: a pack built for a currently-issue-discovery repo whose recommendation is
direct_prmust reportdirectPrFirst: trueand the direct-PR-first strategy text (not the "issue-discovery is strong enough" text).