Skip to content

docs: add FOC board rules for automated board maintenance#34

Merged
BigLep merged 12 commits into
masterfrom
biglep/foc-board-rules-initial-stab
May 4, 2026
Merged

docs: add FOC board rules for automated board maintenance#34
BigLep merged 12 commits into
masterfrom
biglep/foc-board-rules-initial-stab

Conversation

@BigLep
Copy link
Copy Markdown
Contributor

@BigLep BigLep commented May 4, 2026

Background

This set of rules was built up over the course of a week while I triaged and cleaned up FOC . Instead of manually manipulating the board, I worked with Claude to build up this ruleset and would have Claude apply the rules to make sure I was getting what I wanted. In future, I can imagine putting this in Notion if have a Notion agent, but this gets it off my machine for now.

Summary

  • Board rules framework: Codified rules for automated FOC board maintenance, organized into PR hygiene (R-PR-), status lifecycle (R-SL-), and field completeness (R-FC-*) categories
  • Sweep playbook: 6-stage sweep procedure with explicit query, fields, mutations, and guard rails for each stage
  • Sweep agent prompt: Ready-to-use system prompt for LLM-driven board sweeps
  • Future ideas: Tracked potential improvements (augmented PR metadata endpoint, exposing built-in item properties)

Rule files

File Description
foc-board-rules/README.md Rule index, conventions, and cross-references
foc-board-rules/pr-hygiene.md R-PR-001 through R-PR-004: draft detection, reviewer assignment, staleness
foc-board-rules/status-lifecycle.md R-SL-001 through R-SL-004: status transitions, merged PRs, milestone alignment
foc-board-rules/field-completeness.md R-FC-001 through R-FC-010: missing fields, cycle theme, dev days estimate
foc-board-rules/sweep-playbook.md 6-stage sweep procedure with queries and expected mutations
foc-board-rules/sweep-agent-prompt.md System prompt for automated sweep agents
foc-board-rules/future-ideas.md Tracked improvement ideas from sweep sessions

Test plan

  • All rule files use consistent formatting and cross-reference conventions
  • Sweep playbook stages reference rules by ID
  • Rules developed iteratively across multiple real board sweep sessions

Additional Notes

🤖 Generated with Claude Code

@FilOzzy FilOzzy added this to FOC May 4, 2026
@github-project-automation github-project-automation Bot moved this to 📌 Triage in FOC May 4, 2026
@BigLep BigLep requested a review from Copilot May 4, 2026 03:21
@BigLep BigLep moved this from 📌 Triage to 🔎 Awaiting review in FOC May 4, 2026
@BigLep BigLep requested a review from rjan90 May 4, 2026 03:23
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a documentation framework for maintaining the FilOzone FOC GitHub Projects v2 board, including rule definitions, a sweep playbook, and an agent prompt to guide automated/human sweeps. Also documents a current limitation in github-projects-client and links it to tracked future improvements.

Changes:

  • Introduces foc-board-rules/ with rule categories (PR hygiene, status lifecycle, field completeness) and cross-references.
  • Adds a 6-stage sweep playbook and a ready-to-use sweep agent prompt for repeatable board maintenance.
  • Updates github-projects-client/README.md with a “Known gaps” note linking to a tracked improvement idea.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
github-projects-client/README.md Documents a known API surface gap and links to the future-ideas tracker.
foc-board-rules/README.md Index + general behavior/operational guidelines for applying the rules.
foc-board-rules/pr-hygiene.md Defines R-PR-* rules for PR assignment, status routing, and staleness handling.
foc-board-rules/status-lifecycle.md Defines R-SL-* rules for status transitions and linked-PR lifecycle semantics.
foc-board-rules/field-completeness.md Defines R-FC-* rules for required fields and cycle/milestone/estimate completeness.
foc-board-rules/sweep-playbook.md Stage-by-stage sweep procedure with queries, rules applied, and guard rails.
foc-board-rules/sweep-agent-prompt.md System prompt for running sweeps consistently in new LLM sessions.
foc-board-rules/future-ideas.md Captures follow-up tooling ideas discovered during sweep iterations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread foc-board-rules/sweep-playbook.md
Comment thread foc-board-rules/README.md
Comment thread foc-board-rules/status-lifecycle.md Outdated
Comment thread foc-board-rules/README.md Outdated
Comment thread foc-board-rules/sweep-agent-prompt.md Outdated
Comment thread foc-board-rules/sweep-playbook.md Outdated
Copy link
Copy Markdown
Contributor

@rjan90 rjan90 left a comment

Choose a reason for hiding this comment

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

A couple okay suggestions from Copilot here, but else lgtm

@github-project-automation github-project-automation Bot moved this from 🔎 Awaiting review to ✔️ Approved by reviewer in FOC May 4, 2026
@BigLep BigLep force-pushed the biglep/bulk-set-board-item-field branch from ec9da64 to 7d2c09d Compare May 4, 2026 16:26
BigLep and others added 11 commits May 4, 2026 09:32
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>
- 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>
- 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>
…nd 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>
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>
- 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>
- 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>
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>
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>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
@BigLep BigLep changed the base branch from biglep/bulk-set-board-item-field to master May 4, 2026 16:35
@BigLep BigLep force-pushed the biglep/foc-board-rules-initial-stab branch from 36b9a65 to 65186e4 Compare May 4, 2026 16:35
@BigLep BigLep self-assigned this May 4, 2026
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>
@BigLep
Copy link
Copy Markdown
Contributor Author

BigLep commented May 4, 2026

901248a added another set of improvements when running through all the rules again. I'll merge this now.

@BigLep BigLep merged commit bc93b25 into master May 4, 2026
@github-project-automation github-project-automation Bot moved this from ✔️ Approved by reviewer to 🎉 Done in FOC May 4, 2026
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.

4 participants