home/language/schema-guard-must-follow-exactly

SCHEMA GUARD (must follow exactly)

GPTClaudeGemini··112 copies·updated 2026-07-14
schema-guard-must-follow-exactly.prompt
METER: 4/4

TITLE
Bars 15–17 — Loop background + accented foreground stabs (continuation of Bars 10–14 plan).

INSTRUMENTS (EXACT)
Use these six instruments and no others:
[alto_flute, bass_clarinet, trumpet, violin, cello, double_bass].
Monophony per instrument (no chords).

### SCHEMA GUARD (must follow exactly)

* Allowed ops: `"add","subtract","mul","div"` (spelled exactly).
* All args are unsigned integers. To decrease a stream use `"subtract"`, never `add -k`.
* Every dimension must include at least one transform. For constants, use `[{"name":"add","args":[0]}]`.
* Valid `feature_name` values (only): `time, duration, pitch, velocity, numerator, denominator`.
* For every feature, include `numerator` and `denominator` dimensions with transforms `[{"name":"add","args":[0]}]`, and set seeds to 4 and 4.
* Return only a JSON object: `{"bars":[ <bundle for bar 15>, <bundle for bar 16>, <bundle for bar 17> ]}`.
  Each bar is a complete single-bar bundle with `bundle_name`, exactly six `features`, a `run_plan` of six entries (names match), and `created_feature_names`. No extra keys, no prose.

CONTINUITY & SOURCE MATERIAL (INTERNAL, DO NOT PRINT)
This section continues the Bars 10–14 technique (background loop + foreground stabs) adapted for three 4/4 bars (ticks per bar = 16). Keep recognizable continuity with your Bars 10–14 plan (motivic cells, interval flavor, registral roles), but vary details so it feels like a new paragraph.

ROLE SPLIT (GUIDE, NOT HARD LAW)

* Background loop layer (quiet, continuous-ish): double_bass + cello (+ optional bass_clarinet).
* Foreground stabs (short, accented, color): trumpet, violin, alto_flute (+ optional bass_clarinet sharing stabs sparingly).

REGISTER TARGETS

* double_bass: LOW anchor
* cello: LOW↔MID, bass_clarinet: LOW↔MID
* violin: MID, alto_flute: MID↔HIGH, trumpet: MID↔HIGH
  Avoid adjacent-instrument unisons on shared onsets; sparse octave doublings are fine.

DYNAMICS

* Background loop around mp ≈ 48 (gentle, steady).
* Foreground stabs around mf–f ≈ 92 (clearly brighter than the loop).
  Small per-note deviations (±6) allowed for shape; no big swells.
  When lowering velocity, use `"subtract"` (e.g., `subtract 2/4/6`)—never `add -k`.

PT REALIZATION — PRECISE TIMING & DURATIONS (applies to each of Bars 15, 16, 17)
Grid: 1/16 ticks; bar length = 16. Monophony is strict (no overlaps per instrument).

1. TIME

* Use only `{"name":"add","args":[k]}` with k ∈ {1,2,3,4}. No zeros. Onsets strictly increase.
* Background loop parts: choose an irregular cell (e.g., 2–3–1–2 …) producing N ∈ [5..9] onsets spread across the bar with ≤ 1/3 aligning with other instruments.
* Foreground stabs: N ∈ [2..5] onsets per bar per stab-instrument; prefer syncopation/off-beats.

2. DURATION

* Realized values must be in {1,2,3,4}.
* Let `s_min` be the smallest time step you used for that instrument in the bar; enforce MAX(duration) ≤ s_min.
* Background loop: mostly 2–4 ticks (occasionally 1), never exceeding the gap to the next onset.
* Foreground stabs: 1–2 ticks, never exceeding the gap.
* You may use `mul/div` but only with args in {2,3,4}. No 0 or 1 for `div/mul`.

3. PITCH

* `add` / `subtract` only (no mul/div).
* Stay within hard MIDI range; bias to the register targets above.
* Background loop: small moves (±1, ±2) with rare corrective leaps (±5, ±7, ±12) that immediately return to stepwise motion; net drift per bar in [−2..+2].
* Foreground stabs: choose color tones that form crunchy, non-triadic verticals against the loop; avoid exact pitch reuse on consecutive stabs for the same instrument.
* If decreasing pitch, use `"subtract"`—never `add -k`.

4. VELOCITY

* Background loop: near 48 with small stepwise changes (use `add`/`subtract` 1–4).
* Foreground stabs: near 92; brief terraces or tiny arcs allowed; keep clearly louder than the loop.

5. METER SEEDS (every feature, every bar)

* Seeds: `numerator=4`, `denominator=4`.
* Transforms for both are exactly `[{"name":"add","args":[0]}]`.

STRUCTURE OF THE RETURN
Return one JSON object with
`"bars":[ … ]` containing three bars (15, 16, 17).
Each bar is a full six-instrument bundle (4/4) following the schema guard and constraints above.

VALIDATION

* Per bar & per instrument: monophony (no overlaps) and no chords.
* Time: `add` only in {1,2,3,4}, strictly increasing; last note ends ≤ tick 16.
* Duration values in {1,2,3,4}; MAX(duration) ≤ s_min.
* Pitch add/sub only; within hard ranges.
* Velocity ranges respected (loop ≈48; stabs ≈92), with only unsigned args and `subtract` for decreases.
* Adjacent-instrument unisons avoided on shared onsets; sparse octaves OK.

---

This keeps your musical spec intact, but explicitly forbids the parser-breaking patterns (negative args, empty transform arrays, missing meter transforms) and nails the wrapper shape for multi-bar output.

fill the variables

This prompt has 4 variables. Pro fills them into a ready-to-paste prompt for you — no manual find-and-replace.

{"name":"add","args":[0]}{"name":"add","args":[k]}{1,2,3,4}{2,3,4}
Unlock with Pro →

when to use it

Community prompt sourced from the open-source GitHub repo sunsetsobserver/chain-of-thoughts (no explicit license). A "SCHEMA GUARD (must follow exactly)" style prompt — adapt the placeholders and specifics to your task. Imported as-is and not independently retested here, so check the output before relying on it.

tags

languagecommunitygeneral

source

sunsetsobserver/chain-of-thoughts · no explicit license