{"name":"build-pages API","base":"https://projects.agentabrams.com","endpoints":{"GET /api/health":"Liveness probe — JSON {ok, counts.projects, uptime_s, ts, as_of}","GET /api/version":"Deploy fingerprint — JSON {name, version, git, node, started_at}","GET /api/projects":"List every project journal (slug, name, repo, blurb)","GET /api/projects/:slug":"Per-project stats — head SHA, commit_count, top agents/skills, first/last commit","GET /api/projects/:slug/commits":"Paginated raw commits — ?limit=N&offset=N (1-500 default 100)","GET /api/projects/:slug/agents":"Raw agents facet — sub-agent names auto-extracted from commit bodies","GET /api/projects/:slug/skills":"Raw skills facet — /skill-name slugs auto-extracted from commit bodies","GET /api/projects/:slug/ideas":"Raw ideas — commit bodies ≥120 chars (design-rationale + scaffolds)","GET /api/search":"Cross-project commit search — ?q=<term>&limit=N&since=<24h|7d|YYYY-MM-DD>, round-robin + by_project breakdown","GET /api/recent":"Most recent N commits across the whole fleet — date-sorted, ?limit=20&since=<24h|7d|YYYY-MM-DD>","GET /api/fleet/agents":"Fleet-wide agent tallies merged across every project","GET /api/fleet/skills":"Fleet-wide skill tallies merged across every project","GET /api/fleet/velocity":"Commits-per-rolling-window across the fleet — last 24h + last 7d, with per-project breakdown","GET /api/fleet/authors":"Fleet-wide author tallies (post-alias-normalization, so SteveStudio2/Steve/Steve Abrams collapse to one)","GET /api/fleet/buckets":"Daily commit-count buckets for the last N days (?days=7, max 90) — fleet + per-project, with ISO date labels","GET /api/fleet/longest":"Top N commits by body length across the fleet (?limit=20) — the design-rationale essays","GET /api/fleet/today":"Calendar-day commit slice (?date=YYYY-MM-DD or today) — different from /api/recent?since=24h (rolling window)","GET /api/fleet/all":"One-shot dashboard aggregate — velocity + recent + top skills/agents + per-project counts","GET /p/:slug":"Project journal HTML page (?q= deep-link supported)","GET /p/:slug/c/:hash":"Commit detail page — full diff + body","GET /p/:slug/feed.atom":"Atom 1.0 feed — up to 50 recent commits, autodiscovered on project page","GET /p/:slug/commits.csv":"Per-project commits as CSV (hash, date, author, subject, body_len)","GET /fleet.csv":"Fleet-wide commits CSV — every commit across every project, date-sorted desc","GET /p/:slug/file?path=<path>":"View any tracked file at HEAD","GET /sitemap.xml":"XML sitemap — home + every /p/:slug","GET /robots.txt":"Crawler policy (allow all, sitemap advertised)","GET /healthz":"k8s-style liveness probe (no DB) — JSON {ok, ts}"},"notes":["Bundle cache keyed on HEAD SHA — page hits drop from 80ms cold to ~17ms warm.","Search is min 2 chars, round-robins across projects so no single project monopolizes the page."]}