feat(vision): parse:png drawn decorators — colors, inertia, evolve, pipelines (3/3) - #48
Open
formicoidea wants to merge 2 commits into
Open
feat(vision): parse:png drawn decorators — colors, inertia, evolve, pipelines (3/3)#48formicoidea wants to merge 2 commits into
formicoidea wants to merge 2 commits into
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
pipelinetype (a band on an anchor is rejected with a warning);inertiamirrored ontoevolvesTo[].inertiawhere the renderer draws the wall.resolveColorknows hex + palette only; CSS names silently fell back to black).validateComponentruns on every projected component; refusals surface asrender-validity:warnings (notvalidateMap, 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