diff --git a/Docs/screenshots/word-taskpane.png b/Docs/screenshots/word-taskpane.png new file mode 100644 index 0000000..633c276 Binary files /dev/null and b/Docs/screenshots/word-taskpane.png differ diff --git a/README.md b/README.md index e064daa..9502867 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,65 @@ See `skill/README.md`. --- +## 6. Use it where the writing happens — the Word add-in + +A task pane inside Word. Press **Read the signs** on the Home tab and it reads the open document and +answers in the sidebar: no copying into a browser, no uploading a file, no leaving the page you are +writing on. + +**It is the same engine, not a smaller one.** Every rule, the character scan, the citation +cross-check and the verdict rules arrive through `SignsOfAI.UI`, the class library the web app and +the desktop app also render. Word is simply a third host. + +### Why a task pane is the right place for this particular tool + +A task pane is a browser. The WebAssembly engine is downloaded once and runs there, on the machine, +which means **the document is never uploaded**. It is the guarantee the web app already makes, in the +application where the document actually lives. + +That is not a nicety. Every other add-in in this category posts your text to an API, because their +analysis is a server. Ours is not, so there is nothing to post it to. And the manifest asks for +**`ReadDocument`**, not `ReadWriteDocument`: Word itself enforces that this add-in can only read +your document, rather than asking you to trust a sentence on a website. + +### What it looks like on a real document + +![The Signs of AI Writing task pane open beside a document in Word on the web: a score of 0/100, the verdict withheld because the document is 357 words, and six no-break spaces reported underneath](Docs/screenshots/word-taskpane.png) + +That is Word on the web (the address bar is in the picture) with a 357-word document open, and the +pane is worth reading twice. + +**It refused to give a verdict**, and printed why: the corpus this build is calibrated on contains no +text shorter than 649 words, so below that there is nothing to compare against and the score is +*"neither evidence that a machine wrote this nor evidence that a person did."* See +[the calibration](Docs/CALIBRATION.md). + +**And it still found six no-break spaces**, because the character scan is a fact about the file +rather than a judgement of its prose. It carries no threshold, so it holds at any length, and it +says nothing about who wrote anything, which the panel states in as many words. + +A tool that answers everything is easy to build. This is the other kind. + +### Installing it + +**Word on the web** — Home → Add-ins → More Add-ins → My Add-ins → **Upload My Add-in**, and choose +[`src/SignsOfAI.Word/manifest.xml`](src/SignsOfAI.Word/manifest.xml). + +**Word for Windows** has no upload button and reads a shared-folder catalogue instead; the steps are +in [`src/SignsOfAI.Word/README.md`](src/SignsOfAI.Word/README.md). + +First load is about 3.4 MB — the .NET runtime, cached afterwards. It is not in the Office Store yet. + +### PowerPoint is a different product, on purpose + +A deck rarely reaches 649 words, so the same add-in in PowerPoint would mostly do what it did above: +withhold the verdict. Correct, and not much use. What *does* work at slide length is the part with no +threshold — the character scan and the named tells — so the honest question there is **"does this +deck carry a humanizer's fingerprints"**, not "is this AI". That is a different product and it is not +built yet. + +--- + ## Architecture ``` diff --git a/src/SignsOfAI.UI/Components/Icon.razor b/src/SignsOfAI.UI/Components/Icon.razor index 1d7582d..c39f3cc 100644 --- a/src/SignsOfAI.UI/Components/Icon.razor +++ b/src/SignsOfAI.UI/Components/Icon.razor @@ -21,6 +21,7 @@ "close" => "", "lock" => "", "check-circle" => "", + "file-text" => "", "beaker" => "", "scale" => "", "globe" => "", diff --git a/src/SignsOfAI.UI/Pages/Download.razor b/src/SignsOfAI.UI/Pages/Download.razor index 987e9a6..6a24ecd 100644 --- a/src/SignsOfAI.UI/Pages/Download.razor +++ b/src/SignsOfAI.UI/Pages/Download.razor @@ -106,6 +106,30 @@ else

@L.M("dl.zip.body")

+@* Not the desktop app, and placed after it rather than beside it: this is the other way to run the + engine on your own machine, in the application where the document already is. The privacy claim is + the same one and it is the reason this host is worth having at all, so it is stated rather than + implied. *@ +
+

@L["dl.word.title"]

+

@L["dl.word.lede"]

+

@L.M("dl.word.why")

+ +
    +
  • @L.M("dl.word.install.web")
  • +
  • @L.M("dl.word.install.desktop")
  • +
+ +

+ @L["dl.word.manifest"] + · + @L["dl.word.steps"] +

+

@L["dl.word.size"]

+
+ @code { private bool _checkForUpdates; diff --git a/src/SignsOfAI.UI/wwwroot/i18n/en.json b/src/SignsOfAI.UI/wwwroot/i18n/en.json index efc14c4..9bf27bf 100644 --- a/src/SignsOfAI.UI/wwwroot/i18n/en.json +++ b/src/SignsOfAI.UI/wwwroot/i18n/en.json @@ -57,6 +57,14 @@ "dl.add.ollama.browser": "In a browser: refused, unless you reconfigure Ollama’s allowed origins yourself.", "dl.same.title": "What it does not change", "dl.same.body": "The same text gets the same number here and in the browser — it is the same engine, compiled from the same source. Nothing is uploaded to run the analysis. Four optional features can send text off the device and not one of them runs unless you turn it on; in the desktop app the perplexity measurement is local too, so three remain.", + "dl.word.title": "Inside Word, where the writing happens", + "dl.word.lede": "A task pane that reads the open document and answers in the sidebar. Same engine, same rules, same numbers — Word is simply a third place to run it.", + "dl.word.why": "A task pane is a browser, so the engine runs there, on your machine, and the document is never uploaded. Every other add-in of this kind posts your text to an API, because their analysis is a server; ours is not, so there is nothing to post it to. And it asks Word for permission to read your document, never to change it — Word enforces that, rather than asking you to trust a sentence on a website.", + "dl.word.install.web": "Word on the web: Home → Add-ins → More Add-ins → My Add-ins → Upload My Add-in, and choose the manifest.", + "dl.word.install.desktop": "Word for Windows has no upload button and reads a shared folder instead; the steps are written out in the add-in's own page.", + "dl.word.manifest": "The manifest", + "dl.word.steps": "Installing, step by step", + "dl.word.size": "First load is about 3.4 MB — the runtime, cached afterwards. Not in the Office Store yet.", "dl.warn.title": "Windows will warn you, and it is right to", "dl.warn.body": "The download is not code-signed — a certificate is the one thing this project has no funding for. SmartScreen therefore says Windows protected your PC the first time you run it, and names an unknown publisher. The warning is doing its job. Check the file instead of clicking through it:", "dl.warn.step1": "Right-click the downloaded .zip → Properties, and tick Unblock if it is offered.", diff --git a/src/SignsOfAI.UI/wwwroot/i18n/es.json b/src/SignsOfAI.UI/wwwroot/i18n/es.json index 824cc41..3e2e79a 100644 --- a/src/SignsOfAI.UI/wwwroot/i18n/es.json +++ b/src/SignsOfAI.UI/wwwroot/i18n/es.json @@ -57,6 +57,14 @@ "dl.add.ollama.browser": "En el navegador: rechazado, salvo que reconfigures tú mismo los orígenes permitidos de Ollama.", "dl.same.title": "Lo que no cambia", "dl.same.body": "El mismo texto obtiene el mismo número aquí y en el navegador — es el mismo motor, compilado de la misma fuente. No se sube nada para hacer el análisis. Hay cuatro funciones opcionales que pueden enviar texto fuera del dispositivo y ninguna se activa si tú no la activas; en la app de escritorio la medición de perplejidad también es local, así que quedan tres.", + "dl.word.title": "Dentro de Word, donde se escribe", + "dl.word.lede": "Un panel que lee el documento abierto y responde en la barra lateral. El mismo motor, las mismas reglas, los mismos números — Word es sencillamente un tercer sitio donde ejecutarlo.", + "dl.word.why": "Un panel de tareas es un navegador, así que el motor corre ahí, en tu máquina, y el documento no se sube a ningún sitio. Los demás add-ins de este tipo envían tu texto a una API, porque su análisis es un servidor; el nuestro no lo es, así que no hay adónde enviarlo. Y le pide permiso a Word para leer el documento, nunca para cambiarlo — lo impone Word, en vez de pedirte que te fíes de una frase en una web.", + "dl.word.install.web": "Word en el navegador: Inicio → Complementos → Más complementos → Mis complementos → Cargar mi complemento, y elige el manifest.", + "dl.word.install.desktop": "Word para Windows no tiene botón de carga y lee una carpeta compartida; los pasos están escritos en la página del propio add-in.", + "dl.word.manifest": "El manifest", + "dl.word.steps": "Cómo instalarlo, paso a paso", + "dl.word.size": "La primera carga son unos 3,4 MB — el runtime, y después queda en caché. Todavía no está en la tienda de Office.", "dl.warn.title": "Windows te va a avisar, y hace bien", "dl.warn.body": "La descarga no está firmada — un certificado es justo lo que este proyecto no puede costear. Por eso SmartScreen dice Windows protegió su PC la primera vez y habla de un editor desconocido. El aviso está haciendo su trabajo. Comprueba el archivo en vez de saltártelo:", "dl.warn.step1": "Clic derecho en el .zip descargado → Propiedades, y marca Desbloquear si aparece.",