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/actinon-com/brass-monkey/odoo-data-opsnpx skills add actinon-com/brass-monkey --skill odoo-data-opsgit clone --depth 1 https://github.com/actinon-com/brass-monkeyWrote 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/actinon-com/brass-monkey/odoo-data-ops)<a href="https://agentmods.dev/skills/actinon-com/brass-monkey/odoo-data-ops"><img src="https://agentmods.dev/badge/skills/actinon-com/brass-monkey/odoo-data-ops.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.00029 | $0.02296 |
| Opus 5 | $0.00015 | $0.01148 |
| Sonnet 5 | $0.00006 | $0.00459 |
| Haiku 4.5 | $0.00003 | $0.00230 |
Grade A, and why
odoo-data-ops 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 4d 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 — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Skill: Odoo Data Operations (CRUD)
This skill provides the agent with the expertise required to safely query and modify Odoo business data while maintaining a rigorous audit trail and reversibility context.
Core Mandates
1. The "Breadth vs. Depth" Search Paradigm (Golden Rule)
To prevent massive token-context inflation and optimize database execution, you must strictly follow this two-step data retrieval flow:
- Breadth (
search_records): ALWAYS usesearch_recordsfirst to discover data and locate specific IDs.- Safe Defaults: Leave
fieldsblank/empty to fetch our optimized, low-token "Breadth Layout" (ID, Display Name, State, Freshness, and the hierarchical "Belonging Relation"). - Exclusions: This tool strictly excludes heavy relational arrays or child lines to keep the response microscopic and scanable.
- Pagination: It returns a metadata envelope (
total_count,leadsmap of ID to display names) to assist your pagination.
- Safe Defaults: Leave
- Depth (
get_record/get_records): Once you find a target ID, useget_recordto fetch its 360-degree detailed "Record Dashboard".- Turn on flags like
show_lines(resolves full child rows for line tables, e.g., sales lines) andshow_chatter(fetches the last 5 Odoo Chatter comments) to get a complete picture in a single turn.
- Turn on flags like
2. Odoo Domain Syntax (Prefix-based)
Odoo uses a prefix-based polish notation for domain filters. You must follow this syntax when using search_records:
- AND (
&): Default behavior.['&', (A), (B)]means A and B. - OR (
|):['|', (A), (B)]means A or B. - NOT (
!):['!', (A)]means not A. - Example:
['&', ('is_company', '=', True), '|', ('city', '=', 'New York'), ('city', '=', 'London')]
3. Mandatory Justification
All state-changing operations (create_record, write_record, unlink_record) require a justification parameter.
- Requirement: This must be a clear, business-focused reason for the change.
- Persistence: This reason is permanently recorded in Odoo's Chatter (
mail.message) andir.logging.
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.
- 4d ago First seen · 113 lines · 29 tokens per session scan A eb57b92ee08c
odoo-data-ops is a skill published in the GitHub repository actinon-com/brass-monkey (2 stars, last pushed 11d ago), licensed MIT. It adds 29 tokens to every session and 2,296 once invoked, about $0.0001 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
om-auto-upgrade-0.6.7-to-0.7.0
Migrate downstream Open Mercato code from 0.6.7 to 0.7.0 with exact TanStack, settings-group, and removed-env edits; audit auth, search, workflow, facts, Redis, webhook, and security-header changes; validate the app; and report manual work. Use for "upgrade Open Mercato to 0.7.0", "migrate 0.6.7 to 0.7.0", "apply the…
om-data-model-design
Design or change standalone module entities, relations, encryption maps, migrations, snapshots, locking, and atomic writes. Use for "add entity", "database model", "migration", "encrypt this field", "optimistic locking", "model danych", or persistence bugs.
mongodb-atlas-stream-processing
Manages MongoDB Atlas Stream Processing (ASP) workflows. Handles workspace provisioning, data source/sink connections, processor lifecycle operations, debugging diagnostics, and tier sizing. Supports Kafka, Atlas clusters, S3, HTTPS, and Lambda integrations for streaming data workloads and event processing. NOT for…
sqlite-vec-skilld
ALWAYS use when writing code importing "sqlite-vec". Consult for debugging, best practices, or modifying sqlite-vec, sqlite vec.
neo4j-agent-memory-skill
Authoritative reference for the neo4j-agent-memory Python package — a graph-native memory system for AI agents built on Neo4j — and for the hosted service (NAMS) at memory.neo4jlabs.com. Use this skill whenever the user mentions neo4j-agent-memory, agent memory with Neo4j, context graphs, the POLE+O model…
neo4j-cypher-skill
Generates, optimizes, and validates Cypher 25 queries for Neo4j 2025.x and 2026.x. Use when writing new Cypher queries, optimizing slow queries, graph pattern matching, vector or fulltext search, subqueries, or batch writes. Covers MATCH, MERGE, CREATE, WITH, RETURN, CALL, UNWIND, FOREACH, LOAD CSV, SEARCH…