glennandClaude Opus 5 d913cdf09a Add the run-of-show and one-pager templates the README describes
templates/README.md specified three docs; only demo-script-1pager.template.html
existed, so two of the three were rebuilt from the prose every engagement. Both
now ship, matching the section order the README already documented, with
brand.css inlined and no external deps beyond Google Fonts.

The markup comments say what belongs in each slot rather than naming it: status
pills come from the verification log, so "tested" means Test heroes actually
exercised it; the pre-loaded data table marks the records that must stay
untouched, because a live click is consumed the first time it is used.

Two rules from the first engagement to use them:

No rate card means deleting the investment grid and keeping the note that
explains its absence. Filling those cards to avoid a gap contradicts Phase C's
"every number traces to something", and an invented figure becomes the figure
you are held to.

The docs carry spoken lines, so write them in the language the demo is held in.
An English Say column for a Dutch demo gets translated live in the room, which
is exactly where the wording stops matching the client's own quoted words.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:43:27 +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%