- Remove old commands: spec, customer, sales, merge, design - Add new commands: ui, policy, visualize - Update mvp to include landing page generation - Add templates for mockup, policy, and UI documents - Simplify output path (remove [project] subfolder) - Rewrite README focused on usage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
176 lines
3.7 KiB
Markdown
176 lines
3.7 KiB
Markdown
# 서비스 규칙 (Gameplay)
|
|
|
|
> 코드: `GM` | 핵심 서비스 규칙 및 제한사항
|
|
|
|
---
|
|
|
|
## GM-001: [정책명 - 예: 시간 제한]
|
|
|
|
### 정책 내용
|
|
- [핵심 정책 설명 1]
|
|
- [핵심 정책 설명 2]
|
|
|
|
### 적용 화면
|
|
- `[화면1].html` - [용도]
|
|
- `[화면2].html` - [용도]
|
|
|
|
### UI 영향
|
|
|
|
| 화면 | 위치 | 표시 방식 | mockup |
|
|
|-----|------|----------|--------|
|
|
| [화면1] | [위치] | [표시 방식] | [파일명].html |
|
|
| [화면2] | [위치] | [표시 방식] | [파일명].html |
|
|
|
|
### 상태별 UI
|
|
|
|
```
|
|
[활성 상태]
|
|
┌─────────────────────────────────────┐
|
|
│ ✓ 이용 가능 │
|
|
│ [버튼 활성화] │
|
|
└─────────────────────────────────────┘
|
|
|
|
[비활성 상태]
|
|
┌─────────────────────────────────────┐
|
|
│ ⏰ 이용 불가 │
|
|
│ [제한 사유 표시] │
|
|
│ [버튼 비활성화] │
|
|
└─────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## GM-002: [정책명 - 예: 일일 제한]
|
|
|
|
### 정책 내용
|
|
- [일일 제한 설명 1]
|
|
- [일일 제한 설명 2]
|
|
- [리셋 시간]
|
|
|
|
### 적용 화면
|
|
- `[화면1].html` - [용도]
|
|
|
|
### UI 표시
|
|
|
|
```
|
|
[일반 상태]
|
|
오늘 남은 횟수: 3/5회
|
|
|
|
[제한 도달]
|
|
⚠️ 오늘 이용 횟수를 모두 사용했습니다.
|
|
내일 00:00에 초기화됩니다.
|
|
|
|
[프리미엄 유저]
|
|
✓ 무제한 이용 가능 (프리미엄)
|
|
```
|
|
|
|
---
|
|
|
|
## GM-003: [정책명 - 예: 레벨 제한]
|
|
|
|
### 정책 내용
|
|
|
|
| 레벨 | 해금 기능 | 조건 |
|
|
|-----|---------|------|
|
|
| 1 | [기본 기능] | 가입 시 |
|
|
| 5 | [기능1] | [조건] |
|
|
| 10 | [기능2] | [조건] |
|
|
| 20 | [기능3] | [조건] |
|
|
|
|
### 적용 화면
|
|
- `[화면1].html` - 레벨 표시
|
|
- `[화면2].html` - 해금 안내
|
|
|
|
### UI 표시
|
|
|
|
```
|
|
[잠금 상태]
|
|
🔒 Lv.10에서 해금됩니다
|
|
현재 Lv.7 (3레벨 더 필요)
|
|
|
|
[해금 완료]
|
|
✓ 기능 사용 가능
|
|
```
|
|
|
|
---
|
|
|
|
## GM-004: [정책명 - 예: 대기열/쿨다운]
|
|
|
|
### 정책 내용
|
|
- [대기/쿨다운 설명]
|
|
- [적용 시간]
|
|
- [예외 조건]
|
|
|
|
### 적용 화면
|
|
- `[화면1].html` - 액션 버튼
|
|
|
|
### UI 표시
|
|
|
|
```
|
|
[쿨다운 중]
|
|
┌─────────────────────────────────────┐
|
|
│ ⏳ 잠시 기다려주세요 │
|
|
│ 02:30 남음 │
|
|
│ │
|
|
│ [비활성 버튼] │
|
|
└─────────────────────────────────────┘
|
|
|
|
[대기열]
|
|
현재 대기: 12명
|
|
예상 대기 시간: 약 3분
|
|
```
|
|
|
|
---
|
|
|
|
## GM-005: [정책명 - 예: 매칭 규칙]
|
|
|
|
### 정책 내용
|
|
- [매칭 조건 1]
|
|
- [매칭 조건 2]
|
|
- [매칭 실패 처리]
|
|
|
|
### 로직
|
|
|
|
```javascript
|
|
function matchUser(user) {
|
|
const candidates = findCandidates({
|
|
level: user.level,
|
|
preference: user.preference,
|
|
// ...
|
|
});
|
|
|
|
if (candidates.length === 0) {
|
|
return showNoMatchPopup();
|
|
}
|
|
|
|
return selectBestMatch(candidates);
|
|
}
|
|
```
|
|
|
|
### UI 표시
|
|
|
|
```
|
|
[매칭 중]
|
|
🔍 찾는 중...
|
|
[로딩 애니메이션]
|
|
|
|
[매칭 성공]
|
|
✓ 매칭되었습니다!
|
|
[상대방 정보]
|
|
|
|
[매칭 실패]
|
|
😢 조건에 맞는 상대를 찾지 못했습니다.
|
|
[다시 시도] [조건 변경]
|
|
```
|
|
|
|
---
|
|
|
|
## 관련 mockup
|
|
|
|
| 정책 | mockup 파일 |
|
|
|-----|------------|
|
|
| GM-001 | [화면].html |
|
|
| GM-002 | [화면].html |
|
|
| GM-003 | [화면].html |
|
|
| GM-004, GM-005 | [화면].html |
|