Skip to content

fix: 5 bug fixes — dotted repos, icon spacing, board owner, charter, playbooks - #1133

Merged
tamirdresher merged 2 commits into
devfrom
bradygaster/jubilant-enigma
May 19, 2026
Merged

tamirdresher merged 2 commits into
devfrom
bradygaster/jubilant-enigma

Conversation

@bradygaster

Copy link
Copy Markdown
Collaborator

Summary

Batch fix for 5 open bugs:

#1077 — parseGitHubRemote / parseAzureDevOpsRemote fail on repo names containing dots

  • Root cause: Regex used [^/.] which excluded dots from repo name captures.
  • Fix: Changed to [^/] for repo name groups. Added 7 new test cases covering dotted names.

#1099 — Icons sometimes smashed too close to agent name

  • Root cause: When an agent wasn't in the roleMap, no emoji (and no space) was rendered.
  • Fix: Always call getRoleEmoji() with the agent name as fallback, ensuring emoji+space is always present.

#1079 — squad watch --board fails for org-owned ProjectV2

  • Root cause: --owner @me hardcoded in BoardCapability.execute().
  • Fix: Added owner field to board config (defaults to @me), plus --board-owner <org> CLI flag.

#1081 — squad watch --execute doesn't pass specialist charter

  • Root cause: executeAll() only built a generic prompt without loading Ralph's charter.
  • Fix: Import loadAgentCharter and prepend Ralph's charter to the spawned session prompt (graceful fallback if none exists).

#1100 — Ship missing on-demand playbooks referenced by squad.agent.md

  • Created: ceremony-reference.md, prd-intake.md, copilot-agent.md
  • Mirrored to all 4 template locations (template sync tests pass ✅).

Test Results

  • ✅ 127 platform-adapter tests pass (including 7 new dotted-name tests)
  • ✅ 167 template-sync tests pass

Closes #1077
Closes #1099
Closes #1079
Closes #1081
Closes #1100

…harter passing, missing playbooks

- #1077: Fix parseGitHubRemote/parseAzureDevOpsRemote regex to allow dots in repo names
- #1099: Always show emoji+space for agent names (use fallback when not in roleMap)
- #1079: Add --board-owner flag and use config owner instead of hardcoded @me
- #1081: Load Ralph's charter before spawning watch --execute sessions
- #1100: Create ceremony-reference.md, prd-intake.md, copilot-agent.md playbooks

Closes #1077
Closes #1099
Closes #1079
Closes #1081
Closes #1100

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 19, 2026 07:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR batches five fixes across the SDK’s remote parsing, the CLI shell’s agent labeling, watch capability behavior/config, and the shipped template/playbook set used by init/upgrade.

Changes:

  • Fix GitHub + Azure DevOps remote parsing to allow dotted repo names; add regression tests.
  • Ensure agent emoji + spacing renders consistently (even when an agent isn’t in the role map).
  • Extend watch --board to support non-@me owners via config + --board-owner, and prepend Ralph’s charter to watch --execute spawned prompts; add new on-demand templates/playbooks.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/squad-sdk/src/platform/detect.ts Loosens repo capture regex to allow dots in repo names for GitHub + ADO remotes.
test/platform-adapter.test.ts Adds dotted-repo test cases for both GitHub and Azure DevOps parsing.
packages/squad-cli/src/cli/shell/components/App.tsx Uses getRoleEmoji() fallback to always render an emoji when agentName exists.
packages/squad-cli/src/cli/shell/components/MessageStream.tsx Same emoji fallback as App.tsx, including streaming display.
packages/squad-cli/src/cli/commands/watch/capabilities/board.ts Reads owner from capability config (default @me) for gh project item-list.
packages/squad-cli/src/cli-entry.ts Adds --board-owner parsing and treats it as a value-flag for positional-arg filtering.
packages/squad-cli/src/cli/commands/watch/capabilities/execute.ts Loads Ralph’s charter and prepends it to the spawned session prompt (best-effort).
.squad-templates/prd-intake.md Adds PRD intake playbook to canonical templates.
.squad-templates/copilot-agent.md Adds Copilot coding agent playbook to canonical templates.
.squad-templates/ceremony-reference.md Adds ceremony reference playbook to canonical templates.
templates/prd-intake.md Mirrors new PRD intake template for init/upgrade shipping.
templates/copilot-agent.md Mirrors new Copilot agent template for init/upgrade shipping.
templates/ceremony-reference.md Mirrors new ceremony reference template for init/upgrade shipping.
packages/squad-cli/templates/prd-intake.md Mirrors new PRD intake template into CLI package templates.
packages/squad-cli/templates/copilot-agent.md Mirrors new Copilot agent template into CLI package templates.
packages/squad-cli/templates/ceremony-reference.md Mirrors new ceremony reference template into CLI package templates.
packages/squad-sdk/templates/prd-intake.md Mirrors new PRD intake template into SDK package templates.
packages/squad-sdk/templates/copilot-agent.md Mirrors new Copilot agent template into SDK package templates.
packages/squad-sdk/templates/ceremony-reference.md Mirrors new ceremony reference template into SDK package templates.

Comment on lines +549 to +556
// --board-owner sets the project owner (org or user login)
const boardOwnerIdx = args.indexOf('--board-owner');
if (boardOwnerIdx !== -1 && args[boardOwnerIdx + 1]) {
const existing = capabilities['board'];
capabilities['board'] = typeof existing === 'object' && existing !== null
? { ...existing, owner: args[boardOwnerIdx + 1]! }
: { owner: args[boardOwnerIdx + 1]! };
}
Comment on lines +154 to +161
// Load Ralph's charter to give the spawned session full specialist context.
let charterPrefix = '';
try {
const charter = await loadAgentCharter('ralph', context.teamRoot);
charterPrefix = `You are an AI agent on a software development team.\n\nYOUR CHARTER:\n${charter}\n\nADDITIONAL CONTEXT:\n`;
} catch {
// Fall back gracefully if no charter exists (e.g., fresh setup)
}
Comment on lines +1 to +5
# Copilot Coding Agent Member

On-demand reference for adding the GitHub Copilot coding agent (@copilot) to the Squad roster.

## Adding @copilot
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tamirdresher
tamirdresher merged commit 42c9dd3 into dev May 19, 2026
6 checks passed
@bradygaster
bradygaster deleted the bradygaster/jubilant-enigma branch August 8, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants