Brooke
25040341+brookemosby@users.noreply.github.com
90d · built 2026-05-28
90-day totals
- Commits
- 42
- Grow
- 8.7
- Maintenance
- 5.6
- Fixes
- 0.7
- Total ETV
- 15
30-day trajectory
Last 30 days vs. the 30 days before. Up arrows on Growth and ETV mean improvement; up arrow on Fixes share means more time on fixes (worse).
Daily performance
Daily ETV, stacked by Growth, Maintenance and Fixes.
Work-mix over time
Share of Growth / Maintenance / Fixes over a rolling 7-day window. Reads as 'where is effort flowing right now'.
Bug flow over time
Monthly bug flow attributed to this developer. The left bar (red) is bug impact this dev authored that was addressed in the given month — combining bugs others fixed for them and bugs they fixed themselves. The right bar is fixes they personally shipped that month, split between self-fixes (overlap with the red bar) and fixes done for someone else. X-axis is fix-time, not introduction-time — the Navigara API attributes bugs backward to the author at the moment the fix lands.
- Self-fix share
- 94%
- Bugs you introduced
- 1.0
- Bugs you fixed
- 0.7
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 20 by ETV in the 90-day window.
- 1.3ETV[CLI] feat: Marketplace integration lifecycle parity scope (CLI-237) (#15849) ## Summary Scope note for [CLI-237](https://linear.app/vercel/issue/CLI-237/parity-vercel-marketplace-integration-install-configure-remove-cli): install/configure/remove vs `vercel integration` / `integration-resource`, dedup vs CLI-224/225. ## Path `packages/cli/docs/parity/cli-237-marketplace-integrations.md` Made with [Cursor](https://cursor.com) <!-- commands-to-test:start --> ### Supported API-backed Commands To Test - `vercel integration installations` - `vercel integration installations --integration <slug-or-id>` - `vercel integration installations --format json` <!-- commands-to-test:end -->github.com-vercel-vercel · 48ea2ae0 · 2026-04-09
- 1.3ETV[CLI] feat: adding in non-interactive for routes command (#15502)github.com-vercel-vercel · bf100177 · 2026-03-18
- 1.3ETV[CLI] non-interactive mode for teams (#15478)github.com-vercel-vercel · f4c24437 · 2026-03-13
- 1.0ETV[CLI] feat: non-interactive mode for redirects (#15450)github.com-vercel-vercel · d8c186e7 · 2026-03-13
- 0.9ETV[Parity] Edge Config CLI (vercel edge-config) (#15822) ## Summary Adds `vercel edge-config` with dashboard API parity for Edge Config stores (team scope): - **list** (`ls`) — `GET /v1/edge-config` - **add** (`create`) — `POST /v1/edge-config` (optional `--items` JSON object) - **get** (`inspect`) — `GET /v1/edge-config/:id` (accepts `ecfg_…` id or slug) - **update** — `PUT` slug rename and/or `PATCH` items via `--patch` (JSON array or `{ "items": [...] }`) - **remove** (`rm`, `delete`) — `DELETE /v1/edge-config/:id` (confirmation / `--yes`) - **items** — `GET` all items or one via `--key` - **tokens** — list `GET`, create `POST` (`--add <label>`), revoke `DELETE` (`--remove`, repeatable; `--yes` in non-interactive) ## Non-interactive / agents - `exitWithNonInteractiveError` supports variant `edge-config`: API **404** maps to `not_found` (not `project_not_found`), with `next[]` pointing at `edge-config list`, `teams switch`, `whoami`. ## Testing - `pnpm exec vitest run test/unit/commands/edge-config/edge-config.test.ts` (from `packages/cli`) ## Changeset - Minor bump for `vercel` CLI package (`.changeset/cli-edge-config.md`). Closes / tracks parity issue: **Edge Config CLI** (attach to your internal parity issue as needed). Made with [Cursor](https://cursor.com)github.com-vercel-vercel · 9f2ec512 · 2026-04-06
- 0.8ETV[CLI] feat: alerts vs dashboard parity audit scope (CLI-238) (#15850) ## Summary Scope note for [CLI-238](https://linear.app/vercel/issue/CLI-238/parity-audit-vercel-alerts-vs-dashboard-alerting-gap-list-follow-ups): audit `vercel alerts` vs dashboard; deliver gap matrix + child tickets. ## Path `packages/cli/docs/parity/cli-238-alerts-dashboard-audit.md` Made with [Cursor](https://cursor.com) <!-- commands-to-test:start --> ### Supported API-backed Commands To Test - `vercel alerts inspect <groupId>` - `vercel alerts inspect <groupId> --project <name>` - `vercel alerts inspect <groupId> --all` - `vercel alerts inspect <groupId> --format json` <!-- commands-to-test:end -->github.com-vercel-vercel · e939f514 · 2026-04-14
- 0.7ETVfeat(cli): add project members and access-groups commands for public API parity (#15786) ## Summary - add `vercel project members` (alias: `member`) to list project members using public `GET /v1/projects/{idOrName}/members` - add `vercel project access-groups` (alias: `accessgroups`) to list project access groups using public `GET /v1/access-groups?projectId=...` - support optional project argument, `--format json`, and list filtering options (`--search`, `--limit`, and `--next` for access groups) - include telemetry tracking and focused unit coverage for both new subcommands ## Test plan - [x] `pnpm --dir packages/cli run vitest-run test/unit/commands/project/members.test.ts` - [x] `pnpm --dir packages/cli run vitest-run test/unit/commands/project/access-groups.test.ts` - [x] `ReadLints` on changed files (no lints) - [ ] Full CLI type-check has pre-existing failures in this workspace unrelated to this change ## Notes - Stacked on top of #15783. --------- Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com> Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>github.com-vercel-vercel · 8f171427 · 2026-04-02
- 0.7ETVfix(cli): prevent token leaks in non-interactive next commands (#16113) ## Summary - strip `--token` / `-t` arguments (including `--token=<value>`) from all non-interactive command suggestion builders in `agent-output` - stop treating `--token` as a preserved global flag for `next.command` generation - add unit tests that assert suggested commands never include token flags ## Test plan - [x] `pnpm install --frozen-lockfile` - [x] pre-commit hooks (`lint-staged`, biome format/lint) on commit - [ ] `pnpm --filter vercel test -- test/unit/util/agent-output.test.ts` *(fails in this checkout due existing vitest/jest mismatch in this file path)* - [ ] `pnpm --filter vercel vitest-run test/unit/util/agent-output.test.ts` *(fails in this checkout due unresolved workspace package entry during vite import analysis)* Made with [Cursor](https://cursor.com)github.com-vercel-vercel · 02528601 · 2026-04-27
- 0.6ETVnon-interactive mode for DNS (#15494)github.com-vercel-vercel · e4bfe115 · 2026-03-13
- 0.6ETV[CLI] feat: adding in non-interactive mode for webhooks (#15542)github.com-vercel-vercel · 76ef88f0 · 2026-03-18
- 0.5ETVfeat(cli): add tokens command (public auth token API parity) (#15812) ## Summary - New `vercel tokens` command aligned with public APIs: - `tokens ls` → `GET /v6/user/tokens` (optional `--limit`, `--format json`) - `tokens add <name>` → `POST /v3/user/tokens` (optional `--project` for scoped tokens) - `tokens rm <id>` → `DELETE /v3/user/tokens/:tokenId` - All requests use `useCurrentTeam: false` so listing works under a team scope (v6 rejects team context otherwise). - Root + subcommand telemetry; unit tests for ls/add/rm; `commands` map test updated. ## Test plan - [x] `pnpm --dir packages/cli run vitest-run test/unit/commands/tokens/` - [x] `pnpm --dir packages/cli run vitest-run test/unit/commands/index.test.ts` Made with [Cursor](https://cursor.com)github.com-vercel-vercel · 4b6a9b63 · 2026-04-02
- 0.5ETV[CLI] feat: adding in non-interactive mode for flags (#15539)github.com-vercel-vercel · 50817419 · 2026-03-18
- 0.4ETV[CLI] feat: OAuth / connected apps parity scope (CLI-234) (#15846) ## Summary Adds a **parity scope note** under `packages/cli/docs/parity/` for [CLI-234](https://linear.app/vercel/issue/CLI-234/parity-oauth-connected-apps-and-client-credentials-cli): goals, non-interactive expectations, dedup vs `vercel tokens` (CLI-221), and acceptance criteria. ## Intent Implementation PRs can reference this file while building first-class commands or `vercel api` flows. ## Non-interactive Follow `packages/cli/docs/non-interactive-mode.md` for `--format json` and agent-safe errors. Made with [Cursor](https://cursor.com) <!-- commands-to-test:start --> ### Supported CRUD Operations To Test - **Create:** `vercel oauth-apps install --client-id <id> --permission <scope>` - **Read:** `vercel oauth-apps list-requests` - **Delete:** `vercel oauth-apps dismiss <appId> --yes`, `vercel oauth-apps remove <installationId> --yes` ### Commands To Test - `vercel oauth-apps list-requests` - `vercel oauth-apps list-requests --format json` - `vercel oauth-apps install --client-id <id> --permission <scope>` - `vercel oauth-apps install --client-id <id> --permission <scope> --projects <ids|*>` - `vercel oauth-apps dismiss <appId> --yes` - `vercel oauth-apps remove <installationId> --yes` <!-- commands-to-test:end -->github.com-vercel-vercel · 79747ac4 · 2026-04-10
- 0.4ETVfeat(cli): add deploy-hooks command (#15935) ## Summary Adds a first-class `vercel deploy-hooks` command (aliases: `deploy-hook`) so users and agents can manage deploy hooks without calling `vercel api` manually. ## Subcommands - **list** (default) / **ls** — lists hooks for the linked project (or `--project`). Supports `--format=json`. - **create** / **add** `<name>` — `POST /v2/projects/{id}/deploy-hooks` with `--ref` (required in non-interactive mode). Prompts for name/ref when interactive. - **remove** / **rm** / **delete** `<hook-id>` — `DELETE /v2/projects/{id}/deploy-hooks/{hookId}`. Requires `--yes` when non-interactive. ## Other - Root help, command registration, bulk bundle export, and `trackCliCommandDeployHooks` telemetry. - Unit tests under `test/unit/commands/deploy-hooks/`. Branched from latest `origin/main`. Made with [Cursor](https://cursor.com)github.com-vercel-vercel · f5e7745a · 2026-04-15
- 0.4ETV[CLI] feat: auth evals (#15310) <!-- VADE_RISK_START --> > [!NOTE] > Low Risk Change > > This PR adds new CLI evaluation tests for authentication flows and refactors existing eval tests, containing only test infrastructure changes with no production code modifications. > > - New eval test fixtures for login-whoami and login-not-logged-in scenarios > - Refactored env/add and env/update EVAL.ts to remove project-state assertions > - Added auth-state matrix support in eval runner hooks > > <sup>Risk assessment for [commit e4fd369](https://github.com/vercel/vercel/commit/e4fd369254ee91b12c6ed0d043e2c3dc399e5fac).</sup> <!-- VADE_RISK_END -->github.com-vercel-vercel · a56c36a3 · 2026-03-02
- 0.3ETVfeat(cli): add project checks command (public API parity) (#15816) ## Summary - `vercel project checks [name]` lists checks via public `GET /v2/projects/{projectIdOrName}/checks`. - Optional `--blocks` filter with the same enum as the API: `build-start`, `deployment-start`, `deployment-alias`, `deployment-promotion`, `none`. - Default table output; `--format json` prints the API payload. Telemetry + unit tests. ## Test plan - [x] `pnpm --dir packages/cli run vitest-run test/unit/commands/project/checks.test.ts test/unit/commands/project/index.test.ts` Made with [Cursor](https://cursor.com)github.com-vercel-vercel · 3048da15 · 2026-04-06
- 0.3ETV[CLI] feat: adding in non-interactive mode for mcp (#15426) <!-- VADE_RISK_START --> > [!NOTE] > Low Risk Change > > CLI feature adds non-interactive mode for MCP command with new --clients flag, input validation, and conditional output formatting - no auth, security, billing, or schema changes. > > - New --clients CLI flag with validation for MCP client selection > - Non-interactive mode outputs JSON instead of interactive prompts > - Test coverage added for new non-interactive behavior > > <sup>Risk assessment for [commit 77bbe20](https://github.com/vercel/vercel/commit/77bbe203d102246dca3edbdc87124bdde57d04aa).</sup> <!-- VADE_RISK_END -->github.com-vercel-vercel · 6976acd7 · 2026-03-11
- 0.3ETVfeat(cli): add table formatting for OpenAPI responses (#16011) ## Summary - Adds `vercel-cli-table` module for rendering OpenAPI JSON responses as CLI tables/cards - Timestamps (e.g. `updatedAt`) auto-formatted as relative time ("2h", "3d") - Null/undefined values displayed as `--` instead of blank - Column headers humanized from schema paths (`updatedAt` → `Updated`) - Adds `VercelCliTableDisplay` type for configurable display columns ## Test plan - [x] 21 unit tests passing (column-label + vercel-cli-table) - [x] Type check clean Made with [Cursor](https://cursor.com)github.com-vercel-vercel · 4a164c67 · 2026-04-17
- 0.3ETV[CLI] feat: adding in non-interactive for deploy command (#15548)github.com-vercel-vercel · 3eabfdff · 2026-03-20
- 0.2ETVfeat(cli): add teams request for join-request status (public API parity) (#15815) ## Summary - `vercel teams request [userId]` (alias `teams access-request`) calls the public `GET /v1/teams/{teamId}/request` endpoint, or `.../request/{userId}` when a user id is provided. - Requires an active team scope (`vercel teams switch`); human-readable log lines by default, `--format json` for structured stdout. - Telemetry + unit tests. ## Test plan - [x] `pnpm --dir packages/cli run vitest-run test/unit/commands/teams/request.test.ts test/unit/commands/teams/index.test.ts` Made with [Cursor](https://cursor.com)github.com-vercel-vercel · 88a75d46 · 2026-04-06