feat: enhance FIDO with PR requirements enforcement + workflow guide#676
feat: enhance FIDO with PR requirements enforcement + workflow guide#676tamirdresher wants to merge 4 commits intodevfrom
Conversation
- Upgrade FIDO's charter with pre-CI quality gate enforcement covering CHANGELOG, exports map, build validation, bleed detection, PR template completeness, and waiver documentation checks - Add PR requirements pre-push checklist to copilot-instructions.md so the @copilot coding agent validates compliance before pushing - Add comprehensive GitHub workflow guide (docs/GITHUB_WORKFLOW_GUIDE.md) with Mermaid diagrams covering PR lifecycle, CI pipeline, branch strategy, issue triage, label enforcement, and escape hatches Refs #104 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Enhances repo contribution quality guidance by extending the FIDO (Quality Owner) charter to enforce PR requirements pre-CI, updating Copilot repo instructions with a pre-push checklist, and adding a comprehensive GitHub workflow guide intended to orient new contributors.
Changes:
- Add PR-requirements enforcement responsibilities and runnable pre-push validation steps to FIDO’s charter.
- Add a PR requirements pre-push checklist to
.github/copilot-instructions.md. - Add a long-form workflow/reference guide with Mermaid diagrams and tables describing repo processes and CI gates.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 8 comments.
| File | Description |
|---|---|
| docs/GITHUB_WORKFLOW_GUIDE.md | New end-to-end workflow guide (roles, branches, CI, labels, requirements) with Mermaid diagrams and reference tables. |
| .squad/agents/fido/charter.md | Expands FIDO responsibilities to include PR requirements enforcement and pre-push/PR-review checks. |
| .github/copilot-instructions.md | Adds a pre-push quality checklist aligned with PR requirements and CI gates. |
docs/GITHUB_WORKFLOW_GUIDE.md
Outdated
| ### 🆕 Added by Dina: | ||
|
|
||
| | CI Job | What It Checks | PR | | ||
| |--------|---------------|-----| | ||
| | **`changelog-gate`** | If you change SDK/CLI source, you MUST update CHANGELOG.md | #673 | | ||
| | **`exports-map-check`** | New `src/*/index.ts` barrels must have matching `package.json` exports | #673 | | ||
| | **`samples-build`** | Builds all 11 sample projects against your PR's SDK code | #674 | |
There was a problem hiding this comment.
This table lists a samples-build CI job (and references PR #674), but .github/workflows/squad-ci.yml currently does not define a samples-build job. Update the guide to reflect the actual CI jobs, or mark this as planned (e.g., #103) rather than already present.
| ### 🆕 Added by Dina: | |
| | CI Job | What It Checks | PR | | |
| |--------|---------------|-----| | |
| | **`changelog-gate`** | If you change SDK/CLI source, you MUST update CHANGELOG.md | #673 | | |
| | **`exports-map-check`** | New `src/*/index.ts` barrels must have matching `package.json` exports | #673 | | |
| | **`samples-build`** | Builds all 11 sample projects against your PR's SDK code | #674 | | |
| ### 🆕 Added by Dina (includes planned jobs): | |
| | CI Job | What It Checks | PR | | |
| |--------|---------------|-----| | |
| | **`changelog-gate`** | If you change SDK/CLI source, you MUST update CHANGELOG.md | #673 | | |
| | **`exports-map-check`** | New `src/*/index.ts` barrels must have matching `package.json` exports | #673 | | |
| | **`samples-build`** | Planned: builds all 11 sample projects against your PR's SDK code (job not yet active in `.github/workflows/squad-ci.yml`) | #674 (planned) | |
docs/GITHUB_WORKFLOW_GUIDE.md
Outdated
| |----------|---------|---------|----------------------------| | ||
| | `SQUAD_CHANGELOG_CHECK` | CHANGELOG gate | ✅ On | Skips CHANGELOG requirement globally | | ||
| | `SQUAD_EXPORTS_CHECK` | Exports map check | ✅ On | Skips exports check globally | | ||
| | `SQUAD_SAMPLES_CI` | Samples build | ✅ On | Skips sample validation globally | |
There was a problem hiding this comment.
SQUAD_SAMPLES_CI is documented here as a repo variable, but there is currently no SQUAD_SAMPLES_CI feature flag referenced anywhere in workflows/scripts. Please remove it or clearly label it as future/planned so readers don’t look for a setting that doesn’t exist.
| | `SQUAD_SAMPLES_CI` | Samples build | ✅ On | Skips sample validation globally | | |
| | `SQUAD_SAMPLES_CI` | (Planned) Samples build toggle — not yet wired into CI | N/A (planned) | Future flag; safe to ignore for now | |
| | `skip-changelog` | CHANGELOG gate | CI/infra-only changes that don't need a changelog entry | | ||
| | `skip-exports-check` | Exports map check | Missing export is intentional or tracked separately | | ||
| | `skip-samples-ci` | Samples build | Sample updates coming in a follow-up PR | | ||
| | `large-deletion-approved` | Deletion guard (>50 files) | Intentional mass refactors or migrations | |
There was a problem hiding this comment.
skip-samples-ci is documented as a PR skip label, but the current CI workflow doesn’t check for it (and there is no samples CI gate to skip). Please remove it from the guide or align it with an implemented gate/label.
.github/copilot-instructions.md
Outdated
| ### 3. Samples build | ||
| If you changed SDK source files, all 11 sample projects will be built against your changes in CI. Run `npm run build` in any affected sample directory to catch issues early. Bypass: `skip-samples-ci` label (requires reviewer approval). |
There was a problem hiding this comment.
This checklist references a skip-samples-ci label and says CI builds all 11 samples for SDK changes, but there is currently no samples-build job, skip-samples-ci label check, or SQUAD_SAMPLES_CI feature flag in .github/workflows/squad-ci.yml. This will mislead contributors; either remove/mark this as a future (#103) manual-only requirement or implement the corresponding CI gate + label/flag support.
.squad/agents/fido/charter.md
Outdated
| 6. **Template completeness**: Verify the PR description includes non-empty content for: What, Why, How, Testing. If SDK/CLI files changed, Docs section must mention CHANGELOG. | ||
| 7. **Issue reference**: PR body must contain `Closes #N` or `Part of #N`. | ||
| 8. **Breaking changes**: If any public API signature changed (parameter name, type, return type, removed export), the Breaking Changes section must be filled. | ||
| 9. **Waiver documentation**: If any skip label (`skip-changelog`, `skip-exports-check`, `skip-samples-ci`) is present, verify a `## Waivers` section exists with reason and reviewer approval. |
There was a problem hiding this comment.
This charter adds skip-samples-ci as a recognized skip label / escape hatch, but the repo currently doesn't implement a samples CI gate or reference skip-samples-ci anywhere in workflows (only skip-changelog, skip-exports-check, and large-deletion-approved exist). To keep the charter aligned with actual enforcement, remove skip-samples-ci (or mark samples checks as manual-only until the gate from #103 exists).
| 9. **Waiver documentation**: If any skip label (`skip-changelog`, `skip-exports-check`, `skip-samples-ci`) is present, verify a `## Waivers` section exists with reason and reviewer approval. | |
| 9. **Waiver documentation**: If any skip label (`skip-changelog`, `skip-exports-check`) is present, verify a `## Waivers` section exists with reason and reviewer approval. |
docs/GITHUB_WORKFLOW_GUIDE.md
Outdated
| LABEL --> L3[skip-samples-ci] | ||
| LABEL --> L4[large-deletion-approved] | ||
|
|
||
| FLAG --> F1[SQUAD_CHANGELOG_CHECK] | ||
| FLAG --> F2[SQUAD_EXPORTS_CHECK] | ||
| FLAG --> F3[SQUAD_SAMPLES_CI] |
There was a problem hiding this comment.
The escape-hatch diagram lists skip-samples-ci and SQUAD_SAMPLES_CI, but the current CI workflow only supports skip-changelog, skip-exports-check, and large-deletion-approved (no samples gate/flag exists yet). Please remove these items or clearly label them as planned/future so contributors don’t look for non-existent bypass mechanisms.
| LABEL --> L3[skip-samples-ci] | |
| LABEL --> L4[large-deletion-approved] | |
| FLAG --> F1[SQUAD_CHANGELOG_CHECK] | |
| FLAG --> F2[SQUAD_EXPORTS_CHECK] | |
| FLAG --> F3[SQUAD_SAMPLES_CI] | |
| LABEL --> L3[skip-samples-ci (planned)] | |
| LABEL --> L4[large-deletion-approved] | |
| FLAG --> F1[SQUAD_CHANGELOG_CHECK] | |
| FLAG --> F2[SQUAD_EXPORTS_CHECK] | |
| FLAG --> F3[SQUAD_SAMPLES_CI (planned)] |
docs/GITHUB_WORKFLOW_GUIDE.md
Outdated
| P2[🧪 test\nbuild + test\n+ canary + deletion guard] | ||
| P3[📋 changelog-gate\nSDK/CLI change?\nCHANGELOG updated?] | ||
| P4[📦 exports-map-check\nnew barrel?\nexport in package.json?] | ||
| P5[🎨 samples-build\nbuild all 11 samples\nagainst PR code] |
There was a problem hiding this comment.
The CI pipeline diagram includes a samples-build job, but .github/workflows/squad-ci.yml currently has no samples-build job (and no samples CI gate). This should be updated to match the actual set of CI jobs, or annotated as a future/planned gate (e.g., tracked by #103).
| P5[🎨 samples-build\nbuild all 11 samples\nagainst PR code] | |
| P5[🎨 samples-build (planned)\ntracked in #103\nbuild all 11 samples] |
docs/GITHUB_WORKFLOW_GUIDE.md
Outdated
|
|
||
| | CI Job | What It Checks | | ||
| |--------|---------------| | ||
| | **`docs-quality`** | Markdown formatting (`markdownlint`) + spell check (`cspell`) on docs | |
There was a problem hiding this comment.
This section states docs-quality runs markdownlint + cspell "on docs", but the repo’s markdownlint/cspell configs are currently scoped to docs/src/content/**/*.md and README.md only (so this guide file isn’t checked). Consider tightening the wording to match the actual globs, and/or expanding the globs to include docs/*.md if these files are intended to be covered by docs-quality.
| | **`docs-quality`** | Markdown formatting (`markdownlint`) + spell check (`cspell`) on docs | | |
| | **`docs-quality`** | Markdown formatting (`markdownlint`) + spell check (`cspell`) on docs content (`docs/src/content/**/*.md`) and `README.md` | |
- Add 'PR requirements enforcement' work type routing to FIDO - Add module ownership for PR_REQUIREMENTS.md, PULL_REQUEST_TEMPLATE.md, squad-ci.yml (secondary), and check-exports-map.mjs - Add routing principle #8: spawn FIDO for PR compliance before opening PRs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
@copilot please review this PR. Focus on whether the FIDO charter enforcement rules align correctly with the existing CI gates in squad-ci.yml and the PR requirements spec in .github/PR_REQUIREMENTS.md. |
…uild as planned) Agent-Logs-Url: https://github.com/bradygaster/squad/sessions/8d6d2f19-2b66-4ff5-afb9-fe67d5910daa Co-authored-by: tamirdresher <342800+tamirdresher@users.noreply.github.com>
Reviewed and aligned all three files with the actual CI gates in
|
…eed heuristic - Fix sample count: 11 → 9 (actual count in samples/ directory) - Mark samples-build and changelog/exports gates as pending merge (#673, #674) - Add concrete heuristic for bleed check (scope by packages/ directory) - Clarify bash snippet as reference commands, not literal agent execution Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
All 8 Copilot review findings have been addressed across commits:
Remaining \skip-samples-ci\ references in the workflow guide and copilot-instructions are explicitly marked as planned/not yet active. Ready for human review. |
What
Enhances FIDO (Quality Owner) with PR requirements enforcement capabilities, updates routing rules, adds a pre-push quality checklist for @copilot, and adds a comprehensive GitHub workflow guide with visual Mermaid diagrams.
Why
FIDO already owns quality gates and PR blocking authority, but had no knowledge of the PR requirements spec (
.github/PR_REQUIREMENTS.md) introduced in PR #672. The routing table had no entry for PR requirements enforcement work. Meanwhile, the @copilot coding agent had no pre-push quality checklist. This creates a gap where CI catches issues that could have been prevented earlier.Additionally, new contributors need a single-page reference explaining how the repo works — branches, PRs, CI gates, labels, triage, and escape hatches.
Refs #100, #103
How
1. FIDO charter upgrade (
.squad/agents/fido/charter.md)PR Requirements Enforcementsection with 9 specific checks2. Routing rules update (
.squad/routing.md)PR requirements enforcementwork type routed to FIDOsquadinto using GitHub #8: spawn FIDO for PR compliance checks before opening PRs3. Copilot instructions update (
.github/copilot-instructions.md)PR Requirements — Pre-Push Quality Checklistsection with 6 items4. Workflow guide (
docs/GITHUB_WORKFLOW_GUIDE.md)Testing
pm run buildnot applicable (no source code changes)pm testnot applicable (no test changes)Docs
docs/GITHUB_WORKFLOW_GUIDE.md.squad/state files and.github/infrastructure, which are explicitly exempt per PR_REQUIREMENTS.md)Exports
N/A — no new modules
Breaking Changes
None
Waivers
None required — this PR is categorically exempt from Documentation (d), Exports (e), and Samples (f) requirements per the Edge Case Exemptions table in PR_REQUIREMENTS.md (CI/GitHub Actions workflow changes + internal .squad/ state files).