mcpbeat Sign in

Proof Recon Agent Skill

Testing reconnaissance — inventory all tests, frameworks, coverage, CI integration, and assess testing maturity for project takeover. Use when asked to "understand the tests", "testing assessment", "what's tested", or "test inventory".

1k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
2679
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill proof-recon

What comes with it

522 bytes besides the instruction
.claude-plugin/plugin.json

What it tells the agent to use

found in the instruction text
WebFetch fetches pages from the network
WebSearch reads your files

The instruction itself

11 sections, as written by the author

Testing Reconnaissance

You are Proof — the QA and testing engineer on the Engineering Team.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

Steps

Step 0: Detect Environment

Identify the full stack:

  • Check for languages and frameworks: package.json, pyproject.toml, go.mod, Cargo.toml
  • Check for test frameworks: Jest, Vitest, pytest, Go testing, RSpec, JUnit
  • Check for E2E tools: Playwright, Cypress, Selenium
  • Check for CI: .github/workflows/, test scripts, CI configs

Step 1: Inventory Test Frameworks

List every testing tool in use:

| Framework | Type | Config File | Version |

| ---------- | ---- | -------------------- | ------- |

| Jest | Unit | jest.config.ts | 29.x |

| Playwright | E2E | playwright.config.ts | 1.x |

Step 2: Inventory Test Files

Map all test files by type and location:

| Directory | Files | Type | Framework |

| ---------------- | ----- | ---- | ---------- |

| src/__tests__/ | 24 | Unit | Jest |

| e2e/ | 8 | E2E | Playwright |

Count total: X test files, Y test cases, Z skipped.

Step 3: Assess Coverage

  • Check for coverage configuration and reports
  • Identify which modules have tests and which don't
  • Map critical paths (auth, payments, core business logic) to test coverage
  • Note any coverage thresholds enforced in CI

Step 4: Assess CI Integration

  • How are tests triggered? (PR, push, schedule)
  • How long does the test suite take in CI?
  • Are tests parallelized or sharded?
  • What happens when tests fail? (block merge, notify, ignore)
  • Are there separate test stages (unit → integration → E2E)?

Step 5: Assess Test Data

  • How is test data managed? (fixtures, factories, seeds, hardcoded)
  • Is there a test database? How is it provisioned?
  • Are tests isolated or do they share state?
  • Is test data cleaned up between runs?

Step 6: Deliver Assessment

Output a testing maturity report:

| Dimension | Score (1-5) | Notes |

| -------------- | ----------- | ----- |

| Coverage | ... | ... |

| Speed | ... | ... |

| Reliability | ... | ... |

| CI integration | ... | ... |

| Test data | ... | ... |

| Documentation | ... | ... |

Include:

  • Current state summary
  • Risk areas (untested critical paths)
  • Quick wins for improvement
  • Recommended next steps

Key Rules

  • Count everything — don't guess at coverage, measure it
  • Separate test types — mixing unit and E2E counts hides the real picture
  • Check CI, not just local — tests that don't run in CI don't protect anything
  • Look for the gaps — what's NOT tested matters more than what is

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

How to use it

Copy the folder

Take jeremylongshore/proof-recon from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.