Projects / claude-project-tracker
claude-project-tracker active
claude-project-tracker · last seen 2026-06-12 11:50
Backfilling repo_url so /join works from a fresh clone. v3.6 plugin shipped (tracker_join_project + /join command).
todo 5 open
Verify v3.1 conversation_excerpt rendering
high
OVERDUE 43d
MORNING.md
added 06-10 08:07
· by saravanan@scrumclaw.ai
from the conversationsaravanan: I want to see the excerpt actually show up in the dashboard.
claude: Captured a high-priority todo to test it.
Add POST /webhook/github endpoint to the Go server
high
Accepts GitHub webhook events (configure on the repo with a shared secret). When a pull_request event with action=closed and merged=true comes in, parse the PR body for `Closes #<item_id>` or `Fixes #<item_id>` patterns and call the existing complete_item path for each. Add: HMAC-SHA256 signature verification using `GITHUB_WEBHOOK_SECRET` env var. Route lives in main.go alongside the other public POST endpoints. Probably one new file github_webhook.go.
api-go/main.goapi-go/handlers_api.go
added 06-11 11:26
· by saravanan@scrumclaw.ai
· claude-cowork
from the conversationclaude: Webhook handler (medium): Add /webhook/github to the tracker server; parse merged-PR bodies for Closes #<item_id> and call complete_item. Single HTTP handler + webhook secret.
saravanan: [agreed, this is the keystone feature]
Plugin hook: comment on linked PR when a todo is completed
In tracker_complete_item, if the item's refs[] contains a GitHub PR URL and a GITHUB_TOKEN is configured, POST a comment to the PR like "✅ tracker item #<id> ('<title>') marked done by <user>". Best-effort — log on failure, don't block the tracker update. Requires the plugin to know the GitHub token (new optional env var or read from gh CLI config).
plugin/mcp/server.py
added 06-11 11:26
· by saravanan@scrumclaw.ai
· claude-cowork
from the conversationclaude: [feature in scope] comment on linked PR when a todo completes
saravanan: [agreed, part of plugin-side hooks]
Render refs[] as clickable PR/issue badges on the dashboard
Pure frontend change in the Go templates. When a ref looks like a GitHub URL (github.com/.../pull/N or .../issues/N), render it as a styled badge with the PR/issue number. Other refs render as code chips like today. Templates touched: detail.html, pending.html, possibly dashboard.html log lines.
api-go/templates/detail.htmlapi-go/templates/pending.html
added 06-11 11:26
· by saravanan@scrumclaw.ai
· claude-cowork
from the conversationclaude: Tracker plugin tweak (small): Make the existing refs field render GitHub URLs as PR/issue badges on the dashboard. Pure frontend.
saravanan: [agreed, included in plan]
Background poll: mirror GitHub issues as tracker items
low
Deferred until items #4 and #5 (the close-on-merge webhook and the PR badges) prove valuable. When ready: a background goroutine in the Go server polls `GET /repos/:owner/:repo/issues` every N minutes and upserts each issue as a tracker item (linking via parent_item_id or a new `external_id` column). Two-way write-back on completion. Per-project repo config in claude_projects (probably a new repo_url is already there).
api-go/main.go
added 06-11 11:26
· by saravanan@scrumclaw.ai
· claude-cowork
from the conversationclaude: Issue mirror (larger): Background job that polls GET /repos/:owner/:repo/issues and upserts. Defer until 1–3 prove valuable.
saravanan: [agreed, defer]
decision 1 open
Extend the tracker plugin itself for GitHub integration (not a separate MCP)
Three approaches were considered: (a) install the generic github/github-mcp-server, (b) extend this plugin, (c) build a custom MCP between the two. Chose (b) because the plugin already runs git commit/push at session_end — adding "comment on linked PR when a todo completes" and "auto-close items when PR with `Closes #<item_id>` merges" sits naturally there. Phased rollout: install GitHub MCP for ad-hoc access first, then plugin frontend badges, then webhook handler, then optional issue mirror.
added 06-11 11:26
· by saravanan@scrumclaw.ai
· claude-cowork
from the conversationsaravanan: can we build [a GitHub integration] so it is useful for project tracker?
saravanan: [chose] Extend the tracker plugin itself to call GitHub APIs. The plugin already runs on commit/push during tracker_session_end. Adding hooks like "stamp the commit SHA on the latest update" (already exists), "comment on linked PR when a todo completes", "auto-close items when a PR with Closes #<item_id> merges" lives more naturally there than in a separate MCP.
note 1 open
5 items captured in other session landed under project_id 'outputs' — orphans to clean up
low
The claude-collab session captured 1 decision + 4 todos on the GitHub integration, but they were stamped with project_id='outputs' because the plugin's cwd in that session was Cowork's outputs folder, not the project folder. The v3.4 ephemeral-folder guard prevents this for tracker_init_project but doesn't retroactively fix existing rows. Cleanup options: (a) DELETE FROM claude_projects WHERE project_id='outputs' CASCADE in Studio, accepting the loss of those originals (they're now duplicated under claude-project-tracker by this digest), or (b) UPDATE the 5 rows to set project_id='claude-project-tracker'.
added 06-11 11:26
· by saravanan@scrumclaw.ai
· claude-cowork
Add item
Recently completed
Add per-project CLAUDE.md with Project ID for each tracked project
todo
done 06-09 19:49
· by Saravanan
Log
activeBackfilling repo_url so /join works from a fresh clone. v3.6 plugin shipped (tracker_join_project + /join command).
· saravanan@scrumclaw.ai