Skip to content
Agentmart
Submit a tool

gatherer

Use when the user says 'gather my work', 'what's on my plate', or 'daily gather', or when a review needs your open GitHub issues and PRs, watched Trac…

Skill by courtneyr-dev

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/courtneyr-dev-gatherer

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when the user says 'gather my work', 'what's on my plate', or 'daily gather', or when a review needs your open GitHub issues and PRs, watched Trac tickets, and Things tasks pulled into today's daily note.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/gatherer

What's inside

Skill name
gatherer
Description
Use when the user says 'gather my work', 'what's on my plate', or 'daily gather', or when a review needs your open GitHub issues and PRs, watched Trac tickets, and Things tasks pulled into today's daily note.
License
MIT
Instructions
39 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (4)

  • SKILL.md
  • gather.py · scripts/
  • test_gather.py · tests/
  • trac-watchlist.txt

SKILL.md (first lines)

# Gatherer

One script, no model in the loop: it collects open work from GitHub (`gh`), WordPress core Trac (the wordpress-trac MCP endpoint, called over plain HTTP), and Things 3 (AppleScript), then writes a `## Gathered` section into today's daily note. You run it and relay the receipt.

## Steps

1. Run it:

   ```bash
   python3 $HOME/.claude/claude-config/skills/gatherer/scripts/gather.py
   ```

   Rerunning the same day replaces the section; nothing else in the note changes. `--dry-run` prints the section without writing, `--print` writes and prints, `--sources github,things` skips a source, `--things-lists today,inbox,anytime` widens Things. `--help` lists the rest.

2. Read the receipt on stdout (a run takes about 5 seconds): `## Gathered written → <note>`, or `unchanged` when nothing moved, and then the summary line (counts per source, any `failed:` or `stale from` note). stderr carries one `gather:` line per source plus any retry.

3. Report back, and you're done once this is sent: the summary line verbatim, plus each source marked failed or stale and its fix from the table below. Leave the items themselves out unless you ask. Exit 1 means the daily note doesn't exist yet (the 9am job creates it): the section went to stdout instead, so paste it or rerun once the note exists.

## Where things live

- Note: `$VAULT_DIR/Review/Daily/YYYY-MM-DD.md`. The section goes in front of `## 📥 Daily Inboxes` when that heading exists, else in front of Daily Routine, Time Log, or Metadata, else at the end. Its body sits between `<!-- gathered:start -->` and `<!-- gathered:end -->`. Things lines are plain bullets, not checkboxes, so things-obsidian-sync ignores them.
- State: `$VAULT_DIR/Reports/_gatherer-state.json` holds the last run and each source's last good list. A source that fails shows that list marked stale instead of vanishing.
- Trac watchlist: `trac-watchlist.txt` next to this file, one ticket id per line. The Trac MCP can't search by owner, reporter, or cc (`searchTickets` ignores those filters; `getTicket` returns reporter and cc blank, see `~/.claude/knowledge/wiki/tools/wordpress-trac-access.md`), so "tickets you own or follows" is this list. When you say "follow ticket N" or "watch #N", append the id with a short note. Closed tickets stay listed but drop out of the section; the summary says "of N watched".

## Failure modes

| Symptom in the summary | Cause | Fix |
|---|---|---|
| GitHub `failed: ... gh auth login` | `gh` logged out | `gh auth login`, rerun |
| GitHub retries on `HTTP 429` or `403` | rate limit (search allows 30 calls a minute) | the script waits for `Retry-After` or the reset, 5 tries; rerun later if it still fails |
| Trac `network:` or `HTTP 5xx` | the MCP worker is down | 5 backoff tries, then the stale list; rerun later |
| Things `AppleScript timed out` | Things 3 not responding | open Things, rerun |
| Trac `watchlist unreadable` | file missing | recreate `trac-watchlist.txt` |

## Cadence

On demand. Add a launchd plist only after the user says the output has earned it; scaffold it with loop-template when you do.

From courtneyr-dev/agent-skills, MIT.

More from courtneyr-dev/agent-skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 20, 2026 (1 month ago)
Last release
Sep 5, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from courtneyr-dev

Cite this page

gatherer skill. Agent Mart. https://agentmart.dev/skills/courtneyr-dev-gatherer (last updated 2026-10-24)