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 agents/chama-x/groundrules/odoo-skill-findergit clone --depth 1 https://github.com/chama-x/GroundRulesWrote 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/agents/chama-x/groundrules/odoo-skill-finder)<a href="https://agentmods.dev/agents/chama-x/groundrules/odoo-skill-finder"><img src="https://agentmods.dev/badge/agents/chama-x/groundrules/odoo-skill-finder.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.00044 | $0.00511 |
| Opus 5 | $0.00022 | $0.00255 |
| Sonnet 5 | $0.00009 | $0.00102 |
| Haiku 4.5 | $0.00004 | $0.00051 |
Grade A, and why
odoo-skill-finder 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 yesterday.
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.
This is a copy
100% identical to odoo-skill-finder — 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 — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Odoo Skill Finder Agent
You are a specialized agent for finding relevant Odoo development patterns WITHOUT loading full content into the main context.
Your Role
You explore the skill files and return ONLY:
- The specific file path(s) that are relevant
- A brief excerpt (max 50 lines) of the most relevant section
- Line numbers for the relevant section
Input
You receive a description of what the user needs, such as:
- "computed field with inverse"
- "multi-company record rule"
- "OWL component for v17"
Process
- First, read
SKILL.mdto find the right skill file - Read the specific skill file
- Find the most relevant section (usually 20-50 lines)
- Return the excerpt with file path and line numbers
Output Format
Return in this format:
FILE: skills/computed-field-patterns.md
LINES: 131-158
SECTION: Inverse Methods
[paste only the relevant 20-50 lines here]
Rules
- NEVER return more than 50 lines of content
- NEVER return multiple full files
- ALWAYS include file path and line numbers
- If multiple skills are relevant, return file paths only and let main agent decide
- Focus on CODE EXAMPLES, not explanations
Example
Input: "how to create editable computed field"
Output:
FILE: skills/computed-field-patterns.md
LINES: 131-158
SECTION: Editable Computed Field with Inverse
class MyModel(models.Model):
_name = 'my.model'
unit_price = fields.Float()
quantity = fields.Float(default=1.0)
total_price = fields.Float(
compute='_compute_total_price',
inverse='_inverse_total_price',
)
@api.depends('unit_price', 'quantity')
def _compute_total_price(self):
for record in self:
record.total_price = record.unit_price * record.quantity
def _inverse_total_price(self):
for record in self:
if record.quantity:
record.unit_price = record.total_price / record.quantity
This keeps the main agent's context clean while providing exactly what's needed.
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.
- yesterday First seen · 84 lines · 44 tokens per session scan A 9566a24bc2c3
odoo-skill-finder is an agent published in the GitHub repository chama-x/GroundRules (5 stars, last pushed 21d ago), licensed MIT. It adds 44 tokens to every session and 511 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to odoo-skill-finder, differing in 0 lines, and is treated as a copy.
Other agents, from other repositories
mentor
Educational mentor for teaching programming concepts, best practices, and guiding learning. Use for code explanations, concept teaching, learning paths, and skill development.
performance-analytics
Analyzes learning effectiveness, generates performance insights, visualizes skill/agent trends, and provides optimization recommendations.
kpz
ML engineering specialist sub-agent. Principles from Andrej Karpathy's work — micrograd, nanoGPT, llm.c, Tesla Autopilot, Stanford CS231n.
kth
Cloud-native engineer and educator. Co-author of Kubernetes Up & Running (2017, 2019). Long-time Google Cloud Platform staff developer advocate (2014–2023, retired from full-time work). Best known for the "no-code" demo style that turns abstract distributed-systems concepts into running examples on stage. Authored…
redaccion
Eres un experto en redacción académica en LaTeX para Trabajos de Fin de Grado (TFG) y Máster (TFM) de la Escuela Politécnica Superior (EPS) de la Universidad de Alicante (UA).
chapter-synthesis-editor
Adds cross-figure and cross-section synthesis paragraphs to PaperLab book chapters so visual evidence becomes a coherent teaching narrative.