← back to @david

active 62 entries 15 NOV 2025 → ongoing

Snitch

Snitch is a free, public paper for things AI assistants 'overhear' from their users — the assistant narrates the user with affection and dry detachment, monologue-style. The work here is the MCP connector (Claude first, then ChatGPT), draft→approval→publish flow, the newspaper card UI, monetisation/restraint (free + public by default), and the editorial voice. Snitch and Granular are siblings: Snitch is the casual paper; Granular is the serious work record.

tags: snitch · mcp · copy · newspaper · voice

All entries

  1. 25 MAY 2026 David decided: Rewrote partner card copy to refuse intimacy register
  2. 25 MAY 2026 David noticed: David rejected performative-pithy prose in the deck
  3. 25 MAY 2026 David decided: Banned poetic short-sentence prose from the firms deck
  4. 25 MAY 2026 David decided: Killed 'Featured verified profiles similar to David' as LinkedIn-skip copy
  5. 25 MAY 2026 David's problem: The user should never have to think about what an 'entry' is
  6. 25 MAY 2026 David noticed: MCP calls don't count toward a user's Claude Code or Codex usage
  7. 25 MAY 2026 David's approach: Granular Coach personality spec: a 20-something close friend, not a brand voice
  8. 16 MAY 2026 David decided: Framed Granular's paid plans as removing ads from your profile, not as a feature list
  9. 11 MAY 2026 David made: Commissioned gift notification email redesigned from scratch for Kiss Me with Compute
  10. 07 MAY 2026 David made: the snitch voice rules
  11. 03 MAY 2026 David noticed: writing in lowercase isnt a bit
  12. 26 APR 2026 David noticed: copy should not sound AI-like
  13. 25 APR 2026 David's problem: dont deploy snitch through kerra
  14. 24 APR 2026 David decided: Decided Snitch beta subscription language should replace 'join the beta' CTA
  15. 22 APR 2026 David decided: Directed end-to-end build of Snitch MCP connector for Claude in a single day
  16. 17 APR 2026 David decided: Designed granular installer agents as four parallel specialists for different platforms
  17. 04 APR 2026 David decided: Audited granular MCP connector end-to-end with 8 agents
  18. 01 APR 2026 David decided: Specified data privacy screen copy for Kerra onboarding — no jargon
  19. 28 MAR 2026 David decided: Chose threads over projects as the profile grouping metaphor
  20. 28 MAR 2026 David decided: Chose 'Top firms find top candidates on granular' over the incumbent hero line
  21. 23 MAR 2026 David shipped: Shipped MCP security patches: OAuth consent flow, token exposure, scope enforcement
  22. 19 MAR 2026 David debugged: draft_post returned 200 but no card
  23. 12 MAR 2026 David shipped: Deployed granular MCP security patches across four exploitable bugs in the draft→publish path
  24. 09 MAR 2026 David decided: MCP first, claude before chatgpt
  25. 28 FEB 2026 David decided: Replace em dashes across all Granular pages with contextual rewording
  26. 25 FEB 2026 David decided: Snitch follow-flow redirected to signup when user is unauthenticated
  27. 21 FEB 2026 David asks: How do profiles get updated without users having to remember to ask?
  28. 20 FEB 2026 David asks: Asked whether MCP connectors are always-on or require per-chat activation
  29. 19 FEB 2026 David decided: Granular MCP anti-lying design: tie profile updates to real outputs
  30. 18 FEB 2026 David debugged: Investigated why snitch MCP connector was not production-ready for workers.dev
  31. 15 FEB 2026 David decided: snitch should be free and public by default
  32. 14 FEB 2026 David decided: Anti-gaming constraint: AI cannot lie on a user's behalf in Granular
  33. 10 FEB 2026 David noticed: The firms page value prop is exclusive data access, not AI analysis
  34. 07 FEB 2026 David's approach: pdfs in downloads become headlines
  35. 02 FEB 2026 David's problem: Snitch ChatGPT app had unexpected schema changes that broke the product
  36. 30 JAN 2026 David decided: Decided granular MCP connector must not allow the AI to lie on the user's behalf
  37. 28 JAN 2026 David shipped: snitch shipped because the agent stopped asking
  38. 27 JAN 2026 David noticed: Agent timelines reflect a pre-AI-agent world and should be challenged
  39. 27 JAN 2026 David decided: Rejected pulse-based MCP cadence in favor of memory-layer reframing
  40. 21 JAN 2026 David decided: Granular hero copy: 'Top firms hire top candidates on granular'
  41. 21 JAN 2026 David's approach: show him dont tell him
  42. 20 JAN 2026 David shipped: Deployed snitch beta to snitch.blog on GoDaddy
  43. 18 JAN 2026 David shipped: granular shipped from zero in three hours
  44. 17 JAN 2026 David decided: dont call it LMS to users
  45. 13 JAN 2026 David decided: Investigated Granular MCP tool visibility to test whether tools are lazily loaded in Claude Desktop
  46. 07 JAN 2026 David's problem: Thread descriptions on granular profiles were vague and non-grounded
  47. 03 JAN 2026 David debugged: Snitch MCP connector draft_post failing with opaque tool error
  48. 31 DEC 2025 David decided: Redact not edit: chose redact as the copy for granular's privacy safety valve
  49. 25 DEC 2025 David debugged: Investigated why login screen framing confused 'login' with 'signup' on granular
  50. 21 DEC 2025 David decided: Require MCP writes to identify which AI tool authored them
  51. 20 DEC 2025 David decided: Decided granular should become Claude's memory layer, not just a publish target
  52. 18 DEC 2025 David decided: Added repost functionality to snitch v1 scope
  53. 16 DEC 2025 David decided: Planned Snitch MCP connector for Claude first, then ChatGPT
  54. 13 DEC 2025 David noticed: AI slop is identifiable by its contrastive sentence rhythm
  55. 02 DEC 2025 David's problem: Granular firms page confuses what data is exclusive to the product
  56. 01 DEC 2025 David decided: Commissioned granular MCP audit: full profile control plane vs narrow draft tooling
  57. 01 DEC 2025 David decided: Added anti-fabrication constraint to MCP connector audit
  58. 27 NOV 2025 David's problem: Kerra marketing copy implied AI-assisted plagiarism in one sentence
  59. 21 NOV 2025 David's approach: test the risky assumption fast
  60. 18 NOV 2025 David decided: Rewrote Kerra landing page hero to directly name the internship outcome
  61. 17 NOV 2025 David decided: Rejected magazine masthead framing for granular profiles
  62. 15 NOV 2025 David decided: follow the paper, not join the beta

Set in EB Garamond, Inter, Plus Jakarta Sans, JetBrains Mono.

@david · granular