Installs into .claude/skills of the current project.
Are you the author of Integrate?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/scolladon-integrate)
---
name: integrate
description: Craft phase 11 - monitor CI to green, merge on user confirmation, clean up worktree/branch and repo tooling.
---
# craft:integrate
## Preamble (always runs — non-overridable)
1. Manifest read (lint if standalone). Policy: `merge-flags`, `non-blocking-jobs`,
`scripts.pre-teardown` from the manifest.
## Procedure (default body — a manifest `override:` replaces everything below)
1. **Monitor CI → fix to green**, ignoring jobs listed in `non-blocking-jobs`. Fixes
land as conventional commits through the same gates as review fixes.
2. **Consult `integrate` action** (see `docs/contributing/specs/policy.md` for surface semantics).
Obey the returned surface:
- `ask` (default, ADR-127) — ask the user to confirm the merge;
on approval proceed, on decline record `POLICY(ask:integrate→declined)` and block.
- `never` — refuse; record `POLICY(never:integrate)`; phase no-ops.
- `always` — proceed with no confirmation; record `POLICY(always:integrate)`;
no merge confirmation (ADR-128).
Then invoke the VCS port `integrate(prUrl)` (see `docs/contributing/specs/vcs.md`); the adapter
owns the host CLI. `--squash` / `--delete-branch` / `merge-flags` semantics live in
the adapter binding. Always delete-branch: no merged branch lingers on the remote.
3. **Consult `teardown`, then tear the worktree down.** Consult the `teardown` action
separately before worktree teardown (per-verb granularity, ADR-126; see
`docs/contributing/specs/policy.md`), append its `POLICY(...)` line, and:
```bash
"${CRAFT_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/worktree-teardown.sh" <main-repo-dir> <worktree-path> \
[--pre-teardown <manifest scripts.pre-teardown>]
```
The script refuses while the validation run-lock is alive (dead-PID locks
auto-clear; a live lock needs `--force`, which is recorded in the run record).
The run ledger lives in the git common dir, not the worktree, so it outlives the
teardown: `Done` derives the memory delta from it afterwards
(`docs/contributing/specs/run-record.md`).
The pre-teardown script is the matched pair of workspace-phase tooling activation —
every activation gets its prune.
4. **Drift-baseline refresh offer:** when the merged change touched `skills/` or
`agents/` (the prompt surface whose economics the drift signal watches), offer the
user a baseline refresh per `skills/metrics/SKILL.md` § Refreshing the committed
baseline — the per-phase economics shifted on purpose, so the pre-change
`docs/contributing/metrics-baseline.report.json` would flag the intended shift as drift forever.
Declining is fine (the offer is advisory, like the signal itself); never refresh
silently.
5. Deliver the final summary (PR URL, what shipped, record). `run-ledger.sh close` does
not run here: it is the last action of the run skill's `Done`, after `save` and
metrics have read the ledger.