Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Shared corpus-grounding engine — BM25 + structured filters + decision rules over CSV corpora via a domain manifest. Use when a skill needs grounded pre-action option-space constraints.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
The reusable grounding layer from ADR-061: one pure-stdlib engine (BM25 retrieval + structured pre-filters + decision-rule evaluation) that any domain plugs into via a manifest — frontend design is its first consumer (
design-intelligence). A corpus grounds (pre-action, constrains the option space); it never replaces mid-action reference (RAG), post-action validation (rules), or the method itself (a framework skill).
Engine provenance: ported from nextlevelbuilder/ui-ux-pro-max-skill
@ b7e3af80f6e331f6fb456667b82b12cade7c9d35 (MIT, last checked
2026-06-07) — BM25 de-duplicated, slide-only paths stripped, every
frontend-hardcoded axis moved into the manifest. The obligations split by what
ships where: the MIT notice for the engine sources under scripts/ travels
with this skill, in ATTRIBUTION.md beside it, so an install
that takes engineering-base without frontend-design still carries the
notice its code is under. The vendored corpus and the Apache-2.0
ui-styling material travel with frontend-design, in
design-intelligence/ATTRIBUTION.md,
which remains the full record.
ground validate via node),
never fork the engine.--stack react …).references/ docs / RAG).<domain-skill>/data/manifest.json).search (one domain / stack axis) or ground (reasoning plan).confidence + evidence_gap before trusting any row.Scripts resolve all paths skill-relative (per
docs/contracts/skill-bundled-assets.md)
— they work from any cwd:
node <skills-root>/corpus-grounding/scripts/ground.mjs search \
--manifest <skills-root>/<domain-skill>/data/manifest.json \
"fintech dashboard" [--domain style] [--stack react] \
[--filter "Severity=HIGH"] [--max-results 3] [--json]
node <skills-root>/corpus-grounding/scripts/ground.mjs ground \
--manifest <skills-root>/<domain-skill>/data/manifest.json \
"luxury e-commerce" [--context '{"data_heavy": true}'] [--persist DIR] \
[--variance 1-10] [--motion 1-10] [--density 1-10]
node <skills-root>/corpus-grounding/scripts/ground.mjs validate --manifest …
<skills-root> is wherever skills are deployed (~/.claude/skills/ for
Claude Code installs; src/skills/ inside this repo).
The three ground dials are optional 1-10 preferences, and unset means
unset — a dial you do not pass changes nothing, so the no-flag result is
byte-identical to what it was before they existed. --variance biases which
style is selected from the rows the corpus returned (never which rows come
back), and when it changes the pick away from the grounding rule's own choice
the run says so in its evidence gaps. --motion needs a gsap domain in the
manifest and reports when a tier matches nothing. --density overrides the
spacing scale. All three render in the text output and in a persisted
MASTER.md, not only under --json.
Interface contract v1 — stability promise. Per ADR-061 §2 ("Opus
condition"), this interface is versioned; domains may depend on it. Breaking any item below requires a major bump
(manifest_version: 2), a migration note here, and updates to every
consuming skill in the same PR. Additive fields are allowed anytime.
Stable v1 surface:
bm25_search.{BM25, load_csv, apply_filters, search_rows, RETRIEVERS}, decision_engine.{detect_domain, search_domain, search_stack, evaluate_rules, ground, persist_grounding},
schema_validator.{load_manifest, validate_manifest, resolve_data_path, ManifestError, MANIFEST_VERSION, TIERS}.ground {search|ground|validate} via
node) with the flags shown above.{domain|stack, query, file, count, results, scores, filtered_from, confidence{label,score}, evidence_gap[]};
ground: {domain, query, category, rule, rules_evaluation{matched, unmatched}, selections{<domain>: {best, alternatives, confidence}}, confidence{label,score}, evidence_gap[]}.confidence and
evidence_gap; retrievers are name-selected (bm25 default,
structured, hybrid); no network, no subprocess, read-only except
the opt-in --persist DIR.Each domain ships data/manifest.json beside its CSVs — declaring its
own axes; the engine never assumes the frontend schema:
{
"manifest_version": 1,
"domain": "frontend-design",
"tier": "conditional-grounding",
"data_dir": ".",
"retriever": "bm25",
"default_domain": "style",
"domains": {
"style": {
"file": "styles.csv",
"search_cols": ["Style Category", "Keywords"],
"output_cols": ["Style Category", "Best For"],
"max_results": 3,
"filters": {}
}
},
"detect": { "style": ["minimalism", "glassmorphism"] },
"stacks": { "react": "stacks/react.csv" },
"stack_cols": { "search_cols": ["…"], "output_cols": ["…"] },
"reasoning": {
"file": "ui-reasoning.csv",
"category_domain": "product",
"category_column": "Product Type",
"match_column": "UI_Category",
"rules_column": "Decision_Rules",
"priority_column": "Style_Priority",
"priority_domain": "style",
"name_columns": { "style": "Style Category" },
"plan": { "style": 3, "color": 2 },
"rules_module": "rules.ts"
},
"owner": "package-maintainer",
"refresh_cadence": "quarterly",
"upstream": { "repo": "…", "sha": "…", "last_checked": "YYYY-MM-DD" }
}
tier ∈ lookup-only | conditional-grounding | constraint-emission;
reasoning is only legal above lookup-only.owner, refresh_cadence, upstream{repo,sha,last_checked} are
required — provenance discipline per ADR-061 §6; an unowned corpus
is not merged.rules_module (optional TypeScript escape hatch where JSON rules cap
out — a module exposing evaluate(rules, query, context); a legacy
.py name in a manifest is remapped to its .ts/.js twin) must live
beside the manifest — absolute paths and .. are refused.matched and unmatched — the full
rule space stays auditable, never a hidden gate.data/manifest.json + CSVs in your domain skill; run
the grounding CLI (ground validate via node).filters pre-filter matches case-insensitive
substrings; an over-specific value silently filters everything out —
check filtered_from vs count when results look thin.detect keyword routing falls back to default_domain; product-shaped
queries route best ("fintech dashboard"), generic words land on the
default.Four scripts ship under scripts/: ground.ts (CLI), bm25_search.ts,
decision_engine.ts, schema_validator.ts.
resolve_data_path refuses absolute paths and
.. escapes, so the manifest directory is the read boundary.--persist DIR, which writes MASTER.md (and pages/<page>.md when
--page is given) under DIR/design-system/<project-slug>/. Nothing
else writes.One qualified exception: rules_module executes a manifest-adjacent
TypeScript module via dynamic import(). That is the same trust domain as
the skill shipping the manifest, and its containment is resolve_data_path.
design-intelligence — first consumer
(frontend corpus + manifest).docs/contracts/skill-bundled-assets.md
— how bundled scripts/ + data/ reach consumer runtime.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.