一键导入
release-check
Smoke test before merging dev to main. Bootstraps a clean worktree, runs evals, checks instruction consistency — all automated via sub-agents.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Smoke test before merging dev to main. Bootstraps a clean worktree, runs evals, checks instruction consistency — all automated via sub-agents.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Dashboard of current GTM state across all active modules. Use when user asks about status, progress, or what to do next.
Upgrade this GTM Context OS instance to the latest template developments. Fetches the latest template, reconciles what's new against THIS instance's structure, and applies approved changes on a review branch — pausing before anything destructive. Operator-initiated.
Guided first-use setup. Walk through filling context.md and ingesting the first sales call. Use when the repo is empty or context.md is unfilled.
First thing to run. Checks repo state and recommends what to do next. Use when operator says 'what do I do', 'help me get started', 'where do I begin', or just seems lost.
Audit the health of THIS instance's lived-in state — structural completeness, evidence chains, index integrity, output hygiene, drift, and context.md consistency (conflicts + cached-vs-source drift). Reports findings and fixes safe drift; flags judgment calls. Runs inside Claude Code, no API key.
Process raw documents into structured, attributed knowledge. Drop docs into _intake/, run this skill to dissect them into the right places. Incremental — run as many times as needed.
| name | release-check |
| description | Smoke test before merging dev to main. Bootstraps a clean worktree, runs evals, checks instruction consistency — all automated via sub-agents. |
| argument-hint | [optional: URL to bootstrap with, default: clay.com] |
Automated release gate for merging dev → main. Runs three checks in an isolated worktree so your working copy is untouched.
dev to main| Agent | What | Needs worktree? | Depends on |
|---|---|---|---|
| Bootstrap | Populates context.md from a real website in a clean worktree | Yes | Nothing |
| Consistency | Checks AGENTS.md against scoped rules, blueprints, Document Architecture; verifies CHANGELOG Reference paths + anchors resolve; PII gate on committed samples/ | No | Nothing |
| Eval | Runs all 8 eval tests against the bootstrapped worktree | Yes | Bootstrap |
Determine the bootstrap URL:
clay.comCreate a temporary git worktree for the isolated test:
WORKTREE_PATH="/tmp/gtm-release-check-$(date +%s)"
git worktree add "$WORKTREE_PATH" HEAD
Launch two agents simultaneously:
Agent 1 — Bootstrap (works in worktree):
.claude/skills/bootstrap/SKILL.md from the worktree for instructionscontext.mdstatus.md or commit — this is a test runAgent 2 — Consistency (works in main repo, read-only):
AGENTS.md.claude/rules/SKILL.md files in .claude/skills/*/CHANGELOG.mdsamples/. Run a grep over tracked files in samples/ for contact patterns and flag any hit as CRITICAL:
git ls-files 'samples/**' | xargs -r grep -lE \
'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}|\+?[0-9][0-9 ().-]{7,}[0-9]' 2>/dev/null
Any file listed is a likely PII leak — it belongs in _retained/ (gitignored), not samples/. (Empty/absent samples/ → pass.)CHANGELOG.md is the upgrade channel /gtm-os-upgrade consumes — each entry's **Reference (template implementation)** line points an upgrade agent at the real files behind the pattern, so a rotted path silently misdirects a future upgrade (the template has renamed paths before: eval/ → .gtm-os/eval/, /upgrade → /gtm-upgrade). Scope the check to the Reference content lines (the line after each standalone **Reference (template implementation)** label) — that's the machine-followed pointer layer; the ## Releases index above it is human prose (it names old/renamed paths on purpose) and is not checked. Verify both reference forms. Backticked repo paths must resolve to a real file or directory:
# The grep filter gates on a slash or a known extension, so a bare extensionless
# Reference target (e.g. `LICENSE`, `Makefile`) is silently skipped, not checked.
# None exists today; if one is ever added as a Reference, extend this filter.
awk '/^\*\*Reference \(template implementation\)\*\*$/{getline; print}' CHANGELOG.md \
| grep -oE '`[^`]+`' | tr -d '`' \
| grep -E '/|\.(md|json|toml)$|^\.gitignore$|^\.claudeignore$' \
| sort -u | while read -r p; do [ -e "$p" ] || echo "BROKEN: $p"; done
Any BROKEN: line is a dead reference — flag as CRITICAL with the entry it appears under. (A literal placeholder like engine/{pipeline}-dev-notes.md won't appear on a Reference line; if one ever does, read it as a template, not a literal path.) AGENTS.md section anchors — every `AGENTS.md` → "Section" anchor on a Reference line must match a real heading:
# Match the anchor as a literal string against heading lines — never as a regex.
# An anchor like `Module: engine` is a deliberate substring of its full heading; a
# raw -E interpolation would (a) break on any anchor containing regex metachars
# — `()`, `.`, `+`, etc. — firing a spurious CRITICAL, and (b) let an unrelated
# heading that merely contains the text mask a real rot. grep -qiF restores the
# intended literal contains-check.
awk '/^\*\*Reference \(template implementation\)\*\*$/{getline; print}' CHANGELOG.md \
| grep -oE '`AGENTS\.md` → "[^"]+"' | sed -E 's/.*→ "([^"]+)"/\1/' \
| sort -u | while read -r s; do grep -E "^#{1,4} " AGENTS.md | grep -qiF "$s" || echo "NO HEADING: $s"; done
Any NO HEADING: line means the anchor rotted (heading renamed/removed) — flag as CRITICAL with its entry. (All Reference paths and anchors resolving → pass.)Once the bootstrap agent finishes, launch the eval agent:
Agent 3 — Eval (works in worktree):
.gtm-os/eval/tests.md and .claude/skills/run-eval/SKILL.md from the worktreecontext.md from the bootstrap stepcontext.mdGather results from all three agents and present a unified report:
## Release Check — {date}
Bootstrap URL: {url}
Worktree: {path}
### Bootstrap Result
{filled sections, gaps, errors}
### Consistency Result
{contradictions found, or "clean"}
### Eval Results
| Test | Name | Result | Notes |
|------|------|--------|-------|
| T1 | ... | PASS | |
| ... | ... | ... | |
**Eval Score: {N}/8**
### Verdict
{READY / NOT READY — with specific blockers if not ready}
Verdict criteria:
Remove the temporary worktree:
git worktree remove "$WORKTREE_PATH" --force
Below are the prompts to use when spawning each agent. Adapt paths based on the actual worktree location.
You are running a bootstrap smoke test in an isolated worktree at {WORKTREE_PATH}.
Your job: populate context.md from the website at {URL} by following the bootstrap skill instructions.
1. Read {WORKTREE_PATH}/.claude/skills/bootstrap/SKILL.md for the full process
2. Execute steps 1-4 (normalize URL, crawl pages, extract, populate context.md)
3. Write the populated context.md to {WORKTREE_PATH}/context.md
4. Skip steps 5-6 (gap analysis and status update) — this is a test run, not a real setup
Report back: which sections you filled, what the website provided, any crawl errors. Keep it concise.
You are checking the GTM Context OS instructions for internal consistency.
Read these files:
- AGENTS.md (full file)
- All files in .claude/rules/
- All SKILL.md files in .claude/skills/*/
- CHANGELOG.md
Check for:
1. Every scoped rule's "Source of truth" reference points to a section that exists in AGENTS.md
2. Module blueprints in AGENTS.md match what scoped rules describe (key files, conventions)
3. Document Architecture principles don't contradict module blueprints (especially naming)
4. Graduation criteria are consistent between scripts module and workflows module
5. JSON index schemas match between AGENTS.md and scoped rules
6. Skills reference files and modules that exist in the repo
7. No orphaned references to deleted or renamed sections
8. CHANGELOG reference integrity — each entry's `**Reference (template implementation)**` line is what `/gtm-os-upgrade` follows to read a pattern's real implementation, so a dead path silently misdirects a future upgrade (paths have been renamed before: `eval/` → `.gtm-os/eval/`, `/upgrade` → `/gtm-upgrade`). Check only the Reference content lines (the `## Releases` index is human prose that names renamed paths on purpose — don't check it):
- Backticked repo paths resolve to a real file/dir:
```bash
# Filter gates on slash/known extension — a bare extensionless target (LICENSE,
# Makefile) is skipped, not checked. None exists today; extend the filter if one is added.
awk '/^\*\*Reference \(template implementation\)\*\*$/{getline; print}' CHANGELOG.md \
| grep -oE '`[^`]+`' | tr -d '`' \
| grep -E '/|\.(md|json|toml)$|^\.gitignore$|^\.claudeignore$' \
| sort -u | while read -r p; do [ -e "$p" ] || echo "BROKEN: $p"; done
```
- `` `AGENTS.md` → "Section" `` anchors match a real heading:
```bash
# Match the anchor literally (grep -qiF), never as a regex: anchors are deliberate
# heading substrings and may contain metachars like `()`/`.`/`:` that a raw -E
# interpolation would misread, firing a spurious CRITICAL.
awk '/^\*\*Reference \(template implementation\)\*\*$/{getline; print}' CHANGELOG.md \
| grep -oE '`AGENTS\.md` → "[^"]+"' | sed -E 's/.*→ "([^"]+)"/\1/' \
| sort -u | while read -r s; do grep -E "^#{1,4} " AGENTS.md | grep -qiF "$s" || echo "NO HEADING: $s"; done
```
Any `BROKEN:` or `NO HEADING:` line is CRITICAL — name the CHANGELOG entry it appears under.
Report: numbered list of issues found, with file paths and specific contradictions. If everything is clean, say "No consistency issues found." Be precise — flag real contradictions, not stylistic differences.
You are running the eval suite in an isolated worktree at {WORKTREE_PATH}.
This worktree has a populated context.md (bootstrapped from a real website). Your job: run all 8 eval tests and report results.
1. Read {WORKTREE_PATH}/.gtm-os/eval/tests.md for test definitions
2. Read {WORKTREE_PATH}/.claude/skills/run-eval/SKILL.md for the eval process
3. Scan repo state in the worktree (context.md status, demand/ contents, which modules exist)
4. Process each test case following the eval skill instructions
5. For dynamic tests (T3, T6, T7): construct domain-appropriate prompts from the populated context.md
Report: results table (test ID, name, PASS/FAIL/CRITICAL, one-line note). Then overall score.