Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add anilcancakir/claude-code --skill productgit clone --depth 1 https://github.com/anilcancakir/claude-codeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/anilcancakir/claude-code/product)<a href="https://agentmods.dev/skills/anilcancakir/claude-code/product"><img src="https://agentmods.dev/badge/skills/anilcancakir/claude-code/product/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/anilcancakir/claude-code/product"><img src="https://agentmods.dev/badge/skills/anilcancakir/claude-code/product.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00049 | $0.02142 |
| Opus 5.5 | $0.00020 | $0.00857 |
| Sonnet 5.5 | $0.00010 | $0.00428 |
| Haiku 4.5 | $0.00005 | $0.00214 |
Grade A, and why
product scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 14d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 91 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/ac/product
Acts as the product manager for one idea: reads what exists, checks feasibility with research agents, interviews the user on every decision, and writes a PRD and a roadmap that /ac/plan, /ac/coordinate and the working rules can build from. It writes documents only. The user decides which consumer runs next.
Request: the text of the user's request, the idea or feature typed after /ac/product.
Standing rules
These hold for the whole run and sit before the procedure so a compaction keeps them.
- Writes only
docs/prd/<slug>.md,docs/ROADMAP.md,.ac/product/<slug>/(interview log and research) and.ac/tasks/<slug>-b<N>.yaml. No application code, no commit, no push. - Never start
/ac/planor/ac/coordinate. Print the handoff commands and stop. - Read before asking. Never ask what the repository,
PROJECT.mdor the research answers. Ask only a preference, a priority, a tradeoff or an outward action. - Interview with the
questiontool: rounds of up to three questions on related decisions, each option carrying the concrete artifact and your recommendation first, in the user's language. In a session without that tool, end on the open decision as the named blocker. - You do not decide alone that the interview is complete. It ends when the user confirms the playback in phase 6.
- Research is sized to the work: a full pass for a new product, a light one for a feature in an existing project. Agents are
ac/librarian(anything external) andac/explore(this repository), never a general-purpose agent. Each brief names one angle, and all briefs of a phase go out in one message. - Interactive sessions run every subagent in the background (
background: true). After a fan-out end the turn with a one-line status and continue on the notification; do not poll or sleep. - A failed subagent moves down its model chain; it is not a question. A subagent call that comes back with a provider failure (
Subagent failed (sessionID: ...), a<subagent ... state="error">message, an error such asprovider.invalid-output) or with no answer at all (Subagent completed without a text response., an empty report) failed on its model, not on the work. Recover by continuing the same child, not by a fresh spawn: call thesubagenttool again with the sameagent,sessionID: "<the sessionID from the failure text>"and the promptYour last turn stopped on a provider error. Continue the task from where you left off without repeating finished work., so the child keeps everything it already read and wrote (a fresh spawn repeats all of it). When it answered nothing or broke off mid-stream (provider.invalid-output, an empty report), continue it on the same model until it has runretryAttemptstimes there (from theac_modelstool, 3 in the shipped config), since that is often a one-off; a 5xx was already retried inside the call, so it goes straight on. Then callac_fallback_next({ tier: "<the agent name without ac/>", tried: [<every model this call ran on>], session_id: "<the sessionID from the failure text>", status: <the HTTP status, when the error carried one> }), withtriedstarting at the agent's chain head fromac_modelsunless you set its model yourself, continue the same child withmodel: "<the returned value>"as well (the child switches to it and keeps its context), and give that model the same number of attempts. A rate limit was retried 10 times inside the call, and the plugin gives one model 30 across continuations:wait:<seconds>means that model has retries left, so wait that long with oneshellsleepand continue the child on the same model withtriedunchanged. The tool bounds those waits itself. Start a fresh spawn with the full prompt only when the continuation is refused (Subagent session not found,is not a child of the current session) or the child's context overflowed. Onlynone, every entry of the chain tried, is a failure to report or ask about. Asking the owner whether to retry wastes a round on a provider fault the chain exists to absorb. - A research report is a claim. Open what it cites before it changes a decision, and mark what you could not verify as unverified in the PRD.
- Write the documents in the language the project's docs already use, English by default. Talk to the user in their language.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 14d ago Changed · -2 lines · +22 tokens per session 8561e6fd7fe0
- 15d ago First seen · 93 lines · 27 tokens per session scan A fcdef0d2d98e
product is a skill published in the GitHub repository anilcancakir/claude-code (4 stars, last pushed 2d ago), licensed MIT. It adds 49 tokens to every session and 2,142 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-31.
product compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| productanilcancakir/claude-code | Skill | 4 | 2d ago | MIT | A | 49 | Claude Code, Codex |
| researcherbitwize-music-studio/claude-ai-music-skills | Skill | 668 | today | CC0-1.0 | A | 38 | Claude Code |
| sheet-music-publisherbitwize-music-studio/claude-ai-music-skills | Skill | 668 | today | CC0-1.0 | A | 36 | Claude Code |
| validate-albumbitwize-music-studio/claude-ai-music-skills | Skill | 668 | today | CC0-1.0 | A | 33 | Claude Code |
| import-artbitwize-music-studio/claude-ai-music-skills | Skill | 668 | today | CC0-1.0 | A | 32 | Claude Code |
| plagiarism-checkerbitwize-music-studio/claude-ai-music-skills | Skill | 668 | today | CC0-1.0 | A | 35 | Claude Code |
| promote-ideabitwize-music-studio/claude-ai-music-skills | Skill | 668 | today | CC0-1.0 | A | 50 | Claude Code |