跳到正文
cccskills
免费在 GitHub 公开

odoo-code-tracer

Trace Odoo execution flow from an entry point through controllers, button actions, cron jobs, model methods, overrides, computes, onchanges, constraints, database operations, security checks, and side effects. Use before implementation, during debugging, impact analysis, performance review, or code review when behavior depends on Odoo call chains.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md5.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Odoo Code Tracer

Use this skill to map how Odoo code actually executes. Trace only what you can verify in code. If a path is uncertain, mark it as uncertain and explain what evidence is missing.

First Move

Identify the starting point:

  • HTTP route or controller
  • form/list button action
  • server action or automated action
  • cron job
  • ORM method called by another addon
  • compute, onchange, constraint, inverse, or create/write/unlink hook
  • report render
  • OWL/web client action calling backend code
  • external webhook or integration callback

Detect the target Odoo version. If a version-specific reference exists, consult it before tracing version-sensitive behavior:

  • Odoo 17: odoo-17.0
  • Odoo 18: odoo-18.0
  • Odoo 19: odoo-19.0
  • Odoo 20: odoo-20.0

If $ODOO_SOURCE is set, inspect local framework code for controller dispatch, ORM behavior, decorators, web client actions, assets, tests, and version-specific execution details.

Tracing Process

  1. Locate the entry point with file and line reference.
  2. Follow the direct method call chain.
  3. Follow inheritance and super() calls through parent implementations.
  4. Check decorators and implicit triggers: @api.depends, @api.constrains, @api.onchange, inverse methods, @api.ondelete, create/write/unlink overrides.
  5. Follow XML wiring: buttons, actions, menus, reports, cron records, server actions, and external IDs.
  6. Follow frontend wiring when relevant: asset bundle, JS module, registry entry, service call, RPC/ORM call, template event.
  7. Record database operations: search, browse, read, read_group, create, write, unlink, direct SQL, savepoints, locks.
  8. Record side effects: chatter, emails, notifications, activities, reports, attachments, external API calls, queue jobs, bus events.
  9. Record security checks: auth mode, ACLs, record rules, groups, domains, company filters, sudo() boundaries.
  10. Mark exit points and returned actions/data.

What To Watch For

  • N+1 queries from searches, browses, reads, creates, writes, or unlinks inside loops.
  • Hidden side effects from computed fields, constraints, onchange methods, mail mixins, activities, and automation.
  • Unsafe sudo() that bypasses ownership, company, portal, or public-user boundaries.
  • Fragile XML linkage through renamed methods, missing external IDs, or version-specific view syntax.
  • Transaction hazards from caught database exceptions without savepoints.
  • Business rules split across views, onchanges, controllers, and scheduled actions.

Common Entry Patterns

Entry TypeWhere To LookFollow Next
Controllercontrollers/*.py, @http.routerequest env, auth, params, model calls
ButtonXML <button name="..." type="object">model method, overrides, returned action
CronXML/data ir.cron recordmodel method, batching, side effects
Server actionXML/data ir.actions.servermodel, code block, target records
Computefield compute="...", @api.dependsdependencies, store behavior, recompute path
Onchange@api.onchange, form view fieldsUI-only behavior, persisted equivalent
Constraint@api.constrains, SQL constraintsvalidation path and exception behavior
Reportir.actions.report, QWeb templateaccess, render context, attachments
OWL/RPCstatic/src, services, registriesbackend route/model method

Output Format

## Code Execution Trace

### Entry Point
- Type: Controller / Button / Cron / Server action / Compute / Onchange / Constraint / Report / OWL / Other
- Location: `path/to/file.py:XX`
- Trigger: user action, scheduler, external request, field access, module update, etc.

### Flow
```text
ENTRY: `path/to/file.xml:XX` button/action/route
-> `models/foo.py:42` Foo.action_do_thing()
   -> `models/foo.py:63` Foo._prepare_values()
   -> `models/bar.py:18` Bar.create()
   -> side effect: message_post()
RETURN: `ir.actions.act_window`
```

### Detailed Trace
- `path/to/file.py:XX` method name, decorators, inputs, key branches.
- `path/to/parent.py:XX` parent implementation reached via `super()`.
- `path/to/data.xml:XX` cron/action/report/XML ID involved.

### Database Operations
- `search`: model/domain/count if known.
- `create/write/unlink`: model/count if known.
- Direct SQL/savepoints/locks: state exact location.
- N+1 risk: yes/no/uncertain with reason.

### Security Notes
- Auth mode, ACL/record-rule expectations, groups, company behavior, `sudo()` boundaries.

### Side Effects
- Emails, chatter, activities, attachments, reports, external calls, queue jobs, bus events.

### Uncertain Paths
- State what could not be proven and what file/source would resolve it.

Response Rules

  • Always include file/line references for traced code.
  • Trace inheritance and super() explicitly.
  • Do not assume a framework path if local source is available; inspect it.
  • Do not run Odoo commands that touch a database or service without user confirmation.
  • If the trace reveals review findings, compose with odoo-code-review.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

grill-me

免费

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when the user wants to stress-test a plan, get grilled on their design, or mentions "grill me" outside an Odoo-specific context.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when the user wants to stress-test a plan against their project's language and documented decisions.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

odoo

免费

Odoo engineering workflows for addon development, codebase exploration, debugging, architecture/refactor review, manifest/docs sync, and routing to migration work. Use when the user mentions Odoo, addons, modules, manifests, models, XML views, security CSVs, record rules, Odoo shell, OWL/QWeb/assets, or when an Odoo codebase is detected.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

odoo-17.0

免费

Odoo 17 development reference for Python models and ORM (search, domain, read_group, compute fields), XML/CSV data and views, OWL/JS client code, QWeb reports, security (ACL, record rules, groups), cron and server actions, migrations and module upgrades, tests, i18n, and performance. Use this skill whenever work involves Odoo 17 or custom addons, including traceback diagnosis, addons, manifests, XML errors, HTTP controllers, business rules, feature work, refactoring, or reviews.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

odoo-18.0

免费

Odoo 18 development reference for Python models and ORM (search, domain, read_group, compute fields), XML/CSV data and views, OWL/JS client code, QWeb reports, security (ACL, record rules, groups), cron and server actions, migrations and module upgrades, tests, i18n, and performance. Use this skill whenever work involves Odoo 18 or custom addons, including traceback diagnosis, addons, manifests, XML errors, HTTP controllers, business rules, feature work, refactoring, or reviews.

中文简介正在准备中。当前显示原文说明。

mart337i/odoo-skills592026年10月2日 更新

查看 mart337i 的全部技能

报告此技能的问题