The Atlas BigLaw / Big Michael — documentation bound to its code
7 documents

Big Michael in a channel

Trace an @BigMichael mention from Teams or Slack: the shared dispatcher parses the command, answers instantly or dispatches async work to the orchestrator, and proactive notifications post results back when the matter task completes.

REST API endpoints

This list documents the route contract as designed in the TypeScript implementation; the Go API on main now covers it (browser OAuth uses static /auth/{google,microsoft,linkedin}/{login,callback} paths rather than :provider params). The Go API also adds routes the list below predates: playbooks, citations, deadlines, matters (health/budget), dockets, regulatory, pre-bills/invoices/OCG, LPM reports, client-voice, and GET /time-entries/export.ledes. The authoritative Go route map is biglaw-go/internal/api/ (one file per domain group); the README's REST API section reflects it.

POST   /tasks                       submit task (accepts jurisdiction, clientNumber, matterNumber)
GET    /tasks                       list tasks (access-filtered)
GET    /tasks/:id                   get task (403→404 if not permitted)
DELETE /tasks/:id                   delete a matter
POST   /tasks/:id/assign            assign lawyer(s)        [partner only]
GET    /tasks/:id/stream            SSE live progress
GET    /tasks/:id/table.csv         download tabulate output as CSV
POST   /tasks/from-template         submit from template
GET    /tasks/:taskId/rounds/:round get round state
POST   /tasks/:taskId/gates/:gateId/approve
POST   /tasks/:taskId/gates/:gateId/reject
POST   /documents                   ingest document (text) → returns practiceArea + detectedClient + suggestedLawyers
POST   /documents/upload            upload a PDF / text file → extract + ingest + classify
GET    /documents/search            semantic search (owner-scoped)
GET    /agents                      list agents
GET    /templates                   list templates
GET    /plugins                     list loaded external plugins [partner only]
GET    /settings                    read admin settings
PUT    /settings                    update admin settings (live)
GET    /me                          current principal + authEnabled
GET    /profiles                    lawyer roster (includes practiceAreas, bio)
GET    /profiles/:id                single profile
POST   /profiles                    create lawyer             [partner only]
PATCH  /profiles/:id                update profile            [partner, or profile owner (no role change)]
DELETE /profiles/:id                remove lawyer             [partner only]
POST   /profiles/:id/tone/linkedin-import  upload LinkedIn ZIP or CSV → build ToneProfile  [partner or self, 60s rate limit]
DELETE /profiles/:id/tone           clear tone profile        [partner or self]
GET    /clients                     client roster             [partner only]
POST   /clients                     create client             [partner only]
PATCH  /clients/:id                 update client             [partner only]
DELETE /clients/:id                 delete client             [partner only]
POST   /clients/:id/matters         add matter to client      [partner only]
DELETE /clients/:id/matters/:num    remove matter             [partner only]
POST   /clients/check-conflict      check name against adversary lists  [partner only]
GET    /time-entries                billable time entries (lawyers: own only; partners: all)
                                    query: profileId, taskId, matterNumber, from, to
GET    /time-entries/export.json    full time entry export as JSON  [partner only]
GET    /time-entries/export.csv     full time entry export as CSV   [partner only]
GET    /analytics/noslegal          NOSLEGAL facet breakdown across visible tasks  [partner only]
GET    /cost/summary                aggregate CostSummary across all calls        [partner only]
GET    /tasks/:id/cost              { taskId, summary, entries } (same access as task)
GET    /profiles/:id/cost           { profileId, summary, entries }               [partner or self]
GET    /auth/providers              which OAuth providers are configured
GET    /auth/:provider/login        start OAuth login (google|microsoft|linkedin)
GET    /auth/:provider/callback     OAuth callback → session cookie
POST   /auth/logout                 clear session
GET    /auth/clio/status            Clio connection status { connected, firmName, connectedAt }
GET    /auth/clio/connect           begin Clio OAuth flow                         [partner only]
GET    /auth/clio/callback          Clio OAuth callback → store tokens
DELETE /auth/clio/disconnect        revoke stored Clio tokens                     [partner only]
POST   /tasks/from-clio-matter      import Clio matter → ingest docs → submit task [partner only]
POST   /time-entries/sync-to-clio   push BigLaw time entries to Clio activities [partner only]
GET    /audit                       query audit log (access-filtered)
GET    /audit/stream                SSE live audit stream (access-filtered)
GET    /health                      health check
POST   /bots/teams/webhook          Big Michael Teams Outgoing Webhook receiver
POST   /bots/teams/notify           Internal: post message to a Teams channel
POST   /bots/teams/matter-link      Link a matter to a Teams Incoming Webhook URL
GET    /bots/teams/matter-link/:mn  Get the Teams webhook URL for a matter
DELETE /bots/teams/matter-link/:mn  Remove a matter→channel link
POST   /bots/slack/events           Big Michael Slack Events API receiver
POST   /bots/slack/notify           Internal: post message to a Slack channel
POST   /bots/slack/matter-link      Link a matter to a Slack channel ID
GET    /bots/slack/matter-link/:mn  Get the Slack channel for a matter
DELETE /bots/slack/matter-link/:mn  Remove a matter→channel link
POST   /redline                     Playbook-aware contract redline
POST   /headnotes/generate          Headnote extraction from case opinions
POST   /precedents/generate         Precedent document generation