Software Factory Agent Instruction A developer built a headless agent that polls Basecamp for @mentions on cards, hands the card thread to Claude CLI for processing, and marks notifications as read. The agent runs locally via a systemd user timer every 30 seconds, uses SQLite for deduplication, and requires Claude CLI with --dangerously-skip-permissions for headless operation. Build a headless agent on this server that polls Basecamp for @mentions on cards, hands the card thread to claude -p , and marks the notification read. Local only, no public webhook. Poll cadence is 30 seconds via a systemd user timer. php systemd user timer every 30s - bc-agent.sh - flock single instance - basecamp notifications --agent filter: type Mention or Assignment, AND app url contains /card tables/cards/ - for each NEW mention dedup via SQLite : - extract card id + bucket id from subscription url - insert SQLite row status='processing' - fetch card + comments: basecamp cards show