This repo is already complete for official VDJScript name searchability. The remaining work is behavior depth: turning official names, bundled-resource hints, shipped XML examples, and local observations into reproducible, source-labeled guidance.
Status (2026-07-22): frozen snapshot. The active queue is TODO.md; do not refresh, reorder, or re-scope this file until a listed area actually completes. It remains useful as the map of evidence tiers and hardware gates.
Addendum (2026-07-29) — two listed areas completed since the freeze; read these over the rows below rather than the rows themselves:
- Verb existence is settled. The verb table extracted from the binary is the complete verb
set (1,028 records;
just verb-table <name>; Evidence Standards rule 1). The "Button Editor hidden candidates" row's counts (14 catalog-only, 21 runtime-string) are superseded: existence for every candidate is now a membership test, and the 37 hidden verbs are all real. What remains open for them is behavior only. - The factory-mapper candidates this file queues for probing are resolved:
browser_filter,browser_search, andnoneare absent from the verb table — not verbs (rule 1b).
Use this file as background when choosing an evidence pass. Record detailed run results in VDJScript Local Test Tracker, then promote stable conclusions into VDJScript Verbs, VirtualDJ Reference, or the relevant topical file.
| Area | Current state | Next completeness move |
|---|---|---|
| Official VDJScript names | See Official VDJScript Coverage Audit for current counts. | Keep count consistency automated and refresh when the official appendix changes. |
| Official behavior depth | See Official VDJScript Coverage Audit for the current formal Needs local test gap. |
Test no-hardware helpers first, then hardware helpers when matching devices are available. |
| Button Editor hidden candidates | 14 catalog-only names, 21 stricter runtime-string candidates, and 37 flag1-hidden compiled taxonomy rows outside the official appendix | Use Undocumented VDJScript Candidates to keep them discovery-only until local behavior or stronger source evidence exists. |
| VDJScript grammar | Resolved: ternary/& precedence, nested-ternary associativity, and backtick-argument rules were tested via the Grammar Battery on v2026-m b9482 (2026-07-14) and promoted into VDJScript Syntax Evidence |
Re-run Reference - Grammar Battery Test only if a new VirtualDJ build changes parsing behavior. |
| Pad-page examples | Canonical pad pages exist for slot FX, ColorFX, and read-only sampler behavior; container schema documented in Pad Page XML | Resolve that doc's Open Questions (menu-DSL semantics, custompadsmode trigger, pressure/right_click) with small local probes. |
| Skin SDK | Broad coverage incl. the waveform family (Skin Waveforms), root-level support elements, and browser styling children; the XML element inventory reports zero undocumented elements (just find-xml-elements --undocumented) |
Finish visual type passes with small canary skins; verify the Inference-labeled browser-styling semantics (<active> trigger, <buttons> under <plugins>) with canaries. |
| Mappers | Format rewritten from real files; four working mappers in examples/Mappers/Local gated by tools/lint_mappers.py; device-definition schema official-doc-derived |
Author a minimal custom MIDI device definition + mapper pair and load-test it (a SIMPLE_MIDI device context already exists locally); probe the factory-mapper verb candidates (browser_filter, browser_search, none). |
| FX behavior | Good slot, ColorFX, PadFX, and stem-FX model notes | Add repeatable FX introspection, bank save/load, release-FX, and plugin-command passes; goal is a per-effect slider table for the native effects catalog. |
| Application internals and stems | Useful macOS-first notes and stem sidecar format documentation | Convert known unknowns into fixture-backed checks when safe. |
Use these labels when deciding whether a topic is ready to promote:
| Tier | Meaning | Good destination |
|---|---|---|
| Searchable | Name or topic is present with conservative source labels | VDJScript Verbs.md compact section or topical note |
| Fixture-ready | A safe local repro asset or clear manual script exists | tests/ plus tracker row |
| Locally observed | Build, setup, steps, and observed result are recorded | VDJScript Local Test Tracker.md |
| Curated | Behavior is useful enough for copyable examples and caveats | VirtualDJ Reference.md, topical docs, canonical pads |
| Hardware verified | Device-specific helper tested on matching hardware | Mapper/controller docs and hardware-specific rows |
These are the best next tests because they do not require new controller hardware.
| Priority | Topic | Fixture or source | Promotion target |
|---|---|---|---|
| 1 | dualdeckmode_decks |
Reference - Dual Deck Mode Test.xml | Test any visible dual-deck pair/controller context. |
| 2 | stem_volume, sampler_inputgain, pad-page split/favorite helpers |
Reference - Hidden Button Editor Tests.xml | Decide which catalog-only names deserve normal user-facing guidance. |
| 3 | is_colorfx, effect_beats_sliderindex |
Reference - Hidden Button Editor Tests.xml | Improve effect selected-state and beat-slider docs if behavior is useful. |
| 4 | FX introspection sweep: remaining native effects plus video/transition targets |
Reference - FX Introspection Test.xml | Partially complete: the fixture passed on v2026-m b9482 (deck FX slot 1, Backspin), both overloaded get_effect_slider_default forms are resolved, and a per-effect map has started in Effects Engines.md (Backspin done). Remaining: sweep the rest of the native effects catalog and repeat for video and transition targets; see the FX Helpers rows in VDJScript Local Test Tracker.md. |
| 5 | effect_bank_save / effect_bank_load |
Reference - FX Bank Test.xml | Document restored effect names, active state, sliders, and deck scope. |
| 6 | effect_releaseslider*, is_releasefx |
Reference - Release FX Test.xml | Separate release-FX behavior from normal deck FX. |
| 7 | effect_command for BeatGrid only |
Reference - BeatGrid Command Test.xml | Keep plugin-command examples plugin-specific. |
| 8 | flip_*, setting_if_unchanged, masterbpm, master_beat_num, all_decks, combine_query |
Undocumented VDJScript Candidates and hidden-candidate tracker rows | Add careful probes before any user-facing recommendation. |
system is intentionally not in the normal no-hardware queue. Revisit it only if an official example, bundled-resource context, or clearly harmless parameter appears.
These should remain compact and conservative until the matching device or stock mapper context is available.
| Hardware/context | Helpers |
|---|---|
| Display-capable controller | controllerscreen_deck, controller_battery |
| Gemini controller display | gemini_waveform_zoomlevel |
| Phase hardware | phase_movement, phase_position, phase_active |
| Numark V7 | v7_status |
| Pioneer RZX | rzx_touch, rzx_touch_x, rzx_touch_y |
| DJC-family controller | djc_shift, djc_button, djc_button_popup, djc_button_slider, djc_button_select, djc_panel |
| Denon platter/display hardware | denon_platter |
| Rane or related hidden candidates | assign_related_controller, rane_motor_enable, rane_timecode, rane_timecode_enable, Rane screen helpers |
The broad skin docs are useful, but the next completeness pass should be fixture-led:
| Area | Next fixture |
|---|---|
visual type variants |
Small canary skin covering color, waveform, spectrum, cover, and documented source/action rules. |
| Placeholder substitution | Extend the existing placeholder condition canary only when a new rule is suspected. |
| Dynamic colors | Keep color, border, text, and skin-defined-color behavior in separate canaries. |
| Menus and dropzones | Add minimal canaries before documenting any trigger or drag behavior beyond official surfaces. |
| Built-in skin parser quirks | Keep raw built-in skins as shipped; normalize only separate fixtures. |
Run these after documentation or fixture edits:
just check # pads/skins/mappers linters, verb-index + inventory staleness gates,
# reference status checker, git whitespace checkAfter adding or documenting skin/pad XML elements, regenerate the coverage report:
just inventory # refreshes docs/skin-xml-inventory.json
just verb-index # rewrites docs/vdjscript-verb-index.json after verb-doc editsSee tools/README.md for the full tool matrix and the new-VirtualDJ-build refresh procedure.
The status checker is intentionally offline. Use the live official appendix only when intentionally refreshing the coverage audit.