Skip to content

test: add template directory sync and casting consistency tests#469

Closed
tamirdresher wants to merge 34 commits intobradygaster:devfrom
tamirdresher:contrib/test-template-sync-461
Closed

test: add template directory sync and casting consistency tests#469
tamirdresher wants to merge 34 commits intobradygaster:devfrom
tamirdresher:contrib/test-template-sync-461

Conversation

@tamirdresher
Copy link
Copy Markdown
Collaborator

Addresses #461 - Adds comprehensive test suite auditing all template directories for sync and casting system consistency. 15 tests across Template Directory Sync (10) and Casting System Consistency (5). Some tests intentionally fail on main to surface pre-existing drift. Uses import.meta.url for path resolution per issue requirements.

diberry and others added 30 commits March 10, 2026 05:48
Add 4 new docs pages and update 3 existing:
- New: five-minute-start.md (5-minute quickstart)
- New: architecture.md (how Squad works)
- New: choosing-your-path.md (CLI vs SDK vs Copilot)
- New: glossary.md (key terms reference)
- Update: troubleshooting.md (common errors table)
- Update: first-session.md (jargon definitions)
- Update: navigation.ts (sidebar entries)

Closes bradygaster#301

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Root cause: four independent issues combined into a scroll storm:
1. Ink fullscreen clearTerminal path firing every render cycle
2. ~16 unsynchronized animation re-renders/sec from 3 timers
3. Unstable Static component keys causing Ink remounts
4. Layout shift from height toggling between processing states

Changes:
- Patch Ink fullscreen path (disable clearTerminal, incrementalRendering, trailing newline)
- Widen spinner/animation intervals (80->150ms spinner, 500->800ms pulse)
- Share terminal dimension hook with 150ms debounce
- Pin root height to prevent logUpdate cursor drift
- Keep conversation in live viewport (not Static scrollback)
- Stable UUID-based Static keys, responsive maxVisible
- Fix bump-build.mjs to produce valid semver prerelease format
- Fix marketplace test for Windows path compat

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
fix(cli): eliminate terminal scroll flicker and rerender storm
Closes bradygaster#343

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

Docs update: comprehensive new-user experience improvements
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reverts .squad/agents/pao/history.md to upstream/main so it no longer
appears in the PR diff.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Session: 2026-03-10-adoption-tracking
Requested by: Scribe

Changes:
- Merged 4 decisions from inbox to decisions.md: adoption tracking 3-tier architecture, implementation, append-only governance, ampersand style guide
- Updated Flight and EECOM history.md with team cross-agent updates
- Created orchestration logs for PAO (PR bradygaster#303 rebase), Flight (adoption proposal), EECOM (Tier 1 implementation)
- Created session log documenting adoption tracking architecture finalization
- Deleted decision inbox files after merge
New docs pages derived from public blog post analysis:
- scenarios/ralph-operations.md: outer loop deployment, mutex, logging, alerting
- scenarios/proactive-communication.md: two-way Teams webhooks and scanning
- features/issue-templates.md: squad-aware issue templates, routing labels
- features/reviewer-protocol.md: trust levels section (full/selective/self-managing)
- test/docs-build.test.ts: assertions updated for new pages

All content follows Microsoft Style Guide. No individual repo names — aggregate
references only per owner privacy directive.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove ralph-operations.md and proactive-communication.md — both document
infrastructure around Squad (webhooks, WorkIQ, deployment patterns) rather
than Squad itself. Content moves to Squad IRL repo.

Reframe issue-templates.md to clarify GitHub Issue Templates are a platform
feature configured for Squad routing, not a Squad feature.

Litmus test applied: if Squad doesn't ship the code/config, it belongs in IRL.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Created comprehensive documentation for working across GitHub personal
accounts and GitHub Enterprise Managed Users (EMU):

- New scenario page: scenarios/cross-org-auth.md
  - Three solution approaches: gh auth switch, Copilot instructions,
    Squad skill pattern
  - Git credential helper configuration
  - Common error messages and verification steps

- Updated troubleshooting.md with cross-org auth section
- Updated enterprise-platforms.md authentication section with cross-ref
- Added navigation entry for Cross-Org Auth scenario
- Updated test assertions in docs-build.test.ts

Follows Microsoft Style Guide (sentence-case headings, active voice).
Includes practical examples and cross-references to related pages.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixed test assertion arrays to match actual files on disk:
- EXPECTED_SCENARIOS: expanded from 7 to 25 entries
- EXPECTED_FEATURES: added new array with 32 entries

This resolves the sync issue identified in PR bradygaster#331 review where
test assertions were out of sync with docs/src/content/docs/ structure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ntent triage, remote access proposal

Session: 2026-03-11T01-27-57-post-work-orchestration
Agents: FIDO (Quality Owner), Flight (Lead)

Changes:
- Orchestration logs for FIDO (test assertion sync fix, commit 6599db6) and Flight (content triage skill)
- Merged 6 decisions from inbox to decisions.md
- Consolidated boundary heuristic: "Squad Ships It" (docs vs IRL) across content-triage skill and PR bradygaster#331 review
- Added content-triage workflow for external content integration
- Added phased rollout proposal for remote Squad access (Discussions → Copilot → Chat)
- Added PR trust levels spectrum (full/selective/self-managing)
- Cross-agent updates: FIDO, Flight, PAO history.md sync; boundary heuristic shared

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a mandatory scannability framework for all content reviews:
- Paragraphs: narrative flow, conceptual explanations (3-4 sentences max)
- Bullet lists: features, options, scannable items (parallel structure)
- Tables: comparisons, structured reference data, attribute grids
- Quotes/indents: warnings, callouts, cited material
- Decision test: hunt-for-one-item = convert to bullets/table

PAO applies this on every PR with documentation impact.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The coordinator's Acknowledge Immediately section now requires a task
context signal (Continuing/New task/Related pivot) before naming agents.
This helps users understand whether the system recognizes their message
as part of ongoing work or a fresh request.

Closes bradygaster#359

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When prior conversation history exists, the ThinkingIndicator cycles
through context-aware phrases (e.g. 'Reviewing conversation context',
'Connecting to previous work') instead of generic ones. This gives users
immediate feedback that the system recognizes ongoing conversation.

- Add CONVERSATION_PHRASES array to ThinkingIndicator
- Add hasConversation prop threaded through App -> MessageStream -> ThinkingIndicator
- Derive hasConversation from messages array in App.tsx (true when agent responses exist)

Closes bradygaster#360

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a background update check that runs when the interactive shell starts.
On startup, Squad checks the npm registry for a newer version and displays
a passive notification banner if one is available.

Key design decisions:
- Fire-and-forget: never blocks or delays shell startup
- 24-hour cache: avoids repeated network calls
- 3-second fetch timeout via AbortController
- Opt-out via SQUAD_NO_UPDATE_CHECK=1 env var
- Triple-wrapped error handling: silent on any failure

New file: packages/squad-cli/src/cli/self-update.ts
Modified: packages/squad-cli/src/cli-entry.ts (wired into no-args shell path)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add prominent recommendation to use copilot --yolo in step 4 of the
Quick Start guide. Squad sessions involve many tool calls, so --yolo
provides a smoother experience by skipping individual approval prompts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Bump minimatch 9.0.6→9.0.9 (ReDoS: GHSA-7r86-cg39-jmmj, GHSA-23c5-xmqv-rm74)
- Bump rollup 4.58.0→4.59.0 (path traversal: GHSA-mw96-cpmx-2vgc)
- Add --name to squad aspire Docker command to prevent unnamed orphan containers
- Align test and CLI on shared container name (squad-aspire-dashboard)
- Add SIGINT/SIGTERM/exit handlers to aspire integration test for cleanup

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve workspace packages to source in vitest so vi.mock intercepts
correctly. Without this, npm ci installs a duplicate squad-sdk under
squad-cli/node_modules which bypasses the mock.
…t-coordinator-prompt

feat: add task context classification to coordinator acknowledgment
…nd-docker-cleanup

fix: resolve npm audit vulnerabilities and Aspire Docker test cleanup
…ommendation

docs: recommend --yolo in README Quick Start
…se-roles

feat: add 20 built-in base roles for faster team casting
…rtup-check

feat: non-blocking version check on CLI startup (Phase 1)
…n-aware-thinking-indicator

feat: conversation-aware thinking phrases in ThinkingIndicator
…y-guidance

docs(pao): add SCANNABILITY REVIEW hard rule to PAO charter
…sonal-squad-path-docs-v2

fix(docs): replace ~/.squad/ with platform-specific path references
bradygaster and others added 3 commits March 13, 2026 16:31
…xplainer

docs: scenario and feature guides from blog analysis
…ygaster#461)

Add comprehensive test suite to prevent template drift across directories:

Template Directory Sync:
- Verifies templates/, .squad-templates/, packages/squad-cli/templates/,
  and packages/squad-sdk/templates/ all contain the same files
- Checks content parity (identical file contents)
- Supports allowed differences (e.g., skill directory renames)
- Supports optional files that only exist in some directories

Casting System Consistency:
- All casting-policy.json copies must be identical
- Universe count in squad.agent.md must match casting-policy.json
- casting-reference.md must exist in all template directories
- casting-reference.md copies must be identical
- universe_capacity keys must match allowlist_universes

Note: Some tests will fail on main due to pre-existing drift (see
issues bradygaster#459 and bradygaster#461). This is intentional — the tests surface
exactly the problems described in the issue.

Addresses bradygaster#461

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster changed the base branch from main to dev March 20, 2026 03:54
@bradygaster bradygaster reopened this Mar 20, 2026
@bradygaster bradygaster reopened this Mar 20, 2026
@bradygaster bradygaster changed the base branch from dev to main March 20, 2026 04:21
@bradygaster bradygaster changed the base branch from main to dev March 20, 2026 04:21
@bradygaster
Copy link
Copy Markdown
Owner

Closing this PR as superseded by dev.

When PR #462 (template sync scripts) was merged, it brought in a more comprehensive version of test/template-sync.test.ts that already exists on the dev branch. That version:

  • Uses .squad-templates/ as the canonical source (not templates/)
  • Dynamically enumerates all files for byte-for-byte parity checks
  • Includes sync-templates.mjs script execution tests
  • Includes negative guards for .github/agents/
  • Covers universe count consistency and casting-policy parity

PR #469's tests are a strict subset of what dev already has. Cherry-picking this creates a merge conflict where dev's version is objectively better, so there's nothing meaningful to merge.

Thank you @tamirdresher for the contribution — these tests were valuable, and the intent is now fully covered!

— FIDO (Quality Owner)

chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
…bradygaster#363) (bradygaster#469)

Timestamps in .squad/log/ and .squad/orchestration-log/ filenames now use
hyphen-separated time components (e.g., 2026-02-23T20-16-27Z) instead of
colons, which are invalid on Windows and break git clone.

Changes:
- Updated Scribe spawn template in squad.agent.md to specify safe format
- Updated orchestration-log.md templates (CLI + .squad/) with safe format note
- Updated scribe-charter.md (template + live) with safe format guidance
- Added safeTimestamp() utility to squad-sdk for programmatic use
- Exported safeTimestamp from SDK barrel

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

6 participants