ci: adopt the canonical org lint gate - #94
Merged
Merged
Conversation
Bryan Fawcett (bryanfawcett)
enabled auto-merge (rebase)
September 11, 2026 18:34
This was referenced Oct 2, 2026
Adds .github/workflows/lint.yml, a caller for nyuchi/.github/.github/workflows/reusable-lint.yml@main, so this repo publishes the five check contexts the mukoko-dev org ruleset already requires: lint / actionlint lint / JSON validity lint / prettier lint / markdownlint lint / yamllint Before this commit mukoko emitted none of them, so every PR was blocked by the org ruleset. Also lands the canonical .prettierrc, .prettierignore, .markdownlint.jsonc, .yamllint.yaml and .editorconfig verbatim from nyuchi/.github, and fixes the violations they surface. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two canonical files moved while this branch was open, and every repo must
carry them byte-identically:
- lint.yml gains a `merge_group:` trigger, so the five required checks
also report on the gh-readonly-queue/** ref where a ruleset uses a
merge queue. Harmless where there is no queue.
- .yamllint.yaml now ignores lockfiles, matching .prettierignore.
pnpm writes registry deprecation notices verbatim into
pnpm-lock.yaml, which exceeds the 140-character limit and cannot be
rewrapped without invalidating the lockfile.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two canonical files moved again while this rollout was in flight, and
every repo must carry them byte-identically:
- lint.yml now triggers on push to main, master and scaffold. Those
are every default-branch name in the estate; a repo whose default
branch is missing from the list never lands the five contexts on its
default-branch head, which is how lint / prettier stayed red in
bundu-labs/.github unnoticed. A list rather than a bare `push:`, so
the gate does not run on every feature-branch push.
- .yamllint.yaml now ignores test/fixtures/. Rails fixtures are ERB
templates, not YAML documents, and only become valid YAML after
Rails renders them.
Neither changes anything for this repo today — its default branch is
main and it has no Rails fixtures. This is about the files being
identical everywhere, which is the whole point of having them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bryan Fawcett (bryanfawcett)
force-pushed
the
ci/adopt-org-lint
branch
from
October 2, 2026 16:15
80b000d to
70cbb1c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adopts the canonical org lint gate.
.github/workflows/lint.ymlis acaller for
nyuchi/.github/.github/workflows/reusable-lint.yml@main,dropped in verbatim and not customised.
It publishes exactly the five contexts the mukoko-dev org ruleset
(id 22932468) already requires on every repo:
lint / actionlintlint / JSON validitylint / prettierlint / markdownlintlint / yamllintmukokoemitted none of them, so the ruleset had every PR in thisrepo blocked. This PR is what unblocks it.
Config files
Landed verbatim from
nyuchi/.githubso every repo in the five orgslints identically:
.prettierrc.prettierignore.markdownlint.jsonc.yamllint.yaml.editorconfigTwo pre-existing files were replaced by their canonical versions:
.prettierrc— the old file setprintWidth: 100plussemi/singleQuote/bracketSpacing/arrowParens. The canonical fileuses
printWidth: 80and leaves the rest at Prettier defaults. The CIgate only checks
**/*.{md,mdx,json,jsonc}, so no TypeScript source isreformatted here — but note that
pnpm formatand thelint-stagedprettier --checkhook now wrap TS/TSX at 80 rather than 100. Nothingin CI (
pnpm turbo run build typecheck lint test) enforces Prettier;eslint-config-prettieronly disables formatting rules, so thiscannot break
ci / Build & Test..prettierignore— the old file excludedapp/,honey/, andbuild-output directories. The canonical file ignores
node_modules/,.git/, YAML (handled by yamllint/actionlint), lockfiles, and fileswith structural meaning. Build outputs are absent from a fresh CI
checkout, and the Flutter (
app/) and Python (honey/) trees containno
md/jsonthat the gate would have skipped by accident.No
"prettier"key existed inpackage.json, so there was nothingshadowing
.prettierrc. No tracked file is shadowed by.gitignore(checked with
git ls-files | git check-ignore --no-index --stdin),so the
CLAUDE.mdtrap does not apply here.ci.ymlpublishes onlyci / Build & Testand does not compete with thelint / *contexts,so it is untouched.
Violations fixed (not suppressed)
Run locally with CI's exact pinned versions — actionlint 1.7.12,
prettier 3.9.4, markdownlint-cli2 0.23.2, yamllint 1.38.0.
services/*/wrangler.jsonc,web/tsconfig.json,web/vercel.json. The.jsoncfiles pick uptrailing commas (valid JSONC, which is what Wrangler parses); the
.jsonfiles do not, andlint / JSON validitystill parses every*.jsonwithjson.load().docs/guides/creating-mini-app.mdand
docs/guides/creating-service.md— auto-fixed.web/MIGRATED.mdandweb/studio/MIGRATED.md— auto-fixed to autolinks.ARCHITECTURE.md—fixed by hand, no rule disabled. The title-block and footer
credit lines became blockquotes (they are document metadata, not
headings) and the table caption
**Total: 15 workers deployed**gained its sentence-ending period.
Local result:
RESULT rc=0.Not done
No ruleset, branch protection, or deployment was touched.