Skip to content

File formats

A plan is a directory whose root holds kumihimo.yaml. Format version 1.

myplan/
  kumihimo.yaml        # manifest: meta, kinds, compile defaults
  view.yaml            # layout sidecar (canvas-maintained, optional)
  nodes/
    api-endpoints.md
    auth/login-flow.md # subfolders namespace ids: "auth/login-flow"

Node files

YAML frontmatter between --- lines, then the body — plain Markdown prose, preserved byte-for-byte by every tool operation.

---
kind: task
title: Rate-limit middleware
needs: [api-endpoints, pick-algorithm]
in: [ship-guarded-api]
effort: M
acceptance:
  - 429 + Retry-After on breach
links:
  - {to: redis-outage, rel: threatened-by}
---
Middleware on every authenticated route. Fail *open* on Redis errors.

Reserved keys: kind, title (optional — defaults from the id), needs, in, links (strings or {to, rel} maps), priority (int, breaks ordering ties). Every other key is a field for the kind to validate. Scalars coerce where obvious (needs: api means [api]).

Ids come from filenames: lowercase [a-z0-9-], / for namespaces — enforced so plans survive case-insensitive filesystems.

kumihimo.yaml

format: 1
plan: API Guard
description: One paragraph of what this plan is.
kinds:
  from: engineering        # optional pack; omit to define everything here
  task:                    # extend or define kinds
    fields:
      component: {type: str}
    # template: inline Jinja2 or a path under the plan root
compile:
  strategy: grouped        # or linear
  preamble: |
    Prepended to every braid.
  epilogue: |
    Appended to every braid.
  diagram: true            # embed the Mermaid overview
  # cord: my-cord.j2       # replace the whole document wrapper

Field spec keys: type (str | int | bool | list | choice), options (for choice), required, default.

view.yaml

layout:
  api-endpoints: {x: 40, y: 200}

Integers, sorted keys, flow-style — a layout shuffle is a two-line diff. Semantics never live here; deleting the file costs you an arrangement, nothing more.

Fidelity guarantees

Untouched files are never rewritten. Written files keep frontmatter comments, key order, quoting, newline style (LF/CRLF), and BOM; bodies are verbatim. One documented normalization: block-sequence indentation in a file an operation actually edited settles to the canonical two-space-dash style.