Internal · CR #1319 · deep analysis of the generated module

The module, measured

Four parallel read-only analyses of maptara_302 — every model, view, ACL, seed file and both accompanying documents — with file:line on every claim. It will not install. After the one-line fix, it is a well-wired set of data-entry forms in which no billing process ever runs.

2026-09-22 · 37 files · 1 054 lines of analysis across four reports under evidence/ticket-1319/analysis/ · 07 how it lands on the architecture · hub
Installs on Odoo 19?
No

first data file, line 10 — one fix

142 documented claims
46·52·26·18

true · partial · false · stub

Methods in the process slice
11 / 27

have real branching · 2 of those never called

Case fields already in Maptara
43 / 65

22 identical + 21 renamed

The verdict, in the order it matters

1. It does not install. security/maptara_302_groups.xml:10 writes category_id on res.groups. Odoo 19 removed that field. create() raises ValueError("Invalid field 'category_id' on model 'res.groups'"). Four lines to fix.

2. After that, the wiring is clean — genuinely. 48 views, 23 actions, 25 menus, 113 ACL rows: 0 dangling fields, 0 dangling methods, 0 dangling XML-IDs, 0 forward references, 0 deprecated view syntax, verified by a cross-reference script that was itself shown to catch six injected defects. The schema is the part Lovable is good at.

3. No billing process runs. No bundling ever executes. No account.move is ever posted. No file touches a directory. No cron exists. DAVASO and encryption are hard-coded mocks. Eight of 23 action methods have no button. Cases enter a run only after a human types them into a paper line by hand.

4. The docs describe the schema accurately and the process aspirationally. 46 of 142 claims are true; almost all of them are about fields and state names. The 44 false-or-stub claims are almost all about things happening.

142 CLAIMS IN THE HANDOVER AND MANUAL — WHAT THE CODE SAYS BACK 46 TRUE — fields, states, names 52 PARTIAL — declared, half-wired 26 FALSE 18 STUB 65 CASE + LINE FIELDS — HOW MANY MAPTARA ALREADY HAS 22 identical — claim.request / batch / move.line 21 same concept, German name 22 new — 3 exist elsewhere ≈ 19 genuinely new concepts: 6 IK kinds · DAS · route · Rechnungsart · bundling signature · Klärstatus · paper fields 27 METHODS IN CASE → RUN → PAPER → BUNDLING 9 real and reachable 2 never called 15 trivial — set a state, bump a sequence, guard a field 1 The 1 in red is papier.py:98-114: "post the invoices" — flips a boolean, creates no account.move. Of the 9 real methods, 3 are "is this field empty" checks.
Three bars, one picture. Top: the docs are right about what things are called and wrong about what happens. Middle: two thirds of the case model is maptara.claim.request wearing a German name. Bottom: the process code is nine methods, and the one that claims to post invoices posts nothing.

A · Case → run → paper → bundling

fall.py 202 · lauf.py 259 · papier.py 163 · buendelungsregel.py 49 · report A, 283 lines

B · Export → encryption → DAVASO → Dakota → returns

export.py 320 · dakota.py 108 · davaso.py 82 · ruecklauf.py 49 · report B, 242 lines

C · Rule engines, master data, KOTR, audit, security

parametersatz.py 126 · ik_umlenkung.py 54 · kotr.py 76 · stammdaten.py 89 · audit.py 63 · provider.py 56 · security 172 · data 241 · report C, 238 lines

D · Docs vs code, and would it install

handover 441 · manual 340 · 48 views · manifest · security · report D, 291 lines

What is worth keeping

From the moduleTake as
The field list — 6 IK kinds, DAS, Rechnungsart, route, bundling signature, KlärstatusColumn names on maptara.claim.submission. ~19 genuinely new concepts.
The state names — paper 14, export 9, Dakota 8Vocabulary for the submission lifecycle. Trim before adopting: several are never set by anything.
Unique-or-lock resolution — refuse on ambiguityThe pattern. Same as the design's "never default an endpoint". Re-implement with specificity, not bare priority.
The four-role model and a consistent 112-row ACL matrixReference when the §302 groups are defined. Fix the audit-table unlink first.
Spec §7, §8, §24 — EDIFACT structure, segments, TA21 separationsThe actual requirements for the DTA plugin. This is the part Lovable was fed, and it is fine.
What this changes in 07

Nothing structural — 07's four issues stand and get sharper numbers. Issue 4 ("the scaffold will be mistaken for progress") now has its evidence: 46 true claims out of 142, and the true ones are field names. The one-line message to Volker is unchanged: the workflow and the concepts are adopted; the code is reference; direct DTA is Release 2 on the existing contract.

Method: four parallel read-only analyses, each with an explicit stop condition, each writing its own report with file:line on every claim. Two of B's sharpest claims (maptara.302.krypto undefined; _sql_constraints form) were re-verified against source before publication. D's cross-reference script was validated against six injected defects. Reports: evidence/ticket-1319/analysis/{A,B,C,D}-*.md, 1 054 lines total.

Internal. Nothing here is implemented; nothing in the analysed module was modified.