{
  "schema_version": 1,
  "type": "app",
  "slug": "adom-ui-linter",
  "title": "adom-ui-linter",
  "brief": "Deterministic UI/CLI/skill compliance linter for Adom apps",
  "version": "0.1.0",
  "tags": [],
  "license": "MIT",
  "sample_prompts": [
    {
      "label": "Lint my app for UI compliance",
      "prompt": "adom-ui-linter lint ."
    },
    {
      "label": "Check if my header follows the spec",
      "prompt": "adom-ui-linter lint . --category header"
    },
    {
      "label": "Run a pre-publish check",
      "prompt": "adom-ui-linter lint . --failures-only"
    },
    {
      "label": "Show all available checks",
      "prompt": "adom-ui-linter checks"
    }
  ],
  "install": {
    "binary_name": "adom-ui-linter",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "# adom-ui-linter\n\nDeterministic compliance linter for Adom apps. Runs ~50 checks across 6 categories and emits AI hints for every failure.\n\n![Lint output showing passes on adom-step](docs/screenshot-lint-passes.png)\n\n## Why\n\nSkills are large markdown documents the AI reads once and partially forgets after context compaction. The linter converts skill rules into deterministic grep-level checks with structured `Hint:` lines. The AI takes hints from CLI output far more seriously than rules it read 200 messages ago.\n\nThink of it as an **incrementally-revealing skill system**: each failure teaches the AI one specific rule at the exact moment it needs to know.\n\n## Failures with AI hints\n\nWhen checks fail, the linter emits targeted remediation hints that the AI acts on immediately:\n\n![Failures with hints on adom-desktop](docs/screenshot-lint-failures.png)\n\n## Check catalog\n\n50+ checks across 6 categories:\n\n![All available checks by category](docs/screenshot-checks-catalog.png)\n\n| Category | ID prefix | What it checks |\n|---|---|---|\n| header | HDR-01..11 | 44px height, .brand/.vsep/.subject, fonts, popover, favicon |\n| ui-patterns | UI-01..13 | Tooltips (body-appended, z-99999, not ::after), colors, layout, ALL CAPS |\n| ai-drivability | AI-01..07 | GET /state, GET /console, relay User-Agent gate, CLI hints |\n| cli-compliance | CLI-01..11 | OK:/ERROR: prefix, Hint: lines, health/install/version, isatty |\n| skills-docs | SKL-01..09 | SKILL.md, frontmatter, triggers, hierarchy, README, wiki page |\n| build-publish | BLD-01..08 | VERSION file, sync, release profile, publish script, port registry |\n\n## Install\n\n```bash\ncurl -fsSL https://git-wiki-ktqxite5iglh.adom.cloud/api/v1/pages/adom-ui-linter/assets/adom-ui-linter \\\n  | sudo tee /usr/local/bin/adom-ui-linter >/dev/null\nchmod +x /usr/local/bin/adom-ui-linter\nadom-ui-linter install\n```\n\nOr via adompkg:\n\n```bash\nadompkg install adom-ui-linter\n```\n\n## Usage\n\n```bash\n# Lint the current directory (all categories)\nadom-ui-linter lint .\n\n# Lint a specific app\nadom-ui-linter lint /home/adom/project/adom-step\n\n# Only check header and UI patterns\nadom-ui-linter lint . --category header,ui-patterns\n\n# JSON output for programmatic consumption\nadom-ui-linter lint . --json\n\n# Only show failures and warnings\nadom-ui-linter lint . --failures-only\n\n# List all checks\nadom-ui-linter checks\n\n# Health check\nadom-ui-linter health\n```\n\n## Dependencies\n\n### adompkg (auto-installed)\n\nNone. `adom-ui-linter` is a standalone Rust binary with zero runtime dependencies.\n\n### System (manual)\n\n| Dependency | Required | Notes |\n|---|---|---|\n| Rust toolchain | Build only | `cargo build --release` to compile from source |\n\n## What it encodes\n\nThe linter encodes rules from these Adom skills into deterministic checks:\n\n- `adom-app-header` -- header layout, fonts, popover, favicon\n- `human-ui-patterns` -- tooltips, toggle state, ALL CAPS, color tokens\n- `adom-cli-design` -- output format, subcommands, isatty, hints\n- `app-creator` -- AI-drivability, proxy URLs, color palette\n- `tool-publisher` -- VERSION sync, release profile, wiki metadata\n- `ai-hints-in-clis` -- why Hint: lines matter and how to write them\n- `relay-hint-pattern` -- User-Agent gate on relay servers\n\n## Build\n\n```bash\ncargo build --release\nsudo cp target/release/adom-ui-linter /usr/local/bin/\nadom-ui-linter install\n```\n",
  "author": {
    "id": "695820315b5f1e4db2fcf602",
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "discovery_triggers": [],
  "discovery_pitch": null,
  "metadata": {},
  "created_at": "2026-05-28T05:28:50.003Z",
  "updated_at": "2026-05-28T05:28:50.003Z",
  "skills": []
}