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.
Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/samugit83/redamonnpx agentmods add skills/samugit83/redamon/project-settings-cascadeWrote 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.
[](https://agentmods.dev/skills/samugit83/redamon/project-settings-cascade)<a href="https://agentmods.dev/skills/samugit83/redamon/project-settings-cascade"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/project-settings-cascade/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.
<a href="https://agentmods.dev/skills/samugit83/redamon/project-settings-cascade"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/project-settings-cascade.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 50 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 75 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00142 | $0.02332 |
| Opus 5.5 | $0.00057 | $0.00933 |
| Sonnet 5.5 | $0.00028 | $0.00466 |
| Haiku 4.5 | $0.00014 | $0.00233 |
Grade A, and why
project-settings-cascade 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 152 lines — stays where its author put it; the contents beside it link to each section on GitHub.
When to Use
- Adding a new project setting, or changing the default value of an existing one.
This skill is the settings sub-pattern the tool/skill skills depend on; they link
here rather than restating it. For the surrounding tool wiring, see
agentic-tool-integration,
recon-tool-integration, or
builtin-agent-skill.
Critical Rules
- NEVER change a default in one layer only. A setting is synchronized across every layer in the table below. Update them in one commit or the UI and backend drift silently.
- NEVER assume existing projects pick up a new/changed default. A Prisma
@defaultapplies to new projects only. Existing rows keep their stored value; changing behaviour for them needs an explicit SQLUPDATE(ask before running it - it mutates every project). - NEVER share settings code between agent and recon.
agentic/project_settings.pyandrecon/project_settings.pyare separate modules with their own default dicts (DEFAULT_AGENT_SETTINGSvsDEFAULT_SETTINGS). A setting used by both is declared in both. - NEVER use
prisma migrate. This project is push-based:docker compose exec webapp npx prisma db push. - ALWAYS keep the name triad aligned: DB column
snake_case(via@map()), Prisma field + frontend + APIcamelCase, Python keySCREAMING_SNAKE_CASE. A mismatch meansfetch_*_settingsreadsNoneand silently falls back to the default. - ALWAYS give the frontend
onChangea fallback equal to the Python/Prisma default, so a project saved before the field existed does not writeundefined. - A new column FAILS THE BUILD until it has a registry entry. Every
parameter is described once, in
recon_settings/registry.yaml, with its
unit, phase, traffic class, engagement-cap flag, MCP disposition, meaning, and
either a bound or a named validator. Add the column, run
python3 tooling/scripts/extract_recon_registry.pyto draft the entry, EDIT IT, thenpython3 recon_settings/build.py. The draft is a starting point: no extraction can tell whether ameaningis true or a bound is right. - NEVER hand-edit
registry.json. It is a build artifact, written to two places (recon_settings/for Python,webapp/src/lib/reconSettings/for TypeScript) by one build, andbuild.py --checkfails the gate when either is stale. Edit the YAML. - NEVER add a rate field without
roe_capped: true. Anrpsfield withtraffic: activeand no cap fails the build, because that gap is how three rate limits shipped reachable over MCP and outside the engagement ceiling. mcp: settableis the normal answer, and a REAL bound is the control. The form input and the MCP validator are both generated from the registry, so a bound of0..10000000is a fake control on both doors at once.bounds.test.tsfails anycountorthreadsmaximum above 100000; the only way past it is a field whose SHIPPED default is already higher, named individually inABOVE_THE_FLAT_CEILINGwith its own maximum, and the test refuses an entry whose default would fit under the ceiling anyway.- A field with a closed vocabulary gets
values:, notvalidator: free_text. That is what makes the form render a<select>and the write refuse an unknown value instead of accepting it and having the runtime replace it silently.bounds.test.tsalso fails a bespoke control that renders a closed-value field as anything but a<select>, because a text box over a closed set means the form accepts what the save rejects. mcp: neverneeds adeny_reasonthe schema defines -identity,internal,escalation,secret,upload-managed,engagement-record,not-tuningorderived. There is no ALLOW/DENY table and nounboundedreason; denying a tuning field "to be safe" makes the API the weaker of two doors and failsparity.test.ts.- A settable field needs a form input, and an input needs a classification.
form_sectionis joined from the tool's entry unless the field names its own, and an explicitnullmeans "no input anywhere" - which the parity test reads to tell a deliberate omission from a forgotten one. - State what
0means on any field that defaults to it. Several rates treat0as UNLIMITED, which makes it the FASTEST value rather than the safest. A numeric defaulting to 0 withoutzero_meansfails the build, and themeaninghas to repeat it in words.
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.
- 1mo ago Changed · +58 lines fa7b2cbe9255
- 1mo ago Changed · +8 lines 95dfce8b7926
- 1mo ago First seen · 86 lines · 142 tokens per session scan A 25f97764e896
project-settings-cascade is a skill published in the GitHub repository samugit83/redamon (3,170 stars, last pushed yesterday), licensed MIT. It adds 142 tokens to every session and 2,332 once invoked, about $0.0006 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.
Other skills, from other repositories
detecting-shadow-api-endpoints
Discover and inventory shadow API endpoints that operate outside documented specifications using traffic analysis, code scanning, and API discovery platforms.
agent-crdt-synchronizer
Agent skill for crdt-synchronizer - invoke with $agent-crdt-synchronizer.
agent-raft-manager
Agent skill for raft-manager - invoke with $agent-raft-manager.
hunt-api-misconfig
Hunt API security misconfiguration — mass assignment, prototype pollution, HTTP verb tampering. Mass assignment: send {isadmin:true, role:admin, verified:true} on profile/account/reset endpoints — server blindly applies. JWT signature/crypto forging (alg:none, key confusion, kid/jku) is owned by hunt-jwt-crypto; this…
stripe-projects
Use when the user wants to provision infrastructure or third-party services using Stripe Projects. Triggers: "I need a database", "set up auth", "add caching", "give me a Postgres", "provision Redis", "I need hosting", "add a vector DB", "get me an API key for X", "get credentials for X", "sign up for a service", "set…
detecting-api-enumeration-attacks
Detect and prevent API enumeration attacks including BOLA and IDOR exploitation by monitoring sequential identifier access patterns and authorization failures.