# Issue Cleanup Plan - 2026-05-01

## Tracker Hygiene

These are safe tracker updates before any feature work:

1. Close Gitea #127 (`feat: show AI content scope indicator`) unless an always-visible badge is still desired.
   - Current code already has IT/MSP scope copy in the assistant empty state.
   - `ASSISTANT_SYSTEM_PROMPT` also has an off-domain redirect boundary.
2. Rewrite Gitea #66 (`Tree Templates + Import/Export`) to the remaining scope only.
   - `.rfflow` export/import is implemented in `tree_transfer.py` and exposed in the library UI.
   - Remaining work: curated packs, authenticated one-click install from gallery, template versioning, marketplace/community path.
3. Close or archive open PR #124 (`feat/cockpit-harness`).
   - It is unmergeable against current `main` and overlaps newer `/pilot` work.
4. Keep Gitea #58, #60, #128, #129, #130 open.
   - They still describe real product gaps.

## Recommended Order

### 1. Low-Risk Maintenance

- Status: started 2026-05-01.
- Frontend lint is clean after removing stale disable comments and tightening hook dependencies.
- Added `data-testid` selectors for e2e-critical session history and FlowPilot command-palette controls.
- Added `AssistantChatPage` observability for unexpected `currentChatRef` guard mismatches so stale async discards are visible in the console.

Why first: these reduce future regression cost and are small, well-bounded changes.

### 2. Pilot UX Friction

- Status: started 2026-05-01.
- #130: Added diagnostic command help affordances in `TaskLane` action cards. Each active diagnostic card can explain what it checks, what to look for, and when to use it.
- #128: Keep the existing responsive drawer behavior for now. `TaskLane` already uses a side panel on wide screens and a bottom drawer below the desktop breakpoint; do not add a top/side preference unless pilot feedback shows the current responsive layout is blocking workflow.
- EscalationQueue mobile design stays deferred until a customer asks for it.

Why second: this improves the current FlowPilot wedge without changing core data models.

Validation run:

- `docker exec -w /app resolutionflow_frontend npm run lint`
- `docker exec -w /app resolutionflow_frontend npx tsc -b`
- `docker exec -w /app resolutionflow_frontend npm run build`

### 3. Workflow Quality Signals

- #58: Add structured "step is wrong" flags separate from thumbs-up/down helpfulness.
- Existing `StepFeedback` is not enough; it only records helpful/unhelpful and cannot capture incorrect/outdated/unclear/missing-info reasons.

Why third: useful, but needs schema/API/UI/admin surfaces.

### 4. Client Intelligence

- #60: Recurring issue detection.
- Start with a read-only banner using existing `sessions.client_name + tree_id` filters.
- Add same-resolution detection only after confirming the available session outcome/node data is reliable enough.

Why fourth: high value, but it touches session-start and close-out flows and needs careful false-positive handling.

### 5. Documentation Structure

- #129: Hierarchical guide navigation.
- Current `/guides` route is a card grid plus detail pages with sections and breadcrumbs, but not a collapsible guide tree.

Why fifth: valid UX request, but less urgent than pilot workflow gaps.

## Gitea Actions Needed

The current environment does not have a Gitea token configured, so API writes fail with `401 token is required`. Once authenticated:

```bash
curl -X PATCH \
  https://gitea.resolutionflow.com/api/v1/repos/chihlasm/resolutionflow/issues/127 \
  -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state":"closed"}'
```

For #66, prefer editing the title/body instead of closing it:

- Title: `feat: curated template packs and one-click install`
- Body: remove completed `.rfflow` export/import acceptance criteria and keep pack/install/versioning work.
