fix(orb): SKILL.md linked-issue trigger must key on the gate-mode enforcement authority (#9671) - #9925
Conversation
|
Caution 🛑 LoopOver review result - reject/close recommendedReview updated: 2026-07-29 23:46:28 UTC
Review summary Nits — 3 non-blocking
Why this is blocked
📋 Copy for AI agents — paste into your coding agentDecision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Decision record
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
…orcement authority (JSONbored#9671) repo-skill-render.ts asserted "a linked issue is required" from two different fields in the same generated file: hasStrictLinkedIssueRule keyed on `requireLinkedIssue && linkedIssuePolicy !== "optional"`, while the Linked-issues section keyed on `linkedIssueGateMode === "block"`. For a repo with requireLinkedIssue:true, policy:"required", gateMode:"advisory" (a real, common combo -- advisory is the default), the generated SKILL.md said "A linked issue is required, with a 'required' policy." a few lines above "Required: no" -- directly contradictory misinformation, since only "block" mode actually blocks (repo-profile.ts:68-70). hasStrictLinkedIssueRule is also one of shouldGenerateRepoSkill's three signals, so a skill file could be generated off a signal that enforces nothing. - hasStrictLinkedIssueRule now keys on `linkedIssueGateMode === "block"`, the documented enforcement authority, matching repo-doc-render.ts:106. - renderTriggerReasons' sentence states the blocking mode and only fires when the gate actually blocks. The Linked-issues section is unchanged. - Tests: the signal counts only under block mode; a regression rendering the full advisory-mode SKILL.md asserts it never claims a linked issue is required while saying "Required: no"; the block-mode doc agrees both ways; advisory linked-issue + multi-stage CI no longer reaches the 2-of-3 threshold. Existing repo-skill-render fixtures that meant a genuine strict rule now set block mode, and repo-doc-pr's seedSkillTriggerRepo now sets a blocking gate.linkedIssue in the manifest so the trigger still fires. Closes JSONbored#9671 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9925 +/- ##
===========================================
- Coverage 91.86% 79.53% -12.34%
===========================================
Files 921 282 -639
Lines 113266 58609 -54657
Branches 27301 8645 -18656
===========================================
- Hits 104049 46613 -57436
- Misses 7929 11706 +3777
+ Partials 1288 290 -998
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
LoopOver had already started reviewing this pull request — closing it to dodge the one-shot review process is not allowed. Please open a new pull request with the issues addressed. |
What
repo-skill-render.tsasserted "a linked issue is required" from two different fields in the same generated file.hasStrictLinkedIssueRulekeyed onrequireLinkedIssue && linkedIssuePolicy !== "optional", while the Linked-issues section keyed onlinkedIssueGateMode === "block". For a repo withrequireLinkedIssue: true,linkedIssuePolicy: "required",linkedIssueGateMode: "advisory"(a real, common combo — advisory is the default), the generatedSKILL.mdsaid "A linked issue is required, with a 'required' policy." a few lines above "Required: no" — directly contradictory misinformation, written into contributor repos and read by AI agents. Only"block"mode actually blocks (repo-profile.ts:68-70).hasStrictLinkedIssueRuleis also one ofshouldGenerateRepoSkill's three signals, so a skill file could be generated off a signal that enforces nothing.How
hasStrictLinkedIssueRulenow keys onlinkedIssueGateMode === "block"— the documented enforcement authority, matchingrepo-doc-render.ts:106.renderTriggerReasons' sentence states the blocking mode and only fires when the gate actually blocks. The Linked-issues section (Policy:/Required:) is unchanged.Tests
shouldGenerateRepoSkillonly under block mode.SKILL.mdnever claims a linked issue is required and saysRequired: no; the block-mode doc states it is required and saysRequired: yes(agree both ways).repo-skill-renderfixtures that meant a genuine strict rule now set block mode, andrepo-doc-pr'sseedSkillTriggerReposets a blockinggate.linkedIssuein the manifest so the skill-generation trigger still fires under the corrected semantics.Closes #9671