Sharpen the site into a pre-commitment feasibility gate - #5
Merged
Conversation
Phase 1 of PLAN.md. The visual identity, hero headline, survey plates, contour generator, palette, typography, grid and motion language are unchanged; what changes is what the site claims to be. The previous copy could be read as a beautiful workforce-analysis consultancy. It now sells one thing: a pre-commitment talent feasibility gate for a named business decision, with the wedge stated in the hero so a visitor can self-select out in one screen. Narrative: - Hero: paid design-partner program, Sweden first; the decision the gate runs before; the wedge (10-25 critical roles, 1-3 Nordic locations, 90 days). - One CTA name everywhere: "Discuss one workforce decision". - Gate: "One workforce plan enters. A go, change, or stop decision leaves." Stage definitions sharpened; console relabelled illustrative decision logic. - Decisions become triggers: when to run the gate, not questions to ponder. - Pilot is unmistakably paid and founder-led; price uncertainty replaced with Format. "Pre-product" candour replaced with design-partner stage. - Positioning becomes "Where Capasight sits": a decision layer over four named inputs, with the excluded-categories list moved to the FAQ rather than giving competitors the centre of the page. - Footer drops the repository link and carries a Stockholm provenance line. Config is split so the verifier can check real records rather than regexing source: copy.ts, claims.ts and scenarios.ts are free of Astro env imports, and site.ts alone resolves the booking URL. The evidence gate gains three rules. Illustrative scenarios may carry no counts at all — an "illustrative" label does not stop "18 roles" reading as measurement — unless a record declares dataClass: 'user-provided-sample'. Durations are still allowed; counts are not. It also rejects copy that claims a customer, partnership, data right, proof or ROI that does not exist. Writing these rules caught two counts I had missed. Booking URLs are now checked for placeholders and rejected in production. The CTA is still a placeholder, so the ban is suspended by an explicit, greppable ALLOW_PLACEHOLDER_BOOKING_URL: while it is set, the placeholder test reports as skipped with its reason rather than passing, so the gap stays visible in CI. Enforcement is one deleted variable away. On mobile the masthead gives up the wordmark's text rather than shortening the CTA, so the action keeps one name everywhere it appears. 93 Playwright tests pass on Chromium, Firefox and WebKit; 3 skipped are the placeholder gate. Lint and astro check clean; no axe violations; no horizontal overflow at 360/768/1024/1440. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 1 of PLAN.md. The visual identity is deliberately untouched — hero headline, survey plates, contour generator, palette, typography, grid, spacing and motion language are all unchanged. What changes is what the site claims to be.
The previous copy could be read as a beautiful workforce-analysis consultancy. It now sells one thing: a pre-commitment talent feasibility gate for a named business decision, with the wedge stated in the hero so a visitor can self-select out in one screen.
Narrative
What the plate argues for→Decision implication.Format. "Pre-product" replaced with design-partner stage.Enforcement, not intention
Config is split so the verifier checks real typed records rather than regexing source:
copy.ts,claims.tsandscenarios.tsare free of Astro env imports;site.tsalone resolves the booking URL.The evidence gate gains three rules:
18 rolesreading as measurement. Durations ("three quarters") are allowed; counts are not. A record opts out only viadataClass: 'user-provided-sample', meaning the figures are the customer's own. Writing this rule caught two counts I had missed.The placeholder ban is suspended by an explicit, greppable
ALLOW_PLACEHOLDER_BOOKING_URL. While it is set, theno production CTA is a placeholdertest reports as skipped with its reason in every CI run rather than quietly passing. Enforcement is one deleted variable away.This knowingly misses the plan's "No live link is a placeholder" Definition of Done, per an explicit decision to ship the narrative now.
Quality
93 Playwright tests pass on Chromium, Firefox and WebKit (3 skipped = the placeholder gate). Lint and
astro checkclean, no axe violations, no horizontal overflow at 360/768/1024/1440. On mobile the masthead gives up the wordmark's text rather than shortening the CTA, so the action keeps one name everywhere.🤖 Generated with Claude Code