Hard-fail checklist // static output artifact
A static output artifact fails design-system-ASK inheritance if any of the following are present. Treat each as a hard fail, not a stylistic preference.
on this page
Styling fails
- Generic memo, academic-paper, beige/off-white paper, or serif-document styling
- Body copy in a serif typeface
- Default browser tables dominating layout
- The artifact reads as a static Word document or legal-memo PDF
Theme inheritance fails
- A theme is hard-coded on
<html>or<body>(e.g.data-theme="dark") without explicit reason - The artifact does not honor
prefers-color-scheme(the upstreamcolors_and_type.cssresolves it; the artifact must not override) - A JavaScript theme toggle is present without explicit reason
Color discipline fails
- Any color outside the closed palette appears. The core set: the gradient stops (
#E2D3F0/#D4C6E1light;#201D26/#0A090Cdark), white (#FFFFFF, the wordmark pairing — not body text), and the default light-mode foreground#6A637F(the approved dark purple);#201D26doubles as the opt-in high-contrast foreground (not the default here — do not apply by font size, and never a rebind of the gradient-surface foreground ramp; registered uses only — see the next item). Plus surface (#BFB3D4/#C9BCDE) + two UI accents (#8B79A2,#AE87C2) + three emphasis accents (#FF00FF,#AA40FF,#00BEFF). An artifact that adopts the opt-in semantic-state modules,spectral-state.css,evidence-state.cssandreview-semantics.css, loaded by name, may show their role values only where those modules present their roles, each with its visible label: a state or evidence role on its element, or a Review Semantics mark. Its Tier 3 overlay and all other chrome stay in the core set --fg-high-contrastis applied outside the registered-use list in design-system-ASK, under High-contrast foreground — registered uses — the role is opt-in and gated: measured need, explicit ASK authorization, registration there- A semantic green / red / yellow status system appears, other than the sanctioned semantic-state primitive and its profiles (Spectral State, Evidence State, Review State), loaded by name and shown in those roles' own presentations with their visible labels
- Invented hex values appear in the artifact's overlay CSS
- A local
--fg-*/--line-*rebind appears (foreground must be inherited from the foundation ramp, not re-declared at the artifact layer). The only sanctioned token override is the Class B line-intensity overlay (--artifact-line/--artifact-line-soft): white at higher alpha in light mode, foundation lines in dark — white is in-palette and the override is scoped to structural lines, not foreground.
Self-contained / sealed-output fails
- The delivered artifact is not self-contained: it requires the network, a sibling stylesheet, or a sidecar font to render with full styling
- An external
<link>/@import/ live raw-URL stylesheet reference survives into the delivered artifact (the editable template links the local mirror; the delivered artifact must be sealed) - A relative font URL that resolves outside the artifact survives into the delivered artifact (fonts must be embedded at seal time)
- An unreplaced template marker (
[placeholder],0000000, etc.) appears in the delivered artifact - A single-file artifact does not inline the document-register modules verbatim after the foundation, in the template's order —
surface-panel.css,surface-text-link.css,surface-document.css,surface-treatments.css— or a multi-file package does not link them once from its bundle, in that order; or an artifact that adopts Review Semantics does not follow them withspectral-state.css,evidence-state.cssandreview-semantics.css, in that order
Type discipline fails
- Inter is used for code or tabular data
- JetBrains Mono is used for prose body
- Text the document register governs is set outside its roles: a title, heading, paragraph, list item, label, metadata value, code span, quotation, preformatted block or dense table value styled by an element rule or a local type declaration instead of its role, or a heading set smaller than the prose it governs
- The register's rendered check (
node tools/check-role-conformance.mjs --url <artifact>, run from a design-system-ASK checkout at the commit the artifact'sMANIFEST.mdrecords) reports a finding on the delivered artifact, reports it vacuous, or lists any text asunmapped - Weights outside the register's assignment appear. Inter: 200 for body, lede and quotation text; 300 for subsection and entry titles; 400 for document and section titles and the Caption role; 500 only for the deep heading (
h4and deeper) and for strong emphasis. JetBrains Mono: 300, and 500 only for strong emphasis inside a mono role - 600 SemiBold or heavier weights appear
Source-truth fails
- The artifact does not record a design-system-ASK source SHA
- A
MANIFEST.md(or equivalent provenance record) is missing - Live CSS is hot-linked from the upstream repo's raw URL or any live path (static artifacts must freeze inheritance at render time)
- The artifact cannot be audited against a known upstream commit
Tier boundary fails
- Visible design-system-ASK Tier 3 instance identity — the "ASK Design System" branding or the
logo-ASKwordmark — is propagated into the consuming project's artifact unless the consuming project is itself an ASK-instance surface and has explicitly accepted that overlay, or, for thelogo-ASKwordmark alone, ASK has explicitly assigned that wordmark to the consuming project as its locally supplied Tier 3 and the artifact falls within the assignment's recorded scope. An assignment does not make that project ASK-the-entity. - The consuming project's own Tier 3 identity is fused with the upstream Tier 2 design language rather than layered cleanly on top