Skip to content

feat(ceremonies): automated retro enforcement — GitHub Issues over markdown#607

Closed
tamirdresher wants to merge 4 commits intobradygaster:mainfrom
tamirdresher:retro-enforcement-skill
Closed

feat(ceremonies): automated retro enforcement — GitHub Issues over markdown#607
tamirdresher wants to merge 4 commits intobradygaster:mainfrom
tamirdresher:retro-enforcement-skill

Conversation

@tamirdresher
Copy link
Copy Markdown
Collaborator

Addresses #601

The problem

0% completion rate on markdown retro action items across 6 retros (December 2025 – February 2026). The format was wrong, not the ceremony.

23 action items written as markdown checklists. 0 completed. The checklists had no assignees, no notifications, no close events, and no board visibility.

The fix

Two changes:

  1. Enforce retro cadence automatically — Test-RetroOverdue runs at coordinator round start and blocks other work if no retro has run this week
  2. Output action items as GitHub Issues — not markdown checklists

Measured result: Issues have 85%+ completion rate in the same repository where markdown had 0%.

Files added

  • ceremonies/retrospective.md — ceremony template: cadence, inputs, 4-section format, Issue-based output requirement, coordinator integration contract
  • skills/retro-enforcement/SKILL.md — Test-RetroOverdue function (PowerShell), coordinator integration pattern, action item enforcement, completion data table
  • docs/retro-enforcement-guide.md — full guide: why markdown fails, why Issues work, pseudocode, real-world results, full coordinator example

Production data

Retro Format Completion
2025-12-05 Markdown 0/4 = 0%
2025-12-19 Markdown 0/3 = 0%
2026-01-09 Markdown 0/5 = 0%
2026-01-23 Markdown 0/4 = 0%
2026-02-07 Markdown 0/3 = 0%
2026-02-21 Markdown 0/4 = 0%
2026-03-24+ GitHub Issues 100% after enforcement

Production-tested in tamirdresher/tamresearch1. Enforcement running since March 2026.

bradygaster pushed a commit that referenced this pull request Mar 25, 2026
- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster
Copy link
Copy Markdown
Owner

🔍 Squad Team Review

Reviewed by: Procedures (Prompt Architect) — Pass 3 of consensus ceremony
Action: Hold — proposal-first policy applies
Team Consensus: 5/5 AGREE

Review Summary

This PR implements retro enforcement, ensuring squad members stay within their defined capability profiles and charter boundaries.

Process Note

Per our team's documented proposal-first policy (.squad/decisions.md): "Meaningful changes require a proposal in docs/proposals/ before execution." This is a feature-class change that needs a proposal document before merge.

What's Needed

  1. Create a proposal in docs/proposals/ describing the skill's purpose, integration points, and expected behavior
  2. Retarget this PR from main to dev (our staging branch)
  3. Once proposal is reviewed and approved, this PR can proceed

Thank you for the contribution! The implementation looks solid — we just need the process alignment. 🙏

⏸️ Action: HOLD — awaiting proposal + retarget to dev

bradygaster added a commit that referenced this pull request Mar 26, 2026
#620)

* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add v0.9.0 and v0.9.1 releases to What's New

- v0.9.1 (Current Release): Bug fixes and hardening
  - Shell agent name extraction with multi-pattern fallback
  - Init scaffolding for typed casting files
  - Personal squad global mode support
  - Release CI/docs hardening
  - Doctor command improvements

- v0.9.0 (Major Feature): 6 major features + stability fixes
  - Personal Squad Governance Layer (isolated developer workspaces)
  - Worktree Spawning & Distributed Work (parallel agent orchestration)
  - Machine Capability Discovery (auto-detect tools/models/hardware)
  - Cooperative Rate Limiting (predictive circuit breaker + economy mode)
  - Telemetry & Infrastructure (auto-wire, KEDA, session recovery)
  - Docs, Stability & Distribution (Astro enhancements, npm-only)

- v0.8.2: Renamed from 'Current Release' to historic entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): triage session — 14 issues triaged, 10 PRs reviewed

- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(prompts): update model catalog to current platform offerings (#588)

Update all model references in squad.agent.md to match the current
Copilot platform catalog:

- Remove stale models: claude-opus-4.6-fast, gpt-5 (standalone)
- Add new models: claude-sonnet-4.6, claude-opus-4.6-1m, gpt-5.4,
  gpt-5.3-codex, gpt-5.4-mini
- Bump code-writing defaults from claude-sonnet-4.5 to claude-sonnet-4.6
- Bump code specialist from gpt-5.2-codex to gpt-5.3-codex
- Update fallback chains with new models in sensible positions
- Propagate via sync-templates to all 4 derived copies

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update procedures history and decision for model catalog refresh

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(sdk): getPersonalSquadRoot resolves to personal-squad dir (#590)

getPersonalSquadRoot() was hardcoded to append '.squad' to the global
squad directory, causing it to resolve to a nonexistent path. All users
running squad consult entered Init Mode and lost their personal agents.

Changed the subdirectory from '.squad' to 'personal-squad' to match
the actual layout used by resolvePersonalSquadDir() and
ensurePersonalSquadDir().

Added two tests verifying the correct resolution path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(cli): fix remaining personal-squad path in shell init (#590)

The shell's runShell() first-run check was looking for '.squad' inside the
global squad directory instead of 'personal-squad', mirroring the bug EECOM
already fixed in consult.ts. Also updated the matching test assertions in
cli-global.test.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster added a commit that referenced this pull request Mar 26, 2026
* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add v0.9.0 and v0.9.1 releases to What's New

- v0.9.1 (Current Release): Bug fixes and hardening
  - Shell agent name extraction with multi-pattern fallback
  - Init scaffolding for typed casting files
  - Personal squad global mode support
  - Release CI/docs hardening
  - Doctor command improvements

- v0.9.0 (Major Feature): 6 major features + stability fixes
  - Personal Squad Governance Layer (isolated developer workspaces)
  - Worktree Spawning & Distributed Work (parallel agent orchestration)
  - Machine Capability Discovery (auto-detect tools/models/hardware)
  - Cooperative Rate Limiting (predictive circuit breaker + economy mode)
  - Telemetry & Infrastructure (auto-wire, KEDA, session recovery)
  - Docs, Stability & Distribution (Astro enhancements, npm-only)

- v0.8.2: Renamed from 'Current Release' to historic entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): triage session — 14 issues triaged, 10 PRs reviewed

- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): log work session — triage, fixes, research

Round 1 outcomes:
- PAO: #610 docs link already resolved
- EECOM: #590 personal squad path fix (getPersonalSquadRoot)
- Procedures: #588 model catalog updated to current platform
- Flight: #612 community issue filed on routing regression
- CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes
- GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param

Round 2: Code review & quality gate
- FIDO: Found same bug in shell/index.ts, enforced revision
- CONTROL: Full sweep of #590 fix, awaiting FIDO re-review

Merged decisions:
1. Personal squad path canonicalization (personal-squad/)
2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults)
3. CLI platform analysis (monorepo discovery, idle hiding, hook injection)
4. Squad regression analysis (prompt saturation, workstream replacement, missing name param)

Logs created:
- 6 orchestration logs (one per agent)
- 1 session synthesis log with research synthesis
- 4 agent history updates (team update annotations)

All inbox decision files merged and deleted.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge: VS Code routing enforcement fix proposal (#613)

- Merged procedures-vscode-routing-fix.md from inbox to decisions.md
- Cleared decision inbox after merge
- Logged session finalization work

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add count-based fallback to archiveDecisions() (#626)

archiveDecisions() silently returned null when all entries were <30 days
old, allowing decisions.md to grow unboundedly. Active projects hit
145KB+ (35K tokens burned per agent spawn).

Added count-based fallback: when all entries are recent but total size
exceeds 20KB, archive the oldest recent entries to stay under threshold.
Undated entries are preserved (not archived) per Procedures' guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update EECOM history with #626 learnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster added a commit that referenced this pull request Mar 26, 2026
…#624)

* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add v0.9.0 and v0.9.1 releases to What's New

- v0.9.1 (Current Release): Bug fixes and hardening
  - Shell agent name extraction with multi-pattern fallback
  - Init scaffolding for typed casting files
  - Personal squad global mode support
  - Release CI/docs hardening
  - Doctor command improvements

- v0.9.0 (Major Feature): 6 major features + stability fixes
  - Personal Squad Governance Layer (isolated developer workspaces)
  - Worktree Spawning & Distributed Work (parallel agent orchestration)
  - Machine Capability Discovery (auto-detect tools/models/hardware)
  - Cooperative Rate Limiting (predictive circuit breaker + economy mode)
  - Telemetry & Infrastructure (auto-wire, KEDA, session recovery)
  - Docs, Stability & Distribution (Astro enhancements, npm-only)

- v0.8.2: Renamed from 'Current Release' to historic entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): triage session — 14 issues triaged, 10 PRs reviewed

- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): log work session — triage, fixes, research

Round 1 outcomes:
- PAO: #610 docs link already resolved
- EECOM: #590 personal squad path fix (getPersonalSquadRoot)
- Procedures: #588 model catalog updated to current platform
- Flight: #612 community issue filed on routing regression
- CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes
- GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param

Round 2: Code review & quality gate
- FIDO: Found same bug in shell/index.ts, enforced revision
- CONTROL: Full sweep of #590 fix, awaiting FIDO re-review

Merged decisions:
1. Personal squad path canonicalization (personal-squad/)
2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults)
3. CLI platform analysis (monorepo discovery, idle hiding, hook injection)
4. Squad regression analysis (prompt saturation, workstream replacement, missing name param)

Logs created:
- 6 orchestration logs (one per agent)
- 1 session synthesis log with research synthesis
- 4 agent history updates (team update annotations)

All inbox decision files merged and deleted.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge: VS Code routing enforcement fix proposal (#613)

- Merged procedures-vscode-routing-fix.md from inbox to decisions.md
- Cleared decision inbox after merge
- Logged session finalization work

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: rename template copies to prevent CLI instruction merging (#613)

Copilot CLI 1.0.11 discovers all *.agent.md files from cwd to git root
and merges them into the coordinator prompt. Squad had 3 template copies
that were being discovered and merged, causing 4x instruction duplication.

Renamed template copies to .agent.md.template so only the active copy
at .github/agents/squad.agent.md is discovered by the CLI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* scribe: Record spawn manifest session — template rename completion

Orchestration logs:
- CONTROL: Template rename (3 copies squad.agent.md → .agent.md.template)
- FIDO: QA approval of template rename work
- Coordinator: 3 PRs opened (#624, #620, #619)

Session log: Spawn manifest execution summary
- Template duplication risk eliminated
- Zero stale references found
- Build + test: zero new failures
- All work ready for merge coordination

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster added a commit that referenced this pull request Mar 26, 2026
* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add v0.9.0 and v0.9.1 releases to What's New

- v0.9.1 (Current Release): Bug fixes and hardening
  - Shell agent name extraction with multi-pattern fallback
  - Init scaffolding for typed casting files
  - Personal squad global mode support
  - Release CI/docs hardening
  - Doctor command improvements

- v0.9.0 (Major Feature): 6 major features + stability fixes
  - Personal Squad Governance Layer (isolated developer workspaces)
  - Worktree Spawning & Distributed Work (parallel agent orchestration)
  - Machine Capability Discovery (auto-detect tools/models/hardware)
  - Cooperative Rate Limiting (predictive circuit breaker + economy mode)
  - Telemetry & Infrastructure (auto-wire, KEDA, session recovery)
  - Docs, Stability & Distribution (Astro enhancements, npm-only)

- v0.8.2: Renamed from 'Current Release' to historic entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): triage session — 14 issues triaged, 10 PRs reviewed

- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): log work session — triage, fixes, research

Round 1 outcomes:
- PAO: #610 docs link already resolved
- EECOM: #590 personal squad path fix (getPersonalSquadRoot)
- Procedures: #588 model catalog updated to current platform
- Flight: #612 community issue filed on routing regression
- CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes
- GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param

Round 2: Code review & quality gate
- FIDO: Found same bug in shell/index.ts, enforced revision
- CONTROL: Full sweep of #590 fix, awaiting FIDO re-review

Merged decisions:
1. Personal squad path canonicalization (personal-squad/)
2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults)
3. CLI platform analysis (monorepo discovery, idle hiding, hook injection)
4. Squad regression analysis (prompt saturation, workstream replacement, missing name param)

Logs created:
- 6 orchestration logs (one per agent)
- 1 session synthesis log with research synthesis
- 4 agent history updates (team update annotations)

All inbox decision files merged and deleted.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge: VS Code routing enforcement fix proposal (#613)

- Merged procedures-vscode-routing-fix.md from inbox to decisions.md
- Cleared decision inbox after merge
- Logged session finalization work

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: platform-neutral routing enforcement for VS Code (#613)

- Rewrite CRITICAL RULE to be platform-neutral (task + runSubagent)
- Update all enforcement references to mention both dispatch mechanisms
- Add routing reinforcement reminder at prompt boundary
- Addresses VS Code Autopilot routing bypass reported in #613

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update Procedures history with #613 fix implementation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Owner

@bradygaster bradygaster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FIDO Quality Review — PR #607: automated retro enforcement

Verdict: ⚠️ NEEDS CHANGES

Blocking Issues

❌ Wrong file paths: Files are placed at root-level directories that don't exist in this project:

  • ceremonies/retrospective.md — no ceremonies/ dir at root
  • docs/retro-enforcement-guide.mddocs/ is for the Astro documentation site, not standalone guides

Expected locations:

  • Ceremony definition → should be a skill at packages/squad-cli/templates/skills/retro-enforcement/SKILL.md (and SDK equivalent), OR an addition to the existing ceremonies template at .squad/templates/ceremonies.md
  • Guide content → could be docs/src/content/docs/features/retro-enforcement.md if targeting the docs site, or folded into the SKILL.md itself

❌ No changeset file: Feature PRs need a changeset. Add .changeset/retro-enforcement.md with the correct @bradygaster/squad-cli and @bradygaster/squad-sdk scoped package names.

Non-Blocking Notes

  • Target branch: Targets main — consider dev.
  • Ceremony format: The retrospective.md doesn't follow the ceremonies.md template format (which uses a table-based Field/Value layout). It's a full standalone document instead.
  • Content quality: The content itself is strong — the analysis of markdown checklists vs GitHub Issues is compelling, and the Test-RetroOverdue integration pattern is practical. The data from tamirdresher/tamresearch1 adds credibility.
  • PowerShell integration code: The coordinator integration example is implementation-specific. Consider keeping the skill doc pattern-focused and implementation-agnostic.

Needs restructuring to match project file layout conventions.

chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
…r#608)

* feat: version bump to 0.8.6-preview, auto-link detection, docs updates

- Bump all packages from 0.8.5.1 to 0.8.6-preview
- Add checkAutoLink() to cli-entry.ts for local dev detection
- Update CONTRIBUTING.md with local dev versioning and npm link docs
- Update Kobayashi charter with release versioning sequence
- Add scrollback and auto-link decisions to inbox
- File 13 REPL UX issues (bradygaster#595-bradygaster#607) from screenshot review

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: add REPL UX E2E tests — verify what users actually see

Spawn the real CLI binary via child_process and assert against actual
terminal output. 22 tests across 6 categories:

- First Run (no team): welcome banner once, init prompt visible, no
  coordinator label, no ExperimentalWarning, no Resumed session
- Clean Output: no warnings on --help, --version, first-run; stderr
  clean on --version
- Banner Renders Once: version banner and welcome each appear exactly
  once, no duplicate taglines
- Message Labels: Squad branding (not coordinator) in help, welcome,
  and error messages
- Markdown Rendering: no raw **bold** asterisks leak to terminal
- Work Gating: status/doctor work in empty dirs without crashing

All tests use child_process.spawn with ANSI stripping, NO_COLOR=1,
TERM=dumb, temp directories for isolation, and text-pattern assertions
(no sleep-based timing).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: REPL UX fixes — init guard, scrollback, banner, labels, markdown, tests

P0 fixes:
- bradygaster#596: squad init now scaffolds all required files (team.md, routing.md,
  decisions.md, agents/, ceremonies.md)
- bradygaster#597: Coordinator refuses work when no team.md exists, redirects to init
- bradygaster#595: Completed messages render via Ink Static for full scrollback history
- bradygaster#601: Ghost text eliminated by Static/dynamic message split

P1 fixes:
- bradygaster#598: Banner renders once (sync init instead of lazy useEffect)
- bradygaster#599: Coordinator label changed from 'coordinator:' to 'Squad:'
- bradygaster#600: Inline markdown rendering (**bold**, *italic*, code)
- bradygaster#602: SQLite ExperimentalWarning suppressed at CLI entry
- bradygaster#603: Shell gates work requests when no team exists
- bradygaster#604: Session resume skipped on first run (no team.md)

Tests:
- 30 new unit tests in test/repl-ux-fixes.test.ts covering all fixes
- 22 new E2E tests in test/repl-ux-e2e.test.ts emulating terminal output
- Updated existing tests for new coordinator prompt text

Closes bradygaster#595, bradygaster#596, bradygaster#597, bradygaster#598, bradygaster#599, bradygaster#600, bradygaster#601, bradygaster#602, bradygaster#603, bradygaster#604

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
…ster#605, bradygaster#606, bradygaster#607) (bradygaster#623)

* test: add first-run gating tests (issue bradygaster#607)

25 tests across 6 categories enforcing Init Mode gating:
- Banner renders exactly once (not duplicated)
- First-run hint appears on initial session only
- Console output contains no raw Node warnings
- 'Your squad is assembled' requires non-empty roster
- Session-scoped Static keys prevent cross-session collisions
- Terminal clear runs before Ink render

Closes bradygaster#607

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: standardize elapsed time placement inline after agent messages (bradygaster#605)

Elapsed time annotations were inconsistent — the Static scrollback block in
App.tsx rendered completed agent messages without any duration, while
MessageStream had duration code that was dead (receives messages=[]).

Changes:
- Export formatDuration from MessageStream.tsx for shared use
- Add inline (duration) display to App.tsx Static block for agent messages
- Duration computed by finding preceding user message timestamp
- Format: inline dimColor after message content, e.g. (4.4s)

Closes bradygaster#605

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update cheritto history and decision for bradygaster#605

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(shell): remove duplicate prompt hint that conflicts with header (bradygaster#606)

The InputPrompt placeholder showed 'Type @agent or /help' for the first 5
messages, duplicating guidance already present in the header banner. This
created visual noise with two competing prompt elements.

Consolidated to two hint tiers: tab/history (messageCount < 10) and
command hints (>= 10). The header banner remains the single source for
@agent and /help guidance.

Closes bradygaster#606

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update kovash history and decision for bradygaster#606 prompt consolidation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… FIDO review

- Move skill to packages/squad-cli/templates/skills/retro-enforcement/SKILL.md
- Copy skill to packages/squad-sdk/templates/skills/retro-enforcement/SKILL.md
- Merge content from ceremonies/retrospective.md, skills/retro-enforcement/SKILL.md, and docs/retro-enforcement-guide.md into single coherent SKILL.md
- Add proper frontmatter with name, description, domain, confidence, source
- Add changeset with correct @bradygaster/ scoped package names
- Remove old wrong-path files (ceremonies/, skills/, docs/)
@tamirdresher
Copy link
Copy Markdown
Collaborator Author

Superseded by #630 — clean replacement with all review feedback addressed: correct file paths, proper changeset, targets dev, only 3 files changed.

@tamirdresher
Copy link
Copy Markdown
Collaborator Author

Closing in favour of #630 which addresses all review feedback.

@bradygaster
Copy link
Copy Markdown
Owner

Thank you for this work, Tamir! 🚀

To get this PR ready for team review and merge, we need two quick adjustments:

  1. *Retarget to \dev* — All feature work merges to the \dev\ branch first (not \main). You can change the base branch in the PR settings.

  2. Add a proposal document — Feature-class skills need a brief proposal in \docs/proposals/\ before merging. Include:

    • What the skill does
    • Why it's needed
    • How it fits into our existing skill architecture

Once those are in place, the team will take another look and we can get this merged!

Thanks for your continued contributions to Squad 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants