Finding — we told the other house a capability did not exist, and it does¶
1 · The statement, verbatim¶
UCCA-CROSSING-ENGINE-SCOPE-ANSWER-01 §2, authored this house, carried to RTOpacks
2026-08-25:
The engine does not produce video, and never has.
There is no encoder, no renderer, and no speech synthesis anywhere in it. We searched every source tree in this house for any media pipeline and found none.
What exists is a field named
video_script. Despite the name, it is the field the module body text comes back in.
2 · What is true, what is false, and the line between them¶
True. There is no encoder and no speech synthesis. Nothing in this engine produces a media artefact. The search that produced the first paragraph was a search for media pipelines and it correctly returned nothing. Taken as a claim about video, the sentence stands.
Unlucky but defensible. "No renderer." renderer/ exists and is tracked. It renders text and
PDFs, not media. The word was wrong; the meaning was not.
False. "What exists is a field named video_script." Singular, exclusive, and wrong. What
also exists, correctly named and doing exactly what its name says:
| site | what it is |
|---|---|
generator/video_script.py:10 |
generate_video_script() — "Creates engaging 45-60 second sales scripts for courses." |
renderer/video_script.py |
wraps it in the BaseRenderer interface as VideoScriptRenderer |
renderer/router.py:21 |
registers it: "video_script": VideoScriptRenderer |
backend/jobs/poller.py:147 |
requests it |
3 · The part that makes it material — it is not optional¶
# backend/jobs/poller.py:147
order_spec = {
"output_formats": ["pdf", "video_script", "marketing_copy"],
...
}
A repo-wide sweep for output_formats returns exactly two hits: this line, which writes it,
and renderer/router.py:35, which reads it with a default. There is no third reader, no job
parameter, no configuration, no flag. On this path the list is a constant, and render_all
iterates it and invokes VideoScriptRenderer unconditionally.
RTOpacks did not withdraw video. RTOP-CROSSING-VIDEO-WITHDRAWAL-01 withdraws video-script
generation from the engine's remit — its title, its §1. That is the name of a thing this engine
demonstrably contains.
And this house wrote, in the same section as the misstatement:
Your observation was correct. A script is produced on every unit with no way to decline it.
We conceded the observation and attributed it to the misnamed body field. The observation was independently true of the real video-script generator, which is hardcoded and undeclinable on the path above. RTOpacks was more right than we told them, and about a different thing than we thought they meant.
4 · What this does to UCCA-FINDING-VIDEO-SCRIPT-NAMING-COLLISION-2026-08-25¶
That finding's central claim was that a field name outlived its referent — a fossil. The baton
(TM-2026-08-25-C §7) had already corrected it once: the name is shared with a live feature.
This finding corrects it a second time and further: the shared feature is not merely live, it is
mandatory on its path, and this house had already told the other house it did not exist before
either correction was made.
The naming-collision finding is not to be rewritten. It was relayed to Alex and is cited in three batons; it is part of the record of how this was reasoned. It files as authored, with this document as its correction. That is the same discipline applied to filed crossings, applied to our own findings.
5 · The bound on all of the above, stated before anyone acts on it¶
It is not proved that backend/jobs/poller.py executes in the deployed spine. The package is
imported and the list is hardcoded; the call path from the deployed reasoner to this poller was
not traced at this seat, and TM-2026-08-25-C's own verification block flags the identical gap.
So the honest claim is: the engine contains an unconditional video-script generator on a path this house has not proved is dead. Not "it runs on RTOpacks jobs." The difference decides how severe this is, and it is one read.
Owed by Alex, before either consequence below can be ruled: trace whether
backend/jobs/poller.py is reachable in the deployed spine, or is legacy. Report the call path or
its absence. A read, not a repair.
6 · Two consequences, neither proposed here¶
- A correction crossing may be owed. A false statement of fact crossed the fence under this house's name. Whether it is corrected, and in what form, is Tim's ruling alone — and FENCE-PROTOCOL-01 binds either way: filing precedes relay, one crossing in flight, Tim is the only relay. Nothing is drafted here and nothing crosses.
- The hardcoded
output_formatslist is an ADR-0002 question independent of the fence. A constant list of output formats sitting in the throat is domain-shaped knowledge in a place the gate is supposed to be neutral — and if the withdrawal is ever executed as RTOpacks intended it, this line is where it lands.
7 · The lesson, and it is the same one¶
§2's first paragraph was produced by a real search, honestly run, that returned nothing —
because it searched for encoders, renderers and TTS libraries, and there are none. The second
paragraph then asserted exclusivity — "what exists is a field" — which the search had never
tested. A negative result was reported as an exhaustive one.
That is the same defect as the grep that nearly took Unit B into the marketing path, and the same defect as the attempt counter that could not tell two passes apart: a control that answers a narrower question than the one being asked, reported as though it answered the wider one. The engine now has three instruments that replace inference with record. This house's own claims about itself still do not, and this is the second time in two days that the gap was closed by luck.
TM-2026-08-25-C §9 item 10 — the generated structural census — is the entry that makes the next
one a report instead of a coincidence. This finding is the third argument for it in two days.
End of finding. Open. §5's read is owed before §6 is ruled.