Borrowing it
Nothing to install: this file belongs to khaoss85/agent-crm. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/khaoss85/agent-crm/main/.agents/skills/create-crm-module/SKILL.mdgit clone --depth 1 https://github.com/khaoss85/agent-crmWrote 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/khaoss85/agent-crm/create-crm-module)<a href="https://agentmods.dev/skills/khaoss85/agent-crm/create-crm-module"><img src="https://agentmods.dev/badge/skills/khaoss85/agent-crm/create-crm-module.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.1 | $0.00050 | $0.01414 |
| Opus 5 | $0.00025 | $0.00707 |
| Sonnet 5 | $0.00010 | $0.00283 |
| Haiku 4.5 | $0.00005 | $0.00141 |
Grade A, and why
create-crm-module 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 6d 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 — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Orient yourself first
npm run crm -- app inspect --json
Read valid, then problems[], then limitations[], in that order. Every problem is fixed or reported before anything is built on top of it, and every limitation is a hard boundary on what you may claim. Then read packages[], capabilities[], resources[], actions[], policies[] and providers[]: that list is what exists. A capability absent from the report does not exist, whatever a record name, a label or a document suggests.
If the repository documents this skill names are absent, you are in a project built from this framework rather than in the framework itself. The inspection report is then the source of truth and those documents are optional background — do not guess at their contents, and do not assume a path exists because this skill names it.
modules[] is where you check whether the record you are about to create already exists, which package owns it, its checked-in revision and its declared fields — read it before writing a manifest, not after.
Preferred path — module factory (manifest-driven):
- Background, where they exist:
ARCHITECTURE.md,DECISIONS.md,docs/MODULE_MANIFEST.mdanddocs/MODULE_FACTORY.md. The commands in the steps below carry the contract themselves —module validaterefuses a manifest these documents would have refused — so read them for the reasoning, and proceed without them if they are not in this project. - Write a manifest (see
examples/modules/partner.module.json); validate it:npm run crm -- module validate <manifest.json>. - Inspect the deterministic plan (always read-only):
npm run crm -- module plan <manifest.json>. - Generate the runnable module (dry-run first, then explicit apply):
npm run crm -- module create <manifest.json>then--apply. Apply writes service, migration, module definition, tests and registers the module automatically — no manual MIGRATIONS or create-app edits. The module is then served at/api/modules/<name>/…, discoverable viaGET /api/schema(generatedModules), usable viaclient.module('<name>')in the SDK, and shown automatically in the Admin under "Generated modules" (list/create/ detail/edit, no page code — seedocs/ADMIN.md). - Reference fields (many-to-one to another generated module) are supported:
{"type":"reference","references":"<target-table>"}. Apply the target module first; the generated service validates the target at runtime via the application reference resolver (ADR-010) and the Admin renders a target selector. Generated-to-core references are not supported yet. - For a lifecycle step that is more than a field edit (qualify, close,
approve), do not hand-roll it in the service: define a record action
(
docs/ACTIONS.md, ADR-011). Mark the fields the action owns"writable": "managed"in the manifest so generic CRUD cannot reach that state, and write the managed fields fromexecuteviactx.managed. The runtime supplies one atomic transaction, events released only after commit, and an automatic trace; it does not deduplicate, so express idempotency in data (a unique key), as inexamples/starters/b2b-lead-qualification/. - Edit the generated service to add domain rules; keep validation, actor context, audit and events on every mutation.
- Run
npm run verify.
Manual path (custom shapes the factory does not cover):
- Study one existing module under
packages/modules/. - Add schema migration, module service, metadata and validation by hand.
- Expose mutations only through the service; never execute SQL from API or MCP handlers.
- Record actor context and audit on every mutation.
- Add API/MCP exposure only after the service contract is tested.
- Run
npm run verifyand update docs.
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.
- 6d ago First seen · 80 lines · 50 tokens per session scan A 2c153b479b90
create-crm-module is a skill published in the GitHub repository khaoss85/agent-crm (2 stars, last pushed 3d ago), licensed MIT. It adds 50 tokens to every session and 1,414 once invoked, about $0.0003 per session on Opus 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-31.
Other skills, from other repositories
architecture-paradigm-cqrs-es
Applies CQRS and Event Sourcing for read/write separation and audit trails. Use when designing systems with complex domain logic or full state-change history.
odoo-introspector
MANDATORY for technical discovery. Expertise in Odoo's internal ORM structures, field types, and metadata interpretation.
customer-health-review
Prepare customer success account health reviews, renewal risk summaries, QBR briefs, onboarding/adoption plans, expansion signals, and customer success action plans. Use when Codex is asked about account health, customer retention risk, usage adoption, renewal readiness, customer value reviews, success plans, QBRs, or…
database-schema-review
Review database schemas for backend applications and APIs. Use when Codex is asked to critique tables, migrations, indexes, constraints, relationships, tenant boundaries, data integrity, query fit, or schema evolution risk.
myb-p-create-entity
Create a complete new custom entity (module) in MyBusiness CRM -- tables, fields, sample data, list page with inline edit, custom JS, and menu integration. Use this skill whenever the user wants to create a new entity, new module, new object type, add a new business concept to the CRM, or build a full CRUD workflow…
event-store-design
Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.