ci-standardlisted
Install: claude install-skill painhardcore/developer-standards
# ci-standard
Lean GitHub Actions that call the project's Make targets. GitHub Actions only in v1, and not a multi-vendor CI catalog.
## Scope
Not here: Make target vocabulary (`makefile-standard`), Dockerfile content (`dockerfile-standard`), Compose topology (`compose-standard`), Go layout and golangci (`go-project-standard`). Circle, GitLab, and Jenkins are out of scope, as is deploying to production from CI unless it is already evidenced.
## Workflow
### 1. Inspect needs
Inventory: existing workflows, `Makefile` targets (`check`, `ci`, `test`, `lint`, `build`), language and tool caches, a Dockerfile (image build only if one exists and is requested), path-sensitive trees, secrets already in use.
Prefer `make check`. Use `make ci` when the Makefile defines a fuller non-interactive target. **Do not invent CI steps that duplicate what Make already does.** That includes reaching for a lint action because it bundles its own install.
If the Makefile has neither `check` nor `ci`, fix the naming through `makefile-standard` first, then wire CI.
### 2. Shape the workflow
Greenfield: start from [`assets/ci.yml.template`](assets/ci.yml.template). Where an image build is evidenced: [`assets/ci-with-image.yml.template`](assets/ci-with-image.yml.template), building **after** `make check`, never instead of it.
Full rules: [`references/ci-standard.md`](references/ci-standard.md).
| Rule | Expectation |
|------|-------------|
| Make entry | The primary validation job runs `make c