From c6c29e5b4bab041ff4d7ea86c79fa9c9888c539b Mon Sep 17 00:00:00 2001 From: Sebastien Taggart Date: Thu, 9 Apr 2026 18:42:01 -0400 Subject: [PATCH] Prescribe structured ticket body with Problem/Why/Approach/Acceptance Criteria sections --- .agents/skills/start/SKILL.md | 23 +++++++++++++++++++++-- .claude/commands/start.md | 23 +++++++++++++++++++++-- .cursor/rules/start.mdc | 23 +++++++++++++++++++++-- .gemini/skills/start/SKILL.md | 23 +++++++++++++++++++++-- skills/start.md | 21 ++++++++++++++++++++- 5 files changed, 104 insertions(+), 9 deletions(-) diff --git a/.agents/skills/start/SKILL.md b/.agents/skills/start/SKILL.md index caa34c3..740cfa5 100644 --- a/.agents/skills/start/SKILL.md +++ b/.agents/skills/start/SKILL.md @@ -93,7 +93,7 @@ Run `gh issue create` with explicit flags (do NOT open an interactive editor): ```bash gh issue create \ --title "" \ - --body "" \ + --body "" \ --assignee @me \ [--label ""] \ [--milestone ""] @@ -103,6 +103,25 @@ Resolve labels and milestone using the resolution steps in the Parsing section a - **Labels**: use the value from three-tier label resolution. If non-empty, add `--label ""` to the command. If empty (no flag, empty pool, creation not allowed), omit `--label` entirely. - **Milestone**: use the value from three-tier milestone resolution. If non-empty, add `--milestone ""` to the command. If empty (no flag, no config default, no open milestones), omit `--milestone` entirely. +**Body structure (required sections, in this order):** + +```markdown +## Problem to Fix + + +## Why it Matters + + +## General Approach + + +## Acceptance Criteria +- +- +``` + +All four sections are required. Write for a non-developer audience — no code, no file paths. Acceptance Criteria must be concrete and verifiable (not vague goals). + **Title rules:** - ✅ `Fix 'Contact Us' footer link pointing to 404 instead of /contact-us` - ❌ `Fix broken link` @@ -225,4 +244,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/.claude/commands/start.md b/.claude/commands/start.md index 043ad93..dc9d2b3 100644 --- a/.claude/commands/start.md +++ b/.claude/commands/start.md @@ -88,7 +88,7 @@ Run `gh issue create` with explicit flags (do NOT open an interactive editor): ```bash gh issue create \ --title "" \ - --body "" \ + --body "" \ --assignee @me \ [--label ""] \ [--milestone ""] @@ -98,6 +98,25 @@ Resolve labels and milestone using the resolution steps in the Parsing section a - **Labels**: use the value from three-tier label resolution. If non-empty, add `--label ""` to the command. If empty (no flag, empty pool, creation not allowed), omit `--label` entirely. - **Milestone**: use the value from three-tier milestone resolution. If non-empty, add `--milestone ""` to the command. If empty (no flag, no config default, no open milestones), omit `--milestone` entirely. +**Body structure (required sections, in this order):** + +```markdown +## Problem to Fix + + +## Why it Matters + + +## General Approach + + +## Acceptance Criteria +- +- +``` + +All four sections are required. Write for a non-developer audience — no code, no file paths. Acceptance Criteria must be concrete and verifiable (not vague goals). + **Title rules:** - ✅ `Fix 'Contact Us' footer link pointing to 404 instead of /contact-us` - ❌ `Fix broken link` @@ -220,4 +239,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/.cursor/rules/start.mdc b/.cursor/rules/start.mdc index 6566199..56b6728 100644 --- a/.cursor/rules/start.mdc +++ b/.cursor/rules/start.mdc @@ -94,7 +94,7 @@ Run `gh issue create` with explicit flags (do NOT open an interactive editor): ```bash gh issue create \ --title "" \ - --body "" \ + --body "" \ --assignee @me \ [--label ""] \ [--milestone ""] @@ -104,6 +104,25 @@ Resolve labels and milestone using the resolution steps in the Parsing section a - **Labels**: use the value from three-tier label resolution. If non-empty, add `--label ""` to the command. If empty (no flag, empty pool, creation not allowed), omit `--label` entirely. - **Milestone**: use the value from three-tier milestone resolution. If non-empty, add `--milestone ""` to the command. If empty (no flag, no config default, no open milestones), omit `--milestone` entirely. +**Body structure (required sections, in this order):** + +```markdown +## Problem to Fix + + +## Why it Matters + + +## General Approach + + +## Acceptance Criteria +- +- +``` + +All four sections are required. Write for a non-developer audience — no code, no file paths. Acceptance Criteria must be concrete and verifiable (not vague goals). + **Title rules:** - ✅ `Fix 'Contact Us' footer link pointing to 404 instead of /contact-us` - ❌ `Fix broken link` @@ -226,4 +245,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/.gemini/skills/start/SKILL.md b/.gemini/skills/start/SKILL.md index e62aaa3..5ad7329 100644 --- a/.gemini/skills/start/SKILL.md +++ b/.gemini/skills/start/SKILL.md @@ -93,7 +93,7 @@ Run `gh issue create` with explicit flags (do NOT open an interactive editor): ```bash gh issue create \ --title "" \ - --body "" \ + --body "" \ --assignee @me \ [--label ""] \ [--milestone ""] @@ -103,6 +103,25 @@ Resolve labels and milestone using the resolution steps in the Parsing section a - **Labels**: use the value from three-tier label resolution. If non-empty, add `--label ""` to the command. If empty (no flag, empty pool, creation not allowed), omit `--label` entirely. - **Milestone**: use the value from three-tier milestone resolution. If non-empty, add `--milestone ""` to the command. If empty (no flag, no config default, no open milestones), omit `--milestone` entirely. +**Body structure (required sections, in this order):** + +```markdown +## Problem to Fix + + +## Why it Matters + + +## General Approach + + +## Acceptance Criteria +- +- +``` + +All four sections are required. Write for a non-developer audience — no code, no file paths. Acceptance Criteria must be concrete and verifiable (not vague goals). + **Title rules:** - ✅ `Fix 'Contact Us' footer link pointing to 404 instead of /contact-us` - ❌ `Fix broken link` @@ -225,4 +244,4 @@ When done, say: **"The code is ready for review. Please run `make dev` and test - The issue is assigned to `@me` at creation. If you are creating a ticket on someone else's behalf, remove the assignee after creation with `gh issue edit --remove-assignee @me`. - Apply resolved labels and milestone to every new issue. Label resolution order: per-invocation flag → pool selection from `bug, documentation, enhancement, chore` → omit `--label` entirely. Never apply a label outside `bug, documentation, enhancement, chore`. - Milestone resolution order: per-invocation flag → auto-detected from GitHub open milestones. Never prompt for a milestone more than once per invocation. - + diff --git a/skills/start.md b/skills/start.md index 169a2de..0f72dc6 100644 --- a/skills/start.md +++ b/skills/start.md @@ -136,7 +136,7 @@ Run `gh issue create` with explicit flags (do NOT open an interactive editor): ```bash gh issue create \ --title "" \ - --body "" \ + --body "" \ --assignee @me \ [--label ""] \ [--milestone ""] @@ -146,6 +146,25 @@ Resolve labels and milestone using the resolution steps in the Parsing section a - **Labels**: use the value from three-tier label resolution. If non-empty, add `--label ""` to the command. If empty (no flag, empty pool, creation not allowed), omit `--label` entirely. - **Milestone**: use the value from three-tier milestone resolution. If non-empty, add `--milestone ""` to the command. If empty (no flag, no config default, no open milestones), omit `--milestone` entirely. +**Body structure (required sections, in this order):** + +```markdown +## Problem to Fix + + +## Why it Matters + + +## General Approach + + +## Acceptance Criteria +- +- +``` + +All four sections are required. Write for a non-developer audience — no code, no file paths. Acceptance Criteria must be concrete and verifiable (not vague goals). + **Title rules:** - ✅ `Fix 'Contact Us' footer link pointing to 404 instead of /contact-us` - ❌ `Fix broken link`