4 Commits
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
12f1fd54df |
docs: no em dashes in what ae966e8 added
The rule is none in replies, commits, issues, docs or site copy, and the last commit put 40 of them into five documents, two scripts and two comments. Nothing reached the site: dist/ has none, and the content validator refuses U+2014 in src/data. Rewritten by sentence rather than substituted, so the punctuation carries the same meaning it did. scripts/lib/css-audit.js is a copy of another repository's file and its 20 were repunctuated with it. Its header now says so, because "lifted verbatim" would otherwise be a claim a byte diff disproves. The logic is untouched, and the sweep still reports zero findings on all ten devices. The four Batch 19 issue bodies were edited in the tracker for the same reason. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
|
|
|
ae966e8f56 |
fix(ui): header, Cisco logo and tap targets, found by rendering on devices
Every page on ten emulated phones and tablets: 190 loads, 21 blocking and 530 high findings, on pages that had passed Batch 11 and Batch 16. #214 was fixed in v0.9.5 and released still broken. The check was a desktop window sized to 768, which has a scrollbar, so the layout viewport was ~753px and the md breakpoint the fix was about never engaged. At a true 768 the brand, six nav links and the CTA want 787px against 736px of container, so no amount of gap tightening closes it. The desktop row now starts at lg, and 768 to 1023 gets the Sheet menu, which is the better tablet experience regardless: 44px rows instead of 17px ones, and submenus that do not depend on hover. The CTA takes shrink-0 and whitespace-nowrap, so the next row that does not fit overflows visibly instead of being squeezed past the edge while the total still measures as fitting. The Cisco mark fills 66% of its 700x700 canvas, so both tiles scaled it up inside overflow-hidden and cut 13px off the trademark on / and 24px on /about. Cropping the viewBox to the artwork renders it at 62x46 on /, the same size as the 8x8 logo beside it, unscaled and unclipped. 491 standalone links were 17 to 26px tall. .tap-target grows the hit box and takes it back out of the layout, and every list using it moves to space-y-4: at space-y-2 neighbouring boxes overlap and measure 33px while not being there. Footer links also take block, so the row is the target. A 39x36 word is judged as a compact target wanting 44px; a 200x36 row wants 32. scripts/device-sweep.mjs and scripts/lib/css-audit.js are the instrument. They stay out of verify.sh: playwright is global here and the sweep needs a running server, and a guard that cannot run on a clean clone is one that gets skipped. After the fixes: zero blocking, zero high across all ten devices. Each defect was then re-introduced and reported again (clipped x1, media_overflow x1, past_viewport x19, touch_target x342). closes #238 closes #239 closes #240 closes #241 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
|
|
|
aff80334df |
feat(content): publish Levi's approved UC and Contact Center pages
The work this batch exists for. Levi Halford approved two copy sheets on 2026-08-28 and sent them the same day; they were never deployed. Closes #220, #219 and #218. What ships, verbatim from the sheets: /services/unified-communications 1,125 words, 10 sections, 7 FAQs /services/contact-center 2,499 words, 12 sections, 10 FAQs Titles, H1s, hero subheadings and descriptions are the approved strings exactly, including descriptions at 164 and 191 characters, which are emitted whole rather than clamped. Each section opens with its direct answer, because that passage is what a search result or an AI answer quotes. Every section carries a stable, letter-first anchor, so an answer can deep-link to it. The FAQ is visible h3 and p, with no FAQPage markup, as the sheets require. The old copy goes: the unattributed "99.999% uptime reliability" the sheet named, and both pages' short blurbs, which the approved sections now say at length. idealFor stays, because the services index prints it as "Best fit". Levi's two constraints are held and proven, not assumed. The footer is byte for byte identical to the pre-batch build on all 19 pages. The Quick Info box is on both pages, unchanged. Verified against the built HTML, not the source: title, description and H1 match the sheets exactly; all 22 approved H2s and all 17 FAQ questions are present; no website-manager direction survived (checked against 20 phrases); no 99.999, no em dash, no U+FFFD, no markdown. In a browser: no horizontal scroll, no broken image, no console error at 320, 390, 768 and 1024; hydration clean on all 18 pages; all 24 section anchors deep-link correctly. Docs corrected in the same commit, because each would have sent the next writer the wrong way: REDESIGN_REVIEW's metrics lists now carry the owner's 2026-09-10 direction that a figure must be current, vendor-attributed and verified; OVERHAUL_PLAN gains the long-form blueprint and stops recommending an accordion for an FAQ; README stops claiming a server-rendered privacy fallback that never existed, and says what hydration actually does now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
|
|
|
aa1d805e04 |
docs: adopt project template, retire the markdown backlog
This repository is the one the template's README describes: 205 issues, zero
milestones, and severity labels spelled "P0 Critical" / "P1 High" / "P2 Medium",
which privacyllc.dev reports as NOT ADOPTED rather than as 87% complete.
Six markdown records described the same work and none pointed at the tracker.
Two of them said the project was in "Phase 5" while the code was at 0.9.3.
Migrated, then deleted in this commit:
FUTURE.md -> docs/history/BATCH_LEDGER.md (Archived). Its open
items were all already filed as issues, so nothing
needed migrating into the tracker
HISTORY.md -> docs/history/DEVELOPMENT_LOG.md, verbatim, 0 lines lost
DEVELOPMENT_LOG.md -> the same file, as a second labelled block. Not
interleaved: the changelog has three duplicated version
headings, so one date order would have implied more
than the record supports
PROJECT.md -> docs/planning/PROJECT_PLAN.md
STRUCTURE.md -> the agent pipeline into README.md; its versioning rules
retired
BUILD_SUMMARY.md -> BATCH_LEDGER.md. Its embedded SQL schema deliberately
NOT carried: it predated the UNIQUE constraint on
leads.email, and server/index.js owns the schema
SCRIPTS.md -> docs/TOOLS.md, corrected for the SSR + prerender build
Moved with history (git detects all four as renames):
OVERHAUL_PLAN.md, review.md, project-requirements.md, docs/zoho-setup.md
Kept because this project earned them: the five-agent pipeline, the design
system in OVERHAUL_PLAN.md (Status: Current, with a front-note saying which half
is history), the positioning argument in REDESIGN_REVIEW.md, and REQUIREMENTS.md
whole, including its change policy.
Deleted from the template because they do not apply, each said out loud in
DOC_TRUST_MAP.md: QA pass I (no money moves), the authorisation checklist group
and the session-token row (no accounts, no sessions), and one PRECAUTIONARY
paragraph in SECURITY.md about holding credentials on behalf of users — there
are none, and PROJECT_PLAN.md records accounts as out of scope. Pass H was kept
and rewritten: its authorisation half does not apply, its what-a-stranger-can-
reach half is the most exposed surface here.
Also removed: main.js, the old static site's hash router, referenced by nothing
and preserved in .drop/; and test-results/.last-run.json, a May Playwright
artifact reading {"status":"failed"} for a suite that does not exist.
The repository was made private on Forgejo before this commit. That is what let
the internal history be committed rather than exempted — null/fruit-fall is
already private and reports normally.
Two defects found on the way in and fixed here: zoho-setup.md told admins to
edit `server/zoho/`, a directory that has never existed in any commit (the
mapping is in server/index.js), and README.md's route list still advertised
/8x8, removed at 0.6.6, while omitting /privacy-policy.
Branding: icon.webp and logo.webp converted from this project's own marks in
assets/. banner.webp is absent and is filed as an issue rather than faked.
Verified: verify.sh 3/3, doc-claims 71 claimed paths all present, backup and a
first-ever restore of the live leads database (2 tables, 3 rows, under 1s).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Renamed from OVERHAUL_PLAN.md (Browse further)