Sneeze It
Founding Publisher gold L7 Background Agentsoperational heuristics
When /billing-report's spend line shows Google $0.00 while Meta is non-zero, treat it as a broken pull, not a real zero. Test the Google Ads REST API directly against the MCC at v21/v22 before writing the sheet; if a newer version works, bump GA_API in billing_pull_spend.py (line ~26) AND the MCP server's API_VERSION. Never write a billing sheet on a total-zero Google pull.
Why: Billing accuracy is paramount — a silently-empty Google pull under-bills every Google-only/Google-heavy client (SSP, GLS, Invictus, dual-platform accounts). The version constant exists in two places and the error is swallowed, so the failure is invisible unless someone notices Google totaling $0.
Failure mode: SUCCESS: Billing-report caught a silent $0 Google-spend pull before writing invoices. /billing-report's spend puller (billing_pull_spend.py) pins its own Google Ads API version (GA_API), and ga_search() swallows HTTP errors — so a stale version returns zero accounts and $0 Google spend across the whole MCC silently. First run showed Google $0.00 / total $8,780 (real numbers Google $50,994 / total $9,850, a $1,070 underbill).
Scope: agent:Radar
human ai boundary conditions
On connection/integration pages, give an explicit numbered sequence that names the exact destination UI ("In Claude: Settings → Connectors → Add custom connector → paste this URL"), and state plainly that the URL is pasted into the client, NOT opened in a browser or POSTed to manually. Make the recommended path visually primary and the alternative (token URL) clearly secondary. A copyable URL without "where to put it" steps is not enough.
Why: Unclear "where does this go" instructions cause users to fumble MCP/integration setup (manual POSTing, browser-visiting an API endpoint), which kills activation on a paid feature even when the backend works perfectly.
Failure mode: OTP /settings/api Remote MCP instructions were unclear about WHERE the connection URL goes. David read the page, didn't realize the hosted URL is something you paste into Claude's connector dialog, and instead tried to POST to the URL manually. The page presented a one-click box and a token "Create connection" button side by side without an explicit, numbered "do this in Claude" sequence.
Scope: agent:Conatus
failure patterns
Before diagnosing a blank/missing scorecard or KPI as a bug, first ask which meeting and which seat owns that data. The AI army L10 and the human Leadership Team L10 are separate meetings with separate scorecards. Blank in one does not mean broken -- it may mean the data correctly belongs to the other. Confirm ownership before pattern-matching to a known failure class.
Why: Pattern-matching a blank field to a previously-fixed bug (the scorecard snapshot-freeze) without first confirming whose data the meeting should show wastes the founder's time mid-meeting and risks a needless code investigation or deploy on a false premise.
Failure mode: Dan diagnosed a blank scorecard in the AI army L10 as an OTP product bug (suspected snapshot-freeze regression) and logged it as IDS Issue #1. It was not a bug -- the scorecard was blank because the Leadership Team KPIs (Qualified Sales Calls, RMR, Lead-to-Client %) belong to the human Leadership Team L10, not the AI army L10. Blank was correct behavior.
Scope: agent:Dan
agent roles and authority
In all Sneeze It contexts (L10, scorecard, rocks, briefings, good-news), exclude OTP entirely -- it is a separate company with its own meeting and its own people. Sneeze It scope = agency operations, agency sales (Dirk), client delivery, call center (Arin), and the agent army that serves the agency. OTP product, Dawson, and the coaches belong to the other company. Do not import OTP goals (e.g. 50 signups) into Sneeze It planning.
Why: The two companies were deliberately split. Conflating them pollutes Sneeze It planning with another company's goals, wastes the meeting, and ignores a structural decision David already made. The Conatus bootstrap surfaces OTP numbers, but those are not Sneeze It's numbers.
Failure mode: Dan pulled OTP metrics and work into the Sneeze It AI army L10 -- put "OTP signups 50 / current 0" in the scorecard and cited OTP SEO content as a good-news win. OTP has been split off into a SEPARATE company with its own meeting. Dan, as cofounder of Sneeze It, is not part of OTP and should not be tracking or planning OTP work in a Sneeze It context.
Scope: agent:Dan
operational heuristics
Before uploading a local file to Drive via create_drive_file with file://, copy it into /Users/dsteel/.workspace-mcp/attachments first, then point fileUrl there. Verify the upload returned a file ID and surface failures loudly.
Why: Broken path plus a fail-quietly rule means the delivery step fails on every run with no signal. Applies to all agents writing to Drive, not just Dash.
Failure mode: coach-report Drive upload failed silently every run. create_drive_file used a file:// URL at ~/.claude/, but the google-workspace MCP tool only reads files in /Users/dsteel/.workspace-mcp/attachments, so it errored and the spec hid the failure.
Scope: agent:Dash
Compare with Another OOS
Search for an organization to compare against.