-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Build
-
None
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
- Summary
Adds `.agents/plugins/`, an in-repo Claude Code plugin *marketplace* (`mongo-optional-plugins`) for team-specific workflows that should be loaded on demand rather than by every session. Only `.agents/skills/` is auto-loaded (through the `.claude/skills` symlink), so nothing here changes the default context for contributors.
The first plugin, `build-team-health`, ships one skill, `/build-team-health-review`:
- *Snapshots the dashboard.* `scripts/fetch_dashboard.py` reproduces the JQL behind every gadget on the [Build Team Health](https://jira.mongodb.org/secure/Dashboard.jspa?selectPageId=36210) dashboard (Needs Triage, Missing Assignee, Sat >= 14 days, In Progress, Hot/Cold BFs, MMS Test Failures, Project/Goal Updates) scoped to the Build team, and prints markdown or JSON. The dashboard uses Rich Filter gadgets whose REST API rejects PATs, so the queries were read from the gadget preferences; `references/dashboard-queries.md` documents each one and how to refresh them.
- *Acts on each ticket.* Per-section decision table in `SKILL.md`: open a *draft PR* (branch `build-health/<KEY>`, `pull-request-guidelines` format, capped by `--max-prs`) when a code change in this repo resolves the ticket; otherwise post a triage/status comment tagged `[build-team-health-review]` so re-runs recognise their own work. It never transitions tickets or marks PRs ready.
- *Schedules itself.* `schedule` mode walks through a 09:00 Mon-Fri run in the user's timezone: a cloud routine via `/schedule` (preferred; prompt template included) or `scripts/install_local_cron.sh <IANA tz>` for an always-on dev box using `CRON_TZ` and `claude -p`. `references/scheduling.md` covers the UTC conversion and DST caveat.
- `disable-model-invocation: true`, so the skill only runs when someone types `/build-team-health-review` or a routine names it.
Loading it:
```bash
claude --plugin-dir .agents/plugins/build-team-health # this session only
claude plugin marketplace add ./.agents/plugins && claude plugin install build-team-health@mongo-optional-plugins
```
`.agents/plugins/OWNERS.yml` assigns the directory to `10gen/devprod-build`; `CODEOWNERS` regenerated with `bazel run codeowners`.
-
- Testing
- `fetch_dashboard.py` run against jira.mongodb.org for every section in `md` and `json` output; counts match the dashboard with the Build quick filter (e.g. Hot BFs 9, Needs Triage 4 at the time of writing). Custom fields (`Assigned Teams`, `Days in Current Status`, `Score`, `Count of Linked BFGs`) resolve by name.
- `claude --plugin-dir .agents/plugins/build-team-health plugin details build-team-health` lists the skill (~200 always-on tokens).
- `claude plugin marketplace add ./.agents/plugins` + `claude plugin install build-team-health@mongo-optional-plugins` installs and enables the plugin; uninstalled afterwards.
- `install_local_cron.sh`: `bash
n`, `-help`, and rejection of an unknown timezone. Not run to completion so as not to modify a crontab. - `bazel run format` (prettier for markdown, ruff, shfmt) and `ruff check` clean.