Communitygithub.com

lguidolin/인터페이스-제작-및-접근성

UI 구성 요소, 레이아웃, 폼, 디자인 토큰을 빌드하거나 스타일링할 때, 또는 접근성 결정을 내릴 때 사용합니다. 키워드 - 접근성, WCAG, 키보드 탐색, 포커스 상태, 대비, 디자인 시스템, 미니멀리스트 UI, 컴포넌트 재사용, ARIA, 시맨틱 HTML.

인터페이스-제작-및-접근성란 무엇인가요?

이 기술은 접근성, 미니멀리즘, 미적 일관성을 '마무리 작업'이 아닌 '기본 설계 원칙'으로 적용하는 방법을 정의합니다. 시맨틱 HTML, 키보드 탐색, WCAG AA 대비, 명확한 포커스 상태, 축소 모션 선호도 존중 등 구체적이고 확인 가능한 접근성 규칙을 강제합니다. UI 결정은 디자인 시스템 토큰(간격, 서체, 색상)과 기존 화면 스타일을 우선으로 하며, 유사한 UI 요소는 복사-붙여넣기 대신 파라미터화된 컴포넌트로 통일하여 UI-YAGNI 원칙을 따릅니다. 순수한 미적 판단이 필요할 때는 인간의 결정을 받도록 에스컬레이션 규칙을 적용하며, CI 단계에서 eslint-plugin-jsx-a11y나 axe와 같은 접근성 린팅/테스트 도구를 사용해 자동 검증합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lguidolin/agent-skills/tree/main/skills/interface-craft-and-accessibility

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

인터페이스 제작 및 접근성

개요

표준은 접근 가능하고, 미니멀하며, 아름다운 것입니다. 마무리 작업이 아닌, 설계 자체의 속성입니다. 취향은 규칙으로 삼을 수 없으므로, 제약 조건, 선례, 에스컬레이션으로 변환됩니다. 에이전트는 취향을 창조하라는 요청을 받지 않고, 제약 조건을 존중하고 나머지를 에스컬레이션하기만 하면 됩니다.

접근성 — 마무리 단계가 아닌 필수 조건

확인 가능한 규칙:

  • 모든 상호작용 요소는 키보드로 접근 가능해야 하며 눈에 띄는 포커스 상태를 가져야 합니다.
  • 모든 컨트롤에는 접근 가능한 이름이 있어야 하고, 모든 폼 필드에는 연결된 레이블과 명확한 오류 메시지가 있어야 합니다.
  • div 남발 대신 시맨틱 HTML과 랜드마크를 사용합니다.
  • 색상 대비는 WCAG AA를 충족해야 하며, 의미를 절대 색상만으로 전달해서는 안 됩니다.
  • 축소 모션 선호도를 존중합니다.

아름답고 미니멀하게 — 분위기가 아닌 제약 조건으로

  • 제약을 통한 일관성. 디자인 시스템의 토큰(간격, 서체 척도, 색상 척도)을 사용합니다. 임시방편적인 매직 넘버는 없습니다. 일관성 그 자체가 미학입니다.
  • 기존 화면이 스타일 가이드입니다. 새로운 것을 만들기 전에 기존의 시각적 언어를 따르십시오.
  • 절제(UI-YAGNI). 모든 요소는 그 자리를 정당화해야 합니다. 무언가를 제거했을 때 무언가가 깨질 때까지 제거하십시오. 밀도와 장식보다 계층과 여백을 우선시합니다.
  • 커스텀 UI를 만들기 전에 컴포넌트 라이브러리의 패턴을 선호합니다.
  • 두 개의 유사한 UI 요소 → 하나의 파라미터화된 컴포넌트. 차이점은 소품/변형으로 처리하며, 복사-붙여넣기하지 않습니다. 세 번째 복사본은 결함입니다. (인터페이스에 적용된 DRY 원칙)

에스컬레이션 규칙

취향 결정은 에스컬레이션되며, 임의로 판단하지 않습니다. 선택이 순전히 미학적이고 토큰이나 선례에 의해 결정되지 않은 경우, 조용히 추측하지 마십시오:

  1. 가장 가까운 기존 선례를 따르거나,
  2. 옵션(목업, 나란히 비교)을 제시하여 인간의 취향 결정을 받으십시오.

빠른 참조

상황수행할 작업
새 컴포넌트가 기존 컴포넌트와 유사함기존 컴포넌트를 파라미터화하고, 복사하지 마십시오
간격/색상 값이 토큰에 없음가장 가까운 토큰을 사용하고, 매직 넘버를 만들지 마십시오
진정으로 새로운 시각적 결정옵션과 함께 에스컬레이션하고, 임의로 판단하지 마십시오
상호작용 요소 추가처음부터 키보드 + 포커스 + 접근 가능한 이름을 갖추십시오

강제: 확인 가능한 규칙에 대한 CI의 접근성 린팅/테스트(예: eslint-plugin-jsx-a11y, axe); 미적 절제는 에스컬레이션 규칙을 통한 리뷰어 판단입니다.

전체 근거: 헌법 제7조, engineering-constitution/references/engineering-constitution.md에 번들로 제공됨.

Individual skills in this repo

This repo contains 18 individual skills — each has its own dedicated page.

lguidolin/change-hygiene-and-code-craft

Use when writing or refactoring code, structuring a commit or PR, or deciding whether to abstract duplication. Symptoms — mixing reorg with logic changes, a PR doing several things at once, a file growing large, the second copy of similar code, or unsure whether to DRY something up.

lguidolin/cloud-delivery-aks

Use when deploying to Kubernetes or Azure Kubernetes Service (AKS), configuring cloud secrets, setting up progressive rollout/canary, per-PR ephemeral environments, or k8s health probes. Keywords — Kubernetes, AKS, Key Vault, Argo Rollouts, Flagger, canary, blue-green, liveness, readiness, PodDisruptionBudget, HPA, rollback, GHCR.

lguidolin/commit-history-rewrite

Use when an existing repository has messy commit history that needs to conform to conventional commits before adopting release-please, or when intermediate WIP/fixup/merge commits need to be cleaned up.

lguidolin/conventional-commits-and-releases

Use when committing, writing a commit message, opening a PR that will be squash-merged, or configuring automated versioning/changelogs. Keywords — conventional commits, release-please, semver, feat/fix/chore, breaking change, changelog.

lguidolin/defense-in-depth-security

Use when handling untrusted input, secrets, authentication/authorization, or dependencies — or threat-modeling a new surface. Keywords — STRIDE, threat model, least privilege, secrets management, supply chain, dependency scanning, input validation, audit log, defense in depth.

lguidolin/designing-before-building

Use when starting a feature, fixing a non-trivial bug, or about to write implementation code — before any code exists. Symptoms you need this: "this is simple, I'll just code it", reaching for the editor before a design is approved, or an idea that hasn't been turned into a spec and plan.

lguidolin/engineering-constitution

Use when starting work in a project that follows the engineering constitution, orienting to its rules, or deciding which engineering practice applies to a task — spec writing, commits, testing, security, deploys, database, or UI work.

lguidolin/graphql-contract-testing

Use when writing a GraphQL query/mutation that the UI and a test will share, or building route/schema contract or smoke tests. Symptoms — copying a query into a test, a test asserting on query text, schema change that didn't break the UI build, or RLS/permission drift. Keywords — graphql-codegen, typed document, contract test, route smoke test.

lguidolin/init-repo-CI

Use when setting up a new repository with conventional commits, release-please, and CI automation, or when retrofitting an existing repository that lacks automated versioning and PR validation workflows.

lguidolin/merge-gates-and-automation

Use when setting up or changing CI, pre-push hooks, or a task runner, or deciding what must pass before merge. Symptoms — tempted to put authoritative checks only in a local hook, skip CI, bypass with --no-verify, or unsure what gates a merge vs. runs locally.

lguidolin/observability-and-slos

Use when adding logging, metrics, tracing, health checks, SLOs, or alerting — or when building a service surface that needs to be operable and debuggable. Keywords — structured logs, OpenTelemetry, correlation id, RED metrics, liveness, readiness, SLI, SLO, error budget, alerting.

lguidolin/performance-and-scale

Use when working on hot paths, list endpoints, pagination, data-access in loops, or public interfaces/schemas. Symptoms — unbounded queries, N+1 access, no latency budget, optimizing without measuring, or changing an interface many consumers depend on. Keywords — pagination, N+1, Hyrum's Law, performance budget, bundle size.

lguidolin/postgres-postgraphile-rls-and-sql

Use when writing PostgreSQL, PostGraphile config, Row-Level Security policies, SQL schema files, or working on the Browser→App→PostGraphile→Postgres data path. Keywords — RLS, SECURITY DEFINER, search_path, pgSettings, grants, roles, GraphQL depth limit, query cost, statement_timeout, SQL file organization.

lguidolin/recording-decisions

Use when a design or architecture decision has been made and needs to be captured — writing a decision record or ADR, updating a decision index, noting a deferred idea, or superseding a past decision. Keywords — ADR, decision record, rationale, rejected alternatives, dependency index.

lguidolin/resilience-and-deploy-safety

Use when planning a deploy, designing a rollback, or responding to an incident or writing a postmortem. Keywords — deploy safety, rollback, immutable artifact, progressive delivery, canary, blast radius, incident response, blameless postmortem, error budget.

lguidolin/ship-it

Use when the user wants to ship work — push, PR, archive decision records, merge, and clean up. Handles the full lifecycle from committing final changes through post-merge cleanup including converting specs/plans to compact decision records.

lguidolin/tests-as-a-control

Use when writing or modifying tests, when a test breaks during a refactor, or when testing permission/role rules. Symptoms — tempted to edit a test to make it pass, testing only the happy path, a deny-test that started passing, flaky tests, or unsure what to assert.

lguidolin/zero-downtime-migrations

Use when changing a database schema where data must survive the change — adding/removing/renaming columns, constraints, indexes, or backfilling. Symptoms — a destructive migration bundled with a code deploy, a NOT NULL column with a backfill, a table-locking UPDATE, or a rename. Keywords — expand/contract, parallel change, backfill, NOT VALID, CREATE INDEX CONCURRENTLY, graphile-migrate.

관련 스킬