"""adia-ui-kit-forge — generated by scripts/build/harness-manifests.mjs. Do not edit."""
import os
from pathlib import Path

_HERE = os.path.dirname(os.path.abspath(__file__))


def register(ctx):
    ctx.register_skill(
        name="a2ui-maintenance",
        path=Path(os.path.join(_HERE, "skills", "a2ui-maintenance", "SKILL.md")),
        description="Maintains the A2UI pipeline (packages/gen-ui/a2ui/): the chunk corpus, compose strategies (zettel, chunk-zettel, free-form, monolithic), retrieval, validator, calibration, evals, the a2ui MCP server. Use to author/harvest/fix chunks, tune STRONG_MATCH or zettel thresholds, validate an A2UI document, diagnose an eval gap/regression or lift a semantic fail, change MCP tools (generate_ui, compose_from_chunks, check_anti_patterns, refine_composition), scan anti-patterns, run pipeline ops, or when a contract can't express a shape. NOT for app screens (screen-composition), runtime gen-UI features (gen-ui-wiring), primitive authoring (primitive-authoring), or gallery scoring (gen-ui-review).",
    )
    ctx.register_skill(
        name="component-md-authoring",
        path=Path(os.path.join(_HERE, "skills", "component-md-authoring", "SKILL.md")),
        description="Author the two judgment sections of a component's `component.md`, Screen-reader spec and Behavioral spec, and keep it PR-fresh. Use when a component's states, composed children, aria behavior, or error/empty/ loading handling changes and it already has (or should grow) a `component.md`, or when asked to \"add component.md for X\" / \"write the screen-reader spec for X\" / \"why is check:component-md-fresh warning\". NOT the yaml prop/slot/event/token contract itself (primitive-authoring owns that, this skill only owns the two authored yaml fields, `screenReader`/`behavioral`, plus the optional `intent` field); NOT gen-ui corpus/retrieval wiring (a2ui-maintenance); NOT a component's CSS token audit (a capability referenced from adia-ui-factory's theme-audit skill, not yet a shipped skill here, ticket 10036).",
    )
    ctx.register_skill(
        name="cross-harness-authoring-standards",
        path=Path(os.path.join(_HERE, "skills", "cross-harness-authoring-standards", "SKILL.md")),
        description="Authors copy-paste install instructions for an adia-ui plugin (or any Claude Code plugin) across multiple agent harnesses, Claude Code, Codex, Pi, Hermes. Use when asked to \"write a Slack post for installing our plugins\", \"how do devs on Codex/Pi/Hermes install this\", \"update the multi-harness install docs\", or after a harness-distribution change (a new .codex-plugin/, plugin.yaml, or package.json \"pi\" field) needs its install instructions to catch up. NOT for the manifest/build mechanics themselves (package-release's Codex-manifest step, gh#1888/gh#1954), this skill only writes the consumer-facing instructions once those exist.",
    )
    ctx.register_skill(
        name="cross-harness-compatibility-standards",
        path=Path(os.path.join(_HERE, "skills", "cross-harness-compatibility-standards", "SKILL.md")),
        description="The engineering/architecture standard for actually BUILDING a Claude agent-family (or any multi-runtime capability) so it genuinely works across Claude Code, Codex, Pi, and Hermes, not the consumer-facing install docs once it already works (that's cross-harness-authoring-standards). Use when deciding whether a capability earns a new user-facing skill or should stay a thin runtime-specific agent/seat/extension, before writing a Pi extension or Hermes command and unsure whether the target API actually exists, defining a structured handoff record two or more runtimes must exchange, or naming a new plugin distribution/marketplace channel alongside an existing one. NOT for writing the resulting per-harness install commands (cross-harness-authoring-standards owns that, once the capability already works).",
    )
    ctx.register_skill(
        name="demo-audit",
        path=Path(os.path.join(_HERE, "skills", "demo-audit", "SKILL.md")),
        description="Seven-mode QA sweep of the monorepo's demo/app surfaces: visual probe, app-shell QA, attr-quote typos, native-primitive leak, shell (admin/chat/ editor) composition, card anatomy, plus an aggregated token/contrast/lifecycle drift battery (`npm run dogfood:status`). Use for \"run a dogfood sweep\", \"find broken demos\", \"audit native primitive leaks\". NOT for gen-UI gallery scoring (gen-ui-review) or authoring primitives (primitive-authoring).",
    )
    ctx.register_skill(
        name="gen-ui-review",
        path=Path(os.path.join(_HERE, "skills", "gen-ui-review", "SKILL.md")),
        description="Closed-loop Gen UI gallery quality review, per cycle: derive ideal specs, decompose the rendered canvas, score the gap, root-cause, emit fix plans until every prompt clears the exit gate. Use for /gen-ui-review, \"score the gallery\", \"review gen-ui outputs\". NOT for corpus fixes (a2ui-maintenance), primitive authoring (primitive-authoring), or a hand-authored demo/app-shell QA sweep (demo-audit).",
    )
    ctx.register_skill(
        name="llm-client-maintenance",
        path=Path(os.path.join(_HERE, "skills", "llm-client-maintenance", "SKILL.md")),
        description="Maintains @adia-ai/llm (packages/llm/core/): provider adapters (anthropic/openai/ gemini), the shared SSE parser, model registry, chat()/streamChat() facade, createAdapter() bridge. Use when adding or fixing a provider adapter, debugging streaming bugs (StreamChunk, no terminal `done` chunk), raw `stopReason`/usage mapping, buildRequest() or passthrough proxy dispatch (browser 401s, API key in browser), detectProvider/MODELS registry changes, or the stub adapter. NOT for wiring the client into an app (llm-wiring, adia-ui-factory plugin).",
    )
    ctx.register_skill(
        name="package-release",
        path=Path(os.path.join(_HERE, "skills", "package-release", "SKILL.md")),
        description="Release engineering for the @adia-ai lockstep monorepo. Use to cut and ship a release, promote [Unreleased] CHANGELOG entries, tag and push lockstep packages to origin, publish a 10-package release (roster: scripts/package-paths.mjs), publish a single plugin independently of the lockstep set (Class B), batch-push piled-up release commits, recover a cut that landed wrong or whose publish workflows didn't fire, fix a check:lockstep bump failure or an F-N1 CHANGELOG warning, verify release gates without cutting anything, or author release notes/a MIGRATION GUIDE section. NOT for consumer-app migration sweeps (app-migration) or exe.dev VM ops (site-deployment).",
    )
    ctx.register_skill(
        name="primitive-authoring",
        path=Path(os.path.join(_HERE, "skills", "primitive-authoring", "SKILL.md")),
        description="Author or modify AdiaUI framework source inside the monorepo, components (packages/web-components), shells/composites (packages/web-modules), yaml SoTs, demos. Use to add a new component, fix a prop/slot/attribute/CSS variant, update a yaml, build or fix a shell (chat-shell, admin-shell, editor-shell, sidebar/pane/bespoke-tier composition), promote repeated inline content into a shared module, audit a component's four-axis contract/token usage/lifecycle for drift, or author a demo or examples.html. NOT for app screens (screen-composition), A2UI internals (a2ui-maintenance), @adia-ai/llm internals (llm-client-maintenance), or site/pages docs (site-docs-authoring).",
    )
    ctx.register_skill(
        name="site-deployment",
        path=Path(os.path.join(_HERE, "skills", "site-deployment", "SKILL.md")),
        description="Deploys and operates the AdiaUI site + services on exe.dev VMs, pushing a `site-v*` tag through the hardened rsync --delete deploy to ui-kit.exe.xyz (dry-run delete summary reviewed before the real deploy job runs), diagnosis (\"Port 8000 unbound\", a 502, a stale/404ing build behind npm after the last lockstep cut), rolling back a broken deploy, VM provisioning, secret rotation. Use for \"deploy to exe.dev\", \"push a site-v* tag\", \"the site is 502ing / looks stale\", \"roll back the last deploy\", \"restart/diagnose the exe service\", \"rotate keys on the VM\". NOT for cutting the release itself (package-release).",
    )
    ctx.register_skill(
        name="site-docs-authoring",
        path=Path(os.path.join(_HERE, "skills", "site-docs-authoring", "SKILL.md")),
        description="Review or author pages under site/pages/{architecture,getting-started, guides,patterns,reference}/, the docs site (count the pages on disk; it grows). Use when asked to add or edit a getting-started/architecture/guides/patterns/reference page, review a site docs page for consistency, fix a callout that reads as plain text, or explain why an inline-code chip or a demo gallery looks broken. NOT for a component's own .examples.html demo (primitive-authoring) or any pure-primitive-composition training-harvest page (governed by composition-and-examples.md's no-style-block rule; owner: a2ui-maintenance).",
    )
    ctx.register_skill(
        name="ssr-compatibility",
        path=Path(os.path.join(_HERE, "skills", "ssr-compatibility", "SKILL.md")),
        description="Answers why an AdiaUI component crashes, drops content, renders wrong, or mutates a byte-identical subtree under SSR (linkedom/Astro), the known failure shapes, what's fixed vs open, how to prove a fix under the linkedom shim gate. Use for \"does this work under SSR\", why a component crashes on attachInternals/ResizeObserver/adoptedStyleSheets/matchMedia/ `instanceof Node` under a DOM shim, why table-ui/chart-ui/select-ui or a container CE renders empty or drops nested children server-rendered, whether getBoundingClientRect() is safe in connectedCallback, whether a custom render()/connected() path adopts-in-place or rebuilds a server-rendered subtree that already matches (zero-subtree-mutation / AC-004a-shaped asks), whether a querySelector-guard-before-innerHTML component is SSR-safe, or whether a shim can be deleted after a fix ships. ANSWERS only. NOT for a fix (primitive-authoring) or host/hydration wiring (host-wiring, adia-ui-factory).",
    )
