CLA
AI Hub — Operating Manual loading…

CLA AI Hub — Operating Manual

The decision infrastructure for a professional services firm. One Hub, many tools, one partner workflow.

1. At a glance

The CLA AI Hub is the firm's operating system — a single place where partners, managers and staff do the work, and where the work done in every tool feeds back into making the Hub smarter.

Conceptually, five layers stack on top of each other:

  1. Tools — ~50 purpose-built surfaces (Email Intelligence, Client Brief Generator, Audit Planner, etc.)
  2. Shared modules — 16+ reusable building blocks (Client 360 lookup, data-freshness badge, PII guard, paste-intent classifier) that every tool can drop in
  3. APIs — Claude proxy, tool-data store, regulatory feed, learnings oracle, login tracker
  4. Cross-tool handoff mesh — every tool knows how to pass a client, a draft, an action into the next tool via the ?client=… URL protocol and the cla_output_handoff localStorage payload
  5. Anticipatory layer — the Hub surfaces what you'll need before you ask: next 48h deadlines, prior briefs, cross-sell gaps, regulatory updates, Friday report prompt
Guiding principle. Every action in the Hub should either save a click or save a memory. If a tool asks for something the Hub already knows (a client's practices, last time we met them, what was flagged), that's a bug we fix, not a feature we leave.

2. Today's shortcuts

The six things partners do every day:

I need to…OpenBecause
Triage my inboxEmail IntelligencePaste thread → Summarise / Actions / Risks / Draft in one pass
Prep a client call in 60 secondsClient BriefClient 360 lookup auto-surfaces every practice engagement, fee status, past briefs
Draft a documentDocument Drafter20 templates with interview mode for engagement letters, memos, proposals
Ask the AI anythingClaude CoworkOpen-ended session with 10 "I want to…" presets
Run a quick calculationTax Calculator15 Romanian calculators — salary, CIT, VAT, penalties, DCF
See what's due and what's quietDaily PulseFirm-wide open decisions, partner-level priorities, fix-today / decide-now queues

Keyboard shortcuts: ⌘ K opens search on any page. ⌘ ↵ processes the current form. ⌘⇧↵ in Email Intelligence runs Triage all (Summary + Actions + Risks) at once.

3. Tool index

Every tool in the Hub, grouped by purpose. Auto-generated from /shared/tools-manifest.js. Usage percentile comes from the last 7 days of login telemetry via /api/learnings.

4. Anticipatory features

Behaviours that surface automatically — you don't have to remember, search or configure.

Up Next Today

Homepage hero card. Scans every practice cache (Audit, Tax Compliance, BPS, Payroll, Legal) and shows the 6 items due in the next 48h, colour-coded by urgency, each with a Brief and Open button that routes to the right tool with the client pre-filled.

Client 360 live lookup

Any tool with a client-name input shows what the Hub already knows as you type: practice engagements, recent email threads, past briefs. Powered by /shared/client-360.js — one source of truth across Briefing, Drafter, Meetings and anywhere else it's mounted.

Prior brief suggestion

In Briefing, if you type a client briefed in the last 90 days, a gold card offers "Reuse structure" — injects the prior summary, open risks and next steps so the new brief continues the thread.

Cross-sell radar

Homepage card. Compares each client's practice footprint against the firm median and flags the ones below it, with the most-plausible gap filled in ("Acme uses Audit only — peers also use TP"). One click opens Briefing in business-development mode.

Regulatory ribbon

Top strip on 8 practice tools. Curated feed of Romanian regulatory updates (ANAF, CAFR, ASPAAS, OECD, BNR, Inspecția Muncii) filtered to the practice of the page you're on. Dismiss-per-id memory. Edited in /api/regulatory-feed.js — no deploy needed to update.

Post-meeting reminder engine

After Meeting Intelligence produces output, pick Remind me in 3 days / 1 week / 2 weeks. Reminder lives in cla_meeting_reminders and surfaces automatically in the Up Next Today card on the day.

PII redaction guardrail

Before any AI call in Email Intelligence or Cowork, the Hub scans for Romanian CNP, IBAN, card numbers and mobile numbers. If found, a modal offers Redact & send (default) / Send as-is / Cancel. Matches are replaced with [REDACTED-CNP] placeholders.

Smart-paste intent

Paste text into Email Intelligence or Cowork and the Hub classifies it — contract, financial table, regulation, CV, meeting notes, email thread. If the content clearly belongs in a specialised tool, a non-blocking nudge offers to route there.

Last-session resume

Every tool that has a history shows a "Continue: <title> — 14h ago" bar if you touched something within 48 hours. One click reloads the state.

Friday partner report

Hero card on the homepage between Fri 14:00 and Sat 10:00. Aggregates this week's briefs, triaged emails and tool-chain activity into a Cowork prompt. "Draft this week's report in 60 seconds".

Cross-tool activity counter

Homepage card: "This week: Acme Manufacturing — 4 tools, 8 events". Shows where you've been investing attention, per client, over the last 7 days. Click-through → Briefing with the client pre-loaded.

5. Cross-tool handoff mesh

The Hub is not a menu — it's a mesh. Every tool knows how to pass context forward. Two conventions carry the traffic:

The ?client= URL protocol

Any link that navigates to a tool and carries a ?client=<name> parameter will land with that client pre-filled. Receiver pages hydrate from the query string on load.

Examples:

  • /briefing/?client=Acme%20Manufacturing — opens Briefing with the name, fires Client 360 lookup, filters prior briefs
  • /command/?client=Acme%20Manufacturing — opens Email Intelligence with "Client context: Acme" in the output meta
  • /drafter/?client=Acme%20Manufacturing — opens Drafter with the recipient name set

The cla_output_handoff localStorage payload

When a tool wants to send generated content to another tool (not just a name), it writes a structured payload to localStorage.cla_output_handoff and redirects. The destination reads and clears the payload on load.

Schema:

FieldMeaning
kinddraft / reply / actions / risks / brief / memo / formula / metric / feedback
payloadThe text or JSON the destination will process
metaOptional context — client name, subject, source action
fromThe originating path
tsTimestamp the handoff was written

Routing table

Each kind routes to a canonical destination:

kindDestination
draft/drafter/
reply/command/
actions/planner/
risks/feedback/
brief/briefing/
memo/cowork/
formula/excel/
metric/controlling/
feedback/feedback/
Why this matters. Partners stop pasting between tools by hand. A variance analysis in Excel becomes a memo in Cowork, becomes a draft in Drafter, becomes an email in Command, without ever seeing a copy-paste.

6. How the Hub learns

The Hub does not sit still. Every day it reads its own telemetry and adapts.

The daily loop

  1. Observe/api/login-track records every tool visit; cla_tool_activity in localStorage tracks handoffs per client; Feedback Hub captures upvotes / downvotes; cla_sync_ts_* marks data freshness.
  2. Aggregate/api/learnings aggregates the last 7 days into a structured snapshot (top tools, active users, per-tool usage percentile, firm stats).
  3. Distribute/shared/learnings.js caches the snapshot for 30 min in sessionStorage so every page can read it cheaply.
  4. Adapt — tools consume it: the homepage surfaces the tools the firm converged on this week; Briefing modes reorder by pick rate; Cowork quick-starts bubble up what actually gets used.

What the Hub currently knows about itself

Active today
Active this week
Tools used (7d)
Reg. updates pending

Numbers pull from /api/learnings at page load. Refreshes every 30 minutes. The underlying data rolls up every login event and every tool interaction — there's no hidden tracking, just the same telemetry you see in Adoption Intelligence.

7. Shared modules reference

Reusable building blocks. Every tool imports only what it needs.

/shared/client-360.js
ClaClient360.lookup / mount / factSentence — cross-tool client search across every practice cache, recent email mentions, past briefs.
/shared/client-actions-bar.js
ClaClientActions.mount — "Pick a client → Brief / Email / Draft / 360°" widget mounted on every practice-management tool.
/shared/data-freshness.js
ClaFreshness.read / write / badge — unified "synced X ago" convention. Keeps every cross-tool dashboard reconciled.
/shared/dual-ref.js
ClaDualRef — surfaces both the Hub's canonical ID and the user's source reference (Excel short ref, ISQM code).
/shared/history-panel.js
ClaHistory.save / load / renderPanel — per-tool history store with filter-by-field support.
/shared/last-session.js
ClaLastSession.mount — "Continue: <title>" resume bar if the partner touched a tool in the last 48h.
/shared/learnings.js
ClaLearnings.get / topToolsOrdered / isEmerging / rankAmong — reads the daily aggregate so tools can adapt.
/shared/loading-safety.js
ClaLoading.guard(elementId, ms, fallback) — safety timeout that replaces or hides shimmer skeletons if the API never responds.
/shared/mode-cards.js
ClaModes.render(hostId, MODES, opts) — standardised mode button grid with scaffold-insertion.
/shared/output-actions.js
ClaOutput.copy / sendToModule / pushToOutlook / downloadText / downloadHtml / mountActionBar — every generated output gets the same Copy/→module/Outlook/.doc gestures.
/shared/paste-intent.js
ClaPasteIntent.classify / attach — six classifiers (contract, financial table, regulation, CV, email, meeting notes) that nudge the partner to the right specialised tool.
/shared/pii-guard.js
ClaPiiGuard.scan / promptIfNeeded — pre-flight Romanian PII detection (CNP, IBAN, card, mobile) with Redact/Send-as-is/Cancel modal.
/shared/regulatory-ribbon.js
ClaRegulatoryRibbon.mount — practice-filtered curated feed of Romanian regulatory updates.
/shared/user-filter.js
ClaUserFilter.isRealUser / excludeSelfAndBots — one canonical "skip the current partner + service accounts" filter.
/shared/activity-counter.js
ClaActivity.log / autotrack / aggregateThisWeek / renderHomeCard — per-client tool-chain telemetry.
/shared/friday-report.js
ClaFridayReport.mount — Friday-afternoon hero card, aggregates the week into a Cowork draft prompt.
/shared/cross-sell.js
ClaCrossSell.analyse / forClient / renderHomeCard — clients below peer median, most-plausible gap.
/shared/tools-manifest.js
ClaTools.all / byGroup / byId / byPath — single source of truth for the entire tool inventory.

8. Data, privacy & ISQM-1

What leaves the browser

AI-facing tools route through /api/claude-proxy. The proxy attaches the X-CLA-User header so only cla.com.ro / claromania.ro users can call it, and rate-limits to 20 requests/minute per user.

PII posture

Before sending any text to the AI, Email Intelligence and Cowork run it through ClaPiiGuard.scan(). Detected CNP / IBAN / card / mobile numbers trigger a modal. Partners can redact, send anyway or cancel. The default is redact.

No ambient logging. The proxy does not store thread text. Only the event — who called, which tool, when — is persisted for adoption telemetry. Redacted placeholders are the only form in which PII ever touches the AI.

Where client data lives

  • localStorage — browser-only. Holds practice caches (cla_audit_planner_v2, cla_tax_comp_mgmt, etc.), Client 360 facts, brief history, meeting reminders, recent tool activity.
  • Postgres (tool-data) — server-side, keyed by user email. Holds tool-level imports and the feedback pipeline.
  • Vercel serverless — APIs run stateless in Romania-proximate edges. Environment variables hold Anthropic, Keez, CaseWare, SharePoint secrets.

ISQM-1 evidence trail

Every Hub interaction that produces a partner decision — brief generated, draft approved, calculation run, risk flagged — can be tagged as ISQM-1 evidence and rolled up in the ISQM-1 Builder. The Builder reconciles Excel short references (3a, 3.01) with the canonical qualified codes (QO-C2-3a, QR-C2-3.01) via the notation bridge shipped 2026-04-23.

9. Adoption & analytics

Three surfaces show the firm how the Hub is actually used:

  • Adoption Intelligence — per-practice adoption rates, training gaps, prompt quality
  • Use Analytics — practice-level drill-down for partners
  • Team Activity — who logged in this week, per-user tool roster, inactive flags (current partner and service accounts auto-filtered)

All three read from the same telemetry the Hub Learns loop aggregates daily — the metrics above and the ranking of tools in section 3 share one source.

10. Changelog

Last 20 commits to main. Pulled live from the deploy via /api/changelog.

Loading…

11. Support & feedback

  • Report a bug, request a feature, upvote an ideaFeedback Hub
  • Product owner — Ionut Zeche (ionut.zeche@cla.com.ro)
  • BI & Automation teambi-automation@cla.com.ro for technical coordination
  • ISQM-1 mattersisqm1@cla.com.ro
  • CLA Global escalation — via Hugo Pinto (Tech & Innovation) or Daniel Murphy (People & Culture)

For non-trivial feature requests, attach a 2–3 sentence description of the decision the feature would help a partner make faster. The Hub is oriented around decisions, not features.

12. Glossary

Client 360The live view of everything the Hub knows about one client — practice engagements, email mentions, past briefs, fee status — assembled on-the-fly from every practice cache.
Client Actions BarThe teal "Pick a client → Brief / Email / Draft / 360°" widget mounted at the top of every practice-management tool.
Cross-tool handoff meshThe convention by which any tool can pass a client, a draft or an action to the next tool without a copy-paste (see section 5).
Decision MemoryThe accumulated history of decisions the Hub has helped a partner make — stored per-user, surfaced as "prior briefs", "last session", "you chained 4 tools on Acme this week".
Dual-refThe pattern of showing both a Hub canonical ID and the user's original source reference (Excel, CaseWare, Keez) so cross-walk is one glance, not a lookup.
Learnings oracle/api/learnings — the daily aggregate snapshot every tool reads to adapt its defaults.
Up Next TodayHomepage card listing everything due in the next 48 hours across every practice cache.
CLA AI Hub · generated live from the deploy ·