Core object model
Three canonical objects. Everything else is an attribute, a state, or a view of one of them. If a fourth noun appears in the interface for the same thing, that is a content bug.
| Object | What it is | Created by | Assignable | UI label |
|---|---|---|---|---|
| Instrument | A document issued by a regulator: an act, a regulation, a piece of guidance | Ingestion, from a subscribed source | No | Instrument |
| Obligation | A single requirement extracted from an instrument, carrying a citation to the article it came from | Extraction, then verification | No — an obligation exists whether or not anyone owns it | Obligation |
| Task | The work a person does to discharge an obligation | A user, or an automation rule | Yes — has an owner and a due date | Task |
The chain is always Instrument → Obligation → Task, one-to-many at each step. On any detail screen this chain must be readable as a breadcrumb, so a user can always answer “which law is this coming from?” in one glance.
1.1Supporting terms
A closed list. If a concept is not here, it does not get a name in the UI until it is added here.
| Term | Definition | Do not confuse with |
|---|---|---|
| Jurisdiction | The territory whose law applies: US, US-VT, UK, EU | Domain, Region |
| Domain | The subject area of regulation: AI & Technology, Privacy & Data Protection | Industry, Category |
| Regulator | The body that issues instruments, e.g. Vermont General Assembly | Source |
| Source | A specific publication channel of a regulator that a workspace can subscribe to | Regulator, Feed |
| Subscription | An active watch on a source within the workspace | Watchlist, Follow |
| Coverage | Which jurisdiction × domain × source combinations are being monitored | Scope |
| Citation | An exact extract from an instrument plus its address: Act 156, Sec. 6 | Reference, Quote |
| Evidence | A document proving a task was carried out | Document, Attachment |
| Verification | Reconciliation of extracted data against the published source | Review, Approval |
| Workspace | A client organisation and its data | Account, Tenant |
Rename table
Twenty-five changes. The reason column matters more than the new label: it is what settles the argument the second time someone proposes reverting one of these.
| Today | Becomes | Where | Why |
|---|---|---|---|
| Action Item | Obligation | Navigation, dashboard, instrument detail | Borrowed from project management and indistinguishable from Task. The instrument screen already calls these “compliance obligations” — the contradiction sits inside a single view. |
| Total Action Items | Open obligations | Dashboard KPI | “Total” names no scope. Open is countable and actionable. |
| Overdue Action Items | Overdue | Dashboard KPI | The block already establishes what is being counted. |
| Action Items (second card) | Delete | Dashboard KPI | Two cards share a name and show different numbers. |
| Priority Action Items | Needs attention | Dashboard, main column | “Priority” implies a priority field that does not exist. The list is ordered by deadline. |
| Pending Tasks | Delete from nav → filter Status: Pending inside Tasks | Navigation | A state, not a section. |
| Unprocessed Items | Inbox, or a Needs verification filter inside Instruments | Navigation | Neither which items, nor who failed to process them, is knowable from the label. |
| Legal Research | Regulations | Navigation, page title | “Legal Research” promises Westlaw. The screen searches your own instrument library. |
| Search and explore global regulatory compliance laws across all domains | Search instruments across your subscribed jurisdictions and domains. | Regulations subtitle | States the real scope. Search covers what you subscribe to, not the world. |
| Manager Dashboard / Executive Dashboard | Delete as pages → scope switch Mine · Team · Organisation | Navigation | A person's role should not be a menu item. Same data, different scope. |
| AI Consultation | Ask Glocod | Nav → right rail | In a compliance product “consultation” reads as legal advice. That is liability, not naming. |
| AI Interpretation | Summary, captioned AI-generated · not legal advice | Instrument detail tab | “Interpretation” is a term of art in law. The product produces a summary. |
| Regenerate Interpretation | Regenerate summary | Instrument detail | Follows the tab. |
| Global Activity | Coverage | Dashboard widget | “Activity” implies events. The widget shows what is monitored. |
| Last Updates | Recently ingested | Dashboard widget | In most products “Updates” means the product changelog. |
| Team Performance | Tasks completed | Dashboard widget | Name the metric, drop the appraisal. |
| Compliance Roadmap | Timeline | Navigation | “Roadmap” means product roadmap to everyone who has used software. |
| Responsibility Matrix | Ownership | Navigation | Shorter, and drops the consulting register. |
| Customer Docs | Confirm with client — Documents if these are the customer's files; move to header or footer if it is Glocod's help content | Navigation | Currently reads both ways. |
| Employee Tracking | Confirm with client — name it after the function, e.g. Training records | Navigation | “Tracking” employees reads as surveillance to the people being tracked. |
| Instrument Type: Law | Type: Act for US instruments; agree one enum | Instrument Details | Law, Act, Regulation and Guidance are currently mixed across filters and detail views. |
| Internal ID | ID, behind a Copy ID control rather than a printed row | Instrument Details | “Internal” invites the question of whether there is an external one. |
| Real-time regulatory intelligence | Delete | Sidebar footer | Marketing copy inside a working interface. The person is already a customer. |
| Nothing on fire | No obligations due in the next 14 days | Dashboard empty state | See §5.4 — states a fact instead of a mood, and names the window. |
| Inspect | Open | Search result row | “Inspect” suggests a verification action, which is a different feature. |
Banned wording
Never ships in the application, in any screen or notification.
- Action itemIn any form. Use Obligation or Task.
- Nothing on fire · You're all caught up! · WoohooIdiom and celebration in a product that manages regulatory exposure. The user is often reading this screen because something went wrong.
- Exclamation marksNot in any UI string.
- N/AAlways replaceable by the reason the value is absent. See §6.6.
- minor · light caution · just · simply · easily · seamlesslyThe product cannot judge how serious a discrepancy is for this customer, and must not soften it on their behalf.
- AI-powered · intelligent · real-time · world-classMarketing register inside the app.
- Click here · Please in buttonsA control names its action.
- An error occurredNever without saying what it means for the user's data and what to do next.
- Silent paraphrase of a legal requirementStatutory text appears verbatim, in quotation marks, with its address. Any restatement is labelled as an AI-generated summary.
Status vocabularies
One object, one set of statuses. Vocabularies do not borrow from each other, and neither do their colours.
4.1Verification — instrument and obligation
| State | UI | Colour | Means |
|---|---|---|---|
| verified | Verified against source | Neutral + green dot | Automated reconciliation matched the published document. |
| unverified | Not verified | Neutral outline | No reconciliation has run. Absence of a check, not a problem found. |
| discrepancy | Differs from source | Red | Reconciliation found a difference. The user must look before relying on it. |
Verification states never use amber. Amber is reserved for time, and that reservation is already load-bearing on the landing page. The current yellow Review badge breaks it: one colour cannot mean both “deadline” and “unverified”, or the user learns neither.
4.2Time — obligation and task
| State | UI | Colour |
|---|---|---|
| overdue | Overdue 2 years · was due 15 Jan 2024 | Red |
| due_soon ≤ 14 days | Due in 6 days · 9 Aug 2026 | Amber |
| upcoming | Due 15 Jan 2027 | Neutral |
| no_deadline | No deadline in source | Neutral, muted |
These are the only four chips in the product allowed to be amber. Note also that -2y — the current overdue chip — is unreadable: it does not say overdue, and a minus sign is not a duration.
4.3Obligation and task lifecycles
| Object | States | Also |
|---|---|---|
| Obligation | Unassigned → Assigned → In progress → Closed | Independent flag Not applicable, which requires a written reason — the audit trail needs to record why someone decided a law did not apply. |
| Task | To do → In progress → In review → Done | Blocked, which requires a reason. |
| Recurrence | One-time · Annual · Quarterly · Monthly · Ongoing | One spelling only. Not One Time, not one time, not Monitoring Requirement: One Time. |
Voice rules
Eight rules. Each one exists because the current interface breaks it somewhere.
| № | Rule | In practice |
|---|---|---|
| 5.1 | Never present absence of knowledge as fact | If no deadline was extracted, say No deadline found in source. Do not print Target: January 15, 2027 beside No specific deadline rule extracted — that pairing is the single most expensive bug in the product. See §7. |
| 5.2 | Separate “not in the source” from “nobody filled it in” | The first is a property of the law and read-only. The second is the user's job and needs a button. They must not look identical. |
| 5.3 | An empty state gives a cause and a next action | Never a bare No data. |
| 5.4 | Never say “nothing” when a filter is on | Name the filter and offer to clear it. Otherwise the user concludes the product is broken or the data is missing. |
| 5.5 | Numbers before adjectives | 3 obligations need attention, not You have some items requiring attention. |
| 5.6 | Second person, present tense, active voice | Assign an owner, not An owner should be assigned. |
| 5.7 | Statutory text is verbatim and addressed | Quotation marks, exact wording, and the citation. Anything restated is labelled AI-generated. |
| 5.8 | A control is a verb plus its object | Assign owner, Subscribe to source. Never OK or Submit. The verb survives into the confirmation: Publish produces Published. |
Message templates
Each subsection gives a formula, then every instance the product needs today. Write new strings by filling the formula, not by improvising.
6.1Empty states
Formula
Title — what is absent, stated neutrally+
Body — why it is absent+
Action — one primary control
No instruments yet
Subscribe to a regulator to start receiving legislation.
| Context | Title | Body | Action |
|---|---|---|---|
| No subscriptions at all | No instruments yet | Subscribe to a regulator to start receiving legislation. | Browse regulators |
| Queue empty, subscriptions active | Nothing due in the next 14 days | 12 obligations are tracked with later deadlines. | View all obligations |
| Filter returns nothing | No obligations in United States | 8 obligations exist in other jurisdictions. | Clear jurisdiction filter |
| Search returns nothing | No instruments match “quantum disclosure” | Try fewer words, or widen the jurisdiction and date filters. | Clear all filters |
| Instrument has no document | No source document attached | The regulator publishes this act as HTML only. | Open on regulator site |
| Instrument has no obligations | No obligations extracted | Extraction found no dated requirements in this instrument. Review the source to confirm. | View source |
| No colleagues | You're the only member | Invite colleagues to assign obligations and share review work. | Invite people |
| Task has no evidence | No evidence attached | Evidence is required before this task can be marked Done. | Upload evidence |
Illustration: one neutral outline mark. No characters, no empty boxes, no shrugging.
6.2Errors
Formula
What happened+What it means for the data+What to do+Ref, collapsed
Every error answers “have I lost anything?” In a compliance product that is the user's first question, and not one current message answers it.
Extraction failed for this instrument
No obligations were created. The source document is available, and you can add obligations manually.
| Kind | Message | Actions |
|---|---|---|
| Network | Couldn't load obligations. Your data is unchanged. Check your connection and try again. | Retry |
| Permission | You don't have access to this workspace. Ask a workspace admin to grant access. | Contact admin |
| Not found | This instrument no longer exists. It may have been removed from the workspace. | Back to Regulations |
| Field validation | Enter a date on or after 15 Jan 2026. A deadline can't fall before the instrument's effective date. | — |
| Extraction | Extraction failed for this instrument. No obligations were created. The source document is available, and you can add obligations manually. | Retry extraction · View source |
| Source unreachable | Vermont General Assembly hasn't responded since 28 Jul 2026. New instruments from this source may be missing. | View source status |
| Edit conflict | Someone else updated this obligation while you were editing. Your changes weren't saved. Review their version before reapplying yours. | Show their version |
| Limit | This search returns more than 1,000 results. Narrow the date range or add a domain filter to continue. | — |
| Unknown | Something went wrong on our side. Your data is unchanged. If it keeps happening, send us this reference. Ref: 7dfadb3-a91 | Copy reference |
6.3Notifications
Formula
Actor+event+object+deadline or jurisdiction
The first forty characters carry the information, because that is what a push preview and an inbox list show. Telegraphic register, no preamble — never We wanted to let you know that…
| Trigger | In-app | Email subject |
|---|---|---|
| New instrument | 3 new instruments from Vermont General Assembly · AI & Technology | 3 new instruments · Vermont · AI & Technology |
| Obligation assigned | Anna assigned you “Submit written report on AI use” · due 15 Jan 2027 | You've been assigned an obligation · due 15 Jan 2027 |
| Deadline near | Due in 7 days: Submit written report on AI use · Act 156 | Due in 7 days · Submit written report on AI use |
| Overdue | Overdue 3 days: Submit written report on AI use · US-VT | Overdue · Submit written report on AI use |
| Discrepancy | Act 156 differs from the published source · review before relying on the summary | Verification flag · Vermont Act 156 |
| Source silent | No response from Vermont General Assembly for 7 days | Source unreachable · Vermont General Assembly |
| Digest | 12 new instruments · 4 new obligations · 2 need an owner | Weekly summary · 12 instruments, 4 obligations |
| Mention | Anna mentioned you on “Submit written report on AI use” | Anna mentioned you |
6.4Confirmations and destructive actions
Formula
Title — a question containing the count+Consequence+Button repeating the verb and the count
Unsubscribe from 16 sources?
You'll stop receiving new instruments from these sources. Instruments already in your workspace stay.
| Action | Title and consequence | Confirm button |
|---|---|---|
| Unsubscribe all | Unsubscribe from 16 sources? You'll stop receiving new instruments from these sources. Instruments already in your workspace stay. | Unsubscribe from 16 |
| Bulk not applicable | Mark 4 obligations as not applicable? Each needs a reason for the audit trail. You can reverse this later. | Continue |
| Delete task | Delete this task? The obligation stays and returns to Unassigned. | Delete task |
| Remove member | Remove Anna from the workspace? Her 7 open tasks become unassigned. | Remove and unassign |
The confirming button always restates the action and the count. Never Yes or OK — a person clicking through a dialogue should not need to re-read the title to know what they just agreed to.
6.5Success
A fact, plus an undo where one exists. No praise.
| Toast | Undo |
|---|---|
| Subscribed to 3 sources | Yes |
| Owner assigned to Anna Petrenko | Yes |
| Task marked Done | Yes |
| PDF downloaded | No |
6.6Placeholders and missing values are different things
An input placeholder hints at a format. A missing value explains an absence. Conflating them is why the obligation screen currently reads as an empty product.
Input placeholders
| Field | Placeholder |
|---|---|
| Global search | Search instruments, obligations, tasks |
| Jurisdiction filter | Filter jurisdictions |
| Date | DD MMM YYYY |
| Not-applicable reason | Why doesn't this apply to your organisation? |
| Task note | Add context for whoever picks this up |
Missing values — N/A is never one of them
| Field | Today | Instead |
|---|---|---|
| Deadline, absent from the law | No specific deadline rule extracted | No deadline in source |
| Enforcement exposure, absent from the law | No enforcement exposure details provided | Not specified in the instrument |
| Risk level, not filled in | Not assessed | Not assessed plus an Assess control |
| Responsible function, not filled in | Not assigned | Unassigned plus an Assign control |
| Evidence required | N/A | No evidence specified in the instrument |
| Description, absent | No detailed description provided. | Hide the row entirely — an absence is not content |
The obligation detail screen splits into two blocks. Not in the source — collapsed, muted, read-only, because it describes the law. Needs your input — expanded, with controls, because it describes your backlog. Today they render identically, and eight empty fields in a row read as a product with nothing in it, when half of them are a correct statement about the statute.
6.7Loading and interim states
- Skeletons, not spinners, for lists and KPI cards.
- Long operations show real progress: Extracting obligations · 3 of 12 instruments.
- Prefer stale data over a flash of empty: keep the numbers, add Updated 4 min ago and a Refresh control.
- Never render 0 while loading. Every zero on the current dashboard is indistinguishable from a pending request — which means nobody can tell a working product from a broken one.
6.8Formats
| Value | Format | Example |
|---|---|---|
| Date | D MMM YYYY | 15 Jan 2027 |
| Date in current year | D MMM | 9 Aug |
| Relative, under 7 days | — | in 6 days · 4 min ago |
| Overdue | — | Overdue 2 years · was due 15 Jan 2024 |
| Range | — | 1 Jun – 15 Jul 2026 |
| Jurisdiction | CODE · Name | US-VT · Vermont |
| Citation | Act 000, Sec. 0 | Act 156, Sec. 6 — never Sec. 6 Art. No. 156 Sec. Sec. 6 |
| File | Type · Language · Size | PDF · English · 240 KB — never PDF • APPLICATION/PDF • EN |
| Large numbers | Comma separator | 1,248 |
| Metric change | Sign plus baseline | +12 vs last month |
6.9Controls
| Action | Label |
|---|---|
| Subscribe to a source | Subscribe / Subscribed — a toggle with a text label, never an unlabelled switch |
| Open an instrument | Open |
| Create | New task / New obligation — a labelled control, not a bare + |
| Download | Download PDF |
| Reset filters | Clear filters — one control, not two Clear all buttons in different places |
| Export | Export CSV — only if export actually works |
Landing alignment
The landing page already uses Instrument → Obligation → Task. Once §2 lands, the app and the marketing site share one vocabulary — and that becomes an argument in itself: the live demo panel shows the same words as the product. Three gaps remain, and one of them gates publication.
The claim “0 invented deadlines” rests on the product never showing a date the law does not contain. The obligation screen currently prints No specific deadline rule extracted directly above Target: January 15, 2027. Read together, those two lines disprove the headline claim on the page we are about to publish.
Until we know where that date comes from — parsed from the Sec. 6 citation, or a default — the figure cannot go live.
Divergence
- Landing: amber means time.
- App: amber means unverified.
- Landing avoids “interpretation”.
- App has an AI Interpretation tab.
Resolution
- Move app verification states off amber, per §4.1.
- Amber survives in exactly four chips, all of them about time.
- Rename the tab to Summary, per §2.
- Bring the app to the landing page, not the reverse — the colour semantics are already public.