glennandClaude Opus 5 6b48fdf126 Refuse to run on config keys the builder cannot build
build_demo.py reads every key with cfg.get(), so a config describing objects it does
not implement was skipped in silence — it printed DONE over an empty database. That
is the same "reports success over an environment that isn't" failure the purge section
exists to prevent, one layer up, and it is how a vertical config (take-offs, progress
statements) would have failed.

Unknown top-level keys now list themselves and abort. DEMO_ALLOW_UNKNOWN_KEYS=1
overrides for a deliberate partial run. Keys starting with _ stay free for comments,
so the shipped example config passes clean.

SKILL.md now states outright that build_demo.py is a per-engagement template rather
than an engine, since that is what makes the failure mode surprising.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 11:10:16 +02:00

Callista Odoo Demo

Turn a discovery call into a complete, working Odoo demo — and the documents to sell it, before and after the meeting — with an AI agent doing the build.

Fork of Smetools/odoo-demo-architect (MIT). See UPSTREAM.md for the fork point and what diverges.

A Claude Code skill. Point it at whatever discovery material exists — a transcript, meeting notes, an email thread, Knowcap, or nothing at all — and a reachable Odoo instance. It writes the discovery brief, researches what Odoo does natively vs. what needs building, stands up a live database (modules + realistic data + the 12 "hero" features that win the deal), tests that those features actually fire, and generates the sales documents. After the demo it writes the follow-through set.

Three phases

Phase Produces
A — Discovery brief discovery_brief.md in a fixed six-section shape, from any source. Infers first, asks the gaps in one batch
B — Build A live Odoo DB with working heroes, a verification log with real numbers, and three sales docs: run-of-show, decision-maker one-pager, 1-page demo script
C — Follow-through Objection sheet, scoped quote, implementation timeline, statement of work

Each phase is usable alone. Phase C runs days after the demo.

Verticals extend this

Vertical skills (e.g. buildease-demo for construction) wrap this one and supply only their own module routing, solution precedence, purge chain, demo-data policy, and follow-through framing. They do not restate the pipeline. See Extension points.

Install

git clone <this repo> ~/.claude/skills/callista-odoo-demo

Then ask Claude: "build an Odoo demo for <client> from these notes."

Do not install this as odoo-demo-architect — skills resolve by directory name, and a same-named fork silently shadows upstream depending on install order.

Prerequisites

  • Claude Code.
  • A reachable Odoo instance + API key (Settings → My Profile → Account Security → New API Key).
    • On Odoo.sh: create the project + enter any partner trial code first (web-only), then come back with the DB URL + API key.
  • Optional: Knowcap with its MCP connected, as one possible discovery source → knowcap.ai.
  • Optional: the Perplexity MCP for the native-vs-custom research step (web search works too).

Quickstart

  1. Put your Odoo creds in env vars (or scripts/creds.json): ODOO_URL, ODOO_DB, ODOO_LOGIN, ODOO_KEY.
  2. Verify the connection: python scripts/odoo_connect.py → prints server_version.
  3. Copy demo_config.example.jsonscripts/demo_config.json, fill it from the brief.
  4. Ask Claude to run the pipeline (see SKILL.md).

scripts/creds.json and scripts/demo_config.json are gitignored — they hold client API keys. Keep it that way.

Read this before touching Odoo 19

Several core fields were renamed in v19 (res.users.group_ids, res.groups lost category_id, etc.), credit limit is warning-only natively, and fleet load-by-weight needs stock_fleet. All the footguns are in reference/odoo19-field-gotchas.md so you don't relearn them the hard way.

Files

SKILL.md                           the procedure (what the agent follows)
UPSTREAM.md                        fork point + divergence from upstream
scripts/odoo_connect.py            XML-RPC connector + helpers
scripts/build_demo.py              config-driven data + hero builder (template)
demo_config.example.json           per-client config shape
reference/odoo19-field-gotchas.md  version-specific fields + footguns
templates/                         brand.css + the doc templates

License

MIT — see LICENSE. Original copyright SMEtools; modifications Callista BV.

Credit

Original by SMEtools — Odoo implementation + AI automation. Fork maintained by Callista BV. Runs on Claude Code.

S
Description
Callista fork of Smetools/odoo-demo-architect — generic Odoo demo substrate (discovery brief, live build, follow-through docs).
Readme MIT
160 KiB
Languages
HTML 59%
Python 41%