promote
Promote proven project instincts to global scope with lineage tracking
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Promote proven project instincts to global scope with lineage tracking
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
A pre-publish checkpoint for a client blog/content draft — grammar and mechanics, brand voice against a per-client profile, and factual claims checked against the client's own site — that ends in one verdict a VA or owner can act on without reading the whole report: SHIP / SHIP WITH FIXES / HOLD. Use when a user asks to "QA this draft," "check this post before it goes live," "run content QA for [client]," "does this sound like [client]," or wants a pre-publish gate so nothing ships with an embarrassing factual miss, an off-voice line, or a typo in the headline.
A local tabbed dashboard showing all six AMM Founding Circle tools' reports in one place (Connection Sentinel, Bug Hunter, Content QA, Lead Grader, Penny Dashboard, Outbound Engine), each with a Refresh button that re-runs that tool's own command and pulls its latest report back in. Use when a member wants one place to check every tool at a glance instead of hunting down six separate report files, when presenting results live to a client or teammate, or when a specific tool's tab needs re-running after config changes.
Find the ghost tokens. Audit Claude Code or Codex setup, see where context goes, fix it. Use when context feels tight.
Compute per-client cost/billing profitability (Penny Dashboard) and generate an internal owner view plus a locked-down, client-safe HTML page per client. Use when an agency owner asks to run their Penny Dashboard, check which clients are unprofitable, see margin by client, or generate a client-safe cost/spend page to send a client.
Sweep every client site and Google Ads account for real, client-visible errors — broken links, disapproved ads, dead tracking tags, broken redirect chains. Use when the user says "run my bug hunt", "sweep my clients", "check my client sites for errors", "audit my Google Ads accounts for problems", or wants to know what's broken before a client finds it. Read-only — never edits, pauses, or posts anything.
An always-on checker that pings every API/MCP connection your automations depend on and alerts you the moment one silently dies -- email + macOS notification, plus a tiny local status board. Use when you want to know instantly if a connection (Search Atlas MCP, Google Ads, GA4, Meta, CallRail, Smartlead, ClickUp, Slack, or anything else) has gone down, when a scheduled automation "seems quiet" and you need ground truth instead of guessing, or when you're setting up your first always-on agent and want a watch on it from day one.
| name | promote |
| description | Promote proven project instincts to global scope with lineage tracking |
| argument-hint | <instinct-id> | --scan [--project <slug>] |
| allowed-tools | ["Read","Write","Bash","Grep","Glob"] |
You are promoting instincts from project scope to global scope. Promotion means the rule is now applied universally, not just in one project context. Be conservative — only promote instincts that are genuinely universal.
An instinct is eligible for promotion only if all of the following are true:
status == "proven"confidence >= 0.85evidence array length >= 15 (total opportunity count)If any criterion fails, the instinct is ineligible and must appear in the "Ineligible" section of the report with the specific reason.
Parse the arguments passed to this skill:
/promote INS-XXXXXXXX-XXXX — promote exactly one instinct./promote --scan — find all eligible instincts across all project scopes and prompt before each./promote --scan --project <slug> — only scan ~/.claude/instincts/projects/<slug>/.Single ID mode:
find "$HOME/.claude/instincts/projects/" -name "<instinct-id>.md" 2>/dev/null
If found, read the file. If not found, check global scope (already promoted — skip with a note).
Scan mode:
# List all project-scoped instinct files
if [ -n "$PROJECT_SLUG" ]; then
find "$HOME/.claude/instincts/projects/$PROJECT_SLUG/" -name "INS-*.md" 2>/dev/null
else
find "$HOME/.claude/instincts/projects/" -name "INS-*.md" 2>/dev/null
fi
Read each file found. Parse the YAML frontmatter to extract:
id, name, status, confidence, scopeevidence (list)lineage.promoted_to (if set, already promoted — skip)## Operational RuleFor each candidate, apply the four criteria:
Token specificity check — to measure project-specificity of the operational rule:
python3 -c "
import re, sys
rule_text = '''<PASTE_RULE_TEXT>'''
project_slug = '<PROJECT_SLUG>'
# Tokenize (split on whitespace + punctuation)
tokens = re.findall(r'[a-zA-Z0-9_\-/\.]+', rule_text)
total = len(tokens)
if total == 0:
print('0.00')
sys.exit()
# Count tokens that reference the project
project_terms = set()
project_terms.add(project_slug.lower())
# Also count path segments that contain the slug
specific = sum(1 for t in tokens if project_slug.lower() in t.lower())
ratio = specific / total
print(f'{ratio:.2f}')
"
Build a verdict for each instinct:
lineage.promoted_to is setScan mode: After computing verdicts, print the list and ask:
Found N eligible instincts for promotion:
1. INS-XXX | "name" | confidence: 0.XX | evidence: N
2. ...
Promote all? [y/N] or enter numbers (e.g. 1,3):
Wait for the user's response before proceeding.
For each instinct approved for promotion:
3a. Generate new global ID:
SUFFIX=$(python3 -c "import secrets; print(secrets.token_hex(2))")
NEW_ID="INS-$(date +%Y%m%d)-${SUFFIX}"
echo "$NEW_ID"
3b. Generalize the operational rule.
Read the ## Operational Rule body. Rewrite it to be project-agnostic:
mb-mgmt, backend, content-assistant)team_roster.json in this project → the project's team roster file)3c. Write the new global instinct file:
mkdir -p "$HOME/.claude/instincts/global"
DEST="$HOME/.claude/instincts/global/${NEW_ID}.md"
The new file uses this format (match exactly):
---
id: <NEW_ID>
name: "<same name>"
description: "<same description, generalized>"
type: feedback
scope: global
status: proven
confidence: <same confidence>
score:
successes: <copy from source>
failures: <copy from source>
confirmations: <copy from source>
corrections: <copy from source>
last_applied_at: "<copy from source>"
half_life_days: 21
decay_floor: 0.30
signals:
trigger_patterns:
- "<copy from source>"
anti_patterns: []
evidence:
<copy all evidence entries verbatim>
lineage:
parent_ids: []
cluster_id: null
promoted_from: "<ORIGINAL_ID>"
version: 1
created_at: "<ISO-8601 UTC now>"
updated_at: "<ISO-8601 UTC now>"
---
## Operational Rule
<generalized rule body>
3d. Update the source instinct file.
Add promoted_to: <NEW_GLOBAL_ID> inside the lineage: block. Use the confidence library's update_instinct_file helper, or use the Edit tool for targeted replacement:
python3 -c "
import sys
sys.path.insert(0, '$HOME/.claude/instincts/lib')
from confidence import update_instinct_file
update_instinct_file('SOURCE_PATH', {
'lineage.promoted_to': 'NEW_GLOBAL_ID',
'updated_at': 'ISO_NOW',
})
"
If the lineage block does not have a promoted_to field yet, add it manually after promoted_from:.
3e. Update the project INSTINCTS.md index.
Find the line for this instinct's ID and append → promoted to <NEW_GLOBAL_ID> to it. If the line does not exist, add it.
3f. Update the global INSTINCTS.md index.
File: ~/.claude/instincts/global/INSTINCTS.md
Append a new line under the ## Proven Instincts section:
- <NEW_ID> | proven | <confidence> | "<name>" | promoted <YYYY-MM-DD>
If the section does not exist yet, create it.
Output a structured promotion report:
## Promotion Report
### Promoted (N)
- INS-XXX (project/<slug>) → INS-YYY (global) | "<name>" | confidence: 0.XX
→ Lineage tracked, rule generalized
### Ineligible (N)
- INS-XXX | "<name>" | reason: <confidence too low (0.XX < 0.85) | not enough evidence (N < 15) | too project-specific (N% tokens)>
### Already Global (N)
- INS-XXX | "<name>" — already in global scope, skipped
If nothing was promoted, explain clearly. If there are no project-scope instincts at all, say so.
$HOME/.claude/instincts/global/${NEW_ID}.md already exists (collision), generate a new suffix and try again.evidence list verbatim to the promoted file.promoted_from in the new global file and promoted_to in the source file. Without lineage, the promotion is incomplete.mkdir -p).scope: global, skip it with "Already Global" status.