Skip to content

feat(vision): parse:png drawn decorators — colors, inertia, evolve, pipelines (3/3) - #48

Open
formicoidea wants to merge 2 commits into
split/text-lintfrom
split/vision-decorators
Open

feat(vision): parse:png drawn decorators — colors, inertia, evolve, pipelines (3/3)#48
formicoidea wants to merge 2 commits into
split/text-lintfrom
split/vision-decorators

Conversation

@formicoidea

Copy link
Copy Markdown
Owner

PR 3/3, stacked on the lint PR (retarget after it merges).

Scope

Vision intermediate gains four OPTIONAL per-node fields (color, inertia, evolvesTo, pipeline), each guarded by explicit visual-evidence prompt rules (never infer).

Review majors addressed

  • Render-valid projections: pipeline band → canonical pipeline type (a band on an anchor is rejected with a warning); inertia mirrored onto evolvesTo[].inertia where the renderer draws the wall.
  • Colors: prompts demand HEX (resolveColor knows hex + palette only; CSS names silently fell back to black).
  • Output oracle: validateComponent runs on every projected component; refusals surface as render-validity: warnings (not validateMap, whose map-level advisories are properties of the source image).

Proof run on the dense color-coded metaverse map: 30/30 colors, 54 relations.

🤖 Generated with Claude Code

…evolve arrows, pipeline bands

Review-hardened vision enrichment (PR 3/3 of the lint/deterministic
split). The intermediate gains four OPTIONAL per-node fields (color,
inertia, evolvesTo, pipeline {evoStart, evoEnd}), each guarded by
explicit visual-evidence prompt rules (never infer), and the projection
produces RENDER-VALID maps:

- a pipeline band promotes the node to the canonical 'pipeline' type
  (validateComponent refuses the geometry elsewhere); a band on an anchor
  is rejected with a warning;
- component inertia is mirrored onto evolvesTo[].inertia, where the
  renderer draws the wall;
- colors are demanded as HEX (resolveColor knows hex and the palette
  only — a CSS name silently fell back to black);
- output oracle: validateComponent runs on every projected component and
  surfaces refusals as render-validity warnings (not validateMap, whose
  map-level advisories are properties of the source image).

Proof run on 'Wardley map of the metaverse' (dense, color-coded): 30/30
component colors captured, 54 relations.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The prompt demands #rrggbb but nothing enforced it: a model answering
red was forwarded verbatim and resolveColor repainted the component
black with no warning (adversarial-review reserve on PR #48). The guard
lives in projectToWardleyMap, not in the extraction schema — the schema
is all-or-nothing and a disobedient color must not discard the whole
map. Non-hex colors are dropped with a warning.

Also marks the plug-in point for the planned deterministic color
sampler: once the dot pixel location is known, reading the PNG pixel
needs no model at all.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant