Skip to content

feat(commands): add issue-body-template skill for consistent issue creation #647

Description

@xsovad06

Problem

Issues are created ad-hoc during interactive sessions with inconsistent structure. Some have `## Dependencies`, some don't. Some have `## Acceptance Criteria`, some use `## Testing Strategy`. The triage/harden pipeline then spends time restructuring them. A consistent template at creation time would reduce downstream friction.

Solution

Create an implicit skill (`.claude/skills/issue-template/SKILL.md`) that auto-activates when the user is creating a GitHub or Jira issue. The skill provides the canonical issue body structure that works best with SOVA's pipeline:

  • `## Objective` (required): what and why, 1-3 sentences
  • `## Acceptance Criteria` (required): checkbox list, testable outcomes
  • `## Dependencies` (optional): `- #NNN` or `- Part of epic #NNN` format (parsed by `dependency_graph.py`)
  • `## Context` (optional): relevant background, links, prior art
  • `## Scope Boundaries` (optional): explicit out-of-scope items

The skill should be:

  • Implicit (skill, not command): auto-activates when the context matches issue creation. No need to invoke `/create-issue`.
  • Tracker-aware: adapts field names for Jira (e.g., maps Acceptance Criteria to Jira's standard fields).
  • Distributable: ships with `sova install` to external projects via `skills/` directory.
  • Minimal: provides the template and constraints, not a multi-step workflow.

Design Decisions

  1. Skill over command? Yes. The user said "implicit" is better. The skill auto-fires when Claude detects issue creation intent (filing a bug, proposing a feature, creating a task). A command would require the user to remember to invoke it.
  2. Where does it live? `skills/issue-template/SKILL.md` (distributable) + `.claude/skills/issue-template/SKILL.md` (SOVA-specific copy with SOVA-specific fields like `area:` label suggestions).
  3. Triage quality gate alignment: the skill template must match the fields checked by `TriageRole.compute_quality_score()` so issues created with the template always pass the quality gate.

Dependencies

None.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions