feat(ceremonies): automated retro enforcement - GitHub Issues over markdown - #630
Conversation
…rkdown - Add retro-enforcement skill to packages/squad-cli/templates/skills/ - Test-RetroOverdue function: blocks work queue if no retro log in last 7 days - Action items must be GitHub Issues (labeled retro-action), not markdown checklists - Update ceremonies template with enforcement-aware Retrospective section - Production data from tamirdresher/tamresearch1: 0% completion (markdown) -> 100% (Issues) Closes bradygaster#601 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add packages/squad-sdk/templates/skills/retro-enforcement/SKILL.md (mirror of CLI) - Add docs/proposals/retro-enforcement.md (required per proposal-first policy)
|
Addressed review feedback: (1) Added packages/squad-sdk/templates/skills/retro-enforcement/SKILL.md mirror. (2) Added docs/proposals/retro-enforcement.md proposal document. PR already targets dev with correct @bradygaster scoped changeset. |
bradygaster
left a comment
There was a problem hiding this comment.
Flight Review — PR #630
Tamir, great work iterating on this. This is a substantial improvement over #607:
- ✅ Targets
devbranch (wasmain) - ✅ Changeset included with correct package scopes
- ✅ Ceremonies template uses Field/Value table format
- ✅ Proposal doc included (was missing in #607)
- ✅ Content quality remains strong — the production data is compelling
Three structural items to fix before merge:
1. Proposal location: docs/proposals/ → .squad/proposals/
Existing proposals live at .squad/proposals/ (see coordinator-restraint.md and prompt-architecture-analysis.md there). Move docs/proposals/retro-enforcement.md → .squad/proposals/retro-enforcement.md to follow the established convention.
2. Skill location: packages/*/templates/skills/ → templates/skills/
I know the #607 review suggested packages/squad-cli/templates/skills/, but those directories don't actually exist in the project. The existing distributable skills pattern is templates/skills/{skill-name}/SKILL.md at the repo root (see squad-conventions, rework-rate, nap). Place a single SKILL.md at templates/skills/retro-enforcement/SKILL.md instead of two identical copies in non-existent package directories. One source of truth, follows existing convention.
3. SKILL.md frontmatter
All existing skills use YAML frontmatter (name, description, domain, confidence, source). Add frontmatter to match the project template at .squad/skill.md:
---
name: "retro-enforcement"
description: "Enforce retro cadence and GitHub Issues for action items"
domain: "ceremonies, process"
confidence: "high"
source: "manual"
---The content below the frontmatter is solid — no changes needed there.
Summary: The feature itself is well-designed, well-documented, and production-tested. These three items are all about file placement and format conventions — straightforward fixes. Looking forward to the next iteration.
There was a problem hiding this comment.
Pull request overview
Adds a “retro-enforcement” skill template that describes a PowerShell-based overdue-retro check and updates the ceremonies template to include an enforcement-aware retrospective definition, with a changeset entry for release tracking.
Changes:
- Added
retro-enforcementskill templates to both CLI and SDK template trees. - Updated canonical ceremonies template to include “Retrospective with Enforcement” in Field/Value format.
- Added proposal doc + changeset entry describing the feature and release impact.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/squad-sdk/templates/skills/retro-enforcement/SKILL.md | Adds the SDK copy of the retro-enforcement skill template (PowerShell examples + verification guidance). |
| packages/squad-cli/templates/skills/retro-enforcement/SKILL.md | Adds the CLI copy of the retro-enforcement skill template (same content as SDK copy). |
| docs/proposals/retro-enforcement.md | Adds a proposal document describing motivation, approach, and risks. |
| .squad-templates/ceremonies.md | Updates canonical ceremonies template with an enforcement-oriented retrospective entry. |
| .changeset/retro-enforcement.md | Adds release metadata for CLI/SDK version bumps and change summary. |
| --- | ||
|
|
||
| ## Retrospective with Enforcement | ||
|
|
||
| | Field | Value | | ||
| |-------|-------| | ||
| | **Trigger** | auto | | ||
| | **When** | weekly | | ||
| | **Condition** | No *retrospective* log in .squad/log/ within the last 7 days | |
There was a problem hiding this comment.
.squad-templates/ is the canonical source for synced templates, but the mirror copies (e.g. templates/ceremonies.md, packages/squad-cli/templates/ceremonies.md, packages/squad-sdk/templates/ceremonies.md) are still on the older content. This will cause test/template-sync.test.ts to fail. Run node scripts/sync-templates.mjs and commit the synced mirror updates as part of this PR.
| $content = Get-Content $RetroLogPath -Raw | ||
|
|
||
| # Check for Issue references (e.g., #1478, https://github.com/.../issues/1478) | ||
| $issueRefs = [regex]::Matches($content, '(?:#\d{3,}|issues/\d{3,})') |
There was a problem hiding this comment.
The Issue reference regex requires 3+ digits (#\d{3,} / issues/\d{3,}), which will miss repositories with low issue numbers (e.g., #12). Use a \d+-style match so action-item verification works in newly created repos too.
| $issueRefs = [regex]::Matches($content, '(?:#\d{3,}|issues/\d{3,})') | |
| $issueRefs = [regex]::Matches($content, '(?:#\d+|issues/\d+)') |
| # Check for Issue references (e.g., #1478, https://github.com/.../issues/1478) | ||
| $issueRefs = [regex]::Matches($content, '(?:#\d{3,}|issues/\d{3,})') |
There was a problem hiding this comment.
The Issue reference regex requires 3+ digits (#\d{3,} / issues/\d{3,}), which will miss repositories with low issue numbers (e.g., #12). Use a \d+-style match so action-item verification works in newly created repos too.
| # Check for Issue references (e.g., #1478, https://github.com/.../issues/1478) | |
| $issueRefs = [regex]::Matches($content, '(?:#\d{3,}|issues/\d{3,})') | |
| # Check for Issue references (e.g., #12, #1478, https://github.com/.../issues/7, https://github.com/.../issues/1478) | |
| $issueRefs = [regex]::Matches($content, '(?:#\d+|issues/\d+)') |
| `powershell | ||
| if (Test-RetroOverdue -LogDir ".squad/log" -WindowDays 7) { | ||
| # Spawn retro facilitator, wait for log, then resume | ||
| } | ||
| ` |
There was a problem hiding this comment.
The PowerShell example here is not fenced as a code block (it uses single backticks). Switch to triple-backtick fencing (powershell ... ) so the snippet renders correctly in Markdown.
| --- | ||
| "@bradygaster/squad-cli": minor | ||
| "@bradygaster/squad-sdk": patch | ||
| --- |
There was a problem hiding this comment.
PR description says only 3 files changed, but this PR also adds packages/squad-sdk/templates/skills/retro-enforcement/SKILL.md and docs/proposals/retro-enforcement.md (5 files total). Please update the PR description to match the actual diff, or drop the extra files if they were unintended.
|
@copilot apply changes based on the comments in this thread |
1 similar comment
|
@copilot apply changes based on the comments in this thread |
Replaces #607 with corrected file structure per Brady review feedback.
Closes #601
Changes: