Pipeline transitions and Project conversion
Validated stage progression, readiness, terminal outcomes and idempotent conversion into a Project.
/admin/leads/:idFuture Spec 09 →Current-state summary
The published Project Opportunities workflow defines six ordered stages and a Project outcome, while the record header exposes Convert to Project. The builder warns that New intake, Qualification and Client review have no next step. Every stage—including Converted to project and Closed—is currently typed as open. No stage-change control was found on cards, rows or the record profile, and the conversion action was not executed because it can create a real Project. The UI therefore communicates an intended lifecycle without yet demonstrating a coherent, validated transition engine.
Interface inventory
Anatomy and verified behavior
Verification states separate observed behavior from requirements or assumptions.
| Element | Current behavior | Verification |
|---|---|---|
| Published stages | New intake, Qualification, Client review, Ready to convert, Converted to project and Closed are ordered and colour-configured. | Verified live builder |
| Stable stage keys | Builder shows new_intake, qualification, client_review, ready_to_convert, converted and closed. | Verified live |
| Stage categories | All six currently select open, even terminal-looking stages. | Verified live |
| Next-step configuration | Builder warns that three open stages have no next step and presents a disabled from/to editor until a draft is created. | Verified live |
| Record transition control | No general stage-change action was found on the board, table or profile. | Verified across reviewed surfaces |
| Project conversion | Convert to Project is visible to the Admin on LD-101. | Visible; intentionally not executed |
| Outcome configuration | Directory says successful outcome creates Project, while the builder Outcomes section is still an implementation placeholder. | Verified live |
User journeys
Current flows
Advance stage
- Choose an allowed next step
- Evaluate authorization
- Validate required transition fields
- Confirm consequential action
- Persist stage event
- Run automations
- Refresh all projections
Convert to Project
- Reach Ready to convert
- Resolve blockers and Client identity
- Select Convert to Project
- Create Project once
- Link source and outcome
- Move record to Converted
- Write Activity/audit and notifications
Close without conversion
- Choose an allowed unsuccessful/cancelled outcome
- Capture reason
- Stop inappropriate automations
- Retain history
State model
Current and expected states
First three lanes are active but have no configured next step according to the builder warning.
Exists with a zero record count; readiness conditions are not visible.
Exists as an empty lane but remains categorized open.
Exists as an empty lane but remains categorized open.
Button implementation may expose these states, but they were not exercised in production.
Product rules
Non-negotiable boundaries
- Transitions use stable stage IDs and an explicit next-step graph, not label comparison.
- Only configured transitions are available to the current actor.
- Required-field and guard failures explain exactly what must be resolved without partially moving the record.
- Converted, unsuccessful, cancelled and archived categories drive reporting and automation semantics.
- Project conversion is idempotent: one source record can create at most one governing Project outcome unless an authorized reversal model exists.
- Conversion copies or links data according to a defined mapping; it does not create disconnected duplicates.
- Every attempt and result has actor, version, timestamp and correlation/audit data.
- Automations and notifications run from durable transition events after the transaction succeeds.
Known current limitations · 8 mapped
What is missing, broken or unverified
Future Spec 09 owns closure →- Critical: three active stages have no configured next step.
- Critical: every stage is categorized open, including Converted and Closed.
- No general stage-change control was found.
- Readiness requirements and blocking fields are not visible.
- Outcomes configuration is a placeholder despite the directory claiming a Project outcome.
- Conversion confirmation, duplicate prevention, rollback and partial-failure behavior were not tested.
- Profile and board stage labels already disagree, so a transition may update only one projection.
- Automations, access, version history and record-detail builder sections remain placeholders.
Future alignment
Required evolution
- 01Complete the versioned transition graph and terminal categories before enabling free stage movement.
- 02Define per-transition required fields, role/capability, confirmation, automation and notification rules.
- 03Make Ready to convert a calculated, explainable readiness state.
- 04Implement Project conversion as a governed outcome service reused by other entity-creating Pipelines.
- 05Expose transition history in Activity and immutable History with human-readable reasons.
Current baseline
Acceptance record
- All six stage keys, colours and current categories are recorded.
- Missing next steps and placeholder builder sections are explicit.
- Conversion is not claimed as working end to end because it was not executed.
- Idempotency, mapping, audit and notification requirements are captured.
- Stage projection drift is treated as a blocker before enabling workflow automation.
Reverse-spec completeness
Documentation coverage
The interface is still changing, so visual evidence and repository tracing remain intentionally incomplete.
Purpose and user outcome
DocumentedRoles and access
DocumentedRoutes and entry points
DocumentedPage and component anatomy
DocumentedFields and displayed data
DocumentedPrimary actions
DocumentedForms and validation
DocumentedStates and transitions
DocumentedEmpty, loading and error states
DocumentedResponsive behavior
PartialAccessibility behavior
PartialActivity and audit events
PartialData sources and persistence
DocumentedNotifications and automation
PartialKnown defects and limitations
DocumentedReusable component dependencies
DocumentedFuture-spec conflicts
PartialVisual and repository evidence
DeferredAcceptance of current baseline
Documented