Skip to content

Decide: sunset flow_* MCP ops or keep them alongside scaffold_* #38

@stackbilt-admin

Description

@stackbilt-admin

Context

Originally reported by codebeast (via Kurt) as "flow_quality / flow_governance return {hash} echo only" — sibling to Stackbilt-dev/tarotscript#199. That specific bug was an envelope-unwrap issue in the gateway (gateway was reading receipt fields off the root; worker nests them under .receipt.*). Fixed + regression tests added alongside this issue's filing.

This follow-up captures the larger design decision Codebeast raised: given that flow_* is being sunset in favor of scaffold_*, should we delete the flow_* ops from the MCP manifest entirely, or keep them as thin wrappers?

Current state (post-fix)

All five flow_* ops are functional:

  • flow_create — async scaffold run, returns receipt hash
  • flow_status{verified, createdAt, hash}
  • flow_summary — full envelope
  • flow_quality{governance, quality: {confidence, shadow_density, position_count}, hash}
  • flow_governance — same as flow_quality (same backing receipt field)

flow_quality and flow_governance still have overlapping semantics. If we're keeping both, we should probably split the fields cleanly: governance → just {governance, hash}, quality → just {quality, hash}. If we're deleting, that split is wasted work.

Proposed options

  1. Delete flow_* from the manifest — callers migrate to scaffold_* (or the forthcoming scaffold_quality / scaffold_governance if they exist / are planned). Cleanest if the sunset is real and near.
  2. Keep flow_* as wrappers — but split the quality / governance semantics so they're not clones.
  3. Keep flow_* marked deprecated — add a deprecated: true flag to the tool descriptions and a deprecation_target: 'scaffold_*' hint. Gives downstream a migration window.

Acceptance

  • Decision recorded (with sunset timeline if applicable)
  • Manifest + route-table.ts + tool-registry.ts updated to match
  • If keeping: flow_quality and flow_governance no longer return identical payloads
  • If deleting: downstream callers (codebeast at minimum, possibly others) given a heads-up before the manifest change lands

Cross-repo context

  • Fix for the immediate echo bug: this repo, src/gateway.ts envelope unwrap
  • Sibling silent-coercion bug: Stackbilt-dev/tarotscript#199 (fixed)
  • Original triage: Stackbilt-dev/stackbilt-engine#23 (closed — wrong repo)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions