Issue Lifecycle
How an issue moves from Open to Closed — the status workflow, transition rules, and reinspection gates.
Issues follow a defined lifecycle with strict rules about who can transition status and when items can close. These rules ensure that all defects are properly resolved and verified. The four statuses are the same for every category. What unlocks Closed depends on where the issue came from, not on its category.
Status Flow
Status Transitions
| From | To | Who Can Do It | How |
|---|---|---|---|
| Open | In Progress | Assignee, creator, or project owner | Row menu → Start Fix |
| In Progress | Fixed | Assignee, creator, or project owner | Row menu → Mark Fixed |
| Fixed | Closed (raised from an inspection) | System | Automatic when the Performer submits the reinspection |
| Fixed | Closed (raised manually) | Assignee, creator, or project owner | Row menu → Close Issue |
Key Rules
- For an issue raised from an inspection, closure happens automatically when the Performer submits the reinspection
- ALL sibling issues (from the same inspection) must be Fixed before the reinspection can be submitted
- An issue raised manually has no reinspection gate — the assignee, creator, or project owner closes it with Close Issue
Closure Rules in Detail
Rule 1: Closure Depends on Source, Not Role
There is no role check on closing — the transition is open to the issue's assignee, its creator, or the project owner. What decides the path is whether the issue was raised from an inspection. An inspection-raised issue closes through the reinspection workflow: the register's Close Issue row action is locked on any issue that has a source inspection, and clicking it routes you to the detail page instead. A manually raised issue closes as soon as one of those three presses Close Issue from Fixed.
Rule 2: All Siblings Must Be Fixed
Issues from the same inspection are treated as a group ("siblings"). No individual issue can close until ALL siblings are Fixed or already Closed. This prevents partial resolution.
Example:
- Inspection "Pre-Pour Check" generates 3 issues: I-001, I-002, I-003
- I-001 is Fixed, I-002 is Fixed, I-003 is still In Progress
- None can close yet — I-003 must also reach Fixed status
Rule 3: Auto-Close on Reinspection
When the Performer has:
- Fixed all linked issues
- Re-inspected and recorded new verdicts on the previously failed items
- Submitted for review
The system transitions every issue linked to that inspection that is already in Fixed to Closed. Issues still Open or In Progress are not closed — the Performer cannot submit the reinspection until all of them are Fixed. Issues linked to a different inspection, or to none, are untouched.
How the Interface Guides You
The app makes these prerequisites visible rather than silently blocking you.
Issue Detail Page
When an issue is Fixed and linked to a source inspection, a "Before you can close this issue" checklist block appears above the form content. It shows two ordered steps:
Step 1 — Fix all related issues Shows live progress (e.g., "2 of 3 fixed"). If siblings are still open or in progress, each one is listed as a clickable row — tap any to navigate directly to that issue without losing your place.
Step 2 — Complete the reinspection This step is dimmed until Step 1 is fully complete. Once all siblings are Fixed, an inline Perform Reinspection button appears inside the step so you can start the reinspection immediately.
When both steps are done, the checklist header changes to "Ready to close" and the footer's Close Issue button unlocks.
Footer button reflects current state
While prerequisites remain unmet, the Close Issue footer button shows a lock icon and is disabled — hover to see a tooltip with the specific reason. It never silently disappears; it stays visible so you always know what action comes next.
Issues Table (row actions)
When "Close Issue" is blocked in the row actions menu, it displays a lock icon instead of being grayed out, and hovering shows a tooltip. Clicking the item navigates you to the detail page where you can see and act on the prerequisites — it's never a dead-end no-op.
Reinspection Gate
If the "Require Issue Resolution Before Reinspection" policy is enabled:
| Condition | Can Reinspect? |
|---|---|
| All linked issues Closed or cancelled | ✅ Yes |
| Any linked issue is Open, In Progress or Fixed | ❌ No — blocked |
The Performer sees a message with the number of unresolved issues that must be resolved first.
Typical Lifecycle Example
Defect Identified
During inspection, the Performer marks "Rebar spacing" as Fail and toggles Auto-Create Issue ON. A Quality issue is created: "Rebar spacing — 180mm measured, 150mm required" → Status: Open.
Work Begins
The site team receives the issue. The assignee clicks Start Fix → Status: In Progress. Rework begins — rebar is repositioned to the correct spacing.
Fix Complete
After the rework, the assignee clicks Mark Fixed → Status: Fixed. All sibling issues from this inspection must also reach Fixed status.
Reinspection Verifies
The Performer re-inspects the items (reinspection cycle). When they submit the reinspection, the Fixed issues linked to that inspection transition to Closed.
Priority Impact
Priority doesn't affect the lifecycle mechanics but provides urgency signals:
| Priority | Typical Response |
|---|---|
| Critical | Immediate action — safety issues, stop-work items |
| High | Same-day response — blocking other trades or work |
| Medium | Standard rework timeline — 1-3 days |
| Low | Can be bundled with other work — cosmetic fixes |
Overdue items (past due date) show visual indicators in the table.
Next Steps
- Issues Overview — Table layout, categories, filtering, and management
- Reinspection — How the reinspection cycle works with issue resolution