Skip to content

feat(check): reject Required links to a later milestone - #710

Merged
kixelated merged 2 commits into
mainfrom
quest/m0/milestone-order
Nov 13, 2026
Merged

kixelated merged 2 commits into
mainfrom
quest/m0/milestone-order

Conversation

@kixelated

@kixelated kixelated commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Finishes quest/m0/milestone-order.md.

Summary

  • quest check now fails on a Required entry whose target sits in a later milestone than the document listing it (src/core/rules.ts, inversions). The finding names both documents and milestones and offers quest mv of either side, or removing the link. A milestone README is never offered as the side to move. Milestones compare as quest unblocked orders them (m10 after m9). The root README and other-repository links are exempt. There is no --fix.
  • The guide's Required rules (assets/AGENTS.md) state the rule. /quest-audit's "Misaligned priorities" (assets/skills/audit.md) is narrowed to what check can't see. The maintainer approved both edits in quest: plan rejecting Required links to a later milestone #698.
  • Tests: added cases for quest, epic README, milestone README on each side, m9/m10 order, and earlier/same-milestone links that pass. The existing "milestone with only blockers left is open" test relied on an inverted link (m0 README requiring an m1 quest), so I rebuilt it as m1 requiring m0 and m2 requiring m1.

Re-scan of consumers' main (2026-11-13, this branch's check)

  • moq-dev/moq @5f448d6: 7 findings. m1→m2: buffered-ascending, export-order, live-history-demand, receive-windows-evicted, route-trace-validation, routing-guide. m4→m5: formatter-defaults.
  • moq-dev/moq.pro @205b6bc: 4 findings. m1/hls-ship→m2/hls/playable and m2/hls/generation; m1/kick-live-load→m2/kick/net-terms; m2/live-dashboard/activity→m3/live-tail. These links appeared after #3992 merged.
  • kixel-ai/rind @96e681d: 1 finding. m2/api/release-0.4→m3/parity/ml-kem.

Decisions

The maintainer's answers (2026-11-13, /quest-run):

  • Timing: ✅ merge after review (rejected: wait until moq, moq.pro and rind mains pass). Those repositories' quest pin bumps will fail until their links are fixed; accepted.
  • moq.pro's 4 new inverted links: ✅ planned in moq.pro's quest tree (rejected: leave to moq.pro's next audit).
  • moq's newer m4→m5 formatter-defaults link: ✅ planned separately in moq's quest tree (rejected: widen quest: audit the backlog before the m0-m2 cut, and add the lab bucket moq#8637).

rind's link clears when kixel-ai/rind#606 merges, and moq's six m1→m2 links clear with moq-dev/moq#8637.

Follow-ups

  • moq-dev/moq.pro: plan a quest fixing its 4 inverted Required links (listed above).
  • moq-dev/moq: plan a quest fixing the m4→m5 formatter-defaults link.

Choices made without asking

  • Paths in the finding are repository-relative without a leading /. Epics are named by directory, matching how quest mv takes them.

(Written by Claude Opus 5.5 with low)

🤖 Generated with Claude Code

Review

Rewritten by quest review after each round.

  • Head: 3914221

  • Base: origin/main at b30e26f

  • Reviewer: Codex, gpt-6.1-sol, medium effort

  • Session: 01a1d72f-2c93-7440-a66d-d69183461680, round 1

  • Score: 9/10, The change consistently enforces milestone ordering and handles permanent milestone READMEs appropriately, with no actionable defects found by code inspection; builds and tests were not run as instructed.

  • Rounds: 1; findings 0: fixed 0, refuted 0, open 0

  • Findings: none

  • Reviewer: Codex, gpt-6.1-sol, low effort, shadow

  • Session: 01a1d72f-2c93-74e2-a24b-5cffa2602217, round 1

  • Score: 9/10, The change consistently rejects later-milestone dependencies and handles permanent milestone documents appropriately, with no blocking defects found by code inspection, though builds and tests were not run as instructed.

  • Rounds: 1; findings 0: fixed 0, refuted 0, open 0

  • Findings: none

kixelated and others added 2 commits November 13, 2026 14:22
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title Reject Required links to a later milestone feat(check): reject Required links to a later milestone Nov 13, 2026
@kixelated
kixelated marked this pull request as ready for review November 13, 2026 23:13
@coderabbitai

coderabbitai Bot commented Nov 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 52 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c8041b83-24fb-4938-aa05-aaed7e935328
Commits

Reviewing files that changed from the base of the PR and between 5625ae6 and 3914221.

Files selected for processing: 5

  • assets/AGENTS.md
  • assets/skills/audit.md
  • quest/m0/milestone-order.md
  • src/core/rules.ts
  • test/tree.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated
kixelated enabled auto-merge November 13, 2026 23:13

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes

I reviewed the whole PR: the new inversions check rule, the guide and audit-skill edits, and the tests.

  • inversions rule: quest check now flags a Required entry whose target's root-child milestone sorts after the requirer's. It uses comparePaths, so m10 comes after m9, which matches the order ranking() gets from children(root). The root README and root-level files are exempt.
  • Fix wording: the finding offers quest mv only for sides that are not permanent. When both sides are milestone READMEs, it says only to remove the link.
  • Guide and audit skill: the guide's Required rule now covers this check, and /quest-audit's "Misaligned priorities" item is narrowed to what quest check can't see.
  • Tests: new cases cover quests, epic READMEs, milestone READMEs on either side, m9/m10 ordering, and links that should pass. The "milestone with only blockers left" test was rebuilt so its links are no longer inverted. bun test test/tree.test.ts passes (102 tests).

Pullfrog  | View workflow run | Using claude-opus-5-5 | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 13, 2026
Merged via the queue into main with commit 232352b Nov 13, 2026
27 checks passed
@kixelated
kixelated deleted the quest/m0/milestone-order branch November 13, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant