Claudish Usage
MadAppGang/claudish
CRITICAL - Guide for using Claudish CLI ONLY through sub-agents to run Claude Code with any AI model (OpenRouter, Gemini, OpenAI, local models).
Agent skill
by growthenginenowoslawski in growthenginenowoslawski/coldoutboundskills
Reusable approval-loop pattern for fanning out lead personalization across parallel Claude Code Task sub-agents.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills personalization-subagent-pattern --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/personalization-subagent-pattern .claude/skills/personalization-subagent-pattern && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "personalization-subagent-pattern" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-pattern into .claude/skills/personalization-subagent-pattern/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "personalization-subagent-pattern", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-patternType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills personalization-subagent-pattern --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/personalization-subagent-pattern .agents/skills/personalization-subagent-pattern && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "personalization-subagent-pattern" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-pattern into .agents/skills/personalization-subagent-pattern/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "personalization-subagent-pattern", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills personalization-subagent-pattern --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/personalization-subagent-pattern .cursor/skills/personalization-subagent-pattern && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "personalization-subagent-pattern" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-pattern into .cursor/skills/personalization-subagent-pattern/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "personalization-subagent-pattern", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/growthenginenowoslawski/coldoutboundskills.git --path skills/personalization-subagent-pattern--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills personalization-subagent-pattern --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/personalization-subagent-pattern .gemini/skills/personalization-subagent-pattern && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "personalization-subagent-pattern" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-pattern into .gemini/skills/personalization-subagent-pattern/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "personalization-subagent-pattern", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install growthenginenowoslawski/coldoutboundskills personalization-subagent-patternInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/personalization-subagent-pattern .github/skills/personalization-subagent-pattern && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "personalization-subagent-pattern" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-pattern into .github/skills/personalization-subagent-pattern/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "personalization-subagent-pattern", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills personalization-subagent-pattern --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/personalization-subagent-pattern .opencode/skills/personalization-subagent-pattern && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "personalization-subagent-pattern" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/personalization-subagent-pattern into .opencode/skills/personalization-subagent-pattern/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "personalization-subagent-pattern", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
personalization-subagent-patternReusable approval-loop pattern for fanning out lead personalization across parallel Claude Code Task sub-agents.
Personalization Subagent Pattern is an agent skill from growthenginenowoslawski/coldoutboundskills. Reusable approval-loop pattern for fanning out lead personalization across parallel Claude Code Task sub-agents. Shows the user 1 sample personalization, collects feedback, runs 10 more, approves, runs 10 more — stops when 2 consecutive rounds have zero edits, then scales to the full list. ALWAYS uses Claude Code Task tool sub-agents — never an external Anthropic/OpenAI API key. Use when any skill needs per-lead custom variables (situation lines, value lines, CTAs).
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/prompt-template.md`).
It sits in Agent Workflows, covering Subagents and LLM API integration. It works with OpenAI. The repository describes itself as: Open-source Claude Code skills for cold email and outbound sales. Grade campaigns, export Prospeo searches, scrape Google Maps — all from Claude Code. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 25c5d85. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json and yaml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Personalization Subagent Pattern loads about 2.8k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 126 tokens; SKILL.md has 1,098 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from growthenginenowoslawski/coldoutboundskills at commit 25c5d85, republished under its MIT licence (© growthenginenowoslawski). 1,098 words, ~2,765 tokens.
.claude/skills/personalization-subagent-pattern/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Cold email personalization at scale requires per-lead generation. Claude Code's Task tool lets you fan out to many sub-agents in parallel, each personalizing a slice of the lead list. This skill defines the reusable approval-loop pattern.
This skill runs entirely inside Claude Code via the Task tool. No Anthropic SDK calls, no OpenAI calls. This is intentional:
At very large scale (1,000+ leads), the tuned prompt can optionally be shipped to the Anthropic API for throughput. But TUNING and normal campaign runs (under 500 leads) always go through the Task tool.
Don't personalize 500 leads and then discover the prompt is wrong. Loop first, then scale.
company_description.situation_line, value_line, cta_soft.Lead | situation_line | value_line | cta_soft
jane@acme.com | You're building the only APM for Ruby. | Our Ruby customers find ... | Worth 10 min?
john@otherco.com | ... | ... | ...Once locked:
lead_id./auto-research-public or similar orchestration skills need parallel personalization/auto-research-public or similar orchestration skills need parallel personalizationBefore fanning out, your lead batch should be a JSON array where each lead has:
{
"lead_id": "<stable identifier>",
"first_name": "<str>",
"last_name": "<str>",
"email": "<str>",
"company_name": "<str>",
"company_domain": "<str>",
"company_description": "<1-3 sentences about what the company does>",
"title": "<str>",
"linkedin_url": "<optional>",
"enrichment_data": { ... any extra signals ... }
}The richer the company_description, the better the personalization. If you only have company names, the output will be generic.
Decide up front what fields each sub-agent must return. Example:
{
"lead_id": "<same id>",
"situation_line": "<1 sentence — what you noticed about their company>",
"value_line": "<1 sentence — connecting their situation to your offer>",
"cta_soft": "<1 sentence — soft ask, e.g. 'worth a 15 min chat?'>"
}Fewer fields = less that can go wrong. Default to 3 fields maximum per variant.
If testing 3 copy variants, run 3 parallel sub-agents per company (or per batch). Each gets a different angle prompt:
This gives you 3x the data from one list — you can A/B/C test which angle resonates.
For 100 leads:
For 1000 leads:
Every personalization sub-agent gets a prompt of this shape:
You are personalizing cold email fields for N leads.
CONTEXT:
- We sell: <one sentence from client-profile.yaml>
- Our ICP: <one sentence>
- Our offer: <the CTA we're asking them to respond to>
- Tone: <casual | formal | peer-to-peer>
FIELDS TO GENERATE (per lead):
- situation_line: <definition + 1 good example + 1 bad example>
- value_line: <definition + 1 good example + 1 bad example>
- cta_soft: <definition + 1 good example + 1 bad example>
RULES:
1. Never fabricate facts. If the company description is thin, say something generic but not false.
2. Never use em dashes (—). Use periods or commas.
3. Never use the word "leverage", "synergy", "ecosystem".
4. Maximum length: <N words per field>.
5. If a lead is missing company_description, return "<fields cannot be generated — skip>"
LEADS:
<JSON array>
RETURN:
A JSON array with the same lead_ids and the personalization fields. Save to /tmp/personalization-<batch-id>.json and print "DONE" when complete.Pseudocode for the orchestrator (runs in the main Claude Code conversation):
leads = load leads from JSON
batches = chunk leads into groups of 10-20
for each batch:
for each variant in [A, B, C]:
Task(
description: "Personalize batch <i> variant <v>",
subagent_type: "general-purpose",
prompt: <template above with variant-specific angle>
)
# All tasks run in parallel (multiple tool calls in one message)
Wait for all tasks to finish, then read /tmp/personalization-*.json and merge.Or, launching all in a single message with multiple Task calls:
# Launch 3 parallel sub-agents for one batch (variants A, B, C)
Task(description: "batch-1-variant-A", ...)
Task(description: "batch-1-variant-B", ...)
Task(description: "batch-1-variant-C", ...)Sub-agents can:
The orchestrator should:
personalization_status: "skipped" and use static copy insteadNever ship personalization fields that contain the string "cannot be generated" or similar — filter these out before upload.
After all sub-agents complete:
/tmp/personalization-*.json fileslead_id{
...original lead fields,
"variant_a": { "situation_line": "...", "value_line": "...", "cta_soft": "..." },
"variant_b": { ... },
"variant_c": { ... }
}{{situation_line_a}}, {{value_line_a}}, etc.The loop exits automatically when:
On stop:
~/cold-email-ai-skills/profiles/<business-slug>/personalization-prompt.txtclient-profile.yaml metadata entry:personalization_prompt:
path: profiles/<slug>/personalization-prompt.txt
variant_count: 3
tuned_at: YYYY-MM-DD
rounds_to_convergence: 3If the user gives edits on round N+1 after 2 approved rounds, that's fine — the counter resets, and the loop continues.
Before uploading, manually spot-check 5 random leads per variant. Common issues:
references/prompt-template.md — copy-pasteable prompt templatereferences/example-output.json — what a well-personalized batch looks likereferences/failure-modes.md — common sub-agent failures and how to detect themThis is a pattern doc, not a standalone skill. It's invoked by /auto-research-public and /campaign-copywriting when they need per-lead personalization at scale.
If you're reading this directly, you're probably designing a new campaign-orchestration flow — return to whichever skill sent you here.
/auto-research-public — the primary consumer of this pattern/icp-onboarding — produces the client-profile.yaml the prompt pulls from/cold-email-starter-kit references 03-campaign-copywriting.md for copy principles the prompt enforces© growthenginenowoslawski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/personalization-subagent-pattern of growthenginenowoslawski/coldoutboundskills.
Open the folder on GitHubat commit 25c5d85
Personalization Subagent Pattern next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Personalization Subagent Pattern this skillgrowthenginenowoslawski/coldoutboundskills | 753 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Claudish UsageMadAppGang/claudish | 1k | — | ~9k | Automated safety check: Pass | None | |
| Prime Agentwcygan/dotfiles | 194 | — | ~1.8k | Automated safety check: Pass | None | |
| Atomic Chat MCP Tool for NanoClawnanocoai/nanoclaw | 31k | — | ~2.6k | Automated safety check: Notes | MIT | |
| Efficient DispatchNecmttn/ax | 115 | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Openclaw SpawnerLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.5k | Automated safety check: Pass | MIT |
MadAppGang/claudish
CRITICAL - Guide for using Claudish CLI ONLY through sub-agents to run Claude Code with any AI model (OpenRouter, Gemini, OpenAI, local models).
wcygan/dotfiles
A skill your agent uses when learning, configuring, or troubleshooting Prime Agent (PrimeIntellect-ai/prime-agent), including installation, providers, custom OpenAI-compatible models, local…
nanocoai/nanoclaw
Adds an MCP server to NanoClaw so its container agent can list and prompt local models served by the Atomic Chat desktop app.
Necmttn/ax
Model-routing orchestration for any expensive frontier model (Fable, Opus, GPT-5.x) - the main model keeps judgment and Q&A review, mechanical subagent dispatches carry an explicit cheaper model…
LeoYeAI/openclaw-master-skills
Enables an Openclaw agent to spawn sub-agents (child Openclaw instances) when a task is too large, complex, or parallel to handle alone.
AI4Scientist/nano-scientist
Autonomous research review loop using any OpenAI-compatible LLM API.
growthenginenowoslawski/coldoutboundskills
Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Conversational intake for cold email campaigns. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
META skill — build the largest possible qualified lead list for any request, end to end.
growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains.
growthenginenowoslawski/coldoutboundskills
Compare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account.
Works with
Categories
Reusable approval-loop pattern for fanning out lead personalization across parallel Claude Code Task sub-agents. Personalization Subagent Pattern is an agent skill from growthenginenowoslawski/coldoutboundskills. Reusable approval-loop pattern for fanning out lead personalization across parallel Claude Code Task sub-agents.
Personalization Subagent Pattern fits situations like: any skill needs per-lead custom variables (situation lines; tasks that involve Subagents; tasks that involve LLM API integration.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a claude-code`. Or copy the skill folder (skills/personalization-subagent-pattern in growthenginenowoslawski/coldoutboundskills) into .claude/skills/personalization-subagent-pattern in your project. Claude Code loads it when a task matches its description.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a codex`. Or copy the skill folder (skills/personalization-subagent-pattern in growthenginenowoslawski/coldoutboundskills) into .agents/skills/personalization-subagent-pattern in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add growthenginenowoslawski/coldoutboundskills --skill personalization-subagent-pattern -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/personalization-subagent-pattern, .gemini/skills/personalization-subagent-pattern, .github/skills/personalization-subagent-pattern and .opencode/skills/personalization-subagent-pattern in your project.
SKILL.md names no scripts, command-line tools or credentials: Personalization Subagent Pattern is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Personalization Subagent Pattern is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 604 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Personalization Subagent Pattern: Claudish Usage (MadAppGang/claudish, 1k stars), Prime Agent (wcygan/dotfiles, 194 stars), Atomic Chat MCP Tool for NanoClaw (nanocoai/nanoclaw, 31k stars) and Efficient Dispatch (Necmttn/ax, 115 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
growthenginenowoslawski (a GitHub user) maintains it in growthenginenowoslawski/coldoutboundskills, which has 753 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.
Source: growthenginenowoslawski/coldoutboundskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.