From ced258bbda0885a799355ff09513922f97604e4f Mon Sep 17 00:00:00 2001 From: lorentz Date: Thu, 16 Jul 2026 15:40:30 -0400 Subject: [PATCH] =?UTF-8?q?docs(22):=20mark=20phase=2022=20complete=20?= =?UTF-8?q?=E2=80=94=20approval=20UI=20(LiveLink)=20shipped?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 6 plans merged: pure-logic extraction (resolver/default-params/timeline), API read surface, evidence/classification/timeline cards, action-area card, and the ticket-scoped review page + campaigns list + nav entry. Blocking LiveLink checkpoint verified against a real Autotask ticket (numeric ticket ID confirmed, no ticket_number fallback needed). --- .planning/ROADMAP.md | 16 ++++++++-------- .planning/STATE.md | 22 +++++++++++----------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index c0ad56e..3221d88 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -367,7 +367,7 @@ of a functional dependency on Phase 21. - [x] **Phase 19: Classification Engine** — Deterministic SPAM/UNWANTED/THREAT rule classifier over bounded structured evidence, KnowBe4-simulation guard, (re-)trigger API (completed 2026-07-16) - [x] **Phase 20: Remediation, Approval & Audit Safety** — Proposed-only remediation actions, approve/remediate/mark-false-positive APIs, idempotent re-run, full audit trail (completed 2026-07-16) - [x] **Phase 21: Autotask Triage Note** — Sanitized internal triage note posted via existing safe note-write path, or returned via API if no such path exists (completed 2026-07-16) -- [ ] **Phase 22: Approval UI (LiveLink)** — Ticket-ID-addressable Pulse page (Autotask LiveLink target) showing campaign timeline, evidence, and classification, with approve/remediate/mark-false-positive wired to the Phase 20 APIs +- [x] **Phase 22: Approval UI (LiveLink)** — Ticket-ID-addressable Pulse page (Autotask LiveLink target) showing campaign timeline, evidence, and classification, with approve/remediate/mark-false-positive wired to the Phase 20 APIs (completed 2026-07-16) ## Phase Details @@ -503,7 +503,7 @@ Phases execute in numeric order. v1.0 (Phases 1-9.1) shipped 2026-07-10. v2.0 (P | 19. Classification Engine | v3.0 | 2/2 | Complete | 2026-07-16 | | 20. Remediation, Approval & Audit Safety | v3.0 | 2/2 | Complete | 2026-07-16 | | 21. Autotask Triage Note | v3.0 | 2/2 | Complete | 2026-07-16 | -| 22. Approval UI (LiveLink) | v3.0 | 0/6 | Not started | - | +| 22. Approval UI (LiveLink) | v3.0 | 6/6 | Complete | 2026-07-16 | ### Phase 22: Approval UI (LiveLink) **Goal**: A security operator opens an Autotask ticket, clicks a LiveLink button, and lands on a Pulse page scoped to that ticket showing the campaign's timeline, evidence, and classification — with approve/remediate/mark-false-positive actions right there, so no one is calling the Phase 20 APIs by hand. @@ -517,12 +517,12 @@ Phases execute in numeric order. v1.0 (Phases 1-9.1) shipped 2026-07-10. v2.0 (P 5. Approve, remediate, and mark-false-positive buttons call the Phase 20 APIs directly from the page and reflect the resulting state (e.g. a remediated campaign shows as remediated, not re-offered for approval) 6. An operator without the elevated permission REMED-02/ACCESS-01 already require sees the approve/remediate actions disabled or hidden rather than a failed request; the page never uses a relaxed or separate permission check from the underlying APIs **Plans**: 6 plans -- [ ] 22-01-PLAN.md — Pure testable logic: ticket->campaign resolver, 7-action default-params, timeline merge (REVIEW-01, REVIEW-02, REVIEW-04) -- [ ] 22-02-PLAN.md — Backend routes: new ticket->campaign resolver + extend campaign-detail (evidence/timeline/classification/blast radius) + list firstReportTicketId (REVIEW-01..04) -- [ ] 22-03-PLAN.md — Evidence display: shadcn tooltip + inert UrlList (D-09) + tabbed EvidenceCard (REVIEW-03) -- [ ] 22-04-PLAN.md — ClassificationCard + TimelineCard (REVIEW-02, REVIEW-04) -- [ ] 22-05-PLAN.md — ActionAreaCard: approve/remediate/mark-false-positive with server-identical permission gating (REVIEW-05, REVIEW-06) -- [ ] 22-06-PLAN.md — Review page + campaigns list page + nav entry (REVIEW-01, REVIEW-05, REVIEW-06) +- [x] 22-01-PLAN.md — Pure testable logic: ticket->campaign resolver, 7-action default-params, timeline merge (REVIEW-01, REVIEW-02, REVIEW-04) +- [x] 22-02-PLAN.md — Backend routes: new ticket->campaign resolver + extend campaign-detail (evidence/timeline/classification/blast radius) + list firstReportTicketId (REVIEW-01..04) +- [x] 22-03-PLAN.md — Evidence display: shadcn tooltip + inert UrlList (D-09) + tabbed EvidenceCard (REVIEW-03) +- [x] 22-04-PLAN.md — ClassificationCard + TimelineCard (REVIEW-02, REVIEW-04) +- [x] 22-05-PLAN.md — ActionAreaCard: approve/remediate/mark-false-positive with server-identical permission gating (REVIEW-05, REVIEW-06) +- [x] 22-06-PLAN.md — Review page + campaigns list page + nav entry (REVIEW-01, REVIEW-05, REVIEW-06) **UI hint**: yes --- diff --git a/.planning/STATE.md b/.planning/STATE.md index 7cd59a5..4829342 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,16 +2,16 @@ gsd_state_version: 1.0 milestone: v3.0 milestone_name: Phishing Triage Automation -status: executing +status: completed stopped_at: Phase 22 UI-SPEC approved -last_updated: "2026-07-16T18:09:53.334Z" -last_activity: 2026-07-16 -- Phase 22 planning complete +last_updated: "2026-07-16T19:40:04.328Z" +last_activity: 2026-07-16 -- Phase 22 marked complete progress: total_phases: 8 - completed_phases: 7 + completed_phases: 8 total_plans: 24 - completed_plans: 18 - percent: 75 + completed_plans: 24 + percent: 100 --- # Project State @@ -21,14 +21,14 @@ progress: See: .planning/PROJECT.md (updated 2026-07-14) **Core value:** A manager/security operator can see every phishing/spam report ticket automatically triaged, deduplicated into campaigns, and classified — with any destructive remediation gated behind explicit human approval. -**Current focus:** Phase 22 — approval ui livelink addressable campaign review and approve +**Current focus:** Phase 22 — approval-ui-livelink-addressable-campaign-review-and-approve ## Current Position -Phase: 22 -Plan: Not started -Status: Ready to execute -Last activity: 2026-07-16 -- Phase 22 planning complete +Phase: 22 — COMPLETE +Plan: 1 of 6 +Status: Phase 22 complete +Last activity: 2026-07-16 -- Phase 22 marked complete Progress: [░░░░░░░░░░] 0%