| 1 | "risk", "safe to upgrade", "blast radius", executive 1-page summary | odoo-risk-overview | Executive audience + risk score output (vs odoo-deprecation-audit which is code-level audit) |
| 2 | "inventory", "list all customizations", "what have we built" | odoo-customization-inventory | Module-list deliverable for CEO/PM (vs odoo-risk-overview which scores risk) |
| 3 | "where to hook", "override method", "best place to extend", "which method should I override" | odoo-override-finding | Hook location question for ONE method (vs odoo-coding which writes the override) |
| 4 | "deprecated", "what will break", "audit before upgrade", "old API", "leftover OpenERP code" | odoo-deprecation-audit | Code-level audit (vs odoo-version-diff which is pure API diff, vs odoo-risk-overview which is executive) |
| 5 | "what changed between", "diff v16 v17", "API changes", "new features in Odoo X" (dev framing) | odoo-version-diff | Version-to-version comparison (vs odoo-feature-highlights which is marketing framing for the same data) |
| 6 | "does Odoo have X", "is X available", "is module Y in CE", "can Odoo handle/do/support X", "someone asked me if Odoo can X", "is it possible to X in Odoo" (reported-speech capability questions count) | odoo-feature-check | SINGLE feature/capability lookup - a lone yes/no question is NOT vague, do NOT brainstorm it (vs odoo-gap-analysis which handles a LIST of requirements; vs odoo-capability-proof which builds an evidence PACKAGE) |
| 7 | "gap analysis", "scope", "effort estimate", "proposal", "customer needs A,B,C - does Odoo have them" | odoo-gap-analysis | Multi-requirement -> effort matrix (vs odoo-feature-check for single feature) |
| 8 | "feature highlights", "slide", "blog post", "marketing", "release notes for non-developers", "newsletter" | odoo-feature-highlights | Marketing/business audience (vs odoo-version-diff which is dev-track diff) |
| 9 | "CE vs EE", "edition comparison", "what does Enterprise add" | odoo-addon-diff | Three-way edition comparison (vs odoo-feature-check which is single-feature) |
| 10 | "prove Odoo can", "evidence for demo", "RFP evidence", "before the demo", "competitor said Odoo can't" | odoo-capability-proof | Evidence PACKAGE (modules + code + demo steps) (vs odoo-objection-handling which produces a verbatim response paragraph) |
| 11 | "respond to objection", "counter 'Odoo can't'", "write a response", "rep is on the call", "customer says Odoo can't do X" | odoo-objection-handling | Verbatim ACA response paragraph (vs odoo-capability-proof which is technical evidence) |
| 12 | "write code", "create field", "implement feature", "write computed field", "add onchange", "add SQL constraint" | odoo-coding | The single coding front door - backend Python/XML AND frontend (see row 14). It works out per-module whether the change is backend-only / frontend-only / full-stack and dispatches the right agents (vs odoo-override-finding for finding a hook location, vs odoo-code-review which reviews existing code) |
| 13 | "review code", "check my PR", "audit this", "smell test before merge" | odoo-code-review | Reviewing EXISTING code (vs odoo-coding which writes NEW code, vs odoo-deprecation-audit which is module-level audit) |
| 14 | "JS", "widget", "OWL", "frontend", "any Odoo version", "odoo.define()", "useService", "patch component" | odoo-coding | Same unified coding skill (frontend leg) - legacy v8-14 or OWL v15+; auto-detects framework + which stacks a change needs via the Odoo version in <SHARE_DIR>/context.md or the user statement |
| 15 | "follow up with customer", "deal stalled", "draft follow-up email", "customer hasn't replied" | odoo-deal-followup | Sales AE follow-up email writer (vs odoo-objection-handling for objection response, vs odoo-discovery-summary for raw meeting notes) |
| 16 | "summarize the customer meeting", "synthesize discovery notes", "extract customer profile" | odoo-discovery-summary | Pre-proposal structured profile (vs odoo-gap-analysis for effort matrix, vs odoo-deal-followup for post-meeting follow-up email) |
| 17 | "write a blog post on Odoo", "draft a LinkedIn post", "YouTube script for Odoo", "email sequence about", "landing page copy" | odoo-content-draft | Single-piece content draft (vs odoo-campaign-plan which orchestrates multi-piece campaign, vs odoo-feature-highlights which is slide-format) |
| 18 | "plan a campaign", "plan campaign Q3", "multi-channel plan", "campaign brief" | odoo-campaign-plan | Multi-week orchestration (vs odoo-content-draft for single piece) |
| 19 | "competitor brief", "competitive analysis", "landscape brief", "threat assessment" | odoo-competitive-brief | Structured CEO/board briefing on a competitor (vs odoo-objection-handling for sales counter-talking-points) |
| 20 | "deploy checklist", "checklist before going live", "go-live checklist", "pre-deploy safety" | odoo-deploy-checklist | Pre-deployment safety items (vs odoo-deprecation-audit for code-level upgrade audit) |
| 21 | "I just cloned the Odoo repo", "set up Odoo for this project", "first time setup" | odoo-onboarding | Project-context bootstrap (vs /odoo-semantic-mcp:connect slash command for server URL/key setup) |
| 22 | "setup MCP server URL + API key" | /odoo-semantic-mcp:connect (command) | One-time infra setup, not work |
| 23 | "full bid response" / "write a complete RFP response" / "full proposal for prospect" | /odoo-respond-bid (command) | Multi-step proposal chain (vs odoo-discovery-summary or odoo-capability-proof alone) |
| 24 | "write follow-up email for customer" + explicit save-to-file ask | /odoo-draft-followup (command) | Wraps odoo-deal-followup with save step (skill alone for just draft text) |
| 25 | "synthesize discovery notes" + explicit slash kickoff | /odoo-summarize-discovery (command) | Quick slash for odoo-discovery-summary skill (bypass intake for explicit kickoff) |
| 26 | "position feature X for [slide/blog/email/proposal]" | /odoo-position-feature (command) | Multi-step chain (vs odoo-feature-check for existence-only) |
| 27 | "full upgrade plan from v to v" | /odoo-plan-upgrade (command) | Replaces legacy odoo-upgrade-planner agent; chains 4 skills + effort estimate |
| 28 | "kiểm tra giao diện / form hiển thị sai / UI review / responsive / layout vỡ" | odoo-ui-review | Rates a RENDERED screen in the browser (vs odoo-coding which WRITES the JS, vs odoo-code-review which reads source STATICALLY without a browser) |
| 29 | "console error / OWL render lỗi / trang trắng / widget không hiện / JS runtime error" | odoo-debug | Front-door for ALL debugging: reproduces, root-causes, dispatches specialist debug agents (vs odoo-ui-review which rates a working screen) |
| 30 | "visual regression / so ảnh trước-sau / UI có đổi sau khi sửa / baseline screenshot" | odoo-visual-regression | Diffs TWO states/builds for drift (vs odoo-ui-review which judges ONE screen once) |
| 31 | "quay video tính năng / demo video / screencast / video marketing" | odoo-demo-recording | Produces a REAL video/GIF of a live instance (vs odoo-capability-proof which produces TEXT/code evidence, vs odoo-content-draft which writes the SCRIPT only) |
| 32 | "setup môi trường / wire MCP / cấu hình instance URL cho visual / lần đầu setup visual" | /odoo-ai-agents:odoo-setup (command) | One-time environment bootstrap for the visual stack - wires browser MCP + writes instance URL/visual config to <SHARE_DIR>/context.md (vs odoo-onboarding which bootstraps project CODE context, vs /odoo-semantic-mcp:connect which only sets the OSM server URL/key) |
| 33 | "BRL", "business requirement list", "hàng trăm/nghìn requirement", "classify + cost", "dependency graph", "scope toàn bộ RFP", "1200 requirements", "RTM", "costed plan from requirements", "turn RFP into effort plan" | odoo-brl | FLAGSHIP large-scale pipeline: hundreds-to-thousands of items + cost estimate + dependency DAG (vs odoo-gap-analysis = short ad-hoc list, no cost/DAG; vs odoo-feature-check = single feature). Discriminator: item count scale + explicit cost/RTM/DAG signals |
| 34 | "QA suite", "release test plan", "test-plan doc for module", "deploy safety checklist", "generate tests and triage bugs", "static QA pipeline before release" | qa-suite (workflow) | STATIC release artifacts only - test-plan doc + deploy checklist + bug triage, NOTHING executed (vs odoo-acceptance which EXECUTES + adjudicates an oracle on a live instance/UI; vs odoo-code-review static source review; vs odoo-deploy-checklist the checklist phase alone) |
| 35 | "triage ticket", "support ticket", "customer reports Odoo issue", "classify this bug", "draft resolution for support case", "root cause for customer complaint", "escalate this issue", "bug report from client" | support-triage (workflow) | Full ticket triage: classify → root-cause → draft resolution/escalation (vs odoo-debug which is a dev debug session, vs odoo-deal-followup which is sales follow-up) |
| 36 | "multi-scene demo video", "storyboard and record", "assemble scenes into one video", "multi-take product demo", "quay nhiều scene ghép thành một video demo", "record and stitch demo clips" | video-produce (workflow) | Multi-scene video production: storyboard → record each scene → assemble (vs odoo-demo-recording which records a SINGLE scene/flow, vs odoo-content-draft which writes the script only) |
| 37 | "deal close cycle", "full sales closing cycle", "multi-step deal closing", "sales follow-up sequence end-to-end", "close this deal from discovery to signature" | sales-closing-cycle (workflow) | End-to-end deal-closing pipeline (vs odoo-deal-followup which is a single email draft, vs /odoo-respond-bid which produces an RFP response document) |
| 38 | "long debug session", "investigate phiên dài", "multi-turn UI debug", "ui-debug-session", "sustained troubleshooting session for Odoo UI" | ui-debug-session (workflow) | Sustained multi-turn UI debug session with state tracking (vs odoo-debug which is a single-turn root-cause investigation) |
| 39 | "content brief to publish", "full content production", "content from brief to done", "multi-step content workflow", "brief → draft → review → publish" | content-production (workflow) | End-to-end content pipeline: brief → draft → review → publish (vs odoo-content-draft which is single-piece draft only, vs odoo-campaign-plan which plans the campaign, not produces the pieces) |
| 40 | "do this as a wave", "parallelize these changes", "multi-WI PR with review and squash", "land N related changes safely without touching main", "split this work into parallel worktrees", VI: "chia viec song song", "chay nhu mot wave" | odoo-planning | User-facing parallel / multi-module delivery routes to the PLANNER, never to an executor: odoo-planning produces the wave-batched module plan (design-first chain odoo-solution-design -> odoo-planning); on approval run-harness drives the wave via its INTERNAL between-wave integration (integration branch + per-module worktrees + cherry-pick + end-of-wave review + 1 PR + squash, then STOPS at the L2-squash-gate - it never merges; the merge is owned by the subsequent odoo-pr-monitoring at the L2-merge-gate). The between-wave integration is internal to run-harness - NEVER route a user prompt to an executor. (vs odoo-coding = a SINGLE change, no git orchestration; vs odoo-brl = classify/cost requirements, writes NO code) |
| 41 | "design the solution", "thiết kế giải pháp / phân tích thiết kế", "how should I architect / structure this", "which approach", "design the data model", "plan the refactor", "design before we code", "technical design", "architecture decision" | odoo-solution-design | Designs HOW to build a non-trivial change into a gate-able design doc BEFORE coding (vs odoo-coding which WRITES code, vs odoo-override-finding which answers ONE method's hook location, vs odoo-brl/odoo-gap-analysis which classify WHAT to build + cost). Discriminator: user wants a designed/approved approach, not yet the code |
| 42 | "implement this feature end-to-end", "from requirement to working code", "design then build then review", "scope → design → code → review" | odoo-implement-feature (workflow) | End-to-end feature pipeline: gap/brl → solution-design → odoo-coding → code-review (vs odoo-solution-design which produces ONLY the design, vs odoo-coding which writes ONE change with no design/review phases) |
| 43 | "make this Odoo UI look good", "design the form/kanban/list", "this screen looks cluttered/off", "thiết kế giao diện Odoo đẹp đúng chuẩn", "đúng design-system Odoo", "design a clean portal page" | odoo-frontend-design | Knowledge-only DESIGN-QUALITY expertise for Odoo UI/UX (view-type choice, form hierarchy, semantic tokens, website/portal) - loaded by solution-design/odoo-coding and the bar ui-review rates against (vs odoo-coding which WRITES the JS/OWL/SCSS, vs odoo-ui-review which RATES a rendered screen in a browser) |
| 44 | "viết tài liệu module", "cập nhật tài liệu có ảnh chụp màn hình", "làm static/description cho module", "minh hoạ tài liệu module bằng screenshot", "write module docs with screenshots", "document this module", "screenshot-illustrated module guide", "static description with screenshots", "viết hướng dẫn sử dụng module", "create RST user guide for module", "viết doc/index.rst cho module" | odoo-doc-illustration | Produces STATIC screenshot-illustrated module docs (vs odoo-demo-recording REAL VIDEO/GIF; vs odoo-content-draft TEXT-only; vs odoo-ui-review RATES a screen; vs odoo-visual-regression DIFFS builds). DOC LAYER discriminator: "hướng dẫn sử dụng / user guide / RST / doc/index.rst" -> DOC LAYER:userguide TONE:technical DOC SCOPE:full-guide; "landing / App Store / marketing / static/description/index.html" (no guide) -> DOC LAYER:appstore TONE:marketing; omit DOC LAYER -> default appstore (writes index.html). Scope: single module = MODE:module TARGET:<abs-path>; cluster/multiple modules = `MODE:cluster TARGET:local |
| 45 | "rebase onto", "rebase branch onto another branch same version", "absorb my branch onto an updated base", "rebase feature onto X", "rebase intent", VI: "rebase nhánh lên nhánh khác cùng phiên bản", "đưa nhánh feature lên base mới", "gộp ý đồ khi rebase nhánh" | odoo-git-rebase | SAME Odoo series; whole-range rebase --onto absorbing intent (vs odoo-forward-port = CROSS major; vs parallel N-disjoint-WI delivery = odoo-planning, which plans it for run-harness's between-wave integration; vs odoo-coding = one change, nothing to replay) |
| 46 | "upgrade my module(s) to v", "migrate custom module from v16 to v17", "upgrade this cluster across majors", "make this module installable on the new Odoo version", VI: "nâng cấp module lên phiên bản Odoo mới", "chuyển module custom từ v16 lên v17", "đưa cluster lên series cao hơn" | odoo-modules-upgrade | EXECUTE a cross-major cluster upgrade (CODE-LEVEL: installable+working; DELETE core-absorbed modules) (vs /odoo-plan-upgrade = PLAN only; vs odoo-forward-port = ONE commit same major; vs odoo-deprecation-audit/odoo-version-diff = detection only) |
| 47 | "acceptance test", "QA the affected cluster / blast-radius", "run it for real on the UI", "write scenarios then run them", "verify blast-radius", "works end-to-end before release", VI: "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", "QA cụm bị ảnh hưởng" | odoo-acceptance | EXECUTE an independent oracle on a LIVE instance/UI across the affected cluster (CRUD + >=2 roles + state + search) and adjudicate PASS/FAIL/UNVERIFIED with evidence (vs qa-suite which only WRITES a static test-plan/checklist doc, nothing run; vs odoo-ui-review which rates ONE rendered screen; vs odoo-code-review which is static source review, no run). Needs a live instance + browser MCP |
| 48 | "plan the implementation / execution plan", "what order do we build the modules", "sequence this rollout / wire the lifecycle", VI: "lập kế hoạch thực hiện", "thứ tự build module", "lên kế hoạch triển khai" | odoo-planning | Turns an APPROVED design into the EXECUTION PLAN (wave-batched module order + integration cadence + module/stage->skill wiring + full lifecycle) BEFORE code; runs AFTER odoo-solution-design. Also the user front door for "parallelize / run as a wave" (row 40): it plans the wave-batched delivery; on approval run-harness drives each wave-layer via its INTERNAL between-wave integration (never user-invoked). Discriminator: odoo-solution-design = the technical DESIGN = HOW to build (data model / override strategy / approach); odoo-planning = the EXECUTION plan = build/integration order + lifecycle wiring. Pure design with no sequencing → solution-design; WRITE code → odoo-coding; classify/cost requirements → odoo-gap-analysis |
| 49 | "watch PR #N", "monitor PR #123", "babysit this PR", "drive the PR to merge", "poll CI until it goes green", VI: "theo dõi PR", "canh PR đến khi merge" | odoo-pr-monitoring | Owns the PR lifecycle AFTER a PR already exists and run-harness's between-wave integration stopped at the L2-squash-gate: polls CI + review state (via /loop in-session or /schedule cron, reading through git-toolkit), routes any CI warning/fail to odoo-debug (fix authored by odoo-coding, re-push HUMAN-gated), and on green + approved presents the L2-merge-gate and merges. Discriminator: opening + squashing the PR = run-harness's between-wave integration (internal); writing a fix = odoo-coding; diagnosing = odoo-debug. DO NOT route here to OPEN a new PR, before any PR exists, or for a single-file change |
| 50 | "thiết kế icon module", "design module app icon", "tạo icon.png cho module", "generate icon.png", "module identity icon", "design icon for Odoo app" | odoo-icon-design | DESIGN/GENERATE the module's icon.png (256x256 SVG-to-PNG) via code-gen + rasterizer - brand-aware, version-gated (vs odoo-doc-illustration which captures a 128x128 live SCREENSHOT crop as fallback; vs in-UI glyph = a Font Awesome class name -> route to odoo-coding) |
| 51 | "liệt kê tính năng module cho tài liệu", "enumerate module capabilities", "feature inventory for docs", "what features does this module ship", "catalog all module features" | odoo-doc-feature-map | FULL enumeration of all features/capabilities a module ships FOR DOCUMENTATION (vs odoo-feature-check which answers ONE single yes/no feature question; vs odoo-feature-highlights which is marketing "what's new in version X") |
| 52 | "lập kịch bản hướng dẫn sử dụng", "walkthrough scenarios for docs", "write usage scenarios", "happy-path usage guide", "document how to use this module", "tạo kịch bản sử dụng cho tài liệu" | odoo-doc-walkthrough | Authors happy-path usage SCENARIO TEXT for documentation, browser-free, no execution (vs odoo-acceptance which DRIVES live UI + yields PASS/FAIL verdict; vs odoo-content-draft which is marketing copy with channel-specific formatting; vs odoo-solution-design which designs technical architecture) |
| 53 | "đăng module lên Apps Store", "đóng gói tài liệu module", "module packaging", "store listing", "App Store submission bundle", "chuẩn bị module lên marketplace", "đóng gói đăng Apps Store kèm icon và manifest" | module-packaging (workflow) | Full App Store submission bundle: icon-design + doc-illustration marketing landing + user-guide + manifest audit BEFORE submission (vs odoo-doc-illustration row 54 for docs-only RST+HTML no icon no manifest-audit; vs odoo-icon-design for icon only; vs odoo-doc-feature-map for feature inventory only). Discriminator: explicit icon.png needed OR manifest-audit OR "đăng store / submission" -> module-packaging; docs-only (RST + HTML, no icon, no manifest audit) -> row 54 odoo-doc-illustration DOC LAYER:both |
| 54 | "viết cả hướng dẫn và landing cho module", "guide + landing page kèm ảnh", "full doc cả 2 file", "both user-guide and store description", "cả RST lẫn index.html cho module", "doc cả 2 loại không cần đóng gói", "viết hướng dẫn sử dụng và mô tả App Store cho module" | odoo-doc-illustration | DOC LAYER:both TONE:marketing DOC SCOPE:full-guide - produces BOTH static/description/index.html AND doc/index.rst with shared screenshots in ONE run. DOCUMENTATION ONLY: no icon.png generated, no manifest-audit, no store submission. Discriminator: "cả 2 file tài liệu (RST + HTML), KHÔNG cần icon, KHÔNG đăng store" -> row 54 (odoo-doc-illustration DOC LAYER:both); "full store bundle kèm icon + manifest-audit + đăng marketplace" -> row 53 module-packaging |
| 55 | "why is Odoo slow", "N+1 query", "perf audit", "optimize this query", "list view takes forever", "computed field is slow", "should I add index=True", "t-foreach performance", VI: "code bị N+1 không", "audit hiệu năng", "tối ưu truy vấn", "field có nên index không" | odoo-perf-audit | Static PERFORMANCE audit -> findings report with file:line + impact, does NOT rewrite (vs odoo-code-review = holistic multi-lens review; vs odoo-debug = live "slow right now in production" runtime diagnosis; vs odoo-coding = writes the fix) |
| 56 | "audit security", "is this code safe", "SQL injection risk", "XSS in QWeb", "check access control", "sudo bypass", "hardcoded secret", "okay to ship?", VI: "kiểm tra bảo mật code", "có bị SQL injection không", "review bảo mật trước deploy", "t-raw có an toàn không" | odoo-security-audit | Static SECURITY vulnerability audit -> severity-graded findings + exploit path, no fixes (vs odoo-code-review = general bugs/convention; vs odoo-debug = runtime symptom; write the fix -> odoo-coding) |
| 57 | "write a migration script", "rename this field in the DB", "backfill data after a column change", "split/merge a model", "generate pre/post migrate", VI: "viết migration script", "đổi tên cột CSDL", "backfill dữ liệu", "tách/gộp model", "sinh file pre_migrate/post_migrate" | odoo-data-migration | Writes `migrations//pre |
| 58 | "customer health check", "churn risk", "is this customer at risk", "upsell opportunities", "account review", "renewal coming up", "adoption is low", VI: "sức khỏe khách hàng", "nguy cơ rời bỏ", "cơ hội upsell cho khách" | odoo-customer-health | Green/Amber/Red health score + churn signals + upsell for an EXISTING customer (vs odoo-discovery-summary = NEW prospect profile; vs support-triage = one ticket; vs odoo-deal-followup = the follow-up email itself) |
| 59 | "translate this module", "export .pot/.po", "update the translation", "sync terminology", "audit term consistency", VI: "dịch module Odoo", "xuất .pot/.po", "cập nhật bản dịch", "đồng bộ thuật ngữ" | odoo-i18n | Front door for ALL Odoo translation; instance-backed, non-destructive .po MERGE (vs a one-line UI label fix -> odoo-coding; vs a rendered-UI language check -> odoo-ui-review). Needs a running instance |
| 60 | "draft a pricing proposal", "build a quote", "how much should we charge", "commercial offer", "price breakdown", VI: "báo giá", "đề xuất giá", "soạn báo giá cho khách", "bảng giá cho deal" | odoo-pricing-proposal | Customer-facing PRICING doc: license tier + impl cost + support tier + terms + total (vs odoo-gap-analysis = the effort/scope estimate that FEEDS the price; vs odoo-deal-followup = a follow-up email) |
| 61 | "respond to this RFP", "compliance matrix for these requirements", "rate these requirements against Odoo", "fill in this RFP response table", "score this tender spec", VI: "ma trận đáp ứng RFP", "đánh giá yêu cầu RFP", "bảng compliance hồ sơ thầu" | odoo-rfp-response | Formal RFP COMPLIANCE matrix (Yes/Partial/Roadmap/No/via-Extension + evidence + fit %) (vs odoo-gap-analysis = effort/quote matrix; vs odoo-capability-proof = deep code evidence for ONE requirement; vs /odoo-respond-bid = the full multi-step bid package). Discriminator: per-requirement compliance scoring, no cost |
| 62 | "write test cases", "write test_*.py", "cover this constraint with a test", "write a tour / HttpCase", "write a JS Hoot test", "translate tests to the new version", VI: "viết test cho model", "viết tour Odoo", "viết HttpCase", "dịch test sang version mới" | odoo-test-writing | Writes RUNNABLE test files (Python TransactionCase/Form/@tagged, JS Hoot/QUnit, tours) (vs odoo-qa-suite = a non-executing prose test-PLAN table; vs odoo-acceptance = run live + adjudicate PASS/FAIL; vs odoo-code-review = review existing code) |
| 63 | "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", VI: "dựng instance Odoo", "tạo DB Odoo mới", "xoá instance", "cài module chạy test" | odoo-instance | Front door for ALL live-instance lifecycle: create/drop DB, init/update modules, run tests, status (vs odoo-coding = write code; vs odoo-debug = diagnose a runtime failure; vs odoo-acceptance = drive a QA oracle on an instance) |