Skip to content

Org foundations: reusable CI, drift check, canonical configs, README template#1

Open
admin-raintree wants to merge 8 commits into
mainfrom
chore/raintree-standard
Open

Org foundations: reusable CI, drift check, canonical configs, README template#1
admin-raintree wants to merge 8 commits into
mainfrom
chore/raintree-standard

Conversation

@admin-raintree

Copy link
Copy Markdown
Contributor

Raintree Standard — Phase 0 (org foundations)

Defines the org-wide standard once, here, so every repo can converge to it on its own chore/raintree-standard branch.

What's added

  • Reusable CI (.github/workflows/ci.yml, workflow_call): frozen install (bun/pnpm/npm) → exact-pin check → biome → typecheck → test → build → gitleaks over full history → Socket scan (activates when SOCKET_SECURITY_API_KEY is configured). Script-dependent steps skip cleanly, so apps, libraries, and workers all call the same workflow. Every action pinned to a full commit SHA.
  • Reusable drift check (.github/workflows/drift-check.yml + scripts/drift-check.sh): scheduled per repo; fails on missing README/STATUS badge, committed .env, unpinned deps, multiple lockfiles, missing biome config / engines.node, or unpinned action refs.
  • scripts/check-pinned-deps.mjs: fails on any ^/~ range across root + workspace package.json files (workspace:/catalog: protocols allowed; peerDependencies exempt).
  • Canonical configs (vendored per repo, extended locally): configs/biome.base.jsonc (org invariants; formatter style stays per-repo to avoid mass diffs in live repos), configs/tsconfig.base.json (strict + noUncheckedIndexedAccess), configs/renovate-base.json (pin everything, 7-day minimumReleaseAge cooldown, weekly grouped PRs).
  • templates/README.template.md with required STATUS badge (live/WIP/archived) + branding footer; CODEOWNERS for this repo.
  • README documents the full standard and how repos consume it.

Verified

  • check-pinned-deps.mjs: passes on raintree-website (0 ranges), fails on next-starter (58 ranges) — correct on both.
  • drift-check.sh against raintree-website: exits 1 with exactly one true violation (missing STATUS badge); all other checks pass.

Notes

  • Per-repo PRs reference the reusable workflows by commit SHA from this branch; SHAs remain valid after merge.
  • Org name reality check: the GitHub org is raintree-technology (admin-raintree is the admin user account); all references use the real org.
  • Do not merge automatically — review per program policy.

🤖 Generated with Claude Code

admin-raintree and others added 8 commits June 11, 2026 22:32
Frozen install (bun/pnpm/npm) -> pin check -> biome -> typecheck -> test ->
build -> gitleaks (full history) -> Socket (when API key secret exists).
Script-dependent steps skip cleanly so libraries and workers share the same
workflow. All actions pinned to commit SHAs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Scheduled per repo; fails when a repo stops meeting the standard: missing
README/STATUS badge, committed .env, unpinned deps, multiple lockfiles,
missing biome config or engines.node, unpinned action refs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vendored per repo and extended locally. Biome base enforces invariants
(VCS, recommended lint, organized imports) leaving formatter style per
repo; tsconfig base is strict + noUncheckedIndexedAccess; renovate base
pins everything with a 7-day minimumReleaseAge cooldown.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
github.job_workflow_sha keeps check-pinned-deps.mjs and the drift-check
engine locked to the exact workflow commit the caller pinned, instead of
floating on main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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