software-research
Use when someone asks to research a software-engineering question through a verified, multi-perspective lens — "should we use X vs Y", "evaluate…
Skill by bmad-labs
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/bmad-labs-software-research
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, frontend, backend, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/software-research
What's inside
- Skill name
software-research- Description
- Use when someone asks to research a software-engineering question through a verified, multi-perspective lens — "should we use X vs Y", "evaluate library/framework/database Z", "research whether we should adopt …", "write an ADR for …", "spike on …", or "migrate from X to Y / upgrade path". Runs a STORM-style pipeline specialized for software: auto-detects one of five research modes (library-eval, deep-research, architecture, spike, migration), spawns that mode's expert lenses in parallel, maps their contradictions, synthesizes an HTML briefing and a Markdown/ADR record, then adversarially verifies every claim against PRIMARY software sources (official docs, RFCs, GitHub releases, OSV/CVE, OpenSSF Scorecard, benchmarks) with version-awareness. Best for decisions where multiple viewpoints and version-correct, fact-checked claims matter; overkill for a quick API lookup. For non-software topics use deep-research; for a pure scored decision matrix use trade-off-analysis.
- License
- MIT
- Instructions
- 242 lines in SKILL.md · view on GitHub
Files (59)
- SKILL.md
- adr-template.md · assets/
- briefing-template.html · assets/
- README.md · assets/widgets/
- annotated-diagram.html · assets/widgets/
- before-after-architecture.html · assets/widgets/
- c4-container-view.html · assets/widgets/
- callout.html · assets/widgets/
- capacity-scaling-curve.html · assets/widgets/
- code-compare.html · assets/widgets/
- comparison-matrix.html · assets/widgets/
- cost-projection-lines.html · assets/widgets/
- cost-tco-breakdown.html · assets/widgets/
- cost-treemap.html · assets/widgets/
- decision-tree.html · assets/widgets/
- deployment-pipeline.html · assets/widgets/
- diff-block.html · assets/widgets/
- donut-gauge.html · assets/widgets/
- error-budget-gauge.html · assets/widgets/
- escalation-ladder.html · assets/widgets/
- evidence-confidence.html · assets/widgets/
- kpi-row.html · assets/widgets/
- maturity-radar-rings.html · assets/widgets/
- metric-bars.html · assets/widgets/
- migration-checklist.html · assets/widgets/
- okr-alignment-tree.html · assets/widgets/
- org-chart-tree.html · assets/widgets/
- ownership-map.html · assets/widgets/
- phasing-roadmap.html · assets/widgets/
- quadrant-plot.html · assets/widgets/
- quality-attribute-tree.html · assets/widgets/
- raci-matrix.html · assets/widgets/
- radar-scores.html · assets/widgets/
- rag-status-board.html · assets/widgets/
- range-bar.html · assets/widgets/
- region-az-topology.html · assets/widgets/
- rice-score-table.html · assets/widgets/
- risk-heatmap.html · assets/widgets/
- rollout-bar.html · assets/widgets/
- sequence-flow.html · assets/widgets/
- severity-summary.html · assets/widgets/
- skills-heatmap.html · assets/widgets/
- slider-metric.html · assets/widgets/
- spotify-model-grid.html · assets/widgets/
- state-machine.html · assets/widgets/
- status-badge.html · assets/widgets/
- team-topologies-map.html · assets/widgets/
- timeline.html · assets/widgets/
- verdict-card.html · assets/widgets/
- weighted-decision-matrix.html · assets/widgets/
- modes.csv · data/
- evals.json · evals/
- architecture.md · references/modes/
- deep-research.md · references/modes/
- library-eval.md · references/modes/
- migration.md · references/modes/
- spike.md · references/modes/
- report-structure.md · references/
- source-hierarchy.md · references/
SKILL.md (first lines)
# Software Research
## What this does
Turns one software-engineering question into a verified, multi-perspective
deliverable. It picks a research mode, simulates that mode's expert lenses,
maps where they contradict, synthesizes an HTML briefing plus a Markdown or ADR
record, then adversarially verifies every claim against its primary source —
version-aware — before delivering. Run the full pipeline; do not shortcut a phase.
## Portability
Self-contained. Built-in tools only (`Agent` general-purpose, `Write`, web
search/fetch inside agents) plus the files in this folder. Drop the folder into
any `.claude/skills/` directory and it works.
## Phase 0: Scope & detect the mode
1. If `$ARGUMENTS` has the question, use it; else ask what to research.
2. Read `data/modes.csv`. Match the question against each row's `signals`
(semicolon-delimited cues). Pick the best-matching `mode_id`.
- If two+ modes match with similar confidence, **ask the user which mode**
(offer the matching modes + one-line descriptions). Otherwise proceed.
- If nothing matches, use `deep-research` (the fallback).
3. State the chosen mode + your one-line interpretation of the question. The
user may override the mode.
4. Identify the **reader role** (developer / tech-lead / architect) from context;
default `tech-lead`.
5. Derive a kebab-case `topic-slug` for filenames.
6. **Gate 1 — confirm scope (one pause).** Show a compact block and wait for the
user to confirm or redirect before spawning any agents:
```
Mode: <mode_id> — <one-line why this mode>
Question: <your one-line interpretation>
Reader: <developer | tech-lead | architect>
Lenses: <the N lens names about to run in parallel>
Outputs: <primary + secondary format, e.g. HTML briefing + MD>
Then: adversarial verification against primary sources.
Proceed? (or correct the mode / scope)
```
This is the one place to catch a wrong mode or misread scope cheaply — before
spending ~9-12 agents. Once confirmed, run Phases 1–3 autonomously (no more
pauses until Gate 2).
## Phase 1: Parallel expert lenses
Open `references/modes/{mode_id}.md` — it contains the exact lens prompts for
this mode. Spawn that mode's lenses as **`general-purpose` agents in a single
message** so they run concurrently. Give every agent the SAME question frame plus:
- its lens prompt (from the mode file),
- the source hierarchy + verification expectations from
`references/source-hierarchy.md` (paste the tier list + all 7 rules — including
Rule 7: load-bearing claims must resolve to Tier 1–3, never a blog/Q&A),
- the instruction to return EXACTLY: (1) CORE POSITION in 2 sentences;
(2) STRONGEST EVIDENCE, 3-5 bullets, each with a concrete data point + a
**primary-source URL** and **the version/date the claim applies to**;
(3) THE ONE THING only this lens would say. Under 400 words. Real fetched
sources only — no invented studies, numbers, or URLs.
As each lens returns, append its brief to a working scratch file
`software-research-reports/{topic-slug}.work.md` (create it now) under a
`## Lens: <name>` heading. Writing briefs as they land means a crash mid-run
loses nothing — the run is resumable from what's already on disk. Set the
run-state block at the top of that file: `stepsCompleted: [0, 1]`.
When all return, post a 2-3 line note in chat: convergence + sharpest
disagreement. Keep raw briefs out of chat.
❌ **Common failures here:**
- Citing a blog / SO answer / model memory *as proof* instead of climbing to the
primary source behind it (Rule 3 + Rule 7). The blog locates the fact; the
primary *is* the fact.
- Presenting an unversioned claim as current — "X does Y" with no version is
unverified (Rule 1).
- Letting one loud lens set the narrative before the others return; wait for all N.
## Phase 2: Map the contradictions (inline, no agents)
From the briefs only, determine:
1. **Direct conflicts** — name the specific clashing claims.
2. **Strongest vs weakest evidence** — rank by source tier (Tier 1 primary/spec >
Tier 2 security/aggregator > Tier 3 registry > Tier 4 benchmark > Tier 5 survey).
3. **The resolving question** — the single empirical test that settles the biggest conflict.
4. **Universal agreement** — what every lens confirms (load-bearing finding).
5. **The blind spot** — what NO lens addressed (missing 6th lens → frontier question).
Append this map to the scratch file under `## Contradiction map` and bump the
run-state to `stepsCompleted: [0, 1, 2]`. The map is the raw material for the
synthesis; not a separate deliverable.
## Phase 3: Synthesize the output(s)
Read the mode's `primary_output` and `secondary_output` from `data/modes.csv`.
**Before writing any output, load `references/report-structure.md`.** It defines the
**concreteness contract** (specific > generic: exact versions, real commands/config/
code, real numbers, tied to THE READER's stack — and a ban list of filler phrases) and
the **12-section deep spine**. Detail is not optional padding: a report earns its length
by being practical and about the reader's situation, not a survey of the topic.
- For `html`: clone `assets/briefing-template.html`; do not rebuild the CSS.
Fill every `{{TOKEN}}`. It has two layers: (a) the **fast-scan layer** up top —
verdict scoreboard, key findings, and (for option-comparison modes) the Side-by-Side
table — so the answer lands in five seconds; then (b) the **12-section deep body**
(sections 06–16) that carries the full spine. Fill the deep sections per the
concreteness contract; render comparisons/numbers/flows with widgets, not prose.
- For `md`: the full **12-section spine** from `references/report-structure.md` —
introduction/methodology, landscape, implementation how-to, stack, integration,
performance, security, recommendation, roadmap, risks, methodology, and a closing
References appendix. This is the detailed report; make each section concrete. In the
References appendix every source is a clickable `[title — version/date](url)` Markdown
link (never a bare URL in a table cell — those don't reliably render as links).
- For `adr`: clone `assets/adr-template.md`; fill the MADR sections (Context,
Decision Drivers, Considered Options, Decision Outcome, Consequences, Pros/Cons
per option, More Information) and the closing **References** section. Document
rejected options + why. The ADR stays a lean decision record — no 12-section spine —
but the concreteness contract still applies (name versions, cite specifics).
**Write for a busy engineer, not a journal.** Short sentences, plain words, leadFrom bmad-labs/skills, MIT.
More from bmad-labs/skills
- 0.647score
to-markdown
bmad-labs
Use when converting a PDF, scanned document, slide deck, or DOCX into Markdown that must stay faithful to the source — a paper, thesis, standard, datasheet…
SkillAFreshness: A★ 18Claude Code +9 - 0.647score
to-wiki
bmad-labs
Use when turning a transcribed source — a thesis, paper, standard, manual, or a folder of Markdown chapters under docs/references — into a Karpathy-style LLM…
SkillAFreshness: A★ 18Claude Code +9 - 0.647score
create-intent
bmad-labs
Use when turning Jira stories, tickets, or raw requirement notes into business intent documents (intent, functional and non-functional requirements, open…
SkillAFreshness: A★ 18Claude Code +9 - 0.622score
architecture-design
bmad-labs
Use when the user asks for a design package, designs folder, detailed design, solution design, or contracts of a system or service before it is built — C4…
SkillAFreshness: A★ 18Claude Code +9 - 0.607score
manual-testing
bmad-labs
Use when writing, reviewing, executing, or updating manual test cases or a test plan; when asked 'how should I test this'; when restructuring an existing test…
SkillBFreshness: B★ 18Claude Code +9 - 0.607score
jira-to-local
bmad-labs
Use when the user wants Jira issues pulled onto disk as local files — "pull PROJ-123", "fetch this story", "get that ticket locally", "download the bug"…
SkillBFreshness: B★ 18Claude Code +9 - 0.603score
typescript-clean-code
bmad-labs
Clean Code for TypeScript — code smell catalogs (Martin's per-line heuristics, Fowler's change-shape smells, TypeScript-native type smells), a linter-first…
SkillBFreshness: B★ 18Claude Code +9 - 0.603score
slide-maker
bmad-labs
Make impressive, on-brand presentation slides and decks end-to-end, for ANY design system.
SkillBFreshness: B★ 18Claude Code +9 - 0.557score
typescript-unit-testing
bmad-labs
Unit testing for TypeScript/NestJS projects using Jest, @golevelup/ts-jest (DeepMocked/createMock), and in-memory databases, with AAA structure.
SkillCFreshness: C★ 18Claude Code +9 - 0.557score
rca-report
bmad-labs
Use when investigating and documenting a production incident, outage, data corruption event, or post-mortem — guides evidence collection during the…
SkillCFreshness: C★ 18Claude Code +9 - 0.557score
typescript-e2e-testing
bmad-labs
E2E and integration testing for TypeScript/NestJS projects using Jest, supertest, and real infrastructure via Docker (Kafka, PostgreSQL, MongoDB, Redis) with…
SkillCFreshness: C★ 18Claude Code +9 - 0.553score
architecture-viz-studio
bmad-labs
Build high-quality, animated, professional web pages that VISUALIZE software architecture, system design, data models, or a product idea — using Three.js (3D)…
SkillCFreshness: C★ 18Claude Code +9
Signals
- Stars
- 18
- Forks
- 4
- Open issues
- 0
- Last commit (this folder)
- Jul 2, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/bmad-labs/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from bmad-labs
- 0.647score
to-wiki
bmad-labs
Use when turning a transcribed source — a thesis, paper, standard, manual, or a folder of Markdown chapters under docs/references — into a Karpathy-style LLM…
SkillAFreshness: A★ 18Claude Code +9 - 0.647score
to-markdown
bmad-labs
Use when converting a PDF, scanned document, slide deck, or DOCX into Markdown that must stay faithful to the source — a paper, thesis, standard, datasheet…
SkillAFreshness: A★ 18Claude Code +9 - 0.647score
create-intent
bmad-labs
Use when turning Jira stories, tickets, or raw requirement notes into business intent documents (intent, functional and non-functional requirements, open…
SkillAFreshness: A★ 18Claude Code +9 - 0.622score
architecture-design
bmad-labs
Use when the user asks for a design package, designs folder, detailed design, solution design, or contracts of a system or service before it is built — C4…
SkillAFreshness: A★ 18Claude Code +9 - 0.607score
manual-testing
bmad-labs
Use when writing, reviewing, executing, or updating manual test cases or a test plan; when asked 'how should I test this'; when restructuring an existing test…
SkillBFreshness: B★ 18Claude Code +9 - 0.607score
jira-to-local
bmad-labs
Use when the user wants Jira issues pulled onto disk as local files — "pull PROJ-123", "fetch this story", "get that ticket locally", "download the bug"…
SkillBFreshness: B★ 18Claude Code +9
Cite this page
software-research skill. Agent Mart. https://agentmart.dev/skills/bmad-labs-software-research (last updated 2026-10-24)