🔥
strict governance

Bug Triage

A pm-cli workspace preset for incident response and bug triage teams. Maximum governance enforcement — every item must be owned, fully described, and validated before closing. Designed for teams where

strict All required fields enforced. Root cause and resolution mandatory to close.

Templates

hotfix-taskincidentregression

Install as extension

$ pm install github.com/unbraind/pm-presets --project
Then apply: pm triage-setup

Settings

{
  "id_prefix": "bug-",
  "author_default": "",
  "governance": {
    "preset": "strict",
    "ownership_enforcement": "strict",
    "create_mode_default": "strict",
    "close_validation_default": "strict",
    "metadata_profile": "strict"
  },
  "validation": {
    "sprint_release_format": "strict_error",
    "parent_reference": "warn"
  },
  "item_types": {
    "definitions": [
      {
        "name": "Issue",
        "description": "A defect, incident, or regression requiring investigation and resolution"
      },
      {
        "name": "Task",
        "description": "A remediation, hotfix, or follow-up task linked to an incident"
      }
    ]
  },
  "testing": {
    "record_results_to_items": true
  },
  "search": {
    "mode": "keyword"
  },
  "calendar": {
    "default_view": "agenda",
    "first_day_of_week": 1
  },
  "telemetry": {
    "enabled": false
  }
}

Template Files

📄 hotfix-task.json JSON
{
  "name": "hotfix-task",
  "description": "A hotfix task implementing the fix for a linked incident or regression. Must reference the parent incident.",
  "defaults": {
    "type": "Task",
    "status": "open",
    "priority": "critical",
    "tags": [
      "hotfix"
    ],
    "metadata": {
      "linked_incident": "",
      "assignee": "",
      "fix_description": "",
      "pr_link": "",
      "target_branch": "main",
      "deploy_target": "production",
      "rollback_plan": "",
      "reviewed_by": "",
      "deployed_at": "",
      "verified_by": ""
    }
  }
}
📄 incident.json JSON
{
  "name": "incident",
  "description": "An active production incident or critical defect requiring immediate triage and resolution tracking.",
  "defaults": {
    "type": "Issue",
    "status": "open",
    "priority": "critical",
    "tags": [
      "incident"
    ],
    "metadata": {
      "severity": "sev2",
      "environment": "production",
      "detected_at": "",
      "reported_by": "",
      "owner": "",
      "affected_systems": "",
      "affected_users": "",
      "steps_to_reproduce": "",
      "root_cause": "",
      "mitigation_applied": "",
      "resolution": "",
      "postmortem_url": "",
      "linked_hotfix": ""
    }
  }
}
📄 regression.json JSON
{
  "name": "regression",
  "description": "A regression — behavior that previously worked and has broken due to a code or infrastructure change.",
  "defaults": {
    "type": "Issue",
    "status": "open",
    "priority": "high",
    "tags": [
      "regression"
    ],
    "metadata": {
      "severity": "sev3",
      "environment": "",
      "introduced_in": "",
      "last_known_good_version": "",
      "steps_to_reproduce": "",
      "expected_behavior": "",
      "actual_behavior": "",
      "owner": "",
      "affected_tests": "",
      "root_cause": "",
      "fix_pr": "",
      "verified_fixed_in": ""
    }
  }
}

Documentation

A pm-cli workspace preset for incident response and bug triage teams. Maximum governance enforcement — every item must be owned, fully described, and validated before closing. Designed for teams where incomplete records create compliance or postmortem risk.

What This Preset Configures

Settings (settings.json)

Setting Value Rationale
id_prefix bug- All triage items share a distinct namespace
governance.preset strict Strict baseline governance for audit-heavy incident work
governance.ownership_enforcement strict Every incident and task must have an assigned owner
governance.create_mode_default strict All required fields must be filled at creation time
governance.close_validation_default strict Root cause and resolution fields required before close
governance.metadata_profile strict Full audit-trail metadata on every item
validation.sprint_release_format strict_error Release references in items must follow naming conventions
validation.parent_reference warn Hotfix tasks should reference a parent incident
testing.record_results_to_items true Test results linked for regression verification

Templates

Template Type Purpose
incident Issue Production incident with severity, environment, and postmortem fields
regression Issue Regression with version tracking and reproduction steps
hotfix-task Task Hotfix implementation linked to an incident, with deploy and rollback fields

Workflow Overview

Incident detected
  └── pm create --template incident     (SEV level, owner, affected systems)
        └── pm create --template hotfix-task  (linked to incident, PR, rollback plan)
              └── Deploy + verify → pm close (validates root cause & resolution are set)

Regression found in CI or QA
  └── pm create --template regression   (version introduced, last-good, repro steps)
        └── pm create --template hotfix-task  (fix PR, verified_fixed_in)
  1. When an incident is detected, immediately create an incident item. The owner field is required — assign the on-call responder.
  2. As work proceeds, fill in root_cause, mitigation_applied, and resolution as they become known.
  3. For each code fix, create a hotfix-task linked via linked_incident to the parent incident.
  4. After deploy, set deployed_at and verified_by on the hotfix-task, then close it.
  5. Close the incident with pm close — strict validation requires root_cause and resolution to be set.
  6. Attach postmortem_url before archiving the incident item.

Severity Reference

Level Meaning
sev1 Complete outage or data loss; all hands
sev2 Major feature broken or significant user impact
sev3 Degraded performance or partial failure; users affected
sev4 Minor issue; workaround available

Installation

Run the setup script from your repository root after running pm init:

bash .agents/pm/presets/bug-triage/setup.sh

Or copy files manually:

cp presets/bug-triage/settings.json .agents/pm/settings.json
cp presets/bug-triage/templates/*.json .agents/pm/templates/

Customization Tips

  • Add a sla_deadline metadata field to the incident template if your team tracks response SLAs.
  • Add customer_notified and status_page_updated fields for customer-facing incident tracking.
  • Integrate with PagerDuty or OpsGenie by setting author_default to your alerting bot and populating items via automation.
All presets View source on GitHub