Skip to content

The ninth article, and the two shorts that go with it - #72

Merged
peopleworks merged 2 commits into
mainfrom
length-article
Aug 24, 2026
Merged

The ninth article, and the two shorts that go with it#72
peopleworks merged 2 commits into
mainfrom
length-article

Conversation

@peopleworks

Copy link
Copy Markdown
Owner

The one story today produced that is worth telling.

The article

EN"My AI detector scored a passage 94 out of 100, and I made it refuse to say anything"
ES"Mi detector de IA le puso 94 sobre 100 a un pasaje, y le prohibí decir nada"

It is built on the shape of the calibration corpus, not on the fix. Ninety texts, shortest 662
words, median 2,772, nothing below 600 — so every verdict about a pasted paragraph was extrapolation
onto a population the corpus does not contain. Last week's window study supplies the direction: 0 of
32 flagged whole, 6 of 32 as excerpts of the same writing, with the control row that rules out
composition and leaves length.

Then the part that makes it publishable: the fix was not a better model, it was to say less.

Three things it is careful not to say

Each is the sentence an editor cuts first, and each would hollow the piece out:

  1. That this makes the tool more accurate. It makes it quieter.
  2. That it fixes a 900-word essay. It does not; that is still far below the corpus median.
  3. That this is a flaw in AI detection generally. It is ours, published by us, which is the only
    reason it is worth reading.

It closes on the version that travels outside the niche — a threshold is valid over the population
it was fitted on, and nowhere else
— and on the honest note that publishing the method is what made
the defect findable, by me, a year later, reading my own numbers with a different question.

Verified against our own linter

Score Signals Burstiness Words
EN 0/100 0 0.59 1,588
ES 0/100 0 0.60 1,647

The English first pass scored 6/100 — three empty intensifiers and three mid-sentence bolds — and was
corrected before the HTML was generated, which is the same gesture as the sixth and eighth articles.

The cover is plotted, not drawn

social/length-story-cover.png: the ninety texts at their real word counts and real scores,
measured by running the shipping engine over each one. The floor, the threshold and the 66-word
passage are all in their true positions.

The empty region on the left is not a stylistic choice. The corpus has nothing there, and that
emptiness is the entire argument. No words to translate beyond the label, so it serves both editions.

Also here: the eighth article's platform copy

It had a briefing block and no posts — no X, no LinkedIn, in either language. It publishes
tonight, so that gap is filled in this PR: X and LinkedIn, EN and ES, keeping the negation in front
where the briefing asks for it.

Publishing order

Ninth after eighth, and linked from it. The pair tells one story — find the defect, fix it — and
each half is weaker alone. Worth putting through the committee first: it makes a claim about
measurement, and it is better that Fable and Copilot try to knock it down than a stranger.

🤖 Generated with Claude Code

https://claude.ai/code/session_015PEbbiYSNPw7jE3LrPNhyF

peopleworks and others added 2 commits August 24, 2026 16:10
…t did

The one story today produced that is worth telling, and it is the counter-intuitive
one: my own detector scored a 66-word passage 94 out of 100, and I made it refuse
to say anything about it.

The article is built on the shape of the calibration corpus rather than on the
fix. Ninety texts, shortest 662 words, median 2,772, nothing below 600 — so every
verdict about a pasted paragraph was extrapolation onto a population the corpus
does not contain. The window study from last week supplies the direction: the same
writing flags 0 of 32 whole and 6 of 32 as excerpts of itself, with a control row
that rules out composition and leaves length.

Three things it is careful not to say, because each is the sentence an editor cuts
first: that this makes the tool more accurate (it makes it quieter), that it fixes
a 900-word essay (it does not), and that this is a flaw in AI detection generally
(it is ours, published by us, which is the only reason it is worth reading).

It ends on the version that travels outside the niche — a threshold is valid over
the population it was fitted on and nowhere else, and almost nobody writes down
what theirs was — and on the honest note that publishing the method is what made
the defect findable, by me, a year later, reading my own numbers.

Both editions pass our own linter at 0/100 with no findings, burstiness 0.59 and
0.60. The English first pass scored 6 for three intensifiers and three
mid-sentence bolds, and was corrected before the HTML was generated.

The cover plots the ninety texts at their real word counts and real scores,
measured by the engine that ships. The empty region on the left is not styled: the
corpus has nothing there, which is the whole argument.

Also here, and missing until now: the platform copy for the eighth article, which
had a briefing block and no posts. It publishes tonight.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015PEbbiYSNPw7jE3LrPNhyF
Two shorts for the ninth article, both languages, everything ready except the
narration itself — that needs an ElevenLabs key, which is not mine to use.

Short 13 is the one to lead with. The 94 is grey, and that grey is the whole
piece: a detector that scores a passage 94 out of 100 and then declines to say
anything about it is the opposite of what the category does. If a render ever
comes out with that number in red or green, it is wrong — green says clean, red
says guilty, and what the product does there is keep quiet.

Short 12 is the assistant's own turn, at the foot of a submitted essay, in a
chat bubble that visibly does not belong to the document. It does not need to be
explained that the line came from somewhere else; it looks like it came from
somewhere else. The sentence that cannot be cut is that this says nothing about
who writes well — it is the one rule in the catalogue about the file rather than
the style, and that is what separates it from a tool that accuses.

The interesting change is in how they are built. The GUION says to narrate
first, because animation delays are absolute seconds and writing the HTML first
ends in a short that finishes in silence. These two put the delays in FRACTIONS
of a --dur variable instead, which works because cue-times.mjs already assumes a
roughly constant speaking rate: it spreads the measured duration across the words
of the script. So the relative position of every phrase is known without hearing
anything, and only the total is missing. After narrating, one number per file.

Three things only a snapshot could have caught, and all three were real:

  - the "SIN VEREDICTO" stamp lost its centring, because its keyframe rewrote
    the whole `transform` and dropped the translateX(-50%) it was positioned with;
  - the strike-through ran to the edge of the canvas, because its containing
    block was the row and not the sentence;
  - the closing card had under three seconds on screen, against the ~3.4 the
    earlier shorts give it.

I wrote a snap tool for that and then deleted it: the kit already has one, and
two tools with the same name is how a repository grows a second source of truth.
The GUION now says to use the kit's with a `t` larger than the total duration,
which is exactly the mistake I made first — at t=26 on a 28-second short the
closing card has not entered yet, and it reads as missing rather than as late.

Scripts are 56 to 61 words, so 24 to 27 seconds. Back in the range of shorts 1-7
rather than the 29-40 of 8-11.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015PEbbiYSNPw7jE3LrPNhyF
@peopleworks peopleworks changed the title Write the ninth article: the tool that answers fewer questions than it did The ninth article, and the two shorts that go with it Aug 24, 2026
@peopleworks

Copy link
Copy Markdown
Owner Author

Added: shorts 12 and 13

Both languages, everything ready except the narration — that needs an ElevenLabs key, which is yours.

Short 13 — 94/100, y sin veredicto is the one to lead with. The 94 is grey, and that grey is the whole piece: a detector that scores a passage 94 and then declines to say anything is the opposite of what the category does. If a render ever comes out with that number in red or green, it is wrong.

Short 12 — the assistant's own turn, in a chat bubble at the foot of a submitted essay that visibly does not belong to the document. The sentence that cannot be cut: it does not say who writes well.

What changed in how they are built

The GUION says to narrate first, because delays are absolute seconds. These two put them in fractions of a --dur variable instead — which works because cue-times.mjs already assumes a roughly constant speaking rate and spreads the measured duration across the words. The relative position of every phrase is known without hearing anything; only the total is missing.

So: narrate, then set one number per file.

node narrate-all.mjs short12-residencia-es short12-residencia-en short13-longitud-es short13-longitud-en
# put each printed duration into --dur at the top of its HTML
node build-short.mjs scenes/short13-longitud-es.json

Three things only a snapshot caught

  • the stamp lost its centring — its keyframe rewrote the whole transform and dropped the translateX(-50%) it was positioned with;
  • the strike-through ran to the canvas edge, because its containing block was the row and not the sentence;
  • the closing card had under three seconds on screen against the ~3.4 the earlier shorts give it.

I wrote a snap tool for this and then deleted it — the kit already has one, and two tools with the same name is how a repo grows a second source of truth. The GUION now points at the kit's, with a warning to pass a t larger than the total duration: at t=26 on a 28-second short the closing card has not entered yet, and it reads as missing rather than as late. That was my first mistake with it.

Scripts run 56–61 words → 24–27 seconds, back in the range of shorts 1–7 rather than the 29–40 of 8–11.

@peopleworks
peopleworks merged commit 21e39a1 into main Aug 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant