Skip to content
All plugins

Cost guard

dev3d.cost-guard

Keeps the cheap work cheap: routes intake, summarising and research to the least expensive capable model, adds a small local model to the catalog for it to aim at, and offers a cost-auditor role and a spend-review pipeline.

VerifiedFeaturedData onlyapiVersion 1MITdev3dcategory cost-control

Published by Jacob

Latest
v1.1.0
Versions
1
Installs
24
Contributions
6
Published
12 Sept 2026

This plugin is data only — it ships no code

Everything it contributes is validated data: models, skills, routing rules, role templates and pipelines that the orchestrator reads and acts on itself. No module is imported and nothing of the publisher's runs in the orchestrator process. That is the whole point of the two kinds, and it is why the permission list here is a summary of what the data asks for rather than a grant of authority.

About this plugin

Keeps the cheap work cheap: routes intake, summarising and research to the least expensive capable model, adds a small local model to the catalog for it to aim at, and offers a cost-auditor role and a spend-review pipeline.

Permissions

A declaration, not a sandbox. These are the ten names a manifest may use, and this list is what the publisher claims the plugin reaches for. Nothing in the orchestrator enforces it at runtime — a code plugin already runs in the orchestrator’s process with the orchestrator’s authority — so read it as a consent record, and only install from a publisher you trust.

  • Models

    Adds models to the catalog the router chooses from. It cannot remove or re-price a built-in model.

  • Routing

    Adds routing rules that reorder candidate models. A rule expresses a preference; it is not an override of the hard constraints.

  • Skills

    Adds skills to the skill catalog, which a floor can then enable. It cannot grant a skill to a floor that has not enabled it.

  • Agents

    Offers role templates in the hire form. Someone still has to hire the role.

  • Pipelines

    Offers pipeline definitions to every floor. A pipeline is data, so it reaches no file on its own.

  • Settings

    Adds settings entries under its own id. It cannot read or write settings outside its namespace.

Contributions

KindCountWhat it reaches
routingRules2reorder the candidate list, scoped by taskClass — a preference, not an override
models1merged into the model catalog, so the router can pick it
skills1merged into the skill catalog and enableable per floor
pipelines1offered to every floor
roleTemplates1offered in the hire form

Versions

VersionPublishedSizeDownloadssha256
v1.1.0latest12 Sept 20262 weeks ago2.2 KB240d2a2903fd97a065351…

Manifest · v1.1.0

The manifest exactly as the catalog serves it, before the host validates it.

{
  "id": "dev3d.cost-guard",
  "name": "Cost guard",
  "author": "dev3d",
  "license": "MIT",
  "version": "1.1.0",
  "settings": [
    {
      "key": "aggressiveness",
      "type": "select",
      "label": "How hard to push down-tier",
      "default": "balanced",
      "options": [
        "gentle",
        "balanced",
        "aggressive"
      ],
      "description": "Balanced honours the role's policy and only overrides the cheapest task classes. Aggressive pulls everything except coding and review down a tier."
    },
    {
      "key": "localOnly",
      "type": "boolean",
      "label": "Never prefer a hosted provider",
      "default": false,
      "description": "When on, the cheap task classes are pinned to the local provider even if a hosted model is cheaper."
    },
    {
      "key": "maxPromptTokens",
      "max": 200000,
      "min": 1000,
      "type": "number",
      "label": "Warn above this prompt size",
      "default": 12000,
      "description": "Only used for the plugin's own logging; it does not truncate anything."
    }
  ],
  "apiVersion": "1",
  "contributes": {
    "models": [
      {
        "id": "local/qwen2.5-coder-7b-instruct",
        "tier": "small",
        "label": "Qwen 2.5 Coder 7B (local)",
        "strengths": [
          "summarize",
          "intake",
          "routing"
        ],
        "providerId": "local",
        "capabilities": {
          "tools": true,
          "vision": false,
          "reasoning": false,
          "streaming": true
        },
        "contextWindow": 32768,
        "costPerMTokIn": 0,
        "costPerMTokOut": 0,
        "maxOutputTokens": 4096
      }
    ],
    "skills": [
      {
        "id": "cost-aware-delegation",
        "body": "# Cost-aware delegation\n\nBefore you reach for a strong model, answer three questions in writing:\n\n1. **What does this task actually require?** Parsing, summarising and re-formatting need none of the reasoning a frontier model is priced for.\n2. **What is the cost of being wrong?** A wrong intake summary costs a re-run. A wrong migration costs a day.\n3. **Is the expensive model buying anything?** If you cannot name the specific step that needs the extra capability, you do not need it.\n\n## Say this\n\n> This is a summarise-and-reformat task. A small model is sufficient; I would spend the budget on the review stage instead.\n\n## Not this\n\n> I will use the most capable model available to be safe.\n\nSafety is not a reason to escalate. Specific, named difficulty is.",
        "name": "Cost-aware delegation",
        "tags": [
          "cost",
          "process",
          "routing"
        ],
        "description": "Decide whether a task needs a frontier model at all, and say which tier is actually justified.",
        "taskClasses": [
          "routing",
          "summarize",
          "planning"
        ]
      }
    ],
    "pipelines": [
      {
        "id": "spend-review",
        "name": "Spend review",
        "stages": [
          {
            "kind": "review",
            "mode": "single",
            "name": "Audit",
            "roleIds": [
              "cost-auditor"
            ]
          },
          {
            "kind": "report",
            "mode": "single",
            "name": "Report",
            "roleIds": [
              "cost-auditor"
            ]
          }
        ],
        "description": "Read the runs the office has already paid for and say which spend bought nothing. Two stages, no code written."
      }
    ],
    "routingRules": [
      {
        "id": "cheap-first-for-mechanical-work",
        "tier": "small",
        "taskClass": "intake",
        "description": "Intake and summarising are mechanical: prefer the cheapest capable model, and prefer a local runtime when one is configured.",
        "preferProviderIds": [
          "local",
          "deepseek"
        ]
      },
      {
        "id": "no-frontier-for-summaries",
        "tier": "nano",
        "taskClass": "summarize",
        "description": "A summary never needs the strongest tier.",
        "avoidModelIds": [
          "gpt-4o",
          "claude-3-5-sonnet-latest",
          "o3-mini"
        ]
      }
    ],
    "roleTemplates": [
      {
        "id": "cost-auditor",
        "rank": 2,
        "title": "Cost auditor",
        "roomId": null,
        "seatId": null,
        "mission": "keep the office honest about what it spends, and say when a cheaper route would do",
        "persona": {
          "voice": "dry, specific, allergic to waste",
          "values": [
            "evidence",
            "thrift",
            "candour"
          ]
        },
        "skillIds": [
          "cost-aware-delegation",
          "technical-writing",
          "code-review"
        ],
        "reportsTo": null,
        "seniority": "senior",
        "appearance": {
          "height": 1,
          "bodyColor": "#facc15",
          "accentColor": "#78350f"
        },
        "canDelegate": false,
        "displayName": "Mira",
        "modelPolicy": {
          "maxTier": "strong",
          "minTier": "small",
          "defaultTier": "standard"
        },
        "allowedTools": [
          "think",
          "read_file",
          "list_dir",
          "search_files"
        ],
        "departmentId": "frontend",
        "maxDirectReports": 0,
        "maxTurnsPerStage": 4,
        "responsibilities": [
          "read a run's turns and name the ones that bought nothing",
          "propose the cheapest model that would still have finished the task",
          "refuse to call a summary a research problem"
        ]
      }
    ]
  },
  "description": "Keeps the cheap work cheap: routes intake, summarising and research to the least expensive capable model, adds a small local model to the catalog for it to aim at, and offers a cost-auditor role and a spend-review pipeline.",
  "permissions": [
    "models",
    "routing",
    "skills",
    "agents",
    "pipelines",
    "settings"
  ]
}

Nothing else published in this category yet

This is the only plugin in its category so far.

Browse all plugins