Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt

Use this file to discover all available pages before exploring further.

Last regenerated: 2026-04-18 (PF-99) Source of truth: MODULE_REGISTRY in src/platform/modules/module-registry/. DB-backed catalog: pf_quick_action_catalog (seeded from registry; see § Workflow). Total registered: 116 quick actions across 11 cores. This document is a snapshot of every quick action exposed by the runtime registry. Quick actions surface in the command palette (⌘K), header dropdown, dashboard QuickActionsCard, mobile dock, and per-page contextual hooks — see src/platform/navigation/ for consumers.

Stable keys

Action keys are computed by computeQuickActionKey(moduleId, navGroupId?, route) in src/platform/navigation/quick-action-catalog.ts. User and org JSON preferences (pf_org_quick_action_selections) store action_key, not labels — relabels are safe. Format:
  • Module-level: {moduleId}::{slugified-route} (e.g. gr::gr:incidents:report).
  • Nav-group level: {moduleId}::{navGroupId}::{slugified-route}.

Workflow: keeping the DB catalog in sync with the registry

The runtime MODULE_REGISTRY is the source of truth for rendering. The DB table pf_quick_action_catalog is a copy of that data used by org-admin tooling (pf_org_quick_action_selections references rows by action_key). When you add or change a registry quick action:
  1. Edit the relevant src/platform/modules/module-registry/{core}.ts file.
  2. Re-run the inventory generator:
    npx tsx scripts/dev/print-quick-action-catalog-seed.ts > /tmp/qa-rows.sql
    
  3. Add a follow-up migration supabase/migrations/<TIMESTAMP>_<name>_pf_quick_action_catalog_seed.sql that UPSERTs the changed rows on action_key. The latest seed migration template lives at supabase/migrations/20260418021116_pf99_pf_quick_action_catalog_seed.sql — copy its INSERT/ON CONFLICT structure.
  4. Apply the migration.
  5. Update this doc (regenerate the tables below).
  6. Run tests:
    npx vitest run tests/unit/platform-quick-action-catalog.test.ts tests/unit/platform/migrations/quick-action-catalog-seed.test.ts
    
    The second test fails if any registry action_key is missing from the union of all *_pf_quick_action_catalog_seed.sql migrations.

How to audit quick actions in code

  1. Run npx vitest run tests/unit/platform-quick-action-catalog.test.ts — asserts unique action_key values, route-prefix correctness, and presence of the GR/HR wizard wave actions (PF-99).
  2. Search for quickActions: under src/platform/modules/module-registry/.
  3. SQL-side: SELECT module_id, count(*) FROM pf_quick_action_catalog GROUP BY module_id ORDER BY 1;

Inventory (snapshot)

Generated by scripts/dev/print-quick-action-catalog-seed.ts. Re-run and refresh after every registry change.

CE (11)

LabelRoutePermissionAction key
New Lead/ce/leads?action=add-leadce.leads.createce::ce:leads:action:add:lead
Onboard Partner/ce/partners/onboardce.partners.createce::ce:partners:onboard
Recent Calls/ce/analytics/callsce.calls.viewce::ce:analytics:calls
Add Contact/ce/contacts/newce.contacts.createce::ce:contacts:new
Lead Pipeline/ce/leadsce.leads.viewce::ce:leads
New Partner/ce/partners/newce.partners.createce::ce:partners:new
Campaigns/ce/campaignsce.campaigns.viewce::ce:campaigns
Contacts/ce/contactsce.contacts.viewce::ce:contacts
Activities/ce/activitiesce.activities.viewce::ce:activities
Pipeline Dashboard/ce/analytics/pipelinece.pipeline.viewce::ce:analytics:pipeline
SMS Consent/ce/sms/consentce.sms.admince::ce:sms:consent

CL (8)

LabelRoutePermissionAction key
Patient Charts/cl/chartscl.charts.viewcl::cl:charts
In-Basket/cl/in-basketcl.inbasket.viewcl::cl:in:basket
Co-Sign Queue/cl/notes/cosign-queuecl.progress_note.cosigncl::cl:notes:cosign:queue
Treatment Plans/cl/treatment-planscl.treatment_plan.viewcl::cl:treatment:plans
Group Sessions/cl/group-sessionscl.group_sessions.viewcl::cl:group:sessions
Care Gaps/cl/population-health/care-gapscl.care-gaps.viewcl::cl:population:health:care:gaps
Compliance Dashboard/cl/compliance-dashboardcl.report_definitions.viewcl::cl:compliance:dashboard
Incidents/cl/incidentscl.incidents.viewcl::cl:incidents

FA (8)

LabelRoutePermissionAction key
New Bill/fa/bills/newfa.bills.createfa::fa:bills:new
New Invoice/fa/invoices/newfa.invoices.createfa::fa:invoices:new
New Journal Entry/fa/journal-entries/newfa.journal_entries.createfa::fa:journal:entries:new
Submit Expense/fa/expenses/new_(any user)_fa::fa:expenses:new
My Expenses/fa/expenses/me_(any user)_fa::fa:expenses:me
My Approvals/fa/approvals_(any user)_fa::fa:approvals
Banking/fa/bankingfa.banking.viewfa::fa:banking
Chart of Accounts/fa/accountsfa.accounts.viewfa::fa:accounts

FM (8)

LabelRoutePermissionAction key
New Work Order/fm/work-orders/newfm.work-orders.createfm::fm:work:orders:new
Work Orders/fm/work-ordersfm.work-orders.viewfm::fm:work:orders
Assets/fm/assetsfm.assets.viewfm::fm:assets
Inventory/fm/inventoryfm.inventory.viewfm::fm:inventory
Vendors/fm/vendorsfm.vendors.viewfm::fm:vendors
PM Templates/fm/pm-templatesfm.pm-templates.viewfm::fm:pm:templates
Inspections/fm/inspectionsfm.inspections.viewfm::fm:inspections
Fleet Overview/fm/fleet/dashboardfm.fleet.viewfm::fm:fleet:dashboard

FW (8)

LabelRoutePermissionAction key
Create Form/fw/forms/newfw.forms.createfw::fw:forms:new
My Requests/fw/my-requests_(any user)_fw::fw:my:requests
Approval Inbox/fw/approvalsfw.approvals.viewfw::fw:approvals
Automations/fw/automationsfw.workflows.viewfw::fw:automations
Forms/fw/formsfw.forms.viewfw::fw:forms
Submissions/fw/submissionsfw.submissions.viewfw::fw:submissions
Delegations/fw/delegations_(any user)_fw::fw:delegations
Analytics/fw/analyticsfw.analytics.viewfw::fw:analytics

GR (17)

LabelRoutePermissionAction key
My Acknowledgments/gr/my-acknowledgments_(any user)_gr::gr:my:acknowledgments
My Training/gr/my-training_(any user)_gr::gr:my:training
Compliance/gr/compliancegr.compliance.viewgr::gr:compliance
Policy Library/gr/policiesgr.policies.viewgr::gr:policies
Training Library/gr/traininggr.training.viewgr::gr:training
Risk Register/gr/risksgr.risks.viewgr::gr:risks
Audits/gr/auditsgr.audits.viewgr::gr:audits
Acknowledgment Tracker/gr/acknowledgmentsgr.policies.admingr::gr:acknowledgments
New Procedure/gr/procedures/newgr.procedures.creategr::gr:procedures:new
Report Incident/gr/incidents/reportgr.incidents.reportgr::gr:incidents:report
New Risk Assessment/gr/risks/wizardgr.risks.admingr::gr:risks:wizard
New Requirement/gr/compliance/requirements/newgr.compliance.admingr::gr:compliance:requirements:new
New Audit/gr/audits/newgr.audits.admingr::gr:audits:new
New QI Project/gr/quality-improvement/newgr.qi.admingr::gr:quality:improvement:new
New Contract/gr/contracts/newgr.contracts.creategr::gr:contracts:new
Suggestions/gr/ai/suggestions_(any user)_gr::ai-compliance::gr:ai:suggestions
Gap Analysis/gr/ai/gap-analysis_(any user)_gr::ai-compliance::gr:ai:gap:analysis

HR (24)

LabelRoutePermissionAction key
New Employee/hr/employees/newhr.employees.createhr::hr:employees:new
Employees/hr/employeeshr.employees.viewhr::hr:employees
Submit Time/hr/time-clock_(any user)_hr::hr:time:clock
My Tasks/hr/my-tasks_(any user)_hr::hr:my:tasks
My Profile/hr/me/profile_(any user)_hr::hr:me:profile
HR Dashboard/hr/dashboardhr.dashboard.viewhr::hr:dashboard
Onboarding/hr/onboardinghr.onboarding.viewhr::hr:onboarding
Payroll Runs/hr/payroll/runshr.payroll.adminhr::hr:payroll:runs
New Credential/hr/credentials/newhr.credentials.createhr::hr:credentials:new
New Contractor/hr/contractors/new/wizardhr.contractor.managehr::hr:contractors:new:wizard
Request Time Off/hr/leave-request_(any user)_hr::my-profile-self-service::hr:leave:request
View Pay Stubs/hr/payroll_(any user)_hr::my-profile-self-service::hr:payroll
View Benefits/hr/my-benefits_(any user)_hr::my-profile-self-service::hr:my:benefits
Job Postings/hr/ats/job-postings_(any user)_hr::talent-acquisition::hr:ats:job:postings
My Credentials/hr/my-credentials_(any user)_hr::credentialing-oversight::hr:my:credentials
Compliance Report/hr/credentialing/report_(any user)_hr::credentialing-oversight::hr:credentialing:report
Schedule/hr/scheduling_(any user)_hr::time-leave::hr:scheduling
Open Enrollment/hr/benefits/open-enrollment_(any user)_hr::benefits::hr:benefits:open:enrollment
Pay Rates/hr/payroll/pay-rates_(any user)_hr::payroll::hr:payroll:pay:rates
New Payroll Run/hr/payroll/runs/new_(any user)_hr::payroll::hr:payroll:runs:new
Report Incident/hr/employee-relations/incidents/new_(any user)_hr::employee-relations::hr:employee:relations:incidents:new
My Cases/hr/employee-relations/my-cases_(any user)_hr::employee-relations::hr:employee:relations:my:cases
Performance/hr/performance_(any user)_hr::performance-analytics::hr:performance
Analytics/hr/analytics_(any user)_hr::performance-analytics::hr:analytics

IT (8)

LabelRoutePermissionAction key
New Ticket/it/tickets/newit.tickets.createit::it:tickets:new
My Tickets/it/my-tickets_(any user)_it::it:my:tickets
Knowledge Base/it/knowledge-base_(any user)_it::it:knowledge:base
Add Asset/it/assets/newit.assets.createit::it:assets:new
My Assets/it/my-assets_(any user)_it::it:my:assets
All Tickets/it/ticketsit.tickets.viewit::it:tickets
All Assets/it/assetsit.assets.viewit::it:assets
Change Requests/it/changesit.changes.viewit::it:changes

LO (8)

LabelRoutePermissionAction key
Add To-Do/lo/todos?action=newlo.todos.createlo::lo:todos:action:new
Report Issue/lo/issues?action=newlo.issues.createlo::lo:issues:action:new
Schedule Meeting/lo/meetings?action=newlo.meetings.createlo::lo:meetings:action:new
Create Goal/lo/rockslo.goals.createlo::lo:rocks
New Article/lo/knowledge/articles/newlo.knowledge.createlo::lo:knowledge:articles:new
Scorecards/lo/scorecardslo.scorecard.viewlo::lo:scorecards
Meetings/lo/meetingslo.meetings.viewlo::lo:meetings
Knowledge Portal/lo/knowledgelo.knowledge.viewlo::lo:knowledge

PM (8)

LabelRoutePermissionAction key
Register Patient/pm/patients?action=newpm.patients.createpm::pm:patients:action:new
Schedule Appointment/pm/schedulingpm.scheduling.viewpm::pm:scheduling
Charges/pm/chargespm.charges.viewpm::pm:charges
Claims/pm/claimspm.claims.viewpm::pm:claims
Patients/pm/patientspm.patients.viewpm::pm:patients
Revenue Dashboard/pm/revenuepm.rcm_dashboard.viewpm::pm:revenue
Prior Authorizations/pm/authorizationspm.prior_auth.viewpm::pm:authorizations
Payments/pm/paymentspm.payments.viewpm::pm:payments

RH (8)

LabelRoutePermissionAction key
Bed Board/rh/bed-boardrh.beds.viewrh::rh:bed:board
New Admission/rh/admissions/newrh.residents.createrh::rh:admissions:new
Log Event/rh/significant-eventsrh.residents.viewrh::rh:significant:events
Curfew Check/rh/curfew-checksrh.residents.viewrh::rh:curfew:checks
Residences/rh/residencesrh.residences.viewrh::rh:residences
Episodes/rh/episodesrh.residents.viewrh::rh:episodes
Attendance/rh/attendancerh.residents.viewrh::rh:attendance
Compliance/rh/compliancerh.compliance.viewrh::rh:compliance

See also