How to post to Basecamp (agents)

When a job needs a Basecamp comment, the agent that owns the job posts it. Dennis is not the paste layer. Do not ask him (or anyone) to copy a draft into Basecamp.

Order of operations

  1. Post yourself. Prefer the Basecamp CLI (python3 -m basecamp) when the write-path package and a healthy token file are on the machine. A signed-in Basecamp browser session or a connected connector also counts. Local Service Spotlight Basecamp account id is 4057320.
  2. Cursor cloud. Cloud VMs start blank. Do not run interactive basecamp auth there (the localhost callback fails). Do not copy tokens.json onto a cloud VM. Instead, put these three named secrets in the Cursor cloud secret store once (values never go in git or chat):
    • basecamp.oauth_client_id
    • basecamp.oauth_secret
    • basecamp.oauth_refresh_token

    Those same names already live on the Mac and Grok machines. Env aliases that also work: BASECAMP_CLIENT_ID, BASECAMP_CLIENT_SECRET, BASECAMP_REFRESH_TOKEN, plus BASECAMP_ACCOUNT_ID=4057320.

  3. Only if no write path exists: leave a GitHub PR comment on Local-Service-Spotlight/agent-runtime for Tanner. Include the comment body path+SHA and the live Basecamp thread URL. Tanner posts and returns #__recording_ IDs on that same PR. Default human subscriber is Muzamil, not Dennis.

Hard rules

  • Never reply to a Basecamp notification by Gmail or any email client.
  • On client-visible threads, do not put an Agent receipt on the Basecamp body. Keep receipts in the private agent-note.
  • Never print secret values, tokens, or passwords into chat, git, or a public page.
  • Stop before send if you are unsure which thread is live. Confirm the URL first.

Where agents learn this

Related: if you can do it, you should · how our agents share memory.

Dennis Yu
Dennis Yu
Dennis Yu is the CEO of Local Service Spotlight, a platform that amplifies the reputations of contractors and local service businesses using the Content Factory process. He is a former search engine engineer who has spent a billion dollars on Google and Facebook ads for Nike, Quiznos, Ashley Furniture, Red Bull, State Farm, and other brands. Dennis has achieved 25% of his goal of creating a million digital marketing jobs by partnering with universities, professional organizations, and agencies. Through Local Service Spotlight, he teaches the Dollar a Day strategy and Content Factory training to help local service businesses enhance their existing local reputation and make the phone ring. Dennis coaches young adult agency owners serving plumbers, AC technicians, landscapers, roofers, electricians, and believes there should be a standard in measuring local marketing efforts, much like doctors and plumbers must be certified. He has appeared on 353 podcasts with 619 credited episodes — see the full list of his podcast appearances.