neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
A Copier template for GitHub repositories, with tests, releases, security checks and bots built in, for seven kinds of projects.
Developer toolsPython · JinjaGitHub @Dennis-OttoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
A Copier template for GitHub repositories that look after themselves: tests on every change, a release bot, security checks, an issue assistant and the settings of the repository as code, for seven kinds of projects. A bot brings every repository made from it up to each new release of the blueprint.
The website of the blueprint has this guide in English and German, together with the roadmap, the security design, the decisions and the dashboard.
💛 If the blueprint is useful to you, you can support its development. Deutsche Fassung.Read the full README ↗GitHub repositories that test, release, secure and update themselves — from one copier copy.
Repo Blueprint is a Copier template for eight kinds of projects: Home Assistant integrations, Nextcloud apps, GitHub Actions, Python and Node packages, Chrome extensions, container images and repositories without a build. A new repository starts with more than 30 workflows, and a bot brings it up to every new release of the blueprint.
scripts/check.sh runs the same checks on your machine and in the CI, with full coverage of the code. The PR coach explains every check that fails, and the fix bot commits what a command can fix.The website of the blueprint has the guide and a page for each group of what a new repository gets, in English and German, with the comparison with other templates, a page for each kind of project, the questions and answers, the troubleshooting, the architecture, the reference of every question, variable and secret, the roadmap, the security design, the automation, the decisions and the dashboard.
💛 If the blueprint is useful to you, you can support its development. Deutsche Fassung.
Git, Python 3.12 or later, uv and GitHub CLI 2.48 or later, signed in as an administrator of the account or organization that will own the repository (gh auth login):
uvx --from copier==9.19.1 copier copy gh:Dennis-Otto/repo-blueprint my-project
cd my-project
python3 .github/blueprint.py create
With pipx in place of uv, the first line is pipx run --spec copier==9.19.1 copier copy gh:Dennis-Otto/repo-blueprint my-project, and a Copier of your own, Copier 9.8 or later, runs copier copy gh:Dennis-Otto/repo-blueprint my-project; on Windows, py -3 runs Python in place of python3. Copying runs no code of the blueprint: the template has no tasks, migrations or Jinja extensions, so Copier needs no --trust.
Copier asks for the name, a one-sentence description, the kind of project, the GitHub account or organization that owns it, the license (MIT, MIT-0, BSD-3-Clause, Apache-2.0, GPL-3.0-or-later or AGPL-3.0-or-later), a few details of the kind and the release app of the owner, which may stay empty until the checklist has registered it. The homepage is the website that the Docs workflow publishes on GitHub Pages, unless you name another or none, and the README, the About box, the issue forms, the manifest of an integration and appinfo/info.xml of an app link it; each kind starts with topics of its own, such as home-assistant, hacs for an integration, which HACS needs to list it. Copier refuses an answer that would break a file: a description or a name with """, */, ]]> or a backslash, which would end a docstring of Python, a comment of TypeScript or the CDATA of appinfo/info.xml, a Nextcloud app id that the App Store doesn't take, and topics that GitHub doesn't.
create makes the repository of the copy, with no checkout of the blueprint: every copy brings blueprint.py in .github/. It takes the owner and the name from the answers of Copier, and its preflight first checks Python, Git, GitHub CLI and its sign-in, the owner and the name; a finding marked with ✘ stops it before anything is made, with the command that fixes it. Then create runs git init --initial-branch=main, commits the files with a sign-off, creates the repository with gh repo create and pushes to it, public unless you add --private (green on GitHub Free too), then applies the settings as code and prints the checklist: what is left for a person, such as the release app and the secrets, and which steps are done. --dry-run prints the preflight and the commands and runs none. A run that stopped midway goes on where it stopped when you run create again. A folder that pushes to another repository is no new copy, and create refuses it. The troubleshooting explains each finding of the preflight. Every workflow runs on main, so settings check names a repository whose default branch has another name.
Six public repositories follow the blueprint, each with code of its own and the checks and bots of the blueprint; every release of the blueprint reaches them as a pull request:
The dashboard shows each of them at a glance: the release of the blueprint it is on, its checks, its releases and its Scorecard.
cruft update waits until someone runs it. Copier runs none of the blueprint's code, so it needs no --trust; blueprint.py create, which you run next, is a file of the copy that you can read first. And the bot of the blueprint updates every repository by itself.The comparison puts them side by side, also where another tool fits better.
| Kind | Stack | Checks | Delivery |
|---|---|---|---|
| Home Assistant integration | Python 3.14, pytest-homeassistant-custom-component | Ruff, mypy, tests, HACS, hassfest | a zip asset for HACS, verified as HACS installs it |
| Nextcloud app | PHP 8.2 and newer, the tools on PHP 8.3, Composer | php-cs-fixer, Psalm with its taint analysis, PHP 8.2 for the code and its packages, PHPUnit in random order with full coverage | signed package to the App Store |
| GitHub Action | Python 3.12 of the runner, composite action | Ruff, mypy, tests, a run of the action | release tags and a moving major tag |
| Python package | Python 3.12, Hatchling | Ruff, mypy, tests, build | PyPI, trusted publishing |
| Node package | Node 24, TypeScript | Biome, tsc, node:test with full coverage, pack; npm without install scripts | npm with provenance |
| Chrome extension | Manifest V3, TypeScript | Node's, the manifest, Chrome for Testing | Chrome Web Store, without a stored secret |
| Container image | Alpine by digest | Hadolint, build, self-test | GHCR, multi-arch, with SBOM and provenance |
| Repository without a build |
Every kind starts with a small working example and its tests, to replace with the real code, and has a page of its own on the website: what it gets, the checks its pull requests need, its delivery, its checklist and the one line that copies it.
Every change, yours or a bot's, is a pull request that merges once every check passes, and the release bot makes a signed release of what reaches main; three bots keep the repository current on their own. In the pictures, blue is the blueprint and its bots, orange is you and what is yours, and green is what comes out.
The website of every repository shows all of it on the page Automation, which it writes from the workflows at every build: what each one does and what starts it, which checks a pull request needs, and which workflows hold a secret.
Each group has a page of its own, with what runs, the files that run it and the details.
scripts/check.sh runs the tests with full coverage, the types, the lint and the packaging, the same locally and in the CI.main.main tries once more where that can help, and otherwise keeps one issue per workflow open, unless the workflow keeps its own.fuzz/, in pull requests and every week.copier update.max-version once a new major version of Nextcloud passes every check.main, one at a time.docs/ as a website with search and a light and a dark theme, in English and German..github/repository.toml, which the settings bot applies.AGENTS.md.scripts/check.sh, scripts/diagrams.sh and scripts/social-preview.sh, the same in every repository.What a person does once: the release app of the account and its defaults, the secrets and the delivery of each repository, and the way an existing repository takes the blueprint. The guide walks through each of them.
The architecture shows how the blueprint is built, from copier.yml and template/ to the workflows that it shares with every repository and the tests that try each change on every kind of project, and the path of a release from a merge to the update of every repository. The reference describes every question of Copier and every variable and secret, written by reference.py from the sources that they describe, so that they can't drift. When something is unclear or doesn't work, see the questions and answers and the troubleshooting.
Where the blueprint is heading: the roadmap. What it protects and trusts: its security design.
Contributions are welcome: see CONTRIBUTING.md. Questions and problems: SUPPORT.md. Report vulnerabilities privately, as SECURITY.md describes.
MIT No Attribution: repositories made from the blueprint owe it nothing, not even a notice. Every file names its license in the machine-readable form of REUSE.
| text files, shell scripts |
| releases only |