Product Kit · 1.0.0

Browser-local · deterministic estimates

Prompt Regression Kit

Compare bounded prompt templates with explicit variables, literal fixtures, estimated context and cost assumptions, and deterministic release rules.

AI application teams reviewing prompt-template changes without asking a model to grade quality or infer semantic equivalence.

Renames are explicit only. Fixture strings are substituted once and never evaluated. UTF-8 bytes are exact; token, context, and cost values are estimates from your submitted assumptions.

The visible sample was built locally during this static build. Regenerate current input to enable downloads.

Variable compatibility matrix

[
  {
    "status": "renamed",
    "previous_name": "customer_name",
    "current_name": "account_name",
    "explicit_mapping": true,
    "required_current": true
  },
  {
    "status": "added",
    "previous_name": null,
    "current_name": "literal",
    "explicit_mapping": false,
    "required_current": true
  },
  {
    "status": "added",
    "previous_name": null,
    "current_name": "plan",
    "explicit_mapping": false,
    "required_current": true
  }
]

Estimated token and context fit

{
  "estimates": {
    "label": "estimate",
    "method": "UTF-8 bytes are exact; tokens use submitted characters-per-token ratio; cost uses submitted prices.",
    "chars_per_token": 4,
    "previous": {
      "exact_utf8_bytes": 38,
      "estimated_tokens": 10
    },
    "current": {
      "exact_utf8_bytes": 95,
      "estimated_tokens": 24
    }
  },
  "context_fit": {
    "label": "estimate",
    "context_window_tokens": 128000,
    "previous_estimated_prompt_tokens": 10,
    "previous_estimated_total_tokens": 1510,
    "previous_estimated_remaining_tokens": 126490,
    "previous_fits_context": true,
    "estimated_prompt_tokens": 24,
    "reserved_output_tokens": 1000,
    "other_context_tokens": 500,
    "estimated_total_tokens": 1524,
    "estimated_remaining_tokens": 126476,
    "fits_context": true,
    "fits_with_reserve": true
  },
  "cost_estimate": {
    "label": "estimate",
    "currency": "USD",
    "submitted_assumptions": true,
    "previous_per_request_usd": 0.010025,
    "current_per_request_usd": 0.01006,
    "delta_per_request_usd": 0.000035,
    "requests": 100,
    "previous_total_usd": 1.0025,
    "current_total_usd": 1.006,
    "delta_total_usd": 0.0035,
    "input_price_per_million_usd": 2.5,
    "output_price_per_million_usd": 10
  }
}

Complete regression envelope

{
  "ok": true,
  "schema_version": "utilito.product-kit.v1",
  "kit": {
    "id": "prompt-regression-kit",
    "version": "1.0.0"
  },
  "result": {
    "text_diff": {
      "format": "line_diff",
      "semantic_analysis_performed": false,
      "quality_graded": false,
      "summary": {
        "changedLines": 1,
        "addedLines": 3,
        "removedLines": 0,
        "originalChars": 38,
        "revisedChars": 95,
        "charDelta": 57,
        "originalWords": 5,
        "revisedWords": 12,
        "wordDelta": 7,
        "originalLines": 1,
        "revisedLines": 4,
        "lineDelta": 3
      },
      "operations": [
        {
          "type": "changed",
          "before": "Write a welcome for {{customer_name}}.",
          "after": "[system]",
          "leftLine": 1,
          "rightLine": 1
        },
        {
          "type": "added",
          "line": "Write a safe welcome for {{account_name}}.",
          "rightLine": 2
        },
        {
          "type": "added",
          "line": "[user]",
          "rightLine": 3
        },
        {
          "type": "added",
          "line": "Plan: {{plan}}. Literal: {{literal}}",
          "rightLine": 4
        }
      ],
      "diff_text": "- Write a welcome for {{customer_name}}.\n+ [system]\n+ Write a safe welcome for {{account_name}}.\n+ [user]\n+ Plan: {{plan}}. Literal: {{literal}}"
    },
    "variable_compatibility_matrix": [
      {
        "status": "renamed",
        "previous_name": "customer_name",
        "current_name": "account_name",
        "explicit_mapping": true,
        "required_current": true
      },
      {
        "status": "added",
        "previous_name": null,
        "current_name": "literal",
        "explicit_mapping": false,
        "required_current": true
      },
      {
        "status": "added",
        "previous_name": null,
        "current_name": "plan",
        "explicit_mapping": false,
        "required_current": true
      }
    ],
    "rendered_fixtures": [
      {
        "id": "complete",
        "status": "rendered",
        "missing_variables": [],
        "unresolved_optional_variables": [],
        "previous_rendered_kind": "text",
        "current_rendered_kind": "messages",
        "previous_rendered": "Write a welcome for Ada.",
        "current_rendered": [
          {
            "role": "system",
            "content": "Write a safe welcome for Ada."
          },
          {
            "role": "user",
            "content": "Plan: Pro. Literal: <b>\"{{plan}}\"</b>"
          }
        ]
      },
      {
        "id": "missing-plan",
        "status": "blocked",
        "missing_variables": [
          "plan"
        ],
        "unresolved_optional_variables": [],
        "previous_rendered_kind": "text",
        "current_rendered_kind": "messages",
        "previous_rendered": null,
        "current_rendered": null
      }
    ],
    "estimates": {
      "label": "estimate",
      "method": "UTF-8 bytes are exact; tokens use submitted characters-per-token ratio; cost uses submitted prices.",
      "chars_per_token": 4,
      "previous": {
        "exact_utf8_bytes": 38,
        "estimated_tokens": 10
      },
      "current": {
        "exact_utf8_bytes": 95,
        "estimated_tokens": 24
      }
    },
    "context_fit": {
      "label": "estimate",
      "context_window_tokens": 128000,
      "previous_estimated_prompt_tokens": 10,
      "previous_estimated_total_tokens": 1510,
      "previous_estimated_remaining_tokens": 126490,
      "previous_fits_context": true,
      "estimated_prompt_tokens": 24,
      "reserved_output_tokens": 1000,
      "other_context_tokens": 500,
      "estimated_total_tokens": 1524,
      "estimated_remaining_tokens": 126476,
      "fits_context": true,
      "fits_with_reserve": true
    },
    "cost_estimate": {
      "label": "estimate",
      "currency": "USD",
      "submitted_assumptions": true,
      "previous_per_request_usd": 0.010025,
      "current_per_request_usd": 0.01006,
      "delta_per_request_usd": 0.000035,
      "requests": 100,
      "previous_total_usd": 1.0025,
      "current_total_usd": 1.006,
      "delta_total_usd": 0.0035,
      "input_price_per_million_usd": 2.5,
      "output_price_per_million_usd": 10
    },
    "release_decision": {
      "decision": "block",
      "rule_ids": [
        "TEXT_CHANGED",
        "ADDED_REQUIRED_VARIABLE",
        "FIXTURE_MISSING_REQUIRED_VARIABLE"
      ],
      "semantic_judgment_used": false
    },
    "regression_report": {
      "format": "markdown",
      "content": "# Prompt Regression Kit report\n\nRelease decision: block\nRule IDs: TEXT_CHANGED, ADDED_REQUIRED_VARIABLE, FIXTURE_MISSING_REQUIRED_VARIABLE\n\nThis report is semantic-free. It does not assess prompt quality or semantic equivalence.\n\nPrevious exact UTF-8 bytes: 38\nCurrent exact UTF-8 bytes: 95\nPrevious estimated tokens: 10\nCurrent estimated tokens: 24\nPrevious context fit (estimate): fits\nCurrent context fit (estimate): fits\nPrevious estimated cost per request: $0.010025\nCurrent estimated cost per request: $0.010060\nEstimated cost delta per request: $0.000035"
    },
    "artifact_manifest": [
      {
        "name": "text_diff",
        "media_type": "text/plain",
        "bytes": 144
      },
      {
        "name": "variable_matrix",
        "media_type": "application/json",
        "bytes": 466
      },
      {
        "name": "rendered_fixtures",
        "media_type": "application/json",
        "bytes": 775
      },
      {
        "name": "estimates",
        "media_type": "application/json",
        "bytes": 785
      },
      {
        "name": "context_fit",
        "media_type": "application/json",
        "bytes": 452
      },
      {
        "name": "regression_report",
        "media_type": "text/markdown",
        "bytes": 561
      }
    ],
    "safety": {
      "literal_substitution_only": true,
      "model_used": false,
      "provider_called": false,
      "network_used": false,
      "storage_used": false,
      "telemetry_used": false,
      "semantic_equivalence_assessed": false,
      "quality_graded": false
    }
  },
  "receipt": {
    "input_bytes": 1044,
    "output_bytes": 4986,
    "operations": 4,
    "omitted_items": 1,
    "warnings": [
      "TEXT_CHANGED",
      "ADDED_REQUIRED_VARIABLE",
      "FIXTURE_MISSING_REQUIRED_VARIABLE"
    ],
    "templates": 2,
    "fixtures_submitted": 2,
    "fixtures_rendered": 1,
    "fixtures_blocked": 1,
    "variables_previous": 1,
    "variables_current": 3,
    "artifacts": 6
  },
  "provenance": {
    "deterministic": true,
    "model_used": false,
    "network_used": false,
    "storage_used": false,
    "core_versions": {
      "prompt_regression_kit": "1.0.0",
      "prompt_diff": "prompt-diff-core",
      "prompt_sizing": "explicit-ratio-adapter-v1",
      "context_fit": "explicit-assumptions-adapter-v1"
    }
  },
  "error": null
}

Free runnable capability

Build and download one bounded browser-local prompt regression packet with no signup.

Builder capability

The existing Builder Pilot can coordinate higher bounded review volume; it does not add model grading, provider execution, storage, monitoring, or inferred semantic decisions.

See the existing Builder Pilot

Privacy boundary

Browser generation runs locally. API and MCP requests are response-only; no model or provider call, network access, storage, telemetry, execution, or semantic analysis is performed.

Limits and trust boundary

  • Only {{variable_name}} placeholders are recognized. Renames are classified only from the submitted rename map; the kit never infers a semantic rename, prompt equivalence, intent, or quality.
  • Fixture values must be literal strings and are substituted once. HTML, JavaScript, shell syntax, ${markers}, and nested {{markers}} inside values are never evaluated or recursively expanded.
  • UTF-8 byte counts are exact. Token counts use the submitted characters-per-token ratio, while context fit and USD cost use submitted context, reserve, volume, and pricing assumptions; all such values are labeled estimates, not current provider facts.
  • The line diff is bounded before the shared quadratic diff core is called. Aggregate rendered output is preflighted, and the complete success envelope is capped at 262,144 UTF-8 bytes. No model/provider call, network, storage, telemetry, monitoring, or execution occurs.