Photoshop Killer
Layered image editing, wired from convolution and compositing.
The wiring ∘ feeds ⊗ parallel
This is the compiler’s reading of how the gifts compose into one app. Read left to right: each stage feeds the next (∘). A bracketed group (⊗) is parallel — its parts don’t depend on each other.
decode⊗metadata read- ∘
crop mask- ∘
pixel transform- ∘
kernel convolve- ∘
layer composite- ∘
encode
Composition term: encode ∘ layer-composite ∘ kernel-convolve ∘ pixel-transform ∘ crop-mask ∘ (decode ⊗ metadata-read)
⊗ marks a parallel-independent group: decode, metadata read run in either order — neither consumes the other’s output. both read the same source file, neither consumes the other's output; re-ordering is order-independent (a trivial braid), so ⊗ is earned per the falsifier. This is the ONLY parallel join in the batch core (recipe E.1).
2 declared gaps — named below, not hidden.
CONSTRUCTIBLE-WITH-2-NAMED-GAPS
The declared gaps 2
A gap is a piece the compiler knows it needs but doesn’t yet have a witnessed gift for — honest derive-first work, declared rather than hidden. The app is constructible; these are the parts you’d build.
-
pk.kernel-convolvepure-kernelnull-witness pure-kernel (no gift in the roster witnesses it); derive-first, gifts-8-reference-apps line work. Declared, not hidden.
-
pk.layer-compositepure-kernelnull-witness pure-kernel (fold N layer-rasters under a blend fn); derive-first. Declared, not hidden.
Witness gifts
No pipe stage in this schematic is witnessed by a shipped gift yet — the wiring is the compiler’s declared plan, and the witnessing gifts are still to come. Declared, not hidden.
The gifts are real and free; the wiring is a plan. Take the parts and build the app — as the schematic reads it, a variation, or something we’d never have compiled.
Built it, found a gap we missed, or think the wiring is wrong? Shea wants to hear it — success stories, questions, and corrections all land in the same inbox: