ci: adopt the shared reusable workflows and org lint baseline - #1
Merged
Bryan Fawcett (bryanfawcett) merged 1 commit intoSep 11, 2026
Merged
Conversation
This repository was created empty, while the org ruleset
mukoko-dev/org-wide-main-protection already requires five status checks on
the default branch of every repository in the org:
lint / actionlint lint / markdownlint
lint / JSON validity lint / yamllint
lint / prettier
Nothing in this org could produce them, so PRs here could never merge.
Rather than copy the reusable workflow library into a second org, the
callers point at nyuchi/.github. That repository is public, and a reusable
workflow in a public repository can be called from any repository in any
organisation, private callers included. Verified in production rather than
assumed: mzizi-dev/agent-tools is a private repository in a different org
and its lint.yml calls nyuchi/.github/.github/workflows/reusable-lint.yml@main
successfully; bundu-labs consumes seven of the same workflows. So there is
no duplication and nothing to drift.
Adds:
- lint.yml, pr-title-lint.yml, stale.yml — thin callers
- the org lint baseline (.prettierrc, .prettierignore, .markdownlint.jsonc,
.yamllint.yaml, .editorconfig) that those tools auto-discover
- a README explaining why the caller job must be named `lint`, since
getting that wrong blocks every PR in a repository while leaving every
visible check green
No private repository names, hostnames or secrets appear here — this
repository is public.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bryan Fawcett (bryanfawcett)
deleted the
ci/adopt-org-reusable-workflows
branch
September 11, 2026 17:09
This was referenced Sep 11, 2026
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.
Why
This repository was created empty. Meanwhile the org ruleset
mukoko-dev/org-wide-main-protection(created 2026-09-11) already requires fivestatus checks on the default branch of every repository in the org:
Nothing in
mukoko-devcould produce those contexts, and a required contextthat never reports is permanently pending — so PRs here could never merge. This
PR is self-satisfying: it introduces the very checks the ruleset is waiting for.
Call, don't copy
nyuchi/.githubis public, and a reusable workflow in a public repositorycan be called from any repository in any organisation — private callers
included. So the workflows here are thin callers, not copies.
I verified that in production rather than assuming it:
mzizi-dev/agent-toolsis a private repository in a different org andits
lint.ymlcallsnyuchi/.github/.github/workflows/reusable-lint.yml@main— three green runs today.
bundu-labs/marketingconsumes seven of the same reusables, andbundu-labs/.githubhas exactly this three-file shape.mukoko-devorg Actions policy isallowed_actions: all, so nothing blocks it.Duplicating the library into a second org would double the maintenance surface
and let the copies drift silently. The README says so explicitly, and says what
to do if a genuine divergence is ever needed.
Contents
.github/workflows/lint.yml.github/workflows/pr-title-lint.yml.github/workflows/stale.yml.prettierrc,.prettierignore,.markdownlint.jsonc,.yamllint.yaml,.editorconfigREADME.mdlint, and the per-project reusable mapThe
lintjob name is load-bearingA job that calls a reusable workflow publishes its checks as
<caller job> / <called job>. Defining the five as ordinary top-level jobsmakes them report as bare
actionlint,JSON validity, … — the requiredcontexts never report, and every PR in the repository blocks forever while
every visible check stays green. That is precisely the live failure in
nyuchi/zti-app(nyuchi/zti-app#45 fixes it). The README documents this so thenext repository doesn't repeat it.
Verification
All five checks run locally against this branch and pass — actionlint
rc=0,JSON validity
rc=0, yamllintrc=0, prettier clean, markdownlint-cli20 error(s). They should also go green on this PR, which is itself the proofthat cross-org reuse works from
mukoko-dev. Proof that they can still failis in the PR conversation.
Public repository
No private repository names, internal hostnames or secrets appear in any file
here.