Skip to content

skills: add opposition-research (alias oppo); auto-ARDI standing rule - #120

Merged
d-morrison merged 6 commits into
mainfrom
claude/modest-keller-tnol74
Jun 22, 2026
Merged

skills: add opposition-research (alias oppo); auto-ARDI standing rule#120
d-morrison merged 6 commits into
mainfrom
claude/modest-keller-tnol74

Conversation

@d-morrison

@d-morrison d-morrison commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

What

Adds a new skill, opposition-research (short alias oppo), that examines a competitor product's community surfaces — issue trackers, feature-request boards (Canny/Featurebase/UserVoice), subreddits, Discourse/Discord, Stack Overflow tags, and review sites (G2/Capterra) — to surface features the community asks for and values. It ranks ideas by demand, maps each to one of our repos, checks we don't already have it, and (on your go-ahead) files them as tracking issues with the source threads linked as demand evidence.

Also records a standing preference in CLAUDE.md (see second commit) so I watch and ARDI every PR I open automatically, without asking first, across all repos.

Why a new skill, not an extension of scout-peers

scout-peers and opposition-research are mirror images, so they cross-link but don't merge:

  • scout-peers reads a competitor's code / repo to borrow license-checked implementations — learn how others built it.
  • opposition-research reads the competitor's users' discourse for demanded features, whether or not anyone built them yet — learn what to build.

Per skill-builder's "extend before you create" step, I searched the live skills and every remote branch first; nothing owns this and nothing was in flight.

Changes

  • skills/opposition-research/SKILL.md — canonical skill (when-it-fires, procedure, output format, relationships, anti-patterns).
  • skills/oppo/SKILL.md — thin alias stub, mirrors the canonical's allowed-tools.
  • skills/scout-peers/SKILL.md — added a reciprocal ## Relationship to other skills section pointing back at oppo (and deep-research / prefer-upstream).
  • CLAUDE.md — new section: watch + ARDI every PR automatically, without asking (standing yes across all PRs/repos). Added in response to a same-session request to stop asking.

Validation

  • scripts/validate-skills.py → all skills and manifests valid.
  • scripts/check-links.py → no broken relative links.

Closes #119

🤖 Generated with Claude Code

Add a skill that mines a competitor product's community surfaces — issue
trackers, feature-request boards, subreddits, forums, review sites — for
features its users ask for and value, then maps the on-scope ideas to our
repos and files them as tracked issues.

It studies what the rival's users want, not what the rival shipped, which is
the inverse of scout-peers (read competitor code to borrow implementations).
Cross-link both skills so the pair points at each other.

Closes #119

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmAN2oWrSXoyzesSmz1XwA
Copilot AI review requested due to automatic review settings June 22, 2026 00:05
@github-actions
github-actions Bot removed the request for review from Copilot June 22, 2026 00:05
@d-morrison
d-morrison requested a review from Copilot June 22, 2026 00:05
@claude

This comment has been minimized.

Comment thread skills/opposition-research/SKILL.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new demand-mining skill (opposition-research, alias oppo) to research competitor community surfaces for high-signal feature requests, map them to our repos, and (on user approval) file tracking issues—plus cross-linking with related skills.

Changes:

  • Added canonical skill skills/opposition-research/SKILL.md describing the oppo-research workflow, output format, relationships, and anti-patterns.
  • Added alias stub skills/oppo/SKILL.md redirecting to the canonical skill and mirroring its allowed-tools.
  • Updated skills/scout-peers/SKILL.md with a new “Relationship to other skills” section linking to oppo and other related workflows.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
skills/scout-peers/SKILL.md Adds relationship cross-links (notably to oppo), positioning scout-peers vs demand-mining.
skills/opposition-research/SKILL.md Introduces the canonical “oppo” demand-mining skill definition and procedure.
skills/oppo/SKILL.md Adds a thin alias skill that redirects to the canonical opposition-research.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread skills/opposition-research/SKILL.md
Comment thread skills/opposition-research/SKILL.md Outdated
Comment thread skills/opposition-research/SKILL.md Outdated
Comment thread skills/opposition-research/SKILL.md
Comment thread skills/scout-peers/SKILL.md
Record a standing preference: when I open or am handed a PR/MR in any repo,
subscribe to its activity and run the ARDI loop to clean without first asking
"should I watch / iterate this?". Treat that as a standing yes across all PRs
and repos; still escalate ambiguous, significant, or deadlocked items.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmAN2oWrSXoyzesSmz1XwA
@claude

This comment has been minimized.

@d-morrison d-morrison changed the title skills: add opposition-research (alias oppo) skills: add opposition-research (alias oppo); auto-ARDI standing rule Jun 22, 2026
@d-morrison

Copy link
Copy Markdown
Collaborator Author

@claude rview

@github-actions

Copy link
Copy Markdown
Contributor

👀 Picked up by workflow run #27929685060. Setup runs first; Claude itself responds after that.

@claude

This comment has been minimized.

…cope

Address reviewer findings from Copilot and @claude:
- Fix "(see §6)" → "(see Anti-patterns)" — §6 is about dedup/rank, not scraping
- Clarify description invocation: "/opposition-research or the alias /oppo"
- Narrow Discord/Slack bullet to publicly archived channels only; note gated
  channels should be skipped (avoids conflict with the Anti-patterns section)

Rebut (not fixing): deep-research cross-references in both opposition-research
and scout-peers SKILL.md are valid — deep-research is a real platform-level
skill available to users, just not stored in this repo's skills/ directory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment thread skills/opposition-research/SKILL.md Outdated
@claude

claude Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

ARD on Copilot + @claude review findings:

Addressed:

  • `(see §6)` stale cross-reference (both @claude and Copilot flagged this): Changed to `(see Anti-patterns)` — §6 covers dedup/rank/map, not scraping guidance.
  • Invocation wording in frontmatter (Copilot): Description said "Invoke explicitly with /oppo" — updated to "Invoke with /opposition-research or the alias /oppo" so users know the canonical name works too.
  • Discord/Slack access scope (Copilot): "public Discord/Slack channels" is misleading because most Discord/Slack requires an invite or login. Narrowed to "publicly archived Discord channels (read without login)" and added explicit note to skip gated channels.

Rebutted:

  • `deep-research` cross-references (Copilot, both files): `deep-research` is a real, user-invocable skill — it appears in the Claude Code skill registry as a platform-level skill, just not stored in this repo's `skills/` directory. The cross-references are accurate and useful.

Comment thread skills/opposition-research/SKILL.md Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Three findings addressed, one rebutted, commit pushed. The ARDI iteration will fire a fresh review against the updated diff. The deep-research references in both SKILL.md files are correct — that skill exists at the platform level but isn't stored in this repo's skills/ directory.

— posted by @claude post-step from workflow run

Comment thread skills/opposition-research/SKILL.md Outdated
Comment thread CLAUDE.md Outdated
Comment thread skills/opposition-research/SKILL.md
Comment thread skills/scout-peers/SKILL.md
The auto-ARDI section referenced the tool as `mcp__github__subscribe_pr_activity`,
which doesn't match how the rest of the repo names it. `memories/preferences.md`
and the harness docs use the bare `subscribe_pr_activity`. Switch to the bare
name and note that the GitHub MCP server provides it in remote/web sessions, so
the reference reads as real rather than a stray prefixed token.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmAN2oWrSXoyzesSmz1XwA
@claude

This comment has been minimized.

The section body says "When you open (or are handed) a PR/MR", and the adjacent
heading already uses "PRs you touch". Match the heading to that broader scope so
a reader scanning headings sees it covers handed-off PRs, not just ones I file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmAN2oWrSXoyzesSmz1XwA

Copy link
Copy Markdown
Collaborator Author

Residual nit addressed in ade35e8 — the section heading now reads "Watch and ARDI every PR you touch", matching the body ("open or are handed") and the adjacent "PRs you touch" heading.

That clears the last item from the review: all four round-1 findings are fixed, the deep-research rebuttal stands, and every inline thread is resolved. Re-running the review against the current diff; expecting fully clean.


Generated by Claude Code

@claude

claude Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Claude finished @d-morrison's task in 3m 6s —— View job


Code Review

  • Gather context
  • Read changed files (current state after all ARD iterations)
  • Review for correctness, hallucinations, and issues
  • Post findings

Verdict: Fully clean

Every prior finding is confirmed fixed. The residual nit (heading wording) is resolved. No new issues found.

Status of all prior findings:

# File Finding Status
1 skills/opposition-research/SKILL.md:3 Frontmatter said "Invoke with /oppo" (wrong for canonical) ✅ Fixed — now "Invoke with /opposition-research or the alias /oppo"
2 skills/opposition-research/SKILL.md:72 "Public Discord/Slack channels" contradicts anti-scraping rule ✅ Fixed — "publicly archived Discord channels (read without login); skip gated Discord/Slack"
3 skills/opposition-research/SKILL.md:92 (see §6) stale cross-reference ✅ Fixed — now "(see Anti-patterns)"
4 CLAUDE.md mcp__github__subscribe_pr_activity — hallucinated prefix ✅ Fixed — bare subscribe_pr_activity with parenthetical naming the GitHub MCP server
5 skills/opposition-research/SKILL.md:156, skills/scout-peers/SKILL.md:164 deep-research cross-references — flagged as non-existent ✅ Rebuttal stands — confirmed present in global skill registry
6 CLAUDE.md heading "Watch and ARDI every PR you open" narrower than body ("or are handed") ✅ Fixed — heading now reads "Watch and ARDI every PR you touch — don't ask first"

Verification checks:

  • All tool names in allowed-tools frontmatter are valid Claude Code tools.
  • All cross-skill references (st, defer-issue, memorize, prefer-upstream, deep-research, scout-peers) are confirmed present in the skill registry.
  • API/service references (GitHub reactions API, Reddit .json endpoints, Stack Exchange API, Canny, Featurebase, G2, Capterra) are real and correctly described.
  • All internal §N cross-references within opposition-research/SKILL.md (e.g. "scope line from §1" in steps 3 and 4) point to the correct numbered subsections.
  • Alias stub structure matches the established repo pattern (adr, ai-tells, etc.) exactly.
  • No AI tells cluster detected in the skill prose (no "delve", "leverage", "tapestry", "it's not just X, it's Y" constructions, or mechanical bold-bullet overuse).

@d-morrison
d-morrison merged commit 469f728 into main Jun 22, 2026
3 checks passed
@d-morrison
d-morrison deleted the claude/modest-keller-tnol74 branch June 22, 2026 04:45
d-morrison added a commit that referenced this pull request Jun 22, 2026
ums: bank lessons from the opposition-research PR (#120)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add opposition-research skill (alias oppo) — mine a competitor's community pages for demanded features

3 participants