The DOJ website has two faces
Every visitor sees the same public, read-only site — Home, Public Records, the Penal Code, the DOJ Library, and Careers. Anyone can browse those without an account. The logged-in dashboard is different for every role: after you sign in, the #dashboardSection shell swaps in a role-specific stack of panels (renderDashboardByRole() in js/dashboard.js). Login is passcode-based and only offered from an in-city DOJ terminal or the CrestWood phone app — a plain browser visit never even shows a passcode field. The header title reads Name (role), with a mail, settings, and notification bell to its right.
Everything below is a faithful mock of the real panels each role renders, filled with invented records (case numbers, names, dates). Real labels, button text, section titles, and access rules are preserved from the source.
The three role/dashboard bugs this review originally flagged are fixed. Eight major systems were added on top: Docket Stages, Sentencing Levers, Bar Discipline (dues + auto-suspend), Retainers (signed before an attorney can attach), the Case Law Shelf, Attorney Training (13 modules + a timed drill), the Firm Portal (intake queue + oversight), and License Points on traffic convictions. All are verified against the API/DB layer only — nobody has clicked through them live in the city yet, so treat every new tag below as "should work," not "confirmed working."
Every dashboard below has been rebuilt into the pattern proposed on the Revamp page: a left rail (identity block + a nav list with count badges) switches between panes on the right, with Overview first. Overview leads with a "Your Tasks" to-do card — only categories that actually have work render as sections (checkbox · task · reference · age · jump button); a role with nothing outstanding collapses to one ✓ All clear chip row instead of empty headers. Checking a task strikes it, slides it into a collapsed "Done today (N)" group, and drains the matching sidebar badge; the check-state is per-user, and tasks auto-clear the moment the underlying work actually resolves (paid, signed, ruled, etc.) — no separate "mark done" step to forget. Every category below is realism-audited: it maps to a permission/panel the role genuinely has, not a generic to-do. The old clerk daily-task seeds ("Check Discord tickets", "Update daily docket by 9PM") are gone, replaced by print queue / filings / issuance / registry items pulled from the role's real queues.
Two honest caveats: this was browser-verified across all 25 roles (zero missing/duplicate element ids, zero console errors, mobile pass) but not yet checked on an in-city NUI terminal — it needs one hard-refresh look in the real client. And a pre-existing DA/prosecutor law-office widget set (calendar "+ Add", backup, intake shortcuts) remains unwired, same as before the revamp — the sidebar move didn't touch it either way.
Hon. Marcus Vale (judge)
7 realism-audited categories: assignments, bail rulings, verdicts, sessions, sentencing submissions, recusal responses, property-warrant sign-offs. A quiet week collapses to one ✓ All clear row.
Everything the old flat stack listed below still exists — just filed under the pane it belongs to instead of one long scroll:
Hon. Eleanor Pike (chief justice)
6 categories: recusal queue, bar discipline oversight, expunged records, law firm registrations, user management, bulletin posts.
Court & Recusals = Recusal Queue + Court Sessions + Property Warrant sign-off. Oversight = Manage Users (full cap), Bar Discipline Oversight (Waive/Suspend/Reinstate, $2,500/mo dues auto-assess for private practice, 7d unpaid auto-suspends), Expunged Records, Demo/Mock Data toggle, and Law Firms. Bulletin = the City Bulletin composer. Tasks = the task list above + the availability grid.
Priya Nandakumar (master clerk)
Master Clerk = clerk's structure + Court & Recusals, Oversight, and City Bulletin — the same three extras Chief Justice gets, since both hold the Bar Discipline Oversight cap.
11 categories total: the clerk's 7 (filings, issuance, permits, invoices, closings, daily, notices) plus registrations, recusals, bar dues, and the urgent-intake pool (surfaced when a firm has an unclaimed jail-call intake).
Filing Review = New Filing composer + Pending Filings queue. Licensing & Exams = Issuance Queue, DOJ Invoices, Permit Queue, and Examinations (candidate register + exam_admin stats + Master Unlock — clerk-only sees candidate register). Print & Closings = Property Closings "Print to Sign". Court & Recusals = Recusal Queue. Oversight = Bar Discipline, Expunged Records, Demo/Mock Data, Law Firms, Manage Users (limited: approve/deny/role-below-judge/reset/suspend, not create/delete).
Tobias Reyes (clerk)
7 categories: filings, license/exam issuance, permits, invoices, closings, daily print-queue check, and correction notices. No permits or invoices are outstanding today, so those two categories don't render a section.
Filing Review = New Filing composer + Pending Filings. Licensing & Exams = Issuance Queue, DOJ Invoices, Permit Queue, and Examinations (candidate register only — exam_register, no exam-admin stats/master-unlock, Master Clerk only). Print & Closings = Property Closings "Print to Sign".
Dwayne Foster (bailiff)
4 categories, all tied to the read-only docket: upcoming sessions, room changes, bench messages, and schedule confirmations — bailiff holds no capability badges, so nothing else can generate a task.
Court Docket = the docket table + "Notify the Bench" (Message Judge / Message Clerk). Schedule & Training = the availability grid + Training Guide.
Lena Ortiz (reporter)
4 categories: outstanding transcripts for sessions marked closed, clerk transcript requests, office follow-ups, and schedule confirmations. Only transcripts for closed sessions generate a task — a session still in progress doesn't nag the reporter early.
Transcripts = Upload Transcript URL (prompts case number + URL, sends a structured DOJ message to the Clerk/Admin office). Office = the same shared availability + training pane other non-badge roles get.
Grant Halloran (marshal)
Marshal has no capability badges beyond the two mail-compose actions, so this stays a small honest chip row most days — currently one open transport task.
Office = the U.S. Marshal Dashboard blurb + Actions (Request Prisoner Transport, Report Security Incident — both pre-fill a mail compose to Police; a security incident also copies the Judge) + the shared availability/training pane.
Vivian Marsh (district attorney)
The DA/prosecutor sidebar workspace still wraps the Cole-Law-styled office chrome (js/lawoffice.js) — the header card and the four quick-link tiles (Court Calendar / Study & Reference / Skill Building / Forms & Filings) sit above the pane nav on every pane, unchanged by the revamp.
7 categories: case files, PD appointments, charge filings, bail administration, recusal requests, court sessions, bulletin posts. Exam Scores (read-only PD Bar sittings) is listed but doesn't generate a task — it's an information pane, not a queue.
Case Files = Client Files, now correctly labeled "Case Files — Prosecution" (fixed — isProsecution was previously hard-coded false) + Actions (Recusal Request). Court & Bail = Public Defenders queue (pd_queue, DA-only), Bail Administration, Court Sessions, Court Calendar. Exam Scores = read-only PD Bar sittings. Actions & Bulletin = File Charges / Request Evidence + Post to City Bulletin. Training & Backup = Study & Reference, Skill Building, and the still-unwired backup widget (unchanged since before the revamp). Work Schedule = the availability grid.
Nathan Cole (prosecutor)
Same Cole-Law office chrome as the DA, but the prosecutor's sidebar is thinner: no PD queue, no Bail Administration, no Court Sessions, no City Bulletin, no Exam Scores.
4 categories: case files, charge filings, evidence requests, notifications-driven follow-ups. No recusal or PD-queue tasks — the prosecutor role doesn't hold those caps.
Case Files = "Case Files — Prosecution" + New Client + Actions (Recusal Request). Actions & Bulletin = File Charges / Request Evidence (no City Bulletin composer — DA-only). Training & Backup and Work Schedule mirror the DA's panes.
Diane Cortez (private attorney)
Private-practice roles get the standard sidebar workspace now — the full-page DOJ LAW OFFICE takeover (Cole-Law-styled SPA, lawsites/index.php) is still one click away from the Overview pane, not a separate app to remember to open.
8 categories: retainers, intake claims, bar dues, training modules, filings, invoices, court actions, case follow-ups. Urgent jail-call intakes are the one category that also pushes a red badge onto the sidebar Intake Queue pill.
My Cases = client files + "Represent Myself" cases. Intake Queue & Retainers = Firm Portal (claim/decline requests, urgent jail-call alerts, matter assignment, Firm Overview) + retainer drafting (an attorney can't attach without a signed retainer; client-signed from their own dashboard; court-appointed counts as signed by appointment; self-rep is exempt). Forms & Filings = self-representation filing buttons. Invoices & Bills = My Invoices, Property Bills, and the Bar Standing card ($2,500/mo dues, private-practice only; 7d unpaid auto-suspends; Master Clerk waives/reinstates). Training & Study = the 13-module curriculum + timed practice drill + Examinations/Study. Court Actions = Recusal Request + Licensing.
Jordan Blake (public defender)
Same law-office pane structure as a private attorney, plus one extra Court Actions button (Submit Criminal Report to DA).
Same 8-category set as a private attorney; PDs are bar-dues exempt so that category never shows for this role.
Mina Sato (paralegal)
- fixed The dedicated "Paralegal — Filing Tools" panel (Case/Marriage/Property/Professional buttons) now renders — it was previously unreachable behind the LAW_OFFICE_ROLES branch.
- fixed Recusal was correctly left unwired and gap-flagged for a plain paralegal — paralegals still have no court-action/recusal authority by design (an attorney must take that step), so the button is now simply not shown for this role instead of rendering inert.
Paralegals get the thinnest law-office cut: no My Cases, Intake Queue, Retainers, Invoices & Bills, or Court Actions pane — those still require a licensed attorney.
Only training generates a task for this role today — a quiet filings queue collapses that category away.
Forms & Filings = the Paralegal — Filing Tools panel (Case/Marriage/Property/ Professional buttons, drafts for the clerk's review queue on behalf of the office — fixed, previously unreachable behind the LAW_OFFICE_ROLES branch) + the DOJ LAW OFFICE takeover link. Training & Study = the same 13-module curriculum + practice drill as attorneys, no biweekly standing requirement, no invoices (paralegals are bar-dues exempt). No recusal button — correctly left off by design, not gap-flagged and inert.
Officer J. Boyd (police)
4 categories: warrants, BOLOs, custody/bail roster, background checks. police and fbi share this exact set — the previous flat stack had no Daily Tasks or Scheduling card for police at all; both are now standard panes.
📍 Legion Square · Caller: Anonymous · POLICE
📍 Vinewood Blvd · Caller: Diane Cortez
Warrants (1)
Citations (2)
Bookings (1)
Licenses (2)
Criminal Records (3)
Garage: Legion · Status: Out / In use
Grand Theft Auto · Issued by Officer J. Boyd · 07/18/2026
Blue Sultan RS, fled traffic stop · By Officer J. Boyd
Grand Theft Auto, Evading · Officer J. Boyd · 07/18/2026
removed, not a gap Several router.php stub actions this review previously listed here (submitReport, serveWarrant, reportManhunt, approve/denyReport, getChargedCases, getPendingReports) were found unused and deleted — those flows moved to structured DOJ mail instead of ever being implemented as endpoints.
| Booking | Defendant | Charges | Bail | Bail Status | Status |
|---|---|---|---|---|---|
| BK-5521 | Ricky Lafleur | GTA | $25,000 | set | in_custody |
| BK-5510 | Marco Vidal | Assault | NOT BAILABLE | — | serving |
CID: CW51220 · 3 record(s) · 1 active warrant(s) · Applied 07/18/2026
| Type | License No. | Status | Points new | Expires |
|---|---|---|---|---|
| Driver's | DL-77413 | valid | 9 | 07/2027 |
| Weapons | WL-77413 | suspended | — | — |
new License Points — traffic convictions accrue points; 12 auto-suspends the license for 7 days, with 30-day decay. Visible here on the MDT and on the citizen's phone app.
Harriet Okonkwo (inspector)
Inspections & Reports = File Inspection Report / Flag Violation to DA (health, business, and building inspections all live in one office) + the clerk's Pending Filings queue reused as a "past reports" view.
Ava Whitmore (citizen)
6 categories: invoices due, filings status, exam eligibility, license points, retainer requests, case updates. Citizens have no capability badges, so this is the plainest task card of the 25 roles.
My Filings & Cases = File with the DOJ (self-representation) + My Cases. My Invoices & Bills = My Invoices + My Property Bills (read-only, pay in-game with /bills). License & Study = Examinations & Study + Licensing + License Points (visible on the phone app too). Legal Help & Retainers = requesting representation into a firm's intake queue and viewing/signing a drafted retainer.
| Invoice # | Description | Amount | Status | Issued |
|---|---|---|---|---|
| INV-3312 | Bar Examination fee | $1,200 | unpaid | 07/17/2026 |
| INV-3290 | State ID replacement | $250 | paid | 07/11/2026 |
Pay unpaid invoices in person at the city service window at City Hall (the Invoices desk).
Due: $850 · Overdue: $0 · Paid (history): $3,200
| Property | Kind | Amount | Due | Status | Escalation |
|---|---|---|---|---|---|
| Vinewood Apt 4B | rent | $850 | 07/25/2026 | due |
Read-only — pay property bills in-game with /bills.
Enter the code issued to you (Bar or DMV) after your fee is paid.
Submits your application to the Licensing Division. A fee invoice is issued if one applies.
You have the right to file any DOJ form yourself, without an attorney, and to represent yourself. Filings still go to the Clerk's queue for review.
Filed · Counsel: Jordan Blake (PD)
The 25 shipped roles include several this page never mocked individually (they weren't part of the original review's role picker). All of them are on the identical sidebar workspace as everything above.
| Role | Sidebar panes | Task categories / notes |
|---|---|---|
| admin | Same as master_clerk (clerk's 7 panes + Court & Recusals, Oversight, City Bulletin) | Same 11 categories as master_clerk — admin is master_clerk's superset. |
| fbi | Overview · MDT · Schedule & Training · Notifications | Same 4 categories as police (warrants, BOLOs, custody, background checks) — same MDT tabs, federal framing only. |
| it | Terminal Board | 3 categories: locked terminals, incidents, resets. Smallest workspace of the 25 — one pane besides Overview/Notifications. |
| governor | Executive Office · Bulletin | Honest always-visible chips, no manufactured tasks — the role has ceremonial/bulletin capability only, so Overview stays a chip row. |
| vice_governor | Executive Office · Bulletin | Same as governor. |
| mayor (and the other city mayors) | Executive Office · Bulletin | Same as governor — each mayor sees their own office framing, identical pane set. |
That's 15 roles mocked in full above + these 6 summarized = 21 of the 25; the remaining 4 are further per-mayor variants of the same "Executive Office · Bulletin" pattern.
- gap In-city NUI check — the revamp was browser-verified across all 25 roles (zero missing/duplicate element ids, zero console errors, mobile pass), but nobody has hard-refreshed a real DOJ terminal in the city to confirm the same result inside the NUI iframe.
- gap The pre-existing DA/prosecutor law-office widget set (Court Calendar "+ Add", the backup control, and the intake shortcuts on the office tiles) remains unwired — the sidebar move re-homed it but didn't change its wiring.
- gap Nothing in DOJ v4 (Docket Stages, Sentencing Levers, Bar Discipline, Retainers, Case Law Shelf, Attorney Training, Firm Portal, License Points) is in-game-acceptance-tested yet — everything above is code-complete and API-verified only.
- on hold The full DOJ document print→sign→auto-complete→retain engine remains on hold. Retainer signing is a lightweight two-party in-system action, not that engine.
CrestWood DOJ review site · mock data only · faithful to js/dashboard.js, mdt.js, reports.js, lawoffice.js, court.js and api/capabilities.php.