Skip to content

Generated from corpus/lines/services/workflows/engagement.yml. Do not edit by hand — run python scripts/generate-corpus-docs.py.

corpus/lines/services/workflows/engagement.yml

Title / id: workflow.services

id: workflow.services
status: active
line: services
stages:
- id: offer
  entry:
  - A repeatable client outcome or capability is identified.
  bindings:
  - inv.services.catalog
  roles:
  - role.practice-lead
  artifacts:
  - services.offer-definition
  evidence:
  - Outcome
  - scope boundaries
  - buyer
  - delivery assumptions
  exit:
  - The offer is clear enough for lead qualification.
  next_stages:
  - lead
  validation:
    mode: judgment
    checks:
    - scope and exclusions are explicit
    - unsupported claims are removed
    on_gap: gap.stage.services.offer
  recovery:
    action: remain_at_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: lead
  entry:
  - A potential client and relevant offer are known.
  bindings:
  - inv.services.lead-status
  roles:
  - role.bd-sales
  artifacts:
  - services.lead-record
  evidence:
  - Need
  - fit
  - authority
  - timing
  - privacy constraints
  exit:
  - The lead is qualified, nurtured, declined, or parked.
  next_stages:
  - propose
  validation:
    mode: judgment
    checks:
    - status rationale and next action are recorded
    on_gap: gap.stage.services.lead
  recovery:
    action: remain_at_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: propose
  entry:
  - A qualified lead has a defined need and decision process.
  bindings: []
  roles:
  - role.bd-sales
  - role.engagement-manager
  artifacts:
  - services.proposal
  evidence:
  - Scope
  - deliverables
  - timeline
  - price
  - assumptions
  - exclusions
  exit:
  - The client can accept or reject an unambiguous proposal.
  next_stages:
  - contract
  validation:
    mode: judgment
    checks:
    - deliverables and acceptance are testable
    - commercial assumptions are explicit
    on_gap: gap.stage.services.propose
  recovery:
    action: return_to_previous_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: contract
  entry:
  - Proposal terms are agreed in principle.
  bindings: []
  roles:
  - role.engagement-manager
  artifacts:
  - services.contract-record
  evidence:
  - Executed agreement
  - privacy terms
  - start authorization
  exit:
  - Delivery is authorized under an executed agreement.
  next_stages:
  - deliver
  validation:
    mode: deterministic
    checks:
    - required signatures and terms exist
    - privacy obligations are bound
    on_gap: gap.stage.services.contract
  recovery:
    action: return_to_previous_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: deliver
  entry:
  - Contract, scope, privacy profile, and delivery owner are active.
  bindings:
  - inv.services.engagement-type
  roles:
  - role.delivery-consultant
  - role.engagement-manager
  artifacts:
  - services.delivery-set
  evidence:
  - Work products
  - client feedback
  - acceptance evidence
  exit:
  - Contracted deliverables meet acceptance or deviations are agreed.
  next_stages:
  - invoice
  validation:
    mode: judgment
    checks:
    - each deliverable maps to scope
    - deviations have client evidence
    on_gap: gap.stage.services.deliver
  recovery:
    action: return_to_previous_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: invoice
  entry:
  - A billable milestone and contractual billing basis exist.
  bindings: []
  roles:
  - role.billing
  artifacts:
  - services.invoice-record
  evidence:
  - Invoice
  - amount calculation
  - delivery milestone
  exit:
  - A correct invoice is issued and traceable to the agreement.
  next_stages:
  - complete
  validation:
    mode: deterministic
    checks:
    - rate and amount reproduce
    - invoice references contract and milestone
    on_gap: gap.stage.services.invoice
  recovery:
    action: return_to_previous_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: complete
  entry:
  - Deliverables are accepted and billing obligations are resolved.
  bindings: []
  roles:
  - role.engagement-manager
  artifacts:
  - services.completion-record
  evidence:
  - Acceptance
  - payment status
  - retained obligations
  - lessons
  exit:
  - The engagement is closed or remaining obligations are explicitly assigned.
  next_stages:
  - archive
  validation:
    mode: deterministic
    checks:
    - acceptance and billing status are recorded
    - open obligations have owners
    on_gap: gap.stage.services.complete
  recovery:
    action: return_to_previous_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
- id: archive
  entry:
  - The engagement is complete and retention rules are known.
  bindings: []
  roles:
  - role.engagement-manager
  artifacts:
  - services.archive-record
  evidence:
  - Retention decision
  - archive location
  - deletion evidence where required
  exit:
  - Records are retained or deleted according to contract and privacy policy.
  next_stages: []
  validation:
    mode: deterministic
    checks:
    - archive location resolves
    - required deletions have evidence
    on_gap: gap.stage.services.archive
  recovery:
    action: remain_at_stage
    preserve:
    - artifacts
    - evidence
    - decision_log
schema_version: corpus-unit.v2
kind: workflow
version: 1.0.0
layer: organization
depends_on:
- id: core.stage-contract
  version: ^1.0.0
- id: org.roles
  version: ^1.0.0