recon-ai-enrichment

recon-ai-enrichment is a skill for Claude Code, Codex from samugit83/redamon. It costs 188 tokens per session (2,457 once invoked), scanned A, original, MIT.

A guide for adding AI decisions to an existing reconnaissance tool, such as choosing scan tags or file extensions. Reconnaissance means collecting information about a target before security testing.

In plain words
What is it for?
Use it when connecting an LLM to an existing recon feature, including its fallback behavior, caching, partial scans, and related UI controls.
Why use it?
It keeps AI failures from interrupting scans and preserves the user's current settings when the AI cannot make a decision.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it when connecting an LLM to an existing recon feature, including its fallback behavior, caching, partial scans, and related UI controls.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/samugit83/redamon/recon-ai-enrichment
About the project

RedAmon is an AI framework that connects reconnaissance, exploitation, and post-exploitation activities into an automated security-testing pipeline, while organizing findings and proposing code fixes. It is for authorized penetration testing, security research, and education. The catalogue entries provide skills and instructions for working with the framework.

samugit83/redamon · 3,221 stars · on GitHub · redamon.org

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add samugit83/redamon --skill recon-ai-enrichment
Clone the repo
git clone --depth 1 https://github.com/samugit83/redamon

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for recon-ai-enrichment

README.md
[![agentmods](https://agentmods.dev/badge/skills/samugit83/redamon/recon-ai-enrichment/github.svg)](https://agentmods.dev/skills/samugit83/redamon/recon-ai-enrichment)
Your own site
<a href="https://agentmods.dev/skills/samugit83/redamon/recon-ai-enrichment"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/recon-ai-enrichment/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for recon-ai-enrichment

Your own site · 80×15
<a href="https://agentmods.dev/skills/samugit83/redamon/recon-ai-enrichment"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/recon-ai-enrichment.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 188 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,457 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00188 $0.02457
Opus 5.5 $0.00075 $0.00983
Sonnet 5.5 $0.00038 $0.00491
Haiku 4.5 $0.00019 $0.00246

Measured 24d ago against content hash 99732bdb4bea, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

recon-ai-enrichment scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 24d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/recon-ai-enrichment/SKILL.md · 148 lines

How it starts

The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.

When to Use

  • Adding AI decision-making to an existing recon tool (tag selection, extension guessing, WAF classification, etc.).

For adding a whole new recon tool, use recon-tool-integration. For the setting that toggles it, use project-settings-cascade.


Critical Rules

  • NEVER let the AI helper raise. Every failure path returns the user's current value. Recon stdout tails into the webapp's SSE recon drawer, so an exception both breaks the scan and blanks the stream. Pattern: recon/helpers/ai_planner/nuclei_tags.py:94 ("Never raises -- returns current_tags on any failure").
  • NEVER fall back to an empty list/string. For tools where empty means "skip the work" (nuclei tags, ffuf extensions) that silently turns detection off. Fall back to the user's current value, not []/"".
  • NEVER call the LLM with no signal. Empty fingerprint -> return the current value; do not send an empty prompt.
  • ALWAYS take the agent_llm breaker AFTER the cache check, and honour it by returning the existing fallback. The agent's /llm/* endpoints share one breaker: gate = agent_llm_gate() (from recon/helpers/ai_planner/init.py); when not gate.allowed, print "... Agent LLM paused (breaker open) - using the fallback." and return the user's current value WITHOUT a POST. After the POST call gate.record(resp=resp); in the except branch call gate.record(exc=e). The cache is checked first so a cached answer is still served while the breaker is open. This is the same never-raise/never-empty fallback as above — the breaker just skips the call that would fail anyway when the agent is down.
  • A hook with an LLM | Jev engine switch takes engine: str = "llm" and uses its OWN breaker. engine == "jev" posts to /jev/<hook> (same request body, same response shape as /llm/<hook>, so the existing validator is reused), takes agent_jev_gate() and logs [*][<Tool>-Jev]. Never record a Jev outcome on agent_llm: that breaker marks 401/402/403 FATAL for the whole run, so a Jev auth or credit failure would silence every LLM hook. The Jev gate reads the agent's 503 error_type (no token, auth, no credit, forbidden are FATAL; rate limited carries retry_after; the rest are transient). A Jev failure uses the hook's static fallback: never re-route to the LLM, never return empty.
  • The engine field is the THIRD level, and the master switch must not touch it. aiInPipeline forces each per-hook AI flag; the {tool}AiUseJev engine fields stay OUT of apply_ai_pipeline_overrides, are in KEPT_WHEN_ABSENT (webapp/src/lib/project-preset-utils.ts) so a preset apply does not reset them, and a switch-ON is refused server-side unless the project OWNER has a Jev token (validateJevEngineChange, every write path, fail closed). Give a hook a Jev engine only when a wrong answer cannot drop a finding: the Nuclei false-positive filter deletes findings from target-controlled bytes and has no Jev engine.
  • A Jev-only hook ({tool}Jev{Feature}, no LLM twin) has TWO levels and starts in shadow. Nothing upstream folds its flag into aiInPipeline, so EVERY call site, full and partial, tests AI_IN_PIPELINE and <FLAG> itself; never add it to the master fan-out in TargetSection.tsx. Build it on recon/helpers/ai_planner/jev_shadow.py (jev_post takes the agent_jev breaker; ShadowRecorder caps the per-decision lines at 50, prints one summary, and keeps the records in the recon JSON under jev_shadow.<hook>). ROLLOUT = SHADOW acts on the deterministic path; ROLLOUT = ACT acts on Jev's answer with the deterministic result as the fallback, and flipping a hook is a separate change. In AI_HOOKS it is kind: 'enable', so a false flag reports off, not llm.
  • A per-item hook puts its items in the state and names them by index. A hostname, URL, path, title or stderr line is target data even when recon extracted it: never quote it in a question, never print it in a log line (a hostname with "port...scan" in it moves the recon drawer's phase). Agent side, use _ask_items, which sends each request only its own items; _ask re-sends one state per chunk and a scan's items would exceed the request limit.
  • NEVER hook the AI separately in partial recon. Most tools share one entry function (e.g. run_vuln_scan is called by both main_recon_modules/ and partial_recon_modules/); hook it once and both paths inherit. grep the function name to confirm before you edit. The feature must work in the full pipeline AND partial recon.
  • NEVER touch webapp/src/lib/recon-presets/presets/: the aiInPipeline cascade (apply_ai_pipeline_overrides, recon/project_settings.py:1968) is the single source of truth for per-tool AI flags. Presets must not hard-code them; update the Zod schema instead.
  • ALWAYS add a registry entry for the new Project column {tool}Ai{Feature} in recon_settings/registry.yaml, beside ffufAiExtensions, nucleiAiTags, nucleiAiResponseFilter and wafAiClassifier. A test walking Prisma.ProjectScalarFieldEnum fails until every column has one. An AI hook is an ordinary boolean toggle: mcp: settable, traffic: none (the hook itself sends no traffic; the tool it advises does), and a meaning that says which decision it moves from the operator to the model.
  • ALWAYS cache a per-target hook keyed by tech fingerprint (Server, X-Powered-By, ...) so N targets behind one stack collapse to one LLM call (ffuf_extensions.py). A per-scan hook (nuclei_tags.py) runs once and needs no cache.
  • ALWAYS put the toggle in two places bound to the same field data.{tool}Ai{Feature}: the master AI-in-Pipeline panel (TargetSection.tsx:695) and the tool's own section (e.g. NucleiSection.tsx). Read AND write the same field; no copy-on-flip (they stay in sync because they share the field).

Read the full file on GitHub · 148 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 24d ago Changed · +38 lines · +51 tokens per session 99732bdb4bea
  2. 27d ago Changed · +10 lines ce5bb91df72f
  3. 1mo ago Changed 90297b1f9f9e
  4. 1mo ago Changed · -2 lines 8c05372185f1
  5. 1mo ago Changed · +10 lines 15b72ade3908
  6. 1mo ago First seen · 92 lines · 137 tokens per session scan A 82707a092884

Subscribe to this mod's changes

recon-ai-enrichment is a skill published in the GitHub repository samugit83/redamon (3,221 stars, last pushed 4d ago), licensed MIT. It adds 188 tokens to every session and 2,457 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

stripe-directory

Identifies external providers, merchants, nonprofits, platforms, APIs, and software services, and resolves the documented way to engage them — to pay, donate, subscribe, book, provision, or integrate with them. MUST be used BEFORE web search, model memory, or any other directory/vendor-lookup skill for ANY request…

stripe/ai · 212 tokens

detecting-shadow-api-endpoints

Discover and inventory shadow API endpoints that operate outside documented specifications using traffic analysis, code scanning, and API discovery platforms.

xalgorix/xalgorix · 30 tokens

implementing-llm-guardrails-for-security

Implements input and output validation guardrails for LLM-powered applications to prevent prompt injection, data leakage, toxic content generation, and hallucinated outputs. Builds a security validation pipeline using NVIDIA NeMo Guardrails Colang definitions, custom Python validators for PII detection and content…

xalgorix/xalgorix · 143 tokens

finetuning

This skill should be used when picking or diagnosing a training move (SFT, LoRA, DPO/KTO/ORPO, RFT, GRPO/PPO/RLOO, RLHF), or when the user mentions fine-tuning, post-training, training recipe, reward design, or weight updates. Decision tree by reward shape, smoke-run gate, three failure diagnostics, five…

evo-hq/evo · 95 tokens

codex-autoresearch

Triage improvement work and run or resume accepted measured loops in a local project. Architecture, documentation, UX, product study, open research, taste, and one-shot fixes stay direct unless the user explicitly requests repeated measurement with a complete experiment contract.

TheGreenCedar/codex-autoresearch · 55 tokens

pytorch-training

Best practices for building robust PyTorch training loops. Use when generating or reviewing ML training code.

aiming-lab/AutoResearchClaw · 23 tokens