Skip to content
This repository was archived by the owner on Aug 10, 2026. It is now read-only.

fix: prepare design-workflow v0.2.1 - #6

Merged
sleegme merged 2 commits into
mainfrom
fix/v0.2.1-contract-and-release
Jul 20, 2026
Merged

sleegme merged 2 commits into
mainfrom
fix/v0.2.1-contract-and-release

Conversation

@sleegme

@sleegme sleegme commented Jul 20, 2026

Copy link
Copy Markdown
Owner

문제의 원인

v0.2.0 route contract는 물리적 artifact 존재 여부를 artifact_exists로 모델링하고 create에 항상 false를 요구했습니다. 이 때문에 구조만 고정된 wireframe이 존재하지만 보존할 시각 체계가 없는 S06을 유효한 create로 표현할 수 없었습니다. 릴리스 버전도 CI, 패키징, 검증 경로에 분산되어 있었고 runtime skill ZIP은 디렉터리를 광범위하게 재귀 포함했습니다.

계약 모델 변경

  • artifact_exists를 meaningful_design_exists로 교체했습니다.
  • create는 meaningful_design_exists=false를 요구하며, wireframe의 content order와 information architecture를 fixed로 보존할 수 있습니다.
  • preserve, expand, redesign은 의미 있는 기존 디자인을 전제로 true를 요구합니다.
  • redesign_authorized=true, 분석 전용 route의 비변경 규칙, fixed/changeable 비중복 규칙은 유지했습니다.
  • 여덟 route 이름과 역할은 변경하지 않았습니다.

하위 호환성 영향

Route contract JSON의 artifact_exists는 더 이상 허용되지 않으므로 해당 필드를 meaningful_design_exists로 마이그레이션해야 합니다. v0.2.0 semantic 결과는 누락된 실행 정보나 모델명을 추측해 수정하지 않았으며 legacy 기록으로 계속 검증됩니다. v0.2.1 이후 새 결과만 schema 1.0 provenance를 요구합니다.

버전과 릴리스

  • 루트 VERSION을 0.2.1 단일 source of truth로 추가했습니다.
  • 두 패키저는 기본적으로 VERSION을 읽고, 명시한 --version이 다르면 실패합니다.
  • release workflow는 GitHub Release 생성 전에 GITHUB_REF_NAME == "v" + VERSION을 검증합니다.
  • CI는 VERSION 기반 skill/project ZIP을 각각 두 번 생성해 비교합니다.

패키지 보안 경계

Runtime skill ZIP은 SKILL.md, legal files, agents/, references/, assets/, scripts/만 허용합니다. Python cache는 제외하고, 숨김 파일, 임시/백업 파일, ZIP/checksum, traversal, symlink, credential 유사 파일명, 예상하지 않은 형식과 5 MiB 초과 파일은 패키징 오류로 처리합니다. 실제 ZIP에는 허용된 16개 runtime 파일만 포함됐고 repository docs, evals, tests는 포함되지 않았습니다.

Semantic evaluation provenance와 한계

새 결과 스키마는 실행 시각, commit SHA, skill version, client/runner, model, reasoning effort, suite 파일/revision, 실제 observed route, boundary 판정과 rationale를 요구합니다. Grader는 필드 완전성, route 일치, 실행자가 선언한 boundary와 rationale 존재만 확인합니다. 의미 경계 보존을 자동으로 입증하지 않으며 독립적인 사람 또는 모델의 검토가 필요합니다.

v0.2.1 semantic forward test는 새로 실행하지 않았고 새로운 성공 결과도 기록하지 않았습니다. README의 16/16은 변경하지 않은 과거 v0.2.0 기록임을 명시했습니다.

테스트와 검증

  • python -m pip install -r requirements-dev.txt — 임시 가상환경에서 통과
  • python -m compileall -q design-workflow/scripts scripts tests — 통과
  • python scripts/validate_project.py — 통과
  • agentskills validate design-workflow — 통과
  • python -m unittest discover -s tests -v — 22/22 통과
  • python scripts/package_skill.py — 통과
  • python scripts/package_project.py — 통과
  • git diff --check — 통과
  • workflow YAML syntax parse — 통과
  • skill ZIP deterministic SHA-256: dd7b70f683a0b4df96ef7db9a5a86f46f05831940e35dfd5d87b759d18bd8250
  • project ZIP deterministic SHA-256: 35cfa7e4d47b7c49da27a1f28f603a79a89a70a49e531710a9b48584aa325325

수행하지 않은 항목

  • 실제 client/model semantic forward test 재실행(기존 결과를 검증 없이 갱신하지 않기 위해 수행하지 않음)
  • release tag 생성 및 GitHub Release 발행(이 PR 범위 밖이며 tag push 시 workflow가 검증)

@sleegme
sleegme marked this pull request as ready for review July 20, 2026 00:52
@sleegme
sleegme merged commit 1566952 into main Jul 20, 2026
3 of 6 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant