Agent skill · Security

gap-analysis

Performs a gap analysis between two artifacts (a current state and a desired state) and produces a plain-language, stakeholder-readable report indexed by stable gap IDs. Use when the user wants to compare, evaluate, audit, or reconcile one artifact against another. Does not investigate runtime bugs — use investigate. Does not assess module-level architecture — use architectural-analysis. Does not research open-ended options with no second artifact to compare against — use research.

testdoublegithub.com/testdoubleGitHub ↗
claude-codecan modify filesMIT
Install
npx skills add testdouble/han --skill gap-analysis --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 32 KB
Bundled scripts: none
Allowed tools: ReadWriteGlobGrepAgentBash(find*)Bash(git*)
Path: han-research/skills/gap-analysis/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 154
Language: Shell

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

  • Performs a gap analysis between two artifacts (a current state and a desired state) and produces a plain-language, stakeholder-readable report indexed by stable gap IDs. Use when the user wants to compare, evaluate, audit, or reconcile one artifact against another. Does not investigate runtime bugs — use investigate. Does not assess module-level architecture — use architectural-analysis. Does not research open-ended options with no second artifact to compare against — use research.

How it works

  • The skill delegates the primary analysis to the han-core:gap-analyzer agent, which is invoked once to read the analyzer's full output file. It then synthesizes a stakeholder-readable report from the gap data, ensuring Gap IDs map from GAP-NNN to G-NNN and that sections align with the report template.
  • It ensures plain language in Sections 1 and 2, with technical details reserved to Section 3 only if explicitly requested by the user. It treats evidence according to the project’s evidence rules and surfaces artifact-level caveats once per report when applicable. It presents neutral gap lists, with optional “Where to start” guidance if a purpose is stated.
  • The swarm model uses a predefined composition and may include optional agents (e.g., evidence-based investigator, plan synthesizer) depending on size and signals from the gap analysis output.

When to use it

  • Use when comparing a current state artifact against a desired state artifact to identify, document, and communicate gaps.

What it can touch

  • It interfaces with the han-core:gap-analyzer to obtain gap data and then writes a structured report to the project’s documentation root or a configured output path. The process preserves stable gap IDs and cross-references across sections using the same IDs. It relies on the provided report template to format the final output.

Caveats

  • The skill does not investigate runtime bugs or assess module-level architecture directly. It does not research open-ended options without a second artifact to compare against. The report follows the defined template and readability guidance and preserves gap ID consistency across the report.
From the SKILL.md

## Project Context - CLAUDE.md: !`find . -maxdepth 1 -name "CLAUDE.md" -type f` - project-discovery.md: !`find . -maxdepth 3 -name "project-discovery.md" -type f` - personal config directory: !`echo "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"` - project .han/config.md: !`cat .han/config.md 2>/dev/null || echo ""` As your first action, use the Read tool on `.han/config.md` inside the `personal config directory` path above. A read that returns no file is no personal configuration: continue silently. When that file or the `project .han/config.md` probe supplies content, apply it per [config-rule.md](../../references/config-rule.md), which governs precedence between the two files, relative-path resolution, and what to do with a file that reads but cannot be used. ## Operating Principles - **The `han-core:gap-analyzer` agent owns the primary analysis.** This skill does not classify gaps itself. It calls `han-core:gap-analyzer` once, reads the analyzer's full output file, and synthesizes a stakeholder-readable report from it. - **Plain language is the default surface.** Sections 1 and 2 of the report never contain file paths, line numbers, function or class names, library mechanics, or languag

What's inside
Steps it walks through
  1. Project Context
  2. Operating Principles
  3. Step 1: Identify Inputs and Project Context
  4. Step 2: Run the han-core:gap-analyzer Agent
  5. Step 3: Classify Size and Build the Swarm
  6. Step 4: Confirm Swarm and Technical-Detail Modes
  7. Step 5: Run the Swarm (unless opted out)
  8. Step 5.5: Conditional Second Round
  9. Step 5.6: Plan-Synthesizer Consolidation (medium and large only)
  10. Step 6: Synthesize the Report
  11. Step 6.5: Readability Rewrite and Self-Check
  12. Step 7: Present the Report
Ships with 1 file
  • references/gap-analysis-report-template.md
More from han
All skills →
About this skill
What does the gap-analysis skill do?

Performs a gap analysis between two artifacts (a current state and a desired state) and produces a plain-language, stakeholder-readable report indexed by stable gap IDs. Use when the user wants to compare, evaluate, audit, or reconcile one artifact against another. Does not investigate runtime bugs — use investigate. Does not assess module-level architecture — use architectural-analysis. Does not research open-ended options with no second artifact to compare against — use research.

How do I install it?

Run `npx skills add testdouble/han --skill gap-analysis --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From testdouble/han, a repository with 154 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going