From 12e5bb8bf121fd81888de4dd0c57501768f46b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Hern=C3=A1ndez?= Date: Mon, 24 Aug 2026 15:11:39 -0400 Subject: [PATCH] Cut 0.5.0, so today's correction reaches somebody MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The web app has had the length floor since the merge, because Pages deploys on push. Everyone else is on 0.4.0: the Windows app, and every project that took a dependency on SignsOfAI.Core. So the same paragraph gets "Signs of AI writing" from a downloaded build and no verdict at all from the browser tab beside it, which is precisely the drift VerdictBands exists to prevent — one engine giving two answers about the same text, across a distribution boundary instead of a code one. What 0.5.0 carries, in the order it matters to somebody using it: - The verdict has a length condition (#59). Below the shortest text the boundary was measured on — 662 words — the score stands alone and the page says why. The evidence is untouched. - Six chat.* rules: the assistant's own turn left inside a document, in both languages, and the published false-positive rate did not move to carry them. - A page that explains the Windows app and offers it, instead of a GitHub releases search URL. - The desktop app says which build it is, and can ask whether to look for a newer one. The calibration is restamped so the report signs itself 0.5.0 rather than quoting a threshold under a version that never measured it. Same corpus fingerprint, same 0 of 90, same 4.1%. Also corrected in the MCP manifest: it still said "the other seven tools never call it" from before write_report shipped. Ten tools, eight of them offline. The README was fixed in #46 and this file was missed. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_015PEbbiYSNPw7jE3LrPNhyF --- Docs/CALIBRATION.md | 2 +- src/SignsOfAI.Cli/SignsOfAI.Cli.csproj | 2 +- src/SignsOfAI.Core/Calibration/published-calibration.json | 2 +- src/SignsOfAI.Core/SignsOfAI.Core.csproj | 2 +- src/SignsOfAI.Mcp/.mcp/server.json | 6 +++--- src/SignsOfAI.Mcp/SignsOfAI.Mcp.csproj | 2 +- src/SignsOfAI.UI/Services/DesktopRelease.cs | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Docs/CALIBRATION.md b/Docs/CALIBRATION.md index 9f76d68..7d22b83 100644 --- a/Docs/CALIBRATION.md +++ b/Docs/CALIBRATION.md @@ -11,7 +11,7 @@ It is **not an accuracy figure**. Accuracy needs machine-written text to measure - **Corpus** `signsofai-human-baseline`, fingerprint `123fa5b9ebca3f29` - **Texts** 90 (280,221 words) - **Lengths measured** 662 – 9,328 words (median 2,772) -- **Engine** SignsOfAI.Core 0.4.0 +- **Engine** SignsOfAI.Core 0.5.0 - **Run** 2026-08-24 - **Target false-positive rate** 5% diff --git a/src/SignsOfAI.Cli/SignsOfAI.Cli.csproj b/src/SignsOfAI.Cli/SignsOfAI.Cli.csproj index 0b11d8d..9b238cb 100644 --- a/src/SignsOfAI.Cli/SignsOfAI.Cli.csproj +++ b/src/SignsOfAI.Cli/SignsOfAI.Cli.csproj @@ -13,7 +13,7 @@ true signsofai SignsOfAI.Cli - 0.4.0 + 0.5.0 Pedro Hernández (PeopleWorks) PeopleWorks CLI to detect the signs of AI writing (English & Spanish) and recommend fixes — lint your prose in CI. diff --git a/src/SignsOfAI.Core/Calibration/published-calibration.json b/src/SignsOfAI.Core/Calibration/published-calibration.json index d87f4e3..0b68c5c 100644 --- a/src/SignsOfAI.Core/Calibration/published-calibration.json +++ b/src/SignsOfAI.Core/Calibration/published-calibration.json @@ -1 +1 @@ -{"corpusId":"signsofai-human-baseline","texts":90,"measuredOn":"2026-08-24","engine":"0.4.0","recommendedThreshold":25,"flaggedAtThreshold":0,"rateLow":0,"rateHigh":0.04093562618368095,"shortestWords":662,"longestWords":9328,"noisiestRules":[{"ruleId":"stat.burstiness","textShare":0.2777777777777778},{"ruleId":"rhet.in-terms-of","textShare":0.1},{"ruleId":"rhet.not-only-but","textShare":0.08888888888888889},{"ruleId":"rhet.in-order-to","textShare":0.07777777777777778},{"ruleId":"lex.furthermore","textShare":0.07777777777777778},{"ruleId":"lex.robust","textShare":0.07777777777777778},{"ruleId":"lex.just","textShare":0.07777777777777778},{"ruleId":"lex.simply","textShare":0.07777777777777778}],"languages":[{"language":"en","texts":65,"recommendedThreshold":null,"bestBound":0.05580153215404492},{"language":"es","texts":25,"recommendedThreshold":null,"bestBound":0.13319225276039096}]} +{"corpusId":"signsofai-human-baseline","texts":90,"measuredOn":"2026-08-24","engine":"0.5.0","recommendedThreshold":25,"flaggedAtThreshold":0,"rateLow":0,"rateHigh":0.04093562618368095,"shortestWords":662,"longestWords":9328,"noisiestRules":[{"ruleId":"stat.burstiness","textShare":0.2777777777777778},{"ruleId":"rhet.in-terms-of","textShare":0.1},{"ruleId":"rhet.not-only-but","textShare":0.08888888888888889},{"ruleId":"rhet.in-order-to","textShare":0.07777777777777778},{"ruleId":"lex.furthermore","textShare":0.07777777777777778},{"ruleId":"lex.robust","textShare":0.07777777777777778},{"ruleId":"lex.just","textShare":0.07777777777777778},{"ruleId":"lex.simply","textShare":0.07777777777777778}],"languages":[{"language":"en","texts":65,"recommendedThreshold":null,"bestBound":0.05580153215404492},{"language":"es","texts":25,"recommendedThreshold":null,"bestBound":0.13319225276039096}]} diff --git a/src/SignsOfAI.Core/SignsOfAI.Core.csproj b/src/SignsOfAI.Core/SignsOfAI.Core.csproj index 19bcdea..9139a18 100644 --- a/src/SignsOfAI.Core/SignsOfAI.Core.csproj +++ b/src/SignsOfAI.Core/SignsOfAI.Core.csproj @@ -10,7 +10,7 @@ SignsOfAI.Core - 0.4.0 + 0.5.0 Pedro Hernández (PeopleWorks) PeopleWorks The engine behind Signs of AI Writing: detects the stylometric tells of AI-generated text (English & Spanish) — overused vocabulary, rhetorical crutches, syntactic tells and burstiness — and returns an actionable fix for each finding. No external dependencies. diff --git a/src/SignsOfAI.Mcp/.mcp/server.json b/src/SignsOfAI.Mcp/.mcp/server.json index 97bef18..46d39be 100644 --- a/src/SignsOfAI.Mcp/.mcp/server.json +++ b/src/SignsOfAI.Mcp/.mcp/server.json @@ -1,7 +1,7 @@ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", "name": "io.github.peopleworks/signs-of-ai", - "version": "0.4.0", + "version": "0.5.0", "title": "Signs of AI Writing", "description": "AI-writing detection (EN/ES) that shows the evidence: named tells, hidden characters, citations.", "packages": [ @@ -9,7 +9,7 @@ "registryType": "nuget", "registryBaseUrl": "https://api.nuget.org/v3/index.json", "identifier": "SignsOfAI.Mcp", - "version": "0.4.0", + "version": "0.5.0", "transport": { "type": "stdio" }, @@ -18,7 +18,7 @@ "environmentVariables": [ { "name": "SIGNSOFAI_API_ENDPOINT", - "description": "Base URL of the SignsOfAI API used by the two optional server-backed tools (measure_predictability, check_paraphrase). Defaults to the PeopleWorks-hosted endpoint. The other seven tools never call it.", + "description": "Base URL of the SignsOfAI API used by the two optional server-backed tools (measure_predictability, check_paraphrase). Defaults to the PeopleWorks-hosted endpoint. The other eight tools never call it.", "isRequired": false, "isSecret": false } diff --git a/src/SignsOfAI.Mcp/SignsOfAI.Mcp.csproj b/src/SignsOfAI.Mcp/SignsOfAI.Mcp.csproj index 6629a4e..382a9b0 100644 --- a/src/SignsOfAI.Mcp/SignsOfAI.Mcp.csproj +++ b/src/SignsOfAI.Mcp/SignsOfAI.Mcp.csproj @@ -12,7 +12,7 @@ true signsofai-mcp SignsOfAI.Mcp - 0.4.0 + 0.5.0 Pedro Hernández (PeopleWorks) PeopleWorks Model Context Protocol (MCP) server for Signs of AI Writing. Exposes the engine as tools — analyze text for AI tells, check originality between documents, search the sign catalog, extract distinctive phrases, and (optionally, via the hosted API) measure perplexity and find paraphrases — to Claude Desktop and any MCP client. diff --git a/src/SignsOfAI.UI/Services/DesktopRelease.cs b/src/SignsOfAI.UI/Services/DesktopRelease.cs index 567173d..af5b976 100644 --- a/src/SignsOfAI.UI/Services/DesktopRelease.cs +++ b/src/SignsOfAI.UI/Services/DesktopRelease.cs @@ -20,7 +20,7 @@ namespace SignsOfAI.UI.Services; public static class DesktopRelease { /// The published version, without the desktop-v prefix its tag carries. - public const string Version = "0.4.0"; + public const string Version = "0.5.0"; /// /// The .zip itself, so the button downloads rather than starting a scavenger hunt through a