| โ ๏ธ The 'also' emoji '[emoji]' in step [index] shadows a primary emoji in [path] |
53 |
๐ก The 'also' emoji is already the primary emoji of another step โ first-match-wins in config order applies, which may be surprising |
| โ Cannot read git commit hash from [path] (๐ฌio_kind)
๐ก Check repository integrity or use --suffix-timestamp |
50 |
๐ก The git hash is used for atomic deployment suffixes โ if git is unavailable, use an alternative suffix mode |
| โ ๏ธ Source file '[source]' (step [step]) contains token '[token]' from earlier step (emoji [emoji]) โ this token **will not be replaced**. Consider reordering steps or using a different emoji. |
53 |
๐ก Include tokens are only replaced within the page step they follow โ earlier-step tokens are invisible to later steps |
| unclosed block |
|
|
| bare '@' not followed by identifier |
|
|
| unexpected closing brace |
|
|
| unterminated string |
|
|
| โ ๏ธ CSS parse error in '[path]' (line [line], column [column]): [excerpt] |
53 |
๐ก Check for unclosed braces, missing semicolons, or invalid property syntax at the indicated location |
| โ ๏ธ Could not read some CSS source files for structure checks โ not valid UTF-8: ๐งฎquantity_count_encoding; permission or access denied: ๐งฎquantity_count_permission; other: ๐งฎquantity_count_other |
53 |
๐ก Those files were omitted from the CSS structure scan โ fix encoding, permissions, or paths, or expect incomplete coverage |
| Deploy directory set: [path] |
|
|
| โ Git repository at [path] has no commits
๐ก Make an initial commit or use --suffix-timestamp instead |
50 |
๐ก A git hash suffix requires at least one commit in the repository |
| โ ๏ธ aria-hidden on interactive element in '[path]': aria-hidden="true" on a focusable element removes it from the accessibility tree while keeping it keyboard-reachable โ use display:none or remove the element instead. |
53 |
๐ก Users can still Tab to this element but screen readers won't announce it โ this creates a confusing experience |
| โ ๏ธ ARIA reference to missing id in '[path]': [attribute]="[id]" references an id that does not exist in this page. |
53 |
๐ก Add an element with id="[id]" to the page, or fix the ARIA reference to use an existing id |
| โ ๏ธ Div-soup detected in '[path]': [count] <div> elements with no semantic sectioning elements. Use <main>, <nav>, <article>, <section>, <header>, <footer>, or <aside> instead. |
53 |
๐ก Semantic HTML elements improve accessibility and SEO โ replace layout <div> elements with appropriate HTML5 tags |
| โ ๏ธ Duplicate id attribute in '[path]': id='[id]' appears more than once. Each id must be unique within a page. |
53 |
๐ก Use class attributes for shared styling โ id must be unique per page for links and JavaScript to work correctly |
| โ ๏ธ Embedded <style> tag in '[path]': move styles to an external stylesheet linked with <link rel="stylesheet"> instead. |
53 |
๐ก External stylesheets are cached by browsers and can be shared across pages |
| โ ๏ธ Heading hierarchy skip in '[path]': [tag] follows [other tag] (levels must not skip) |
53 |
๐ก Headings should follow a logical sequence (h1 โ h2 โ h3) without skipping levels |
| โ ๏ธ Inline style attribute in '[path]': found style="..." on <[tag]>. Move styles to an external stylesheet linked with <link rel="stylesheet">. |
53 |
๐ก External stylesheets are cached by browsers and keep content separate from presentation |
| โ ๏ธ Invalid ARIA role in '[path]': role="[name]" is not a valid ARIA role. See https://www.w3.org/TR/wai-aria/#role_definitions for valid values. |
53 |
๐ก Common valid roles: banner, navigation, main, complementary, contentinfo, search, form, region |
| โ ๏ธ Missing alt attribute on <img> in '[path]': add alt="" for decorative images or descriptive alt text for meaningful images. |
53 |
๐ก Screen readers use alt text to describe images โ use alt="" (empty) only for purely decorative images |
| โ ๏ธ No <h1> element in '[path]': pages with heading elements should have exactly one <h1> as the page title. |
53 |
๐ก Add an <h1> element as the main page title for accessibility and SEO |
| โ ๏ธ Missing lang attribute on <html> in '[path]': add lang="en" (or the appropriate language code) so screen readers pronounce content correctly. |
53 |
๐ก Add lang="en" to your <html> tag (or the appropriate BCP 47 language code for your content) |
| โ ๏ธ Multiple <h1> elements in '[path]': pages should have exactly one <h1> |
53 |
๐ก Use <h2> or lower for section headings โ the <h1> should be the single page title |
| โ ๏ธ Non-conforming HTML element in '[path]': <[tag]> is not valid HTML5 โ use CSS or a modern semantic equivalent. |
53 |
๐ก Deprecated elements like <center>, <font>, and <marquee> should be replaced with CSS styling |
| โ ๏ธ HTML parse error in '[path]': [excerpt] |
53 |
๐ก Check for malformed tags, unclosed elements, or invalid attribute syntax |
| โ ๏ธ Unlabeled form input in '[path]': <input> element has no associated label, aria-label, or title attribute. |
53 |
๐ก Use <label for="id"> or aria-label="description" so assistive technology can identify the input |
| โ Invalid TOML in include source file [path]: [error message] |
52 |
๐ก Fix the TOML syntax in that file โ unclosed tables or string quotes are common causes |
| โ ๏ธ (not configured) |
53 |
๐ก Used when expanding include step path validation to show the fallback column |
| โ ๏ธ Include step [emoji] has no accessible path (primary '[primary path]'; fallback [fallback path]). Pages still reference:
[tokens] |
53 |
๐ก The configured include directory or file does not exist โ fix the path, add a valid fallback, or remove tokens that use this step |
| โ Invalid git HEAD format in [path]
๐ก Check repository integrity or use --suffix-timestamp |
50 |
๐ก The .git/HEAD file should contain a ref pointer or a commit hash โ try `git status` to check |
| โ Leftover token '[token]' in [template] โ emoji [emoji] is not configured anywhere (possible typo) |
50 |
๐ก Check that the emoji matches a [[step]] in ssi-config.toml โ this emoji is not used by any step |
| โ Leftover token '[token]' in [template] - key not found in [emoji] source |
50 |
๐ก The emoji is configured but the key doesn't match any file or data entry โ check for typos in the token name |
| โ Leftover token '[token]' in [template] โ emoji [emoji] is configured for a non-include step, not includes |
50 |
๐ก Non-include-step emojis cannot be used as include tokens โ use an emoji from an include step instead |
| โ ๏ธ Case mismatch in '[path]': '[URL]' does not match filesystem (found as '[expected value]') |
53 |
๐ก Many web servers are case-sensitive โ update the link to match the exact filename case |
| โ ๏ธ file: URL in '[path]': '[URL]' โ file: URLs are local paths and will not work in a web browser |
53 |
๐ก Replace the file: URL with a relative path or a proper https: URL; file: URLs are local-only and should not appear in deployed HTML |
| โ ๏ธ Missing anchor in '[path]': '[URL]' references anchor '[anchor]' which does not exist in the target |
53 |
๐ก Add an element with id="[anchor]" to the target page, or fix the link's #anchor |
| โ Broken link in '[path]': target '[URL]' does not exist |
52 |
๐ก Check the href for typos โ the linked file must exist in the deployed output |
| โ Template output path '[path]' cannot be normalized to a site-relative path (too many '..' segments escape above the site root) |
52 |
๐ก This path should be produced by the pipeline; check step paths and output configuration for invalid relative segments |
| โ Loose ref file at ๐ฌpaths_ref_path contains an invalid hash โ possibly corrupt or tampered git state
๐ก Check repository integrity or use --suffix-timestamp |
50 |
๐ก The loose ref file should contain a 40- or 64-character hex git object hash โ try `git fsck` to check repository health |
| โ ๏ธ Missing include sources (referenced but files don't exist):
[tokens] |
53 |
๐ก Your pages reference these tokens but the corresponding source files are missing โ create them or remove the tokens |
| โ Not in a git repository (searched from [path]): ๐ฌio_kind
๐ก Use --suffix-timestamp or --suffix-length instead of git hash |
50 |
๐ก Git hash suffixes require the source directory to be inside a git repository |
| โ ๏ธ Orphaned include files (generated but not referenced):
[file list] |
53 |
๐ก These files are in your include source but no page uses their tokens โ remove them or add the tokens to a page |
| โ ๏ธ Include step [emoji] ('[path]') appears before all page steps and is invisible to every page โ its tokens will **never** be substituted. Move this step after at least one page step. |
53 |
๐ก The step order in ssi-config.toml matters โ page steps must come before include steps that should apply to them |
| โ ๏ธ Output path '[path]' is written by step [emoji] and also by step [other emoji] โ later step wins |
53 |
๐ก Use different destination paths or remove one of the conflicting steps |
| โ Found subdirectories in [type] source '[source]' |
50 |
๐ก This source type does not process subdirectories โ move files to the top level or use a different source type |
| โ Could not read page source '[source]' at [path] to check for subdirectories: [error message] |
50 |
๐ก The subdirectory pre-check was skipped; fix permissions or the path, or expect a clearer error when the pipeline reads this directory |
| โ ๏ธ Token key '[key]' contains invalid character U+[error code] โ token key bodies may only contain alphanumeric characters, underscores, and hyphens |
53 |
๐ก Rename the source file to use only ASCII letters, digits, underscores, and hyphens |
| โ ๏ธ Token key is empty โ empty keys produce invalid automaton behavior and are rejected |
53 |
๐ก Ensure all source files and TOML keys have non-empty names |
| โ ๏ธ Token key '[key]' ends with U+[error code] โ token keys should end with alphanumeric characters |
53 |
๐ก Rename the source file to end with an alphanumeric character (letter or digit) |
| โ ๏ธ Token key '[key]' starts with U+[error code] โ token keys should start with alphanumeric characters |
53 |
๐ก Rename the source file to start with an alphanumeric character (letter or digit) |
| Skipping '[path]' during unicode scan: I/O error ([I/O error message]) โ a binary file would not be reported this way |
|
|
| โ ๏ธ Hidden files in source directory not referenced in any [[step]]:
[file list]
Consider adding these to .gitignore, or add them to a [[step]] in ssi-config.toml. |
53 |
๐ก Hidden files (starting with '.') are often editor or system files that don't belong in the site output |
| โ ๏ธ Unreferenced files in source directory:
[file list]
These files exist in your source directory but are not used. Remove them or add them to a [[step]] in ssi-config.toml. |
53 |
๐ก Every file in the source directory should belong to a [[step]] โ unused files may indicate a misconfiguration |
| Checking for unused keys in include sources |
|
|
| โ ๏ธ Unused key '[value]' in source [emoji] |
53 |
๐ก This key exists in the source but no page uses it โ remove the file/entry or add a token referencing it |
| |
|
|
| Checking CSS structure... |
|
|
| โ |
50 |
๐ก Fix the errors listed above in your ssi-config.toml, then run validation again |
| โ |
50 |
๐ก Fix the errors listed above, then run `ssi validate` again |
| Checking HTML structure... |
|
|
| โ Include validation error: [error message] |
50 |
๐ก If the text mentions TOML, fix the syntax in that file (unclosed tables or string quotes are common). For path or permission errors, confirm the file exists and is readable. For step or emoji issues, check [[step]] blocks and token names in ssi-config.toml. |
| Checking include source usage for '[source]'... |
|
|
| Include validation: [count] referenced token entries |
|
|
| Checking internal links... |
|
|
| ๐๏ธ Configuration validation of '[path]' passed |
|
|
| ๐
Content validation of '[path]' passed |
|
|
| ๐จ CSS structure validation passed |
|
|
| ๐๏ธ HTML structure validation passed |
|
|
| ๐ฅ Include validation passed |
|
|
| ๐ Link validation passed |
|
|
| ๐ฅ Source validation of '[path]' passed |
|
|
| ๐ Source file checks passed |
|
|
| Validation processing complete in [elapsed time] seconds |
|
|
| Running quick validation for [config path] (config only) |
|
|
| Checking source files... |
|
|
| Running source validation for [source] |
|
|
| Content validation collected [count] templates |
|
|
| Unreferenced source file check: [count] unreferenced file warnings |
|
|
| Unused key detection: [count] matched key entries |
|
|
| โ File '[path]' has extension '[actual value]' which does not match the declared content type '[content type]' |
6 |
๐ก Check the file extension or change the content type in your ssi-config.toml |