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.
npx agentmods add skills/secondlifes/delphi-expert/dmvcframework-securitynpx skills add SecondLifes/delphi-expert --skill dmvcframework-securitygit clone --depth 1 https://github.com/SecondLifes/delphi-expertWrote 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/secondlifes/delphi-expert/dmvcframework-security)<a href="https://agentmods.dev/skills/secondlifes/delphi-expert/dmvcframework-security"><img src="https://agentmods.dev/badge/skills/secondlifes/delphi-expert/dmvcframework-security.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00112 | $0.04128 |
| Opus 5 | $0.00056 | $0.02064 |
| Sonnet 5 | $0.00022 | $0.00826 |
| Haiku 4.5 | $0.00011 | $0.00413 |
Grade B, and why
dmvcframework-security scanned grade B with 1 finding 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 3d 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.
Cloud metadata endpointmediumServer-side request forgery
One request to 169.254.169.254 can return temporary IAM credentials.
`169.254.169.254` (cloud metadata), your internal network. If a feature needs to fetch a URL, allow-list the Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
This is a copy
100% identical to dmvcframework-security — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 367 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DMVCFramework — Secure coding reference
This is a reference for the other DMVCFramework skills. Whenever you write an endpoint that accepts input from a client — a controller action, a minimal-API handler, a web page, a filter — the controls below apply. They are not optional extras.
Adapted from the OWASP-style VibeSec secure-coding guide
(Apache-2.0), rewritten against the real DMVCFramework API: every class, attribute and filter named here was
verified in sources/.
The rule that catches most of it: never trust anything that arrived over the wire — not the body, not the query string, not a header, not a cookie, not a filename, not a URL, not a JWT you have not verified.
When in doubt about an API — verify it, never guess
Never invent an identifier or answer from memory. If you need a signature this skill does not cover, ask the
user for the path to their DelphiMVCFramework checkout and read sources/ (and the matching samples/
project); failing that, read the official repository —
sources ·
samples.
If you still cannot verify it, say so. Where a skill and a sample disagree, the sample wins.
1. Access control — the #1 cause of real breaches
Authentication says who you are. Authorization says what you may touch. Do not confuse them: a valid JWT is not permission to read row 42.
The IDOR trap. This is the single most common serious bug in a CRUD API:
// BROKEN — any authenticated user can read anyone's order
function TOrdersController.GetOrder(const ID: Integer): IMVCResponse;
begin
Result := OKResponse(TMVCActiveRecord.GetByPK<TOrder>(ID));
end;
The ID comes from the URL. Nothing ties it to the caller. Scope every lookup to the authenticated
principal, in the query — not with an if after the fact:
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.
- 3d ago First seen · 367 lines · 112 tokens per session scan B 0888a42c4ca3
dmvcframework-security is a skill published in the GitHub repository SecondLifes/delphi-expert (3 stars, last pushed 2d ago), licensed MIT. It adds 112 tokens to every session and 4,128 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it B with 1 finding (cloud metadata endpoint). It is 100% identical to dmvcframework-security, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
schema-exploration
Lists tables, describes columns and data types, identifies foreign key relationships, and maps entity relationships in a database. Use when the user asks about database schema, table structure, column types, what tables exist, ERD, foreign keys, or how entities relate.
agent-platform-rag-engine-management
Manage and query Agent Platform RAG Engine Corpora and retrieve grounded contexts using the Google GenAI SDK. Use when listing RAG corpora or files, inspecting a corpus, retrieving contexts, or generating content grounded in a RAG corpus. Do not use for standard database queries (use SQL/Spanner skills), Google…
deploy-docker-compose
Run the Omnigent server as a Docker compose stack (server + Postgres) on any Docker host — your laptop, a VPS, EC2 by hand, or as the base layer of any container-platform deploy. Invoke when the user wants to build the image, bring up the compose stack, debug the stack on a host they already have, or extend the stack…
moderator-page-migration
Port a moderator page from the main Next.js app (src/pages/moderator/) into apps/moderator. Use when asked to migrate, move or cut over a /moderator/ page to the spoke, or to port its tRPC procedures and Prisma services to SvelteKit loads/actions and Kysely.
dsql
Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, diagnose cluster performance, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, foreign key…
sql-translate
Translate SQL queries between database dialects (Snowflake, BigQuery, PostgreSQL, MySQL, etc.).