Skip to content

refactor: pr-notifier to person centric view#9

Merged
rjan90 merged 3 commits into
masterfrom
phi/pr-notifier-refactor
Feb 4, 2026
Merged

refactor: pr-notifier to person centric view#9
rjan90 merged 3 commits into
masterfrom
phi/pr-notifier-refactor

Conversation

@rjan90
Copy link
Copy Markdown
Contributor

@rjan90 rjan90 commented Feb 1, 2026

Based on the feedback here in Slack. I have

  • Restructure Slack notification to a person-centric format with Slack @mentions
  • Add gh_slack_users.json mapping file for GitHub username → Slack user ID
  • Link each person to their personalized GitHub project view (View 18)

Example output in Slack can be seen here: https://filecoinproject.slack.com/archives/C07CGTXHHT4/p1769987246555379

refactor: pr-notifier to person centric view
@rjan90 rjan90 requested a review from BigLep February 1, 2026 23:08
@rjan90 rjan90 self-assigned this Feb 1, 2026
@rjan90 rjan90 added this to FOC Feb 1, 2026
@github-project-automation github-project-automation Bot moved this to 📌 Triage in FOC Feb 1, 2026
@rjan90 rjan90 moved this from 📌 Triage to 🔎 Awaiting review in FOC Feb 1, 2026
Copy link
Copy Markdown
Contributor

@BigLep BigLep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good stuff. A few things when looking at https://filecoinproject.slack.com/archives/C07CGTXHHT4/p1769987246555379

  • Can we alphabetize the lists (e.g., hugo before sgtpooki) - makes it easier for someone to find their name
  • For each of the"PRs Awaiting Review (No Reviewer Assigned)", can we add "(authored by @person)". That person should feel some wonership to figure out who to review their PR, even if it just means asking.
  • (nit): possible to make these true bulleted lists that include indent?
  • (nit): add a colon after a name before the PR list

Comment thread gh_slack_users.json
fix: sort alphabetically and alphabetize list
fix: make bulleted list
@rjan90
Copy link
Copy Markdown
Contributor Author

rjan90 commented Feb 3, 2026

@BigLep I have addressed your feedback in the two last commits

Copy link
Copy Markdown
Contributor

@BigLep BigLep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any reason to hold this up. For reviewing, it's easiest to see the rendered form in slack, but I assume we'll see it soon enough and can make changes.

@github-project-automation github-project-automation Bot moved this from 🔎 Awaiting review to ✔️ Approved by reviewer in FOC Feb 4, 2026
@rjan90 rjan90 merged commit dd30988 into master Feb 4, 2026
@github-project-automation github-project-automation Bot moved this from ✔️ Approved by reviewer to 🎉 Done in FOC Feb 4, 2026
@BigLep BigLep added this to the M4.5: GA Fast Follows milestone Feb 6, 2026
BigLep added a commit that referenced this pull request May 4, 2026
- Add general behavior rules #7-#9: flag unfamiliar Cycle Themes,
  reconcile bulk operation counts, prefer list_board_items over
  individual get_board_item calls (with note on relationship field
  string resolution)
- R-FC-003: broaden from Todo+ to all open issues, exclude
  zOrganizing Items, add parent issue milestone inheritance
- R-FC-004: add tpm-utils and foc-devnet repo defaults
- R-FC-006: simplify (remove milestone prerequisite for cycle)
- R-FC-009: new rule for active milestone cycle enforcement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BigLep added a commit that referenced this pull request May 4, 2026
* feat: add FOC board rules for automated board maintenance

Rules for keeping the FOC project board consistent, intended to be
applied by LLMs via the FilOzzy MCP server or by humans during triage.

- General behavior: 9 rules covering reporting, query strategy, batch
  PR metadata, bulk operations, external repos, unfamiliar theme
  flagging, and count reconciliation
- PR hygiene (R-PR-001–009): assignment, dependabot handling, triage
  routing, draft detection, reviewer requirements, merged/closed status
- Field completeness (R-FC-001–009): assignees, cycle theme defaults
  by repo, cycle assignment, milestone scoping (issues only),
  active milestone cycle enforcement
- Status lifecycle: status transition rules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: expand board rules with query efficiency and milestone guidance

- Add general behavior rules #7-#9: flag unfamiliar Cycle Themes,
  reconcile bulk operation counts, prefer list_board_items over
  individual get_board_item calls (with note on relationship field
  string resolution)
- R-FC-003: broaden from Todo+ to all open issues, exclude
  zOrganizing Items, add parent issue milestone inheritance
- R-FC-004: add tpm-utils and foc-devnet repo defaults
- R-FC-006: simplify (remove milestone prerequisite for cycle)
- R-FC-009: new rule for active milestone cycle enforcement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine board rules and add sweep playbook

- Add sweep-playbook.md with staged workflow (PRs → Triage issues → field completeness)
- R-PR-005: Broaden draft PR rule to cover all non-Done/non-Todo statuses
- R-PR-007: Check both reviewRequests and reviews for human engagement
- R-SL-001: Require write access verification before acting on approvals
- R-SL-004: Add rule for moving Triage issues to Todo when fields are set
- R-FC-006/009: Scope cycle rules to in-flight items only (not Todo/Triage)
- Add permissions checking guidance (rule 10) and future-ideas.md
- Renumber R-SL-004→005, update README with sweep playbook link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: expand board rules with self-improvement, assignee inference, and PR status guard

Add rule 1 (self-improving system), rule 12 (batch GraphQL metadata),
R-FC-001 assignee investigation with zOrganizing exclusion, R-FC-008
recently-done reporting, R-SL-006 (flag PRs in "Issue awaiting PR
merge"), Docs heuristic for Cycle Theme, and consolidate sweep playbook
Stage 4 into a single query.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine board rules from Stage 1 and Stage 2 sweep feedback

Rules added or expanded based on sweep findings:
- R-PR-006: now covers In Progress PRs, checks review/commit timeline
  before moving (not just Triage → Awaiting Review)
- R-SL-001: expanded to In Progress PRs, added superseding logic for
  changes_requested, added flagging context guidance
- R-SL-006: flag PRs in "Issue awaiting PR merge" (data entry error)
- R-SL-007: PRs with write-access changes_requested move back to
  In Progress
- R-SL-008: issues with linked PRs move to "Issue awaiting PR merge"
- R-FC-006: dependabot/release Todo PRs get current cycle
- General rule 13: use REST API for mutations, not gh pr edit
- General rule 6: simplified to per-repo REST only, removed GraphQL
- Sweep playbook updated for all new rules in Stages 1 and 2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine board rules from Stage 3-5 sweep feedback

- Add FilOzone/filecoin-services to R-FC-004 repo defaults (flag for human review)
- Add "active items" terminology to status-lifecycle
- Add R-SL-009: stale active items (2+ weeks, two-pass board/GitHub check)
- Expand Stage 4 to cover linked PR detection, staleness, and cycle gaps
- Update R-PR-001: merged release PRs assigned to merger, not bot author
- Update Stage 5 to reflect release PR assignee rule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add sweep agent prompt and refine rules from second sweep

- Add sweep-agent-prompt.md for running board sweeps in fresh sessions
- Formalize terminology: Item, Blessed orgs, external items
- Skip repo-level mutations on external items instead of try-once
- Exclude external items from milestone flagging (R-FC-003)
- Add R-PR-002 priority over R-FC-004 for dependabot PRs
- Add note that R-FC-004 repo defaults don't apply to dependabot
- Fix query syntax in README rule 5, add no:field guidance

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add cross-file relative hyperlinks between board rule files

Makes cross-references navigable for both humans and LLMs. Adds
convention as rule 15 in README and backfills links across all rule
files. Also adds sweep-agent-prompt.md to the Rule files list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add R-FC-010 (Dev Days Estimate gaps) and sweep Stage 6

Add rule requiring issues in active milestones to have a Dev Days
Estimate so effort remaining calculations are accurate. Add Stage 6
to sweep playbook as a report-only stage. Also clarify that sweep
playbook is exempt from cross-file hyperlinking convention, and add
a future idea for exposing updated_at/creator in list_board_items.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: document known API gaps in github-projects-client README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address Copilot review feedback on board rules

- Fix "all open PRs/issues" wording to "non-Done" where queries don't
  constrain is:open (sweep-playbook.md, README.md)
- Add `maintain` permission level alongside write/admin for reviewer
  permission checks (status-lifecycle.md, README.md, pr-hygiene.md,
  sweep-playbook.md)
- Update sweep-agent-prompt.md to reference R-FC-010

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: implement two-phase PR metadata fetching in board rules

The first real sweep revealed that fetching full `reviews` bodies in
per-repo `gh pr list` calls consumed thousands of context lines (mostly
for PRs not on the board), causing scanning errors and missed items.

Phase 1 now fetches only lightweight fields (author, isDraft,
reviewDecision, reviewRequests). Phase 2 makes targeted `gh pr view`
calls only for PRs needing deep analysis (R-PR-006 status determination,
R-SL-001 approval verification, R-SL-007 changes-requested). Also adds
targeted `no:field` board queries for field-gap checks to the playbook,
and strengthens the MCP enhancement case in future-ideas.md with real
sweep failure data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

2 participants