Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions apps/surfaces-web/app/homepage-content.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,18 +92,18 @@
>
<div class="hero-copy-shell shell">
<div class="hero-copy">
<p class="eyebrow">For teams reviewing agent-produced UI changes</p>
<h1 id="hero-title">Turn UI review decisions into guidance.</h1>
<p class="eyebrow">For teams turning UI review into reusable guidance</p>
<h1 id="hero-title">Make every release decision reusable.</h1>
<p class="hero-lead">
We’re testing how prior decisions can guide later UI reviews, with an owner
confirming or correcting proposed guidance.
Resolve clear, repeated violations sooner, so senior judgment stays focused on
what’s genuinely new or contested.
Comment thread
mikeylong marked this conversation as resolved.
</p>
<div class="action-row">
<a
class="button button-primary"
href="#product-direction"
>
See the workflow
See how it works
<svg viewBox="0 0 24 24" aria-hidden="true" data-lucide-id="arrow-right">
<path d="M5 12h14"></path>
<path d="m12 5 7 7-7 7"></path>
Expand All @@ -112,9 +112,9 @@ <h1 id="hero-title">Turn UI review decisions into guidance.</h1>
<a
class="button button-secondary"
href="mailto:mike@surfaces.systems?subject=A%20recent%20interface%20release%20decision&amp;body=Hi%20Mike%2C%0A%0AI%E2%80%99d%20like%20to%20compare%20notes%20on%3A%0A%0A%5B%20%5D%20AI%20UX%20when%20interfaces%20can%20act%20or%20decide%0A%5B%20%5D%20What%20Human%20Above%20The%20Loop%20should%20look%20like%20in%20practice%0A%5B%20%5D%20Something%20else%3A"
aria-label="Email a release decision to Mike"
aria-label="Share a recent release decision by email with Mike"
>
Email a release decision
Share a recent release decision
</a>
</div>
</div>
Expand Down
17 changes: 8 additions & 9 deletions apps/surfaces-web/tests/home-page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,19 @@ function renderHomeDocument() {
}

describe("surfaces.systems home page", () => {
it("leads with the proposed decision-to-guidance workflow and its testing stage", () => {
it("restores the approved masthead and preserves the proposed decision-to-guidance workflow", () => {
const { page, html } = renderHomeDocument();
const sectionMarkers = Array.from(
page.querySelectorAll("[data-contract-section]"),
(element) => element.getAttribute("data-contract-section"),
);

expect(page.querySelector("h1")?.textContent?.replace(/\s+/g, " ").trim()).toBe(
"Turn UI review decisions into guidance.",
"Make every release decision reusable.",
);
expect(
page.querySelector(".hero-copy > .eyebrow")?.textContent?.replace(/\s+/g, " ").trim(),
).toBe("For teams reviewing agent-produced UI changes");
).toBe("For teams turning UI review into reusable guidance");
expect(page.querySelector(".hero-copy > .eyebrow + h1")?.id).toBe("hero-title");
expect(homepageCss).toMatch(
/\.surfaces-homepage \.hero \.eyebrow\s*\{[^}]*text-transform:\s*uppercase;/,
Expand All @@ -67,7 +67,7 @@ describe("surfaces.systems home page", () => {
);
const heroLead = page.querySelector(".hero-lead")?.textContent?.replace(/\s+/g, " ").trim();
expect(heroLead).toBe(
"We’re testing how prior decisions can guide later UI reviews, with an owner confirming or correcting proposed guidance.",
"Resolve clear, repeated violations sooner, so senior judgment stays focused on what’s genuinely new or contested.",
);
expect(
page.querySelector("#workload-title")?.textContent?.replace(/\s+/g, " ").trim(),
Expand Down Expand Up @@ -160,7 +160,7 @@ describe("surfaces.systems home page", () => {
]);
expect(
heroActions.map((link) => link.textContent?.replace(/\s+/g, " ").trim()),
).toEqual(["See the workflow", "Email a release decision"]);
).toEqual(["See how it works", "Share a recent release decision"]);

const emailLinks = Array.from(page.querySelectorAll('a[href^="mailto:"]'));
const emailLink = emailLinks[0];
Expand All @@ -176,10 +176,10 @@ describe("surfaces.systems home page", () => {

expect(emailLinks).toHaveLength(1);
expect(emailLink?.textContent?.replace(/\s+/g, " ").trim()).toBe(
"Email a release decision",
"Share a recent release decision",
);
expect(emailLink?.getAttribute("aria-label")).toBe(
"Email a release decision to Mike",
"Share a recent release decision by email with Mike",
);
expect(emailLink?.matches(".button.button-secondary")).toBe(true);
expect(emailLink?.getAttribute("href")).toBe(emailHref);
Expand Down Expand Up @@ -267,12 +267,11 @@ describe("surfaces.systems home page", () => {
});

it("keeps standalone and root metadata inside a concise hypothesis boundary", () => {
const publicSources = `${homepageContentSource}\n${layoutSource}`;
const publicSources = `${homepageContentSource.split("</head>")[0]}\n${layoutSource}`;

expect(publicSources).toContain(
"UI Review Decisions and Guidance | Surfaces",
);
expect(publicSources).toContain("Turn UI review decisions into guidance.");
expect(publicSources).toContain(
"Surfaces is testing how prior decisions can guide later UI reviews, with an owner confirming or correcting proposed guidance.",
);
Expand Down
Loading