Consider adding a `deferred` state role for trigger-gated future work
> *This was generated by AI during triage.* ## The gap The skill's canonical state set is: `needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`. Running the skill against a repo where several issues followed a common pattern surfaced a category these states don't cleanly model: **deferred future work with a concrete trigger event**. Examples from a real session (all `enhancement`-shaped, all spun off from a single PR): - "Add JWKS endpoint when a second verifier of the signing key appears" - "Add per-caller revocation registry when a third caller or compromised credential emerges" - "Migrate to OAuth 2.1 + PKCE when an external resource owner enters the picture" Each was well-specified (trigger, reasoning, acceptance all present), **not** actionable now (trigger hasn't fired), and **not** a rejection (the team intends to do it when triggered). ## Why existing states don't fit | Considered | Problem | |---|---| | `ready-for-agent` | Agent has nothing to do until trigger fires. | | `ready-for-human` | Same — no current implementation. | | `needs-info` | No info missing from reporter. | | `wontfix` + `.out-of-scope/` | `OUT-OF-SCOPE.md` explicitly excludes deferrals: *"Avoid referencing temporary circumstances ('we're too busy right now') — those aren't real rejections, they're deferrals."* | | `needs-triage` (park) | Violates "every triaged issue should carry exactly one state role." | ## Proposal Either: 1. **Add `deferred` to the canonical state set** — distinct from `wontfix` (rejected) and from `ready-for-{agent,human}` (actionable now). 2. **Document the recommended workaround** in `SKILL.md` so each operator doesn't rederive the gap (e.g. "for trigger-gated work, use `ready-for-human` with a milestone, or use a custom label"). If `deferred` is added, `.out-of-scope/` guidance is unaffected — `wontfix` remains the rejection path; `deferred` is the "wait for trigger" path. ## Operator workaround used in the session Added a repo-local `deferred` label (purple `#5319e7`) and applied `enhancement` + `deferred` to six trigger-gated issues. A seventh issue in the same batch was actually ready for an agent (trigger = "ongoing" with concrete deliverable) and got `ready-for-agent` + agent brief.