You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat: bidirectional upstream sync + auto-propagation for tiered squads #357
The current squad upstream command is one-way pull-only with no auto-sync. This creates two gaps for tiered squad deployments:
1. No bidirectional flow (child → parent)
A child squad that discovers something useful (a skill, a decision, a governance improvement) has no way to propose it back to the parent squad. The only flow is parent → child via squad upstream sync.
2. No automatic propagation (parent → child)
When the parent squad changes (new governance rules, updated templates, new skills), child squads see nothing until someone manually runs squad upstream sync. There's no webhook, no watcher, no GitHub Action that triggers child updates.
Current State
squad upstream today supports:
�dd — register a parent squad (git URL, local path, or export JSON)
emove — unregister
list — show configured upstreams
sync [name] — pull latest from parent (git pull or validate local path)
All operations are read-only from the parent. The child caches the parent in .squad/_upstream_repos/.
Proposed Enhancements
Phase 1: Auto-sync (parent → child)
squad upstream watch — poll parent repo for changes on an interval (like Ralph's watch)
GitHub Action — squad-upstream-sync.yml that runs on a cron and syncs from parent, opening a PR if there are changes
Selective merge — config to specify which parent files to adopt vs override locally (e.g., adopt templates but keep local routing)
Phase 2: Bidirectional (child → parent)
squad upstream propose — packages a child's changes (new skills, decisions, governance tweaks) and creates a PR on the parent repo
Scope control — config to specify what the child is allowed to propose (skills only, decisions only, everything)
Conflict resolution — when parent and child both changed the same file, present a merge UI or default to parent-wins
Phase 3: Event-driven sync
Webhook-based — parent repo sends a webhook on push, child auto-syncs (no polling needed)
GitHub Actions integration — parent's CI triggers child repo dispatch event via
epository_dispatch
This issue is scoped specifically to the \squad upstream\ command and its gaps. Not a duplicate of #242 — it's an implementation plan for one capability within that vision.
Closing per your own comment above ("should we close?") — this was explicitly shelved alongside A2A (#332–#336) since bidirectional sync depends on multi-squad patterns that never landed. No activity in 5+ months since you asked the question. Reopen when A2A is unblocked and this becomes relevant again.
Activity
tamirdresher commentedon Mar 12, 2026
Related issues:
This issue is scoped specifically to the \squad upstream\ command and its gaps. Not a duplicate of #242 — it's an implementation plan for one capability within that vision.
github-actions commentedon Mar 13, 2026
🏗️ Squad Triage — Flight (Lead)
Issue: #357 — feat: bidirectional upstream sync + auto-propagation for tiered squads
Assigned to: FIDO (Quality Owner)
Reason: Issue relates to testing/quality work
@copilot evaluation: 🔴 Not suitable — issue involves work outside the coding agent's capability profile.
Team roster:
squad:flightsquad:proceduressquad:eecomsquad:fidosquad:paosquad:capcomsquad:controlsquad:surgeonsquad:boostersquad:gncsquad:networksquad:retrosquad:incosquad:guidosquad:telemetrysquad:voxsquad:dskysquad:simssquad:handbooksquad:ralphsquad:copilotgithub-actions commentedon Mar 13, 2026
📋 Assigned to Flight (Lead)
Issue: #357 — feat: bidirectional upstream sync + auto-propagation for tiered squads
Flight will pick this up in the next Copilot session.
16 remaining items
github-actions commentedon Sep 10, 2026
🔄 Ralph — Auto-Triage
Assigned to: Booster
Reason: Matched routing keyword(s): CI, ci, GitHub Actions
Source: routing-rule
github-actions commentedon Sep 11, 2026
🔄 Ralph — Auto-Triage
Assigned to: Booster
Reason: Matched routing keyword(s): CI, ci, GitHub Actions
Source: routing-rule
github-actions commentedon Sep 11, 2026
🔄 Ralph — Auto-Triage
Assigned to: Booster
Reason: Matched routing keyword(s): CI, ci, GitHub Actions
Source: routing-rule
github-actions commentedon Sep 11, 2026
🔄 Ralph — Auto-Triage
Assigned to: Booster
Reason: Matched routing keyword(s): CI, ci, GitHub Actions
Source: routing-rule
github-actions commentedon Sep 11, 2026
🔄 Ralph — Auto-Triage
Assigned to: Booster
Reason: Matched routing keyword(s): CI, ci, GitHub Actions
Source: routing-rule
github-actions commentedon Sep 13, 2026
🔄 Ralph — Auto-Triage
Assigned to: architect
Reason: No module, routing, or role keyword match — routed to Lead/Architect
Source: lead-fallback
bradygaster commentedon Sep 24, 2026
Closing per your own comment above ("should we close?") — this was explicitly shelved alongside A2A (#332–#336) since bidirectional sync depends on multi-squad patterns that never landed. No activity in 5+ months since you asked the question. Reopen when A2A is unblocked and this becomes relevant again.