Appendices

Chapter B Appendix B: The Complete Lifecycle Reference

Work in Progress — This appendix is not yet published.

Appendix B: The Complete Lifecycle Reference

This appendix is a compact but complete reference for all 20 FOSM models in the Inloop Runway application. For each model you will find: the business module it belongs to, the full state list, the full event list, the key guard and side-effect descriptions, and a Mermaid state diagram for quick visual orientation.

Use this appendix when you need to understand a model’s full shape without hunting through source files, and when you are writing AI prompts that need accurate state and event names.


How to Read This Reference

  • Initial state is marked with [initial]
  • Terminal states are marked with [terminal]
  • Bidirectional transitions (e.g., active on_hold) are shown in the diagram with arrows in both directions
  • Guard descriptions are phrased as the condition that must be true for the transition to proceed
  • Side-effect descriptions describe what happens after the transition is committed

1. Nda

Module: NDA Management
Chapter Coverage: Chapter 7

States

State Type Label Description
draft initial Draft NDA has been created but not yet sent to any party
sent Sent NDA has been delivered to all parties for signature
partially_signed Partially Signed At least one but not all parties have signed
executed terminal Executed All parties have signed; NDA is legally binding
cancelled terminal Cancelled NDA voided before execution
expired terminal Expired Signature deadline passed without full execution

Events

Event From → To Actors Guard Side-Effect
send_for_signature draft sent human, ai Counterparty email is present Deliver NDA via DocuSign or email
record_signature sent partially_signed human, system Signature is cryptographically valid Notify remaining signatories
record_signature partially_signed executed human, system All required signatures collected Send executed copy to all parties, create archive record
cancel draft cancelled human Notify any parties who received the draft
cancel sent cancelled human Recall document, notify signatories
expire sent expired system Signature deadline has passed Notify owner, suggest reissue
expire partially_signed expired system Signature deadline has passed Notify owner and partial signatories

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> sent : send_for_signature
    draft --> cancelled : cancel
    sent --> partially_signed : record_signature
    sent --> cancelled : cancel
    sent --> expired : expire
    partially_signed --> executed : record_signature
    partially_signed --> expired : expire
    executed --> [*]
    cancelled --> [*]
    expired --> [*]

2. PartnershipAgreement

Module: Partnerships
Chapter Coverage: Chapter 8

States

State Type Label
draft initial Draft
sent Sent for Review
partially_signed Partially Signed
active Active
terminated terminal Terminated
cancelled terminal Cancelled
expired terminal Expired

Events

Event From → To Actors
send_for_review draft sent human
record_signature sent partially_signed human, system
execute partially_signed active human, system
terminate active terminated human
cancel draft/sent cancelled human
expire active expired system

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> sent : send_for_review
    draft --> cancelled : cancel
    sent --> partially_signed : record_signature
    sent --> cancelled : cancel
    partially_signed --> active : execute
    active --> terminated : terminate
    active --> expired : expire
    terminated --> [*]
    cancelled --> [*]
    expired --> [*]

3. Referral

Module: Partnerships
Chapter Coverage: Chapter 8

States

State Type Label
pending initial Pending Review
qualified Qualified
accepted terminal Accepted
rejected terminal Rejected

Events

Event From → To Actors Guard
qualify pending qualified human, ai Referral meets minimum criteria (revenue potential, industry fit)
accept qualified accepted human Partnership agreement is active
reject pending rejected human
reject qualified rejected human

Diagram

stateDiagram-v2
    [*] --> pending
    pending --> qualified : qualify
    pending --> rejected : reject
    qualified --> accepted : accept
    qualified --> rejected : reject
    accepted --> [*]
    rejected --> [*]

4. Contact

Module: CRM
Chapter Coverage: Chapter 9

States

State Type Label
lead initial Lead
qualified Qualified
customer Customer
partner terminal Partner
churned Churned
archived terminal Archived

Events

Event From → To Actors Guard
qualify lead qualified human, ai Contact meets ICP criteria
convert qualified customer human Deal won and linked to contact
promote_to_partner customer partner human Partnership agreement is active
mark_churned customer churned human, system Churn criteria met (inactivity, cancellation)
reactivate churned qualified human Re-engagement confirmed
archive churned archived human
archive lead archived human

Diagram

stateDiagram-v2
    [*] --> lead
    lead --> qualified : qualify
    lead --> archived : archive
    qualified --> customer : convert
    customer --> partner : promote_to_partner
    customer --> churned : mark_churned
    churned --> qualified : reactivate
    churned --> archived : archive
    partner --> [*]
    archived --> [*]

5. Deal

Module: CRM
Chapter Coverage: Chapter 9

States

State Type Label
qualifying initial Qualifying
proposal Proposal
negotiation Negotiation
won terminal Won
lost terminal Lost

Events

Event From → To Actors Guard Side-Effect
advance_to_proposal qualifying proposal human, ai Budget confirmed, decision-maker identified Assign deal owner, create proposal template
submit_proposal proposal negotiation human Proposal document attached Notify contact, set follow-up reminder
mark_won negotiation won human Contract signed Convert contact to customer, create invoice
mark_lost qualifying/proposal/negotiation lost human Log loss reason, trigger feedback ticket

Diagram

stateDiagram-v2
    [*] --> qualifying
    qualifying --> proposal : advance_to_proposal
    qualifying --> lost : mark_lost
    proposal --> negotiation : submit_proposal
    proposal --> lost : mark_lost
    negotiation --> won : mark_won
    negotiation --> lost : mark_lost
    won --> [*]
    lost --> [*]

6. FeedbackTicket

Module: Feedback
Chapter Coverage: Chapter 10

States

State Type Label
reported initial Reported
triaged Triaged
planned Planned
in_progress In Progress
resolved terminal Resolved
wontfix terminal Won’t Fix

Events

Event From → To Actors Guard
triage reported triaged human, ai Duplicate check passed
plan triaged planned human Assigned to a sprint or milestone
start planned in_progress human, system
resolve in_progress resolved human Resolution description present
close_wontfix triaged/planned wontfix human
reopen resolved triaged human

Diagram

stateDiagram-v2
    [*] --> reported
    reported --> triaged : triage
    triaged --> planned : plan
    triaged --> wontfix : close_wontfix
    planned --> in_progress : start
    planned --> wontfix : close_wontfix
    in_progress --> resolved : resolve
    resolved --> triaged : reopen
    resolved --> [*]
    wontfix --> [*]

7. Expense

Module: Expenses
Chapter Coverage: Chapter 11

States

State Type Label
draft initial Draft
reported Reported
approved terminal Approved
rejected terminal Rejected

Events

Event From → To Actors Guard Side-Effect
submit draft reported human Receipt attached, amount present Attach to open expense report
approve reported approved human Amount within policy threshold Notify employee
reject reported rejected human Notify employee with reason

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> reported : submit
    reported --> approved : approve
    reported --> rejected : reject
    approved --> [*]
    rejected --> [*]

8. ExpenseReport

Module: Expenses
Chapter Coverage: Chapter 11

States

State Type Label
draft initial Draft
submitted Submitted
approved Approved
paid terminal Paid
rejected terminal Rejected

Events

Event From → To Actors Guard Side-Effect
submit draft submitted human Contains at least one approved expense Notify finance team
approve submitted approved human Total within approval limit for single approver Notify submitter
reject submitted rejected human Notify submitter with reason
mark_paid approved paid human, system Payment reference present Update individual expense records

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> submitted : submit
    submitted --> approved : approve
    submitted --> rejected : reject
    approved --> paid : mark_paid
    paid --> [*]
    rejected --> [*]

9. Invoice

Module: Invoicing
Chapter Coverage: Chapter 12

States

State Type Label
draft initial Draft
sent Sent
paid terminal Paid
overdue Overdue
cancelled terminal Cancelled

Events

Event From → To Actors Guard Side-Effect
send draft sent human, ai Line items present, recipient email valid Deliver invoice by email/PDF
record_payment sent paid human, system Payment amount matches invoice total Update ledger, notify issuer
record_payment overdue paid human, system Payment amount matches invoice total Update ledger, clear overdue flag
mark_overdue sent overdue system Due date has passed and payment not recorded Send overdue reminder to payer
cancel draft cancelled human
cancel sent cancelled human Send cancellation notice to payer

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> sent : send
    draft --> cancelled : cancel
    sent --> paid : record_payment
    sent --> overdue : mark_overdue
    sent --> cancelled : cancel
    overdue --> paid : record_payment
    paid --> [*]
    cancelled --> [*]

10. Project

Module: Projects
Chapter Coverage: Chapter 13

States

State Type Label
planning initial Planning
active Active
on_hold On Hold
completed terminal Completed
cancelled terminal Cancelled

Note the bidirectional relationship between active and on_hold — projects can be paused and resumed any number of times.

Events

Event From → To Actors
kick_off planning active human
put_on_hold active on_hold human
resume on_hold active human
complete active completed human
cancel planning/active/on_hold cancelled human

Diagram

stateDiagram-v2
    [*] --> planning
    planning --> active : kick_off
    planning --> cancelled : cancel
    active --> on_hold : put_on_hold
    active --> completed : complete
    active --> cancelled : cancel
    on_hold --> active : resume
    on_hold --> cancelled : cancel
    completed --> [*]
    cancelled --> [*]

11. TimeEntry

Module: Time Tracking
Chapter Coverage: Chapter 13

States

State Type Label
logged initial Logged
submitted Submitted
approved terminal Approved
rejected terminal Rejected

Events

Event From → To Actors Guard
submit logged submitted human Time entry is attached to a project and billable period
approve submitted approved human Approver has authority over the project
reject submitted rejected human
revise rejected logged human

Diagram

stateDiagram-v2
    [*] --> logged
    logged --> submitted : submit
    submitted --> approved : approve
    submitted --> rejected : reject
    rejected --> logged : revise
    approved --> [*]

12. LeaveRequest

Module: Leave Management
Chapter Coverage: Chapter 14

States

State Type Label
pending initial Pending
approved terminal Approved
rejected terminal Rejected
cancelled terminal Cancelled

Events

Event From → To Actors Guard Side-Effect
approve pending approved human Manager is direct line; leave balance sufficient Notify employee, update leave balance
reject pending rejected human Notify employee with reason
cancel pending cancelled human, system Notify manager, restore leave balance if applicable

Diagram

stateDiagram-v2
    [*] --> pending
    pending --> approved : approve
    pending --> rejected : reject
    pending --> cancelled : cancel
    approved --> [*]
    rejected --> [*]
    cancelled --> [*]

13. Candidate

Module: Hiring
Chapter Coverage: Chapter 14

States

State Type Label
applied initial Applied
screening Screening
interviewing Interviewing
offer Offer Extended
hired terminal Hired
rejected terminal Rejected

Events

Event From → To Actors Guard
begin_screening applied screening human, ai Application complete
advance_to_interview screening interviewing human Screening score above threshold
extend_offer interviewing offer human Interview panel consensus
accept_offer offer hired human, system Signed offer letter received
decline_offer offer rejected human, system
reject screening/interviewing rejected human
withdraw applied/screening/interviewing/offer rejected human, system Candidate has withdrawn

Diagram

stateDiagram-v2
    [*] --> applied
    applied --> screening : begin_screening
    applied --> rejected : reject
    screening --> interviewing : advance_to_interview
    screening --> rejected : reject
    interviewing --> offer : extend_offer
    interviewing --> rejected : reject
    offer --> hired : accept_offer
    offer --> rejected : decline_offer
    hired --> [*]
    rejected --> [*]

14. Vendor

Module: Vendors
Chapter Coverage: Chapter 15

States

State Type Label
prospect initial Prospect
active Active
under_review Under Review
suspended Suspended
terminated terminal Terminated

Note the bidirectional relationship between active and under_review, and between active and suspended.

Events

Event From → To Actors
onboard prospect active human
flag_for_review active under_review human, system
clear_review under_review active human
suspend active suspended human
reinstate suspended active human
terminate suspended terminated human
terminate under_review terminated human

Diagram

stateDiagram-v2
    [*] --> prospect
    prospect --> active : onboard
    active --> under_review : flag_for_review
    active --> suspended : suspend
    under_review --> active : clear_review
    under_review --> terminated : terminate
    suspended --> active : reinstate
    suspended --> terminated : terminate
    terminated --> [*]

15. InventoryItem

Module: Inventory
Chapter Coverage: Chapter 15

States

State Type Label
in_stock initial In Stock
low_stock Low Stock
out_of_stock Out of Stock
discontinued terminal Discontinued

Events

Event From → To Actors Guard
flag_low in_stock low_stock system Quantity below reorder threshold
deplete low_stock out_of_stock system Quantity reaches zero
restock low_stock in_stock human, system Restock quantity above threshold
restock out_of_stock in_stock human, system
discontinue any discontinued human

Diagram

stateDiagram-v2
    [*] --> in_stock
    in_stock --> low_stock : flag_low
    in_stock --> discontinued : discontinue
    low_stock --> in_stock : restock
    low_stock --> out_of_stock : deplete
    low_stock --> discontinued : discontinue
    out_of_stock --> in_stock : restock
    out_of_stock --> discontinued : discontinue
    discontinued --> [*]

16. KbArticle

Module: Knowledge Base
Chapter Coverage: Chapter 16

States

State Type Label
draft initial Draft
in_review In Review
published Published
archived terminal Archived

Events

Event From → To Actors Guard
submit_for_review draft in_review human, ai Title and body present, minimum word count met
publish in_review published human Reviewer approval recorded
return_for_revision in_review draft human
archive published archived human
unarchive archived draft human

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> in_review : submit_for_review
    in_review --> published : publish
    in_review --> draft : return_for_revision
    published --> archived : archive
    archived --> draft : unarchive
    archived --> [*]

17. Objective

Module: OKRs
Chapter Coverage: Chapter 16

States

State Type Label
draft initial Draft
active Active
at_risk At Risk
completed terminal Completed
abandoned terminal Abandoned

Note the bidirectional relationship between active and at_risk.

Events

Event From → To Actors
activate draft active human
flag_at_risk active at_risk human, system
clear_risk at_risk active human
complete active/at_risk completed human
abandon active/at_risk abandoned human

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> active : activate
    active --> at_risk : flag_at_risk
    active --> completed : complete
    active --> abandoned : abandon
    at_risk --> active : clear_risk
    at_risk --> completed : complete
    at_risk --> abandoned : abandon
    completed --> [*]
    abandoned --> [*]

18. PayRun

Module: Payroll
Chapter Coverage: Chapter 17

States

State Type Label
draft initial Draft
submitted Submitted
approved Approved
paid terminal Paid
voided terminal Voided

Events

Event From → To Actors Guard Side-Effect
submit draft submitted human All employee entries reconciled Notify payroll approver
approve submitted approved human Approver has financial signatory authority Lock entries, notify finance
reject submitted draft human Notify submitter with reason
process_payment approved paid human, system Bank transfer confirmed Generate payslips, update ledger
void draft/submitted/approved voided human Notify all affected employees

Diagram

stateDiagram-v2
    [*] --> draft
    draft --> submitted : submit
    draft --> voided : void
    submitted --> approved : approve
    submitted --> draft : reject
    submitted --> voided : void
    approved --> paid : process_payment
    approved --> voided : void
    paid --> [*]
    voided --> [*]

19. InboxThread

Module: Inbox
Chapter Coverage: Chapter 18

States

State Type Label
open initial Open
assigned Assigned
waiting Waiting on Customer
resolved Resolved
closed terminal Closed

Events

Event From → To Actors
assign open assigned human, ai
put_on_wait assigned waiting human
resume waiting assigned human, system
resolve assigned/waiting resolved human, ai
reopen resolved assigned human, system
close resolved closed human, system

Diagram

stateDiagram-v2
    [*] --> open
    open --> assigned : assign
    assigned --> waiting : put_on_wait
    assigned --> resolved : resolve
    waiting --> assigned : resume
    waiting --> resolved : resolve
    resolved --> assigned : reopen
    resolved --> closed : close
    closed --> [*]

20. Company

Module: Companies
Chapter Coverage: Chapter 9 (CRM)

States

State Type Label
prospect initial Prospect
active Active
suspended Suspended
dissolved terminal Dissolved

Events

Event From → To Actors Guard
activate prospect active human At least one active contact associated
suspend active suspended human
reinstate suspended active human
dissolve suspended dissolved human No open invoices or active contracts

Diagram

stateDiagram-v2
    [*] --> prospect
    prospect --> active : activate
    active --> suspended : suspend
    suspended --> active : reinstate
    suspended --> dissolved : dissolve
    dissolved --> [*]

Quick Reference Index

Model Module States Terminal States
Nda NDA Management 6 executed, cancelled, expired
PartnershipAgreement Partnerships 7 terminated, cancelled, expired
Referral Partnerships 4 accepted, rejected
Contact CRM 6 partner, archived
Deal CRM 5 won, lost
FeedbackTicket Feedback 6 resolved, wontfix
Expense Expenses 4 approved, rejected
ExpenseReport Expenses 5 paid, rejected
Invoice Invoicing 5 paid, cancelled
Project Projects 5 completed, cancelled
TimeEntry Time Tracking 4 approved, rejected
LeaveRequest Leave Management 4 approved, rejected, cancelled
Candidate Hiring 6 hired, rejected
Vendor Vendors 5 terminated
InventoryItem Inventory 4 discontinued
KbArticle Knowledge Base 4 archived
Objective OKRs 5 completed, abandoned
PayRun Payroll 5 paid, voided
InboxThread Inbox 5 closed
Company Companies 4 dissolved