Say why in terms a reader outside this project can use

Three comments cited internal governance by number — a ruling index and an open
question id — in a public repo where neither resolves to anything. The reasoning
they carried is worth keeping and is restated on its own terms: a companion whose
absence lets write verbs accept work nothing performs, and a withheld verb list
whose exposure is a live product question rather than a settled one.

This repo has shipped that mistake before. An internal reference in public source
reads as a citation and is a dead end, and it tells a stranger about our process
instead of about their software.
This commit is contained in:
mvschwarz committed 2026-08-03 02:39:31 -07:00
1 parent d125814064
commit e4ec67c230
3 files changed
+4 -4

No files matched your search

+1 -1
View File
@@ -20,7 +20,7 @@
"--bundle",
"{{root:project}}"
],
"_note": "The renderer the write verbs enqueue for. Without it, stabilize and cut-retry ACCEPT work that nothing ever performs: the verb returns ok, a real marker lands on disk, and no cut is ever rendered. That is Ruling 16's third rung — it defeats both the verbs-answer check AND the data-changed-on-disk check, because the write genuinely happens and only the EFFECT is absent. Declared so the box starts it WITH the provider instead of someone remembering to."
"_note": "The renderer the write verbs enqueue for. Without it, stabilize and cut-retry ACCEPT work that nothing ever performs: the verb returns ok, a real marker lands on disk, and no cut is ever rendered. That is the failure mode worth naming, because it defeats both of the obvious checks — the verbs answer AND the data really changes on disk — while the product stays inert. Declared so the box starts it WITH the provider instead of someone remembering to."
}
]
},
+1 -1
View File
@@ -58,7 +58,7 @@
"/api/validate-audio",
"/api/validate-export"
],
"_verbs_note": "THIS LIST IS DELIBERATELY 36 OF THE 43 VERBS THIS FILE ANSWERS, AND THE GAP IS NOT AN OVERSIGHT. Withheld: /api/note, /api/note/done, /api/note/flush, /api/note/reconciled, /api/receivers, /api/reveal-file, /api/shell-mtime. The first four reach `execFile(\"rig\", [\"queue\",\"create\", ...])` — live at export-server.mjs:459, :497 and :534 — so declaring them lets a Studio surface inject work into the rig's coordination system. /api/reveal-file runs `open -R`, which is macOS Finder and meaningless on the Linux boxes we ship to. THE CHOICE IS BEHAVIOUR-PRESERVING, WHICH IS THE POINT: on a multi-provider box (host + video + cutdown, i.e. every deployed studio) these seven ALREADY do not route today, because no app declares them and studio.mjs's sole-provider fallback needs exactly one provider. Declaring them here would ENABLE something currently unreachable — a policy change smuggled inside a format migration. A migration changes where a fact is written, never what the product does. THE SCOPE QUESTION IS GENUINELY OPEN and is NOT settled by this file: OQ-5 excluded the note verbs, but it was ruled under the threat model that Ruling 15 later RETRACTED, and that retraction says rig-injection is a FEATURE on a trusted box. So the exclusion rests on a withdrawn premise and the inclusion has never been ruled on its own merits. Routed rather than decided here.",
"_verbs_note": "THIS LIST IS DELIBERATELY 36 OF THE 43 VERBS THIS FILE ANSWERS, AND THE GAP IS NOT AN OVERSIGHT. Withheld: /api/note, /api/note/done, /api/note/flush, /api/note/reconciled, /api/receivers, /api/reveal-file, /api/shell-mtime. The first four reach `execFile(\"rig\", [\"queue\",\"create\", ...])` — live in export-server.mjs — so declaring them would let a Studio surface inject work into the agent system that runs the box. /api/reveal-file runs `open -R`, which is macOS Finder and meaningless on the Linux boxes this ships to. THE CHOICE IS BEHAVIOUR-PRESERVING, WHICH IS THE POINT: on a box running more than one provider these seven ALREADY do not route, because no app declares them and the runtime's single-provider fallback needs exactly one provider. Declaring them here would ENABLE something currently unreachable — a policy change smuggled inside a format migration. A migration changes where a fact is written, never what the product does. Whether these verbs SHOULD be exposed is a live product question and this file is not where it gets decided.",
"supplies": [
"ffmpeg",
"ffprobe"
@@ -26,8 +26,8 @@ test("the cut lane travels with the provider that ships it", () => {
"a declared companion whose file is absent is refused at boot, not skipped");
// The write verbs ENQUEUE; this process PERFORMS. Without it they accept work
// nothing ever does — the verb returns ok, a real marker lands on disk, and only
// the product is inert. Ruling 16's third rung, which defeats both the
// verbs-answer check and the data-changed-on-disk check.
// the product is inert — a failure that defeats both of the obvious checks,
// because the verbs answer AND the data really changes on disk.
assert.ok(lane.args.includes("{{root:footage}}") && lane.args.includes("{{root:project}}"),
"the lane needs both roots bound or it watches nothing and renders nowhere");
});