csat-churn-watch
csat-churn-watch is a skill in markfulton/ai-employees, last changed 2 Oct 2026. It can run shell commands.
Weekdays, conditional browser lane. Reads the ticket ledger and the account, billing, and usage surfaces the member named, and decides which paying customers are about to leave. Every flag is a dossier carrying the trip wires that fired, the exact evidence behind each one, that account's whole history, and one suggested save with its cost and the screen it happens on. It reads billing screens and touches no control on them: a refund, a credit, a plan change, and a cancellation are named and never made.
At a glance
Pattern check
Nothing flagged
That isn't proof the skill is harmless.
Commit 2cdd34e · 3 Nov 2026
How the check worksPattern check: nothing flagged
That isn't proof the skill is harmless.
Install
Each tab says whether it installs commit 2cdd34e, the one we checked, or the latest version.
OpenCode also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Goose also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Windsurf (Devin Desktop) also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Zed also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Roo Code also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Factory Droid also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Junie also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
Amp also looks in .agents/skills/ and ~/.agents/skills/, so use the Any agent steps.
No install command here reaches Kiro. Copy the skill's folder into .kiro/skills/ in your project, or ~/.kiro/skills/ for all your projects. markfulton/ai-employees/employees/customer-satisfaction-employee/routines/csat-churn-watch (opens in a new tab)
Antigravity also looks in .agents/skills/, so the Any agent steps reach it with This project. For All projects, see where Antigravity looks.
Cline also looks in .claude/skills/, so the Claude Code steps reach it with This project. For All projects, see where Cline looks.
Claude Code
Pinned to commit 2cdd34e, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&mkdir -p .claude/skills &&mkdir .claude/skills/csat-churn-watch &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch/. .claude/skills/csat-churn-watch/ &&rm -rf "$tmp"If Claude Code was already running and this created the skills folder, run /reload-skills.
Claude apps
Pinned to commit 2cdd34e, the one we checked.
Skills in the Claude apps belong to your account rather than to a project.
Make csat-churn-watch.zip, with the skill folder at the top level:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&out="$(mktemp -d)" &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch "$out"/csat-churn-watch &&(cd "$out" && zip -qr - csat-churn-watch) > csat-churn-watch.zip &&rm -rf "$tmp" "$out"In Claude, open Customize > Skills, select +, then + Create skill > Upload a skill, and choose csat-churn-watch.zip.
On Free, Pro and Max plans, turn on Code execution and file creation (Create and edit files in newer settings) under Settings > Capabilities.
Codex
Pinned to commit 2cdd34e, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&mkdir -p .agents/skills &&mkdir .agents/skills/csat-churn-watch &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch/. .agents/skills/csat-churn-watch/ &&rm -rf "$tmp"Codex picks up new skills on its own; restart it if this one does not appear.
Cursor
Pinned to commit 2cdd34e, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&mkdir -p .cursor/skills &&mkdir .cursor/skills/csat-churn-watch &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch/. .cursor/skills/csat-churn-watch/ &&rm -rf "$tmp"Copilot & VS Code
Pinned to commit 2cdd34e, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&mkdir -p .github/skills &&mkdir .github/skills/csat-churn-watch &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch/. .github/skills/csat-churn-watch/ &&rm -rf "$tmp"In a running Copilot CLI session, run /skills reload.
Or install it with gh skill, which also installs the commit we checked. Needs GitHub CLI 2.90 or later.
gh skill install markfulton/ai-employees employees/customer-satisfaction-employee/routines/csat-churn-watch/SKILL.md@2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 --agent github-copilot --scope projectGemini CLI
Pinned to commit 2cdd34e, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&mkdir -p .gemini/skills &&mkdir .gemini/skills/csat-churn-watch &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch/. .gemini/skills/csat-churn-watch/ &&rm -rf "$tmp"In a running session, run /skills reload.
Or use Gemini CLI’s own installer. Installs the latest version, not the one we checked.
gemini skills install https://github.com/markfulton/ai-employees.git --path employees/customer-satisfaction-employee/routines/csat-churn-watch --scope workspaceAny agent
Pinned to commit 2cdd34e, the one we checked.
OpenCode, Goose, Windsurf (Devin Desktop), Zed, Roo Code, Factory Droid, Junie, Amp and Antigravity read .agents/skills in a project.
From your project's root folder:
tmp="$(mktemp -d)" &&git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git "$tmp" &&git -C "$tmp" fetch -q --depth 1 origin 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&git -C "$tmp" sparse-checkout set -- employees/customer-satisfaction-employee/routines/csat-churn-watch &&git -C "$tmp" checkout -q 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577 &&mkdir -p .agents/skills &&mkdir .agents/skills/csat-churn-watch &&cp -R "$tmp"/employees/customer-satisfaction-employee/routines/csat-churn-watch/. .agents/skills/csat-churn-watch/ &&rm -rf "$tmp"Or use the skills CLI from skills.sh. Installs the latest version, not the one we checked. The skills CLI reports installs to skills.sh unless you set DISABLE_TELEMETRY=1.
npx skills@1.7.4 add markfulton/ai-employees --skill csat-churn-watchWhat it can touch
From the files and frontmatter at commit 2cdd34e. This is how much a skill can do, not whether it is risky.
Pattern check
Pattern check: nothing flagged · commit 2cdd34e · 3 Nov 2026
We checked every text file in this skill, at commit 2cdd34e on 3 Nov 2026, against 45 published patterns such as download-and-run commands, hidden text and credential access. We don't run the skill, we don't read the web pages it points to, and we can't judge everything its instructions might lead an agent to do. In published tests, pattern checks like this one missed most malicious skills. Read the skill before you install it — especially anything it asks you to download or run.
Format check
Each agent reads SKILL.md a little differently. We check the file against each one's published rules; we don't run the skill in any agent.
Agent Skills specPasses with warnings
The open format from agentskills.io, held to the strictest version of each rule among the agents we check.
- Warning
metadata values should be text; internal (true or false) is not. The spec's validator turns them into text; other readers may not. O4
Fix: Quote each value, for example version: "1.0".
- Warning
The body is 709 lines; the spec suggests under 500. B1
Fix: Move detailed sections into reference files and link to them from SKILL.md.
- Warning
The body is about 14,436 tokens (approx.); the spec suggests under 5,000. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
The description doesn't say when to use the skill. D6
Fix: Add a sentence such as "Use when …" naming the requests or files that should trigger it.
- Note
There is no license field, so readers can't tell whether they may reuse the skill. O2
Fix: Add license: with an SPDX name such as MIT or Apache-2.0, or the name of a bundled licence file.
- Note
Line 428 has dated wording ("since 2026"), which goes stale. B8
Fix: Describe the current way, and move old patterns into their own clearly marked section.
- Warning
Claude CodePasses
Claude Code reads its own extra fields, ignores unknown ones, and still loads a skill whose frontmatter is broken, without its fields.
- Note
The body is 709 lines; the spec suggests under 500. Claude Code's docs say the same. B1
Fix: Move detailed sections into reference files and link to them from SKILL.md.
- Note
The body is about 14,436 tokens (approx.); the spec suggests under 5,000. After compaction Claude Code keeps only the first 5,000 tokens of a skill. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
Line 428 has dated wording ("since 2026"), which goes stale. B8
Fix: Describe the current way, and move old patterns into their own clearly marked section.
- Note
Claude apps & API uploadPasses
Uploading to claude.ai or the Claude API, or packaging with Anthropic's script, accepts only the six spec fields and stops on anything else.
- Note
The description is 507 characters. The claude.ai Help Center says 200 at most, though Anthropic's API docs and validator allow 1,024. D4
Fix: If the claude.ai upload refuses it, trim the description to 200 characters.
- Note
metadata values should be text; internal (true or false) is not. The spec defines metadata as text to text. O4
Fix: Quote each value, for example version: "1.0".
- Note
The body is 709 lines; the spec suggests under 500. Anthropic's guidance says the same. B1
Fix: Move detailed sections into reference files and link to them from SKILL.md.
- Note
The body is about 14,436 tokens (approx.); the spec suggests under 5,000. Anthropic's guidance says the same. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
Line 428 has dated wording ("since 2026"), which goes stale. B8
Fix: Describe the current way, and move old patterns into their own clearly marked section.
- Note
OpenAI (Codex & API)Passes with warnings
Codex finds SKILL.md by its exact name and needs a description; OpenAI's Skills API checks the frontmatter against the spec and caps uploads.
- Warning
metadata values should be text; internal (true or false) is not. OpenAI's upload follows the spec's text-to-text rule. O4
Fix: Quote each value, for example version: "1.0".
- Warning
- VS Code & CopilotPasses
SKILL.md
Files
1 file
| Path | Size |
|---|---|
| SKILL.md (opens in a new tab) | 57 KB |
More from markfulton/ai-employees
Other Marketing & growth skills
Same category, most repo stars first.