spile-ops

Automates ticket creation, status transitions, and view regeneration for a Spile-based markdown ticket tracker.

1|Updated Jul 15, 2026
One-click install
npx skills add https://github.com/stefanrusek/dark-harness --skill spile-ops-stefanrusek
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: spile-ops
Source: https://github.com/stefanrusek/dark-harness/tree/main/.claude/skills/spile-ops
Command: npx skills add https://github.com/stefanrusek/dark-harness --skill spile-ops-stefanrusek

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Hand-editing markdown ticket files in a Spile-based tracker (tracking/) is error-prone: IDs can collide across git worktrees, statuses drift out of sync with the generated view doc, and front matter formatting gets inconsistent. This Skill mechanizes the pure-mechanics slice of ticket tracking so no one burns context hand-writing tickets or the view file. ## Core Features & Use Cases - Ticket Minting: Create a new DH-NNNN ticket with correct front matter, a slugified filename, and an auto-incremented counter — with a guard that refuses to mint from a linked git worktree to prevent ID collisions. - Status Transitions: Move tickets through draft/refining/ready/implementing/verifying/closed, enforce that closing requires a resolution, and set or clear blocked_by and owner fields. - Slug Renaming & View Regeneration: Rename a stale ticket filename slug via git mv, and rebuild tracking/views/dark-harness-view.md (Needs Attention, Board, Recently Closed) from all ticket front matter. - Use Case: When asked to file a bug ticket, run new_ticket.py with title, type, and summary; the script writes the skeleton, bumps the counter, and refreshes the tracker view automatically. ## Quick Start Ask the assistant to create a new draft ticket titled "Fix login timeout" of type bug using the spile-ops scripts, then transition it to ready when the details are filled in.

Frequently Asked Questions about spile-ops

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new ticket in a markdown-based ticket tracker?▼

Run new_ticket.py with --title, --type (feature or bug), and optionally --status, --owner, and --summary. The script mints the next ID from the counter in tracking/README.md, writes a skeleton ticket file, bumps the counter, and regenerates the view doc.

How do I transition a ticket status or close a ticket?▼

Run transition.py with the ticket ID and new status, e.g. transition.py DH-0008 implementing. Closing requires --resolution done|wontfix|duplicate|superseded. Out-of-order transitions succeed but print an advisory warning.

Why does ticket creation fail inside a git worktree?▼

The counter in tracking/README.md exists once per worktree, so two linked worktrees can mint the same ID. new_ticket.py detects linked worktrees via git rev-parse and refuses to run; mint tickets from the primary checkout instead.

Does this ticket tooling require installing Python packages?▼

No. All scripts use only the Python 3 standard library, so they run under any python3 without a venv or pip install. Front matter is edited via line-based string matching rather than a YAML library.

What are the limitations of the front matter editing approach?▼

The tooling handles only a flat subset of YAML (scalars and single-level bracket lists) via string matching, not a real parser. If ticket front matter grows nested structure beyond the spec, the scripts would need a proper YAML parser to avoid mangling files.