Skip to content
Development
Skill

/sw-research

Deep outward-facing research. Investigates external documentation, APIs, industry patterns, and best practices. Produces validated research briefs.

From plugin
specwright
1023 skills9 agents18 commands

Claude Code

$ npx -y skills add Obsidian-Owl/specwright --skill sw-research --agent claude-code

SKILL.md

sw-research.SKILL.md
name: sw-research
description: >-
  Deep outward-facing research. Investigates external documentation, APIs,
  industry patterns, and best practices. Produces validated research briefs.
argument-hint: "[topic or question to research]"
allowed-tools:
  - Read
  - Write
  - Glob
  - Grep
  - Task

Specwright Research

Goal

Produce validated, referenced research briefs as input to the design phase. Focus is outward — external docs, APIs, SDKs, industry patterns. Output is facts and evidence, never design opinions. Operates fully autonomously — briefs are consumed by sw-design (which has its own gate).

Inputs

  • Research topic(s) from argument or conversation context
  • `{projectArtifactsRoot}/research/` — existing briefs (for deepening or refresh)
  • `{projectArtifactsRoot}/CHARTER.md` — technology vision (for relevance filtering)

Outputs

  • `{projectArtifactsRoot}/research/{topic-id}-{YYYYMMDD}.md` per `protocols/research.md`

Constraints

**Stage boundary (LOW freedom):** Reads and researches. NEVER writes code, branches, mutates workflow state, or produces design artifacts. No `currentWork`, no lock. Can run anytime. It is not a core workflow stage and never claims top-level work ownership.

**Triage (MEDIUM freedom):**

  • Break request into 1-5 tracks. Derive tracks from the argument + existing gaps.

Apply `protocols/decision.md` DISAMBIGUATION if topic is ambiguous.

  • Assign output shape per track (API contracts, pattern comparison, claim verification,

domain survey). If no topic provided, infer from recent conversation context.

**Research (HIGH freedom):** Delegate to `specwright-researcher` per `protocols/delegation.md`. One call per track. Parallel if Agent Teams available. Cite all sources with URLs. UNFETCHED → noted, not fabricated.

**Synthesis (MEDIUM freedom):** Merge findings. Score confidence: HIGH (official docs, multiple sources), MEDIUM (reputable secondary), LOW (single, unverified). Tag LOW/MEDIUM as potential assumptions. Flag open questions honestly.

**Auto-approval (MEDIUM freedom):** If all tracks have ≥MEDIUM confidence: auto-approve and persist the brief. Low-confidence tracks noted in the brief for consumer awareness. Briefs are consumed by sw-design which validates findings at its own gate.

**Persistence (LOW freedom):** Write to `{projectArtifactsRoot}/research/{topic-id}-{YYYYMMDD}.md`. Overwrite same topic+date. Max 10 briefs. If at cap: log warning, list by date, suggest cleanup. Briefs older than 90 days are STALE — warn when loading.

Protocol References

  • `protocols/decision.md` -- autonomous decision framework (DISAMBIGUATION, auto-approval)
  • `protocols/research.md` — brief format, staleness, lifecycle
  • `protocols/delegation.md` — agent delegation

Failure Modes

| Condition | Action | |-----------|--------| | No topic | Infer from conversation context. If undetermined, STOP. | | Researcher returns no findings | Note as "no results" for that track | | Source cannot be fetched | Mark UNFETCHED; do not fabricate | | All tracks LOW confidence | Persist with prominent warning. Consumer decides. | | Research directory at cap | Log warning, list briefs by date | | Compaction | Re-run from scratch |

Read more
@obsidian-owl
Ships withspecwright

Craft quality software with AI discipline. Spec-driven development plugin for Claude Code and Opencode — quality gates, adversarial testing, and evidence capture.

1023 skills9 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
10
Star history of Obsidian-Owl/specwright on GitHub, a chart by star-history.com

Other skills on specwright.

gate-build

gate-build

Runs configured build and test commands in tiered order. Captures output as evidence per tier. Returns PASS, FAIL, WARN, or SKIP…

gate-security

gate-security

Detects leaked secrets, injection patterns, and sensitive data exposure across changed files. Uses real tooling when configured,…

gate-semantic

gate-semantic

Tiered semantic analysis of changed code (rg → ast-grep → OpenGrep). Detects error-path bugs structural gates miss. Findings…

gate-spec

gate-spec

Maps every acceptance criterion from the spec to implementation evidence and test evidence. Criteria without evidence fail. The…

gate-tests

gate-tests

Audits test quality — assertion strength, boundary coverage, mock discipline, error path testing. Delegates to the tester agent…

gate-wiring

gate-wiring

Detects unused exports, orphaned files, architecture layer violations, and circular dependencies across changed files. Delegates…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about sw-research.

Which coding agents can use sw-research?
sw-research installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.