用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Morrison-Lab/ai-config --skill opposition-research命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | opposition-research |
| description | Mine competitor community demand. |
| user-invocable | true |
| allowed-tools | ["WebSearch","WebFetch","Agent","Bash","Read","Write","Edit","Glob","Grep"] |
Study what a rival product's users are asking for — not what the rival shipped — and turn the highest-demand, on-scope ideas into tracked issues in our repos. The signal is community demand: feature requests, upvoted wishes, and recurring "why can't it do X" complaints across the competitor's public community surfaces.
This is a demand-mining loop, not a copy job. The output is a ranked, evidence-backed list of features the community values, each mapped to one of our repos, plus (on the user's go-ahead) the filed issues.
/oppo, "opposition research", "do oppo research on <product>",
"what features does <product>'s community want", "mine <product>'s
issues / subreddit / forum for ideas", "what are users asking
<competitor> for", "competitor feature research", "what do users wish
<product> had".Pin two things before searching. If the user didn't give them, infer from the current repo and confirm:
Write a one-line scope statement: what the competitor is, which of our repo(s) it overlaps with, and what counts as on-scope for us. Every idea is later kept or dropped against this line, so make it concrete.
Use WebSearch (3–5 queries from different angles) to find where the
competitor's users actually talk. Look for:
label:enhancement /
feature-request).Spawn subagents (the Agent tool) — one per surface or small bucket of
surfaces — so the reads run concurrently. Give each the same scope line from
§1 plus this fixed reporting contract:
Prefer official read-only APIs over scraping (see Anti-patterns): the GitHub
issues API sorted by reactions, the Reddit .json endpoints, the Stack
Exchange API.
Note reddit.com specifically is blocked for WebFetch, WebSearch, and curl in
local sessions --- cover Reddit surfaces from the main session via the
Claude-in-Chrome route in memories/reddit-access.md.
Drop two kinds of items:
Keep feature requests and the unmet needs behind recurring bug complaints. Skip the competitor's ordinary bug backlog — that's their defect list, not a demand signal for us.
Merge the agents' findings, collapse duplicate ideas, and rank by demand ÷ effort (best bang-for-buck first). For each survivor record:
Present the ranked list and ask which items to file — don't open a flood of
issues unprompted. For each greenlit idea, file a tracking issue in the right
repo (issue-first; hand off to st / defer-issue). In the issue body,
link the source threads as demand evidence and state the need in our own
words. Restate it as our requirement; do not paste the competitor's proprietary
copy, screenshots, or roadmap text.
Step 3 already fans out --- one agent per community surface (issue tracker,
feature board, subreddit, Q&A site, forum, review site), each blind to the
others, and the work is web reading with no shared-runner cost. That is the
workflow-shaped pattern in shared/workflow/when-to-orchestrate.md. When the
surfaces are many or the ask says "thorough", drive that fan-out through a
Workflow: parallel finders by surface, then the dedupe-and-rank synthesis stage
(step 6). Launch directly when an opt-in signal is present; otherwise propose with
a cost estimate first.
Step 3's fan-out workers have no need for Edit, Write, or Bash access.
Spawn the community-demand-scout custom agent
(.claude/agents/community-demand-scout.md) for each surface instead of a
general-purpose subagent, for a hard, harness-enforced guarantee that no
worker can file an issue or commit on its own --- rather than relying on
this skill's own instruction-only discipline. Dedupe, rank, and file issues
(§6--7) in the main session afterward.
scout-peers — the sibling, mirror image. scout-peers reads a
competitor's code / repo to borrow license-checked implementations;
opposition-research reads its users' discourse for demanded features,
regardless of whether anyone built them yet. Run oppo to learn what to
build, then scout-peers to learn how others built it.deep-research — the general multi-source, fact-checked web-research
harness. oppo is the focused specialization: demand-mining a named
competitor's community to produce repo issues.st / gi / defer-issue — oppo's output feeds these. Each greenlit
idea becomes a tracked issue (issue-first), then gets picked up as normal
work.memorize — when oppo identifies a competitor worth watching over
time, record it so future runs start from a known target list.scout-peers' job, not this one.