NAI OS
A closed quarter, checked and ready to file.
The most demanding of the three, and the one where being wrong costs money. It pulls a closed quarter from the bank, computes shareholder-loan interest, builds the UStVA worksheet against real ELSTER field numbers, and assembles a pack your accountant can check — Lohnsteuer for the quarter comes from three already-collected monthly runs, not from this command directly.
%%{init: {'theme':'neutral', 'flowchart':{'htmlLabels':false,'nodeSpacing':45,'rankSpacing':55}}}%%
flowchart TD
H["Human types /nai-tax-theo"] --> C
subgraph L1 ["1 - Orchestrator (.claude/commands)"]
C["/nai-tax-theo<br/>resolves the quarter, dispatches in<br/>waves, synthesizes the pack"]
end
C -->|"Wave 1: parallel"| A1
C -->|"Wave 1"| A2
C -->|"Wave 2: after Wave 1"| A3
subgraph L2 ["2 - Subagents (each in its own context)"]
A1["qonto-collector"]
A2["loan-interest-vga"]
A3["vat-worksheet"]
end
A1 -.->|"working/*.json on disk"| A3
PR["06 Tax Agent/payroll/<3 months>/<br/>payroll.json<br/>already produced by<br/>/nai-payroll-theodora"] -.->|"read directly,<br/>not dispatched"| C
A1 --> T1
A2 --> T1
A1 --> T2
A3 --> T2
subgraph L3 ["3 - Tools (the only route out)"]
T1["Qonto MCP<br/>list / get only"]
T2["Read / Write / Bash<br/>local files"]
end
C ==> OUT["tax-pack.md<br/>human files and pays"]
classDef orch fill:#dcefe9,stroke:#0f6f63,stroke-width:2px
classDef tool fill:#f4f1ea,stroke:#8a7a5a
classDef human fill:#fdf3e0,stroke:#8a5a00,stroke-width:2px
class C orch
class T1,T2,PR tool
class H,OUT human
This is where waves earn their keep. Both Wave-1 subagents are
independent, so they run together. vat-worksheet cannot start until
qonto-collector has written working/*.json, so it waits. The handoff
between them is a file, not a conversation — which is what lets each one stay in
its own context. The quarter's Lohnsteuer figure is a file handoff too, just from a different
command entirely: /nai-payroll-theodora writes it up to three months earlier, and
this command only ever reads it.