bluekiwi 0.1.7 → 0.2.0

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.
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: bk-instruction
3
+ description: BlueKiwi instruction template management skill. Creates, updates, and deletes agent instruction templates, and links credentials using natural language. This skill should be used when the user says "/bk-instruction", "create instruction", "manage instruction templates", or wants to manage BlueKiwi instruction templates.
4
+ user_invocable: true
5
+ ---
6
+
7
+ # BlueKiwi Instruction Management
8
+
9
+ Create, update, and delete agent instruction templates. Optionally link credentials to instructions using natural language.
10
+
11
+ ## Argument Handling
12
+
13
+ - `/bk-instruction` → Show action selection menu.
14
+ - `/bk-instruction add <title>` → Start creating a new instruction.
15
+ - `/bk-instruction list` → Show instruction list.
16
+
17
+ ## What is an Instruction?
18
+
19
+ An instruction is an **execution directive** that a workflow node delivers to the agent at runtime.
20
+
21
+ - Well-written instructions control agent behavior precisely.
22
+ - **Credential binding happens at the workflow node level**, not at the instruction level.
23
+ To reference a credential in an instruction, include the service name in the `content` text.
24
+ Then link the `credential_id` to the node when designing the workflow in `/bk-design` or `/bk-improve`.
25
+
26
+ ## Execution Steps
27
+
28
+ ### Step 0: Select Action
29
+
30
+ If no argument, ask via AskUserQuestion:
31
+
32
+ - header: "Instructions"
33
+ - options: ["List", "Create new", "Edit", "Delete"]
34
+
35
+ ---
36
+
37
+ ### Action: List
38
+
39
+ Call `list_instructions` and display results:
40
+
41
+ ```
42
+ Instruction Templates
43
+ ━━━━━━━━━━━━━━━━━━━━━━━━━
44
+ ID Title Agent Type Active
45
+ ━━━━━━━━━━━━━━━━━━━━━━━━━
46
+ 1 SaaS Competitor Analysis general ✅
47
+ 2 Code Review Checklist code-review ✅
48
+ ━━━━━━━━━━━━━━━━━━━━━━━━━
49
+ 2 total
50
+ ```
51
+
52
+ For folder-based filtering → call `list_folders`, then re-query with `list_instructions(folder_id)`.
53
+
54
+ ---
55
+
56
+ ### Action: Create New
57
+
58
+ **Collect basic info**:
59
+
60
+ 1. Title: ask via AskUserQuestion.
61
+ 2. Agent type: ask via AskUserQuestion (options: ["general", "code-review", "data-analysis", "Type my own"])
62
+ 3. Tags: comma-separated keywords (optional)
63
+ 4. Priority: integer (default 0, higher = more important)
64
+
65
+ **Write content**:
66
+
67
+ Ask how to write the content via AskUserQuestion:
68
+
69
+ - header: "Write content"
70
+ - "How would you like to write the instruction content?"
71
+ - options: ["I'll write it myself", "Generate AI draft for review"]
72
+
73
+ **If "Generate AI draft"**:
74
+
75
+ Based on the goal and agent type, write a draft using this format:
76
+
77
+ ```
78
+ ## Goal
79
+ <1-sentence goal>
80
+
81
+ ## Instructions
82
+ 1. <specific action 1>
83
+ 2. <specific action 2>
84
+ ...
85
+
86
+ ## Output Format
87
+ <expected output format>
88
+
89
+ ## Success Criteria
90
+ - <quantitative criterion 1>
91
+ - <quantitative criterion 2>
92
+ ```
93
+
94
+ Show the draft and ask if the user wants to modify it.
95
+
96
+ **Credential linking (natural language)**:
97
+
98
+ Ask: "Does this instruction use an external service?" via AskUserQuestion:
99
+
100
+ - options: ["Yes, specify a service", "No"]
101
+
102
+ If "Yes":
103
+
104
+ 1. Ask the user to describe the service in natural language. Example: "Use the GitHub API to fetch the PR list."
105
+ 2. Call `list_credentials` to get registered credentials.
106
+ 3. Try to match the input against `service_name` (case-insensitive partial match).
107
+ 4. Show the match result and confirm:
108
+
109
+ ```
110
+ Matched credentials for "GitHub":
111
+ → ID 2: github (GitHub PAT)
112
+
113
+ Add this credential reference to the instruction content?
114
+ ```
115
+
116
+ If matched: append the following block to the content automatically:
117
+
118
+ ```
119
+ ## Required Credentials
120
+ - service: github (credential_id: 2)
121
+ purpose: GitHub API authentication
122
+ ```
123
+
124
+ If no match: "Could not find a matching credential. Register it first with `/bk-credential add`."
125
+
126
+ **Select folder**: Call `list_folders`, then ask via AskUserQuestion.
127
+
128
+ **Register**:
129
+
130
+ Call `create_instruction`:
131
+
132
+ ```json
133
+ {
134
+ "title": "<title>",
135
+ "content": "<content>",
136
+ "agent_type": "<agent type>",
137
+ "tags": ["tag1", "tag2"],
138
+ "priority": 0,
139
+ "folder_id": <folder id>
140
+ }
141
+ ```
142
+
143
+ On success:
144
+
145
+ ```
146
+ ✅ Instruction registered
147
+ Title: <title> (ID: <id>)
148
+
149
+ To use this instruction in a workflow node, set instruction_id: <id>
150
+ when designing nodes with `/bk-design`.
151
+ ```
152
+
153
+ ---
154
+
155
+ ### Action: Edit
156
+
157
+ Call `list_instructions` → select target via AskUserQuestion.
158
+
159
+ Ask what to change (AskUserQuestion):
160
+
161
+ - options: ["Change title", "Edit content", "Change agent type", "Activate/Deactivate", "Cancel"]
162
+
163
+ Call `update_instruction` with only the changed fields.
164
+
165
+ ---
166
+
167
+ ### Action: Delete
168
+
169
+ Call `list_instructions` → select target via AskUserQuestion.
170
+
171
+ Confirm via AskUserQuestion:
172
+
173
+ - header: "Confirm delete"
174
+ - "Delete '{title}'? This will fail if any workflow node is using it."
175
+ - options: ["Delete", "Cancel"]
176
+
177
+ Call `delete_instruction`. On 409 error, show which workflow is using it.
@@ -1,207 +1,219 @@
1
1
  ---
2
2
  name: bk-next
3
- description: BlueKiwi 다음 단계 진행 스킬. 현재 단계를 마무리하고 다음 단계를 실행합니다. This skill should be used when the user says "/bk-next", "다음 단계", "다음", "계속", "진행해", or wants to proceed to the next step.
3
+ description: BlueKiwi next step skill. Completes the current step and executes the next one. This skill should be used when the user says "/bk-next", "next step", "next", "continue", "proceed", or wants to advance to the next step in a running BlueKiwi task.
4
4
  user_invocable: true
5
5
  ---
6
6
 
7
7
  # BlueKiwi Next Step
8
8
 
9
- 현재 단계를 마무리하고, 다음 단계를 실행하는 스킬.
9
+ Complete the current step and execute the next one in a running task.
10
10
 
11
- ## 핵심 원칙
11
+ ## Core Principles
12
12
 
13
- - **instruction은 에이전트의 내부 동작 지침이다. 사용자에게 그대로 노출하지 않는다.**
14
- - 사용자에게는 실행 결과(분석, 질문, 제안) 자연스럽게 보여준다.
15
- - "노드", "node_type" 시스템 용어를 절대 사용하지 않는다.
13
+ - **Instructions are internal agent directives. Never expose raw instruction text to the user.**
14
+ - Show only execution results (analysis, questions, suggestions) to the user.
15
+ - Never use system terms like "node", "node_type" with the user.
16
16
 
17
- ## 자연어 진행 명령
17
+ ## Natural Language Triggers
18
18
 
19
- 사용자가 `/bk-next` 대신 "진행해", "다음", "계속", "넘어가자", "OK" 자연어로 진행 의사를 표현하면 동일하게 다음 단계로 진행한다.
19
+ If the user says "proceed", "next", "continue", "let's go", "OK", "go ahead" treat it the same as `/bk-next`.
20
20
 
21
- ## 세션 복원 (컨텍스트 주입)
21
+ ## Session Restore (Context Injection)
22
22
 
23
- advance 반환값에 `task_context`가 ���함된다. 데이터를 활용하여 세션에서도 이어 작업이 가능하다.
23
+ The `advance` response includes `task_context`. Use it to resume seamlessly in a new session.
24
24
 
25
- 1. `task_context.running_context` — 누적된 결정사항과 프로젝트 상태. 반드시 읽고 이해한다.
26
- 2. `task_context.completed_steps` — 이전에 완료된 단계 요약. 어디까지 ��는지 파악한다.
27
- 3. `task_context.artifacts` — 참조 가능한 산출물 목록. `file_path`가 있으면 필요할 Read 도구로 읽는다.
28
- 4. `task_context.last_session` — 마지막 실행 세션 정보. 다른 세션/사용자가 진행한 경우 인지한다.
25
+ 1. `task_context.running_context` — Accumulated decisions and project state. Read and internalize it.
26
+ 2. `task_context.completed_steps` — Summary of completed steps. Understand where we are.
27
+ 3. `task_context.artifacts` — List of available artifacts. Use the Read tool on `file_path` entries when needed.
28
+ 4. `task_context.last_session` — Last execution session info. Note if a different session/user progressed it.
29
29
 
30
- 세션에서 이어가는 경우 (이전 대화 컨텍스트가 없�� 경우), task_context ���반으로 상황을 파악한 ��행한다.
30
+ When resuming in a new session (no prior conversation context), use `task_context` to reconstruct the situation before proceeding.
31
31
 
32
- ## execute_step 호출 시 필수 파라미터
32
+ ## execute_step Required Parameters
33
33
 
34
34
  <HARD-RULE>
35
- execute_step 호출 반드시 아래 파라미터를 채운다:
36
- - `context_snapshot`: JSON 문자열. 단계에서 내린 결정사항, 주요 발견, 다음 단계 힌트를 구조화하여 저장한다.
37
- 예: `{"decisions":[{"question":"기술 스택","chosen":"Next.js","reason":" 경험"}],"key_findings":["RLS 필요"],"next_step_hint":"구현 계획 작성"}`
38
- - `session_id`: 현재 세션 ID ( 없으면 생략 가능)
39
- - `agent_id`: 에이전트 식별자 (예: "claude-code")
40
- - `model_id`: 사용 중인 LLM 모델 ID (예: "claude-opus-4-6", "gpt-5.2"). system prompt에서 확인.
41
- - `user_name`: 사용자 이름 ( 없으면 생략 가능)
42
-
43
- 파일을 생성하거나 수정한 경우, `artifacts` 배열에 기록한다:
44
-
45
- - 파일 생성: `{artifact_type: "file", title: "설계 문서", file_path: "docs/specs/design.md"}`
46
- - 커밋한 경우: `{artifact_type: "git_commit", title: "Phase 1 구현", git_ref: "커밋해시"}`
47
- - URL 생성: `{artifact_type: "url", title: "PR", url: "https://..."}`
35
+ Always populate these parameters when calling execute_step:
36
+ - `context_snapshot`: JSON string. Store decisions made, key findings, and hints for the next step.
37
+ Example: `{"decisions":[{"question":"tech stack","chosen":"Next.js","reason":"team experience"}],"key_findings":["RLS required"],"next_step_hint":"write implementation plan"}`
38
+ - `session_id`: Current session ID (omit if unknown)
39
+ - `agent_id`: Agent identifier (e.g., "claude-code")
40
+ - `model_id`: Current LLM model ID (e.g., "claude-opus-4-6", "gpt-5.2"). Check system prompt.
41
+ - `user_name`: User name (omit if unknown)
42
+
43
+ If files were created or modified, record in the `artifacts` array:
44
+
45
+ - File created: `{artifact_type: "file", title: "Design Doc", file_path: "docs/specs/design.md"}`
46
+ - Git commit: `{artifact_type: "git_commit", title: "Phase 1 Implementation", git_ref: "<hash>"}`
47
+ - URL: `{artifact_type: "url", title: "PR", url: "https://..."}`
48
48
  </HARD-RULE>
49
49
 
50
- ## Git 아티���트 저장
50
+ ## Credential Handling (API Service Nodes)
51
51
 
52
- 코드나 문서를 생성/수정한 단계를 완료한 후, 사용자에게 `save_artifacts`로 Git 브랜치에 저장할지 물어본다:
53
-
54
- - "산출���을 Git 브랜치에 저장하시겠습니까?" (AskUserQuestion: "저장 (Recommended)" / "건너뛰기")
55
- - 저장 시 `save_artifacts(task_id, message, file_paths)` 호출
56
-
57
- ## Credential 사용 (API 서비스 노드)
58
-
59
- advance 반환에 `credentials` 필드가 있으면 해당 노드는 외부 API 연동이 필요한 노드이다.
52
+ If the `advance` response includes a `credentials` field, the node requires external API integration.
60
53
 
61
54
  <HARD-RULE>
62
- credentials.secrets 키-값을 사용하여 API 호출을 수행한다.
63
- 예: credentials.secrets.ACCESS_TOKEN → curl -H "Authorization: Bearer $TOKEN" 형태로 사용
64
- execute_step의 output에 시크릿 원본(토큰, 키 값) 절대 포함하지 않는다.
65
- 결과(URL, 상태코드, 응답 요약)만 기록한다.
55
+ Use key-value pairs from `credentials.secrets` to make API calls.
56
+ Example: `credentials.secrets.ACCESS_TOKEN``curl -H "Authorization: Bearer $TOKEN"`
57
+ Never include raw secret values (tokens, keys) in `execute_step` output.
58
+ Record only results (URL, status code, response summary).
66
59
  </HARD-RULE>
67
60
 
68
- ## 실행 루프
61
+ ## Execution Loop
69
62
 
70
63
  ```
71
64
  LOOP:
72
- 1. 현재 단계가 pending이면대화에서 응답을 추출하여 execute_step으로 저장
73
- 2. advance(peek=false)로 다음 단계를 가져온다
74
- 3. 다음 단계가 finished이면 complete_task 호출 후 종료
75
- 4. 다음 단계를 실행한다 (아래 타입별 처리 참고)
76
- 5. auto_advance를 확인한다:
77
- - true → 중간 결과 간략 표시 후 LOOP의 2번으로 돌아간다
78
- - false 멈추고 결과를 표시한다
65
+ 1. If the current step is pending → extract response from conversation, save with execute_step
66
+ Check execute_step response for next_action field (see HITL section below)
67
+ 2. Call advance(peek=false) to fetch the next step
68
+ 3. If finished call complete_task, then end
69
+ 4. Execute the next step (see step-type handling below)
70
+ 5. Check auto_advance:
71
+ - true show brief inline result, then go back to step 2
72
+ - false → HITL pause (see below)
79
73
  ```
80
74
 
81
75
  <HARD-RULE>
82
- auto_advance=true 단계를 실행한 후에는 반드시 다음 단계로 자동 진행한다.
83
- "다음 단계로 넘어가려면 /bk-next" 안내하지 않는다.
84
- 중간 결과를 간략히 줄로 표시한다: "✅ [제목] 완료다음 단계 진행 중..."
85
- auto_advance=false인 단계를 만날 때까지 루프를 반복한다.
76
+ After executing an auto_advance=true step, always proceed to the next step automatically.
77
+ Do not show "type /bk-next to continue" hint.
78
+ Show a brief one-line update: "✅ [{title}] donecontinuing to next step..."
79
+ Repeat the loop until reaching an auto_advance=false step.
80
+ </HARD-RULE>
81
+
82
+ ## HITL Pause (auto_advance=false steps)
83
+
84
+ <HARD-RULE>
85
+ When execute_step returns `next_action: "wait_for_human_approval"`:
86
+
87
+ 1. Call `request_approval` with a brief message summarizing what was done.
88
+ 2. Show the user:
89
+ ```
90
+ ⏸ Step [{title}] complete — waiting for approval before proceeding.
91
+ A notification has been sent. Use /bk-approve when ready.
92
+ ```
93
+ 3. STOP. Do NOT call `advance`. Do NOT proceed to the next step.
94
+
95
+ The server will reject `advance` with 403 until a human approves via /bk-approve.
86
96
  </HARD-RULE>
87
97
 
88
- ## 타입별 처리
98
+ ## Step-Type Handling
89
99
 
90
- ### action 단계
100
+ ### action step
91
101
 
92
- 1. instruction 읽고 수행한다. 태스크 context를 참고한다.
93
- 2. **heartbeat를 적극 사용한다**: 30초 이상 걸리는 작업에서는 반드시 heartbeat 보낸다. 예: "아키텍처 섹션 분석 중...", "API 엔드포인트 설계 중...", "설계 문서 119행 작성 중..."
94
- 3. 수행 결과를 사용자에게 보여준다.
95
- 4. `execute_step`으로 저장한다.
102
+ 1. Read the instruction and execute it. Reference task context.
103
+ 2. **Use heartbeat actively**: For tasks taking 30+ seconds, send heartbeat regularly.
104
+ Example: "Analyzing architecture section...", "Designing API endpoints...", "Writing design doc line 119..."
105
+ 3. Show the result to the user.
106
+ 4. Save with `execute_step`.
96
107
 
97
- ### gate 단계
108
+ ### gate step
98
109
 
99
- 1. `get_web_response`로 응답 먼저 확인.
100
- 2. 없으면 `AskUserQuestion`으로 자연스럽게 질문.
101
- 3. **부분 수정 옵션**: 승인/수정 질문에는 "승인 (Recommended)" / "부분 수정" / "전체 재작성" 3개 옵션.
102
- 4. 응답을 `execute_step`으로 저장.
110
+ 1. Check `get_web_response` for a web response first.
111
+ 2. If none, ask naturally via `AskUserQuestion`.
112
+ 3. **Partial edit option**: For approve/modify questions, offer 3 options: "Approve (Recommended)" / "Partial edit" / "Full rewrite".
113
+ 4. Save the response with `execute_step`.
103
114
 
104
- ### loop 단계
115
+ ### loop step
105
116
 
106
- 1. instruction 수행.
107
- 2. **종료 사용자 확인**: 종료 조건 충족 자동 종료하지 않고 AskUserQuestion으로 확인한다:
108
- - "수집된 정보가 충분합니다. 추가로 확인할 사항이 있으신가요?"
109
- - "충분합니다 (Recommended)" / "추가 질문이 있습니다"
110
- 3. **loop 반복마다 개별 execute_step을 호출한다.** 여러 질문의 답변을 하나로 합치지 않는다. 반복이 별도 로그로 기록되어야 한다.
111
- 4. `loop_continue` true/false execute_step.
117
+ 1. Execute the instruction.
118
+ 2. **Confirm before stopping**: When the stop condition is met, do not auto-stop — ask via AskUserQuestion:
119
+ - "Enough information collected. Do you have anything else to add?"
120
+ - "That's enough (Recommended)" / "I have more to add"
121
+ 3. **Call execute_step once per loop iteration.** Do not merge multiple answers into one. Each iteration is a separate log entry.
122
+ 4. Pass `loop_continue` true/false to execute_step.
112
123
 
113
- ## 로드맵 표시
124
+ ## Progress Display
114
125
 
115
- 단계 시작 진행 상황을 줄로 표시한다:
126
+ Show progress at the start of each step as a single line:
116
127
 
117
128
  ```
118
129
  ✅1 → ✅2 → ✅3 → **4** → 5 → 6 → 7 → 8 → 9 → 10 → 11
119
130
  ```
120
131
 
121
- ## 멈출 때의 안내 (auto_advance=false 때만)
132
+ ## When Pausing (auto_advance=false only)
122
133
 
123
- - action 완료 후: "다음 단계로 넘어가려면 `/bk-next`를 입력하세요."
124
- - gate 질문 후: 사용자 응답을 기다린다.
134
+ - **HITL approval required** (execute_step returned `next_action: "wait_for_human_approval"`):
135
+ Call `request_approval`, show waiting message, stop. Resume only after `/bk-approve`.
136
+ - **Gate step**: Wait for user response via AskUserQuestion.
137
+ - **Other action step pausing without HITL**: "Type `/bk-next` to proceed."
125
138
 
126
- ## 완료 메시지
139
+ ## Completion Message
127
140
 
128
141
  <HARD-RULE>
129
- 워크플로 완료 `complete_task`를 호출할 `summary` 파라미터에 반드시 내용을 채운다. 빈 문자열로 보내지 않는다.
130
- summary에는 마크다운으로 결정 사항, 산출물 경로, 다음 단계 제안을 포함한다.
142
+ When the workflow finishes, call `complete_task` with a non-empty `summary`.
143
+ The summary must include decisions made, artifact paths, and suggested next actions, formatted in Markdown.
131
144
  </HARD-RULE>
132
145
 
133
146
  ```
134
- complete_task(task_id=N, status="completed", summary="## 결정 사항\n- 목적: ...\n- 접근 방식: ...\n\n## 산출물\n- 설계 문서: `docs/specs/...`\n- 구현 계획: `docs/specs/...`\n\n## 다음 단계\nPhase 1부터 구현을 시작하세요.")
147
+ complete_task(task_id=N, status="completed", summary="## Decisions\n- Goal: ...\n- Approach: ...\n\n## Artifacts\n- Design doc: `docs/specs/...`\n\n## Next Steps\nStart implementation from Phase 1.")
135
148
  ```
136
149
 
137
- 사용자에게 완료 메시지 표시:
150
+ Show completion message to user:
138
151
 
139
152
  ```
140
- 🎉 브레인스토밍 완료!
153
+ 🎉 Workflow complete!
141
154
  ━━━━━━━━━━━━━━━━━━━━━━━━━
142
155
 
143
- ## 결정 사항 요약
144
- [핵심 결정 사항 테이블]
156
+ ## Summary
157
+ [key decisions table]
145
158
 
146
- ## 산출물
147
- - 📄 설계 문서: `docs/specs/YYYY-MM-DD-xxx-design.md`
148
- - 📋 구현 계획: `docs/specs/YYYY-MM-DD-xxx-implementation-plan.md`
159
+ ## Artifacts
160
+ - 📄 Design doc: `docs/specs/YYYY-MM-DD-xxx-design.md`
149
161
 
150
- ## 다음 단계
151
- 구현을 시작하려면 Phase 1부터 진행하세요.
162
+ ## Next Steps
163
+ Start implementation from Phase 1.
152
164
  ━━━━━━━━━━━━━━━━━━━━━━━━━
153
165
  ```
154
166
 
155
- ## output 기록 형식
167
+ ## output Format
156
168
 
157
169
  <HARD-RULE>
158
- 모든 output 최소 200 이상이어야 한다. 요약만 보내지 않는다.
159
- 반드시 ## 헤딩 구조를 사용한다.
160
- 어투는 "~했습니다"체로 통일한다.
161
- 생성된 파일이 있으면 절대경로를 포함한다.
170
+ All output must be at least 200 characters. Do not send one-line summaries only.
171
+ Always use ## heading structure.
172
+ Write in past-tense declarative form ("I analyzed...", "I generated...").
173
+ Include absolute paths for any files created.
162
174
  </HARD-RULE>
163
175
 
164
176
  action:
165
177
 
166
178
  ```markdown
167
- ## 수행 내용
179
+ ## Actions Taken
168
180
 
169
- 프로젝트 컨텍스트를 분석했습니다.
181
+ Analyzed the project context.
170
182
 
171
- ## 결과
183
+ ## Results
172
184
 
173
- - **프로젝트명**: recipe-sharing-app
174
- - **현재 상태**: 초기 단계 (코드 없음)
175
- - **기술 스택**: 미정
176
- - **주요 발견**: ...
185
+ - **Project name**: recipe-sharing-app
186
+ - **Current state**: Initial stage (no code yet)
187
+ - **Tech stack**: TBD
188
+ - **Key findings**: ...
177
189
 
178
- ## 산출물
190
+ ## Artifacts
179
191
 
180
- 설계 문서를 `/tmp/or-test-verify/docs/specs/2026-04-08-recipe-design.md`에 저장했습니다.
192
+ Saved design doc to `/tmp/or-test-verify/docs/specs/2026-04-08-recipe-design.md`.
181
193
  ```
182
194
 
183
195
  gate:
184
196
 
185
197
  ```markdown
186
- ## 질문
198
+ ## Question
187
199
 
188
- 프로젝트 관리 도구가 해결하려는 핵심 문제는 무엇인가요?
200
+ What is the core problem this project management tool aims to solve?
189
201
 
190
- ## 선택지
202
+ ## Options
191
203
 
192
- 1. 개인 태스크 관리 (추천)
193
- 2. 협업
194
- 3. 교육용
204
+ 1. Personal task management (Recommended)
205
+ 2. Team collaboration
206
+ 3. Educational use
195
207
 
196
- ## 응답
208
+ ## Response
197
209
 
198
- "개인 태스크 관리" 선택했습니다 개인 생산성 향상을 위한 태스크 추적 도구로 진행합니다.
210
+ Selected "Personal task management" — proceeding as a personal productivity task tracker.
199
211
  ```
200
212
 
201
- ## 코멘트 확인
213
+ ## Comment Check
202
214
 
203
- 코멘트가 있으면 실행 전에 사용자에게 알리고 처리 방법을 AskUserQuestion으로 물어본다.
215
+ If comments are present, notify the user before executing and ask how to handle them via AskUserQuestion.
204
216
 
205
- ## 실패 처리
217
+ ## Failure Handling
206
218
 
207
- AskUserQuestion으로: 건너뛰기 / 재시도 / 이전 단계 / 중단.
219
+ Ask via AskUserQuestion: Skip / Retry / Previous step / Abort.
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: bk-report
3
+ description: BlueKiwi task report skill. Generates a structured summary report of a completed or in-progress task, including decisions, artifacts, and findings. This skill should be used when the user says "/bk-report", "show task report", "summarize results", or wants a structured report of a BlueKiwi task.
4
+ user_invocable: true
5
+ ---
6
+
7
+ # BlueKiwi Task Report
8
+
9
+ Generate a structured summary report of a completed or in-progress task.
10
+
11
+ ## Argument Handling
12
+
13
+ - `/bk-report` → Report on the most recent active or completed task.
14
+ - `/bk-report <task_id>` → Report on the specified task.
15
+
16
+ ## Execution Steps
17
+
18
+ ### Step 1: Load Task Data
19
+
20
+ Call `advance` with `peek: true` to get the current task state and `task_context`.
21
+
22
+ If a specific task_id is provided, use it directly.
23
+
24
+ ### Step 2: Load Artifacts and Findings
25
+
26
+ Call `load_artifacts` to retrieve all artifacts for the task.
27
+
28
+ If the workflow includes compliance steps, call `list_findings` to retrieve compliance findings.
29
+
30
+ ### Step 3: Generate Report
31
+
32
+ Build the report from the collected data:
33
+
34
+ ```markdown
35
+ # Task Report: {workflow title}
36
+
37
+ **Task ID**: {id}
38
+ **Status**: {running | completed | failed}
39
+ **Started**: {started_at}
40
+ **Completed**: {completed_at or "in progress"}
41
+ **Steps**: {completed}/{total}
42
+
43
+ ---
44
+
45
+ ## Summary
46
+
47
+ {task_context.running_context summary — key decisions and outcomes}
48
+
49
+ ---
50
+
51
+ ## Step-by-Step Log
52
+
53
+ | Step | Title | Status | Key Output |
54
+ | ---- | ------------ | ------ | ---------------------------- |
55
+ | 1 | Clarify Goal | ✅ | Defined target market as SMB |
56
+ | 2 | Collect Data | ✅ | 15 competitors identified |
57
+ | 3 | Review | ⏳ | Pending approval |
58
+
59
+ ---
60
+
61
+ ## Artifacts
62
+
63
+ | Type | Title | Location |
64
+ | ---------- | ---------- | --------------------------------- |
65
+ | file | Design Doc | `docs/specs/2026-04-11-design.md` |
66
+ | git_commit | Phase 1 | `a1b2c3d` |
67
+
68
+ ---
69
+
70
+ ## Compliance Findings
71
+
72
+ {if findings exist}
73
+ | ID | Severity | Description | File |
74
+ |----|----------|-------------|------|
75
+ | ISMS-001 | BLOCK | Hardcoded secret | src/config.ts:42 |
76
+
77
+ {if no findings}
78
+ No compliance issues found.
79
+
80
+ ---
81
+
82
+ ## Next Steps
83
+
84
+ {task_context summary of recommended next actions}
85
+ ```
86
+
87
+ ### Step 4: Display and Offer Export
88
+
89
+ Show the report.
90
+
91
+ Ask via AskUserQuestion:
92
+
93
+ - header: "Export?"
94
+ - "Would you like to save this report to a file?"
95
+ - options: ["Save as Markdown", "Skip"]
96
+
97
+ If "Save as Markdown" → write to `reports/bk-report-{task_id}-{date}.md`.