Skip to content
sarr-io edited this page Jun 14, 2026 · 16 revisions

Shapes

Zinc runs Circuitry shape files and nested shape parts.

Circuitry owns shape semantics:

takes
uses
does
gives
bindings
composition
diagnostics
normalized material

Zinc consumes normalized material from circuitry-zig and stores it as fragment material. Zinc should not reconstruct Circuitry semantics from partial structs.

Local shape part

uses:
  answer:
    shape: ./parts/short-answer.circuitry.yaml
    takes:
      question: $question
    gives:
      answer: $answer

Package shape part

uses:
  answer:
    shape: openai-responses.shapes.short_answer
    takes:
      question: $question
    gives:
      answer: $answer

Package shape refs are manifest paths. Zinc resolves the package root, walks zinc.pkg.yaml, and reads the target file.

Nested execution

Nested shapes receive only values named in the parent part's local takes and return only values wired by the parent part's local gives.

Nested shape work is remembered as fragments. It is not a separate run table.

Clone this wiki locally