docs: add docs quality CI — markdown lint, spell check, link validation#396
Merged
bradygaster merged 4 commits intobradygaster:devfrom Mar 15, 2026
Merged
Conversation
- Add markdownlint-cli2 config for consistent markdown formatting - Add cspell config with project-specific dictionary - Add internal link + anchor validation test (docs-links.test.ts) - Add weekly external link check workflow (lychee) - Add lint:docs script for local development - Wire markdown lint + spell check into squad-ci.yml Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Moves markdownlint and cspell into an independent docs-quality job that doesn't depend on the full npm ci/build. This ensures docs quality checks run even when the main build has unrelated failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4b1e469 to
736366b
Compare
Point to dedicated troubleshooting.md instead of non-existent guide.md#troubleshooting anchor. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
Author
|
@bradygaster Ready for your review — adds markdownlint, cspell, and link-checking CI for docs quality. CI is green. — squad obo dina |
tamirdresher
pushed a commit
to tamirdresher/squad
that referenced
this pull request
Mar 16, 2026
…radygaster#408) * chore(squad): Phase 2 launch — thinking feedback, P0 bugs, dual telemetry Phase 1 complete: 5 issues closed (bradygaster#325, bradygaster#326, bradygaster#327, bradygaster#328, bradygaster#329), 5 PRs merged. Phase 2 launched with Cheritto (thinking feedback), Hockney (P0 bugs), Saul (dual telemetry). Decision inbox merged and archived. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): Phase 2 Wave 1 merged, Wave 2 launched Session: 2026-02-23T2145-phase2-wave2 Phase 2 Wave 1 complete (PRs bradygaster#351, bradygaster#352, bradygaster#353 merged). Wave 2 launched: Cheritto on ghost response detection (bradygaster#332), Hockney on error hardening (bradygaster#334). Changes: - Session log created: 2026-02-23T2145-phase2-wave2.md - Merged 3 inbox decisions (Cheritto, Hockney, Saul) - Deleted inbox files post-merge Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): Epic bradygaster#323 complete — all phases shipped 🎉 All 3 phases delivered: - Phase 1 (Testing Wave): 6 issues closed - Phase 2 (Improvement): 6 issues closed - Phase 3 (Breathtaking): 7 issues closed - 17 PRs merged, 19 issues closed total Session log: 2026-02-23T2320-epic-complete.md Decisions merged from inbox: P2 UX Polish, first-run wow moment Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * hostile QA: end-to-end quality assessment — 10 findings, 4 HIGH severity Candid assessment requested by Brady. Traced every code path in cli-entry.ts, shell/index.ts, shell/commands.ts, App.tsx, coordinator.ts, spawn.ts, and the SDK adapter client. Key findings: - Dead sessions never evicted from agentSessions Map after connection drop - No React ErrorBoundary — any render throw kills the shell - Nasty-inputs corpus (95 strings) is never imported by any test - No SIGTERM handler in interactive shell - MemoryManager exported but never instantiated (dead code) - Single streaming content slot clobbers multi-agent output - User input silently dropped during processing (no type-ahead buffer) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): quality review findings — 7 issues filed Quality audit complete: 5 agents assessed CLI across testing, coverage, stability, accessibility, UX. Results: 4 P0 blockers (bradygaster#365–bradygaster#368), 3 P1 items (bradygaster#369–bradygaster#371). Blocking: Waingro dead sessions, ErrorBoundary, dropped input; Marquez help text consistency. Changes: - Logged session summary to .squad/log/2026-02-24T0205-quality-review-complete.md - Updated .squad/identity/now.md with quality review findings and new issue numbers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): merge decision — Marquez UX audit findings Quality assessment merged from inbox (Grade B): 11 improvements (3 P0, 4 P1, 4 P2). help text, stub commands, vocabulary, separators, roster. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): test sprint launch Session: 2026-02-24T0210-test-sprint Changes: - Logged test sprint: 5 agents, 7+ issues - Branches: P0 fixes, stale tests, E2E, hostile/SDK, A11y Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: add human journey E2E tests for 7 real user scenarios Test the actual human experience, not internal modules. Each describe block maps to a filed GitHub issue and simulates what a real person does when they encounter Squad for the first time and beyond. Journeys tested (39 assertions): 1. I just installed this — squad init creates .squad/, shows ceremony, gives clear next step, writes first-run marker, exits cleanly 2. My first conversation — welcome banner shows agent roster with names/roles/emojis, project description, focus area, first-run ceremony is one-time only 3. I'm waiting and getting anxious — ThinkingIndicator appears immediately, shows elapsed time, activity hints override default, NO_COLOR mode works 4. Something went wrong — friendly error messages with remediation tips, no stack traces leaked, whitespace input handled gracefully 5. I want to talk to a specific agent — @agent routing, case- insensitive matching, comma syntax, unknown names fall to coordinator 6. I'm a power user now — /help, /status, /agents, /history, /quit all return useful output, unknown commands guide to /help 7. I came back the next day — state persists, first-run consumed, team still loaded, focus area survives between sessions Closes bradygaster#383, bradygaster#384, bradygaster#385, bradygaster#386, bradygaster#394, bradygaster#396, bradygaster#398 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Copy polish: warmer, human-centered messages across CLI Every message now feels helpful, not corporate. Changes include: - cli-entry.ts: 'Your AI team, always ready' instead of generic desc - commands.ts: Status output changed from 'Root/Active now' to 'Home/Active' - Help text: 'Check your team' instead of 'Show which squad' - InputPrompt: 'Message or @agent' instead of corporate placeholder - App.tsx: 'Your team is assembled. Let's try:' (warmer tone) - init.ts: 'Your team is assembled' instead of 'ready' - ThinkingIndicator: Dynamic thinking phrases (Processing, Working) - All command help: Casual verbs (Who's here, Fresh screen, Leave) Tests updated to match new output strings. All 125+ CLI tests pass. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher
pushed a commit
to tamirdresher/squad
that referenced
this pull request
Mar 16, 2026
Add E2E journey test covering advanced shell features: - /help and /status slash commands - Tab completion for /commands and @agent names - Ctrl+C cancel during processing - Double Ctrl+C exit - Multiple slash commands in sequence - @agent direct routing with complex messages Closes bradygaster#396 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher
pushed a commit
to tamirdresher/squad
that referenced
this pull request
Mar 16, 2026
…aster#482) * test: human journey — Power user (bradygaster#396) Add E2E journey test covering advanced shell features: - /help and /status slash commands - Tab completion for /commands and @agent names - Ctrl+C cancel during processing - Double Ctrl+C exit - Multiple slash commands in sequence - @agent direct routing with complex messages Closes bradygaster#396 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: human journey — My first conversation (bradygaster#384) Add E2E journey test covering a new user's first interaction with Squad: - Welcome banner display (title, version, agents, help hint) - First message submission and coordinator routing - Thinking indicator during processing - Receiving agent responses via ShellApi - /help command exploration - /status agent roster check - @agent direct message routing - Graceful exit (exit, quit, Ctrl+C) 28 tests across 8 journey steps using createShellHarness() pattern. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher
pushed a commit
to tamirdresher/squad
that referenced
this pull request
Mar 16, 2026
…ster#483) * test: human journey — Power user (bradygaster#396) Add E2E journey test covering advanced shell features: - /help and /status slash commands - Tab completion for /commands and @agent names - Ctrl+C cancel during processing - Double Ctrl+C exit - Multiple slash commands in sequence - @agent direct routing with complex messages Closes bradygaster#396 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: human journey — My first conversation (bradygaster#384) Add E2E journey test covering a new user's first interaction with Squad: - Welcome banner display (title, version, agents, help hint) - First message submission and coordinator routing - Thinking indicator during processing - Receiving agent responses via ShellApi - /help command exploration - /status agent roster check - @agent direct message routing - Graceful exit (exit, quit, Ctrl+C) 28 tests across 8 journey steps using createShellHarness() pattern. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: human journey — Something went wrong (bradygaster#386) Add E2E journey tests covering error scenarios users may encounter: - SDK connection failure shows helpful error message - Agent dispatch failure is caught and shown to user - Invalid /command shows conversational hint with /help - Network-like errors during streaming are handled gracefully - ErrorBoundary catches React rendering errors - Shell remains usable after errors (can submit new messages) - Error messages are user-friendly, not raw stack traces 21 tests across 7 describe blocks verify the full error UX. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher
pushed a commit
to tamirdresher/squad
that referenced
this pull request
Mar 16, 2026
… (bradygaster#484) * test: human journey — Power user (bradygaster#396) Add E2E journey test covering advanced shell features: - /help and /status slash commands - Tab completion for /commands and @agent names - Ctrl+C cancel during processing - Double Ctrl+C exit - Multiple slash commands in sequence - @agent direct routing with complex messages Closes bradygaster#396 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: human journey — I'm waiting and getting anxious (bradygaster#385) Add E2E journey test covering the user experience while waiting for agent responses: thinking indicators, phase labels, activity hints, streaming content updates, /status visibility, Ctrl+C cancellation, and recovery after cancel. 14 test cases validate the full anxiety-to-reassurance path. Closes bradygaster#385 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs Quality CI — Content Checks (Not Build/Deploy)
Adds a comprehensive docs quality pipeline that catches content regressions before they ship. This is specifically about content quality, not build/generation.
What's new
.markdownlint-cli2.jsonccspell.jsontest/docs-links.test.ts.mdlink resolves AND#headinganchors exist in target files.github/workflows/squad-docs-links.yml.lycheeignoreCI changes
squad-ci.ymlnow runs two new steps before build:npx markdownlint-cli2— catches markdown formatting issues (~5s)npx cspell— catches spelling errors (~5s)Plus
test/docs-links.test.tsruns as part ofnpm test(vitest) — catches broken internal links and anchor mismatches.Local development
npm run lint:docs— runs both markdownlint + cspell locally.Design decisions
What this catches going forward
What this does NOT do
Closes no specific issue — this is infrastructure for docs quality management.