From 559750764f5e0f6717b9aa1eae5eddcb1ae794b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Hern=C3=A1ndez?= Date: Mon, 10 Aug 2026 13:40:53 -0400 Subject: [PATCH] Name the four things a teacher came to do, instead of the engines that do them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pages were never the problem. The baseline page's own heading is already "Does this look like the person who wrote the others?" and the originality page opens with "Did they write it or copy it?" — both in the reader's words. The navigation hid every one of them behind the name of its machinery: Analyse, Originality, Baseline, Catalogue, Folder. Nobody arrives wanting a baseline. They arrive with thirty essays and one that felt wrong. So the front door now asks what you need to do, and the navigation says it too: Analizar → Un texto Analyse → One text Carpeta → Una carpeta Folder → A folder Referencia→ La misma persona Baseline → The same person Originalidad → Coincidencias Originality → Overlap "Coincidencias" over "Originalidad" is not only shorter. The page shows the passages two documents share and says outright that you judge; calling it originality implies a verdict on originality that the tool refuses to give. Four cards above the editor, in the order a teacher's week actually runs — the stack of submissions before the single text, because the single text is usually the second step of the same afternoon. Deliberately not a wizard and not a filter: it routes and it explains, and the editor is still directly below, so somebody who came to paste a paragraph loses one short band of page. Two details that are the point rather than the polish: - The folder card stays in a browser, where scanning a folder is impossible, and says "in the desktop app" **before** the click. Hiding it would leave a browser visitor believing the product cannot do this at all — the lowest-common-denominator answer HostCapabilities exists to avoid — and sending them to a page that explains why, with no warning on the card, is a small bait this project cannot afford. - The current task is shown, not hidden. A chooser that omits where you already are makes the reader wonder what they missed. And the tagline stops being a paragraph about live highlighting and states the claim: we show you the evidence, not just a percentage. True for the teacher and for the writer, which the old one was not. Verified by rendering rather than by reading: English and Spanish, and the grid measured at four widths — one column at 390 and 430, three at 700, four at 900, no horizontal overflow at any of them, and none contributed by this band. The eight task keys are built from a list at run time, so a text search cannot see them and a deleted one would render as the raw key on the front door. They are registered as computed keys, which the locale guard proved by failing when one was removed. Co-Authored-By: Claude Opus 5 --- src/SignsOfAI.UI/Components/TaskEntry.razor | 72 +++++++++++++++++++ src/SignsOfAI.UI/Layout/MainLayout.razor | 7 +- src/SignsOfAI.UI/Pages/Home.razor | 5 ++ src/SignsOfAI.UI/wwwroot/css/app.css | 63 ++++++++++++++++ src/SignsOfAI.UI/wwwroot/i18n/en.json | 22 ++++-- src/SignsOfAI.UI/wwwroot/i18n/es.json | 22 ++++-- tests/SignsOfAI.Core.Tests/LocaleFileTests.cs | 16 +++-- 7 files changed, 189 insertions(+), 18 deletions(-) create mode 100644 src/SignsOfAI.UI/Components/TaskEntry.razor diff --git a/src/SignsOfAI.UI/Components/TaskEntry.razor b/src/SignsOfAI.UI/Components/TaskEntry.razor new file mode 100644 index 0000000..40579b2 --- /dev/null +++ b/src/SignsOfAI.UI/Components/TaskEntry.razor @@ -0,0 +1,72 @@ +@* The front door, organised by what the reader came to do rather than by which engine runs. + + The pages behind this already speak the right language — the baseline page's own heading is + literally "Does this look like the person who wrote the others?" — but the navigation hid every + one of them behind the name of its machinery: Analyse, Originality, Baseline, Catalogue, Folder. + A teacher does not arrive wanting a baseline. They arrive with thirty essays and one that felt + wrong, and nothing on the page told them which of the five things was theirs. + + Deliberately not a wizard and deliberately not a filter. It routes and it explains; the editor is + still directly below, so the person who came to paste a paragraph loses one short band of page + and nothing else. The current task is shown rather than hidden, because a chooser that omits + where you already are makes the reader wonder what they missed. + + The folder card always links, including in a browser where scanning a folder is impossible: that + page states why and points at the download. Hiding the card would leave the browser visitor + believing the product cannot do it at all, which is the lowest-common-denominator answer + HostCapabilities exists to avoid. *@ +@inherits LocalizedComponent +@inject IFolderBatch Folders + + + +@code { + /// Which of the four the reader is already on. Empty on a page that is none of them. + [Parameter] public string Current { get; set; } = ""; + + private sealed record Task(string Key, string Href); + + // Ordered by how often a teacher's week starts there, not by how the code is arranged: the stack + // of submissions comes before the single text, because the single text is usually the second + // step of the same afternoon. + private static readonly Task[] Tasks = + [ + new("text", ""), + new("folder", "batch"), + new("person", "baseline"), + new("overlap", "originality"), + ]; +} diff --git a/src/SignsOfAI.UI/Layout/MainLayout.razor b/src/SignsOfAI.UI/Layout/MainLayout.razor index ac0c856..8c72654 100644 --- a/src/SignsOfAI.UI/Layout/MainLayout.razor +++ b/src/SignsOfAI.UI/Layout/MainLayout.razor @@ -10,15 +10,16 @@ @L["nav.builtwith"] diff --git a/src/SignsOfAI.UI/Pages/Home.razor b/src/SignsOfAI.UI/Pages/Home.razor index 17ce2c1..49405e8 100644 --- a/src/SignsOfAI.UI/Pages/Home.razor +++ b/src/SignsOfAI.UI/Pages/Home.razor @@ -22,6 +22,11 @@

@L["home.privacy"]

+@* Between the claim and the editor, because the reader who came to paste a paragraph should still + see the box without scrolling, and the one who came with thirty essays should not have to guess + that "Baseline" in the navigation was theirs. *@ + +