Skip to content

fix(examples): de-bait example variants + layout/composition headers#43

Merged
JonnyFi merged 1 commit intomainfrom
fix/debait-examples
Apr 22, 2026
Merged

fix(examples): de-bait example variants + layout/composition headers#43
JonnyFi merged 1 commit intomainfrom
fix/debait-examples

Conversation

@JonnyFi
Copy link
Copy Markdown
Owner

@JonnyFi JonnyFi commented Apr 22, 2026

Summary

Agents scanning variants/ read the sibling *-example.json files as "available templates to reuse" — even when we tell them in skills not to. The fastest path kept winning: swap copy in ops-console-example.json, rename, done. That's exactly how the recent Orbit E2E motion ended up looking like the HaniCare dispatcher UI.

This PR rearranges the surface so the signal is physical, not just documentary.

Changes

  • Move reference variants under variants/_reference/:
    • variants/example.jsonvariants/_reference/example.json
    • variants/ops-console-example.jsonvariants/_reference/ops-console-example.json
    • variants/quote-card-example.jsonvariants/_reference/quote-card-example.json
    • variants/stat-card-example.jsonvariants/_reference/stat-card-example.json
    • variants/walkthrough-ci-smoke.json stays put — it's CI infra, not a creative reference.
  • Add variants/_reference/README.md explaining what the folder is, why the underscore + subfolder, and pointing at the skill chain (composer-speccerlayout-synth / motion-synth).
  • Add REFERENCE IMPLEMENTATION docstring headers to every shipped layout module and motion composition:
    • engines/static/examples/advertorial.py, quote_card.py, stat_card.py
    • engines/motion/src/examples/OpsConsole.tsx, ProductMockup.tsx, Walkthrough.tsx, PhoneNotifications.tsx
  • Update docs and tests to the new paths: README.md, setup/SKILL.md, composer-speccer/SKILL.md, render.sh header comment, test/run-tests.sh.

Why

Two incidents surfaced the problem:

  1. A "wild" Supernova static was produced by a one-off PIL script because the agent didn't see a ready-made template and skipped layout-synth.
  2. An Orbit E2E motion was produced by pointing a variant at composition: "ops-console" because the example variant was right there at top level — lowest-friction path.

PRs #41 + #42 close the skill-chain and engine-error gaps. This one closes the visual/physical surface gap.

Test plan

  • npx adforge init <fresh-dir>variants/_reference/ + walkthrough-ci-smoke.json ship correctly.
  • templates/variants/_reference/README.md renders well on GitHub.
  • test/run-tests.sh still passes locally against the new paths (verified by lint; full run blocks on CI).

Part 3 of 3 in v0.3.3 (follows #41, #42). After merge: bump version + CHANGELOG + tag.

Agents scanning variants/ read the siblings as 'available templates to
reuse'. Moving the reference variants under variants/_reference/ (and
adding REFERENCE IMPLEMENTATION headers to every shipped layout module
and motion composition) makes the don't-copy-wholesale signal loud.

- Move variants/{example,ops-console-example,quote-card-example,stat-card-example}.json
  → variants/_reference/. walkthrough-ci-smoke.json stays in variants/
  because it's CI infrastructure, not a creative reference.
- Add variants/_reference/README.md explaining what's reference vs what's
  user content and pointing at composer-speccer + layout-synth / motion-synth.
- Add REFERENCE IMPLEMENTATION docstrings to advertorial, quote_card,
  stat_card, OpsConsole, ProductMockup, Walkthrough, PhoneNotifications.
  Each calls out that a new brand should invoke the synth skill rather
  than reuse the file.
- Update README.md, setup SKILL.md, composer-speccer SKILL.md, render.sh
  header comment, and test/run-tests.sh to the new paths.
@JonnyFi JonnyFi merged commit 1311ea0 into main Apr 22, 2026
1 of 2 checks passed
@JonnyFi JonnyFi deleted the fix/debait-examples branch April 22, 2026 10:50
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