Skip to content
Agentmart
Submit a tool

wire-ci

CI pipeline setup with bundled, forge-neutral templates and local validation.

Skill by danielvm-git

IndexedMIT★ 271
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/danielvm-git-wire-ci

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

CI pipeline setup with bundled, forge-neutral templates and local validation. Detects the forge from the git remote, generates workflows for supported forges, and skips honestly for the rest. The CI equivalent of wire-observability.

Use cases: backend, devops, data

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/wire-ci

What's inside

Skill name
wire-ci
Description
CI pipeline setup with bundled, forge-neutral templates and local validation. Detects the forge from the git remote, generates workflows for supported forges, and skips honestly for the rest. The CI equivalent of wire-observability.
License
MIT
Instructions
377 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Agent Skills spec issues

  • files: referenced but missing: scripts/lib/detect-forge.sh

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Wire CI

> **HARD GATE (supported forges only)** — Do not ship a project without CI. Run this skill before first merge to main.
>
> On a forge bigpowers ships no templates for, this skill **is not a gate**: it reports the forge, explains what it cannot do, and exits 3. A gate that cannot run must not claim it did. See § Unsupported forges.
>
> **HARD GATE** — CI that is untestable locally will break every cycle. Always run `--validate` after generating workflows and `--dry-run` before pushing.

Generate, validate, and test CI workflows. Detects the forge and project type, copies a **bundled** template, and verifies locally before anything reaches CI.

## Forge resolution

`scripts/lib/detect-forge.sh` resolves the forge, first match wins: `BIGPOWERS_FORGE` env var → `forge:` in `specs/forge.yaml` → the `origin` remote URL → `unknown`.

```bash
bash scripts/wire-ci.sh --detect     # report forge + stack, write nothing
bash scripts/wire-ci.sh --plan       # show the template that would be used
bash scripts/wire-ci.sh --apply      # write the workflow
```

GitHub ships templates (`.github/workflows/`). GitLab, Bitbucket, Codeberg, and Gitea are detected but **unsupported** — `--apply` writes nothing and exits 3.

## Template source — configurable, bundled by default

Templates live in `docs/templates/ci/<forge>/` **inside the bigpowers package**, so there is no network dependency on any third party's repository. Override with `BIGPOWERS_CI_TEMPLATES=/path/to/your/templates`, laid out as `<root>/<forge>/test-build-release-<stack>.yml`.

## What this sets up

1. **Test Build Release workflow** — lint → test → build → release in one `needs:` chain
2. **`--validate` mode** — YAML syntax, workflow permissions, required secrets, common pitfalls
3. **`--dry-run` mode** — runs workflows locally via `act` before push
4. **Failure pattern documentation** — see the table below

Deploy workflows are **not** bundled: they are platform-specific. See [REFERENCE.md](REFERENCE.md) for a worked example.

## Process

### 1. Detect forge and stack

```bash
bash scripts/wire-ci.sh --detect
```

Stack detection reads the project root:

| Manifest | Stack | Bundled template |
|----------|-------|------------------|
| `Cargo.toml` | Rust | `test-build-release-rust.yml` |
| `package.json` | Node | `test-build-release-node.yml` |
| `pyproject.toml` / `setup.py` | Python | `test-build-release-python.yml` |
| `go.mod` | Go | `test-build-release-go.yml` |

No recognized manifest → exit 3 with the list of manifests it looked for. Do not guess.

### 2. Apply the template

```bash
bash scripts/wire-ci.sh --apply
```

**Do not rename the workflow `name:` field** — deploy listens for `"Test Build Release"`.

Edit placeholders after copying: language versions, `APP_TYPE`, `SITE_URL`.

### 3. Unsupported forges

`--apply` writes nothing and exits 3. Your options, in the order the runner prints them:

- point `BIGPOWERS_CI_TEMPLATES` at templates for your forge
- pin `forge: github` in `specs/forge.yaml` if the remote is misdetected
- write the CI config by hand

Contributing a `docs/templates/ci/gitlab/` set and adding `gitlab` to `FORGE_SUPPORTED_LIST` is the natural next slice — per-forge command mapping (`gh pr checks` → `glab ci status`) is not implemented yet.

### 4. Validate workflows (`--validate`)

See [REFERENCE.md](REFERENCE.md). Exit codes: `0` clean, `1` YAML syntax errors, `2` warnings only.

### 5. Dry-run workflows (`--dry-run`)

See [REFERENCE.md](REFERENCE.md).

> **act** runs workflows in a local Docker environment — the most accurate pre-push validation.
> **gh workflow run** sends the workflow to GitHub but does not execute locally.

### 6. Document common CI failure patterns

| Failure | Cause | Fix |
|---------|-------|-----|
| `npm publish` fails | `NPM_TOKEN` not set as repo secret | Add `NPM_TOKEN` to repo secrets |
| `semantic-release` fails on push | Missing `permissions: contents: write` | Add it to the release job |
| `cargo publish` auth fail | `CARGO_REGISTRY_TOKEN` not set | Add token to env or `~/.cargo/config.toml` |
| `go vet` fails | Go version mismatch | Use `go-version-file: go.mod` |
| `cargo clippy` errors | New nightly lints | Pin the toolchain; `cargo clippy --fix` |
| `act` not found | Docker not running or act missing | `brew install act`; `docker ps` |
| Hardcoded Node version stale | `.nvmrc` exists but workflow hardcodes | Use `node-version-file: .nvmrc` |
| Deploy never runs | TBR workflow renamed | Keep `name: Test Build Release` |
| Release rebuilds binary | Artifact not downloaded | `release` must `download-artifact` from `build` |

## Verify

→ verify: `bash scripts/wire-ci.sh --self-test`
→ verify: `test -f docs/templates/ci/github/test-build-release-node.yml && test -f scripts/lib/detect-forge.sh`
→ verify: `grep -q wire-ci SKILL-INDEX.md`

---

# Wire Ci — Reference

## Navigation

| Lines | Section |
|-------|---------|
| 1 | Title |
| 3–20 | Navigation |
| 21–22 | Examples |
| 23–39 | Create CI for a Go project (TBR + optional deploy) |
| 40–49 | Create CI for a CLI tool (TBR only, no deploy) |
| 50–57 | Validate existing workflows (no generation) |

From danielvm-git/bigpowers, MIT.

More from danielvm-git/bigpowers

Signals

Stars
271
Forks
24
Open issues
11
Last commit (this folder)
Jul 27, 2026 (3 months ago)
Last release
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from danielvm-git

Cite this page

wire-ci skill. Agent Mart. https://agentmart.dev/skills/danielvm-git-wire-ci (last updated 2026-10-24)