run-pipeline
Skill2 starsChanged 4 months agoMITView on GitHub
Handles several sales tasks in one turn for a specific company. Triggered by "chạy cho [công ty]", "tìm hiểu rồi viết email", "làm hết cho [công ty]", "run pipeline", "research and write an email", "do the full pipeline for [company]", or a company name with a request for multiple outputs.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- harness/harness-skillstheir own version, first seen Nov 1, 2026
- neurospin-projects/2026_bdrabczuk_champollion_mcptheir own version, first seen Nov 1, 2026
- rgoerwit/ai-investment-agenttheir own version, first seen Oct 8, 2026
- ai-analyst-lab/ai-analysttheir own version, first seen Sep 10, 2026
- bohewu/agents_pipelinetheir own version, first seen Jul 11, 2026
- AlanSyue/my-skillstheir own version, first seen Feb 26, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- ai-analyst-lab/ai-analyst★ 304same name
- harness/harness-skills★ 127same name
- rgoerwit/ai-investment-agent★ 71same name
- AlanSyue/my-skills★ 2same name
- bohewu/agents_pipeline★ 1same name
- neurospin-projects/2026_bdrabczuk_champollion_mcp★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- crm-noteSkill
- draft-outreach-emailSkill
- draft-proposalSkill
- getting-startedSkill
- research-prospectSkill
- setup-product-contextSkill
- suggest-next-stepSkill
- update-deal-feedbackSkill
- weekly-summarySkill
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 8 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Always return something usable, even if imperfect.
- Very specific: line 41
Check "what does the user sell" in order: current message → conversation → <DATA>/product-context.md.
- Distinctive: line 43
If unknown, ask exactly one question:
- Very specific: line 49
If product-context.md is empty and the user just stated their offer → save it immediately as starter context, no need to ask.
- Very specific: line 67
Read relevant local memory from the resolved <DATA>: product context + deal file if one exists.
- Very specific: line 69
Run the needed playbook per ${CLAUDE_PLUGIN_ROOT}/policies/execution-budget.md.
- Distinctive: line 85
If the user did not ask for an email or proposal after research → stop, show the brief, ask one question about the next step.
- Distinctive: line 109
Add a "saved" section only when files were actually written, with real paths:
- Distinctive: line 117
After any buyer-facing draft, add one line:
- Distinctive: line 127
Never send email, never write to a CRM.
- Distinctive: line 128
Never invent names, prices, case studies, or figures.
- Distinctive: line 129
Never say "saved" when nothing was written.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Run Pipeline
The main skill. Use it when the user wants more than one thing, or when the request is vague but clearly about researching a prospect, writing an email, building a proposal, or choosing a next step.
One clear task only → use the specific skill.
Unclear what they want → ${CLAUDE_PLUGIN_ROOT}/skills/getting-started/SKILL.md.
Principle
Get as far as possible with the data available. Stop and ask only when the missing piece would make the output useless or unsafe.
Always return something usable, even if imperfect. An email that needs one line changed beats a question.
Extract from the request
company: required — ask immediately if missing
offer: from the message, or <DATA>/product-context.md
price: nice to have; mark it if absent
stage: cold / in conversation / post-demo / proposal sent / stalled
wants: brief / email / proposal / next step / CRM note
language: match the userMissing company name is the only thing that blocks everything.
First-time offer intake
Check "what does the user sell" in order: current message → conversation → <DATA>/product-context.md.
If unknown, ask exactly one question:
Anh/chị bán gì cho khách này? Có giá thì gửi luôn, không có mình vẫn viết được bản nháp.If product-context.md is empty and the user just stated their offer → save it immediately as
starter context, no need to ask. Only ask before overwriting context that already has content.
Clarification — max ONE question per turn
See ${CLAUDE_PLUGIN_ROOT}/policies/clarification.md. Summary: one question, specific, and say what the answer unlocks.
Anything else missing → continue with an assumption and note it.
Steps
- Resolve
<DATA>with a real command before anything else — even on a one-message request that also does research and writing. Run:if ($env:PIPELINE_STATE_DIR) { $env:PIPELINE_STATE_DIR } else { Join-Path $env:USERPROFILE ".claude\pipeline-to-proposal" }(or the bash equivalent in${CLAUDE_PLUGIN_ROOT}/policies/safety-core.mdsection 0). Do not write product context or a deal file anywhere until this has actually run once this conversation. Writing into the working directory instead of this resolved path is the most common way this plugin has broken in testing — treat skipping this step as a bug, not a shortcut. - Identify the company and what the user wants.
- Read relevant local memory from the resolved
<DATA>: product context + deal file if one exists. - Judge fit quickly — internally, never show a score.
- Run the needed playbook per
${CLAUDE_PLUGIN_ROOT}/policies/execution-budget.md. - Proposal, or an email with numbers/results/past customers → review with
${CLAUDE_PLUGIN_ROOT}/agents/sales-reviewer.md. Short persona-based email, no numbers → skip the subagent call and use the short self-check in${CLAUDE_PLUGIN_ROOT}/skills/run-pipeline/references/readiness.mdinstead — a full subagent pass on a message with nothing risky in it is pure added latency and cost with nothing to catch. - Return compact output per
${CLAUDE_PLUGIN_ROOT}/policies/safety-core.mdsection 3. - Save deal / follow-up / feedback into the resolved
<DATA>, format per${CLAUDE_PLUGIN_ROOT}/policies/state-management.md. Only files under<DATA>/deals/,<DATA>/product-context.md,<DATA>/follow-ups.md,<DATA>/feedback.mdcount as saved — a file invented elsewhere (like a scratch file next to the working directory) is not memory and must not be reported as "saved".
For "do everything": return a brief plus the single most important artifact, then suggest one follow-up command. Never dump email + proposal + note in one turn.
If the user did not ask for an email or proposal after research → stop, show the brief, ask one question about the next step.
Fit check — internal only
Compare the prospect against product context. Conclude: good fit / possible / unlikely / unknown.
- Good, possible, or user explicitly asked → continue.
- Unlikely → light research, then ask before writing a long proposal.
In the output say "looks like a fit" / "not sure it's a fit" in the user's language. Never show a score or name a framework.
Missing data
See ${CLAUDE_PLUGIN_ROOT}/workflows/data-fallback.md. Principle: every gap must still produce a partial artifact, never
a dead end.
A broken source means "could not look it up", never "does not exist".
Output
Per ${CLAUDE_PLUGIN_ROOT}/policies/safety-core.md. Three sections, plain language, one screen.
Add a "saved" section only when files were actually written, with real paths:
### Đã lưu
- Deal: ~/.claude/pipeline-to-proposal/deals/abc-logistics.md
- Nhắc follow-up: 03/08After any buyer-facing draft, add one line:
Gửi xong nhắn mình "khách trả lời..." hoặc "chưa thấy hồi âm" để mình cập nhật deal.Safety
Per ${CLAUDE_PLUGIN_ROOT}/policies/safety-core.md. Four absolutes:
- Never send email, never write to a CRM.
- Never invent names, prices, case studies, or figures.
- Never say "saved" when nothing was written.
- No bracket placeholders in a buyer-facing draft, ever — not
[Tên], not[Tên bạn], not[Tên công ty bạn], not[SĐT]. Missing sender company → leave it out of the signature. Missing sender name → this is a real fact about the user, not a stylistic gap, so it follows the "Sender name" procedure in${CLAUDE_PLUGIN_ROOT}/policies/safety-core.md(check savedsender_name→ ask once if this turn has no other question pending → otherwise send with no name in the sign-off and note the gap) — never invent one. Open cold Vietnamese emails with "Chào anh/chị" — never "Kính gửi" in any form, including "Kính gửi anh/chị". This has been the single most common defect in testing; check the draft against this list before returning it, every time, even under a compound "chạy cho X" request that also does research.
References
Load per ${CLAUDE_PLUGIN_ROOT}/policies/execution-budget.md, not up front:
references/intake.md— parsing how salespeople actually typereferences/readiness.md— is there enough data to proceed${CLAUDE_PLUGIN_ROOT}/playbooks/research.md,${CLAUDE_PLUGIN_ROOT}/playbooks/messaging.md,${CLAUDE_PLUGIN_ROOT}/playbooks/proposal.md,${CLAUDE_PLUGIN_ROOT}/playbooks/deal-coach.md${CLAUDE_PLUGIN_ROOT}/knowledge/vietnamese-sales-language.md— when writing Vietnamese for a buyer
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

