Guide: advisor integration
Status: shape-only. The advisor lens API does not exist yet on the membrane (see 022 gap report item 10). This guide walks how to model a Steuerberater / Kanzlei integration today using fixture evidence bundles, and what it will look like when the lens API lands.
A Steuerberater (tax advisor), Kanzlei (law firm), auditor, or other professional engages with a company Geist through a lens — see concepts: advisor lenses.
Today: model the shape; admit fixture evidence
Section titled “Today: model the shape; admit fixture evidence”Until the lens API lands, an advisor “intervention” enters the Geist as a fixture evidence bundle that downstream operations cite.
Steuerberater review for a bookkeeping fact
Section titled “Steuerberater review for a bookkeeping fact”In the German invoice / payment / advisor flow, the bookkeeping fact
requires advisor_evidence:
const bookkeeping = await client.economicBookkeepingFact({ tenant: "tenant_node:rheinwerk_calibration", invoice: "invoice:fixture", payment_observation: "payment_observation:fixture", advisor_evidence: "evidence_bundle:steuerberater_review",});The evidence_bundle:steuerberater_review is fixture today. In a
real Koerper, the Steuerberater console would:
- Project the relevant atoms (invoice, payment) into the Steuerberater’s view.
- Allow the Steuerberater to approve / request correction.
- The Steuerberater’s decision is captured client-side.
- The Koerper posts the captured decision through
evidence.connector.ingestwithkind: "advisor":
const advisorEvidence = await client.connectorEvidenceIngest({ tenant, subject: "company_geist:rheinwerk_calibration", kind: "advisor", idempotency_key: "steuerberater-review-2026-04-001", source_system: "fixture_steuerberater_console", source_label: "fixture", source_hash: "sha256:fixture_advisor_decision", raw_kind: "fixture_json", claims: ["bookkeeping_advisor_decision"], advisor_decision: "clear", // | "reserve" fixture: true,});
// advisorEvidence.body.evidenceBundle is now usable as advisor_evidenceThe connector-evidence path is the broader fallback for any advisor
decision (today it captures the Steuerberater’s choice as redacted
hash-only evidence). For first-class advisor opinions tied to a lens
and matter, prefer advisor.openMatter and advisor.issueOpinion
described next.
Lens-scoped intervention API
Section titled “Lens-scoped intervention API”The membrane exposes a first-class lens, advisor, and intervention
surface today as staging-durable fixture operations. Production
admission and real professional-trust cryptography remain closed; raw
payloads, full tenant graphs, and biometric material are refused.
const matter = await client.advisorOpenMatter({ tenant, lens: "lens:rheinwerk_steuerberater_q1_2026", subject: "company_geist:rheinwerk_calibration", scope: ["invoice.*", "payment.*", "bookkeeping.*", "period.*"], validityWindow: { from: "2026-01-01", to: "2026-12-31" },});
const opinion = await client.advisorIssueOpinion({ tenant, lens: "lens:rheinwerk_steuerberater_q1_2026", matter: matter.body.matter, kind: "vat_treatment_opinion", reviewedAtoms: ["atom:invoice_...", "atom:payment_..."], conclusion: "clear", conditions: ["valid_only_for_period_2026_04"], validityWindow: { from: "2026-04-26", to: "2027-04-26" },});The opinion is recorded as scoped advisor evidence with the Steuerberater’s identity binding, scope, and reliance terms; it is not yet a production opinion atom and the advisor is not an admin.
Building a Steuerberater console today
Section titled “Building a Steuerberater console today”The console you build today should:
1. Display projections of advisor-visible atoms
Section titled “1. Display projections of advisor-visible atoms”Define the engagement scope through lens.scope and pull redacted
disclosures through lens.disclose rather than filtering raw
commit.recent results client-side. Use commit.recent and the read
models (read.standing.active, read.proofs.history) for membrane-safe
list and detail surfaces inside the lens scope.
2. Render structured atoms, not generic dashboards
Section titled “2. Render structured atoms, not generic dashboards”Show:
- the invoice atom (capability ref, amount, currency, customer ref, evidence refs),
- the payment observation atom (matched amount, source),
- the closure surface (open / resolved),
- any existing tensions,
- the receipts.
3. Allow the Steuerberater to issue a decision
Section titled “3. Allow the Steuerberater to issue a decision”Preferred: a button that posts advisor.issueOpinion with the matter,
lens, reviewed atoms, and conclusion. The connector path
(evidence.connector.ingest with kind: "advisor" and
advisor_decision: "clear" or "reserve") remains the broader
hash-only fallback when no scoped lens or matter is in place yet.
4. Surface fixture status
Section titled “4. Surface fixture status”Display fixture: true on every receipt the console shows.
5. Maintain confidentiality
Section titled “5. Maintain confidentiality”The Steuerberater console must not display data outside the
engagement scope. The membrane exposes lens.scope and lens.disclose
as staging-durable operations that record explicit field scope and
return redacted disclosures; the console should call them rather than
relying on client-side filtering. Raw DB rows, raw connector payloads,
and biometric material remain refused.
6. Record reliance terms
Section titled “6. Record reliance terms”Display the lens’s validity window, scope, and revocation path.
These come from the engagement’s lens definition recorded through
lens.scope on the membrane.
What an advisor lens engagement will eventually look like
Section titled “What an advisor lens engagement will eventually look like”lens object professional ref e.g. steuerberater:meier_partner_munich subject company e.g. company_geist:rheinwerk_calibration visible_facts atoms in scope permissible_operations what the advisor may propose issueable_opinions opinion kinds reliance_terms what the company may rely on confidentiality_terms what the advisor may not disclose validity_window from / to revocation_path how either party may revoke proof_export_rights what proofs the advisor may pullEach opinion the advisor issues is an atom citing the lens, the matter, and the reviewed atoms. The advisor’s professional standing (through a professional Pendulum) gates which opinion kinds they may issue.
What you cannot build today
Section titled “What you cannot build today”- A real lens-scoped projection that excludes out-of-scope atoms at the membrane.
- A signed Steuerberater opinion atom with attested professional standing.
- A Kanzlei matter with first-class capability gating.
- A bilateral edge between the company Geist and the advisor’s own Geist (the mesh; see 022 item 13).
Where to read next
Section titled “Where to read next”- Concepts: advisor lenses
- Concepts: pendulums and Verlag
- API: evidence (advisor evidence ingestion)
- API: economy (where advisor evidence is cited)
- Guide: German invoice / payment / advisor