Repository navigation
Quick Start
-
uv.
uvx copierruns Copier without installing it. -
git, andgh(authenticated) to create the repository. - Docker, optional: for running the image and the manifest checks locally.
uvx copier copy --trust gh:metalayerlab/project-template my-project
cd my-project
git add -A && git commit -m "chore: initial commit from project-template"--trust lets Copier run scripts/bootstrap.sh. That script runs git init, uv lock, fills the generated wiki sections and installs pre-commit hooks if available. Without --trust, run sh scripts/bootstrap.sh yourself. The questions are explained in Answering the Questions.
gh repo create metalayerlab/my-project --private --source . --pushThe push runs wiki.yml, which creates the no-docs-needed label; template-update.yml creates template-update before it uses it.
Then, once per repository, in the GitHub settings:
-
General β Pull Requests: allow squash merging only, set the default commit message to "Pull request title", and turn on "Automatically delete head branches". The PR title becomes the commit release-please reads. If you set
dependabot_automerge, also tick Allow auto-merge (gh repo edit --enable-auto-merge). -
Wiki: enable it and create the first page in the web UI (any text). GitHub only creates the wiki's git repository then. From now on
wiki.ymloverwrites it fromdocs/wiki/on every push tomain. -
About box:
python3 scripts/repo-metadata.pysets the description, the website (the wiki) and the topics from.github/repository.toml, using yourghlogin. Edit the file first if you want other topics. Until you run it,wiki.ymlwarns on every push tomain. -
Rules β Rulesets for
main: require a pull request with 1 approval and review from Code Owners, block force pushes, and make these checks required:Secret scan,Test (...),Version and lock file,Dockerfile and contrib manifests,Workflow lint,Wiki standard,Docs updated with the code,conventional-commit. A brain (language: obsidian) has no wiki, releases or PR-title check: requireSecret scan,Project checks,Vault check,Repository metadataandWorkflow lint, and skip steps 2 and 5. If a scheduled job commits tomain(a nightly commit of a notes vault), add the repository admin role to the ruleset's bypass list; agents stay denied by.claude/settings.json. Withbrain_pull, also: add theCLAUDE_CODE_OAUTH_TOKENsecret (claude setup-token, thengh secret set CLAUDE_CODE_OAUTH_TOKEN; until then the workflow does nothing), and allow Actions to open PRs (Settings β Actions β General β Allow GitHub Actions to create and approve pull requests, orgh api -X PUT repos/<owner>/<repo>/actions/permissions/workflow -F can_approve_pull_request_reviews=true; an organisation must allow it first).scripts/repo-metadata.pydoesn't set it: it also lets workflows approve PRs, so turn it on knowingly. - Packages: after the first image is pushed, give the repository's Actions Admin access to the package (package settings β Manage Actions access), so branch-image cleanup can delete versions.
The organisation's release GitHub App is set up once for all repositories: see Release Process.
- Open the project with your assistant. It finds its instructions on its own (see Working with AI).
- Paste prompt 1 from
docs/ai/prompts.md, filling in what the project must do. The assistant writesdocs/design/0001-initial-design.mdand stops. - Review the design, then give the second half of prompt 1. The assistant implements in small commits and fills in the wiki.
- Open PRs from a
feat/...branch. CI, the wiki checks and a human review (Human Review Checklist) gate each one. - The first
feat:merged tomainopens a Release PR for 0.1.0. It is blocked until no wiki page still holds skeleton guidance.
project-template | The metalayerlab project template
GitHub β’ Releases β’ Changelog β’ Contributing
This wiki is generated from docs/wiki/ on every push to main: edits made here are overwritten. Change it with a pull request.
- π
copier updatekeeps every project in step - π·οΈ release-please: reviewed Release PRs and generated changelogs
- π A standardised, CI-checked wiki in every repo
- π€ One
AGENTS.mdfor Claude, Codex, Copilot, Gemini and Cursor - π³ Hardened Docker, Kubernetes and systemd manifests