Skip to content

Use projectbluefin/common for planned work tracking#587

Merged
castrojo merged 3 commits intomainfrom
feat/use-common-repo-for-planned-work
Jan 27, 2026
Merged

Use projectbluefin/common for planned work tracking#587
castrojo merged 3 commits intomainfrom
feat/use-common-repo-for-planned-work

Conversation

@castrojo
Copy link
Contributor

@castrojo castrojo commented Jan 27, 2026

Summary

Replace project board API dependency with repository-based tracking for monthly reports:

  • Planned work: Merged PRs from projectbluefin/common
  • Opportunistic work: Merged PRs from other monitored repos
  • Filter: Exclude closed issues, only include merged PRs
  • Bot filtering: Exclude github-actions bot from contributor lists
  • New contributor highlighting: Gold foil effect for first-time contributors

Motivation

The GitHub Actions workflow fails because GITHUB_TOKEN cannot access organization-level Projects V2 (requires Personal Access Token with read:project scope). This approach eliminates that dependency while capturing the majority of planned work.

Data Analysis

Historical data shows projectbluefin/common captures significant planned work:

  • December 2025: 38% of trackable planned items (3 of 8)
  • January 2026: 52% of trackable planned items (17 of 33)

This is "good enough" tracking without requiring PAT management.

Changes

Script Changes

  • Remove project board GraphQL queries and dependencies
  • Fetch closed items from projectbluefin/common as planned work
  • Fetch closed items from other repos as opportunistic work
  • Filter to only include merged PRs (exclude closed issues)
  • Add github-actions to bot detection patterns
  • Simplify item transformation (no URL comparison needed)

Documentation Updates (AGENTS.md)

  • Update architecture overview to reflect repository-based approach
  • Document new contributor highlighting behavior:
    • Listed in separate "🌟 New Contributors" section above repeat contributors
    • Gold foil effect (highlight={true} prop) on first contribution
    • Also included in main "👥 Contributors" section (without highlight)
  • Update data sources and flow diagrams
  • Add bot detection patterns (including github-actions)

Report Changes (December 2025)

  • Before: 8 planned + 179 opportunistic (187 total, includes issues)
  • After: 49 planned + 74 opportunistic (123 total, PRs only)
  • All items now show /pull/ URLs (no /issues/ URLs)
  • Contributors: 20 (down from 21, github-actions filtered out)
  • Bot activity: 13 PRs (up from 9, includes 4 github-actions PRs)

Testing

✅ Local generation works with gh auth token
✅ Report generated successfully (see reports/2025-12-31-report.mdx)
✅ All items are merged PRs only (no issues)
✅ No /issues/ URLs in report lists
✅ Planned work properly sourced from projectbluefin/common
✅ github-actions bot filtered out of contributors
✅ github-actions PRs shown in bot activity section
✅ Contributor tracking accurate (20 human contributors)

Trade-offs

Won't capture:

  • Planned items in other repos (ublue-os/bluefin, etc.)
  • Draft project board items (but these have no GitHub URL anyway)

Will capture:

  • 38-52% of planned work (better than 0%)
  • Core coordination work in projectbluefin/common
  • Clear signal of intentional vs reactive work
  • All human contributors from both planned and opportunistic work

Next Steps

  • User reviews PR
  • Merge to main
  • GitHub Actions workflow should now succeed
  • Next monthly report (Jan 31) will use new approach

Refs: #586

Replace project board API dependency with repository-based tracking:
- Planned work: merged PRs from projectbluefin/common
- Opportunistic work: merged PRs from other monitored repos
- Filter out closed issues (only include merged PRs)

This approach:
- Works with standard GITHUB_TOKEN (no project:read scope needed)
- Captures ~50% of planned work based on historical data
- Removes dependency on organization-level Projects V2 API

December 2025 report regenerated with new approach:
- 49 planned PRs (was 8, excluded 9 issues)
- 78 opportunistic PRs (was 179, excluded 55 issues)
- All items now show merged contributions only

Refs: #586 (planned vs opportunistic work split)
…highlighting

- Add github-actions to bot detection patterns (matches without [bot] suffix)
- Update AGENTS.md to document new contributor highlighting:
  - Listed in separate section above repeat contributors
  - Gold foil effect (highlight prop) on first contribution
  - Bot detection patterns updated
- Update architecture docs to reflect repository-based approach
- Regenerate December report with github-actions filtered out

December report changes:
- 20 contributors (was 21, github-actions excluded)
- 74 opportunistic PRs (was 78, github-actions moved to bot section)
- 13 bot PRs (was 9, includes 4 github-actions PRs)
The monthly report scripts were written using ES module syntax (import/export)
but broke the build when 'type': 'module' was added to package.json globally.

This caused two problems:
1. Existing fetch scripts use CommonJS (require) and failed
2. Docusaurus internals expect CommonJS and failed with require.resolveWeak error

Solution: Remove global 'type': 'module' and use .mjs extension only for
the monthly report scripts that need ES modules. Fetch scripts remain as .js
with CommonJS, preserving the working build.

Changes:
- Remove 'type': 'module' from package.json (revert fba2f27)
- Rename generate-report.js → generate-report.mjs
- Rename scripts/lib/*.js → *.mjs (report dependencies)
- Update imports to use .mjs extensions
- Update package.json npm script to call .mjs file

Fixes build failure on main branch and PR #587.
@castrojo castrojo merged commit fa00724 into main Jan 27, 2026
2 checks passed
@castrojo castrojo deleted the feat/use-common-repo-for-planned-work branch January 27, 2026 07:34
castrojo added a commit that referenced this pull request Jan 27, 2026
Regenerate January 2026 monthly report to include structural improvements:
- Split categories into Planned vs Opportunistic subsections
- Use projectbluefin/common for planned work tracking
- Separate Focus Area (area/ labels) from Work by Type (kind/ labels)
- Apply proper bot filtering and contributor tracking
- Fix MDX curly brace escaping in PR titles to prevent build errors

Script improvements:
- Add --month=YYYY-MM CLI argument for report regeneration
- Escape curly braces in PR/issue titles to prevent MDX/JSX parsing errors
- Applied fix to all formatItemList functions in markdown generator

Previous report was generated before PRs #586 and #587 were merged.
This regeneration brings the January report up to date with current format.

Fixes MDX build error: "boot is not defined" caused by unescaped curly
braces in PR titles like "/{boot,tmp}" being interpreted as JSX.

Refs: #586, #587
@castrojo castrojo added github_actions kind/automation CI/CD workflows, scripts, and automation tooling labels Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions kind/automation CI/CD workflows, scripts, and automation tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant