{
  "publication": "GTM Wire",
  "description": "Automation policy for GTM Wire monitoring, drafting, validation, and publishing.",
  "generated_at": "2026-05-30T15:43:01.098Z",
  "publisher": {
    "name": "GTM Wire daily publisher",
    "id": "ai-gtm-fieldbook-daily-news-publisher",
    "schedule": "Weekdays at 08:00 America/Chicago",
    "command": "npm run validate:openai:ci && npm run draft:news:ci && npm run launch-check",
    "scope": "Monitor sources, draft with OpenAI when the gate clears, validate, commit publication artifacts, and push."
  },
  "model_policy": {
    "draft_api": "OpenAI Responses API",
    "model": "gpt-5.4-mini",
    "model_source": "OPENAI_MODEL",
    "mode": "linear monitored publishing",
    "reason": "Source context is gathered, drafted, locally gated, built, and published as a static artifact.",
    "agents_sdk": {
      "status": "not required for current loop",
      "when_needed": "Use the Agents SDK only when the workflow needs separate researcher, editor, reviewer, and publisher agents with tool-specific state."
    },
    "required_secret": "OPENAI_API_KEY",
    "ci_gate": "npm run validate:openai:ci"
  },
  "loop": [
    "Read configured sources",
    "Score AI and GTM workflow signals",
    "Enrich score 2+ candidates",
    "Draft with the OpenAI Responses API",
    "Run editorial and rendered-site gates",
    "Commit publication artifacts only",
    "Deploy static output through Cloudflare Pages"
  ],
  "latest_scan": {
    "last_scan_at": "2026-05-28T22:29:15.145Z",
    "sources_checked": 14,
    "candidates_found": 61,
    "score_2_plus": 6,
    "draft_ready": 0,
    "source_errors": 0
  },
  "source_policy": {
    "sources_configured": 14,
    "minimum_sources": 10,
    "freshness_gate_hours": 48,
    "max_feed_item_age_days": 60,
    "primary_source_bias": true
  },
  "editorial_gate": {
    "candidate_requirements": [
      "new source item",
      "score 2 or higher",
      "valid source URL",
      "clear AI signal",
      "clear GTM workflow signal"
    ],
    "required_sections": [
      "Why This Matters",
      "What Changed",
      "GTM Use Cases",
      "Workflow To Test This Week",
      "How This Is Different",
      "Risks And Review Points",
      "Operator Checklist",
      "Source Links"
    ],
    "language_checks": [
      "plain-language sentence length",
      "GTM audience language",
      "practical GTM action verbs",
      "technical jargon translated into GTM actions",
      "hype-language rejection"
    ],
    "checklist_fields": [
      "Owner",
      "Workflow",
      "Inputs",
      "Human review",
      "Metric",
      "First test"
    ]
  },
  "agent_escalation": {
    "current_decision": "Responses API is enough for the current linear publisher.",
    "use_agents_sdk_when": "Separate researcher, editor, reviewer, and publisher agents need tool-specific state or multi-step handoffs.",
    "roles": [
      {
        "name": "Researcher",
        "trigger": "Multiple source trails need separate collection.",
        "output": "Evidence matrix and source conflicts."
      },
      {
        "name": "Editor",
        "trigger": "A draft needs role-specific GTM framing.",
        "output": "Brief structure and operator language."
      },
      {
        "name": "Reviewer",
        "trigger": "Claims, human review, or metric quality needs independent gating.",
        "output": "Pass, revise, or skip decision."
      },
      {
        "name": "Publisher",
        "trigger": "Validated artifacts are ready to ship.",
        "output": "Static site build and publication commit."
      }
    ]
  },
  "boundaries": {
    "allowed": [
      "monitor sources",
      "score candidates",
      "draft briefs",
      "create source logs",
      "build static site",
      "commit publication artifacts"
    ],
    "not_allowed": [
      "send commercial outreach",
      "create paid packs",
      "make business commitments",
      "buy domains",
      "change DNS",
      "commit secrets or subscriber exports"
    ]
  },
  "artifacts": {
    "briefs": 8,
    "workflows": 12,
    "status": "https://gtmwire.com/status.html",
    "publish_audit": "https://gtmwire.com/publish-audit.html",
    "quality": "https://gtmwire.com/quality.html",
    "launch_evidence": "https://gtmwire.com/launch-evidence.html"
  }
}