diff --git a/DESIGN.md b/DESIGN.md index 8a5e8f2..86de6a7 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -110,11 +110,11 @@ Moderately rounded controls and fields sit within larger rounded evidence and de - **Actions:** cobalt primary buttons, white text, restrained background hover; secondary actions use white or transparent backgrounds and blue text. Keyboard focus uses a 3px cobalt outline with 4px offset. Disabled buttons retain their disabled behaviour and reduced opacity. - **Navigation:** native header links preserve real destinations. Active review links use cobalt text and a bottom rule with aria-current. Landing navigation switches to Reviews, Decisions and Follow-up within the operating journey. - **Evidence selectors:** selected state uses pale blue, cobalt text and a labelled selected/pressed state. Findings retain title, explanation and source context. -- **Evidence panels:** tonal backgrounds contain dates, facts, quoted narrative, source files and a separately labelled review question. File names can wrap. +- **Evidence panels:** tonal backgrounds lead with the practical finding, dates, quoted narrative and a separately labelled review question. The finish example states the schedule/update contradiction in its heading. The review finding uses “The finish moved N days. The update needs clarification.” while retaining the exact narrative as evidence. Review provenance sits in “Source files and check time”; exact source identity and fields remain in “Inspect source files and fields”, alongside activity or relationship evidence disclosures. File names can wrap. - **Inputs and decisions:** white fields on tonal panels, visible labels and thin borders. Owner and rationale remain required; conditional decisions retain condition, owner and due date. Persistent errors include recovery guidance. - **Preview and walkthrough:** the clearly labelled synthetic preview reads the real comparison engine. Factual questions are fixed independently of narrative matching. Replay explicitly draws the finish relationship over 700ms; evidence changes use bounded 180ms transitions. No looping motion. Reduced motion removes animation and replay while retaining facts and relationships. Walkthrough records remain disposable and isolated from ordinary decisions. -**The Human Decision Rule.** Interface hierarchy leads from fact to source to question before presenting the action that records a person's decision. +**The Human Decision Rule.** Interface hierarchy leads with the finding and next review question, keeps source evidence easy to inspect, and leaves the decision to a person. ## Do's and Don'ts diff --git a/PRODUCT.md b/PRODUCT.md index b9b6e1b..97a9992 100644 --- a/PRODUCT.md +++ b/PRODUCT.md @@ -47,4 +47,4 @@ No verified customer logos, testimonials, time savings, independent accuracy cla 2. Keep observations, narrative claims, unresolved questions and human decisions distinct. 3. Demonstrate real behaviour with clearly labelled synthetic inputs. 4. State practical limits at the point where they affect interpretation. -5. Make product value understandable to a visitor without hiding the evidence from a practitioner. +5. Make product value understandable to a visitor without hiding the evidence from a practitioner. Lead with the practical finding and next review question; keep source files, check time and exact fields available through labelled disclosures. diff --git a/Processing/tests/browser_change_assurance.py b/Processing/tests/browser_change_assurance.py index 2cd0f86..82fa74c 100644 --- a/Processing/tests/browser_change_assurance.py +++ b/Processing/tests/browser_change_assurance.py @@ -165,7 +165,7 @@ def run_recovery(browser): return results; }""", [(ROOT / "docs/demo/northstar-previous.xer").read_text(), (ROOT / "docs/demo/northstar-current.xer").read_text()]) assert all(rejected.values()), rejected - page.get_by_role("button", name="Use your own XER files").click() + page.get_by_role("button", name="Use your own schedules").click() page.locator("#assurancePrevious").set_input_files(ROOT / "docs/demo/northstar-previous.xer") page.locator("#assuranceCurrent").set_input_files(ROOT / "docs/demo/riverside-current.xer") page.get_by_role("button", name="Check decision readiness").click() diff --git a/Processing/tests/browser_product_landing.py b/Processing/tests/browser_product_landing.py index b14b331..c57ecb6 100644 --- a/Processing/tests/browser_product_landing.py +++ b/Processing/tests/browser_product_landing.py @@ -26,7 +26,7 @@ def landing(browser): page.on("request", lambda request: requests.append((request.method, request.url))) loaded(page) expect(page.locator("#productTitle")).to_have_text("The schedule changed.Did the update explain it?") - expect(page.locator("#exampleTitle")).to_have_text("The finish moves by 73 days.") + expect(page.locator("#exampleTitle")).to_have_text("The finish moves by 73 days. The update says unchanged.") expect(page.locator("#exampleComparison")).to_contain_text("15 Dec 2027") expect(page.locator("#exampleComparison")).to_contain_text("26 Feb 2028") assert page.evaluate("localStorage.getItem('projectlens:change-decisions:v1')") is None diff --git a/docs/change-assurance.html b/docs/change-assurance.html index e0c8258..850985a 100644 --- a/docs/change-assurance.html +++ b/docs/change-assurance.html @@ -54,10 +54,10 @@

The schedule changed.
Did the update explain it?

-

Compare two Primavera P6 schedules with the project update. See the evidence behind the movement, then record a human decision.

+

Compare two project schedules from Primavera P6 planning software with the project update. See the evidence behind the movement, then record a human decision.

- +

Runs in your browser. Your schedule files stay with you.

@@ -70,7 +70,7 @@

The schedule changed.
Did the update explain it?

-

The finish moves by 73 days.

+

The finish moves by 73 days. The update says unchanged.

Previous finish15 Dec 2027
+73 days
Current finish26 Feb 2028
The update says
“The key completion date is unchanged.”
The schedules show

Scheduled finish moves by 73 days.

Next review question

What explains the revised finish?

@@ -114,7 +114,7 @@

Follow one complete review.

Add your two XER files

-

Export both schedules from Primavera P6 (File → Export → Primavera XER): the previous submission and the current one. Your browser reads the files and uploads nothing. Add the narrative if you want ProjectLens to check what the update claims.

+

XER is the schedule export format from Primavera P6 planning software. Export both schedules (File → Export → Primavera XER): the previous submission and the current one. Your browser reads the files and uploads nothing. Add the narrative if you want ProjectLens to check what the update claims.

No XER files to hand? Download a synthetic pair from either example project and choose the files below: Northstar previous · Northstar current · Riverside previous · Riverside current. Optional narrative: Riverside narrative.

@@ -144,7 +144,7 @@

Follow one complete review.