# 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/