1 Commits
Author SHA1 Message Date
zeekayandHanzo Dev 80ab4245c3 flows: name the six canonical example flows, and gate them
Every Hanzo SDK is supposed to ship the SAME six examples — hello, chat, money,
store, agent, tools. Until now that was six repos independently remembering to
agree, and nothing checked. Nothing could: the flows existed in no manifest, in
no repo, in any language. The TypeScript and Python sets are the first two, and
writing them is what made the gap obvious.

flows.yaml is data only, like sdks.yaml beside it: per flow, the operationIds in
hanzo.yaml in call order, plus why THAT route and not a neighbour. Those choices
are the part worth writing down —

  hello  ai_getAccount, not bot_authMe (bot-service scoped) and not the IAM OIDC
         userinfo endpoint, which is on a different ORIGIN; using it would force
         every example set to know two base URLs, and IAM answers 200 text/html
         for an unregistered path, so a typo there is silent breakage, not a 404.
  tools  automations_mcp, not tasks_tasksMcp: only the former has typed
         request/response schemas, so `method` is a checked enum in every
         generated client instead of a free string.
  store  the data plane (/v1/kv/keys/*), not the provisioning plane (/v1/kv,
         which creates stores) — the two are easy to confuse by name alone.

test_flows.py asserts every id named here still exists in hanzo.yaml. Verified it
fails on a typo, not just passes on the truth:

    FAIL test_every_operation_exists_in_the_spec: flows.yaml names operations
         hanzo.yaml does not have: [('hello', 'ai_getAccount_TYPO')]

So deleting a route breaks ONE gate here rather than six SDKs' examples quietly
and separately.

Also gives this repo a `test:` block, which it did not have. 25 tests lived here
and not one had ever gated a commit — and that is not academic: hanzo.yaml spent
this entire period unable to generate a client in ANY language, because 35
/v1/platform operations carried no `responses` and openapi-generator refuses the
whole document over it. Nothing here noticed, because nothing here ever tried.
hanzo.yaml is the single input to seven language SDKs; a defect merged here is a
defect merged into all seven at once.

    25 passed in 19.99s

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-30 23:13:29 -07:00