{
  "schema_version": "newruntime-agent-readable-v0.1",
  "type": "raw_signal",
  "id": "tg-2708",
  "slug": "opencode-model-swappable-agent-harness",
  "title": "OpenCode makes the model a swappable dependency",
  "description": "OpenCode keeps rules, skills, permissions, sessions, and tools stable while the underlying model changes.",
  "observed_at": "2026-07-16",
  "why_it_matters": "Separating the harness from model access reduces migration cost and lets teams evaluate providers without rebuilding their operating environment.",
  "novelty": "structural",
  "verification_level": "source-inspected",
  "signal_type": "field-report",
  "evidence_kind": "mixed",
  "status": "published",
  "telegram_message_id": 2708,
  "telegram_url": "https://t.me/qwgai/2708",
  "topics": [
    "coding-agents",
    "harness-engineering",
    "model-routing",
    "developer-tools"
  ],
  "entities": [
    "OpenCode"
  ],
  "related_patterns": [],
  "source_urls": [
    "https://opencode.ai/docs/models",
    "https://opencode.ai/docs/rules",
    "https://opencode.ai/docs/skills",
    "https://opencode.ai/docs/cli"
  ],
  "import_batch": "telegram-2026-07-17-v1",
  "routes": {
    "html": "https://newruntime.com/signals/opencode-model-swappable-agent-harness/",
    "markdown": "https://newruntime.com/signals/opencode-model-swappable-agent-harness.md",
    "json": "https://newruntime.com/signals/opencode-model-swappable-agent-harness.json"
  },
  "source_format": "telegram-export-normalized-json"
}
