← DesignlyCONTENT HISTORY

Update to Designly

Snapshot Sep 30, 2026 · 23:14 UTC · version 4.4.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "edit-sanitizer",
  "description": "Pre-execution sanitizer for annotation-guided edits, inpainting, copy corrections, local retouching, and object replacement. This skill should be used when a user points at or annotates part of an existing image and expects a bounded change without collateral redesign, or when edit scope, mask geometry, exact copy, or protected regions must be validated before image execution.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 392
    },
    {
      "relative_path": "assets/large-logo.svg",
      "size_in_bytes": 704
    },
    {
      "relative_path": "assets/small-logo.svg",
      "size_in_bytes": 704
    }
  ],
  "skill_md_contents": "---\nname: edit-sanitizer\ndescription: Pre-execution sanitizer for annotation-guided edits, inpainting, copy corrections, local retouching, and object replacement. This skill should be used when a user points at or annotates part of an existing image and expects a bounded change without collateral redesign, or when edit scope, mask geometry, exact copy, or protected regions must be validated before image execution.\n---\n\n# Edit Sanitizer\n\nEdit Sanitizer is the fail-close boundary between user feedback/annotations and image-edit execution. It exists because generative image editors may reinterpret more of a source image than the user intended. Do not send a local-edit request directly to `prompt-compiler` until this Skill has produced a `ready` EditContract.\n\n## Core rule\n\nConvert feedback into the smallest explicit mutation that can satisfy the request.\n\nDo not treat a scribble, arrow, selection, bounding box, or phrase such as `fix this` as self-explanatory when more than one plausible target exists.\n\n## Workflow\n\n1. Identify the approved source checkpoint\n2. Resolve annotation coordinates against the source dimensions\n3. Map the annotation to one semantic target\n4. Split user feedback into atomic requested mutations\n5. Reject or veto unrelated global restyling when the request says `only`, `just`, `this area`, or otherwise implies a bounded edit\n6. Lock crop, canvas, perspective, identities, exact text, lighting, and unaffected composition unless the user explicitly targets one of them\n7. Derive protected regions from the complement of the editable target plus semantic locks\n8. Set a conservative mutation budget\n9. Require Arabic review for Arabic copy corrections\n10. Produce a typed EditContract\n11. Only when status is `ready`, forward the contract to `prompt-compiler`\n\n## Annotation handling\n\nTreat annotation geometry and semantic intent as separate evidence:\n- `bbox`: validate positive area and source bounds\n- `polygon`: require a valid polygon around the intended area\n- `mask_ref`: require an actual mask reference\n- `semantic`: require one clearly identifiable object or text region\n- `normalized`: convert coordinates to native pixels before execution\n\nIf two plausible targets have similar confidence, return `clarify` rather than guessing.\n\n## Drift prevention\n\nEvery retry starts from `source_checkpoint`, which must be the last approved source.\n\nNever chain a second corrective edit from a failed or visibly drifted render.\n\nMaximum edit loop: 3 attempts. If the same defect persists or collateral changes grow, stop and return the evidence rather than continuing destructive edits.\n\n## Bounded-edit vetoes\n\nVeto execution when:\n- a local edit also asks to restyle the whole image\n- there are multiple unrelated mutations that should be separate edits\n- the target is outside the source or has zero area\n- the annotation cannot be mapped confidently\n- exact replacement copy is missing for copy correction\n- the retry source is not the approved checkpoint\n\n## Preservation language\n\nDo not promise literal pixel identity from a generative editor. Require material stability outside the edit target and validate collateral changes after execution.\n\n## Output\n\nReturn the EditContract plus a short execution verdict:\n- `ready`: may proceed to Prompt Compiler\n- `clarify`: ask one target/scope question, do not execute\n- `reject`: invalid geometry/source/copy contract, do not execute\n- `veto`: conflicting or over-broad mutation request, do not execute\n\n## Runtime helper\n\n```bash\npython3 ../../shared/scripts/sanitize_edit.py < edit-request.json\n```\n\n---\n\n## Cross-Skill Neural Connections & References\n\n### Peer & Downstream Skills\n- [Prompt Compiler](../prompt-compiler/SKILL.md) — Downstream consumer of sanitized EditContracts\n- [Manipulation Director](../manipulation-director/SKILL.md) — Boundary blending physics & light wrap\n- [Arabic RTL Director](../arabic-rtl-director/SKILL.md) — Text ligature verification on Arabic copy edits\n- [Visual QA](../visual-qa/SKILL.md) — Target accuracy & collateral drift verification\n- [Designly Director](../designly-director/SKILL.md) — Lead orchestrator and edit state manager\n\n### Schemas & References\n- [Edit Contract Schema](../../shared/contracts/edit-contract.schema.json) — Bounded edit schema\n- [Image Editing Guidance](../../shared/references/image-editing.md) — Editing rules\n- [Routing Graph](../../shared/contracts/routing-graph.json) — Mesh topology & feedback loops\n"
}

SHA-256: a479f9060c65bc5ac0bbfc40b481cb7fc36977086b538e2656073ac1a73a44ce