Skip to content

Commit ea7a81e

Browse files
committed
docs(agents): document CI/CD validation enforcement
Add comprehensive documentation to AGENTS.md about automated validation gates in GitHub Actions workflow: - TypeScript validation (blocking) - ESLint validation (blocking) - Prettier check (non-blocking) Documents when checks run (PRs, pushes, merge queue, scheduled builds). Closes bluefin-docs-6a5 Assisted-by: Claude Sonnet 4.5 via GitHub Copilot
1 parent 3b29cda commit ea7a81e

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

.beads/issues.jsonl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{"id":"bluefin-docs-0mu","title":"Optimize update-driver-versions workflow resilience","description":"Improve the driver versions automation workflow by committing NVIDIA cache, adding retry logic, and enhancing error handling.\n\n**Current Issues:**\n- NVIDIA cache (.nvidia-drivers-cache.json) is gitignored and rebuilt every run\n- No retry logic for GitHub API calls (unlike monthly reports)\n- No rate limit detection\n- Script uses native Node.js https module vs modern patterns\n\n**Improvements:**\n1. Commit NVIDIA cache to git (reduces nvidia.com scraping by ~80%)\n2. Add retry logic with exponential backoff (3 retries: 2s/4s/8s)\n3. Add rate limit detection and graceful handling\n4. Document workflow in AGENTS.md\n5. Add JSDoc documentation to script\n\n**Files to modify:**\n- .gitignore (remove cache exclusion)\n- .nvidia-drivers-cache.json (commit to git)\n- scripts/update-driver-versions.js (add retry/rate limit logic)\n- AGENTS.md (add Driver Versions Workflow section)\n- .github/workflows/update-driver-versions.yml (add comments)","status":"closed","priority":2,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:39:12.7635867-05:00","created_by":"Jorge O. Castro","updated_at":"2026-01-31T00:39:56.132214459-05:00","closed_at":"2026-01-31T00:39:56.132214459-05:00","close_reason":"Already completed in quick task 003 - committed NVIDIA cache, added retry logic, documented in AGENTS.md","labels":["automation","enhancement","workflows"]}
22
{"id":"bluefin-docs-3xh","title":"Improve label categorization in monthly reports","description":"## Problem\n\nThe monthly reports label categorization system had gaps where several `area/*` labels from projectbluefin/common were appearing in the \"Other\" section instead of being properly categorized. This todo addressed the remaining uncategorized labels while maintaining the established pattern of only showing `area/*` labels in sections.\n\n## Solution Implemented\n\n**Added Missing Labels to Categories:**\n\nUpdated `scripts/lib/label-mapping.mjs` to include:\n- `aarch64` → Hardware category\n- `kind/parity` → Tech Debt category\n\n**Added Category Descriptions:**\n\nModified `scripts/lib/markdown-generator.mjs` to include italic descriptions below each category header:\n- **Desktop:** _GNOME desktop environment, Aurora variant (KDE), and terminal enhancements_\n- **Development:** _Development tools and IDE integrations_\n- **Ecosystem:** _Homebrew packages, AI/ML tools (Bluespeed), and Flatpak applications_\n- **System Services \u0026 Policies:** _Systemd services and system-level policies_\n- **Hardware:** _Hardware support, drivers, NVIDIA GPU, and ARM64 architecture_\n- **Infrastructure:** _ISO images, upstream integration, build systems, and testing frameworks_\n- **Documentation:** _Documentation improvements and additions_\n- **Tech Debt:** _Maintenance work and feature parity between variants_\n- **Automation:** _CI/CD pipelines, GitHub Actions, and automated dependency updates_\n- **Localization:** _Translation and internationalization work_\n\n**Ignored Specific Labels:**\nEnsured these labels are excluded from all categories and \"Other\" section:\n- `dependencies` (meta label for Renovate)\n- `lgtm`, `size/*`, `stale`, `duplicate`, `invalid`, `wontfix`, `question`\n- `good first issue`, `help wanted`\n\n## Implementation Details\n\nThe markdown generator was updated to inject descriptions using format:\n```markdown\n## Category Name\n\n*Description text*\n\n### Planned Work\n```\n\n## Expected Impact\n\n- **\"Other\" section reduction:** Additional ~2-5% reduction (depends on aarch64/parity PR count)\n- **Improved clarity:** Category descriptions help readers understand what types of work fall under each area\n- **Better organization:** All relevant `area/*` labels now properly categorized\n\n## References\n\n- Label mapping: `scripts/lib/label-mapping.mjs`\n- Markdown generator: `scripts/lib/markdown-generator.mjs`\n- GitHub labels: https://github.com/projectbluefin/common/labels\n\n---\n*Migrated from .planning/todos/done/2026-01-28-improve-label-categorization.md*\n*Status: COMPLETED - This work was already implemented*","status":"closed","priority":2,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:37:21.305117157-05:00","created_by":"Jorge O. Castro","updated_at":"2026-01-31T00:37:24.854032526-05:00","closed_at":"2026-01-31T00:37:24.854032526-05:00","close_reason":"Work was already completed before migration to beads. Created issue for historical tracking.","labels":["enhancement","reports"]}
3-
{"id":"bluefin-docs-6a5","title":"Add validation gates to CI/CD pipeline","description":"The GitHub Actions workflow (.github/workflows/pages.yml) currently only runs 'npm run build' but does not enforce code quality validation gates.\n\n**Problem:** Without CI/CD enforcement, developers can commit code that breaks validation, defeating the purpose of quality gates established in Phase 4.\n\n**What's Missing:**\n- TypeScript validation step (npm run typecheck)\n- ESLint validation step (npm run lint)\n- Prettier check step (npm run prettier-lint - could be non-blocking)\n\n**Current State:**\n- All validation commands work locally and pass\n- .eslintrc.json and .prettierrc.json configured\n- Validation baseline documented: 0 TS errors, 31 Prettier warnings, 46 ESLint warnings\n\n**Expected Behavior:**\n- CI should fail if typecheck fails (exit code ≠ 0)\n- CI should fail if lint finds errors (exit code ≠ 0) \n- CI could continue with prettier-lint warnings\n\n**Impact:** Partial achievement of Phase 4 goal - capability exists but enforcement doesn't.","design":"Add validation steps to .github/workflows/pages.yml before the build step:\n\n```yaml\n- name: Run TypeScript validation\n run: npm run typecheck\n\n- name: Run ESLint validation\n run: npm run lint\n\n- name: Run Prettier check (warnings only)\n run: npm run prettier-lint || true # Non-blocking\n```\n\n**Note:** Using npm instead of bun for consistency with documented project standards in AGENTS.md.","acceptance_criteria":"- [ ] Validation steps added to .github/workflows/pages.yml\n- [ ] CI fails on TypeScript errors\n- [ ] CI fails on ESLint errors (not warnings)\n- [ ] Prettier check runs but doesn't block (warnings only)\n- [ ] Test by pushing a commit with intentional TS error\n- [ ] Verify workflow blocks the commit\n- [ ] Update AGENTS.md to document CI enforcement","status":"open","priority":1,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:40:26.876487851-05:00","created_by":"Jorge O. Castro","updated_at":"2026-01-31T00:40:26.876487851-05:00","labels":["ci-cd","quality-gates","validation"]}
3+
{"id":"bluefin-docs-6a5","title":"Add validation gates to CI/CD pipeline","description":"The GitHub Actions workflow (.github/workflows/pages.yml) currently only runs 'npm run build' but does not enforce code quality validation gates.\n\n**Problem:** Without CI/CD enforcement, developers can commit code that breaks validation, defeating the purpose of quality gates established in Phase 4.\n\n**What's Missing:**\n- TypeScript validation step (npm run typecheck)\n- ESLint validation step (npm run lint)\n- Prettier check step (npm run prettier-lint - could be non-blocking)\n\n**Current State:**\n- All validation commands work locally and pass\n- .eslintrc.json and .prettierrc.json configured\n- Validation baseline documented: 0 TS errors, 31 Prettier warnings, 46 ESLint warnings\n\n**Expected Behavior:**\n- CI should fail if typecheck fails (exit code ≠ 0)\n- CI should fail if lint finds errors (exit code ≠ 0) \n- CI could continue with prettier-lint warnings\n\n**Impact:** Partial achievement of Phase 4 goal - capability exists but enforcement doesn't.","design":"Add validation steps to .github/workflows/pages.yml before the build step:\n\n```yaml\n- name: Run TypeScript validation\n run: npm run typecheck\n\n- name: Run ESLint validation\n run: npm run lint\n\n- name: Run Prettier check (warnings only)\n run: npm run prettier-lint || true # Non-blocking\n```\n\n**Note:** Using npm instead of bun for consistency with documented project standards in AGENTS.md.","acceptance_criteria":"- [ ] Validation steps added to .github/workflows/pages.yml\n- [ ] CI fails on TypeScript errors\n- [ ] CI fails on ESLint errors (not warnings)\n- [ ] Prettier check runs but doesn't block (warnings only)\n- [ ] Test by pushing a commit with intentional TS error\n- [ ] Verify workflow blocks the commit\n- [ ] Update AGENTS.md to document CI enforcement","status":"closed","priority":1,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:40:26.876487851-05:00","created_by":"Jorge O. Castro","updated_at":"2026-02-01T19:06:36.225166535-05:00","closed_at":"2026-02-01T19:06:36.225166535-05:00","close_reason":"Validation gates already implemented in .github/workflows/pages.yml (lines 51-58). Added CI enforcement documentation to AGENTS.md. All acceptance criteria met.","labels":["ci-cd","quality-gates","validation"]}
44
{"id":"bluefin-docs-6gd","title":"Simplify bot activity table in monthly reports","description":"## Problem\n\nThe bot activity table in monthly reports showed separate rows for each bot+repository combination, making the section verbose and difficult to scan. For example, renovate-bot activity was split across 6+ separate rows (one per monitored repo), even though users primarily care about total bot contributions.\n\n## Solution Implemented\n\n**Simplified the bot activity table** to aggregate by bot username across all repositories:\n\nBefore (verbose):\n```\n| Bot Username | Repository | PRs Merged |\n|--------------|------------|------------|\n| renovate-bot | bluefin | 42 |\n| renovate-bot | bluefin-dx | 18 |\n| renovate-bot | common | 23 |\n```\n\nAfter (aggregated):\n```\n| Bot Username | Total PRs | Repositories Active In |\n|--------------|-----------|------------------------|\n| renovate-bot | 83 | 6 repos |\n```\n\n**Key Changes:**\n\n1. Aggregated bot activity by bot username (not by bot+repo combination)\n2. Added \"Total PRs\" column showing sum across all repositories\n3. Added \"Repositories Active In\" column showing count of unique repos\n4. Removed per-repository breakdown to reduce noise\n5. Maintained sorting by total PR count (most active bots first)\n\n**Implementation:**\n\nModified `scripts/lib/markdown-generator.mjs`:\n- Updated `generateBotSection()` function\n- Changed aggregation logic to group by bot username only\n- Updated table headers and column formatting\n- Preserved bot filtering logic (same bot detection patterns)\n\n## Impact\n\n- **Reduced verbosity:** Bot section now typically 3-5 rows instead of 15-20\n- **Improved readability:** At-a-glance view of bot activity\n- **Maintained accuracy:** No data loss, just better aggregation\n\n## Validation\n\nRegenerated existing reports (December 2024, January 2025) and verified:\n- Bot PR counts match original data\n- Repository counts are accurate\n- Table renders correctly in markdown\n\n## References\n\n- Markdown generator: `scripts/lib/markdown-generator.mjs`\n- Bot detection patterns: `scripts/lib/contributor-tracker.mjs`\n\n---\n*Migrated from .planning/todos/done/2026-01-27-simplify-bot-activity-table.md*\n*Status: COMPLETED - This work was already implemented*","status":"closed","priority":2,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:37:35.930116746-05:00","created_by":"Jorge O. Castro","updated_at":"2026-01-31T00:37:38.940555315-05:00","closed_at":"2026-01-31T00:37:38.940555315-05:00","close_reason":"Work was already completed before migration to beads. Created issue for historical tracking.","labels":["enhancement","reports"]}
55
{"id":"bluefin-docs-9hl","title":"Create migration script from .planning to beads","description":"Create a migration script or process to convert .planning items to beads issues:\n- Map .planning format to beads fields\n- Preserve metadata (status, priority, dependencies)\n- Handle file-based references and links\n- Create beads issues for all active work items\n- Document the mapping/conversion process","status":"closed","priority":1,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:35:00.937424598-05:00","created_by":"Jorge O. Castro","updated_at":"2026-01-31T00:38:06.771549469-05:00","closed_at":"2026-01-31T00:38:06.771549469-05:00","close_reason":"Migration script not needed. Manual migration completed successfully - only 5 todos to migrate, automated script would be overkill.","dependencies":[{"issue_id":"bluefin-docs-9hl","depends_on_id":"bluefin-docs-sr2","type":"blocks","created_at":"2026-01-31T00:35:00.938544597-05:00","created_by":"Jorge O. Castro"}]}
66
{"id":"bluefin-docs-bdg","title":"Investigate .planning directory structure","description":"Check if .planning directory exists and analyze its structure to understand the current work tracking system that needs to be migrated to beads. Need to understand:\n- Directory structure and file organization\n- Issue/task format and metadata\n- Dependency tracking approach\n- Current status of work items\n- Migration strategy to beads","status":"closed","priority":1,"issue_type":"task","owner":"jorge.castro@gmail.com","created_at":"2026-01-31T00:34:48.473828624-05:00","created_by":"Jorge O. Castro","updated_at":"2026-01-31T00:37:59.53986077-05:00","closed_at":"2026-01-31T00:37:59.53986077-05:00","close_reason":"Investigation complete. Found .planning structure with todos, phases, and documentation. All pending todos migrated to beads."}

AGENTS.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,24 @@ Run production build locally:
235235
- `npm run build` -- ensures site builds successfully
236236
- Manual testing via `npm run start` -- verify your changes work in the browser
237237

238+
**CI/CD Enforcement:**
239+
240+
All validation gates are automatically enforced in the GitHub Actions workflow (`.github/workflows/pages.yml`):
241+
242+
- **TypeScript validation** (`npm run typecheck`) - **BLOCKING** - CI fails if TypeScript errors are present
243+
- **ESLint validation** (`npm run lint`) - **BLOCKING** - CI fails if ESLint errors are found (warnings are allowed)
244+
- **Prettier check** (`npm run prettier-lint || true`) - **NON-BLOCKING** - Warnings logged but do not fail the build
245+
246+
The workflow runs these checks on:
247+
248+
- Pull requests to main branch
249+
- Direct pushes to main branch
250+
- Merge queue operations
251+
- Manual workflow dispatch
252+
- Scheduled builds (Sundays and Tuesdays at 6:50 UTC)
253+
254+
This ensures code quality standards are automatically enforced before deployment.
255+
238256
## Common Tasks
239257

240258
### Development Commands

0 commit comments

Comments
 (0)