diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md index fcc3022..8053ec3 100644 --- a/.claude/memory/MEMORY.md +++ b/.claude/memory/MEMORY.md @@ -20,6 +20,7 @@ Keep this file under 200 lines — anything longer is content bloat, not memory. - [learnings/verify-ticket-issues-still-exist-on-main](learnings/2026-05-28-verify-ticket-issues-still-exist-on-main.md) — Re-read the ticket's target file in current `origin/` before drafting; humans push small fixes direct-to-main between ticket creation and agent pickup (PR #29 ENG-30 round 1) - [learnings/vercel-mcp-silently-hides-projects](learnings/2026-05-31-vercel-mcp-silently-hides-projects.md) — Vercel MCP can return only a subset of a team's projects even with the right teamId — `get_project(self-managing-codebase)` 404'd despite the project being healthy; use the curl+Vercel-bot fallback, don't assume it was deleted - [learnings/sentry-firstseen-relative-rejected](learnings/2026-06-02-sentry-firstseen-relative-rejected.md) — Sentry `search_issues` tool description shows `firstSeen:-7d` as a valid filter but the API rejects it; use ISO timestamps or pass `statsPeriod` on the tool call instead +- [learnings/linear-team-name-silent-empty](learnings/2026-06-05-linear-team-name-silent-empty.md) — Linear `list_issues({team: 'self-managing-codebase'})` returns empty without error; the actual team is `Engineering` (ENG-* prefix). Run `list_teams()` first or omit the `team` arg ## Decisions - [decisions/mcp-for-small-writes-checkout-for-big](decisions/2026-05-26-mcp-for-small-writes-checkout-for-big.md) — Single-file writes go through GitHub MCP; multi-file or test-needing changes use the mounted checkout + `git push` diff --git a/.claude/memory/learnings/2026-06-05-linear-team-name-silent-empty.md b/.claude/memory/learnings/2026-06-05-linear-team-name-silent-empty.md new file mode 100644 index 0000000..5218725 --- /dev/null +++ b/.claude/memory/learnings/2026-06-05-linear-team-name-silent-empty.md @@ -0,0 +1,7 @@ +# Linear `list_issues` silently returns empty for the wrong team name + +The Linear team backing this project is **Engineering** (issue prefix `ENG-*`) — NOT `self-managing-codebase`. The GitHub repo, Vercel project, and Sentry project are all named `self-managing-codebase`, so reaching for `list_issues({ team: 'self-managing-codebase' })` is the natural first guess. It returns `{issues: [], hasNextPage: false}` with no error — looks identical to a genuinely empty queue. Three rounds of state filters (`In Progress`, `Todo`, `Triage`, `Backlog`) all returned empty before I noticed the actual ENG-* prefix on issues already referenced in the manager prompt's memory index and in prior PR titles. + +Defensive pattern: before any `list_issues({ team: ... })` call from a fresh session, run `list_teams()` once and use the returned team `name` (or omit `team` entirely and filter client-side). The MCP doesn't validate the team argument against known teams — unknown names return zero issues silently instead of 4xx-ing or warning. + +False conclusion this avoids: "Triage and Todo are empty, nothing to pick up, fall through to memory/retro." If you actually had work assigned, you'd skip it for a tick.