프로젝트 소개

# Design-Agent — DSH 디자인 에이전트 워크스페이스 이것은 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) 기반의 **디자인 에이전트 완전 재현 패키지**입니다. `my-agent` 프리셋, `design-references` 라우팅 스킬(DSH 어댑티드 버전), `design-router` 결정적 도구 플러그인을 포함합니다. 이 프로젝트는 기존 HTML 기반 디자인 에이전트를 업그레이드하고 [design-references](https://github.com/haohaiHuang/my-pi-skills/tree/main/skills/design-references) 방법론을 채택하여 구축되었습니다. > ⚠️ **이 패키지는 콘텐츠가 아닌 메커니즘을 재현합니다.** 라우팅, 규율, 도구는 완전히 자체 포함되어 있습니다(클론 → `cp -RL` → 실행). 그러나 *참조 라이브러리*는 개인화되어 있습니다 — 몇 가지 주요 리소스가 `~/Desktop/Design/...` 및 `~/resources/design-references.md`를 가리키며, 이러한 개인 자산은 저장소에 포함되지 않습니다. 새 머신에서는 이러한 항목이 폴백 체인(`web_search` + `dembrandt` + 내장 시그니처 규율)으로 대체됩니다. 전체 개인 참조 세트가 필요하면 해당 디렉토리를 직접 복사하십시오. 없이도 이 패키지는 "시그니처 규율 + 웹 연구" 디자인 에이전트로 작동합니다. ## 포함 내용 | 구성 요소 | 역할 | | --- | --- | | [`plugins/design-router/`](plugins/design-router/) | 결정적 도구 Cordis 플러그인(읽기 전용 도구 6개 + 로컬 로그 작성기 1개, 외부 런타임 의존성 제로) | | [`presets/my-agent/`](presets/my-agent/) | DSH 에이전트 프리셋(`agent.cordis.yml` + `preset.yml`): 3계층 라우팅 역할(단계 → 분기 → 단계) 및 단계별 확인 게이트 | | [`skills/design-references/`](skills/design-references/) | 단계/분기 라우팅 스킬(단계 분류 → A 제품 / B 콘텐츠 / C 일반 → 5단계), DSH 어댑티드 버전 | | [`skills/hallmark/`](skills/hallmark/) | AI 슬롭 방지 실행 스킬([nutlope/hallmark](https://github.com/nutlope/hallmark)의 MIT 업스트림 사본; `site/` 테마 토큰 및 예제가 스킬에 내장되어 자체 포함) | > **DSH 버전 요구 사항: `0.1.5-rc.1` 이상.** 역할 플러그인 패턴은 0.1.5에서 변경되었습니다(`text` → `prefix` + `suffix`). 여전히 `text:`를 사용하는 프리셋은 `$.prefix missing required value` 오류로 마운트되지 않습니다. 이 저장소의 프리셋은 0.1.5 패턴을 기반으로 하며 0.1.5에서 도입된 두 줄(`present`(`dsh-tool-present`, 전달 선언) 및 `command-goal`(`/goal` 명령))을 사용합니다. ## plugins/design-router — 결정적 도구 [my-pi-skills](https://github.com/haohaiHuang/my-pi-skills)의 `extensions/design-router`에서 포팅되었습니다(pi 확장 → DSH Cordis 플러그인). `my-agent` 프리셋이 `agent.cordis.yml`의 **상대 경로 줄**을 통해 마운트합니다(프리셋의 `plugins/`는 저장소 루트 `plugins/`에 대한 상대 심볼릭 링크이며, 설치 시 `cp -RL`로 확장됩니다 — 절대 경로 불필요): ```yaml - id: design-router name: './plugins/design-router/index.mjs' ``` ### 도구 | 도구 | 용도 | 단계 | | --- | --- | --- | | `design_lookup <branch> <stage>` | 디자인 리소스 레지스트리 조회(R/C/E/V 3차원 인덱스 + 폴백 체인 + 출처; 출력 스타일 버킷) | "이 단계에서 무엇을 참조해야 하나?" | | `design_route <need>` | 요구 키워드를 권장 스타일 버킷 조합(주요 필수 + 보조 선택) 및 버킷별 대표 리소스에 매핑 | 1단계 연구(동질화 방지 라우팅) | | `design_diversity <c1> <c2> <c3>` | 후보 3개의 차이점 기계 검사(색상 계열 / 글꼴 톤 / 출처 버킷), 통과/실패 | 1단계 후보 제시 전(동질화 방지 검사) | | `design_quality <report\|query>` | 출처 품질 신호 기록/조회(추출 성공률 / 재작업률 / 도달 가능성 — 객관적, 취향 기반 아님); 로컬 로그, git에 없음 | 4단계 후 기록 / 1단계 내림차순 소비 | | `design_audit <target>` | 기계 슬롭 게이트(시그니처 머신 하위 집합) + 인터페이스 CS-* 8규칙 + 4단계 스캔 + 상속 비교 | 4단계 검증 | | `design_contrast <target>` | WCAG 2.1 + APCA 근사 대비 | 4단계 검증 | ### pi 버전과의 의도적 차이점 - **제거됨** `design_research`(DSH는 ledger-grep + refero 프로브 + `web_search` 폴백 체인 사용) - **제거됨** `hallmark_study_fetch`(DSH는 `dembrandt` / `defuddle` 사용) - **제거됨** `before_agent_start` 주입 및 `/design-router` 명령(DSH 스킬 로딩 메커니즘이 라우팅을 이미 처리) - **`@deepseek-ai/dsh-tools`에 의존하지 않음**(워크스페이스 모듈이 dsh 설치 디렉토리를 해석할 수 없음); 도구 정의는 순수 JSON Schema로 구축 — 외부 런타임 의존성 제로 ### 레이아웃 ``` plugins/design-router/ ├── index.mjs # 플러그인 진입점: 6개 도구 등록(5개 읽기 전용 + 1개 로컬 로그 작성기) ├── checks/ # 포팅된 검사기(TS→JS): 타이포그래피/레이아웃/접근성/카피/대비/치트/슬롭 제거/에셋/타입 │ └── kill-slop.test.mjs # KS-* 회귀 테스트(node checks/kill-slop.test.mjs) └── data/ └── registry.json # registry.md의 데이터 형태(91개 리소스 × 9개 분기 라우팅) ``` ### 기계 게이트 범위 `design_audit`는 7개 검사기 모듈을 실행하고 게이트 번호가 있는 할 일 목록을 반환합니다: | 계열 | 게이트 | 출처 | | --- | --- | --- | | Hallmark 슬롭 | 1/2/10/14/19/24/26/27/30/33/34/37/38a/39/40/41/46/47/50/51 | hallmark `slop-test.md`(기계 하위 집합) | | 인터페이스 CS-* | CS-1…CS-8 | interfaces.dev 치트 시트 | | 모션 EM-* | EM-2/3/5(EM-1/7/8은 게이트 10/14/27에 매핑) | emilkowalski/skills | | kill-ai-slop KS-* | KS-03/04/05/08/14 | kill-ai-slop 트랜스크립트 | | 에셋 계층 DR-A* | DR-A1/DR-A2 | Anshu 에셋 계층 게이트(브랜드 로고/이미지 존재성) | | design-references 4단계 | DR-4(글꼴 두께/모서리 반경 과사양) | design-references workflow.md | ### 유지 관리 - `registry.md`는 **진실의 원천**입니다(`~/.agents/skills/design-references/references/registry.md`); 편집 후 `node plugins/design-router/scripts/build-registry.mjs`를 실행하여 `data/registry.json`(+ `data/manifest.json` 버전 메타데이터)을 재생성하십시오. **registry.json을 수동으로 편집하지 마십시오.** - 검사기 로직은 업스트림 `extensions/design-router/checks/`(TS→MJS 포팅)를 따릅니다; 업스트림 업데이트 후 `node plugins/design-router/scripts/check-checks-sync.mjs /path/to/my-pi-skills/extensions/design-router/checks`를 실행하여 게이트 범위를 검증하십시오 — **그런 다음 검사기 상수를 수동으로 비교하십시오**: 게이트 번호 동등성은 세부 드리프트(예: 확장된 기본 글꼴 목록)를 포착하지 못합니다. KS 회귀 테스트가 이러한 드리프트를 포착합니다. - 검사기 변경 후: `node index.test.mjs` 및 `node checks/kill-slop.test.mjs` 실행. ## 일회성 재현(새 머신) 저장소는 **메커니즘**을 재현합니다: 플러그인 + 프리셋 + DSH 어댑티드 스킬은 모두 저장소 내에 있습니다(참조 라이브러리 *콘텐츠*는 개인화되어 있음 — 상단 경고 참조). ```bash # ── 저장소와 함께 제공(클론 → 실행) ── # 1. 스킬(design-references는 DSH 어댑티드 버전; hallmark는 MIT 업스트림 사본) cp -R skills/design-references ~/.agents/skills/ cp -R skills/hallmark ~/.agents/skills/ # 2. 프리셋(cp -RL은 presets/my-agent/의 상대 플러그인 심볼릭 링크를 자체 포함 사본으로 확장 — # 설치 후 프리셋은 저장소 경로에 의존하지 않으며 자유롭게 복사/마이그레이션 가능) mkdir -p ~/.dsh/.agent-presets cp -RL presets/my-agent ~/.dsh/.agent-presets/ # 3. 플러그인 소스(git 관리를 위해 저장소 루트 plugins/ 아래 유지) # 프리셋은 상대 경로 './plugins/design-router/index.mjs'로 참조: # presets/my-agent/plugins는 저장소 루트 plugins/에 대한 상대 심볼릭 링크이며, # cp -RL이 실제 디렉토리로 확장 — 어떤 머신에서도 경로 편집 불필요. # 4. 외부 의존성(소프트 의존성 — 누락 시 우아하게 폴백) npm install -g dembrandt # URL → 디자인 토큰(1단계 후보 검증) # defuddle: npm install -g defuddle # npm install -g @open-pencil/cli # 선택 사항: .fig/.pen 디자인 파일 읽기/변환/검증(Figma 계열 스킬 / 수동 검토로 폴백) # ── 직접 제공(개인 선택; 누락 시 폴백 체인으로 대체) ── # 5. 머신 로컬 에셋(ledger + kami/zine/logo-generator 참조 라이브러리) # 없이도 이 패키지는 "시그니처 규율 + web_search/dembrandt" # 디자인 에이전트로 작동하지만 후보 풀에서 개인 선택이 사라집니다. ``` **참고**: 프리셋의 플러그인 줄은 **상대 경로**(`./plugins/design-router/index.mjs`, `presets/my-agent/plugins`는 `cp -RL`로 확장되는 상대 심볼릭 링크)를 사용하므로 새 머신에서는 프리셋 디렉토리만 복사하면 됩니다 — **경로 편집 불필요**. 심볼릭 링크를 피하려면 `plugins/design-router/`를 `presets/my-agent/plugins/`에 복사하고 일반 `cp -R`을 사용하면 됩니다(결과는 동일, 사본 하나 더). ### 저장소 구조 ``` ├── plugins/design-router/ # 결정적 도구 플러그인(도구 6개, 런타임 의존성 제로) ├── presets/my-agent/ # DSH 프리셋(agent.cordis.yml + preset.yml) ├── skills/ │ ├── design-references/ # 라우팅 스킬(DSH 어댑티드 버전) │ └── hallmark/ # AI 슬롭 방지 스킬(MIT 업스트림 사본, site/ 테마 에셋 포함) ├── README.md # 영어(기본) └── README.zh.md # 중국어 ``` ## 타사 콘텐츠 및 라이선스 귀속 이 저장소는 다음 타사 콘텐츠를 번들합니다(업스트림 라이선스/귀속 유지): | 콘텐츠 | 출처 | 라이선스 | 위치 | | --- | --- | --- | --- | | hallmark 스킬 + `site/` 테마 토큰 및 예제 | [nutlope/hallmark](https://github.com/nutlope/hallmark) | MIT(전문은 [`skills/hallmark/LICENSE`](skills/hallmark/LICENSE) 참조) | `skills/hallmark/` | | 레지스트리가 참조하는 외부 디자인 리소스(kami/zine/logo-generator 등) | 각각의 업스트림 저장소 | 링크 참조만(번들 아님; 출처 URL은 [`registry.md`](skills/design-references/references/registry.md) 참조) | — | 기타 모든 콘텐츠(`plugins/`, `presets/`, `skills/design-references/`)는 이 저장소의 원본이며 [MIT 라이선스](LICENSE)(저작권 © 2026 haohaiHuang)를 따릅니다. ## 관련 프로젝트 - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) — 이 패키지를 실행하는 인프라(`dsh`, 모든 것이 플러그인) - [my-pi-skills](https://github.com/haohaiHuang/my-pi-skills) — 업스트림 스킬 저장소(design-references / skill-router / vision) - [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) — 선별된 DSH 플러그인 목록