npx claudepluginhub oribarilan/97 --plugin 97GitHub stars from the community
Last commit to repository
How this skill is triggered — by the user, by Claude, or both
Slash command
/97:build-deploy-and-toolingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build scripts, CI pipelines, deploy jobs, and tooling choices are part of the codebase. **Own the build as code. Build one artifact and promote it. Deploy from day one. Choose tools that fit the project, not the resume. Automate everything you do twice.** This skill enforces the decisions to make whenever you touch infrastructure or evaluate a tool.
Scaffolds test + deploy CI/CD pipelines for GitHub Actions, GitLab CI, Jenkins, and targets like Vercel, Netlify, Docker after assessing user's git host and deploy setup. Teaches basics to beginners.
Automates CI/CD pipeline setup with quality gates for linting, type checking, testing, building, security audits, and deployments using GitHub Actions. Use for new projects, modifying pipelines, or debugging failures.
Generates complete CI/CD pipelines for Node.js, Python, Go, Rust projects using GitHub Actions, auto-detecting project type and recommending platforms like Vercel or Netlify with lint, test, build, deploy stages.
Share bugs, ideas, or general feedback.
Build scripts, CI pipelines, deploy jobs, and tooling choices are part of the codebase. Own the build as code. Build one artifact and promote it. Deploy from day one. Choose tools that fit the project, not the resume. Automate everything you do twice. This skill enforces the decisions to make whenever you touch infrastructure or evaluate a tool.
This is a rigid skill. Run the checklist in order. If you can't satisfy a step, stop and tell the user what's blocking you.
These checks matter most when shaping a release artifact — production deploy, shared CI pipeline, tool adoption that other contributors will inherit. In MVPs, prototypes, internal dev tools, and one-off scripts where the architecture is not yet settled, prefer the simplest thing that works.
Invoke when you're about to:
Makefile, package.json script, Dockerfile, or build configuration.github/workflows/*, .gitlab-ci.yml, Jenkinsfile, etc.)README quick-startnpm test, make, docker build on an unchanged config)If you're not sure whether a change counts as "authoring infrastructure," invoke anyway — the checklist is short and skipping it produces build scripts nobody understands.
Run every step in order. The sub-area headings group related principles; the numbered items run end-to-end.
Dockerfile, infrastructure-as-code, fixtures, sample data, generated-docs config, design notes, the README itself. A new contributor's setup should be a single clone plus running the documented bootstrap script — no "copy this file from Slack." Each commit should isolate one logical change, carry a message that explains the why, and not break the build. (Spinellis, 97/68.)grep, sed, awk, sort, uniq, xargs, jq, find, a shell loop — these compose into a one-liner for tasks that would otherwise become a maintained tool. They work on every textual format, scale to enormous inputs without rewrites, and pipeline naturally across cores. (Spinellis, 97/88.)These thoughts mean STOP — restart the checklist:
| Thought | Reality |
|---|---|
| "The build script is a release-engineering thing — I won't touch it." | The build is what produces the artifact your users run. It is the dev team's code, owned and refactored like any other. (97/63) |
| "We'll rebuild from source on the prod box with the same scripts — same result." | You lose the proof that what shipped is what was tested. Build once, promote that artifact through every environment. (97/61) |
| "I'll bake the staging API URL into the image — easier than wiring up config." | The image is no longer environment-agnostic. Push environment values into env vars, mounts, or a config service so one image runs everywhere. (97/61) |
| "Deploy is trivial — we'll wire it up at the end." | Deferred deploy hides assumptions until they are expensive to fix. Deploy to a clean environment from week one and refactor the pipeline as you go. (97/20) |
| "I'll add this new framework alongside the one we already use — it's better." | A parallel tool doubles maintenance and fragments knowledge. Respect the existing convention or change it deliberately, with the team. (97/10) |
| "It's open source so adoption is free." | License terms, upgrade cadence, support model, and lock-in are real costs. Evaluate before adopting; isolate behind an interface so it can be swapped. (97/10) |
| "The README is enough — installation is obvious." | The user runs cost-benefit on every second of friction. Ship a five-line working example and tell the user where files are written. (97/40) |
| "I'll just hand-format this file before committing — once is fine." | A standard nobody enforces is gone in a month. Automate the formatter into the commit hook and break the build on violations. (97/4) |
| "We have tests, so we don't need static analysis." | Tests find the bugs the tests imagined. Analyzers find the class of bug the tests forgot — null deref, dead branch, possible race. Run both. (97/79) |
| "I'll write a Python script for this one-line text munge." | A grep | awk | sort -u pipeline does it now and works on every project. Reach for the toolchest before reaching for a new file. (97/88) |
| "I've done this manual sequence twice — third time will be just as fast." | The third time is the moment to script it. The IDE-only or laptop-only workflow does not survive the next contributor or CI. (97/78) |
"fix bug is a fine commit message — git blame will explain it." | The next reader needs the why. One commit per logical change, with a message that names the intent, is the contract. (97/68) |
| "I'll hardcode the staging API key in the config file — easy to swap later." | Could you open-source this repo right now without leaking a credential? Push every per-deploy value out into env vars or a secrets manager. (12F/III) |
| "I'll patch the running prod box — faster than cutting a new release." | That collapses run back into build and destroys "what runs is what was tested." Roll forward to a new release; do not edit the running one. (12F/V) |
| "I'll write user uploads to a local directory and the next request reads them." | The next request may land on a different host, the next deploy will lose the directory, and a restart wipes it. State belongs in a backing service. (12F/VI) |
| "I'll have the process write logs to a rotated file on the host." | Log files on the host vanish on restart and require per-host access to read. Write to stdout/stderr and let the platform aggregate. (12F/XI) |
| "I'll tweak the Jenkins job in the UI — one-time fix." | The deploy pipeline is production code. UI tweaks bypass review and produce config drift. Pipeline lives in version control with PRs. (CD/PipelineAsCode) |
A change to build/CI/deploy/tooling is done when all of the following are true:
If any box is unchecked, the change is not done. Either finish, or revert and re-plan.
| # | Principle | Author |
|---|---|---|
| 97/4 | Automate Your Coding Standard | Filip van Laenen |
| 97/10 | Choose Your Tools with Care | Giovanni Asproni |
| 97/20 | Deploy Early and Often | Steve Berczuk |
| 97/38 | How to Use a Bug Tracker | Matt Doar |
| 97/40 | Install Me | Marcus Baker |
| 97/61 | One Binary | Steve Freeman |
| 97/63 | Own (and Refactor) the Build | Steve Berczuk |
| 97/68 | Put Everything Under Version Control | Diomidis Spinellis |
| 97/78 | Step Back and Automate, Automate, Automate | Cay Horstmann |
| 97/79 | Take Advantage of Code Analysis Tools | Sarah Mount |
| 97/88 | The Unix Tools Are Your Friends | Diomidis Spinellis |
12F/III | Config in the Environment | Adam Wiggins / Heroku |
12F/V | Strict Build, Release, Run Separation | Adam Wiggins / Heroku |
12F/VI | Stateless, Share-Nothing, Disposable Processes (paired with factor VIII) | Adam Wiggins / Heroku |
12F/XI | Logs as Event Streams | Adam Wiggins / Heroku |
CD/PipelineAsCode | Pipeline as Code | Jez Humble & David Farley |
See principles.md for the long-form distillations, citations, and source links.