chore: add Claude Code guidelines, rules and skills
- CLAUDE.md: product principles, crate layering, common commands, commits. - .claude/rules: common, Rust, frontend, Tauri IPC, docs and security rules. - .claude/skills: check, add-tauri-command, project-model-change, change-record, msix-integration-test, backlog-status. Refs #16 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7f5540f148
commit
905e6d4eaa
13 files changed
+654
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# Installer Studio — 작업 지침
|
||||
|
||||
Windows 설치 패키지(현재 MSIX) 제작기. Rust 공통 엔진 + Tauri 2 데스크톱 GUI + CLI. 모든 소스는 `src/`에 있고 설계·계획·변경 기록은 `docs/`에 있다. `output/`의 HTML은 디자인 시안이며 실제 동작 코드가 아니다.
|
||||
|
||||
핵심 제품 원칙 (코드와 문서 모두에 적용):
|
||||
|
||||
- **빌드 성공 ≠ 배포 가능.** `deploymentReady`는 false, `installationTest`는 `notRun`을 유지한다. 실행하지 않은 검사를 통과했다고 쓰지 않는다.
|
||||
- **입력을 바꾸지 않는다.** 소스 파일·빌드 PC 레지스트리·인증서 저장소·사용자 프로젝트 파일을 자동 변환·설치·등록하지 않는다. 결과는 덮어쓰지 않는다.
|
||||
- **거부가 기본.** 알 수 없는 필드, `.isproj` 외 확장자, 상대 경로 도구, reparse point, `.work`/`releases` 아래 소스는 설명과 함께 거부한다. 자동 교정·대체(fallback)를 하지 않는다.
|
||||
- **해시로 증명한다.** 계획에 고정한 소스·도구·인증서 해시를 실행 전과 역추출 후 다시 검증한다.
|
||||
- 1차 범위는 MSIX만. EXE/MSI/MSP, Store 제출, bundle, 운영 서명 프로필 요청은 명시 오류로 거부한다.
|
||||
|
||||
## 구조와 의존 방향
|
||||
|
||||
```
|
||||
package-domain → package-engine → package-infra → apps/cli, apps/desktop/src-tauri
|
||||
(DTO·검증·manifest) (계약·포트·계획) (파일·해시·잠금·도구 실행) (진입점, 얇게 유지)
|
||||
```
|
||||
|
||||
- 역방향 의존 금지. OS·파일시스템·프로세스 접근은 `package-infra`에만 둔다. `package-domain`은 순수 함수와 serde DTO만.
|
||||
- GUI와 CLI는 같은 `package-infra` 함수를 호출한다. 한쪽에만 있는 비즈니스 로직을 만들지 않는다.
|
||||
- 프런트엔드는 프레임워크 없는 TypeScript + 문자열 템플릿 렌더링이다. React 등을 도입하지 않는다.
|
||||
|
||||
## 자주 쓰는 명령 (모두 `src/`에서)
|
||||
|
||||
```powershell
|
||||
cargo fmt --all --check
|
||||
cargo clippy --locked --workspace --all-targets -- -D warnings
|
||||
cargo test --locked --workspace
|
||||
cd apps/desktop; npm.cmd ci; npm.cmd test; npm.cmd run build; cd ../..
|
||||
cargo build --locked -p msix-studio --features custom-protocol
|
||||
.\scripts\Check.ps1 [-MakeAppx '<makeappx.exe 절대 경로>'] # 위 전체를 순서대로 실행
|
||||
```
|
||||
|
||||
- `npm.cmd ci`는 실행 중인 Vite/Tauri 개발 서버를 먼저 종료해야 한다(esbuild 파일 잠금).
|
||||
- SDK 통합 테스트는 `#[ignore]`이며 `MSIX_TEST_MAKEAPPX`를 지정하고 `--ignored`로 명시 실행한다.
|
||||
- 종료 코드: 0 성공, 2 입력/계획 오류, 4 도구 오류, 5 아티팩트/identity 오류, 6 잠금 충돌, 130 취소.
|
||||
|
||||
## 코딩 룰과 스킬
|
||||
|
||||
세부 규칙은 `.claude/rules/`에 있으며 경로별로 자동 적용된다. 작업 유형별 절차는 `.claude/skills/`를 사용한다.
|
||||
|
||||
| 스킬 | 용도 |
|
||||
| --- | --- |
|
||||
| `check` | 커밋 전 전체 검사와 결과 보고 |
|
||||
| `add-tauri-command` | Tauri IPC 명령 추가(Rust → 권한 → capabilities → TS) |
|
||||
| `project-model-change` | `.isproj` v2 DTO·스키마·TS 타입·예제 동기화 |
|
||||
| `change-record` | `docs/changes` 변경 기록과 `src/tests/verification-*.json` 작성 |
|
||||
| `msix-integration-test` | MakeAppx 실제 통합 시험 실행과 기록 |
|
||||
| `backlog-status` | 백로그 상태 갱신 규칙 |
|
||||
|
||||
## 커밋
|
||||
|
||||
- 메시지는 `type: subject` 영문 소문자. type은 `feat`, `fix`, `refactor`, `docs`, `test`, `chore`.
|
||||
- 커밋 전 `check` 스킬 통과. `.mcp.json`, `*.pfx`, `*.isproj.local.json`, `output/samples/`은 절대 커밋하지 않는다.
|
||||
- 사용자가 요청할 때만 커밋한다.
|
||||
Reference in new issue
Block a user