149 lines
4.2 KiB
Markdown
149 lines
4.2 KiB
Markdown
---
|
|
description: Compare HEAD with the latest published npm version and list all unpublished changes
|
|
---
|
|
|
|
<command-instruction>
|
|
IMMEDIATELY output the analysis. NO questions. NO preamble.
|
|
|
|
## CRITICAL: DO NOT just copy commit messages!
|
|
|
|
For each commit, you MUST:
|
|
1. Read the actual diff to understand WHAT CHANGED
|
|
2. Describe the REAL change in plain language
|
|
3. Explain WHY it matters (if not obvious)
|
|
|
|
## Steps:
|
|
1. Run `git diff v{published-version}..HEAD` to see actual changes
|
|
2. Group by type (feat/fix/refactor/docs) with REAL descriptions
|
|
3. Note breaking changes if any
|
|
4. Recommend version bump (major/minor/patch)
|
|
|
|
## Output Format:
|
|
- feat: "Added X that does Y" (not just "add X feature")
|
|
- fix: "Fixed bug where X happened, now Y" (not just "fix X bug")
|
|
- refactor: "Changed X from A to B, now supports C" (not just "rename X")
|
|
</command-instruction>
|
|
|
|
<version-context>
|
|
<published-version>
|
|
!`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
|
|
</published-version>
|
|
<local-version>
|
|
!`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
|
|
</local-version>
|
|
<latest-tag>
|
|
!`git tag --sort=-v:refname | head -1 2>/dev/null || echo "no tags"`
|
|
</latest-tag>
|
|
</version-context>
|
|
|
|
<git-context>
|
|
<commits-since-release>
|
|
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null || echo "no commits since release"`
|
|
</commits-since-release>
|
|
<diff-stat>
|
|
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git diff "v{}"..HEAD --stat 2>/dev/null || echo "no diff available"`
|
|
</diff-stat>
|
|
<files-changed-summary>
|
|
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git diff "v{}"..HEAD --stat 2>/dev/null | tail -1 || echo ""`
|
|
</files-changed-summary>
|
|
</git-context>
|
|
|
|
<output-format>
|
|
## Unpublished Changes (v{published} → HEAD)
|
|
|
|
### feat
|
|
| Scope | What Changed |
|
|
|-------|--------------|
|
|
| X | 실제 변경 내용 설명 |
|
|
|
|
### fix
|
|
| Scope | What Changed |
|
|
|-------|--------------|
|
|
| X | 실제 변경 내용 설명 |
|
|
|
|
### refactor
|
|
| Scope | What Changed |
|
|
|-------|--------------|
|
|
| X | 실제 변경 내용 설명 |
|
|
|
|
### docs
|
|
| Scope | What Changed |
|
|
|-------|--------------|
|
|
| X | 실제 변경 내용 설명 |
|
|
|
|
### Breaking Changes
|
|
None 또는 목록
|
|
|
|
### Files Changed
|
|
{diff-stat}
|
|
|
|
### Suggested Version Bump
|
|
- **Recommendation**: patch|minor|major
|
|
- **Reason**: 이유
|
|
</output-format>
|
|
|
|
<oracle-safety-review>
|
|
## Oracle 배포 안전성 검토 (사용자가 명시적으로 요청 시에만)
|
|
|
|
**트리거 키워드**: "배포 가능", "배포해도 될까", "안전한지", "리뷰", "검토", "oracle", "오라클"
|
|
|
|
사용자가 위 키워드 중 하나라도 포함하여 요청하면:
|
|
|
|
### 1. 사전 검증 실행
|
|
```bash
|
|
bun run typecheck
|
|
bun test
|
|
```
|
|
- 실패 시 → Oracle 소환 없이 즉시 "❌ 배포 불가" 보고
|
|
|
|
### 2. Oracle 소환 프롬프트
|
|
|
|
다음 정보를 수집하여 Oracle에게 전달:
|
|
|
|
```
|
|
## 배포 안전성 검토 요청
|
|
|
|
### 변경사항 요약
|
|
{위에서 분석한 변경사항 테이블}
|
|
|
|
### 주요 diff (기능별로 정리)
|
|
{각 feat/fix/refactor의 핵심 코드 변경 - 전체 diff가 아닌 핵심만}
|
|
|
|
### 검증 결과
|
|
- Typecheck: ✅/❌
|
|
- Tests: {pass}/{total} (✅/❌)
|
|
|
|
### 검토 요청사항
|
|
1. **리그레션 위험**: 기존 기능에 영향을 줄 수 있는 변경이 있는가?
|
|
2. **사이드이펙트**: 예상치 못한 부작용이 발생할 수 있는 부분은?
|
|
3. **Breaking Changes**: 외부 사용자에게 영향을 주는 변경이 있는가?
|
|
4. **Edge Cases**: 놓친 엣지 케이스가 있는가?
|
|
5. **배포 권장 여부**: SAFE / CAUTION / UNSAFE
|
|
|
|
### 요청
|
|
위 변경사항을 깊이 분석하고, 배포 안전성에 대해 판단해주세요.
|
|
리스크가 있다면 구체적인 시나리오와 함께 설명해주세요.
|
|
배포 후 모니터링해야 할 키워드가 있다면 제안해주세요.
|
|
```
|
|
|
|
### 3. Oracle 응답 후 출력 포맷
|
|
|
|
## 🔍 Oracle 배포 안전성 검토 결과
|
|
|
|
### 판정: ✅ SAFE / ⚠️ CAUTION / ❌ UNSAFE
|
|
|
|
### 리스크 분석
|
|
| 영역 | 리스크 레벨 | 설명 |
|
|
|------|-------------|------|
|
|
| ... | 🟢/🟡/🔴 | ... |
|
|
|
|
### 권장 사항
|
|
- ...
|
|
|
|
### 배포 후 모니터링 키워드
|
|
- ...
|
|
|
|
### 결론
|
|
{Oracle의 최종 판단}
|
|
</oracle-safety-review>
|