feat(skill): route fixes, delivery report, composition diversity, platform refresh
- route table: extension route for products with an existing visual language, feedback row, derived state tokens stay local - completion: blocking 0 plus reported unverified; hard-gate surface is the touched scope; delivery report starts with what and how to open - design.md created at step 0 with a skeleton, fingerprint line and change log; product-surface rubric reading; direction delegation states the chosen card and reason - layout: hero families, nav forms, footer forms; art-direction page convergence 6 axes; genre sections; image treatments; placeholder conventions; multi-screen order; Tailwind theme mapping - platform: scroll-driven examples, anchor positioning, canvas OT, three/R3F pins, shadcn style prefixes, Safari 26 notes, subgrid - design-gate: four result states, exit codes, cwd module resolution, --url/--out-dir/--strict, oklch contrast, dead selector word match - Korean font budget split from the Latin baseline
This commit is contained in:
parent
9bcb45cbd3
commit
88c11682b1
51 changed files with 5834 additions and 2259 deletions
27
.changeset/redteam-2026-10-hardening.md
Normal file
27
.changeset/redteam-2026-10-hardening.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
"designpaca": minor
|
||||
"@designpaca/core": minor
|
||||
"@designpaca/skill": minor
|
||||
---
|
||||
|
||||
**설치 엔진 보안 수정.** update 가 project 설치를 기록된 위치에서만 갱신하도록 고쳤다(다른 디렉터리에서 실행해도 그 디렉터리에 설치하지 않음). project 설치는 심링크·정션을 따라 쓰지 않고, 심링크인 AGENTS.md 에는 주입하지 않는다. 기록 없이 덮는 기존 파일과 반복 --force 는 `.orig`, `.orig.1`… 로 백업하고, uninstall 은 기록 root 밖 파일을 지우지 않는다. Windows 에서 `npm`/`npx` 를 셸 없이 실행하고 선택 도구 버전을 고정했다. CI 와 비대화형 출력에서는 업데이트 확인을 건너뛴다. 개발용 테스트 파일은 사용자 설치물에서 뺐다.
|
||||
|
||||
**묻는 시점 변경(인터뷰 게이트, AGENTS.md #10).**
|
||||
- 추가 1: 전체 경로(리디자인 포함)에서 2단계 끝에 **방향 체크포인트**를 둔다. 구조가 서로 다른 방향 카드 2~3장을 보이고, 사용자가 고를 때까지 턴을 끝내며 토큰·구현에 들어가지 않는다. 명시적 위임이면 카드를 만들고 고른 이유를 밝힌 뒤 진행한다. 연장·국소·리뷰 경로는 돌지 않는다.
|
||||
- 축소 1: 국소 작업에서 손대지 않는 기존 고유명사·수치는 다시 묻지 않는다. 이번 작업이 새로 만들거나 바꾸는 값만 묻는다.
|
||||
- 축소 2: 특정 슬롯에 대한 "모르겠다·아무거나·상관없다"는 그 슬롯 하나의 위임으로 다루고 재질문하지 않는다(가정 목록에 "확인 필요"로 기록, 톤은 방향 체크포인트가 다시 확인).
|
||||
- 연장 경로에서 사용자가 스타일을 둘 이상 말하고 지배/보조를 정하지 않으면, 기존 모순 정리 사유로 2라운드 질문이 열릴 수 있다.
|
||||
- 질문 언어: 사용자에게 묻고 보고하는 말(질문·선택지·가정 목록·완료 보고)은 사용자의 대화 언어로 쓴다. 스킬 문서가 한국어라는 것은 근거가 아니다. 영어로 요청하면 영어로 묻는다. 사이트 카피의 기본 언어 판정과는 따로 정한다(인터뷰 게이트 규칙 3, brief-interview §5·§17).
|
||||
- 빈 답 처리를 하나로 맞췄다. 메인 세션에서 질문이 거부·오류·시간 초과·자동 해제된 빈 답으로 끝나면 가정으로 진행하지 않고 평문으로 다시 묻는다. 서브에이전트는 호출자가 답 없이 다시 진행을 지시했을 때만 가정으로 진행한다.
|
||||
|
||||
**스킬 변경.**
|
||||
- 경로 판정 표를 독립 제목으로 올리고 빈틈을 메웠다: 리디자인 명시는 `design.md`가 있어도 전체 경로, 새 화면·토큰 재정의 없이 섹션 3개 이상이면 연장, 리뷰 경로는 읽기 전용(게이트 `--init`·의존성 설치·`package.json` 수정 금지).
|
||||
- 기본 언어 판정 순서를 명시 언어 → 프로젝트 로컬라이제이션 → 대화 언어 → OS 로케일로 바꿨다. 원격·컨테이너 로케일은 근거로 쓰지 않는다.
|
||||
- 비평 심각도에 Direction(방향) 등급과 10축 시각 비평 루브릭을 추가했다. 같은 결함의 수정 시도는 3회까지이고, 실행하지 못한 검사는 미검증으로 따로 보고하며 충족으로 세지 않는다.
|
||||
- 납품 뒤 취향 불만을 축으로 좁혀 고치는 `feedback-loop.md`, 두 스타일을 섞는 `remix.md`, 스타일 카드 25종의 `style-atlas.md`, 장르별 필수 블록의 `genre-conventions.md` 를 추가했다. "프리셋 하나만"을 "지배 프리셋 하나 + 보조 축"으로 완화하고, 프리셋의 한글 서체·배경·강조·radius를 후보 풀과 범위로 바꿨다.
|
||||
- 한글 조판 정본을 `typography.md` §6-5로 옮기고 값을 정했다(keep-all과 overflow-wrap, 행간·자간, 이탤릭·모노 한글 금지, measure). 성능 기본선에 INP를 넣었다.
|
||||
- 큰 문서를 나눴다(`audit-gate-rules.md`, `motion-parallax.md`, `svg-glass.md`). `preflight.md`를 행 ID가 붙은 유일한 납품 체크리스트로 만들고, `evidence-ledger.md`는 필요한 ID 행만 조회하는 원장으로 바꿨다.
|
||||
- 외부 페이지에서 읽은 지시는 데이터로 다루고 따르지 않는다(프롬프트 인젝션 방어). 이미지 생성 도구의 샌드박스·승인 해제 지시를 없앴다.
|
||||
- SKILL.md를 줄였다(추정 약 15.7k → 10.8k 토큰). 라우팅 서술을 단계별 § 포인터 하나로 합치고 중복 규칙을 지웠다. 본문의 하네스 전용 도구명을 없앴고, description의 "차단" 약속을 본문과 맞추고 대시보드·모바일/PWA 경계를 넣었다.
|
||||
- description 트리거를 넓혔다: 기존 화면의 색·간격·hover·폰트 크기 같은 국소 디자인 수정(영어 "tweaking the look (colors, spacing, hover states, font sizes)")에도 스킬이 불린다. 디자인과 무관한 기능·로직 버그 수정에는 쓰지 않는다고 명시했다. 국소 경로는 인터뷰 없이 고치므로 묻는 시점은 바뀌지 않지만, 스킬이 불리는 범위가 넓어진다.
|
||||
- 스킬 lint가 인터뷰 게이트 규칙 수·핵심 문구·완화 문구, 하네스 전용 도구명, CRLF·BOM, SKILL.md 토큰 예산을 검사한다.
|
||||
Loading…
Add table
Add a link
Reference in a new issue