F1
Engagements & the build code
As an operator I can create an engagement for a client and get a short speakable build code so that the call has a record from minute one and a build machine can fetch it later by code.
Lives at/engagements/engagements/new/engagements/[id]
- Reads
engagementsbuild_codesmembershipsuserssessionsbrief_versions- Writes
engagementsbuild_codesmembershipsactivity_eventsaudit_logs
F2
Discovery rounds engine (the server brain)
As an operator I can run a model-led interview whose rounds are generated from the accumulating brief so that the questions are about the client's business, never about software in general.
Lives at/api/sessions/[id]/round/engagements/[id]/session/[sessionId]
- Reads
sessionsroundsanswersledger_entriescoverage_sectionsbrief_sectionsapp_settings- Writes
roundsledger_entriescoverage_sectionssession_eventsjobsactivity_events
F3
The chat surface and the workspace that grows around it
As a client I can land in a conversation that progressively becomes a workspace showing my product so that discovery feels like construction rather than paperwork.
Lives at/engagements/[id]/session/[sessionId]
- Reads
sessionsroundsanswersledger_entriescoverage_sectionsbrief_sectionsdiagramsactivity_events- Writes
activity_eventssession_events
F4
Question cards and answering
As a client I can answer one round at a time in cards that teach me which axes exist so that choosing is cheaper than composing and the format never traps me.
Lives at/engagements/[id]/session/[sessionId]
- Reads
roundsanswerssessionsapp_settings- Writes
answersactivity_eventssession_events
F5
The assumption ledger
As a client I can see every decision the model is making unasked, and override any of them so that an unasked question stops being a silent risk and becomes a visible one.
Lives at/engagements/[id]/session/[sessionId]
- Reads
ledger_entriesroundssessionsglossary_terms- Writes
ledger_entriesactivity_eventssession_events
F6
The coverage map
As an operator I can see at a glance which brief sections discovery still owes so that I can tell whether we are done without guessing.
Lives at/engagements/[id]/session/[sessionId]
- Reads
coverage_sectionssessionsbrief_sections- Writes
coverage_sectionssession_events
F7
Brief composition and versioning
As an operator I can end a session holding a brief a build factory can act on so that the call produces the deliverable, with no write-up afterwards.
Lives at/engagements/[id]/brief/engagements/[id]/brief/[version]
- Reads
briefsbrief_versionsbrief_sectionsledger_entriescoverage_sectionssessions- Writes
briefsbrief_versionsbrief_sectionsactivity_eventssession_events
F8
The product diagram
As a client I can watch a diagram of my product assemble as I answer so that I catch a wrong assumption as a shape, in the moment, instead of finding it in a document nobody read.
Lives at/engagements/[id]/session/[sessionId]
- Reads
diagramsbrief_sectionssessionsrounds- Writes
diagramssession_eventsactivity_events
F9
Background activity feed
As an operator I can see what the session is doing behind the conversation so that the system feels alive and the client can watch it work.
Lives at/engagements/[id]/session/[sessionId]
- Reads
activity_eventssessions- Writes
activity_events
F10
Outside-systems capture
As a client I can name the outside systems my product talks to, in my own words so that a niche vendor gets named while I am still in the room, instead of surfacing after everyone has left.
Lives at/engagements/[id]/session/[sessionId]/engagements/[id]/integrations
- Reads
named_integrationssessionsengagements- Writes
named_integrationsactivity_eventssession_events
F11
Model provider layer and admin settings
As an operator I can choose which provider and model powers discovery so that the model is a setting, not a constant baked into the code.
Lives at/admin/model
- Reads
app_settings- Writes
app_settingsaudit_logs
F12
Admin engagement overview
As an operator I can see every engagement and its state in one place so that I can find any client's session without hunting.
Lives at/admin/engagements
- Reads
engagementssessionsbrief_versionsbuild_codesusersmemberships- Writes
audit_logs
F13
Invite-only access control
As an operator I can invite a client and assign their role so that nobody self-serves and there is exactly one way in.
Lives at/sign-in/sign-up/admin/invites
- Reads
invitesusersmemberships- Writes
invitesusersmembershipsaudit_logsnotifications
F14
Session persistence and resume
As an operator I can resume any session from any client so that a dropped call or a closed laptop never costs the session.
Lives at/engagements/[id]/session/[sessionId]
- Reads
sessionsroundsanswersledger_entriesactivity_eventscoverage_sections- Writes
sessionsactivity_eventssession_events
F15
Authenticated export endpoint
As an factory build machine I can fetch an engagement's bundle by build code so that a build can pick up the intake without anyone coupling to this app's database.
Lives at/api/export/[buildCode]
- Reads
engagementsbuild_codesbriefsbrief_versionsbrief_sectionssessionsroundsanswersledger_entriesnamed_integrations- Writes
audit_logsnotifications
F16
Brief download
As an operator I can download the brief as markdown so that the artifact travels by hand when the machine door is not the right one.
Lives at/engagements/[id]/brief
- Reads
briefsbrief_versionsbrief_sectionsledger_entries- Writes
audit_logsjobs
F17
Session instrumentation
As an operator I can see round counts, ledger lengths and exit reasons across real sessions so that the ledger-length threshold gets derived from real briefs instead of guessed.
Lives at/admin/instrumentation
- Reads
session_metricssession_eventssessions- Writes
session_events
F18
Notifications
As an operator I can have invitations and session events reach people by email so that an invited client can actually get in, and nobody has to be told verbally that something finished.
Lives at/settings/notifications/api/notifications
- Reads
notificationsusersengagements- Writes
notificationsaudit_logs
F19
Legal pages
As an visitor I can read the privacy policy and terms so that the app that holds a client's unreleased product idea says plainly how it treats it.
Lives at/legal/privacy/legal/terms/settings/account
- Reads
usersmembershipsengagementsbriefsbrief_versionsbrief_sectionssessionsroundsanswersledger_entriesnamed_integrations- Writes
usersmembershipsjobsaudit_logs
F20
The public front door
As an visitor I can understand what Autolace is before I ever sign in so that a prospective client who is sent a link arrives somewhere that explains itself.
Lives at/