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 arozumenko/sdlc-skills --skill opportunity-treegit clone --depth 1 https://github.com/arozumenko/sdlc-skillsWrote 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/arozumenko/sdlc-skills/opportunity-tree)<a href="https://agentmods.dev/skills/arozumenko/sdlc-skills/opportunity-tree"><img src="https://agentmods.dev/badge/skills/arozumenko/sdlc-skills/opportunity-tree/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/arozumenko/sdlc-skills/opportunity-tree"><img src="https://agentmods.dev/badge/skills/arozumenko/sdlc-skills/opportunity-tree.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00185 | $0.02322 |
| Opus 5 | $0.00093 | $0.01161 |
| Sonnet 5 | $0.00037 | $0.00464 |
| Haiku 4.5 | $0.00018 | $0.00232 |
Grade A, and why
opportunity-tree 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 12d 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 — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.
opportunity-tree
The opportunity–solution tree (OST) skill. It maintains Teresa Torres's four-space tree
without inventing a new file silo: the whole tree is an overlay of two frontmatter keys —
node_type: and parent: — on artifacts that already exist. The visible tree,
docs/discovery/outcome-tree.md, is derived: regenerated from that overlay, never
hand-edited.
No new silo (load-bearing). There is no opportunities/ folder and no standalone
opportunity register file. An opportunity IS a Problem; a solution IS a Hypothesis.
Opportunities are captured entirely as node_type: opportunity frontmatter on existing
Problem files, plus the derived docs/discovery/outcome-tree.md board — never a separate
file this skill (or anything else) authors into.
The four spaces → two keys
| OST space | Which artifact holds it | node_type: |
parent: points at |
|---|---|---|---|
| Outcome | a ratified (status: active) row in docs/discovery/outcomes.md |
(the tree root) | — |
| Opportunity | a Problem in docs/discovery/problems/ |
opportunity |
the outcome anchor (docs/discovery/outcomes.md#<id>) |
| Solution | a Hypothesis in docs/discovery/hypotheses/ |
solution |
its Problem (must equal its parent_problem:) |
| Assumption test | an experiment / evidence file in docs/discovery/evidence/<kind>/ |
assumption-test |
the Hypothesis it tests |
node_type: problem on a Problem is accepted as a synonym for the opportunity space
(back-compatible with the base artifact convention); the skill may offer to normalize it to
opportunity, but never rewrites it silently.
What this skill reads (config, by name)
From .agents/profile.md and the project's docs/ — read for:
- What "this product" is — the product referent, so the tree is read against what the product is actually trying to move.
- The prune cadence — how often to offer a prune pass (stale opportunities with no live solution). Pruning is offered, never forced.
What ships with it
1 file 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.
- 12d ago First seen · 145 lines · 185 tokens per session scan A c9f0dca30b1f
opportunity-tree is a skill published in the GitHub repository arozumenko/sdlc-skills (20 stars, last pushed today), licensed MIT. It adds 185 tokens to every session and 2,322 once invoked, about $0.0009 per session on Opus 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-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…