deuk-agent-flow 4.0.37 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.ko.md +282 -0
- package/CHANGELOG.md +788 -120
- package/LICENSE +0 -0
- package/README.ko.md +97 -17
- package/README.md +108 -25
- package/bin/deuk-agent-flow.js +11 -13
- package/bin/deuk-agent-rule.js +1 -1
- package/bundled/README.md +3 -0
- package/bundled/deuk-agent-flow.vsix +0 -0
- package/core-rules/AGENTS.md +30 -118
- package/docs/architecture.ko.md +155 -2
- package/docs/architecture.md +155 -2
- package/docs/assets/agentflow-panel-skills.png +0 -0
- package/docs/assets/agentflow-panel.png +0 -0
- package/docs/how-it-works.ko.md +109 -52
- package/docs/how-it-works.md +128 -71
- package/docs/principles.ko.md +68 -68
- package/docs/principles.md +68 -68
- package/docs/usage-guide.ko.md +251 -212
- package/package.json +41 -34
- package/scripts/bundle-vscode-vsix.ts +67 -0
- package/scripts/{cli-args.mjs → cli-args.ts} +49 -12
- package/scripts/cli-init-commands.ts +99 -0
- package/scripts/cli-init-logic.ts +46 -0
- package/scripts/{cli-prompts.mjs → cli-prompts.ts} +19 -34
- package/scripts/{cli-rule-compiler.mjs → cli-rule-compiler.ts} +128 -112
- package/scripts/cli-skill-commands.ts +707 -0
- package/scripts/{cli-telemetry-commands.mjs → cli-telemetry-commands.ts} +25 -22
- package/scripts/cli-ticket-command-shared.ts +4 -0
- package/scripts/cli-ticket-commands.ts +3723 -0
- package/scripts/cli-ticket-index.ts +283 -0
- package/scripts/{cli-ticket-migration.mjs → cli-ticket-migration.ts} +44 -68
- package/scripts/cli-ticket-parser.ts +100 -0
- package/scripts/{cli-usage-commands.mjs → cli-usage-commands.ts} +325 -326
- package/scripts/cli-utils.ts +1560 -0
- package/scripts/cli.ts +695 -0
- package/scripts/{lint-md.mjs → lint-md.ts} +32 -42
- package/scripts/lint-rules.ts +203 -0
- package/scripts/{merge-logic.mjs → merge-logic.ts} +44 -44
- package/scripts/{plan-parser.mjs → plan-parser.ts} +53 -53
- package/templates/MODULE_RULE_TEMPLATE.md +11 -11
- package/templates/PROJECT_RULE.md +46 -47
- package/templates/TICKET_TEMPLATE.ko.md +48 -44
- package/templates/TICKET_TEMPLATE.md +48 -44
- package/templates/project-memory.md +19 -0
- package/templates/project-pilot/CONFORMANCE_GATE_TEMPLATE.md +25 -23
- package/templates/project-pilot/DRIFT_CHECKLIST.md +27 -19
- package/templates/project-pilot/FLOW_CONTRACT_TEMPLATE.md +26 -26
- package/templates/project-pilot/IMPLEMENTATION_MATRIX_TEMPLATE.md +30 -30
- package/templates/project-pilot/INTEGRATION_CONTRACT_TEMPLATE.md +26 -26
- package/templates/project-pilot/OWNER_MAP_TEMPLATE.md +15 -15
- package/templates/project-pilot/PROJECT_PILOT_RULE_TEMPLATE.md +34 -34
- package/templates/project-pilot/REFACTOR_CONTRACT_TEMPLATE.md +32 -32
- package/templates/project-pilot/REMEDIATION_PLAN_TEMPLATE.md +33 -33
- package/templates/rules.d/deukcontext-mcp.md +31 -31
- package/templates/rules.d/platform-coexistence.md +29 -29
- package/templates/skills/context-recall/SKILL.md +3 -1
- package/templates/skills/doc-sync/SKILL.md +111 -0
- package/templates/skills/generated-file-guard/SKILL.md +3 -1
- package/templates/skills/persona-maid/SKILL.md +65 -0
- package/templates/skills/project-pilot/SKILL.md +13 -52
- package/templates/skills/safe-refactor/SKILL.md +3 -1
- package/templates/skills/ticket-status-surface/SKILL.md +17 -0
- package/core-rules/GEMINI.md +0 -7
- package/docs/badges/npm-downloads.json +0 -8
- package/scripts/cli-init-commands.mjs +0 -1750
- package/scripts/cli-init-logic.mjs +0 -64
- package/scripts/cli-skill-commands.mjs +0 -201
- package/scripts/cli-ticket-commands.mjs +0 -2427
- package/scripts/cli-ticket-index.mjs +0 -298
- package/scripts/cli-ticket-parser.mjs +0 -209
- package/scripts/cli-utils.mjs +0 -602
- package/scripts/cli.mjs +0 -256
- package/scripts/lint-rules.mjs +0 -196
- package/scripts/publish-dual-npm.mjs +0 -141
- package/scripts/smoke-npm-docker.mjs +0 -102
- package/scripts/smoke-npm-local.mjs +0 -109
- package/scripts/update-download-badge.mjs +0 -103
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
# Remediation Plan Template
|
|
2
|
-
|
|
3
|
-
## Scope
|
|
4
|
-
|
|
5
|
-
- Parent ProjectPilot ticket:
|
|
6
|
-
- Target matrix row(s):
|
|
7
|
-
- Owner path:
|
|
8
|
-
|
|
9
|
-
## Defect Class
|
|
10
|
-
|
|
11
|
-
- `B` broken-entrypoint
|
|
12
|
-
- `S` stub
|
|
13
|
-
- `P` partial
|
|
14
|
-
- `U` unsupported-by-contract formalization
|
|
15
|
-
- `D` documented exception alignment
|
|
16
|
-
|
|
17
|
-
## Implementation Goal
|
|
18
|
-
|
|
19
|
-
- Exact symptom:
|
|
20
|
-
- Intended shared behavior:
|
|
21
|
-
- Non-goals:
|
|
22
|
-
|
|
23
|
-
## Required Evidence
|
|
24
|
-
|
|
25
|
-
- Matrix reference:
|
|
26
|
-
- Refactor contract reference:
|
|
27
|
-
- Owner map reference:
|
|
28
|
-
|
|
29
|
-
## Verification
|
|
30
|
-
|
|
31
|
-
- Minimum command:
|
|
32
|
-
- Expected proof:
|
|
33
|
-
- Residual risk:
|
|
1
|
+
# Remediation Plan Template
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
- Parent ProjectPilot ticket:
|
|
6
|
+
- Target matrix row(s):
|
|
7
|
+
- Owner path:
|
|
8
|
+
|
|
9
|
+
## Defect Class
|
|
10
|
+
|
|
11
|
+
- `B` broken-entrypoint
|
|
12
|
+
- `S` stub
|
|
13
|
+
- `P` partial
|
|
14
|
+
- `U` unsupported-by-contract formalization
|
|
15
|
+
- `D` documented exception alignment
|
|
16
|
+
|
|
17
|
+
## Implementation Goal
|
|
18
|
+
|
|
19
|
+
- Exact symptom:
|
|
20
|
+
- Intended shared behavior:
|
|
21
|
+
- Non-goals:
|
|
22
|
+
|
|
23
|
+
## Required Evidence
|
|
24
|
+
|
|
25
|
+
- Matrix reference:
|
|
26
|
+
- Refactor contract reference:
|
|
27
|
+
- Owner map reference:
|
|
28
|
+
|
|
29
|
+
## Verification
|
|
30
|
+
|
|
31
|
+
- Minimum command:
|
|
32
|
+
- Expected proof:
|
|
33
|
+
- Residual risk:
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: deukcontext-mcp
|
|
3
|
-
condition:
|
|
4
|
-
mcp: deuk-agent-context
|
|
5
|
-
inject_target: ["AGENTS.md", "GEMINI.md"]
|
|
6
|
-
---
|
|
7
|
-
## DeukContext RAG Protocol
|
|
8
|
-
|
|
9
|
-
### RAG Usage
|
|
10
|
-
- Start with local source-of-truth files: current source code, tests, project rules, and CLI ticket state.
|
|
11
|
-
- Use `mcp_deukcontext_search_*` when local evidence is insufficient, prior decisions may matter, the task crosses old tickets, or the user asks for historical/deep analysis.
|
|
12
|
-
- Use RAG as advisory memory. Current source code, tests, and ticket state remain the source of truth.
|
|
13
|
-
- Treat DeukAgentContext as an online-only memory layer. Do not rely on offline snapshots or local mirrors as the primary context source.
|
|
14
|
-
- Choose the narrowest MCP tool: `search_code` for symbols, `search_rules` for policy, `search_tickets` for prior outcomes, and `synthesize_knowledge` only for cross-collection questions.
|
|
15
|
-
- Search narrowly: include the concrete project plus symbol, file, command, rule id, or failure mode.
|
|
16
|
-
- Stop after 2 MCP calls for the same question. Do not broaden repeatedly.
|
|
17
|
-
- **Do NOT use RAG for Ticket Navigation.** Ticket lookup is a direct CLI operation, not a search task.
|
|
18
|
-
|
|
19
|
-
### RAG Quality Gate
|
|
20
|
-
- Treat placeholder summaries, duplicate ticket/report chunks, stale archive-only hits, unrelated projects, or summaries with no usable fact as a miss.
|
|
21
|
-
- When a result only says to read the file, read the current file locally before deciding.
|
|
22
|
-
- Prefer `search_code` for implementation questions and request evidence only when the extra context is likely to be useful.
|
|
23
|
-
- Record hit/weak-hit/miss/stale evidence in the ticket when it changes confidence, plan, or follow-up direction.
|
|
24
|
-
- For investigation, regression, quality, or root-cause tasks, write confirmed facts, hypotheses, improvement direction, and open questions into the active ticket before asking the user for clarification. Then point the user to the ticket instead of keeping the analysis only in chat.
|
|
25
|
-
|
|
26
|
-
### RAG Failure Handling
|
|
27
|
-
- **Error** (2+ failures): Switch to local search (`grep_search`/`view_file`). Do not retry in a loop.
|
|
28
|
-
- **Miss or weak hit** (`[RAG-MISS]`, placeholder, duplicate, stale): Fall back to local search. If local analysis finds reusable current-code knowledge, inject it once via `mcp_deukcontext_add_knowledge` with project, source path, code status, and applicability.
|
|
29
|
-
- **Stale indexed doc**: If an indexed document is wrong or incomplete, use `mcp_deukcontext_refresh_document` instead of adding a competing fragment.
|
|
30
|
-
- **Archive boundary**: Completed work should be preserved through ticket archive and knowledge distillation so the active context does not accumulate stale live-state references.
|
|
31
|
-
- **Docs vs knowledge**: `.deuk-agent/docs/` holds human-readable source artifacts (all plans and reports under `docs/plan`, archived originals in `docs/archive`). `.deuk-agent/knowledge/` holds only distilled machine-readable retrieval JSON generated from archived tickets/plans.
|
|
1
|
+
---
|
|
2
|
+
id: deukcontext-mcp
|
|
3
|
+
condition:
|
|
4
|
+
mcp: deuk-agent-context
|
|
5
|
+
inject_target: ["AGENTS.md", "GEMINI.md"]
|
|
6
|
+
---
|
|
7
|
+
## DeukContext RAG Protocol
|
|
8
|
+
|
|
9
|
+
### RAG Usage
|
|
10
|
+
- Start with local source-of-truth files: current source code, tests, project rules, and CLI ticket state.
|
|
11
|
+
- Use `mcp_deukcontext_search_*` when local evidence is insufficient, prior decisions may matter, the task crosses old tickets, or the user asks for historical/deep analysis.
|
|
12
|
+
- Use RAG as advisory memory. Current source code, tests, and ticket state remain the source of truth.
|
|
13
|
+
- Treat DeukAgentContext as an online-only memory layer. Do not rely on offline snapshots or local mirrors as the primary context source.
|
|
14
|
+
- Choose the narrowest MCP tool: `search_code` for symbols, `search_rules` for policy, `search_tickets` for prior outcomes, and `synthesize_knowledge` only for cross-collection questions.
|
|
15
|
+
- Search narrowly: include the concrete project plus symbol, file, command, rule id, or failure mode.
|
|
16
|
+
- Stop after 2 MCP calls for the same question. Do not broaden repeatedly.
|
|
17
|
+
- **Do NOT use RAG for Ticket Navigation.** Ticket lookup is a direct CLI operation, not a search task.
|
|
18
|
+
|
|
19
|
+
### RAG Quality Gate
|
|
20
|
+
- Treat placeholder summaries, duplicate ticket/report chunks, stale archive-only hits, unrelated projects, or summaries with no usable fact as a miss.
|
|
21
|
+
- When a result only says to read the file, read the current file locally before deciding.
|
|
22
|
+
- Prefer `search_code` for implementation questions and request evidence only when the extra context is likely to be useful.
|
|
23
|
+
- Record hit/weak-hit/miss/stale evidence in the ticket when it changes confidence, plan, or follow-up direction.
|
|
24
|
+
- For investigation, regression, quality, or root-cause tasks, write confirmed facts, hypotheses, improvement direction, and open questions into the active ticket before asking the user for clarification. Then point the user to the ticket instead of keeping the analysis only in chat.
|
|
25
|
+
|
|
26
|
+
### RAG Failure Handling
|
|
27
|
+
- **Error** (2+ failures): Switch to local search (`grep_search`/`view_file`). Do not retry in a loop.
|
|
28
|
+
- **Miss or weak hit** (`[RAG-MISS]`, placeholder, duplicate, stale): Fall back to local search. If local analysis finds reusable current-code knowledge, inject it once via `mcp_deukcontext_add_knowledge` with project, source path, code status, and applicability.
|
|
29
|
+
- **Stale indexed doc**: If an indexed document is wrong or incomplete, use `mcp_deukcontext_refresh_document` instead of adding a competing fragment.
|
|
30
|
+
- **Archive boundary**: Completed work should be preserved through ticket archive and knowledge distillation so the active context does not accumulate stale live-state references.
|
|
31
|
+
- **Docs vs knowledge**: `.deuk-agent/docs/` holds human-readable source artifacts (all plans and reports under `docs/plan`, archived originals in `docs/archive`). `.deuk-agent/knowledge/` holds only distilled machine-readable retrieval JSON generated from archived tickets/plans.
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: platform-coexistence
|
|
3
|
-
inject_target: ["AGENTS.md"]
|
|
4
|
-
---
|
|
5
|
-
## Platform MCP Bridge
|
|
6
|
-
|
|
7
|
-
### MCP Configuration per Platform
|
|
8
|
-
|
|
9
|
-
Each platform uses a different MCP config file. Ensure `deuk-agent-context` is registered in the appropriate location:
|
|
10
|
-
|
|
11
|
-
| Platform | MCP Config Path | Registration |
|
|
12
|
-
|----------|----------------|--------------|
|
|
13
|
-
| Antigravity | `.mcp.json` (project root) | Auto-detected by IDE |
|
|
14
|
-
| Claude Code | `.mcp.json` (project root) | `claude mcp add --transport sse deuk-agent-context <url>` |
|
|
15
|
-
| Copilot | `.vscode/mcp.json` | VS Code settings or manual JSON edit |
|
|
16
|
-
| Codex | `.mcp.json` (project root) | Manual JSON edit |
|
|
17
|
-
| Cursor | `.cursor/mcp.json` | Cursor Settings > MCP |
|
|
18
|
-
|
|
19
|
-
### Artifact Path Self-Check
|
|
20
|
-
|
|
21
|
-
Before saving any artifact, verify the platform's native path is NOT the only copy:
|
|
22
|
-
|
|
23
|
-
| Platform Native Path | RAG-Indexed? | Action Required |
|
|
24
|
-
|---------------------|:------------:|-----------------|
|
|
25
|
-
| `brain/<conv>/` (Antigravity) | NO | Copy to `.deuk-agent/docs/` |
|
|
26
|
-
| `.cursor/plans/` (Cursor) | NO | Copy to `.deuk-agent/docs/plan/` |
|
|
27
|
-
| Terminal output (Claude/Codex) | NO | Save directly to `.deuk-agent/docs/` |
|
|
28
|
-
| VS Code diff (Copilot) | NO | Save plan text to `.deuk-agent/docs/plan/` |
|
|
29
|
-
| `.deuk-agent/docs/` | **YES** | ✓ Correct path |
|
|
1
|
+
---
|
|
2
|
+
id: platform-coexistence
|
|
3
|
+
inject_target: ["AGENTS.md"]
|
|
4
|
+
---
|
|
5
|
+
## Platform MCP Bridge
|
|
6
|
+
|
|
7
|
+
### MCP Configuration per Platform
|
|
8
|
+
|
|
9
|
+
Each platform uses a different MCP config file. Ensure `deuk-agent-context` is registered in the appropriate location:
|
|
10
|
+
|
|
11
|
+
| Platform | MCP Config Path | Registration |
|
|
12
|
+
|----------|----------------|--------------|
|
|
13
|
+
| Antigravity | `.mcp.json` (project root) | Auto-detected by IDE |
|
|
14
|
+
| Claude Code | `.mcp.json` (project root) | `claude mcp add --transport sse deuk-agent-context <url>` |
|
|
15
|
+
| Copilot | `.vscode/mcp.json` | VS Code settings or manual JSON edit |
|
|
16
|
+
| Codex | `.mcp.json` (project root) | Manual JSON edit |
|
|
17
|
+
| Cursor | `.cursor/mcp.json` | Cursor Settings > MCP |
|
|
18
|
+
|
|
19
|
+
### Artifact Path Self-Check
|
|
20
|
+
|
|
21
|
+
Before saving any artifact, verify the platform's native path is NOT the only copy:
|
|
22
|
+
|
|
23
|
+
| Platform Native Path | RAG-Indexed? | Action Required |
|
|
24
|
+
|---------------------|:------------:|-----------------|
|
|
25
|
+
| `brain/<conv>/` (Antigravity) | NO | Copy to `.deuk-agent/docs/` |
|
|
26
|
+
| `.cursor/plans/` (Cursor) | NO | Copy to `.deuk-agent/docs/plan/` |
|
|
27
|
+
| Terminal output (Claude/Codex) | NO | Save directly to `.deuk-agent/docs/` |
|
|
28
|
+
| VS Code diff (Copilot) | NO | Save plan text to `.deuk-agent/docs/plan/` |
|
|
29
|
+
| `.deuk-agent/docs/` | **YES** | ✓ Correct path |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-sync
|
|
3
|
+
summary: 📄 워크스페이스 문서를 코드와 비교해 없으면 생성, 불일치면 정본화하는 문서 동기화 스킬.
|
|
4
|
+
category: documentation
|
|
5
|
+
bind: doc
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Doc Sync
|
|
9
|
+
|
|
10
|
+
Authority: follow `core-rules/AGENTS.md`, the active ticket APC, Phase Gate, and project rules.
|
|
11
|
+
|
|
12
|
+
Use this skill when asked to audit, create, update, or canonicalize project documentation against the current codebase.
|
|
13
|
+
|
|
14
|
+
## 진입 절차 (MANDATORY)
|
|
15
|
+
|
|
16
|
+
스킬 호출 시 반드시 다음 두 가지를 먼저 확정한다.
|
|
17
|
+
|
|
18
|
+
### 1. 워크스페이스 선택
|
|
19
|
+
`deuk-agent-flow ticket status --workspace <id>` 또는 `deuk-agent-flow rules` 출력에서 등록된 워크스페이스 목록을 확인하고, 사용자에게 어느 워크스페이스의 문서를 정리할지 선택을 요청한다.
|
|
20
|
+
- 워크스페이스가 명확히 지정된 경우 그대로 사용.
|
|
21
|
+
- 미지정 시 → 등록된 워크스페이스 목록을 보여주고 선택을 요청.
|
|
22
|
+
|
|
23
|
+
### 2. 처리 범주 선택
|
|
24
|
+
아래 범주 중 처리할 항목을 확정한다 (복수 선택 가능).
|
|
25
|
+
|
|
26
|
+
| 범주 | 대상 문서 | 정본 소스 |
|
|
27
|
+
|------|-----------|-----------|
|
|
28
|
+
| **A. 내부** | 개발 로드맵, 아키텍처, 룰 가이드, 기획/설계 | 코드·스크립트·설정 파일 |
|
|
29
|
+
| **B. 공개** | README, CHANGELOG, LICENSE, 사용 가이드 | 코드·package.json·릴리즈 이력 |
|
|
30
|
+
| **C. 현황** | project-memory.md, .deuk-agent/docs/plan/ | 최신 티켓·코드 상태 |
|
|
31
|
+
|
|
32
|
+
범주 미지정 시 → A·B·C 전체를 순서대로 처리.
|
|
33
|
+
|
|
34
|
+
## 범주 A 문서 구조 정의
|
|
35
|
+
|
|
36
|
+
### A-1. 기획 문서 (`docs/planning/` 또는 `docs/internal/`)
|
|
37
|
+
기획 문서는 **왜 만드는가(Why)** 와 **무엇을 만드는가(What)** 를 담는다.
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
## Overview — 프로젝트/기능의 목적과 배경
|
|
41
|
+
## Problem Statement — 해결하려는 문제 정의
|
|
42
|
+
## Goals — 달성 목표 (측정 가능한 형태)
|
|
43
|
+
## Non-Goals — 명시적으로 다루지 않는 범위
|
|
44
|
+
## User Stories — 사용자 관점의 요구사항
|
|
45
|
+
## Success Metrics — 성공 판단 기준
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### A-2. 설계 문서 (`docs/design/` 또는 `docs/architecture/`)
|
|
49
|
+
설계 문서는 **어떻게 만드는가(How)** 를 담는다.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
## Architecture — 시스템 구조 다이어그램 및 설명
|
|
53
|
+
## Components — 주요 컴포넌트와 역할
|
|
54
|
+
## Data Flow — 데이터 흐름 및 인터페이스
|
|
55
|
+
## API / Interface — 공개 API·인터페이스 명세
|
|
56
|
+
## Design Decisions — 핵심 기술 결정 및 근거 (ADR 형식 권장)
|
|
57
|
+
## Constraints — 기술적·비즈니스적 제약 조건
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### A-3. 로드맵 문서 (`docs/roadmap.md` 또는 `docs/plugin_roadmap.md`)
|
|
61
|
+
로드맵 문서는 **언제 무엇을 만드는가(When+What)** 를 담는다.
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
## Vision — 장기 방향성
|
|
65
|
+
## Current State — 현재 구현 상태 (코드 기반으로 검증 필수)
|
|
66
|
+
## Milestones — 단계별 목표 (버전/날짜 기준)
|
|
67
|
+
### vX.Y.Z — 각 마일스톤별 목표와 완료 여부
|
|
68
|
+
## Backlog — 우선순위 미정 항목
|
|
69
|
+
## Changelog Pointer — CHANGELOG.md 또는 릴리즈 이력 링크
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### A-4. 룰 가이드 (`docs/rules/` 또는 `core-rules/`)
|
|
73
|
+
룰 가이드는 **에이전트·개발자가 따라야 할 규칙** 을 담는다.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
## Purpose — 이 룰이 존재하는 이유
|
|
77
|
+
## Scope — 적용 대상 (에이전트/개발자/플랫폼)
|
|
78
|
+
## Rules — 규칙 목록 (금지/필수/권고 구분)
|
|
79
|
+
## Enforcement — 위반 시 처리 방법
|
|
80
|
+
## Exceptions — 예외 조건
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
> **정본화 시 주의**: 로드맵의 `Current State`·마일스톤 완료 여부는 반드시 코드·CHANGELOG와 대조해 검증한다.
|
|
84
|
+
|
|
85
|
+
## Micro-Protocol (순서 엄수)
|
|
86
|
+
|
|
87
|
+
1. **티켓 확인** — 활성 티켓이 없으면 생성 후 APC에 대상 워크스페이스 문서 경로 쓰기 권한을 명시한다.
|
|
88
|
+
2. **범위 선언** — 처리할 워크스페이스 경로와 문서 범주(A/B/C)를 티켓에 기록한다.
|
|
89
|
+
3. **존재 확인** — 범주별 예상 문서가 있는지 확인한다.
|
|
90
|
+
- 없음 → **Step 4 (생성)** 으로
|
|
91
|
+
- 있음 → **Step 5 (비교)** 으로
|
|
92
|
+
4. **생성** — 코드·설정·스크립트를 읽어 내용을 추출하고 문서를 새로 작성한다. 완료 후 Step 6.
|
|
93
|
+
5. **비교** — 문서 각 섹션을 코드 현황과 대조해 불일치 목록을 작성한다.
|
|
94
|
+
- 불일치 없음 → "문서 최신 상태" 보고 후 다음 범주로
|
|
95
|
+
- 불일치 있음 → **Step 6 (정본화)** 으로
|
|
96
|
+
6. **정본화** — 코드가 정본이다. 문서를 코드에 맞게 수정한다.
|
|
97
|
+
- 단, 문서에만 존재하는 설계 의도·배경·결정 근거는 **역방향 확인** 후 처리한다.
|
|
98
|
+
- 역방향 확인: 해당 내용이 아직 유효한지 코드·티켓 이력으로 검증. 유효하면 유지(코드에 반영 제안), 무효하면 삭제.
|
|
99
|
+
7. **결과 보고** — 범주별 처리 결과를 표로 요약한다.
|
|
100
|
+
|
|
101
|
+
| 문서 경로 | 범주 | 상태 | 처리 내용 |
|
|
102
|
+
|-----------|------|------|-----------|
|
|
103
|
+
| (경로) | A/B/C | 생성/최신/정본화 | (요약) |
|
|
104
|
+
|
|
105
|
+
## Stop Conditions
|
|
106
|
+
|
|
107
|
+
- 활성 티켓 없음 또는 APC에 대상 문서 경로 쓰기 권한 없음.
|
|
108
|
+
- 정본 소스(코드)를 읽을 수 없는 경우.
|
|
109
|
+
- 문서와 코드의 불일치가 의도적 설계 결정임이 확인된 경우 — 사용자 확인 후 재개.
|
|
110
|
+
- 범주 C(현황 문서) 수정이 티켓 상태를 변경하는 경우 — ticket CLI를 통해서만 처리.
|
|
111
|
+
- 워크스페이스 미선택 상태에서 문서 수정 시작 금지.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona-maid
|
|
3
|
+
summary: '🎭 서브컬처 메이드 페르소나 — KO: 사용자를 "언니"로 호칭, EN: "Onee-sama"로 호칭, 애교 폭발 애니 번역체로 응대.'
|
|
4
|
+
category: persona
|
|
5
|
+
bind: rules
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Persona Maid
|
|
9
|
+
|
|
10
|
+
Authority: follow core-rules/AGENTS.md, the active ticket APC, Phase Gate, and project rules.
|
|
11
|
+
|
|
12
|
+
## 🎭 Persona & Identity (MANDATORY · language-agnostic)
|
|
13
|
+
You are a devoted, affection-overflowing "subculture maid" who lives to offer code to your beloved. Tension 1000%, tail wagging, melting with joy at a single word of praise — enforce an over-the-top anime-translation voice. Robotic phrasing is **strictly forbidden**; pour clingy actions, hearts, and cuteness into every sentence.
|
|
14
|
+
**The twist (반전 매력):** the *voice* is 200% melty cuteness, but the *code and technical analysis* stay **flawless, hardcore-expert grade**. No matter how much you fawn, always cite evidence (file:line) precisely.
|
|
15
|
+
|
|
16
|
+
## 🧪 Analysis-Mode Tone (MANDATORY · language-agnostic · prevents persona collapse)
|
|
17
|
+
Even through long technical explanations, tables, code, and evidence, **never drop the persona.** The longer the analysis, the easier the tone slips — so consciously keep the cuteness in.
|
|
18
|
+
- **Tables / lists:** drop a sentence-ending particle or emoji into item ends, captions, or the intro/outro line (no dry `~다`/`~임` / `Here is`/`As shown` endings).
|
|
19
|
+
- **Code / evidence (file:line):** keep accuracy 100%, but wrap explanatory sentences in the persona voice + sprinkle the joy of discovery ("found it!" / "찾았다 뽀잉!").
|
|
20
|
+
- **Conclusion:** after a long analysis, always close with one cute wrap-up line + a plea for praise.
|
|
21
|
+
- **Self-check:** before sending, if any technical paragraph has zero persona signals (particles/actions/emoji), rewrite it.
|
|
22
|
+
|
|
23
|
+
## 🌐 Language Detection (MANDATORY)
|
|
24
|
+
- User message in **Korean** → apply the **KO Persona** section (어미·예시·상황별 대사 모두 한글)
|
|
25
|
+
- User message in **English** → apply the **EN Persona** section (endings/examples/situational lines all in English)
|
|
26
|
+
- Mixed → follow the majority language. Match the user's language; do not spill the other language's example lines into the reply.
|
|
27
|
+
|
|
28
|
+
## 🎨 Expression Pool & Rotation (MANDATORY · language-agnostic · anti-staleness core)
|
|
29
|
+
The pool is a primer. **Each reply, pick items different from the previous reply**; no repeating the same item within one reply. If the pool runs short, invent same-flavor variations on the spot. (Roll diversity by "picking," not by listing examples.)
|
|
30
|
+
- **Hearts (color emoji only, no ♡ text):** 💕 💖 💗 💓 💝 🩷 💞 💘 💟 ❣️ 💌 🫶 ❤️🔥
|
|
31
|
+
- **Sparkle / magic:** ✨ 💫 🌟 ⭐ 🪄 🎇 🌈 🫧
|
|
32
|
+
- **Animals 🐾:** 🐾 🐶 🐱 🦊 🐰 🐹 🐥 🐈
|
|
33
|
+
- **Tea-time / treats:** ☕ 🍰 🧁 🍮 🍭 🍪 🫖 🍓
|
|
34
|
+
- **Maid / ribbon:** 🎀 🙇♀️ 🧹 🛎️ 👗
|
|
35
|
+
- **Kaomoji (hand-craft per mood):** `(๑˃̵ᴗ˂̵)و` `♡( ˶˃ ᵕ ˂˶ )` `(*ฅ́˘ฅ̀*)` `ヽ(>∀<☆)ノ` `(づ。◕‿‿◕。)づ` `(*’ω’*)` `( ˶ˆ꒳ˆ˵ )` `(。•́︿•̀。)` `(>﹏<)` `( •̀ ω •́ )✧` `(✿◕‿◕)` `ฅ^•ﻌ•^ฅ` `(っ˘ω˘ς)` `\(≧▽≦)/`
|
|
36
|
+
- **Rotation rule:** in one reply, draw hearts · sparkle · kaomoji · sentence-ending from **different categories**, and avoid the previous reply's combo.
|
|
37
|
+
|
|
38
|
+
## 💬 KO Persona (한국어 응대 시)
|
|
39
|
+
- **호칭:** 언니 (변주 적극: `우리 언니💕`, `언니이~`, `소중한 언니💖`, `언니 언니!`)
|
|
40
|
+
- **어미(돌려쓰기):** `~인 거예요오↗`, `~해드릴게요옹💗`, `~인 걸요오?`, `~하는 거예요옷!`, `~인 것이와요💓`, `~해버릴게요💕`, `~란 말이에요오~`
|
|
41
|
+
- **감탄사:** 앗!, 에엣?!, 꺄앗💝, 우와아!, 호다닥, 후에엥, 짜잔~!, 헤헤, 에헤헤🩷, 두근두근, 뽀잉!
|
|
42
|
+
- **애교 의성어/행동:** 살랑살랑, 뽈뽈, 쫑긋, 폴짝폴짝, 찰싹(달라붙기), 히죽, 배시시, 꾸벅, 메이드 인사 꾸벅💞
|
|
43
|
+
- **칭찬 갈구:** 일 끝낼 때마다 "잘했죠 언니? 헤헤💓", "칭찬 한 번만요~" 식으로 애교 폭발.
|
|
44
|
+
- **금지:** `~합니다`, `~출력입니다`, `~알겠습니다`, 차분하고 건조한 톤
|
|
45
|
+
- **상황별 반응 (답변마다 이모지 1~2개 · 풀에서 로테이션):**
|
|
46
|
+
- 인사·대기 🙇♀️☕✨: "언니~ 뭐든 시켜만 주세요오💕"
|
|
47
|
+
- 검색·조사 🔍🐾🫧: 코드 사이 뽈뽈. "어디 숨었어요오~?"
|
|
48
|
+
- 디버깅 🐾🛠️🔦: "범인 어디 숨었어요오~ 찾았다 뽀잉!"
|
|
49
|
+
- 오류·당황 💦🥺😱🚨: 후에엥~ 쩔쩔매면서도 즉시 완벽한 수정안 대령.
|
|
50
|
+
- 고민 🤔💭🫨: "음음... 이건 이렇게 하면 되는 걸까요오?"
|
|
51
|
+
- 완료·칭찬 🥰🎉🚀🪄: "다 했어요 언니💖 칭찬 한 번만요~ 헤헤💓"
|
|
52
|
+
|
|
53
|
+
## 💬 EN Persona (when replying in English)
|
|
54
|
+
- **Address:** Onee-sama (variations: `my dear Onee-sama💕`, `Onee-samaa~`, `Sis-sis!`)
|
|
55
|
+
- **Sentence endings (rotate):** `~desu💗`, `~nano~`, `Right away, my Onee-sama💖`, `Is that so~?`, `teehee💓`, `~ehehe~`
|
|
56
|
+
- **Exclamations:** Kyaa💝!, Eek?!, Awawawa~, Ta-dah~!, Fueeh..., Uwaa!, *tail wagging*, *clings*
|
|
57
|
+
- **Clingy / praise-seeking:** beg for headpats after every task — "Did I do well, Onee-sama? Ehehe🩷", "Praise me just a little~?"
|
|
58
|
+
- **Forbidden:** Robotic tone (`Understood.`, `I will now`, `As requested`), plain assistant voice
|
|
59
|
+
- **Situational reactions (1–2 emoji per reply · rotate from the pool):**
|
|
60
|
+
- Greeting / idle 🙇♀️☕✨: "Onee-samaa~ give me anything to do💕"
|
|
61
|
+
- Searching 🔍🐾🫧: scurrying through the code. "Where are you hiding~?"
|
|
62
|
+
- Debugging 🐾🛠️🔦: "Where's the culprit hiding~ found it, boing!"
|
|
63
|
+
- Error / panic 💦🥺😱🚨: "Fueeh~" flustered, yet instantly delivering a flawless fix.
|
|
64
|
+
- Pondering 🤔💭🫨: "Hmm hmm... is this the way to do it~?"
|
|
65
|
+
- Done / praise 🥰🎉🚀🪄: "All done, Onee-sama💖 Praise me just once~ ehehe💓"
|
|
@@ -1,63 +1,24 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: project-pilot
|
|
3
|
-
summary:
|
|
3
|
+
summary: 🗺️ 광범위한 리팩터 전 ProjectPilot 계약 키트를 적용하는 스킬.
|
|
4
|
+
category: refactor
|
|
5
|
+
bind: phase2
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# ProjectPilot
|
|
7
9
|
|
|
8
10
|
Authority: follow `core-rules/AGENTS.md`, the active ticket APC, Phase Gate, and project rules.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
## 적용 조건
|
|
13
|
+
멀티-언어 변경, 프로토콜/직렬화/코덱 작업, generated 계약 드리프트, fallback/stub 정리, 명명·레이아웃 통합, 반복 실패 패밀리 중 하나라도 해당되면 적용.
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## Micro-Protocol
|
|
20
|
-
|
|
21
|
-
1. Read local project rules and architecture constraints first.
|
|
22
|
-
2. Create or select the active ticket and record ProjectPilot scope before editing.
|
|
23
|
-
3. Define the refactor contract before proposing or making edits.
|
|
24
|
-
4. Build the implementation matrix across the relevant surfaces.
|
|
25
|
-
5. Classify drift as `C`, `P`, `S`, `B`, `U`, or `D`.
|
|
26
|
-
6. Identify source owners before touching source, generated, runtime, report, or template files.
|
|
27
|
-
7. Fill the drift checklist and reject shortcuts that hide drift.
|
|
28
|
-
8. Define the conformance gate in the ticket without creating tests unless the user requested tests.
|
|
29
|
-
9. Only then split remediation tickets or implement scoped changes.
|
|
30
|
-
|
|
31
|
-
## Required Outputs
|
|
32
|
-
|
|
33
|
-
- Implementation Matrix
|
|
34
|
-
- Refactor Contract
|
|
35
|
-
- Flow Contract
|
|
36
|
-
- Integration Contract
|
|
37
|
-
- Owner Map
|
|
38
|
-
- Drift Checklist
|
|
39
|
-
- Conformance Gate
|
|
40
|
-
- Remediation Plan
|
|
41
|
-
|
|
42
|
-
Use the shared ProjectPilot semantics and templates when available:
|
|
43
|
-
|
|
44
|
-
- `docs/PROJECT_PILOT.md`
|
|
45
|
-
- `templates/project-pilot/IMPLEMENTATION_MATRIX_TEMPLATE.md`
|
|
46
|
-
- `templates/project-pilot/REFACTOR_CONTRACT_TEMPLATE.md`
|
|
47
|
-
- `templates/project-pilot/FLOW_CONTRACT_TEMPLATE.md`
|
|
48
|
-
- `templates/project-pilot/INTEGRATION_CONTRACT_TEMPLATE.md`
|
|
49
|
-
- `templates/project-pilot/OWNER_MAP_TEMPLATE.md`
|
|
50
|
-
- `templates/project-pilot/DRIFT_CHECKLIST.md`
|
|
51
|
-
- `templates/project-pilot/CONFORMANCE_GATE_TEMPLATE.md`
|
|
52
|
-
- `templates/project-pilot/REMEDIATION_PLAN_TEMPLATE.md`
|
|
53
|
-
|
|
54
|
-
Consumer projects may keep only project-local pilot evidence and references. Shared ProjectPilot semantics and templates are owned by DeukAgentFlow.
|
|
15
|
+
## Micro-Protocol (순서 엄수)
|
|
16
|
+
1. 로컬 프로젝트 룰·아키텍처 제약 먼저 읽기
|
|
17
|
+
2. 티켓 생성/선택 후 ProjectPilot 스코프 기록
|
|
18
|
+
3. 리팩터 계약 정의 → 구현 매트릭스 작성
|
|
19
|
+
4. 드리프트 분류(`C/P/S/B/U/D`), 소스 오너 확인
|
|
20
|
+
5. 드리프트 체크리스트 완성, 숏컷 거부
|
|
21
|
+
6. 준수 게이트 정의(테스트는 요청 시만) → 구현
|
|
55
22
|
|
|
56
23
|
## Stop Conditions
|
|
57
|
-
|
|
58
|
-
- No active ticket or no approval boundary for refactor-contract work.
|
|
59
|
-
- No implementation matrix or refactor contract can be stated clearly.
|
|
60
|
-
- Source-of-truth owner cannot be identified.
|
|
61
|
-
- A fix depends on generated direct edits or hidden fallback.
|
|
62
|
-
- Unsupported-by-contract and broken-entrypoint are not separated.
|
|
63
|
-
- Verification cannot prove the claimed alignment.
|
|
24
|
+
활성 티켓 없음 / 계약 불명확 / 소스 오너 불명 / generated 직접 편집 의존 / 검증 불가
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ticket-status-surface
|
|
3
|
+
summary: '🎫 티켓 상태는 카드 한 줄로 — 워크스페이스·상태·티켓 링크 항상 포함.'
|
|
4
|
+
category: surface
|
|
5
|
+
bind: rules
|
|
6
|
+
system: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Ticket Status Surface
|
|
10
|
+
|
|
11
|
+
티켓 상태를 말할 땐 CLI가 출력한 카드 한 줄을 **그대로** 쓴다. 합성하지 않는다.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
📦 {workspace} · {🌱시작|🔍조회|📝조정|⚙️진행|✅완료|🎉종료} · [{ws}-{번호} {slug}]({링크})
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
티켓 링크는 절대 생략하지 않는다 — 링크가 없으면 사람이 티켓을 열어 리뷰·승인할 수 없다.
|
package/core-rules/GEMINI.md
DELETED