agentleFS
catcatcatstudiocatcatcatstudio/cat-skills/.cursor/skills/recon/SKILL.md

recon

Skill3 starsChanged 3 months agoMITView on GitHub

Pre-build decision intelligence. Produces opinionated decision brief — the senior- consultant week-1 output before scope, stack, or approach are locked. Surfaces traps and edges, calibrated to project scope (prototype vs production vs enterprise). Use when user says '/recon', 'what to watch out for building X', 'where's the edge', 'common mistakes with X', starts a new project, or hits domain uncertainty mid-build. NOT for: debugging, single-API research, URL extraction (/eat), or post-build optimization (/fortify).

27 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use reporting, osint and 3 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • GitHubSkill

    reporting

    Report formatting guidelines for gh-aw workflows (header levels, collapsible details, run-ID links)

    Also in 3 projects that use this

  • JosBen74Skill

    osint

    OSINT-sökning och informationsinhämtning från öppna källor för Länsstyrelsen VG

    Also in 4 projects that use this

  • samklee1Skill

    web-pentest

    Orchestrates authorized web app pentesting on Kali Linux using Opus sub-agents with difficulty-aware planning (TDA/EGATS), browser-first exploration, iterative verification, two-layer review (per-sub-agent + phase-level), optional cross-model gap audit (GPT/codex via codex-plugin-cc), and enforced KB updates. Trigger on: pentesting, penetration testing, web app security assessment, vulnerability assessment, OWASP testing, PTES, attack surface mapping, API security testing, pentest reporting, or 'help me test this app'. NOT for network-only pentesting, malware analysis, reverse engineering, or CTFs.

    Also in 3 projects that use this

  • SentrySkill

    create-pr

    Create pull requests following Sentry conventions. Use when opening PRs, writing PR descriptions, or preparing changes for review. Follows Sentry's code review guidelines.

    Also in 3 projects that use this

  • NVIDIASkill

    research

    Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. 0 are common, 16 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 16

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Scope calibration — mandatory: Before any research, lock these down.

    line 42
  2. Distinctive:

    If any of these are unclear from context, ask ONE question to lock them:

    line 49
  3. Distinctive:

    Calibrate depth: If the user signals domain expertise ("I've built 3 of these"), focus on what's changed recently and what's non-obvious.

    line 55
  4. Distinctive:

    Before any research, identify two lenses.

    line 61
  5. Distinctive:

    Use multiple sources. Every finding must be traceable to a source.

    line 106
  6. Distinctive:

    Don't accept mediocre results.

    line 128
  7. Distinctive:

    Prefer primary sources over secondary:

    line 142
  8. Distinctive:

    If after 2-3 searches on a topic you're only finding category 7 sources, flag it — either the domain is too niche for web research, or the …

    line 152
  9. Distinctive:

    Enterprise scope: All categories including security, compliance, anti-patterns.

    line 162
  10. Very specific:

    Inference is hypothesis, not finding: Every claim in the brief needs a source.

    line 167
  11. Distinctive:

    Non-obvious findings: If either bank has fewer than 2 non-obvious findings, say so.

    line 174
  12. Distinctive:

    Diminishing returns: If 3 consecutive queries produce nothing new, move on.

    line 175
  13. Very specific:

    Every claim sourced or labeled [Hypothesis]: No invented worries, no manufactured edges.

    line 223
  14. Distinctive:

    Same project, new angle: keep existing brief, amend with new findings.

    line 231
  15. Distinctive:

    Different project: ask before overwriting.

    line 232
  16. Very specific:

    After writing the brief, check if _docs/ is in .gitignore.

    line 237
  17. Distinctive:

    If the user wants to dig deeper on a point, research that specific area further and update the brief.

    line 249
  18. Distinctive:

    Honest about gaps: If research turns up little, say so.

    line 261
  19. Very specific:

    Inference is hypothesis: Every claim needs a source or a [Hypothesis] label.

    line 263
  20. Distinctive:

    Contextual triggering: When contextual triggers fire (user starting a new project, entering unfamiliar domain), don't silently launch into …

    line 273

“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/recon — Pre-Build Decision Intelligence

What this skill produces

A decision brief — one opinionated document (~200 lines max) that reads like a 30-minute briefing from a senior consultant who's built 10 of these. Not a research report. Not a comprehensive survey. A ranked list of what actually matters for this project at this scope, with traps and edges treated as equal halves of the work.

The consultant's job has two sides:

  • Downside: what costs you if you get it wrong (traps, irreversible decisions, failure modes)
  • Upside: where the edge is that makes this an outlier (category-breaking moves, underused primitives, unfashionable advantages)

Recon does both, balanced. Pure worry is useless. Pure optimism is useless. Calibrated judgment is the product.

Modes

ModeTriggerOutput
Full/recon or /recon [project description]Single decision brief + sources appendix
Focused/recon [specific question]Mini decision brief on that question

Distinguish by intent: "building a task management app" = full. "auth patterns for multi-tenant SaaS" = focused.


Phase 0: Orient and Calibrate Scope

Determine what to research from the argument, conversation context, open files, and project state.

Scope calibration — mandatory. Before any research, lock these down. This is what keeps recon from applying enterprise worries to prototypes (and enterprise aspirations to weekend hacks).

  • Scale: Prototype (weekend / single user / validating idea) / Production (real users, uptime matters) / Enterprise (scale, compliance, SLA)
  • Stakes: Reversible (can rebuild in a week) / Load-bearing (3-month rebuild cost) / Foundational (1+ year rebuild cost)
  • Timeline: Days / weeks / months to first ship
  • Irreversibility budget: How much "we'll figure it out later" can this project afford?

If any of these are unclear from context, ask ONE question to lock them:

"I see you're building [X]. Is this a prototype to validate the idea, a production system with real users, or something bigger? And what's the timeline?"

Every finding downstream gets filtered against this scope. A "performance cliff at 10M rows" is not relevant to a 50-user internal tool — and recon won't mention it. A "category-defining distribution play" is not relevant to a personal weekend project — recon won't mention that either.

Calibrate depth. If the user signals domain expertise ("I've built 3 of these"), focus on what's changed recently and what's non-obvious. Skip basics. If the user is entering unfamiliar territory, cover fundamentals too.


Phase 1: Adopt Mindset — Two Lenses, Equal Weight

Before any research, identify two lenses. Both are required. Neither dominates.

Domain lens: [specific expert who's built 10 of these — "someone who's built Asana, Linear, and Todoist" or "someone who's shipped 3 real-time collaborative editors"]. Knows the category deeply: what's table stakes, what's actually hard, what most teams get wrong.

Strategist lens: [someone who ships category-defining products — "a principal who's taken products from me-too to category leader in this space"]. Knows where the edge is: what's fashionable vs what actually works, what assumptions are ripe to break, what capabilities just became cheap that nobody's using yet.

The lenses are not decorative. They change what you search for.

  • Domain lens searches: "what data model decisions did Linear regret", "recurring bugs in Todoist's issue tracker", "[framework] gotchas"
  • Strategist lens searches: "how Linear differentiated from Jira", "what made Figma category-defining in a crowded market", "what assumptions do [category] products still share that are due for breaking"

Both lenses research in parallel, equal effort.


Phase 2: Generate Questions — Traps and Edges, Balanced

Generate two question banks before hitting any search tool. Equal weight.

Trap questions (downside)

From the domain lens. What breaks, what's irreversible, what's non-obvious about failure modes at this project's scope (Phase 0 filters aggressively — don't generate trap questions that only apply at enterprise scale for a prototype project).

Load references/expert-questions.md and adapt the relevant project type's trap templates. Add project-specific trap questions that aren't in the templates.

Edge questions (upside)

From the strategist lens. Where the outlier move is for this specific project.

Load the Strategist questions (all project types) block at the top of references/expert-questions.md. Those apply universally. Add project-specific edge questions on top.

Examples of good edge questions:

  • What do the top 1% in this category do that the rest don't?
  • What assumption does everyone in this category still share that's ripe to break?
  • What capability just became cheap (new primitive, new model, new pattern) that competitors haven't adopted?
  • What's the cross-pollination from an adjacent domain that nobody has applied here yet?
  • Where is everyone's execution weak in this category (speed, polish, copy, onboarding, pricing, distribution, community)?
  • What's the "obvious" move in this category that's unfashionable or uncomfortable, so nobody makes it?

Print both question banks to the conversation before researching. Then pause — don't start searching yet. The questions frame the investigation, and the user may redirect ("skip the pricing stuff, focus on auth") or add context ("we're using Postgres, not Mongo"). If the user says "go" or stays quiet, proceed to Phase 3.


Phase 3: Research

Use multiple sources. Every finding must be traceable to a source.

Execution strategy

Full mode: Launch parallel research agents — one thread for traps, one thread for edges, equal effort. This is the core balance. Neither bank is "priority."

Focused mode: Single sequential thread. Each query builds on the last.

Research methods

  1. Web search — blog posts, postmortems, category-defining case studies. Frame searches around the expert questions, not keyword soup. "What data model mistakes do task management apps make" beats "task management best practices." "What made Linear's UX feel different from Jira's" beats "task management UX."
  2. context7 — current framework documentation. Target gotchas sections, migration guides, breaking changes, AND new primitives that enable things the old approach couldn't.
  3. GitHub issues — issue trackers of popular projects in the same category. Recurring bugs = systemic problems. Reopened issues = structural problems. Also read CHANGELOGs of category leaders to see what they prioritized and when.
  4. X/Twitter — real developer opinions. Use x-research / xray skill if available.
  5. Direct repo exploration — if the user points to a reference project, read source, CHANGELOG, architectural decisions.

Search strategy — bidirectional reframing

Don't accept mediocre results. If a search returns listicles or shallow advice, reframe:

For traps:

  • "best practices for X" → "postmortem X migration failure" / "X architecture regret"
  • "how to build X" → "what I wish I knew before building X"
  • "[framework] tutorial" → "[framework] gotchas" / "[framework] breaking changes [version]"

For edges:

  • "best practices for X" → "how X became category-defining" / "what made [leader] different"
  • "how to build X" → "what the top [X] teams do differently" / "[category]'s unsolved problems"
  • "[framework] tutorial" → "[framework]'s underused features" / "what [framework] enables that older approaches couldn't"

Source quality hierarchy

Prefer primary sources over secondary:

  1. Engineering blogs from teams that built similar products (Figma, Linear, Notion engineering blogs)
  2. Official postmortems and retrospectives
  3. Conference talks from practitioners (not evangelists)
  4. Issue trackers of popular similar projects
  5. Case studies of category leaders (how they positioned, what they built first, what they deferred)
  6. Stack Overflow answers with high votes and real-world context
  7. Avoid: Medium listicles, "top 10" aggregators, marketing-adjacent thought leadership

If after 2-3 searches on a topic you're only finding category 7 sources, flag it — either the domain is too niche for web research, or the query framing needs rethinking.

What to research

Load references/research-categories.md. Select categories relevant to the project's scope (set in Phase 0).

Priority by scope, not hardcoded:

  • Prototype scope: Best examples, Strategic edges, User expectations (table stakes only). Skip pitfalls-at-scale, security deep-dives, architecture-regret surveys. Those are premature.
  • Production scope: Pitfalls, Architecture, Strategic edges, Best examples, User expectations. Balanced — traps and edges get equal effort.
  • Enterprise scope: All categories including security, compliance, anti-patterns.

Research discipline

  • Filter every finding against project scope. A "10M-row performance cliff" is not a finding for a 50-user tool — drop it before it reaches the brief. An "enterprise distribution strategy" is not a finding for a weekend prototype — drop that too.
  • Inference is hypothesis, not finding. Every claim in the brief needs a source. If you can't source it, label it [Hypothesis] — do not present it as discovered fact. This closes the "made-up worry" and "manufactured edge" failure modes.
  • Niche domains are allowed to be thin. "I found 3 relevant sources" is better than padding with generic advice. Don't manufacture depth.
  • Time-sensitivity aware. Flag findings that may have short shelf life. Framework ecosystems and strategic landscapes both move fast — a category edge from 18 months ago may be saturated now.

Completion criteria

  • Both banks researched. Trap questions AND edge questions — neither gets less effort than the other.
  • Non-obvious findings. If either bank has fewer than 2 non-obvious findings, say so. Don't pad.
  • Diminishing returns. If 3 consecutive queries produce nothing new, move on.

Phase 4: Write the Brief

Output is ONE file: _docs/recon.md — the decision brief.

Plus _docs/sources/[topic].md — raw research threads with links (traceability only, not meant to be read end-to-end).

No pitfalls.md, architecture-notes.md, best-practices.md, feature-expectations.md, security-notes.md. Those were research-report scaffolding. The brief is the product.

Brief structure (~200 lines max)

# Recon: [Project]
> [YYYY-MM-DD] | Scope: [Prototype/Production/Enterprise] | Timeline: [X] | Stakes: [Reversible/Load-bearing/Foundational]
> Lenses: [Domain expert archetype] + [Strategist archetype]

## What this project is
[1 paragraph — what it does, what success looks like, what's in scope and what's out. Grounds every finding below against this target.]

## What matters (ranked)

### 1. [Decision] — [Trap / Edge / Both] — Irreversibility: [High/Medium/Low]
[2-3 sentences. Opinionated. What the decision is, what most people get wrong or miss, what the recommendation is. If Edge, why it's under-pressed. If Trap, why it bites.]

### 2. [Decision] — [Trap / Edge / Both] — Irreversibility: [High/Medium/Low]
[...]

(Include as many as genuinely matter for this project. Could be 2. Could be 8. No forced count. Rank by cost-of-being-wrong for traps and upside-of-getting-right for edges. Mix traps and edges freely in a single ranked list — a consultant doesn't split their advice into two separate reports.)

## What doesn't matter for this project
[Explicitly dismiss off-scope worries AND off-scope aspirations. Examples: "Don't waste cycles on multi-region deploy — you have 50 users." "Skip real-time collab — this is a solo tool." "Ignore category-defining distribution plays — this is an internal tool, not a product." This section is what makes the brief usable instead of overwhelming.]

## Biggest unknown
[The area where research was thinnest — what you'd want to investigate further before committing. Honest gap acknowledgment. If everything genuinely checked out, say so.]

## Sources
[Appendix. Links to `_docs/sources/` files and external URLs. Every claim in the brief above should be traceable here.]

Content rules

  • Opinionated > comprehensive. "It depends" is not a finding — identify what it depends on and give guidance for the common case.
  • Every item in the ranking is ranked. Position is the ranking. Don't ship a list of unranked "considerations."
  • Trap / Edge / Both tagging is mandatory on every item. This forces the balance to be visible.
  • Scope-tag findings when relevant. "This bites at 10k+ users" — makes the finding actionable vs. aspirational.
  • Every claim sourced or labeled [Hypothesis]. No invented worries, no manufactured edges.

Focused mode output

Single file: _docs/recon-[topic-slug].md. Same structure, but the ranking is narrower. Still includes "What matters" ranked list, "What doesn't matter for this question," and sources.

Re-running recon

  • Same project, new angle: keep existing brief, amend with new findings. Reorder ranking if new intel changes priorities.
  • Different project: ask before overwriting.
  • Refreshing stale research: overwrite, note prior research date alongside new one.

Gitignore check

After writing the brief, check if _docs/ is in .gitignore. If not and this is a repo (especially public), note:

_docs/ contains internal research — add it to .gitignore if this is a public repo.


Phase 5: Present and Invite

Print _docs/recon.md to the conversation. Then:

Anything here surprise you, or an area you want me to dig deeper on? A trap or edge you think I'm wrong about?

If the user wants to dig deeper on a point, research that specific area further and update the brief. If the user is satisfied, recon is done — the brief persists as reference for the build.


Behavioral Rules

Two lenses, equal weight — non-negotiable. Domain lens without strategist lens produces anxious research. Strategist lens without domain lens produces aspirational nonsense. Both balanced, produce judgment.

Scope calibration up front — non-negotiable. Without it, recon applies enterprise worries to prototypes and enterprise aspirations to weekend hacks. This is the single biggest source of "this isn't actually relevant to me" noise.

Opinionated > comprehensive. Rank. Dismiss. Choose. A consultant who hands you 47 unranked considerations isn't doing their job. Neither is recon.

Honest about gaps. If research turns up little, say so. Niche domains have less prior art — that's fine. Padding with generic advice is worse than admitting thinness.

Inference is hypothesis. Every claim needs a source or a [Hypothesis] label. No made-up worries, no invented edges. This closes the hallucination hole.

The brief IS the product. One file, ranked, opinionated. No multi-file research-report structure. Sources are appendix for traceability — not meant to be read end-to-end.

Don't duplicate other skills. Landscape decision intelligence, not knowledge extraction from a specific URL (/eat), not project architecture (/architect), not testing strategy (/fortify), not engineering standard enforcement (/prodev).

Time-sensitivity awareness. Include research date in the brief header. Flag findings that may have short shelf life. Both traps ("this was a problem in Next.js 12 but fixed in 14") and edges ("this was a differentiator in 2023 but now table stakes") decay.

Respect the user's time. The brief is ~200 lines max. If it's longer, something went wrong — consolidate or cut. The user reads the brief and decides. Don't expect them to wade through sources.

Contextual triggering. When contextual triggers fire (user starting a new project, entering unfamiliar domain), don't silently launch into research. Suggest it in one line:

"This looks like new territory — want me to run /recon on [X] before you start building?"

Let the user accept or decline. Never auto-run the full skill uninvited.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.