en un clic
odoo-mcp-client
odoo-mcp-client contient 53 skills collectées depuis Viindoo, avec une couverture métier par dépôt et des pages de détail sur le site.
Skills dans ce dépôt
Run end-to-end Odoo acceptance on a change AND its blast-radius: map the affected cluster, plan an INDEPENDENT oracle, then EXECUTE it on a real running instance/UI and adjudicate PASS/FAIL with evidence. Fire on: acceptance test, QA the affected cluster, verify on the real UI, "write scenarios then run them", verify blast-radius, "works end-to-end before release". Also Vietnamese: "nghiệm thu cụm module", "chạy thật trên UI", "kịch bản test rồi chạy", "kiểm thử chấp nhận". Sole dispatcher of odoo-qa-planner (oracle) + odoo-qa-tester (live run); chains tours/HttpCase via odoo-instance. Routing: a STATIC release test-plan doc / deploy checklist -> route to odoo-qa-suite; rating ONE rendered screen -> route to odoo-ui-review; static code or PR review with no run -> route to odoo-code-review; writing the fix -> route to odoo-coding. EXECUTION needs a live instance + browser MCP (Odoo Semantic is static, no live data); with none up it still scopes + plans the oracle, then emits NEEDS_NEXT to provision one
Produce a CE vs EE vs custom-distribution comparison for a business domain - feature table, EE-only business-value notes, and an upgrade recommendation ready for a proposal. Version-aware: uses MCP check_module_exists/model_inspect; confirm version when unspecified. Trigger when edition differences come up, even in passing. Trigger on: "CE vs EE feature table", "edition comparison", "which modules are EE-only?", "is X a CE or EE feature?", "upsell argument for EE", "PLM / Studio / Maintenance - which edition?", "which edition is module X in?". Also fires on Vietnamese: "so sánh CE và EE", "tính năng nào chỉ có ở Enterprise", "module X thuộc bản nào", "cần bản Community hay Enterprise". Trigger even when the user names a specific feature/module and asks "what edition do I need?". When the user asks about ONE feature's availability (not a comparison), route to odoo-feature-check. When they want marketing copy for the Enterprise features themselves, route to odoo-feature-highlights
Process a business requirement list (BRL) of any size - tens to thousands of items - into a classified, costed, dependency-ordered implementation plan. For each requirement: 4-way classification (Available-in-Odoo-CE / Available-in-Odoo-EE / Available-in-Viindoo / Custom) via double-profile odoo-semantic-mcp tool calls, a deterministic cost estimate (lookup table, no fabrication), and a requirements traceability matrix (RTM) for consultant export. Runs as a chunked sequential-outer / parallel-inner pipeline with checkpoint/resume after interruption. Fire ANY time someone pastes or points to a multi-item requirement list to scope end-to-end: "classify these 400 requirements", "turn this RFP spreadsheet into an effort + cost plan". Also fires on Vietnamese: "phân loại danh sách yêu cầu này", "biến RFP thành kế hoạch chi phí + công". For a SINGLE feature use odoo-feature-check; for a short ad-hoc gap matrix with no cost, no chunked pipeline, and no scale requirement use odoo-gap-analysis
Plan a multi-week, multi-channel marketing campaign for an Odoo vertical or geography push - blueprint with timeline, channel mix matrix, asset inventory, KPIs, and owner map (AI-doable vs human-required). ORCHESTRATES campaigns; does NOT draft individual content. Trigger on: "plan a campaign for", "campaign brief", "multi-channel plan for vertical X", "build a campaign blueprint", "marketing push plan for", "campaign roadmap for", "go-to-market blueprint". Also fires on Vietnamese: "lập kế hoạch chiến dịch", "kế hoạch marketing đa kênh", "chiến dịch go-to-market cho ngành X", "lộ trình truyền thông". DO NOT trigger for: individual content draft (→ odoo-content-draft), competitive positioning analysis (→ odoo-competitive-brief), feature-highlight slides for a sales deck (→ odoo-feature-highlights), capability proof for a prospect (→ odoo-capability-proof). STANDALONE-FIRST: works without MCP; OSM optional for feature-claim verification only
Review Odoo code (Python, JavaScript, XML, OWL) for bugs, convention violations, security, and performance - severity-graded findings, suggested fixes, corrected version. Dispatches to the odoo-code-reviewer agent. Fire whenever code is shared with feedback intent, even without the word "review". Trigger on: "does this look correct?", "audit this PR", "should I worry about N+1?", "before I merge", "review PR #123". Also fires on Vietnamese: "review giúp đoạn này", "kiểm tra code Odoo", "code này có bug không", "soát trước khi merge", "đánh giá PR". Trigger on model overrides, write/create overrides, computed fields, OWL components, or XML view overrides - Odoo-specific failure modes a generic reviewer misses. Static analysis only - a live render/console error -> odoo-debug, rating a rendered screen's look/UX -> odoo-ui-review. Write new code -> odoo-coding. Pre-upgrade audit -> odoo-deprecation-audit. A dedicated performance-only deep scan -> odoo-perf-audit; a security-only scan -> odoo-security-audit
Use when someone wants to build or change Odoo behavior and needs the code written - the single front door for ALL Odoo coding and the ONLY dispatcher of the per-module odoo-coder coordinator, scoping modules and ordering by dependency. Fire on ANY request to add or change something in an Odoo module, even with no technical words (e.g. "discount can never exceed 20% of unit price", "ticking urgent sets the deadline to tomorrow"): new model/field, computed/related field, constraint, onchange/auto-fill, create/write/unlink override, access rights, migration script, OWL/JS/QWeb/SCSS widget or form/list/kanban UI. Also Vietnamese: "thêm trường / model", "override create/write", "ràng buộc", "onchange tự điền", "phân quyền đọc ghi", "widget OWL / sửa form". DO NOT trigger for non-Odoo code. Review existing code → odoo-code-review. Hook point → odoo-override-finding. Design first → odoo-solution-design. Runtime/render bug → odoo-debug. Rate a screen → odoo-ui-review. Planning/estimate → odoo-planning
Produce a competitive intelligence brief for a Strategist / CEO - board-ready capability matrix vs Odoo, GTM moves (user-provided only), threat assessment, and recommended response. Standalone-first - works WITHOUT OSM. Fire when user mentions a competitor alongside strategic intent: "competitor brief on", "analyze competitor X", "competitive landscape analysis", "competitive update for board", "threat assessment for", "competitive intelligence update". Also fires on Vietnamese: "phân tích đối thủ X", "brief cạnh tranh cho ban lãnh đạo", "đánh giá mối đe doạ cạnh tranh". DO NOT trigger for: (a) sales talking-point objections ("they say Odoo can't do X") → odoo-objection-handling; (b) feature comparison drill-down between Odoo versions → odoo-version-diff; (c) detailed add-on diff → odoo-addon-diff; (d) marketing copy or campaign messaging about competitive positioning → odoo-content-draft or odoo-campaign-plan; (e) simple feature availability check → odoo-feature-check
Draft ready-to-publish marketing content for Odoo or your distribution - LinkedIn post, blog article, YouTube script, email sequence, landing page copy, or social caption. Language: English default; Vietnamese and other locales on request. Trigger on: "draft a blog post", "write a LinkedIn post", "YouTube script for", "draft email sequence", "landing page copy", "social caption for". Trigger when user asks to CREATE any of these formats - even without the word "marketing". Also fires on Vietnamese: "viết bài blog", "soạn bài LinkedIn", "kịch bản YouTube", "chuỗi email", "nội dung landing page", "caption mạng xã hội". DO NOT trigger for: proposal/gap-analysis text (-> odoo-gap-analysis), objection-handling rebuttals (-> odoo-objection-handling), feature-highlight decks (-> odoo-feature-highlights), competitive positioning briefs (-> odoo-competitive-brief), multi-channel campaign orchestration (-> odoo-campaign-plan). STANDALONE-FIRST: works without MCP; OSM optional for grounding claims
Generate a structured executive-level inventory of all custom + distribution modules in an Odoo deployment - classifying each as Standard / Distribution-maintained / True custom, surfacing business purpose, base model extended, key custom fields, and upgrade risk flag. Use this skill ANY time a CEO/CTO/PM needs to understand the scope of their Odoo investment, even if they only paste a list of module names. Trigger on: "what have we built on top of Odoo?", "scope of customization before upgrade", "M&A due diligence list our extensions", "what's safe to keep vs deprecate?". Also fires on Vietnamese: "đã tuỳ biến những gì trên Odoo", "phạm vi customization trước khi nâng cấp", "module nào nên giữ module nào nên bỏ". Trigger even if the user dumps a list of names with no context - that's the signal to enumerate. Upgrade risk scoring → odoo-deprecation-audit. Marketing feature highlights → odoo-feature-highlights
Write Odoo migration scripts (`migrations/<version>/pre-migrate.py` and/or `post-migrate.py`) for schema or data changes - field rename, type change, model split/merge, data backfill, or module data transform - using parameterized SQL and/or ORM, following openupgradelib helpers where available, plus a VERIFICATION checklist (row counts, spot-checks, rollback note). The deliverable is the written script file; executing it is a separate human-gated deploy step. Trigger on: "write a migration script", "rename this field in the database", "backfill data after a column change", "split a model", "merge two models", "generate pre/post migrate". Vietnamese triggers: "viết migration script", "đổi tên cột trong CSDL", "backfill dữ liệu sau khi đổi field", "tách model", "gộp model", "sinh file pre_migrate / post_migrate". DO NOT trigger for: WHAT changed between versions (odoo-version-diff); deploy readiness gate (odoo-deploy-checklist); full upgrade plan (odoo-plan-upgrade)
Analyze deal health for Odoo or a custom distribution and generate next actions for a Sales AE or small-team founder running go-to-market solo. Accepts deal context (label, last contact, stage, prior commitments) + an optional email/note thread; produces (a) a risk score (red/yellow/green), (b) a next-best action, (c) a draft follow-up email in English or the thread's language. Trigger on: "deal stalled", "customer hasn't replied", "draft follow-up email", time signals ("it's been 3 weeks", "deadline this month"), ambiguous-status signals ("not sure what the customer is thinking"). Also fires on Vietnamese: "deal đang đứng im", "khách chưa trả lời", "soạn email follow-up", "cần hâm nóng lại deal". DO NOT trigger for: (1) Discovery/demo session summary -> use odoo-discovery-summary. (2) Responding to technical objections -> use odoo-objection-handling. (3) Verifying or proving Odoo features -> use odoo-capability-proof or odoo-feature-check. (4) Gap analysis or scope estimation -> use odoo-gap-analysis
Front-door for ALL Odoo debugging - the moment something is broken, erroring, or behaving wrong, use this BEFORE writing any fix. Runs the scientific method (reproduce -> falsifiable hypothesis -> bisect -> confirm-by-toggle -> regression test) and dispatches specialist debug agents per phase, each at an explicitly chosen model. Fire AGGRESSIVELY on any debug/troubleshoot/diagnose intent even without "debug": a traceback or exception (Expected singleton, AccessError, KeyError, ParseError), "why is X broken/blank/wrong", "not updating", "wrong value", a failed module install/upgrade, a broken screen/widget/console error, or acute "slow right now in production". Vietnamese: "tại sao ... lỗi", "không cập nhật", "view trống", "widget không hiện", "lỗi console". Routing: write the fix via odoo-coding; proactive scans (incl. "audit my code for N+1") go to odoo-perf-audit / odoo-security-audit / odoo-deprecation-audit; static review of a diff or PR goes to odoo-code-review
Multi-phase opt-in deep survey of an Odoo codebase or scope for the EXECUTE-AGENT consumer: a broad haiku sweep, then narrow sonnet dives, then an optional opus pass, writing reusable findings to the project's shared survey cache that later phases cite. Invoked ONLY by odoo-intake AFTER the user explicitly approves a deep survey via the `deep-survey` gate keyword - it is NOT a front door and NEVER auto-triggers on a bare prompt. DO NOT trigger when: the user has not opted into a deep survey; the intent is a single-file or single-symbol lookup that Phase R recon already covers; it must be invoked via the Skill tool from the main context (not from inside a subagent). It is read-only - discovering scope, ranking hot-spots against the stated intent, mapping bidirectional impact, and handing a synthesis back to odoo-intake to re-propose a sharper plan. Applies a zero-trust code stance (descriptions are claims, source is truth) and, when a sub-question is external, a bounded conditional web-research pass
Record a screen-capture video (MP4/GIF) of one Odoo workflow for a demo, sales walkthrough, or marketing clip - driving the live instance through a scripted click path and saving the result. Capture runs via pagecast/Playwright-video MCP (chrome-devtools drives the path; screenshot→GIF fallback when the recorder is unreachable). Use when the deliverable is a video of a live flow, not a static review or bug hunt. Pushy trigger: fire on "record a demo of this Odoo workflow", "capture a GIF of creating an invoice in Odoo", "capture a short MP4 for the website", "quay video demo Odoo", "tạo video hướng dẫn quy trình". Routing: stitch many scenes / multi-scene walkthrough into one video → odoo-produce-video; RATE how a screen looks → odoo-ui-review; broken screen → odoo-debug; compare two builds → odoo-visual-regression; write frontend code → odoo-coding; code audit → odoo-code-review
Generate a pre-deployment safety checklist for an Odoo upgrade or new-module go-live - auto-fills 8 domains (pre-flight, backup, data migration, downtime, deploy mechanics, smoke tests, monitoring, rollback), marks each item READY / NEEDS WORK / NOT READY, and surfaces blockers before you push to prod. Use ANY time someone is about to deploy Odoo to staging or production. Pushy trigger: "deploy checklist", "go-live checklist", "before pushing to prod", "ready to deploy this Odoo upgrade?", "deployment readiness". Also fires on Vietnamese: "checklist trước khi lên prod", "sẵn sàng deploy chưa", "kiểm tra trước go-live". Trigger even when the user says only "deploy" in the context of Odoo. DO NOT trigger for: ongoing code work not about to be deployed; debugging unrelated to a release; questions about what changed between versions (route to odoo-version-diff); requests to audit deprecated API usage in code (route to odoo-deprecation-audit); executive risk overview (route to odoo-risk-overview)
Systematic audit of deprecated Odoo API usage in a codebase before a version upgrade - finds `@api.multi`, `osv.osv`, `_columns`, `web.Widget`, `fields.Html` and other era-specific APIs that break or warn in the target version, grouped by file with the exact replacement and urgency (BREAKING / WARN / STYLE). Resolve the target version from context; if unstated, confirm it. Pushy trigger: "upgrade", "migration", "is our code ready for vN", "what will break when we move from X to Y", "audit before upgrade", deprecated-symbol mentions ("we still have @api.multi everywhere", "OWL migration needed"). Also fires on Vietnamese: "rà API lỗi thời trước khi nâng cấp", "code chạy được trên vN không", "cái gì sẽ vỡ khi nâng cấp". Trigger even without the word "deprecation". STATIC audit only: what CHANGED between two versions -> odoo-version-diff; rewriting a module cluster to the new series -> odoo-modules-upgrade; a data/schema migration script -> odoo-data-migration; writing fresh upgrade-safe code -> odoo-coding
Transform raw discovery meeting notes (pasted or free-form) into a structured customer profile for proposal drafting - industry, current ERP, verbatim pain quotes, budget signal, timeline urgency, fit-score (1-5). Use ANY time a Sales AE or Pre-Sales Consultant finishes a discovery call and needs to synthesize notes. Fire on "synthesize discovery notes", "extract customer profile", "discovery call recap", "meeting notes to customer profile", "we had a discovery call - analyze", "tóm tắt notes cuộc họp tìm hiểu khách hàng", "vừa họp khách xong giúp tóm tắt thành hồ sơ". Trigger even on a business name + "we had a meeting". Also fires when given a file path to the notes/transcript. DO NOT trigger for internal team retrospectives, sprint planning, or developer standups with no customer prospect. When user wants to WRITE a follow-up email route to `odoo-deal-followup`; for a full effort matrix (Standard/Custom/days) route to `odoo-gap-analysis`; to handle an objection route to `odoo-objection-handling`
Enumerate ALL features, menus, views, and models a module ships - output is a machine-readable `feature-catalog.jsonl` (one entry per capability: name, type, menu path, model, business purpose, key fields) as the shared SSOT for the landing Key Features grid, the Usage guide, and walkthrough scripts. Dispatches `odoo-feature-cataloger`. Trigger on: "liệt kê tính năng module cho tài liệu", "feature inventory for doc", "bản đồ tính năng module X", "list all features of module", "catalog module screens for documentation", "danh sách màn hình / menu của module", "module capability map". Standalone-first (OSM + disk; no browser or live instance needed). route a single feature yes/no -> odoo-feature-check; route marketing highlights for a version release -> odoo-feature-highlights; route an executive audit of CUSTOM code in a client instance -> odoo-customization-inventory. DO NOT trigger for a one-feature availability check, a version release marketing brief, or a custom-code engagement audit
Produce and orchestrate illustrated documentation for an Odoo module or cluster - SOLE orchestrator: dispatches odoo-doc-scoper + odoo-doc-planner, gates the plan ONCE, then a branch-aware per-instance loop launching odoo-user-doc-writer (end-user doc/index.rst) and/or odoo-marketing-writer (App-Store index.html) per DOC LAYER. Axes: DOC LAYER appstore(default)|userguide|both; TONE technical|marketing; DOC SCOPE screenshot-doc|full-guide; CAPTURE MODE screens|scenarios. Fire on: "document an Odoo module with screenshots", "tạo tài liệu có ảnh cho module", "hướng dẫn sử dụng có ảnh cho module", "làm landing App Store cho module", "create RST user guide for module", "viết doc/index.rst cho module". Routing: text usage scenarios only, no screenshots -> odoo-doc-walkthrough; feature inventory/catalog -> odoo-doc-feature-map; record a video -> odoo-demo-recording; audit a screen -> odoo-ui-review; pure marketing copy only -> odoo-content-draft; module icon -> odoo-icon-design; write frontend code -> odoo-coding
Author happy-path usage walkthroughs for an Odoo module: structured scenarios (name, role, precondition, steps {action/target/value}, expected outcome) grounded in the module's ACTUAL behavior via OSM. Dispatches odoo-doc-scenarist. Fire on: "write walkthrough for module", "document how to use this feature", "step-by-step user guide", "lập kịch bản sử dụng cho tính năng", "user workflow cho module", "hướng dẫn từng bước cho luồng", "viết kịch bản dùng chức năng". Standalone-first; OSM PRIMARY; no browser or instance needed; TEXT scenarios only. DO NOT trigger for: illustrated docs with screenshots or an RST user guide -> odoo-doc-illustration; a feature/menu inventory catalog -> odoo-doc-feature-map; executable test code (tours/HttpCase) -> odoo-test-writing; live UI QA + PASS/FAIL verdict -> odoo-acceptance; marketing/landing copy -> odoo-content-draft; architecture before implementation -> odoo-solution-design
This skill orchestrates a continuous or one-shot Odoo forward-port - porting fixes and features from a lower-series source repo or branch up to a higher-series target - as an ordered agentic pipeline that forwards INTENT, not code text. It runs a parallel read-only intent sweep, a 4-outcome classification, an installable probe, a conditional design route-out, a Plan Mode gate, an SHA-preserving git merge, a symbol-survival check that catches autosilent field breaks, test-first adapt, per-batch verify-by-behavior, a human-confirm gate, and a PR. Invoked when asked to "forward-port", "port commits to a newer Odoo version", "merge a fix forward", "continuous forward-port", "one-shot back-of-port", or in Vietnamese "forward-port Odoo", "port fix lên phiên bản mới", "đẩy commit lên series cao", "forward-port liên tục". Do NOT use to write one isolated change (use odoo-coding), to diff two versions only (use odoo-version-diff), or to review a PR (use odoo-code-review)
Gap analysis turning a list of client requirements into a costed effort matrix (Standard / Configuration / Extension / Custom + S/M/L/XL). Now an ORCHESTRATOR - it clusters requirements by functional area, delegates each cluster to the odoo-gap-analyzer subagent (main context stays clean), then emits a reusable file artifact under the project's shared state dir. Use ANY time someone is about to quote, scope, or estimate an Odoo project - even if they don't say "gap". Fire on a list of requirements + "is this standard Odoo or do we build it?", "how many days?", "RFP has 23 requirements - classify them". Vietnamese: "phân tích gap", "cái này Odoo có sẵn hay phải build thêm", "ước lượng bao nhiêu ngày công", "ma trận effort cho báo giá". For ONE specific feature route to odoo-feature-check; for marketing highlights route to odoo-feature-highlights; for a large costed + dependency-DAG pipeline at scale route to odoo-brl
Orchestrates a same-series Odoo git rebase - replaying a feature or fix branch onto an updated base of the SAME Odoo major version - forwarding INTENT, not diff text. Pipeline: NL-intake, intent sweep, behavior comparison, outcome classification, design route-out, Plan Mode gate, rebase-onto replay, conflict-resolution loop, range-diff + dup-guard verify, human-confirm gate, and PR. Use when asked to "rebase my branch onto the updated 17.0" or "rebase PR #N onto the new base"; "rebase nhánh lên base mới cùng phiên bản" hoặc "cập nhật base cho nhánh feature". Do NOT use to port ACROSS major Odoo versions (use odoo-forward-port), to upgrade a cluster to a new major (use odoo-modules-upgrade), to write one isolated change (use odoo-coding), to diff only (use odoo-version-diff), to review a PR without rebasing (use odoo-code-review), or to parallelize N disjoint work-items with cherry-pick + squash (use odoo-planning - it plans the wave-batched delivery; rebase replays one branch range without squashing)
This skill should be used when the user asks to translate one or more Odoo modules into any target language (default vi_VN), export .pot/.po, update translations, sync terminology, or audit cross-module term consistency. Fire on "translate this module", "export .pot / .po", "update the translation", "sync terminology", "đồng bộ thuật ngữ", "dịch module Odoo", "xuất .pot/.po", "cập nhật bản dịch", or any i18n / terminology-consistency ask for Odoo. Front door for ALL Odoo translation work and the ONLY dispatcher of the odoo-translator agent; also the i18n step other workflows dispatch into (forward-port, new module, bugfix). Non-destructive contract is load-bearing: re-exporting a .po from a fresh DB destroys 40-90% of existing msgstr, so translation MEMORY is always forwarded by merge, never regenerated. Requires a running Odoo instance; missing instance is a BLOCK. Route a one-line UI label fix to odoo-coding; a rendered-UI language check to odoo-ui-review
Design and generate the module identity icon (static/description/icon.png, plus icon.svg on v19) - a version-correct SVG composed and rasterized to PNG 256x256. Dispatches odoo-icon-designer. Standalone-first; no browser or instance required; OSM optional for module category and version grounding. Trigger on: 'design an app icon', 'make an icon for this module', 'create icon for addon', 'tạo icon module', 'thiết kế biểu tượng module', 'icon.png cho module', 'vẽ icon cho addon', 'thiết kế icon cho module'. route a 128px live-screen CROP -> odoo-doc-illustration; in-UI FA glyphs in views or buttons -> odoo-coding or odoo-frontend-design; website favicon -> odoo-coding; rendered icon review -> odoo-ui-review. DO NOT trigger for editing existing screenshots, rating live screens, or authoring in-app widget glyphs
Build, drop, or drive a live Odoo instance for any series from v8 onward - create a database through Odoo, init or update modules, run tests, ensure an instance is up, or report status. Front door for ALL Odoo instance lifecycle operations and the ONLY dispatcher of the odoo-instance-ops agent. Fire on "create an Odoo instance", "spin up v17", "init these modules", "drop the test DB", "run tests on this instance", "is the instance up", "rebuild from scratch", "activate a language", or any ask that needs a live Odoo process to be provisioned, updated, or destroyed. Also fires on Vietnamese: "dựng instance Odoo", "cài module chạy test", "tạo DB Odoo mới", "xoá instance", "khởi động lại server Odoo", "nạp ngôn ngữ". Route code authoring to odoo-coding, code review to odoo-code-review, runtime diagnosis to odoo-debug, solution design to odoo-solution-design - this skill only provisions and operates the instance those skills run against
Universal front door for ALL Odoo/ERP work across 9 personas (strategy, consulting, sales, pre-sales, marketing, dev, QA, customer-success). Brainstorms WHEN intent is vague or open-ended, fast-paths (one-line gate) WHEN it is already clear, and always gates a plan before execution. Trigger AGGRESSIVELY on any of: open-ended "what can Odoo / you help me with", "I have an idea but not sure where to start", a short Odoo/ERP prompt with no concrete verb, any business outcome stated without a named skill ("I need to win this deal", "make our upgrade safe"), "not sure which skill", implicit ambiguity (one mapping to >=2 skills). Also fires on Vietnamese: "Odoo giúp được gì cho tôi", "chưa biết nên dùng skill nào", "tôi nên bắt đầu từ đâu", "giúp tôi lên kế hoạch tổng thể". DO NOT trigger (defer to that specialist, which fast-fires) when: an explicit /slash command; intent matches exactly ONE specialist and is single-step, incl. a lone yes/no capability question; the user is already mid-workflow this session
Full-delegation orchestrator that upgrades a custom module cluster from a LOWER Odoo major series to a HIGHER one in ONE PR - makes modules installable + working on the target series, deletes modules wholly absorbed by core, and rewrites/merges/splits the rest in dependency order. This is CODE-LEVEL upgrade (no data migration assumed). Fire when asked to "upgrade my modules to v17", "migrate custom module from v16 to v17", "upgrade this cluster to Odoo 18", "bring the cluster up to the next major", "make this module installable on the new version", "nâng cấp module custom lên Odoo 17", "chuyển module từ v16 lên v17", "đưa cluster lên series cao hơn". Do NOT use to transport ONE commit across majors (use odoo-forward-port), to rebase a branch on the SAME series (use odoo-git-rebase), to produce a risk + deprecation plan WITHOUT writing code (use /odoo-plan-upgrade), to scan deprecated symbols only (use odoo-deprecation-audit), or to diff two versions APIs only (use odoo-version-diff)
Craft evidence-based responses to client objections about Odoo's capabilities - using the ACA framework (Acknowledge / Counter / Affirm) backed by indexed-codebase evidence rather than marketing claims. Output includes a ready-to-paste verbatim response paragraph. Use this skill ANY time a sales engineer, account executive, or pre-sales consultant needs to push back on a doubt or competitive claim about Odoo. Fire on "handle the objection that Odoo can't do X", "respond to 'Odoo doesn't support Z'", "competitor said SAP/Microsoft does X better", "RFP scoring tool gave Odoo low on X - defend". Also fires on Vietnamese: "xử lý phản đối của khách về Odoo", "khách nói Odoo không làm được X". Trigger especially on URGENCY signals ("for the meeting today", "client is on the call", "RFP due tomorrow"). When the objection requires proof artifacts (code + modules + demo steps), route to odoo-capability-proof. When user simply wants to know if a feature exists (not defend it), route to odoo-feature-check
Bootstrap Odoo project context on first use - probe the Odoo environment (version, custom modules, active profile, naming conventions) and persist findings to the project's shared context file (gitignored), so every later `odoo-*` skill reads it as Round -1 and skips setup. Trigger AGGRESSIVELY on "new Odoo project" / "first time" signals, or when no shared context file exists yet: "set up Odoo for this project", "initialize Odoo context". Also fires on Vietnamese: "khởi tạo dự án Odoo mới", "thiết lập context Odoo". Implicit: dir has `__manifest__.py` but no shared context file yet → first `odoo-*` skill recommends onboard; intake also escalates here when context is missing. DO NOT trigger when: (1) the shared context file exists and `last_updated` < 30 days - offer "refresh?" instead; (2) no `__manifest__.py` within 3 levels; (3) the user is mid-workflow inside another skill (e.g. odoo-coding writing code) - don't interrupt; (4) the user types another skill's trigger - let that skill fire
Find the correct override point and pattern to extend Odoo behavior safely - exact method name, module/file location, ready-to-apply `super()` template, existing override chain, and version-specific compatibility notes. Use this skill ANY time someone wants to inject custom behavior into an existing Odoo flow, even describing only the BEHAVIOR without naming a method. Fire on "I want to do X when Y happens in Odoo" - even informal descriptions. Trigger on: "where to hook into sale order confirmation", "run my code when an invoice is posted", "is there already someone overriding this method?". Also fires on Vietnamese: "chèn xử lý khi xác nhận đơn bán", "chạy code khi hoá đơn được vào sổ", "nên override hàm nào cho an toàn". Version-aware: pins target version when unspecified and applies era-correct pattern. Check existing code → odoo-code-review. API diff between versions → odoo-version-diff or odoo-deprecation-audit
Audit Odoo Python/XML/QWeb code for performance problems - findings report with file:line, estimated impact, and remediation steps. Does NOT rewrite code. Covers: N+1 queries (search/browse/read/mapped inside Python loops), missing prefetch, unindexed fields in search domains or ORDER BY, expensive stored computed fields with overly broad depends, read_group misuse, ORM-in-loop, and heavy t-foreach in QWeb. Triggers on: "why is my Odoo slow", "N+1 in this model", "perf audit", "optimize this code", "list view takes forever", "computed field is slow", "should I add index=True", "t-foreach performance", "batch this query". Vietnamese triggers: "code này bị N+1 không", "audit hiệu năng Odoo", "tối ưu truy vấn", "field này có nên index không", "vòng lặp ORM", "computed field chậm". Static code audit, does not apply fixes - route the fix to odoo-coding; a holistic multi-lens PR review to odoo-code-review; live "slow right now in production" runtime diagnosis to odoo-debug
Single planning front-door for the FULL product lifecycle - turns an APPROVED Odoo technical design into one gate-able plan spanning code AND doc. Dispatches TWO planners: odoo-planner (wave-batched code-DAG + integration cadence) AND odoo-doc-planner (dependency-cluster doc schedule + instance allocation for user-guide + marketing landing). One plan covers: code -> review -> test/QA -> user-doc -> marketing-doc -> PR -> monitor -> merge. Code executes first; doc executes after code/review/QA lands. Estimates only (ADVISORY). Fire on: "plan the implementation", "execution plan", "what order do we build", "sequence this rollout". Vietnamese: "lập kế hoạch thực hiện", "thứ tự build module", "lên kế hoạch triển khai". Route the technical DESIGN (data model / override strategy) to odoo-solution-design; WRITING code to odoo-coding; costing requirements to odoo-gap-analysis. DO NOT trigger for pure design (no execution sequencing)
Owns the PR lifecycle AFTER run-harness opens the PR and stops at the L2-squash-gate. A POLLER, not a blocking DAG node: it watches the PR CI status + review state via /loop (in-session) or /schedule (cron), reading through git-toolkit's git-ops skill. On ANY CI warning/error/fail it routes to odoo-debug (root-cause first; fixes authored by odoo-coding) - the fix re-push is ALWAYS human-gated (X2), never an autonomous push from the unattended poller; a max_review_rounds cap stops review ping-pong (exhaustion -> BLOCKED for a human). On green + approved it presents the L2-merge-gate, merges via git-ops, then runs post-merge cleanup. Fire on: "watch PR #N", "babysit this PR", "drive the PR to merge", "poll CI until it goes green". Vietnamese: "theo dõi PR", "canh PR đến khi merge". Route opening + squashing the PR to run-harness; writing a fix to odoo-coding; diagnosing the failure to odoo-debug. DO NOT trigger to open a NEW PR, before any PR exists, or for a single-file code change (odoo-coding)
Build a customer-facing pricing proposal for an Odoo deal - license tier recommendation (CE vs EE), implementation cost breakdown, support/maintenance tier, payment terms, optional volume and multi-year discounts, and a clear total with next steps. Accepts customer segment (SME / mid / enterprise), module scope, implementation effort in days (ideally from odoo-gap-analysis output), support SLA tier, and region. Outputs a structured sales document the AE can send or use as a conversation anchor. Trigger on: "draft a pricing proposal", "build a quote", "how much should we charge", "put together a commercial offer", "price breakdown". Vietnamese triggers: "báo giá", "đề xuất giá", "soạn báo giá cho khách", "lập bảng giá cho deal này", "ước tính chi phí cho khách hàng", "đề xuất thương mại". DO NOT trigger for: gap analysis/effort estimation (odoo-gap-analysis), feature check (odoo-feature-check), deal follow-up email (odoo-deal-followup), technical objections (odoo-objection-handling)
Produce a static release QA package for an Odoo feature or module in one pass: generate a structured release TEST-PLAN (test-case table, non-executing), gate on a pre-deploy safety checklist, and triage user-reported bugs with severity, repro steps, and suspected module. Delegates phases via the Skill tool (odoo-deploy-checklist for checklist; odoo-debug for runtime triage), handles test-gen and bug-triage inline. Trigger on: "write test cases for this feature", "QA checklist before release", "triage this bug", "full QA suite", "test plan for this release". Also fires on Vietnamese: "viết test case", "checklist QA trước release", "triage bug / phân loại lỗi", "kế hoạch test cho bản phát hành". Do NOT trigger for: executing or adjudicating acceptance on a live instance or cluster (route to odoo-acceptance); pure code review (route to odoo-code-review); pre-deploy gate alone (route to odoo-deploy-checklist directly); writing executable test files (test_*.py/Hoot/tours) route to odoo-test-writing
Rate Odoo compliance per RFP requirement and produce a response matrix - columns: Requirement | Odoo path (module/model/feature) | Compliance (Yes / Partial / Roadmap / No / via-Extension) | Evidence | Notes/effort - plus an executive summary (overall fit %, key strengths, gaps needing custom work). Use ANY time someone hands you a list of RFP requirements and needs a formal compliance response. Fire on: "respond to this RFP", "compliance matrix for these requirements", "rate these requirements against Odoo", "fill in this RFP response table", "score this tender spec against Odoo". Vietnamese triggers: "ma trận đáp ứng RFP", "đánh giá yêu cầu RFP với Odoo", "lập bảng compliance cho hồ sơ thầu", "phản hồi hồ sơ thầu". Route to odoo-gap-analysis for effort/quote matrix; odoo-capability-proof for deep code evidence on a single requirement; odoo-feature-check for a single yes/no availability question outside RFP context
Produce an executive-level Odoo risk dashboard - quantifying upgrade risk (deprecated API counts), change blast radius (how widely a field/method is depended on), and dependency health - into a one-page summary a CEO or CTO can act on, scoped to the active tenant profile + target version (confirm both if unstated). Use ANY time a manager, sponsor, or executive asks about Odoo system health, upgrade readiness, or "how risky is it to change X?". Pushy trigger: "give me a risk overview", "what's the upgrade risk", "is it safe to upgrade", "blast radius if we deprecate field X", "technical debt - give me numbers". Also fires on Vietnamese: "rủi ro nâng cấp", "nâng cấp có an toàn không". Trigger especially on a deadline or decision context ("board meeting", "before we commit budget", "RFP due"). When the user wants a per-line technical audit of deprecated APIs (not an executive summary), route to odoo-deprecation-audit. When they want module-by-module business inventory, route to odoo-customization-inventory
Audit Odoo Python, JavaScript, XML, and QWeb code for security vulnerabilities - severity-graded findings report with file/line, exploit path, and concrete fix. Reporting only - does NOT write fixes. Covers: SQL injection (cr.execute with f-string/% concat), XSS (t-raw / Markup misuse), access control gaps (missing ir.model.access.csv, sudo() ACL bypass, unsafe auth='public'), CSRF, unsafe deserialization (eval/pickle/safe_eval), hardcoded secrets. Trigger on: "audit security", "is this code safe", "SQL injection risk", "XSS in QWeb", "check access control", "sudo bypass", "hardcoded secret", "CSRF in controller". Vietnamese triggers: "kiểm tra bảo mật code Odoo", "có bị SQL injection không", "review bảo mật trước khi deploy", "t-raw có an toàn không". Also fires when user shares controller/model/view code and asks "okay to ship?" or "anything to worry about". For fixes route to odoo-coding; for a runtime symptom needing root-cause route to odoo-debug
Design the technical solution for a non-trivial Odoo change BEFORE code is written - the design step between requirement analysis (odoo-brl / odoo-gap-analysis) and coding (odoo-coding). Dispatches the odoo-solution-architect agent to produce a gate-able Technical Design Document grounded in OSM. Use it to decide HOW to build (inheritance axis, stored vs computed, new module vs extend) - not just WHAT to build or to immediately WRITE code. Fire on: "how should I architect/structure this", "design the solution / data model", "which approach", "plan the refactor", "technical design". Vietnamese: "thiết kế giải pháp", "phân tích thiết kế", "chọn cách tiếp cận nào", "lên kế hoạch refactor". For ONE method's hook use odoo-override-finding; to WRITE code use odoo-coding; to REVIEW use odoo-code-review; to classify a requirement LIST use odoo-brl / odoo-gap-analysis; for the build ORDER of an approved design use odoo-planning; for usage/walkthrough scenarios use odoo-doc-walkthrough