core/skills/sw-research/SKILL.md
Deep outward-facing research. Investigates external documentation, APIs, industry patterns, and best practices. Produces validated research briefs.
npx skillsauth add obsidian-owl/specwright sw-researchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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).
{projectArtifactsRoot}/research/ — existing briefs (for deepening or refresh){projectArtifactsRoot}/CHARTER.md — technology vision (for relevance filtering){projectArtifactsRoot}/research/{topic-id}-{YYYYMMDD}.md per protocols/research.mdStage 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):
protocols/decision.md DISAMBIGUATION if topic is ambiguous.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.
protocols/decision.md -- autonomous decision framework (DISAMBIGUATION, auto-approval)protocols/research.md — brief format, staleness, lifecycleprotocols/delegation.md — agent delegation| 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 |
testing
Explicitly adopt an existing work into the current worktree after validating live ownership, stale sessions, and branch consistency.
testing
Orchestrates quality gates for the current work unit. Runs enabled gates in dependency order, produces an aggregate evidence report with gate handoff.
tools
Syncs the local repository by fetching all remotes, updating the base branch, and removing stale local branches that are not protected by live sessions or helper worktrees.
data-ai
Shows current Specwright state for this worktree, the attached work, repo-wide active works, gate results, and lock status. Supports --reset, --cleanup, and --repair {unitId}.