Skip to content

The land fixer runs the repository's own checks - #472

Merged
kixelated merged 4 commits into
mainfrom
quest/m0/land-fixer/checks
Nov 4, 2026
Merged

kixelated merged 4 commits into
mainfrom
quest/m0/land-fixer/checks

Conversation

@kixelated

@kixelated kixelated commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Finishes quest/m0/land-fixer/checks.md: the land fixer now runs the repository's own checks (lint, format, type checks, build, and test) before it reports fixed or requeue.

On moq-dev/moq#6949 the fixer read "build and test the packages the PR and your fix touch" as building and testing only. It requeued the PR without moq's JavaScript type check, and the queue's next build failed on that check.

Changes

  • assets/land-fix.md: the old build-and-test sentence is now its own ## Repository checks section. The fixer:
    • takes the check and test commands from the base's root instructions, CONTRIBUTING.md, task runner, or CI workflows (for example just check and just test);
    • when the base names none, runs each touched language's type check and linter beside its build and test;
    • runs them on the reported head merged with base; a requeue of an unchanged head runs the same checks on a scratch merge kept off its branch;
    • names each command it ran in the reason;
    • hands back, quoting the command and its output, a PR it can't run or can't fix mechanically (unchanged rule).
  • The base-alone fix and the flaky disable branch now run the same checks, replacing "build and test it" and "build the package the skip is in". Both get enqueued, so both must pass the queue's build.
  • README.md: the fixer's network note says it runs the repository's checks.
  • The result examples' reasons name the commands run: the requeue example, the flaky disable example, and both fixed examples. Pullfrog flagged this (review thread).
  • test/land.test.ts: the prompt test now pins the new rule and the new example reasons, and rejects the old reasons that named no commands.
  • The quest file and its link in the land fixer epic are removed.

Choices made without asking

  • The base's CI workflows are a command source too. The quest's plan named root instructions, CONTRIBUTING.md, and the task runner. The Goal is "passes what the merge queue's build will run", and the workflows are where that build is defined.
  • Commands come from the base, not the PR's diff. This matches the prompt's untrusted-input rule. The section also says these commands are not the "standing guidance" that rule tells the fixer to ignore, so the two rules don't contradict each other.
  • Checks run on the head merged with base. The plan says an unchanged requeue must recheck because the base may have moved. Checking the head alone would miss that.
  • The base-alone fix and the flaky disable branch are covered as well, as described above.

Risk: just check plus just test on a large repository costs more of the fixer's 60-minute budget than building one package. The quest's Goal asks for this explicitly. A fixer that runs out of time ends in a timeout handback, not a bad requeue.

Public API and wire impact

None. This changes only the fixer prompt (assets/land-fix.md); the result format is unchanged.

Validation

  • just check: pass
  • just test: pass (1042 passed, 5 skipped; 531 passed)
  • quest check --base origin/main: 76 documents ok

Review

  • Reviewer: Codex, gpt-6.1-sol, xhigh effort (quest review --base origin/main), round 1 of a new session
  • Head: 403eee9
  • Findings: none
  • Online: Pullfrog's thread on assets/land-fix.md:167 (example reasons named no commands) is fixed in 403eee9.

Follow-ups

None.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

kixelated and others added 3 commits November 3, 2026 22:57
The fixer read "build and test the packages the PR and your fix touch" as
build and test only, and requeued moq-dev/moq#6949 without running moq's
JavaScript type check, which the queue's next build failed on. It now runs
the checks the base names (root instructions, CONTRIBUTING.md, task runner,
or CI workflows), or each touched language's type check and linter when the
base names none, on the head merged with base, including for an unchanged
requeue, the base alone, and a flaky disable branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 4, 2026 07:30
@coderabbitai

coderabbitai Bot commented Nov 4, 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 55 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: 2da292f4-d106-4fb6-8da9-6f6c36bfdacf
Commits

Reviewing files that changed from the base of the PR and between 58696bc and 403eee9.

Files selected for processing: 5
  • README.md
  • assets/land-fix.md
  • quest/m0/land-fixer/README.md
  • quest/m0/land-fixer/checks.md
  • test/land.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

@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 critical issues — one minor consistency nit inline.

Reviewed changes

  • assets/land-fix.md — the old "build and test the packages…" sentence becomes a ## Repository checks section: the fixer now runs lint, format, and type checks beside build and test, takes the commands from the base's own instructions (with an explicit carve-out reconciling the untrusted-input and standing-guidance rules), runs them on the head merged with base, and rechecks on a scratch merge kept off the branch when it requeues an unchanged head. The flaky disable branch and the base-alone fix now route to the same section, so both pass what the queue's build runs.
  • quest/m0/land-fixer/checks.md deleted — the finished quest and its Required link in the epic are removed; a repo-wide grep finds no remaining references to it.
  • README.md — the fixer's network note now says it runs the repository's checks.
  • test/land.test.ts — the prompt test pins the new rule; the replace(/\s+/g, " ") normalization matches the file's existing convention.

Verified independently: quest check --base origin/main passes (76 documents ok), the updated test passes, and the two #repository-checks anchors match the new heading.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using glm-5.3-flash | 𝕏

Comment thread assets/land-fix.md Resolved
The result examples modeled reasons such as "healthy; flaky test" that
omit the checks the repository checks rule says every reason names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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

Prior pullfrog review was against d806a00; today's delta is 403eee9, which addresses that review's single inline comment:

  • assets/land-fix.md — the example result entries now name the commands run: the requeue example and the flaky disable requeue say ran just check and just test on a scratch merge …, and both fixed placeholders say naming the commands run. The flaky-disable paragraph and the base-alone fix now point at the #repository-checks anchor instead of repeating "build and test" phrasing.
  • test/land.test.ts — the prompt test pins the three compliant example reasons and rejects the old reasons that named no commands. The negative assertions are safe against substring false-positives: the closing quote in "healthy; flaky test" never matches the compliant "healthy; flaky test; ran …" variants.

Verified locally: the updated test passes (198 tests in test/land.test.ts, targeted run), and the new examples sit under the ## Repository checks rule they model.

Pullfrog  | View workflow run | Using glm-5.3-flash | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit de0e7e4 Nov 4, 2026
11 checks passed
@kixelated
kixelated deleted the quest/m0/land-fixer/checks branch November 4, 2026 17:07
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