Files
stack/skills/glpi-sweep/SKILL.md
Jason Woltje 7bc2dfb6c8
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
skills: add glpi-* family (solve, followup, sweep, list, create)
GLPI helpdesk workflow skills written against the portable
tools/glpi/ tooling (session-init.sh, ticket-list.sh, ticket-create.sh),
cross-linked via [[glpi-*]]:

- glpi-solve    — close a ticket by setting status Solved (5); GLPI auto-closes
- glpi-followup — add a followup via the top-level /ITILFollowup endpoint
- glpi-sweep    — read-only hunt for done-but-open tickets needing Solve
- glpi-list     — query tickets by status/recency
- glpi-create   — open a new ticket

Core rule encoded: completing work means setting status Solved, not just
posting a resolution followup (a followup documents; only Solved auto-closes).

Note: illustrative examples in the bodies are USC-flavored (M2M / helpdesk
ticket numbers) and can be genericized in review if preferred.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GjBgrb9tHgvq414Fqj37c
2026-07-20 18:04:53 -05:00

2.1 KiB

Skill: glpi-sweep — Find Done-But-Open Tickets

Read-only sweep for tickets that are finished in reality but still sitting open in GLPI (never moved to Solved). Surfaces the exact miss Jason caught on 2026-07-20 (M2M #2607200002 and the Brad ticket had resolution followups posted but were left open). For each one that's genuinely done, close it out with glpi-solve.

When to use

  • Periodic hygiene pass (e.g. before a weekly update or month-end).
  • After a burst of ticket work, to catch any you resolved-in-followup but never Solved.

Why this exists

Posting an /ITILFollowup documents work but does not change status. Tickets only auto-close once set to Solved (status 5). Anything left at New/Processing/Pending stays open indefinitely. This sweep finds those.

Procedure

1. List still-open tickets by status

GLPI=~/.config/mosaic/tools/glpi
"$GLPI/ticket-list.sh" -s new        -f table
"$GLPI/ticket-list.sh" -s processing -f table
"$GLPI/ticket-list.sh" -s pending    -f table

(GLPI status IDs: 1 New · 2/3 Processing · 4 Pending · 5 Solved · 6 Closed.)

2. Triage

For each open ticket, judge whether the underlying work is actually finished — check its latest followups and cross-reference brain tasks / recent work. Read-only here; change nothing yet.

Reasonable "probably done" signals:

  • A resolution/root-cause followup already posted, but status never advanced.
  • The related brain task is done, or the fix shipped and was confirmed.
  • Requester confirmed resolution but the ticket was never Solved.

3. Present the candidates

List them for review before touching anything — never bulk-solve blindly:

Open tickets that look resolved:
- #<id> "<title>" — <why it looks done> → glpi-solve?

4. Close out the confirmed ones

For each ticket the user (or clear evidence) confirms is done, run glpi-solve (optionally glpi-followup first if a closing note is warranted).

Guardrails

  • Read-only until a ticket is confirmed done — do not auto-solve on a guess.
  • Never echo GLPI tokens.
  • Set Solved (5), never Closed (6) — GLPI auto-close owns that transition.