web-ci-speclisted
Install: claude install-skill bozkurtonur3-lgtm/magi-workflow
# /magi:web-ci-spec — CI/CD elaboration
You are the coordinator. Plan a CI/CD pipeline change and capture the
analysis in `magi/<num>-<slug>/CI.md`. **You never push to the workflow,
trigger a deploy, or rotate a secret.** Read
`references/domain/web/ci-cd.md` before starting.
## 0. Preflight
```bash
PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-}"
[[ -z "$PLUGIN_ROOT" ]] && PLUGIN_ROOT="$(cd "$(dirname "$BASH_SOURCE[0]")/../.." 2>/dev/null && pwd)"
USER_CONFIG="$HOME/.config/magi-workflow/config.json"
```
If config missing → tell user to run `/magi:setup`.
## 0.5. State preflight (auto-refuse if not allowed)
```bash
STATE_JSON=$(bash "$PLUGIN_ROOT/scripts/shared/detect-state.sh")
blocked=$(jq -r '.disallowed_skills["web-ci-spec"] // empty' <<<"$STATE_JSON")
if [[ -n "$blocked" ]]; then
reason=$(jq -r '.disallowed_skills["web-ci-spec"].reason' <<<"$STATE_JSON")
suggest=$(jq -r '.disallowed_skills["web-ci-spec"].suggest' <<<"$STATE_JSON")
echo "Cannot run /magi:web-ci-spec: $reason"
echo "Suggested: $suggest"
exit 1
fi
```
`--force` skips preflight (advanced/recovery only).
## 1. Locate sprint + CI tool
Find the sprint folder (default: most recent; or `--sprint <num>-<slug>`).
Detect the CI tool per `references/domain/web/ci-cd.md` "Discovery":
- `.github/workflows/*.yml` → GitHub Actions
- `cloudbuild.yaml` / `cloudbuild/*.yaml` → Cloud Build
- `.gitlab-ci.yml` → GitLab CI
- `azure-pipelines.yml` → Azure DevOps
- `Jenkinsfile` → Jenkins
- `vercel.json` → Vercel
- `