agentleFS
dimastrianndimastriann/odoo-erp-mcp/AGENTS.md

odoo-erp-mcp

AGENTS.md2 starsChanged 5 days agoMITView on GitHub

This repository is an MCP gateway for Odoo. Changes must preserve the typed error contract, authorization policy, secret redaction, mutation lifecycle, and query-protection invariants. - AGENTS.md is the canonical rule set for Codex, opencode, and Claude Code. - CLAUDE.md imports this file for Claude Code. - Canonical skills live in .agents/skills/<name>/SKILL.md; Codex discovers them natively. - opencode and Claude Code use small pointer skills in .opencode/skills/<name>/SKILL.md and .claude/skills/<name>/SKILL.md that redirect to the canonical file. Keep pointer frontmatter in sync with…

  • Reads credentials

The file

Show its rules and text

We split this AGENTS.md into the rules it gives an agent

25 rules. About 4 are common, 15 are distinctive, and 6 are very specific to this project.

  • ≈4

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈15

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Commit every coherent increment, even a small one.

    line 22
  2. Distinctive:

    Do not create WIP, empty, test-later, or formatting-only commits.

    line 27
  3. Distinctive:

    Prefer several small, reviewable commits over one large commit.

    line 28
  4. Distinctive:

    Every commit must leave the project buildable and the full quality gate green.

    line 31
  5. Very specific:

    Do not amend, rebase, force-push, or bypass hooks unless the user explicitly asks.

    line 32
  6. Distinctive:

    Run before every commit:

    line 37
  7. Very specific:

    Run cargo build --release --all-targets --all-features before release or version-tag commits to match CI.

    line 49
  8. Distinctive:

    When JavaScript helpers are added, also run:

    line 51
  9. Distinctive:

    Use Conventional Commits with a concise, informative message:

    line 59
  10. Distinctive:

    Keep the subject lowercase, imperative, and at most 72 characters.

    line 70
  11. Distinctive:

    Add a body only when it explains context, impact, or a trade-off that the subject cannot carry.

    line 71
  12. Very specific:

    Do not add Co-authored-by, Generated-by, AI attribution, or similar trailers.

    line 74
  13. Distinctive:

    Write clean, efficient, safe Rust.

    line 79
  14. Distinctive:

    Follow existing modules and naming conventions before introducing new ones.

    line 81
  15. Distinctive:

    Prefer typed structures and explicit validation over ad-hoc JSON handling.

    line 82
  16. Common:

    Keep the RPC boundary, policy decisions, and secret handling centralized.

    line 83
  17. Very specific:

    Use the typed errors in error.rs.

    line 84
  18. Common:

    Never log, serialize, or return credentials.

    line 86
  19. Distinctive:

    Do not block the async runtime.

    line 88
  20. Distinctive:

    Do not add a dependency unless the standard library or an existing dependency cannot do the job cleanly.

    line 89
  21. Very specific:

    Add focused unit or contract tests for every new behavior and security boundary.

    line 93
  22. Distinctive:

    Keep the UI accessible and consistent with the existing design system.

    line 96
  23. Very specific:

    Never commit .env, config.json, credentials, tokens, or generated secrets.

    line 100
  24. Common:

    Keep authorization defaults deny-by-default.

    line 102
  25. Common:

    No secrets, credentials, or generated artifacts are staged.

    line 111

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

Agent Workflow

This repository is an MCP gateway for Odoo. Changes must preserve the typed error contract, authorization policy, secret redaction, mutation lifecycle, and query-protection invariants.

Cross-agent entry points

  • AGENTS.md is the canonical rule set for Codex, opencode, and Claude Code.
  • CLAUDE.md imports this file for Claude Code.
  • Canonical skills live in .agents/skills/<name>/SKILL.md; Codex discovers them natively.
  • opencode and Claude Code use small pointer skills in .opencode/skills/<name>/SKILL.md and .claude/skills/<name>/SKILL.md that redirect to the canonical file. Keep pointer frontmatter in sync with the canonical skill's name and description.
  • Reusable procedures: atomic-commit, mcp-tool-extension, mutation-lifecycle, release, security-review, odoo-compat, web-ui.

Atomic commits

  • Commit every coherent increment, even a small one. Do not batch unrelated work into a single commit.
  • One logical purpose per commit. Do not mix refactoring, features, UI work, or documentation that are not required by that purpose.
  • Tests for a behavior belong in the same commit as the behavior.
  • Do not create WIP, empty, test-later, or formatting-only commits.
  • Prefer several small, reviewable commits over one large commit.
  • Stage explicit paths and review the staged diff before committing. Never use a blind git add -A or git add ..
  • Every commit must leave the project buildable and the full quality gate green.
  • Do not amend, rebase, force-push, or bypass hooks unless the user explicitly asks. Never use --no-verify to hide a failure.

Quality gate

Run before every commit:

cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets --all-features
cargo check --all-targets --all-features
cargo build --all-targets --all-features
  • Fix failures and rerun the full gate. Do not silence lints with unapproved #[allow(...)] attributes.
  • Run cargo build --release --all-targets --all-features before release or version-tag commits to match CI.
  • When JavaScript helpers are added, also run:
node --test src/views/pagination.test.js

Commit messages

Use Conventional Commits with a concise, informative message:

feat(scope): imperative summary
fix(scope): imperative summary
refactor(scope): imperative summary
test(scope): imperative summary
docs(scope): imperative summary
chore(scope): imperative summary
  • Keep the subject lowercase, imperative, and at most 72 characters.
  • Add a body only when it explains context, impact, or a trade-off that the subject cannot carry. Keep it short (normally 1-4 lines) and wrap at 72 characters. Do not restate the diff or list changed files.
  • Do not add Co-authored-by, Generated-by, AI attribution, or similar trailers.

Code standards

  • Write clean, efficient, safe Rust. Prefer clarity and explicit behavior over clever shortcuts.
  • Follow existing modules and naming conventions before introducing new ones.
  • Prefer typed structures and explicit validation over ad-hoc JSON handling.
  • Keep the RPC boundary, policy decisions, and secret handling centralized.
  • Use the typed errors in error.rs; avoid unwrap and expect on fallible paths outside tests. Never swallow errors or leave silent fallbacks.
  • Never log, serialize, or return credentials.
  • Reject malformed input before it reaches Odoo.
  • Do not block the async runtime; keep I/O asynchronous and bounded.
  • Do not add a dependency unless the standard library or an existing dependency cannot do the job cleanly.
  • Preserve backward compatibility for existing config.json files or provide a documented migration path.
  • Add focused unit or contract tests for every new behavior and security boundary. Use src/test_support.rs and mocked Odoo responses; tests must not require a live server.
  • Keep the UI accessible and consistent with the existing design system.

Security

  • Never commit .env, config.json, credentials, tokens, or generated secrets. config.example.json is the only configuration file that belongs in git.
  • Keep authorization defaults deny-by-default. Do not weaken policy checks, secret redaction, or mutation safeguards to make a test pass.
  • Review staged changes for accidental secret or debug-output leakage before every commit.

Definition of done

  • The change has one purpose and includes its tests and documentation.
  • The full quality gate passes.
  • No secrets, credentials, or generated artifacts are staged.
  • The commit message follows the format above.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.