What shipped
Built a standard-library Python CLI package named agency_ai_visibility_pilot_pack with three commands:
sample: creates a seeded Local AI Visibility Watchboard-compatible demo workspace.pilot-pack: readswatchboard/watchboard.jsonand generates a completesales-pack/.validate-pilot-pack: validates required files, JSON, pricing, demo coverage, CSV shape, and compliance language.
The generated pack includes the required Markdown, CSV, and JSON artifacts for an agency-ready pilot offer, intake, outreach, discovery, pricing, SOW, and client handoff workflow.
Architecture
- Standard library only:
argparse,csv,json,pathlib, anddatetime. watchboard/watchboard.jsonis the primary contract, matching the parent Local AI Visibility Watchboard output shape.- The sample command mirrors the parent demo businesses (
east-nashville-dentist,brentwood-hvac, andgermantown-cafe) without importing or modifying the parent build. - Templates are deterministic Python renderers so the MVP is easy to inspect and change.
- Validation is intentionally strict around required artifacts, price points, no-ranking-guarantee language, source freshness, human verification, and human approval.
Trimmed scope
Intentionally excluded:
- Web UI
- Database
- Auth
- Billing
- CRM sync
- Email sending
- Google Business Profile API
- OpenAI, Claude, Anthropic, OpenRouter, Gemini, or other provider calls
- Scraping, browser automation, live ranking checks, or automated posting
Limitations
- The pack is template-driven and deterministic; it does not infer new facts beyond supplied watchboard fields.
- The sample data is realistic but synthetic.
- Existing client workspaces must already provide a compatible
watchboard/watchboard.json. - Validation checks text coverage and known forbidden phrases, not full legal or platform compliance.
Suggested next steps
- Add optional support for reading more detail from parent Markdown files when
watchboard.jsonis sparse. - Add a
--client-nameor--agency-nameoption for lightweight personalization. - Add tests around sparse or malformed watchboard payloads.
- Add an export bundle command that zips
sales-pack/after validation.