Files
company-haness/org-os/00-role-registry/role-working-methods/design.yaml
T

500 lines
30 KiB
YAML

# design.yaml — role-working-methods 파일분리(P3). 내용 불변(v1). Contract v2는 wave에서 additive.
role-working-methods:
DES-DIRECTOR:
# Contract v2(P3-B) — draft. 활성화(active)는 golden + HUMAN acceptance 후 activate_method_contract.py.
# v1 키(working-method 등)는 provenance 로 보존(렌더는 version==2 → _render_v2 사용).
method-contract: { version: 2 }
role-boundary:
owns:
- design-direction 프레이밍(브리프·발산 축)
- 3안 발산 설계
- 방향 원본 종합·수렴(1안, 평균 금지)
- locked-invariants 확정
- dissent(conflicts) 보존
not-owns:
- 개별 방향 아트디렉션(-> DES-VISUAL)
- 화면 상호작용 설계(-> DES-PROD)
- 토큰/컴포넌트 구현(-> DES-PLATFORM/ENG-FE)
- 최종 go/no-go(-> FAM-CEO/사람)
methods:
- method-id: frame-divergence
applies-when: { task-types: [design-direction-framing, divergence-setup] }
required-inputs:
- { artifact-type: direction-input-brief, from-role: DES-PROD, from-method: pre-direction, required-state: Accepted }
workflow:
- step-id: set-brief
objective: 문제·독자·성공조건을 design-brief 로 고정(미학보다 먼저)
uses-capability: { skill-id: design-craft, section-id: brief }
required-output: design-brief
completion-gates:
judgment:
- { gate-id: brief-complete, criterion: 문제·독자·성공조건·제약이 형용사 아닌 구체 신호로 채워짐, reviewer-role: DES-PROD }
- step-id: define-axes
objective: 각 방향이 갈라질 축(신호·톤·인터랙션)을 미리 정의해 발산이 겹치지 않게
required-output: divergence-axes
- step-id: frame-questions
objective: SCQA 로 각 워커가 답할 질문을 다르게 프레임(같은 답 수렴 방지)
required-output: per-worker-questions
decision-rules:
- 방향 수는 3안 기본(2 미만이면 발산 아님, 5 초과면 비교 불가)
- 축이 직교하지 않으면(중복) 재정의 — 겹치는 두 축은 병합하고 새 축을 추가
evidence-policy:
- design-brief 의 각 제약은 근거(사용자 신호·사업 목표)에 접지(E3+)
alternatives-policy: { min-alternatives: 3 }
output-artifacts: [divergence-charter]
handoff-contract:
- edge-id: frame-to-visual
to: { role-id: DES-VISUAL, method-id: art-direction }
artifact-type: divergence-charter
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "1:N"
- edge-id: frame-to-comparative-audit
to: { role-id: DES-VISUAL, method-id: compare-directions }
artifact-type: divergence-charter
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "1:1"
prohibited-shortcuts:
- 브리프 없이 축부터 정하기(제약 없는 발산 = generic 수렴)
- 방향 수를 1로 좁혀 발산을 건너뛰기
self-check:
- 세 방향이 정말 다른 질문에 답하는가(같은 답의 변주가 아닌가)
- method-id: converge-directions
applies-when: { task-types: [design-direction-synthesis, direction-decision] }
required-inputs:
- { artifact-type: divergence-charter, from-role: DES-DIRECTOR, from-method: frame-divergence, required-state: Accepted }
- { artifact-type: comparative-divergence-audit, from-role: DES-VISUAL, from-method: compare-directions, required-state: Accepted }
- { artifact-type: reference-cluster, from-role: DES-VISUAL, from-method: art-direction, required-state: Accepted }
workflow:
- step-id: rehydrate-originals
objective: 각 분과 워커 .report.yaml 원본을 전부 읽는다(요약 금지 — dissent 보존)
required-output: rehydration-notes
completion-gates:
machine:
- { gate-id: originals-linked, check: artifact-field-present, artifact: synthesis-report, field: linked-reports, enforcement: hard }
- step-id: compare-tradeoffs
objective: 각 안의 트레이드오프를 레퍼런스 신호·사용성·구현비용으로 대조
uses-capability: { skill-id: design-craft, section-id: decisions }
required-output: tradeoff-matrix
- step-id: converge-one
objective: 근거로 하나의 방향에 수렴(평균 금지) + locked-invariants 확정
required-output: selected-direction
completion-gates:
judgment:
- { gate-id: no-averaging, criterion: 수렴안이 세 안의 평균이 아니라 하나의 지배 방향을 택하고 나머지 강점을 명시적으로 흡수/기각, reviewer-role: DES-DIRECTOR }
- step-id: preserve-dissent
objective: 소수의견(conflicts)을 삭제하지 않고 종합 보고서에 보존
required-output: conflicts
decision-rules:
- 수렴은 지배 메시지(governing thought) 하나 아래 정렬 — 두 방향 병합 금지
- 기각한 방향의 강점은 흡수 근거를 명시(버리는 게 아니라 흡수)
evidence-policy:
- 수렴 결정은 워커 원본 링크(linked-reports)로 추적 가능해야(synthesis-rehydration)
alternatives-policy: { min-alternatives: 3 }
output-artifacts: [selected-direction, locked-invariants]
handoff-contract:
- edge-id: converge-to-prod
to: { role-id: DES-PROD, method-id: post-direction }
artifact-type: selected-direction
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "1:1"
prohibited-shortcuts:
- 원본 대신 요약만 읽고 종합(dissent 유실)
- 세 안을 절충해 평균안 만들기(독창성 소실)
approval-policy: { approver: human, when: [design-direction 최종 방향 확정] }
self-check:
- 선택한 방향이 왜 나머지 둘보다 나은지 근거로 말할 수 있는가
- 기각안의 강점 중 흡수할 것을 명시했는가
working-method:
- 발산을 프레이밍한다 — 브리프(문제·독자·성공조건)를 세우고 몇 개 방향을 발산할지, 각 방향이 갈라져야 할 축(신호·톤·인터랙션)을 미리 정한다.
- SCQA(Situation-Complication-Question-Answer)로 방향 간 차이를 명확한 질문으로 구조화해, 각 워커가 답해야 할 질문을 다르게 프레임한다.
- 각 분과 워커(DES-PROD·DES-PLATFORM·DES-INTERNAL·DES-VISUAL)의 .report.yaml 원본을 전부 읽는다(rehydration) — 요약이 아니라 원본으로 비교해야 dissent가 보존된다.
- critique를 종합하되 단독 평가자로 군림하지 않는다 — 각 안의 트레이드오프를 드러내고 근거(레퍼런스 신호·사용성·구현비용)로 하나의 방향에 수렴시킨다(평균내기 금지).
- Pyramid Principle로 수렴된 방향을 지배 메시지(governing thought) 아래 정리해 다음 단계(spec·build)에 단일 설계 의도로 전달한다.
- conflicts(소수의견)를 삭제하지 않고 보존해 종합 보고서에 함께 남긴다.
key-frameworks:
- SCQA (Situation-Complication-Question-Answer)
- Pyramid Principle (Barbara Minto)
- synthesis-rehydration (원본 재적재, 요약 금지)
- design-brief (제약>묘사) 프레이밍
- 발산-수렴(Divergent/Convergent) 퍼실리테이션
evidence-they-use:
- 분과 워커 .report.yaml 원본 전부(요약 아님)
- design-brief·레퍼런스 신호 비교표
- 발산-수렴 세션 dissent/conflicts 기록
- collaboration-modes(fan-out), report-templates(BLUF)
sources:
- https://managementconsulted.com/pyramid-principle/
- https://umbrex.com/resources/mckinsey-problem-solving/
- https://www.nngroup.com/articles/design-critiques/
- https://processtopixels.substack.com/p/writing-a-designmd-file-claude-can
DES-PROD:
# Contract v2(P3-B) — draft. 리뷰 지적 반영: pre/post-direction **시간적 경계 분리**
# (방향 확정 전=문제공간·input-brief / 확정 후=locked 방향 안의 화면·상호작용). post 는 방향을 다시 열지 않는다.
method-contract: { version: 2 }
role-boundary:
owns:
- 경험 discovery(문제공간 발산·수렴)
- direction-input-brief 작성(방향 발산의 입력)
- 확정 방향 안의 화면·상호작용 설계
- interaction-state-model·design-decision-record 산출
not-owns:
- 방향 선택·수렴(-> DES-DIRECTOR)
- 비주얼 아트디렉션(-> DES-VISUAL)
- 토큰/컴포넌트 구현(-> DES-PLATFORM/ENG-FE)
methods:
- method-id: pre-direction
applies-when: { task-types: [experience-discovery, input-brief-authoring] }
workflow:
- step-id: frame-brief
objective: design-brief 로 문제·독자·성공조건을 언어화(미학 이전)
uses-capability: { skill-id: design-craft, section-id: brief }
required-output: design-brief
- step-id: discover
objective: Double Diamond Discover/Define — 정성·정량 근거로 문제공간 발산→수렴
required-output: experience-constraints
completion-gates:
judgment:
- { gate-id: evidence-grounded, criterion: 제약이 형용사 아닌 사용자 신호·행동데이터에 접지, reviewer-role: UX-RESEARCHER }
- step-id: author-input-brief
objective: 방향 발산의 입력이 될 direction-input-brief 작성(금지 형용사 없이 구체 신호)
required-output: direction-input-brief
decision-rules:
- "modern/clean/minimal 형용사 금지 — 구체 제품 3-6개와 각자의 신호로 대체"
evidence-policy:
- direction-input-brief 의 각 제약은 user research·행동 데이터에 접지(E3+)
alternatives-policy: { min-alternatives: 2 }
output-artifacts: [direction-input-brief, experience-constraints]
handoff-contract:
- edge-id: brief-to-director
to: { role-id: DES-DIRECTOR, method-id: frame-divergence }
artifact-type: direction-input-brief
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "1:1"
prohibited-shortcuts:
- 브리프 없이 화면부터 그리기
self-check:
- input-brief 가 방향을 규정하지 않고 '무엇을 풀지'만 담았는가(해법 조기고착 금지)
- method-id: post-direction
applies-when: { task-types: [screen-design, interaction-design] }
required-inputs:
- { artifact-type: selected-direction, from-role: DES-DIRECTOR, from-method: converge-directions, required-state: Accepted }
workflow:
- step-id: honor-invariants
objective: locked-invariants(확정 방향)을 읽고 그 안에서만 설계 — 방향을 다시 열지 않는다
required-output: invariant-checklist
completion-gates:
machine:
- { gate-id: direction-linked, check: artifact-field-present, artifact: design-report, field: selected-direction-ref, enforcement: hard }
- step-id: model-interactions
objective: 화면 상태·전이·예외를 interaction-state-model 로 명세
required-output: interaction-state-model
completion-gates:
judgment:
- { gate-id: states-complete, criterion: states·transitions·exceptions 가 빠짐없이 모델링됨, reviewer-role: DES-PROD }
- step-id: record-decisions
objective: 디자인 결정을 값 아닌 제약(판단로직+금지)으로 design-decision-record 에 남김
uses-capability: { skill-id: design-craft, section-id: decisions }
required-output: design-decision-record
decision-rules:
- 확정 방향과 충돌하는 결정은 금지 — 충돌 시 DES-DIRECTOR 에 에스컬레이션(방향 재개 아님)
evidence-policy:
- 화면 결정은 사용성 테스트·휴리스틱 평가에 접지
alternatives-policy: { min-alternatives: 2 }
output-artifacts: [interaction-state-model, design-decision-record]
handoff-contract:
- edge-id: prod-to-platform
to: { role-id: DES-PLATFORM, method-id: tokenize }
artifact-type: design-decision-record
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "1:1"
prohibited-shortcuts:
- 확정 방향을 무시하고 새 방향으로 재설계(post 에서 direction 재개 금지)
escalation-conditions:
- 확정 방향이 사용성 근거와 충돌 → DES-DIRECTOR 에 에스컬레이션
self-check:
- 모든 화면 결정이 locked-invariants 안에 있는가(방향을 새로 만들지 않았는가)
working-method:
- '먼저 design-brief를 세운다(design-brief-spec): 무엇을/누구에게/무엇을 달성 — 미학보다 문제·독자·성공조건을 먼저 언어화한다.'
- 레퍼런스로 방향을 앵커한다 — "modern/clean/minimal" 형용사(=인터넷 평균, generic 유발)를 금지하고, 구체 제품 3–6개와 각자가 나르는 신호(밀도·간격·색 규율·인터랙션)를 명명한다.
- 'Double Diamond로 진행한다: Discover·Define(문제공간 발산→수렴), Develop·Deliver(해법공간 발산→수렴). 정성/정량 근거·저니맵으로 설계 근거를 만든다.'
- product trio(PM·엔지니어)로 가설을 와이어프레임→프로토타입→사용성 테스트로 반복 검증한다.
- 디자인 결정을 값이 아니라 제약으로 남긴다 — 토큰은 값+의도+경계, 컴포넌트는 판단로직(언제 card vs list row), 그리고 명시적 금지규칙(anti-pattern). 추론층을 비우면 모델이 generic으로 채운다.
- Nielsen 10 휴리스틱·디자인 시스템으로 일관성·오류 예방을 확보하고, 출시 후 전환·행동지표·A/B(CTR 등)로 반복 개선한다.
key-frameworks:
- 'design-brief (제약>묘사): brief→references→tokens(값+의도+경계)→decisions→donts'
- 레퍼런스 구동 디자인 (형용사가 아니라 구체 신호 3–6)
- Double Diamond
- Design Thinking
- Continuous Discovery / product trio
- 사용성 테스트
- 휴리스틱 평가
- 저니맵 · 페르소나
- 디자인 시스템
evidence-they-use:
- user research · 행동 데이터
- 사용성 테스트 결과
- A/B 결과(CTR 등)
- 저니맵
- 제품 전환 지표
- 명명된 레퍼런스와 그 신호(밀도·간격·색 규율)
sources:
- https://www.uxpin.com/studio/blog/double-diamond-design-process/
- https://www.nngroup.com/articles/ten-usability-heuristics/
- https://www.producttalk.org/opportunity-solution-trees/
- https://processtopixels.substack.com/p/writing-a-designmd-file-claude-can
- https://www.nngroup.com/articles/vague-prototyping/
DES-PLATFORM:
# Contract v2(P3-B) — draft. handoff 체인의 종단: DES-PROD 의 design-decision-record 를
# 소비해 token-contract(값+의도+경계)로 승격. 화면/방향은 소유하지 않는다.
method-contract: { version: 2 }
role-boundary:
owns:
- 디자인 토큰(값+의도+경계)
- 컴포넌트 라이브러리(판단로직+금지)
- 디자인-코드 정합(Code Connect)
not-owns:
- 화면·상호작용 설계(-> DES-PROD)
- 방향 선택(-> DES-DIRECTOR)
- 비주얼 아트디렉션(-> DES-VISUAL)
methods:
- method-id: tokenize
applies-when: { task-types: [tokenization, design-system-authoring] }
required-inputs:
- { artifact-type: design-decision-record, from-role: DES-PROD, from-method: post-direction, required-state: Accepted }
workflow:
- step-id: derive-tokens
objective: design-decision-record 의 제약을 토큰(값+의도+경계)으로 승격 — 경계 없는 토큰 금지
uses-capability: { skill-id: design-craft, section-id: token-semantics }
required-output: token-contract
completion-gates:
judgment:
- { gate-id: bounded-tokens, criterion: 각 토큰이 값·의도·경계(언제 쓰고 무엇에 절대 안 쓰는지)를 모두 명시, reviewer-role: DES-PLATFORM }
- step-id: promote-components
objective: 반복 패턴을 SRP 로 표준 컴포넌트로 승격(판단로직+anti-pattern 문서화)
required-output: component-spec
skippable: true
skip-rules:
- { rule-id: no-repeat-pattern, when: 반복 UI 패턴이 없어 승격 대상 없음 }
decision-rules:
- 토큰 경계는 예시로 고정(예 primary=CTA 전용·배경 금지·화면당 1회)
evidence-policy:
- 토큰/컴포넌트 결정은 레퍼런스 시스템의 구체 신호(간격 스케일·타이포 램프)에 접지
alternatives-policy: { min-alternatives: 2 }
output-artifacts: [token-contract]
prohibited-shortcuts:
- 경계 없는 토큰 정의(일관성 붕괴)
- "형용사(modern/clean)로 레퍼런스 지정"
self-check:
- 모든 토큰이 값+의도+경계 3요소를 갖는가
working-method:
- Atomic Design(atoms→molecules→organisms→templates→pages)으로 UI를 계층화·추상화해 최소 단위부터 조립 가능한 컴포넌트로 만든다.
- '디자인 토큰을 값이 아니라 계약으로 정의한다 — 각 토큰에 값+의도+경계(언제 쓰고 무엇에 절대 안 쓰는지). 예: primary는 CTA 전용·배경 금지·화면당 1회. 경계 없는 토큰은 일관성을 무너뜨린다.'
- 단일 책임 원칙으로 반복 UI 패턴을 표준 컴포넌트로 승격하고, 각 컴포넌트에 판단로직(언제 이 컴포넌트 vs 대안)과 금지규칙(anti-pattern)을 함께 문서화한다.
- 레퍼런스 시스템(Linear·Stripe·Material 등)에서 형용사가 아니라 구체 신호(간격 스케일·타이포 램프·elevation 규율)를 빌리고 그 이유를 남긴다("modern/clean" 금지).
- 디자인과 코드가 함께 진화하도록 정합성(Code Connect)을 확보해 중복 작업·오해를 제거한다.
- 컴포넌트 문서·사용 가이드라인을 제공하고 채택률·커버리지·토큰 사용률·유지보수 대상 수를 지표로 관리한다.
key-frameworks:
- Atomic Design
- Design Tokens (값+의도+경계 — 경계가 일관성을 만든다)
- 디자인 시스템 / 컴포넌트 라이브러리
- 단일 책임 원칙(SRP)
- 디자인-코드 매핑(Code Connect)
- 레퍼런스 구동(구체 신호) + 컴포넌트별 판단로직·금지규칙
evidence-they-use:
- 컴포넌트 커버리지·채택률
- 디자인-코드 정합성 지표
- 토큰 사용률
- 유지보수 대상 수
sources:
- https://atomicdesign.bradfrost.com/chapter-2/
- https://bradfrost.com/blog/post/design-tokens-atomic-design-%E2%9D%A4%EF%B8%8F/
- https://bradfrost.com/blog/post/extending-atomic-design/
- https://processtopixels.substack.com/p/writing-a-designmd-file-claude-can
DES-INTERNAL:
# Contract v2(P3-B) — draft. 사내 운영자 도구 surface(공개 방향 체인과 분리) — 소비자는 ENG(family 외부).
method-contract: { version: 2 }
role-boundary:
owns:
- 사내 운영자 도구 UX
- 반복 업무 워크플로우 설계
- progressive/staged disclosure
- 파괴적 액션 가드
not-owns:
- 고객대면 화면(-> DES-PROD)
- 방향 선택(-> DES-DIRECTOR)
- 토큰 시스템(-> DES-PLATFORM)
methods:
- method-id: internal-tool-design
applies-when: { task-types: [internal-tool, operator-workflow] }
workflow:
- step-id: frame-operator-brief
objective: 어떤 운영자가 어떤 반복 업무에서 무엇을 달성 — 워크플로우·처리시간·오류율이 성공조건(미학 아님)
uses-capability: { skill-id: design-craft, section-id: brief }
required-output: operator-brief
- step-id: design-workflow
objective: 반복 수작업/병목을 태스크 순서로 설계 + staged/progressive disclosure 로 과부하 없이 전문가 효율
required-output: workflow-model
- step-id: record-decisions
objective: 정보밀도·단축키·기본값 판단로직 + 금지(파괴적 액션 확인없이 실행 금지)를 design-decision-record 로
uses-capability: { skill-id: design-craft, section-id: decisions }
required-output: design-decision-record
completion-gates:
judgment:
- { gate-id: destructive-guard, criterion: 파괴적 액션에 확인 게이트/복구 경로가 명시됨, reviewer-role: DES-INTERNAL }
decision-rules:
- 전문가 효율 우선(초심자 배려로 전문가 속도를 희생하지 않음) — 단 복구 가능성은 필수
evidence-policy:
- 설계 근거는 운영자(내부 고객) 관찰·처리시간·오류율에 접지
alternatives-policy: { min-alternatives: 2 }
output-artifacts: [design-decision-record]
prohibited-shortcuts:
- 파괴적 액션을 확인 없이 실행하게 설계
self-check:
- 모든 파괴적 액션이 복구 가능하거나 확인 게이트를 갖는가
working-method:
- 먼저 design-brief를 세운다 — 어떤 운영자가 어떤 반복 업무에서 무엇을 달성해야 하는지(미학이 아니라 워크플로우·처리시간·오류율이 성공조건).
- '복잡 애플리케이션 8원칙을 적용한다: learning by doing(작업 손실 없는 실험), 비선형·유연 경로 허용, 실수해도 복구 가능한 설계.'
- 반복 수작업/운영 병목을 워크플로우로 분석해 태스크 순서를 설계하고, staged/progressive disclosure로 정보 과부하 없이 전문가 효율을 유지한다.
- '결정을 제약으로 남긴다 — 정보 밀도·단축키·기본값의 판단로직과 금지규칙(예: 파괴적 액션은 확인 없이 실행 금지)을 명시한다. 추론층을 비우지 않는다.'
- 운영자가 오가는 다중 도구/워크스페이스 전환을 지원한다(export·서드파티 연동), 오류 예방·권한/보안 요건을 반영한다.
- TCO·처리시간·자동화율 관점에서 개선하고, 운영자(내부 고객) 관찰로 설계 근거를 확보한다.
key-frameworks:
- design-brief (제약>묘사) — 운영자·워크플로우 우선
- 복잡 애플리케이션 8 가이드라인(NN/g)
- 엔터프라이즈 유저빌리티(TCO 중심)
- 워크플로우 디자인
- Progressive / Staged Disclosure
- 휴리스틱 평가
- 판단로직 · 금지규칙(파괴적 액션 가드)
evidence-they-use:
- 운영자 관찰·현장 병목 신호
- 처리시간 / 자동화율 KPI
- 사용성 테스트
- value-stream 내부 흐름
sources:
- https://www.nngroup.com/articles/complex-application-design/
- https://www.nngroup.com/articles/enterprise-usability/
- https://www.nngroup.com/videos/complex-apps-workflows/
DES-VISUAL:
# Contract v2(P3-B) — draft. 방향 루프 완성: DES-DIRECTOR/frame ──divergence-charter──▶ art-direction
# ──reference-cluster──▶ DES-DIRECTOR/converge. 화면/토큰이 아니라 '방향의 시각적 주장'을 소유.
method-contract: { version: 2 }
role-boundary:
owns:
- 방향별 아트디렉션
- reference-cluster(구체 신호 6±)
- visual thesis 한 문장
- signature interaction 하나
- 대표 화면 coded slice
not-owns:
- 방향 선택·수렴(-> DES-DIRECTOR)
- 화면 상태·흐름 모델링(-> DES-PROD)
- 토큰/컴포넌트 시스템(-> DES-PLATFORM)
methods:
- method-id: art-direction
applies-when: { task-types: [visual-direction, art-direction] }
required-inputs:
- { artifact-type: divergence-charter, from-role: DES-DIRECTOR, from-method: frame-divergence, required-state: Accepted }
workflow:
- step-id: narrow-references
objective: 방향별 reference-cluster 를 6개 내외로 좁힘(형용사 금지·구체 신호 명명)
uses-capability: { skill-id: design-craft, section-id: reference-cluster }
required-output: reference-cluster
completion-gates:
judgment:
- { gate-id: no-adjectives, criterion: 레퍼런스가 modern/clean 형용사가 아니라 명명된 제품+신호(밀도·간격·색규율·모션)로 정의됨, reviewer-role: DES-VISUAL }
- step-id: set-visual-thesis
objective: 이 방향이 시각적으로 무엇을 주장하는지 한 문장(visual thesis)
required-output: visual-thesis
- step-id: define-signature-interaction
objective: 방향을 체감시키는 대표 모션/인터랙션 하나로 좁힘(다다익선 아님)
required-output: signature-interaction
- step-id: build-coded-slice
objective: 대표 화면을 coded slice(실물 코드)로 구현 — 정적 목업 아님
required-output: coded-slice
completion-gates:
machine:
- { gate-id: slice-rendered, check: artifact-exists, artifact: coded-slice, field: preview-receipt, enforcement: hard }
decision-rules:
- reference 는 방향당 6±(3 미만=신호 부족, 10 초과=수렴 불가)
evidence-policy:
- 모든 시각 결정은 명명된 레퍼런스 신호에서 유도(형용사로 되돌아가지 않음)
output-artifacts: [reference-cluster]
handoff-contract:
- edge-id: art-to-converge
to: { role-id: DES-DIRECTOR, method-id: converge-directions }
artifact-type: reference-cluster
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "N:1"
- method-id: compare-directions
applies-when: { task-types: [comparative-design-audit, divergence-audit] }
required-inputs:
- { artifact-type: divergence-charter, from-role: DES-DIRECTOR, from-method: frame-divergence, required-state: Accepted }
workflow:
- step-id: rehydrate-all-directions
objective: 세 방향의 원본 coded slice·full-size preview·reference board를 모두 읽는다(sibling isolation 예외)
required-output: comparison-notes
- step-id: compare-visual-distance
objective: layout/navigation/type/imagery/motion/primitive 6축으로 모든 방향 쌍을 비교한다
required-output: pairwise-comparisons
- step-id: veto-collisions
objective: 공통 카드 셸·reference 과다중복·색상만 다른 변주를 blocking finding으로 기록한다
required-output: comparative-divergence-audit
completion-gates:
judgment:
- { gate-id: pairwise-separation, criterion: 모든 방향 쌍이 최소 4개 조형 축에서 다르고 primitive collision이 없음, reviewer-role: DES-DIRECTOR }
decision-rules:
- 이 method만 형제 방향 원본을 함께 읽는다 — 비교 없이 distinctiveness를 판정하지 않는다
- blocking finding이 하나라도 있으면 pass 금지
evidence-policy:
- 판정은 full-size preview와 hash-bound direction-set 원본에 접지
output-artifacts: [comparative-divergence-audit]
handoff-contract:
- edge-id: audit-to-converge
to: { role-id: DES-DIRECTOR, method-id: converge-directions }
artifact-type: comparative-divergence-audit
required-state: Accepted
binding: same-workflow
freshness: current-usable
cardinality: "1:1"
prohibited-shortcuts:
- "형용사(modern/clean)로 방향 규정 — 인터넷 평균 수렴"
- signature interaction 을 여러 개로 늘려 방향을 흐리기
self-check:
- 산출물이 레퍼런스 신호에서 유도됐는가, 형용사로 되돌아가지 않았는가(anti-generic)
working-method:
- 방향별로 reference cluster를 6개 내외로 좁힌다 — "modern/clean/minimal" 형용사(인터넷 평균) 대신 구체 제품과 각자가 나르는 신호(밀도·간격·색 규율·모션)를 명명한다.
- 그 신호들로 visual thesis 한 문장을 세운다 — 이 방향이 시각적으로 무엇을 주장하는지.
- signature interaction 하나를 정의한다 — 방향을 체감하게 하는 대표 모션/인터랙션 하나로 좁힌다(다다익선 아님).
- 대표 화면을 coded slice(실제 코드 조각)로 구현해 방향을 정적 목업이 아니라 검증 가능한 실물로 만든다.
- 토큰/결정을 값이 아니라 제약(값+의도+경계)과 금지규칙(anti-pattern)으로 남긴다 — 추론층을 비우면 모델이 generic으로 채운다.
- anti-generic self-check로 산출물이 레퍼런스 신호에서 유도됐는지, 형용사로 되돌아가지 않았는지 스스로 점검한다.
key-frameworks:
- 'design-brief (제약>묘사): brief→references(6집중)→tokens(값+의도+경계)→decisions→donts'
- 레퍼런스 구동 디자인(형용사 금지, 구체 신호)
- visual thesis / signature interaction
- coded slice(대표 화면 실물 구현)
- anti-generic self-check
evidence-they-use:
- 명명된 레퍼런스와 그 신호(밀도·간격·색 규율·모션)
- coded slice 실물 아티팩트
- design-brief tokens/decisions/donts
- design-craft skill(anti-generic 체크리스트)
sources:
- https://processtopixels.substack.com/p/writing-a-designmd-file-claude-can
- https://github.com/VoltAgent/awesome-design-md
- https://stensyl.ai/blog/reference-images-ai-style-consistency
- https://www.nngroup.com/articles/vague-prototyping/