06 Smithy To Manifest Generator

06 — Smithy → Manifest Generator

Type: AFK Label: ready-for-agent

What to build

Replace issue 05’s hand-written [[Tool Manifest]] JSON with a build-time generator. Sources of truth: (a) the Smithy model (for shapes), (b) a hand-curated allowlist file (the names of allowed operations + risk classes), (c) a hand-curated description-overrides file (LLM-tuned descriptions, since Smithy @documentation is written for SDK users).

  • Generator consumes Smithy + allowlist + descriptions and emits the same manifest shape issue 05 already consumes. Deterministic.
  • Build-time validations (fail the build):
    • Every allowlisted operation exists in the Smithy model.
    • Every allowlisted entry has a description override (no defaults — force the curation step).
    • Every entry has a risk class.
  • Expand the allowlist to roughly 5–10 read operations to validate the generator handles variety.
  • Wire the generator into the existing build pipeline so the manifest is regenerated whenever Smithy or the allowlist changes.

Tests (deep module): fixture-driven — given a small Smithy model and an allowlist, assert the emitted manifest. Cover all the failure modes (missing op, missing description, missing risk class, allowlist references unknown op).

Acceptance criteria

  • Running the build regenerates the manifest from current Smithy + allowlist.
  • All deterministic-output tests pass with fixture Smithy inputs.
  • Each build-time validation rule fails the build with a clear error message when violated.
  • Agent successfully uses at least 3 of the newly allowlisted tools end-to-end via the issue 05 flow, with no code changes between tools.
  • The hand-written JSON manifest from issue 05 is deleted; the generator is the sole source.

Blocked by

  • 05-first-end-to-end-tool-call