diff --git a/Docs/Blog/PUBLICACION.md b/Docs/Blog/PUBLICACION.md index 7a9003b..9940ea7 100644 --- a/Docs/Blog/PUBLICACION.md +++ b/Docs/Blog/PUBLICACION.md @@ -1634,6 +1634,144 @@ leyendo mis propios números con otra pregunta en la cabeza. https://github.com/peopleworks/SignsofAI ``` +### X / Twitter — décimo artículo (EN) +``` +I put my AI detector inside Word. The first thing it did was refuse to answer. + +357 words, a real document. Score: 0/100. Underneath, instead of a conclusion: + + No verdict at this length. This text is 357 words. The boundary was measured + only on texts of 649 words and longer, so no verdict is given. + +It found six invisible characters anyway, because that is a fact about the file and +carries no threshold. + +And it cannot upload your document, because a task pane is a browser: the engine runs +there. Every other add-in in this category posts your text to an API. There is no API +here to post it to. + +https://github.com/peopleworks/SignsofAI +``` + +### X / Twitter — décimo artículo (ES) +``` +Metí mi detector de IA dentro de Word. Lo primero que hizo fue negarse a contestar. + +357 palabras, un documento real. Puntuación: 0/100. Debajo, en vez de una conclusión: + + Sin veredicto a esta longitud. Este texto tiene 357 palabras. La frontera se midió + solo sobre textos de 649 palabras o más, así que aquí no se da veredicto. + +Aun así encontró seis caracteres invisibles, porque eso es un hecho sobre el archivo y +no lleva umbral. + +Y no puede subir tu documento, porque un panel de tareas es un navegador: el motor corre +ahí. Cualquier otro add-in de esta categoría manda tu texto a una API. Aquí no hay API +a la que mandarlo. + +https://github.com/peopleworks/SignsofAI +``` + +### LinkedIn — décimo artículo (EN) +``` +The most requested feature for this project has been the same sentence for months: put it in Word. +It is there now. The first thing it did on a real document was decline to answer. + +WHAT HAPPENED + +357 words, open in Word. The pane read the document and returned 0 out of 100, and under the score, +instead of a conclusion: + +"No verdict at this length. This text is 357 words. The boundary was measured only on texts of 649 +words and longer, so no verdict is given — the score is neither evidence that a machine wrote this +nor evidence that a person did." + +The boundary this tool judges by, 30 out of 100, was measured on 296 documents written before 2022: +human by their dates, not by anyone's opinion. At that boundary it flags 2 of the 296, a false +positive rate of 0.7% with a 95% interval reaching 2.4%. The shortest of those documents is 649 +words. Below that length there is nothing the boundary was fitted on, so there is nothing to say. + +WHAT IT FOUND ANYWAY + +Six no-break spaces, with the codepoint, the count and every position. That is not a judgement about +prose and it carries no threshold, so it holds at any length. It is a fact about the file: those +characters are in it and typing does not produce them. + +The panel says the rest out loud, because a fact left to imply something is worse than an opinion: +this says nothing about who wrote the text, and it is not evidence of dishonesty. + +THE PART THAT MATTERS MOST + +Every other add-in in this category sends your document to a server, because their analysis is the +server. This one cannot. A task pane is a browser, the engine is WebAssembly, and it runs there — +so there is no endpoint for the document to be sent to. + +And the manifest asks Word for ReadDocument, not ReadWriteDocument. Word enforces it. If you are +deciding whether to let a tool near coursework, that line is worth more than any paragraph on a +landing page, including this one. + +WHAT DID NOT SHIP + +PowerPoint. A deck rarely reaches 649 words, so the same add-in there would withhold the verdict for +almost every deck — correctly, and to nobody's benefit. That is a different product with a different +promise, not this one with an extra line in a file. + +Free and open source. The full write-up, including the 404 that made the first install look broken: + +https://github.com/peopleworks/SignsofAI +``` + +### LinkedIn — décimo artículo (ES) +``` +La petición más repetida de este proyecto lleva meses siendo la misma frase: mételo en Word. Ya está. +Y lo primero que hizo con un documento real fue negarse a contestar. + +QUÉ PASÓ + +357 palabras, abiertas en Word. El panel leyó el documento, devolvió 0 sobre 100 y, debajo de la +puntuación, en lugar de una conclusión: + +«Sin veredicto a esta longitud. Este texto tiene 357 palabras. La frontera se midió solo sobre textos +de 649 palabras o más, así que aquí no se da veredicto: la puntuación no es prueba de que lo +escribiera una máquina ni prueba de que lo escribiera una persona.» + +La frontera con la que juzga, 30 sobre 100, se midió sobre 296 documentos escritos antes de 2022: +humanos por su fecha, no por la opinión de nadie. En esa frontera marca 2 de los 296, una tasa de +falsos positivos del 0,7 % con un intervalo del 95 % que llega al 2,4 %. El más corto de esos +documentos tiene 649 palabras. Por debajo no hay nada sobre lo que la frontera se haya ajustado, así +que no hay nada que decir. + +LO QUE SÍ ENCONTRÓ + +Seis espacios de no separación, con el punto de código, la cuenta y todas sus posiciones. Eso no es +un juicio sobre la prosa y no lleva umbral, así que vale a cualquier longitud. Es un hecho sobre el +archivo: esos caracteres están ahí y tecleando no salen. + +El panel dice el resto en voz alta, porque un hecho que insinúa sin decir es peor que una opinión: +esto no dice nada sobre quién escribió el texto, y no es prueba de deshonestidad. + +LA PARTE QUE MÁS IMPORTA + +Cualquier otro add-in de esta categoría manda tu documento a un servidor, porque su análisis es el +servidor. Éste no puede. Un panel de tareas es un navegador, el motor es WebAssembly y corre ahí, así +que no hay ningún endpoint al que mandar el documento. + +Y el manifest le pide a Word permiso de ReadDocument, no de ReadWriteDocument. Lo impone Word. Si +estás decidiendo si dejas que una herramienta se acerque a los trabajos de tus alumnos, esa línea +vale más que cualquier párrafo de una página de aterrizaje. Éste incluido. + +LO QUE NO SALIÓ + +PowerPoint. Una presentación casi nunca llega a 649 palabras, así que el mismo add-in ahí retendría +el veredicto con casi cualquiera — correctamente, y sin servirle a nadie. Es otro producto con otra +promesa, no éste con una línea de más en un archivo. + +Gratis y de código abierto. El artículo completo, incluido el 404 que hizo parecer que la primera +instalación estaba rota: + +https://github.com/peopleworks/SignsofAI +``` + ## 8. Notas de publicación - Sube el `.srt` de cada video como subtítulos (clave para reproducción sin sonido en Shorts/Reels/TikTok). - Cruza los enlaces: el video enlaza al artículo del blog y viceversa; ambos enlazan al demo. diff --git a/Docs/Blog/shorts/GUION-shorts.md b/Docs/Blog/shorts/GUION-shorts.md index 752fc6c..9ab7846 100644 --- a/Docs/Blog/shorts/GUION-shorts.md +++ b/Docs/Blog/shorts/GUION-shorts.md @@ -20,8 +20,9 @@ Paleta SignsOfAI: `--bg:#0b1020` · léxico `#db2777` · retórico `#f59e0b` · | 9 | Bibliografía inventada | ✅ | ✅ | ✅ 36,3 s · 35,5 s | | 10 | 61% / línea base | ✅ | ✅ | ✅ 40,2 s · 37,4 s | | 11 | El veredicto que nunca se dio | ✅ | ✅ | ✅ 35,5 s · 32,4 s | -| 12 | La señal más fiable no es una palabra | ✅ | ⬜ | ⬜ | -| 13 | 94/100 y sin veredicto | ✅ | ⬜ | ⬜ | +| 12 | La señal más fiable no es una palabra | ✅ | ✅ | ✅ 25,0 s · 25,0 s | +| 13 | 94/100 y sin veredicto | ✅ | ✅ | ✅ 27,0 s · 25,3 s | +| 14 | Dentro de Word, y se calla | ✅ | ✅ | ✅ 26,0 s · 28,2 s | Los renders están en `out/.mp4` + `.srt`. @@ -33,16 +34,26 @@ es lo que hay que recortar, no la animación. (`cue-times.mjs`) y **después** escribir el HTML alrededor de la duración medida, porque los retardos de animación son absolutos. `build-short.mjs` reutiliza el mp3 salvo `--revoice`. -**Los shorts 12 y 13 rompen ese orden a propósito, y se puede copiar.** Sus tiempos no van en +**Los shorts 12, 13 y 14 rompieron ese orden a propósito, y funcionó: se puede copiar.** Sus tiempos no van en segundos sino en **fracciones de `--dur`**, una variable CSS al principio del archivo. Funciona porque `cue-times.mjs` reparte la duración medida entre las palabras del guion: la posición *relativa* de cada frase se conoce sin oír el audio, y lo único que falta es el total. Así que se escribió el HTML antes de narrar, y al narrar solo hay que poner `--dur` a la duración real: - node narrate-all.mjs short12-residencia-es short12-residencia-en short13-longitud-es short13-longitud-en + node narrate-all.mjs short12-residencia-es short12-residencia-en short13-longitud-es short13-longitud-en short14-word-es short14-word-en # anota la duración que imprime cada uno, y ponla en --dur del HTML correspondiente node build-short.mjs scenes/short13-longitud-es.json +**Comprobado en los seis, el 7 de septiembre.** Las duraciones medidas fueron 22,1 / 22,4 (12 ES·EN), +23,0 / 23,9 (13) y 24,0 / 26,8 (14), y cada HTML lleva la suya. Dos cosas que conviene saber antes de +repetirlo: + +- `--dur` es la duración de la **narración**, no la del vídeo. El vídeo lleva además `tailSeconds`, y + `minSeconds` puede alargarlo por encima de los dos. Las fracciones reparten frases dentro de la + voz, así que cuadran con la voz. +- **El inglés y el español no duran lo mismo** aunque el guion diga lo mismo: 24,0 frente a 26,8 en + el short 14. Cada idioma necesita su propio `--dur`; ponerles el mismo desincroniza uno de los dos. + Las fracciones están escritas en el comentario de cada HTML, con la frase a la que corresponden. **Comprobar la maqueta antes de renderizar**, con el `snap.mjs` del kit y **un `t` mayor que la diff --git a/Docs/Blog/shorts/en/short12-residencia.html b/Docs/Blog/shorts/en/short12-residencia.html index 48ee0c8..264f95c 100644 --- a/Docs/Blog/shorts/en/short12-residencia.html +++ b/Docs/Blog/shorts/en/short12-residencia.html @@ -11,7 +11,7 @@ La idea visual es una sola: el ensayo en gris, y la frase del asistente con burbuja y color de chat. No hay que explicar que es de otro sitio — se ve que es de otro sitio. */ html,body{margin:0;padding:0} -body{--dur:25s; +body{--dur:22.4s; width:1080px;height:1920px;overflow:hidden;position:relative; background:radial-gradient(700px 700px at 78% 12%,rgba(34,184,207,.14),transparent 60%), radial-gradient(760px 760px at 14% 70%,rgba(109,124,255,.15),transparent 60%), diff --git a/Docs/Blog/shorts/en/short13-longitud.html b/Docs/Blog/shorts/en/short13-longitud.html index 35f0214..595d62c 100644 --- a/Docs/Blog/shorts/en/short13-longitud.html +++ b/Docs/Blog/shorts/en/short13-longitud.html @@ -10,7 +10,7 @@ 0.179 "Y se niega" · 0.295 "La frontera" · 0.475 "y el más corto" · 0.639 "Este tiene sesenta" 0.803 "Las veintitrés" · 0.885 "Lo que se retira" */ html,body{margin:0;padding:0} -body{--dur:27s; +body{--dur:23.9s; width:1080px;height:1920px;overflow:hidden;position:relative; background:radial-gradient(700px 700px at 80% 10%,rgba(109,124,255,.16),transparent 60%), radial-gradient(760px 760px at 12% 66%,rgba(245,158,11,.13),transparent 60%), diff --git a/Docs/Blog/shorts/en/short14-word.html b/Docs/Blog/shorts/en/short14-word.html new file mode 100644 index 0000000..b225ace --- /dev/null +++ b/Docs/Blog/shorts/en/short14-word.html @@ -0,0 +1,131 @@ + +
SignsOfAI
+ +
+
Signs of AI Writing Word
+
Document 1.docx
+
0/100
+
+
NO VERDICT
+ +
+
+
+
+
649 words
+
nothing this short
was ever measured
+
+
357
+
+ +
+
Characters, not prose
+
U+00A0 NO-BREAK SPACE ×6
+
A fact about the file. It carries no threshold,
so at this length it still holds.
+
+ +
+
+
+
+
+
+
Nothing leaves your machine.
There is nowhere to send it.
+
+ +
+
A Word task pane is a browser.
The engine runs there, not on a server.
+
signsofai · free and open source
+
+ diff --git a/Docs/Blog/shorts/narrate-all.mjs b/Docs/Blog/shorts/narrate-all.mjs index 561c5b0..af75f4e 100644 --- a/Docs/Blog/shorts/narrate-all.mjs +++ b/Docs/Blog/shorts/narrate-all.mjs @@ -36,6 +36,14 @@ const SCRIPTS = { voice: RACHEL, text: "My detector scored this paragraph ninety-four out of a hundred. And it refuses to say anything. The boundary it judges by was measured on ninety texts, and the shortest is six hundred and sixty-two words. This one is sixty-six. We never measured anything that short. All twenty-three signals are still there. What's withheld is the accusation.", }, + 'short14-word-es': { + voice: 'Marcela', + text: "Ya está dentro de Word. Lo primero que hizo fue negarse a contestar. Trescientas cincuenta y siete palabras. La frontera se midió sobre textos de seiscientas cuarenta y nueve o más, así que aquí no hay veredicto. Pero encontró seis caracteres invisibles, porque eso es un hecho y no tiene umbral. Y tu documento no sale de tu máquina: no hay adónde mandarlo.", + }, + 'short14-word-en': { + voice: RACHEL, + text: "It's inside Word now. The first thing it did was refuse to answer. Three hundred and fifty-seven words. The boundary was measured on texts of six hundred and forty-nine words and up, so there's no verdict here. But it found six invisible characters, because that's a fact and it carries no threshold. And your document never leaves your machine: there's nowhere to send it.", + }, 'short4-traduccion-es': { voice: 'Marcela', text: 'SignsOfAI habla inglés y español. ¿Y el tuyo? Las traducciones no están compiladas: son un archivo JSON. Copias el inglés, traduces las frases y mandas un pull request. Sin C sharp, sin compilar, sin saber programar. Si falta una clave, cae al inglés: una traducción a medias ya sirve. Tu idioma, en un archivo.', diff --git a/Docs/Blog/shorts/scenes/short14-word-en.json b/Docs/Blog/shorts/scenes/short14-word-en.json new file mode 100644 index 0000000..c14dc2d --- /dev/null +++ b/Docs/Blog/shorts/scenes/short14-word-en.json @@ -0,0 +1,8 @@ +{ + "id": "short14-word-en", + "html": "en/short14-word.html", + "voice": "Rachel", + "minSeconds": 26, + "tailSeconds": 1.4, + "narration": "It is inside Word now. The first thing it did was refuse to answer. Three hundred and fifty-seven words. The boundary was measured on texts of six hundred and forty-nine words and up, so there is no verdict here. But it found six invisible characters, because that is a fact and it carries no threshold. And your document never leaves your machine: there is nowhere to send it." +} \ No newline at end of file diff --git a/Docs/Blog/shorts/scenes/short14-word-es.json b/Docs/Blog/shorts/scenes/short14-word-es.json new file mode 100644 index 0000000..8b5580e --- /dev/null +++ b/Docs/Blog/shorts/scenes/short14-word-es.json @@ -0,0 +1,8 @@ +{ + "id": "short14-word-es", + "html": "short14-word.html", + "voice": "Marcela", + "minSeconds": 26, + "tailSeconds": 1.4, + "narration": "Ya está dentro de Word. Lo primero que hizo fue negarse a contestar. Trescientas cincuenta y siete palabras. La frontera se midió sobre textos de seiscientas cuarenta y nueve o más, así que aquí no hay veredicto. Pero encontró seis caracteres invisibles, porque eso es un hecho y no tiene umbral. Y tu documento no sale de tu máquina: no hay adónde mandarlo." +} diff --git a/Docs/Blog/shorts/short12-residencia.html b/Docs/Blog/shorts/short12-residencia.html index 3863e5d..9ec93dd 100644 --- a/Docs/Blog/shorts/short12-residencia.html +++ b/Docs/Blog/shorts/short12-residencia.html @@ -11,7 +11,7 @@ La idea visual es una sola: el ensayo en gris, y la frase del asistente con burbuja y color de chat. No hay que explicar que es de otro sitio — se ve que es de otro sitio. */ html,body{margin:0;padding:0} -body{--dur:25s; +body{--dur:22.1s; width:1080px;height:1920px;overflow:hidden;position:relative; background:radial-gradient(700px 700px at 78% 12%,rgba(34,184,207,.14),transparent 60%), radial-gradient(760px 760px at 14% 70%,rgba(109,124,255,.15),transparent 60%), diff --git a/Docs/Blog/shorts/short13-longitud.html b/Docs/Blog/shorts/short13-longitud.html index 8987a56..b8e9c6d 100644 --- a/Docs/Blog/shorts/short13-longitud.html +++ b/Docs/Blog/shorts/short13-longitud.html @@ -10,7 +10,7 @@ 0.197 "Y se niega" · 0.295 "La frontera" · 0.475 "y el más corto" · 0.639 "Este tiene sesenta" 0.803 "Las veintitrés" · 0.885 "Lo que se retira" */ html,body{margin:0;padding:0} -body{--dur:27s; +body{--dur:23.0s; width:1080px;height:1920px;overflow:hidden;position:relative; background:radial-gradient(700px 700px at 80% 10%,rgba(109,124,255,.16),transparent 60%), radial-gradient(760px 760px at 12% 66%,rgba(245,158,11,.13),transparent 60%), diff --git a/Docs/Blog/shorts/short14-word.html b/Docs/Blog/shorts/short14-word.html new file mode 100644 index 0000000..a30534a --- /dev/null +++ b/Docs/Blog/shorts/short14-word.html @@ -0,0 +1,131 @@ + +
SignsOfAI
+ +
+
Signs of AI Writing Word
+
Documento 1.docx
+
0/100
+
+
SIN VEREDICTO
+ +
+
+
+
+
649 palabras
+
nunca se midió
nada tan corto
+
+
357
+
+ +
+
Caracteres, no prosa
+
U+00A0 NO-BREAK SPACE ×6
+
Un hecho sobre el archivo. No lleva umbral,
así que a esta longitud sigue valiendo.
+
+ +
+
+
+
+
+
+
Tu documento no sale de tu máquina.
No hay adónde mandarlo.
+
+ +
+
Un panel de Word es un navegador.
El motor corre ahí, no en un servidor.
+
signsofai · gratis y de código abierto
+
+ diff --git a/Docs/Blog/signsofai-word-story.en.html b/Docs/Blog/signsofai-word-story.en.html new file mode 100644 index 0000000..b2de328 --- /dev/null +++ b/Docs/Blog/signsofai-word-story.en.html @@ -0,0 +1,156 @@ + + + + + +I put my AI detector inside Word, and the first thing it did was refuse to answer · SignsOfAI + + + + +
+ +
+ SignsOfAI + PeopleWorks · Microsoft MVP for .NET +
+ +
Maker story · Engineering
+

I put my AI detector inside Word, and the first thing it did was refuse to answer

+

A task pane is a browser, so the engine runs on the machine and the document is never uploaded — which is the opposite of how every other add-in in this category works. Then it read a real document, declined to give a verdict because the document was 357 words, and reported six invisible characters anyway.

+ + + ▶ Download or try it — free, MIT, web and Windows. + +
+ +

The most common request for this project has been the same sentence for months: put it in Word. It is a fair request. People do not write in a browser tab; they write in a word processor, and asking someone to copy 2,000 words out of the document they are working on, into a website, to find out something about the document they are working on, is a workflow only its author could love.

+

So the add-in exists now. The interesting part is not that it works. It is what it did the first time it ran on a real document.

+

It read the document and declined to give a verdict

+

357 words, a technical note about an API, open in Word on the web. The pane read it and returned a score of 0 out of 100 — and under the score, instead of a conclusion, this:

+
No verdict at this length. This text is 357 words. The boundary was measured only on texts of 649 words and longer, so no verdict is given — the score is neither evidence that a machine wrote this nor evidence that a person did. Everything below is unaffected.
+

That paragraph is the entire project, printed inside Word.

+

The number this tool judges by, 30 out of 100, was not chosen. It was measured on 296 documents that were written before 2022 and are therefore human by their dates rather than by anyone's opinion. At that boundary, 2 of the 296 are flagged: a false-positive rate of 0.7%, with a 95% interval reaching 2.4%. That figure is published, it moves when the corpus moves, and it stopped being zero the day 206 essays by adults learning English joined the corpus.

+

The shortest of those 296 documents is 649 words. Below that length, there is nothing the boundary was fitted on. A score can still be computed — arithmetic does not stop working — but there is no evidence about what it means, because no text that short was ever measured. So the tool says so and stops.

+

The temptation here is enormous, and worth naming

+

A detector that answers every question feels better. It is easier to demo, easier to sell, and nobody writes to complain that you gave them an answer.

+

But the answer would be invented. The honest version of "I have not measured this" is not a smaller number or a softer adjective. It is silence, with the reason attached. In the add-in this costs something real: most of what people paste into a detector is a paragraph, and most paragraphs are under 649 words. The tool will decline a great deal.

+

I would rather it decline than guess in a sidebar next to a student's name.

+

What it found anyway

+

The same panel, on the same 357 words, reported six no-break spaces (U+00A0) with the codepoint, the count, and a button to show every position in the document.

+

That is not a judgement about prose, and it carries no threshold, so it holds at any length. It is a fact about the file: those characters are in it, and typing does not produce them. Copying from a web page or a PDF does, and so do some tools that rewrite text to evade detectors.

+

The panel says the rest out loud, because a fact left to imply something is worse than an opinion:

+
This says nothing about who wrote the text, and it is not evidence of dishonesty. It is a question about where the file has been: ask the writer to open the document and describe how it was produced.
+

A percentage gets argued about for half an hour in a meeting. "There are six invisible characters here, and here is where they are" gets resolved with a question.

+

The part that matters most is architectural

+

Every other add-in in this category sends your document to a server. It has to: the analysis is the server, so the text must go where the analysis lives.

+

This one cannot, and the reason is boring in the best way. A task pane is a browser: an embedded WebView with the same rules as a tab. The engine is WebAssembly, it is downloaded once with the pane, and it runs there. There is no endpoint in this add-in, so there is nothing for the document to be sent to. The guarantee the web app already made now applies in the application where the document already lives.

+

And the manifest asks Word for ReadDocument, not ReadWriteDocument. That is a two-word difference with real teeth: Word enforces it. The add-in is not able to change your document, whatever a website might claim about its intentions. If you are a teacher deciding whether to let a tool near coursework, that line in the manifest is worth more than any paragraph on a landing page — including this one.

+

It is a third host, not a second product

+

The pane is not a smaller engine. Every rule, the character scan, the citation cross-check and the rules about what may be claimed arrive from the same shared library the web app and the Windows app render. Word is a third place to run it.

+

The class holding what each host can do had this comment in it long before there was a third one:

+
The interface should branch on what is possible, not on who is asking — the day a third host appears, or a browser stops blocking a thing, the components do not need revisiting.
+

That turned out to be true, with one exception worth mentioning because it is the sort of thing that rots quietly. The shared footer says "runs 100% in your browser." Inside Word that is false, in the same way it was false inside the Windows app, which shipped with that line in a WPF window for weeks before anyone noticed. So the new host got its own sentence. A tool that asks people to show evidence cannot be careless about the claims it makes about itself.

+

It did not work the first time, and the reason is instructive

+

The first sideload put the pane in Word, showed the ribbon button, opened the panel — and displayed the wrong page, with Word warning that the add-in might not load properly.

+

It looked like a flaky environment. It was a 404. The manifest points at a URL the deploy had never published, so the host answered with the site's single-page fallback; the app that fell out of that has no route for the pane's address, and correctly said the page did not exist. Word's warning was the 404, three steps removed from its cause.

+

The deploy now publishes the pane, and refuses to finish if its entry point is missing. A task pane is loaded by URL from inside a word processor, where a missing file surfaces as "this add-in may not load properly" — an error message that points at nothing. Better to break the deploy than to debug that twice.

+

PowerPoint is a different product, and I am not shipping it yet

+

The same manifest can declare more hosts, and it would be one line. It would also be dishonest.

+

A slide deck rarely reaches 649 words. Pointed at one, this add-in would do what it did above — withhold the verdict — for almost every deck, correctly and to nobody's benefit. What does work at slide length is the part with no threshold: the character scan, and the named tells shown without a score.

+

So the honest question in PowerPoint is not "did AI write this deck". It is "does this deck carry the fingerprints of a tool that rewrites text to evade detection", which is a different product with a different promise. It may well be worth building. It is not this one with an extra line in a file.

+

What this does not fix

+

The add-in does not make short documents measurable. It surfaces the limit in the place where people will meet it most often, which is progress of a kind, but the gap is still there: the corpus contains no student essay under 649 words, and until it does, everything below that length gets a score and a refusal.

+

It does not read comments, footnotes or tracked changes — only the body.

+

And it is not in the Office Store, which means installing it is still a manifest and a menu rather than a button. That is next.

+

The general version, for anyone who does not care about AI detection

+

The feature people asked for was "put it in Word". What shipped is mostly a set of refusals: it will not give a verdict it cannot support, it will not upload your document because it has nowhere to upload it to, and it asked for permission to read and deliberately not to write.

+

None of that is what a feature request looks like. All of it is what the feature is worth.

+ + + +
+ + diff --git a/Docs/Blog/signsofai-word-story.en.md b/Docs/Blog/signsofai-word-story.en.md new file mode 100644 index 0000000..1a3d963 --- /dev/null +++ b/Docs/Blog/signsofai-word-story.en.md @@ -0,0 +1,95 @@ +--- +title: "I put my AI detector inside Word, and the first thing it did was refuse to answer" +description: "A task pane is a browser, so the engine runs on the machine and the document is never uploaded — which is the opposite of how every other add-in in this category works. Then it read a real document, declined to give a verdict because the document was 357 words, and reported six invisible characters anyway." +canonical_url: "https://github.com/peopleworks/SignsofAI" +cover_image: "https://raw.githubusercontent.com/peopleworks/SignsofAI/main/Docs/Blog/social/word-story-cover.png" +tags: [ai, dotnet, webassembly, academicintegrity] +author: "Pedro Hernández (PeopleWorks)" +lang: en +--- + +# I put my AI detector inside Word, and the first thing it did was refuse to answer + +The most common request for this project has been the same sentence for months: *put it in Word*. It is a fair request. People do not write in a browser tab; they write in a word processor, and asking someone to copy 2,000 words out of the document they are working on, into a website, to find out something about the document they are working on, is a workflow only its author could love. + +So the add-in exists now. The interesting part is not that it works. It is what it did the first time it ran on a real document. + +## It read the document and declined to give a verdict + +357 words, a technical note about an API, open in Word on the web. The pane read it and returned a score of 0 out of 100 — and under the score, instead of a conclusion, this: + +> **No verdict at this length.** This text is 357 words. The boundary was measured only on texts of 649 words and longer, so no verdict is given — the score is neither evidence that a machine wrote this nor evidence that a person did. Everything below is unaffected. + +That paragraph is the entire project, printed inside Word. + +The number this tool judges by, 30 out of 100, was not chosen. It was measured on 296 documents that were written before 2022 and are therefore human by their dates rather than by anyone's opinion. At that boundary, 2 of the 296 are flagged: a false-positive rate of 0.7%, with a 95% interval reaching 2.4%. That figure is published, it moves when the corpus moves, and it stopped being zero the day 206 essays by adults learning English joined the corpus. + +The shortest of those 296 documents is 649 words. Below that length, there is nothing the boundary was fitted on. A score can still be computed — arithmetic does not stop working — but there is no evidence about what it means, because no text that short was ever measured. So the tool says so and stops. + +## The temptation here is enormous, and worth naming + +A detector that answers every question feels better. It is easier to demo, easier to sell, and nobody writes to complain that you gave them an answer. + +But the answer would be invented. The honest version of "I have not measured this" is not a smaller number or a softer adjective. It is silence, with the reason attached. In the add-in this costs something real: most of what people paste into a detector is a paragraph, and most paragraphs are under 649 words. The tool will decline a great deal. + +I would rather it decline than guess in a sidebar next to a student's name. + +## What it found anyway + +The same panel, on the same 357 words, reported six no-break spaces (`U+00A0`) with the codepoint, the count, and a button to show every position in the document. + +That is not a judgement about prose, and it carries no threshold, so it holds at any length. It is a fact about the file: those characters are in it, and typing does not produce them. Copying from a web page or a PDF does, and so do some tools that rewrite text to evade detectors. + +The panel says the rest out loud, because a fact left to imply something is worse than an opinion: + +> This says nothing about who wrote the text, and it is not evidence of dishonesty. It is a question about where the file has been: ask the writer to open the document and describe how it was produced. + +A percentage gets argued about for half an hour in a meeting. "There are six invisible characters here, and here is where they are" gets resolved with a question. + +## The part that matters most is architectural + +Every other add-in in this category sends your document to a server. It has to: the analysis *is* the server, so the text must go where the analysis lives. + +This one cannot, and the reason is boring in the best way. **A task pane is a browser**: an embedded WebView with the same rules as a tab. The engine is WebAssembly, it is downloaded once with the pane, and it runs there. There is no endpoint in this add-in, so there is nothing for the document to be sent to. The guarantee the web app already made now applies in the application where the document already lives. + +And the manifest asks Word for `ReadDocument`, not `ReadWriteDocument`. That is a two-word difference with real teeth: **Word enforces it.** The add-in is not able to change your document, whatever a website might claim about its intentions. If you are a teacher deciding whether to let a tool near coursework, that line in the manifest is worth more than any paragraph on a landing page — including this one. + +## It is a third host, not a second product + +The pane is not a smaller engine. Every rule, the character scan, the citation cross-check and the rules about what may be claimed arrive from the same shared library the web app and the Windows app render. Word is a third place to run it. + +The class holding what each host can do had this comment in it long before there was a third one: + +> The interface should branch on what is possible, not on who is asking — the day a third host appears, or a browser stops blocking a thing, the components do not need revisiting. + +That turned out to be true, with one exception worth mentioning because it is the sort of thing that rots quietly. The shared footer says *"runs 100% in your browser."* Inside Word that is false, in the same way it was false inside the Windows app, which shipped with that line in a WPF window for weeks before anyone noticed. So the new host got its own sentence. A tool that asks people to show evidence cannot be careless about the claims it makes about itself. + +## It did not work the first time, and the reason is instructive + +The first sideload put the pane in Word, showed the ribbon button, opened the panel — and displayed the wrong page, with Word warning that the add-in might not load properly. + +It looked like a flaky environment. It was a 404. The manifest points at a URL the deploy had never published, so the host answered with the site's single-page fallback; the app that fell out of that has no route for the pane's address, and correctly said the page did not exist. Word's warning was the 404, three steps removed from its cause. + +The deploy now publishes the pane, and refuses to finish if its entry point is missing. A task pane is loaded by URL from inside a word processor, where a missing file surfaces as "this add-in may not load properly" — an error message that points at nothing. Better to break the deploy than to debug that twice. + +## PowerPoint is a different product, and I am not shipping it yet + +The same manifest can declare more hosts, and it would be one line. It would also be dishonest. + +A slide deck rarely reaches 649 words. Pointed at one, this add-in would do what it did above — withhold the verdict — for almost every deck, correctly and to nobody's benefit. What *does* work at slide length is the part with no threshold: the character scan, and the named tells shown without a score. + +So the honest question in PowerPoint is not "did AI write this deck". It is "does this deck carry the fingerprints of a tool that rewrites text to evade detection", which is a different product with a different promise. It may well be worth building. It is not this one with an extra line in a file. + +## What this does not fix + +The add-in does not make short documents measurable. It surfaces the limit in the place where people will meet it most often, which is progress of a kind, but the gap is still there: the corpus contains no student essay under 649 words, and until it does, everything below that length gets a score and a refusal. + +It does not read comments, footnotes or tracked changes — only the body. + +And it is not in the Office Store, which means installing it is still a manifest and a menu rather than a button. That is next. + +## The general version, for anyone who does not care about AI detection + +The feature people asked for was "put it in Word". What shipped is mostly a set of refusals: it will not give a verdict it cannot support, it will not upload your document because it has nowhere to upload it to, and it asked for permission to read and deliberately not to write. + +None of that is what a feature request looks like. All of it is what the feature is worth. diff --git a/Docs/Blog/signsofai-word-story.es.html b/Docs/Blog/signsofai-word-story.es.html new file mode 100644 index 0000000..98c1d3e --- /dev/null +++ b/Docs/Blog/signsofai-word-story.es.html @@ -0,0 +1,156 @@ + + + + + +Metí mi detector de IA dentro de Word, y lo primero que hizo fue negarse a contestar · SignsOfAI + + + + +
+ +
+ SignsOfAI + PeopleWorks · Microsoft MVP for .NET +
+ +
Historia de taller · Ingeniería
+

Metí mi detector de IA dentro de Word, y lo primero que hizo fue negarse a contestar

+

Un panel de tareas es un navegador, así que el motor corre en la máquina y el documento no se sube a ningún sitio — que es justo lo contrario de como funciona cualquier otro add-in de esta categoría. Después leyó un documento real, se negó a dar veredicto porque tenía 357 palabras, y aun así encontró seis caracteres invisibles.

+ + + ▶ Descárgalo o pruébalo — gratis, MIT, web y Windows. + +
+ +

La petición más repetida de este proyecto lleva meses siendo la misma frase: mételo en Word. Y es razonable. Nadie escribe en una pestaña del navegador; se escribe en un procesador de textos, y pedirle a alguien que copie dos mil palabras del documento que está escribiendo, las pegue en una web, y así averigüe algo sobre el documento que está escribiendo, es un flujo de trabajo que solo puede querer quien lo diseñó.

+

Así que el add-in ya existe. Lo interesante no es que funcione. Es lo que hizo la primera vez que se lo puse delante a un documento real.

+

Leyó el documento y se negó a dar un veredicto

+

357 palabras, una nota técnica sobre una API, abierta en Word dentro del navegador. El panel la leyó, devolvió una puntuación de 0 sobre 100 y, debajo, en lugar de una conclusión, esto:

+
Sin veredicto a esta longitud. Este texto tiene 357 palabras. La frontera se midió solo sobre textos de 649 palabras o más, así que aquí no se da veredicto: la puntuación no es prueba de que lo escribiera una máquina ni prueba de que lo escribiera una persona. Todo lo de abajo no se ve afectado.
+

Ese párrafo es el proyecto entero, impreso dentro de Word.

+

El número con el que esta herramienta juzga, 30 sobre 100, no se eligió. Se midió, sobre 296 documentos escritos antes de 2022, humanos por su fecha y no por la opinión de nadie. En esa frontera se marcan 2 de los 296: una tasa de falsos positivos del 0,7 %, con un intervalo del 95 % que llega al 2,4 %. Esa cifra está publicada, se mueve cuando se mueve el corpus, y dejó de ser cero el día en que entraron 206 redacciones de adultos aprendiendo inglés.

+

El más corto de esos 296 documentos tiene 649 palabras. Por debajo de ahí no hay nada sobre lo que la frontera se haya ajustado. La puntuación se puede calcular igual —la aritmética no deja de funcionar— pero no hay ninguna evidencia sobre qué significa, porque nunca se midió un texto tan corto. Así que la herramienta lo dice y se calla.

+

La tentación aquí es enorme, y conviene nombrarla

+

Un detector que contesta a todo sienta mejor. Se demuestra más fácil, se vende más fácil, y nadie escribe para quejarse de que le diste una respuesta.

+

Pero esa respuesta sería inventada. La versión honesta de «esto no lo he medido» no es un número más pequeño ni un adjetivo más suave. Es el silencio, con el motivo al lado. En el add-in eso cuesta algo real: casi todo lo que la gente pega en un detector es un párrafo, y casi ningún párrafo llega a 649 palabras. La herramienta va a callarse muchísimo.

+

Prefiero que se calle a que adivine en una barra lateral, al lado del nombre de un alumno.

+

Lo que sí encontró

+

El mismo panel, sobre esas mismas 357 palabras, informó de seis espacios de no separación (U+00A0) con el punto de código, la cuenta y un botón para enseñar todas sus posiciones en el documento.

+

Eso no es un juicio sobre la prosa y no lleva umbral, así que vale a cualquier longitud. Es un hecho sobre el archivo: esos caracteres están ahí, y tecleando no salen. Copiando de una página web o de un PDF sí, y también los dejan algunas herramientas que reescriben texto para esquivar detectores.

+

El panel dice el resto en voz alta, porque un hecho que insinúa algo sin decirlo es peor que una opinión:

+
Esto no dice nada sobre quién escribió el texto, y no es prueba de deshonestidad. Es una pregunta sobre por dónde ha pasado el archivo: pídale a quien lo escribió que abra el documento y le cuente cómo lo produjo.
+

Un porcentaje se discute media hora en una reunión. «Aquí hay seis caracteres invisibles, y estas son sus posiciones» se resuelve con una pregunta.

+

La parte que más importa es de arquitectura

+

Cualquier otro add-in de esta categoría manda tu documento a un servidor. No le queda otra: el análisis es el servidor, así que el texto tiene que viajar hasta donde vive el análisis.

+

Éste no puede, y el motivo es aburrido en el mejor sentido. Un panel de tareas es un navegador: un WebView incrustado, con las mismas reglas que una pestaña. El motor es WebAssembly, se descarga una vez con el panel y corre ahí. En este add-in no hay ningún endpoint, así que no hay adónde mandar el documento. La garantía que ya daba la aplicación web se aplica ahora en el programa donde el documento ya vive.

+

Y el manifest le pide a Word permiso de ReadDocument, no de ReadWriteDocument. Es una diferencia de dos palabras con dientes de verdad: lo impone Word. El add-in no puede cambiar tu documento, diga lo que diga una web sobre sus intenciones. Si eres profesor y estás decidiendo si dejas que una herramienta se acerque a los trabajos de tus alumnos, esa línea del manifest vale más que cualquier párrafo de una página de aterrizaje. Éste incluido.

+

Es un tercer anfitrión, no un segundo producto

+

El panel no es un motor reducido. Todas las reglas, el escáner de caracteres, el contraste de la bibliografía y las normas sobre lo que se puede afirmar llegan de la misma biblioteca compartida que renderizan la web y la aplicación de Windows. Word es un tercer sitio donde ejecutarlo.

+

La clase que guarda lo que puede hacer cada anfitrión llevaba este comentario dentro mucho antes de que hubiera un tercero:

+
La interfaz debe ramificar por lo que es posible, no por quién pregunta: el día que aparezca un tercer anfitrión, o el día que un navegador deje de bloquear algo, los componentes no hay que revisarlos.
+

Resultó ser verdad, con una excepción que merece contarse porque es de las cosas que se pudren en silencio. El pie compartido dice «funciona 100 % en tu navegador». Dentro de Word eso es falso, igual que era falso dentro de la aplicación de Windows, que estuvo semanas enseñando esa frase dentro de una ventana WPF sin que nadie lo notara. Así que el anfitrión nuevo tiene su propia frase. Una herramienta que le exige evidencia a los demás no puede ser descuidada con lo que afirma sobre sí misma.

+

No funcionó a la primera, y el motivo enseña algo

+

El primer intento metió el panel en Word, enseñó el botón en la cinta, abrió la barra lateral… y mostró la página equivocada, con Word avisando de que el complemento podría no cargar bien.

+

Parecía un entorno inestable. Era un 404. El manifest apunta a una URL que el despliegue nunca había publicado, así que el servidor respondió con el fallback de la aplicación de una sola página; la aplicación que salió de ahí no tiene ninguna ruta para la dirección del panel y dijo, correctamente, que esa página no existe. El aviso de Word era el 404, a tres pasos de su causa.

+

Ahora el despliegue publica el panel y se niega a terminar si su punto de entrada no está. Un panel se carga por URL desde dentro de un procesador de textos, donde un archivo que falta aparece como «este complemento podría no cargar bien»: un mensaje de error que no señala a nada. Mejor romper el despliegue que depurar eso dos veces.

+

PowerPoint es otro producto, y no lo estoy publicando

+

El mismo manifest puede declarar más anfitriones, y sería una línea. También sería deshonesto.

+

Una presentación casi nunca llega a 649 palabras. Apuntado a una, este add-in haría lo mismo que arriba —retener el veredicto— con casi cualquier presentación, correctamente y sin servirle a nadie. Lo que sí funciona a la longitud de una diapositiva es la parte sin umbral: el escáner de caracteres y las señales con nombre, enseñadas sin puntuación.

+

Así que la pregunta honesta en PowerPoint no es «¿escribió esto una IA?». Es «¿lleva esta presentación las huellas de una herramienta que reescribe texto para esquivar detectores?», que es otro producto con otra promesa. Puede que valga la pena construirlo. No es éste con una línea de más en un archivo.

+

Lo que esto no arregla

+

El add-in no vuelve medibles los documentos cortos. Saca el límite a la superficie donde la gente se lo va a encontrar más a menudo, que ya es algo, pero el hueco sigue ahí: el corpus no contiene ni una redacción de estudiante por debajo de 649 palabras, y mientras no la contenga, todo lo que baje de esa longitud recibe una puntuación y una negativa.

+

No lee comentarios, ni notas al pie, ni control de cambios. Solo el cuerpo.

+

Y no está en la tienda de Office, así que instalarlo sigue siendo un manifest y un menú en vez de un botón. Eso es lo siguiente.

+

La versión general, para quien no le interese la detección de IA

+

Lo que la gente pedía era «mételo en Word». Lo que salió es sobre todo un conjunto de negativas: no da un veredicto que no puede sostener, no sube tu documento porque no tiene adónde subirlo, y pidió permiso para leer y deliberadamente no para escribir.

+

Nada de eso se parece a una petición de función. Todo eso es lo que la función vale de verdad.

+ + + +
+ + diff --git a/Docs/Blog/signsofai-word-story.es.md b/Docs/Blog/signsofai-word-story.es.md new file mode 100644 index 0000000..8ba2db8 --- /dev/null +++ b/Docs/Blog/signsofai-word-story.es.md @@ -0,0 +1,95 @@ +--- +title: "Metí mi detector de IA dentro de Word, y lo primero que hizo fue negarse a contestar" +description: "Un panel de tareas es un navegador, así que el motor corre en la máquina y el documento no se sube a ningún sitio — que es justo lo contrario de como funciona cualquier otro add-in de esta categoría. Después leyó un documento real, se negó a dar veredicto porque tenía 357 palabras, y aun así encontró seis caracteres invisibles." +canonical_url: "https://github.com/peopleworks/SignsofAI" +cover_image: "https://raw.githubusercontent.com/peopleworks/SignsofAI/main/Docs/Blog/social/word-story-cover.png" +tags: [ia, dotnet, webassembly, integridadacademica] +author: "Pedro Hernández (PeopleWorks)" +lang: es +--- + +# Metí mi detector de IA dentro de Word, y lo primero que hizo fue negarse a contestar + +La petición más repetida de este proyecto lleva meses siendo la misma frase: *mételo en Word*. Y es razonable. Nadie escribe en una pestaña del navegador; se escribe en un procesador de textos, y pedirle a alguien que copie dos mil palabras del documento que está escribiendo, las pegue en una web, y así averigüe algo sobre el documento que está escribiendo, es un flujo de trabajo que solo puede querer quien lo diseñó. + +Así que el add-in ya existe. Lo interesante no es que funcione. Es lo que hizo la primera vez que se lo puse delante a un documento real. + +## Leyó el documento y se negó a dar un veredicto + +357 palabras, una nota técnica sobre una API, abierta en Word dentro del navegador. El panel la leyó, devolvió una puntuación de 0 sobre 100 y, debajo, en lugar de una conclusión, esto: + +> **Sin veredicto a esta longitud.** Este texto tiene 357 palabras. La frontera se midió solo sobre textos de 649 palabras o más, así que aquí no se da veredicto: la puntuación no es prueba de que lo escribiera una máquina ni prueba de que lo escribiera una persona. Todo lo de abajo no se ve afectado. + +Ese párrafo es el proyecto entero, impreso dentro de Word. + +El número con el que esta herramienta juzga, 30 sobre 100, no se eligió. Se midió, sobre 296 documentos escritos antes de 2022, humanos por su fecha y no por la opinión de nadie. En esa frontera se marcan 2 de los 296: una tasa de falsos positivos del 0,7 %, con un intervalo del 95 % que llega al 2,4 %. Esa cifra está publicada, se mueve cuando se mueve el corpus, y dejó de ser cero el día en que entraron 206 redacciones de adultos aprendiendo inglés. + +El más corto de esos 296 documentos tiene 649 palabras. Por debajo de ahí no hay nada sobre lo que la frontera se haya ajustado. La puntuación se puede calcular igual —la aritmética no deja de funcionar— pero no hay ninguna evidencia sobre qué significa, porque nunca se midió un texto tan corto. Así que la herramienta lo dice y se calla. + +## La tentación aquí es enorme, y conviene nombrarla + +Un detector que contesta a todo sienta mejor. Se demuestra más fácil, se vende más fácil, y nadie escribe para quejarse de que le diste una respuesta. + +Pero esa respuesta sería inventada. La versión honesta de «esto no lo he medido» no es un número más pequeño ni un adjetivo más suave. Es el silencio, con el motivo al lado. En el add-in eso cuesta algo real: casi todo lo que la gente pega en un detector es un párrafo, y casi ningún párrafo llega a 649 palabras. La herramienta va a callarse muchísimo. + +Prefiero que se calle a que adivine en una barra lateral, al lado del nombre de un alumno. + +## Lo que sí encontró + +El mismo panel, sobre esas mismas 357 palabras, informó de seis espacios de no separación (`U+00A0`) con el punto de código, la cuenta y un botón para enseñar todas sus posiciones en el documento. + +Eso no es un juicio sobre la prosa y no lleva umbral, así que vale a cualquier longitud. Es un hecho sobre el archivo: esos caracteres están ahí, y tecleando no salen. Copiando de una página web o de un PDF sí, y también los dejan algunas herramientas que reescriben texto para esquivar detectores. + +El panel dice el resto en voz alta, porque un hecho que insinúa algo sin decirlo es peor que una opinión: + +> Esto no dice nada sobre quién escribió el texto, y no es prueba de deshonestidad. Es una pregunta sobre por dónde ha pasado el archivo: pídale a quien lo escribió que abra el documento y le cuente cómo lo produjo. + +Un porcentaje se discute media hora en una reunión. «Aquí hay seis caracteres invisibles, y estas son sus posiciones» se resuelve con una pregunta. + +## La parte que más importa es de arquitectura + +Cualquier otro add-in de esta categoría manda tu documento a un servidor. No le queda otra: el análisis *es* el servidor, así que el texto tiene que viajar hasta donde vive el análisis. + +Éste no puede, y el motivo es aburrido en el mejor sentido. **Un panel de tareas es un navegador**: un WebView incrustado, con las mismas reglas que una pestaña. El motor es WebAssembly, se descarga una vez con el panel y corre ahí. En este add-in no hay ningún endpoint, así que no hay adónde mandar el documento. La garantía que ya daba la aplicación web se aplica ahora en el programa donde el documento ya vive. + +Y el manifest le pide a Word permiso de `ReadDocument`, no de `ReadWriteDocument`. Es una diferencia de dos palabras con dientes de verdad: **lo impone Word**. El add-in no puede cambiar tu documento, diga lo que diga una web sobre sus intenciones. Si eres profesor y estás decidiendo si dejas que una herramienta se acerque a los trabajos de tus alumnos, esa línea del manifest vale más que cualquier párrafo de una página de aterrizaje. Éste incluido. + +## Es un tercer anfitrión, no un segundo producto + +El panel no es un motor reducido. Todas las reglas, el escáner de caracteres, el contraste de la bibliografía y las normas sobre lo que se puede afirmar llegan de la misma biblioteca compartida que renderizan la web y la aplicación de Windows. Word es un tercer sitio donde ejecutarlo. + +La clase que guarda lo que puede hacer cada anfitrión llevaba este comentario dentro mucho antes de que hubiera un tercero: + +> La interfaz debe ramificar por lo que es posible, no por quién pregunta: el día que aparezca un tercer anfitrión, o el día que un navegador deje de bloquear algo, los componentes no hay que revisarlos. + +Resultó ser verdad, con una excepción que merece contarse porque es de las cosas que se pudren en silencio. El pie compartido dice *«funciona 100 % en tu navegador»*. Dentro de Word eso es falso, igual que era falso dentro de la aplicación de Windows, que estuvo semanas enseñando esa frase dentro de una ventana WPF sin que nadie lo notara. Así que el anfitrión nuevo tiene su propia frase. Una herramienta que le exige evidencia a los demás no puede ser descuidada con lo que afirma sobre sí misma. + +## No funcionó a la primera, y el motivo enseña algo + +El primer intento metió el panel en Word, enseñó el botón en la cinta, abrió la barra lateral… y mostró la página equivocada, con Word avisando de que el complemento podría no cargar bien. + +Parecía un entorno inestable. Era un 404. El manifest apunta a una URL que el despliegue nunca había publicado, así que el servidor respondió con el fallback de la aplicación de una sola página; la aplicación que salió de ahí no tiene ninguna ruta para la dirección del panel y dijo, correctamente, que esa página no existe. El aviso de Word era el 404, a tres pasos de su causa. + +Ahora el despliegue publica el panel y se niega a terminar si su punto de entrada no está. Un panel se carga por URL desde dentro de un procesador de textos, donde un archivo que falta aparece como «este complemento podría no cargar bien»: un mensaje de error que no señala a nada. Mejor romper el despliegue que depurar eso dos veces. + +## PowerPoint es otro producto, y no lo estoy publicando + +El mismo manifest puede declarar más anfitriones, y sería una línea. También sería deshonesto. + +Una presentación casi nunca llega a 649 palabras. Apuntado a una, este add-in haría lo mismo que arriba —retener el veredicto— con casi cualquier presentación, correctamente y sin servirle a nadie. Lo que sí funciona a la longitud de una diapositiva es la parte sin umbral: el escáner de caracteres y las señales con nombre, enseñadas sin puntuación. + +Así que la pregunta honesta en PowerPoint no es «¿escribió esto una IA?». Es «¿lleva esta presentación las huellas de una herramienta que reescribe texto para esquivar detectores?», que es otro producto con otra promesa. Puede que valga la pena construirlo. No es éste con una línea de más en un archivo. + +## Lo que esto no arregla + +El add-in no vuelve medibles los documentos cortos. Saca el límite a la superficie donde la gente se lo va a encontrar más a menudo, que ya es algo, pero el hueco sigue ahí: el corpus no contiene ni una redacción de estudiante por debajo de 649 palabras, y mientras no la contenga, todo lo que baje de esa longitud recibe una puntuación y una negativa. + +No lee comentarios, ni notas al pie, ni control de cambios. Solo el cuerpo. + +Y no está en la tienda de Office, así que instalarlo sigue siendo un manifest y un menú en vez de un botón. Eso es lo siguiente. + +## La versión general, para quien no le interese la detección de IA + +Lo que la gente pedía era «mételo en Word». Lo que salió es sobre todo un conjunto de negativas: no da un veredicto que no puede sostener, no sube tu documento porque no tiene adónde subirlo, y pidió permiso para leer y deliberadamente no para escribir. + +Nada de eso se parece a una petición de función. Todo eso es lo que la función vale de verdad. diff --git a/Docs/Blog/social/word-story-cover.png b/Docs/Blog/social/word-story-cover.png new file mode 100644 index 0000000..413f757 Binary files /dev/null and b/Docs/Blog/social/word-story-cover.png differ diff --git a/Docs/Blog/social/word-story-cover.svg b/Docs/Blog/social/word-story-cover.svg new file mode 100644 index 0000000..3ede89f --- /dev/null +++ b/Docs/Blog/social/word-story-cover.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + A TASK PANE INSIDE WORD, ON A REAL DOCUMENT + It produced a score + and refused the verdict. + + + + + NO TEXT THIS SHORT WAS EVER MEASURED + + + + + + 649 words + the shortest of the 296 measured + + + + + 357 words + the document + + + Below the shortest text ever measured, a number means nothing. + + + So it says so, and stops. + + + + + + Signs of AI Writing + + + Document 1.docx + + 0 + /100 + + + + No verdict at this length + + 357 words · 21 sentences · 0 signals + + + + Character artifacts + U+00A0 + NO-BREAK SPACE + ×6 + A fact about the file. It carries + no threshold, so it still holds. + + + The document is never uploaded. + There is nowhere to upload it to. + + SIGNSOFAI · FALSE-POSITIVE RATE 2 OF 296 AT 30/100, PUBLISHED +