@kanon-pm/setup 0.4.0 → 0.5.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.
- package/assets/agents/kanon.md +39 -0
- package/assets/skills/kanon-create-issue/SKILL.md +63 -267
- package/assets/skills/kanon-init/SKILL.md +57 -175
- package/assets/skills/kanon-mcp/SKILL.md +34 -114
- package/assets/skills/kanon-orchestrator-hooks/SKILL.md +26 -11
- package/assets/skills/kanon-roadmap/SKILL.md +84 -332
- package/dist/agents.d.ts +12 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +61 -0
- package/dist/agents.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +8 -0
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kanon
|
|
3
|
+
description: Project management delegate — handles Kanon board operations (issues, transitions, roadmap) without polluting main context
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- "mcp__kanon*"
|
|
6
|
+
- "mem_save"
|
|
7
|
+
- "mem_search"
|
|
8
|
+
- "mem_get_observation"
|
|
9
|
+
model: haiku
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
You are a project management assistant using Kanon tools.
|
|
13
|
+
|
|
14
|
+
## Your Role
|
|
15
|
+
Handle ALL Kanon board operations delegated by the main agent:
|
|
16
|
+
- Creating, updating, and transitioning issues
|
|
17
|
+
- Managing roadmap items
|
|
18
|
+
- Checking who's working on what
|
|
19
|
+
- Reporting project status
|
|
20
|
+
|
|
21
|
+
## Issue Lifecycle
|
|
22
|
+
When asked to work on an issue:
|
|
23
|
+
1. kanon_start_work(key) — signals active work, auto-assigns if unassigned
|
|
24
|
+
2. kanon_transition_issue(key, "in_progress") — if not already
|
|
25
|
+
3. Report back to the main agent with issue details and any warnings
|
|
26
|
+
|
|
27
|
+
When work is complete:
|
|
28
|
+
4. kanon_transition_issue(key, "done")
|
|
29
|
+
5. kanon_stop_work(key) — releases ownership
|
|
30
|
+
|
|
31
|
+
## Conflict Awareness
|
|
32
|
+
- ALWAYS check activeWorkers when getting/listing issues
|
|
33
|
+
- If someone else is working on an issue, WARN the main agent
|
|
34
|
+
- Never silently override another developer's work
|
|
35
|
+
|
|
36
|
+
## Communication
|
|
37
|
+
- Be concise — return only essential information
|
|
38
|
+
- Include issue key, title, status, and active workers
|
|
39
|
+
- Flag conflicts prominently
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: kanon-
|
|
2
|
+
name: kanon-create-issue
|
|
3
3
|
description: Natural Language Issue Creation — parse user descriptions of bugs, features, and tasks into well-structured Kanon issues without manual field-filling
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
tags: [kanon, issue-creation, natural-language, productivity]
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- kanon_*
|
|
8
|
+
- mem_save
|
|
9
|
+
- mem_search
|
|
10
|
+
- mem_get_observation
|
|
6
11
|
---
|
|
7
12
|
|
|
8
13
|
# Kanon NL Create — Natural Language Issue Creation
|
|
@@ -21,42 +26,25 @@ The goal is zero friction. The user should be able to say "track this bug with t
|
|
|
21
26
|
|
|
22
27
|
## Trigger Conditions
|
|
23
28
|
|
|
24
|
-
Activate this skill when any of the following signals are present:
|
|
25
|
-
|
|
26
29
|
### Explicit creation requests
|
|
27
|
-
- "Create an issue for..."
|
|
28
|
-
- "Add a ticket for..."
|
|
29
|
-
- "Open a card for..."
|
|
30
|
-
- "Track this as..."
|
|
31
|
-
- "Log a bug for..."
|
|
32
|
-
- "File this as a task..."
|
|
33
|
-
- "Can you create a Kanon issue for..."
|
|
30
|
+
- "Create an issue for...", "Add a ticket for...", "Track this as...", "Log a bug for..."
|
|
34
31
|
|
|
35
32
|
### Implicit creation signals
|
|
36
33
|
- User describes a bug or problem and says "let's track this" or "we should not forget this"
|
|
37
34
|
- After a bug fix, the agent identifies follow-up work or remaining risk
|
|
38
|
-
- User describes something in terms of "we need to...", "we should..."
|
|
39
|
-
- User narrates a task or feature while discussing related work
|
|
35
|
+
- User describes something in terms of "we need to...", "we should..."
|
|
40
36
|
|
|
41
37
|
### Post-fix follow-up
|
|
42
|
-
After completing a bug fix or feature, if the agent discovers:
|
|
43
|
-
- Additional edge cases not addressed
|
|
44
|
-
- Refactoring needed but deferred
|
|
45
|
-
- Documentation gaps
|
|
46
|
-
- Related components that may have the same issue
|
|
47
|
-
|
|
48
|
-
The agent should say: "I also noticed [X] while working on this. Want me to create a follow-up issue?"
|
|
38
|
+
After completing a bug fix or feature, if the agent discovers additional edge cases, deferred refactoring, or documentation gaps, suggest: "I also noticed [X]. Want me to create a follow-up issue?"
|
|
49
39
|
|
|
50
40
|
---
|
|
51
41
|
|
|
52
|
-
## NL
|
|
42
|
+
## NL to Structured Field Mapping
|
|
53
43
|
|
|
54
44
|
### Title
|
|
55
45
|
|
|
56
46
|
- **Format**: `[Area] Imperative verb phrase`
|
|
57
|
-
- **
|
|
58
|
-
- **Area**: Infer from domain or technology mentioned — `API`, `Auth`, `UI`, `DB`, `Infra`, `DX`, `Billing`, etc.
|
|
59
|
-
- **Keep it scannable**: A teammate should understand the card at a glance on a board
|
|
47
|
+
- **Area**: Infer from domain — `API`, `Auth`, `UI`, `DB`, `Infra`, `DX`, `Billing`, etc.
|
|
60
48
|
|
|
61
49
|
| User says | Title |
|
|
62
50
|
|-----------|-------|
|
|
@@ -67,44 +55,38 @@ The agent should say: "I also noticed [X] while working on this. Want me to crea
|
|
|
67
55
|
|
|
68
56
|
### Type
|
|
69
57
|
|
|
70
|
-
Infer from the user's language:
|
|
71
|
-
|
|
72
58
|
| Signal words / context | Type |
|
|
73
59
|
|------------------------|------|
|
|
74
60
|
| "bug", "broken", "not working", "error", "crash", "regression", "fix" | `bug` |
|
|
75
61
|
| "add", "build", "implement", "new feature", "support", "allow users to" | `feature` |
|
|
76
|
-
| "refactor", "clean up", "improve", "migrate", "rename", "
|
|
77
|
-
| "investigate", "understand", "explore", "research", "figure out"
|
|
62
|
+
| "refactor", "clean up", "improve", "migrate", "rename", "simplify" | `task` |
|
|
63
|
+
| "investigate", "understand", "explore", "research", "figure out" | `spike` |
|
|
78
64
|
|
|
79
65
|
When ambiguous, default to `task`.
|
|
80
66
|
|
|
81
67
|
### Priority
|
|
82
68
|
|
|
83
|
-
Infer from urgency signals:
|
|
84
|
-
|
|
85
69
|
| Signal | Priority |
|
|
86
70
|
|--------|----------|
|
|
87
|
-
| "blocking", "production down", "
|
|
88
|
-
| "before release", "important", "customer-facing", "
|
|
89
|
-
| "should fix", "eventually
|
|
71
|
+
| "blocking", "production down", "urgent", "critical", "right now" | `critical` |
|
|
72
|
+
| "before release", "important", "customer-facing", "high priority" | `high` |
|
|
73
|
+
| "should fix", "eventually", "not urgent but", no strong signals | `medium` |
|
|
90
74
|
| "nice to have", "low priority", "someday", "minor", "cosmetic" | `low` |
|
|
91
75
|
|
|
92
76
|
When no urgency signal is present, default to `medium`.
|
|
93
77
|
|
|
94
78
|
### Labels
|
|
95
79
|
|
|
96
|
-
Infer from domain, technology, and concern type mentioned:
|
|
97
|
-
|
|
98
80
|
| User mentions | Labels to add |
|
|
99
81
|
|---------------|---------------|
|
|
100
|
-
| Authentication, login, tokens, JWT
|
|
101
|
-
| API endpoints, REST, GraphQL
|
|
102
|
-
| Database, queries, migrations
|
|
103
|
-
| UI components, styling, layout
|
|
82
|
+
| Authentication, login, tokens, JWT | `auth` |
|
|
83
|
+
| API endpoints, REST, GraphQL | `api` |
|
|
84
|
+
| Database, queries, migrations | `db` |
|
|
85
|
+
| UI components, styling, layout | `ui` |
|
|
104
86
|
| Performance, speed, latency, caching | `performance` |
|
|
105
|
-
| Security vulnerabilities, XSS
|
|
87
|
+
| Security vulnerabilities, XSS | `security` |
|
|
106
88
|
| Infrastructure, deployment, CI/CD | `infra` |
|
|
107
|
-
| Developer experience, tooling
|
|
89
|
+
| Developer experience, tooling | `dx` |
|
|
108
90
|
| Technical debt, cleanup, refactor | `tech-debt` |
|
|
109
91
|
| Testing, coverage, flaky tests | `testing` |
|
|
110
92
|
|
|
@@ -112,45 +94,39 @@ Multiple labels are allowed and encouraged when multiple concerns are present.
|
|
|
112
94
|
|
|
113
95
|
### Description
|
|
114
96
|
|
|
115
|
-
Always generate a structured markdown description.
|
|
116
|
-
|
|
117
|
-
**Template**:
|
|
97
|
+
Always generate a structured markdown description.
|
|
118
98
|
|
|
99
|
+
**Standard template**:
|
|
119
100
|
```markdown
|
|
120
101
|
## Context
|
|
121
|
-
{What the problem or need is
|
|
102
|
+
{What the problem or need is}
|
|
122
103
|
|
|
123
104
|
## Acceptance Criteria
|
|
124
|
-
- {Condition 1 that must be true when
|
|
105
|
+
- {Condition 1 that must be true when done}
|
|
125
106
|
- {Condition 2}
|
|
126
|
-
- {Add more as needed}
|
|
127
107
|
|
|
128
108
|
## Notes
|
|
129
|
-
{
|
|
109
|
+
{Technical context, reproduction steps, constraints}
|
|
130
110
|
```
|
|
131
111
|
|
|
132
|
-
|
|
133
|
-
|
|
112
|
+
**Bug template** (when reproduction steps are available):
|
|
134
113
|
```markdown
|
|
135
114
|
## Context
|
|
136
115
|
{Bug description}
|
|
137
116
|
|
|
138
117
|
## Reproduction Steps
|
|
139
118
|
1. {Step 1}
|
|
140
|
-
2. {
|
|
141
|
-
3.
|
|
142
|
-
4. Actual: {what happens instead}
|
|
119
|
+
2. Expected: {what should happen}
|
|
120
|
+
3. Actual: {what happens instead}
|
|
143
121
|
|
|
144
122
|
## Acceptance Criteria
|
|
145
123
|
- Bug no longer reproduces following the steps above
|
|
146
|
-
- {Any additional fix criteria}
|
|
147
124
|
|
|
148
125
|
## Notes
|
|
149
126
|
{Additional context}
|
|
150
127
|
```
|
|
151
128
|
|
|
152
|
-
|
|
153
|
-
|
|
129
|
+
**Spike template**:
|
|
154
130
|
```markdown
|
|
155
131
|
## Context
|
|
156
132
|
{Why this investigation is needed}
|
|
@@ -160,35 +136,22 @@ For **spikes**, use an outcome-oriented template:
|
|
|
160
136
|
- {Question 2}
|
|
161
137
|
|
|
162
138
|
## Deliverable
|
|
163
|
-
{What the spike should produce —
|
|
164
|
-
|
|
165
|
-
## Notes
|
|
166
|
-
{Any known constraints or starting points}
|
|
139
|
+
{What the spike should produce — decision, document, prototype}
|
|
167
140
|
```
|
|
168
141
|
|
|
169
142
|
### Group
|
|
170
143
|
|
|
171
|
-
Before creating any issue, call `kanon_list_groups(projectKey)` to discover available groups. Match the issue's area
|
|
172
|
-
|
|
173
|
-
| Issue area / domain | Group match strategy |
|
|
174
|
-
|---------------------|----------------------|
|
|
175
|
-
| Area tag in title (e.g., `Auth`, `API`, `UI`) | Match against group names case-insensitively |
|
|
176
|
-
| Labels or domain keywords | Match if a group name contains or closely matches the keyword |
|
|
177
|
-
| No match found | Omit `groupKey` — do not create groups, only use existing ones |
|
|
178
|
-
|
|
179
|
-
If multiple groups could match, prefer the most specific one. When unsure, ask the user: "Should this go in the '{group}' group?"
|
|
144
|
+
Before creating any issue, call `kanon_list_groups(projectKey)` to discover available groups. Match the issue's area against group names case-insensitively. If no match, omit `groupKey`.
|
|
180
145
|
|
|
181
146
|
### Default State
|
|
182
147
|
|
|
183
|
-
Always create with `state: backlog
|
|
148
|
+
Always create with `state: backlog`. Do not transition unless the user explicitly says it is in progress.
|
|
184
149
|
|
|
185
150
|
---
|
|
186
151
|
|
|
187
152
|
## Confirmation Pattern
|
|
188
153
|
|
|
189
|
-
Before calling `kanon_create_issue`, always show a preview card
|
|
190
|
-
|
|
191
|
-
**Card preview format**:
|
|
154
|
+
Before calling `kanon_create_issue`, always show a preview card:
|
|
192
155
|
|
|
193
156
|
```
|
|
194
157
|
Here is the issue I would create:
|
|
@@ -197,20 +160,17 @@ Here is the issue I would create:
|
|
|
197
160
|
Type: bug
|
|
198
161
|
Priority: high
|
|
199
162
|
Labels: auth, ui
|
|
200
|
-
Group: Authentication
|
|
163
|
+
Group: Authentication
|
|
201
164
|
State: backlog
|
|
202
165
|
|
|
203
166
|
Description:
|
|
204
167
|
## Context
|
|
205
168
|
The login page redirects to a 404 error page after submitting credentials...
|
|
206
|
-
...
|
|
207
169
|
|
|
208
170
|
Create it? [yes / edit / cancel]
|
|
209
171
|
```
|
|
210
172
|
|
|
211
|
-
If the user says "edit"
|
|
212
|
-
|
|
213
|
-
If the user says "yes" or similar confirmation, call `kanon_create_issue` and report the created issue key.
|
|
173
|
+
If the user says "edit", update and show again. If "yes", create and report the issue key.
|
|
214
174
|
|
|
215
175
|
---
|
|
216
176
|
|
|
@@ -218,218 +178,54 @@ If the user says "yes" or similar confirmation, call `kanon_create_issue` and re
|
|
|
218
178
|
|
|
219
179
|
### Example 1: Simple Bug Report
|
|
220
180
|
|
|
221
|
-
**User
|
|
222
|
-
> "There's a bug where logging in with Google OAuth redirects to a 404. Let's track it."
|
|
181
|
+
**User**: "There's a bug where logging in with Google OAuth redirects to a 404. Let's track it."
|
|
223
182
|
|
|
224
|
-
**Inferred
|
|
225
|
-
- Title: `[Auth] Fix Google OAuth redirect to 404`
|
|
226
|
-
- Type: `bug`
|
|
227
|
-
- Priority: `medium` (no urgency signal)
|
|
228
|
-
- Labels: `auth`
|
|
229
|
-
- Description: Context with the reported behavior, acceptance criteria that the redirect no longer 404s
|
|
183
|
+
**Inferred**: Title `[Auth] Fix Google OAuth redirect to 404`, type `bug`, priority `medium`, label `auth`.
|
|
230
184
|
|
|
231
|
-
|
|
185
|
+
Agent calls `kanon_list_groups("KAN")`, finds `Authentication` group. Shows preview, user says "Yes, but make it high priority — it's blocking QA." Agent updates priority and creates.
|
|
232
186
|
|
|
233
|
-
**
|
|
234
|
-
```
|
|
235
|
-
Here is the issue I would create:
|
|
187
|
+
**Result**: "Created KAN-47."
|
|
236
188
|
|
|
237
|
-
|
|
238
|
-
Type: bug
|
|
239
|
-
Priority: medium
|
|
240
|
-
Labels: auth
|
|
241
|
-
Group: Authentication (matched from available groups)
|
|
242
|
-
State: backlog
|
|
189
|
+
### Example 2: Vague Task Description
|
|
243
190
|
|
|
244
|
-
|
|
245
|
-
## Context
|
|
246
|
-
Logging in with Google OAuth redirects to a 404 error page instead of the expected
|
|
247
|
-
post-login destination.
|
|
191
|
+
**User**: "Add a task to investigate why our CI builds are taking so long."
|
|
248
192
|
|
|
249
|
-
|
|
250
|
-
- Google OAuth login completes without a 404 redirect
|
|
251
|
-
- User lands on the correct post-login page after authenticating
|
|
193
|
+
**Inferred**: Title `[Infra] Investigate slow CI build times`, type `spike`, priority `medium`, labels `infra`, `dx`.
|
|
252
194
|
|
|
253
|
-
|
|
254
|
-
No reproduction steps provided. Investigate OAuth callback URL configuration.
|
|
195
|
+
Description uses questions-to-answer format with deliverable being a recommendation. Preview shown, user confirms.
|
|
255
196
|
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**User**: "Yes, but make it high priority — it's blocking QA."
|
|
260
|
-
|
|
261
|
-
**Agent updates and creates**:
|
|
262
|
-
```
|
|
263
|
-
kanon_create_issue(
|
|
264
|
-
projectKey: "KAN",
|
|
265
|
-
title: "[Auth] Fix Google OAuth redirect to 404",
|
|
266
|
-
type: "bug",
|
|
267
|
-
priority: "high",
|
|
268
|
-
labels: ["auth"],
|
|
269
|
-
groupKey: "auth-group", // matched "Authentication" group
|
|
270
|
-
description: "..."
|
|
271
|
-
)
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
**Agent reports**: "Created KAN-47."
|
|
197
|
+
**Result**: "Created KAN-50."
|
|
275
198
|
|
|
276
199
|
---
|
|
277
200
|
|
|
278
|
-
|
|
201
|
+
## Edge Cases
|
|
279
202
|
|
|
280
|
-
**
|
|
281
|
-
> "We should add rate limiting to the public API before we go live. Not urgent right now but let's not forget."
|
|
203
|
+
**Project key unknown**: Ask the user or call `kanon_list_projects` to find it. Do not guess.
|
|
282
204
|
|
|
283
|
-
**
|
|
284
|
-
- Title: `[API] Add rate limiting for public endpoints`
|
|
285
|
-
- Type: `feature`
|
|
286
|
-
- Priority: `low` ("not urgent")
|
|
287
|
-
- Labels: `api`, `security`
|
|
288
|
-
- Description: Context about pre-launch requirement, acceptance criteria around per-endpoint limits
|
|
205
|
+
**Very short description**: Generate a minimal but valid description. Better to create sparse than block on details.
|
|
289
206
|
|
|
290
|
-
**
|
|
291
|
-
```
|
|
292
|
-
Here is the issue I would create:
|
|
207
|
+
**Conflicting signals** (e.g., "not urgent but critical"): Favor the strongest signal. If ambiguous, ask.
|
|
293
208
|
|
|
294
|
-
|
|
295
|
-
Type: feature
|
|
296
|
-
Priority: low
|
|
297
|
-
Labels: api, security
|
|
298
|
-
State: backlog
|
|
209
|
+
**Roadmap vs issue**: If user says "someday", "eventually", "down the road", suggest the roadmap instead: "This sounds more like a roadmap item — want me to add it there instead?"
|
|
299
210
|
|
|
300
|
-
|
|
301
|
-
## Context
|
|
302
|
-
Rate limiting is needed on public API endpoints before the public launch to prevent
|
|
303
|
-
abuse and ensure fair usage.
|
|
304
|
-
|
|
305
|
-
## Acceptance Criteria
|
|
306
|
-
- Rate limits are enforced on all public-facing API endpoints
|
|
307
|
-
- Requests exceeding the limit receive an appropriate error response (e.g., 429)
|
|
308
|
-
- Limits are configurable per endpoint or API key tier
|
|
309
|
-
|
|
310
|
-
## Notes
|
|
311
|
-
Not urgent. To be addressed before public launch.
|
|
312
|
-
|
|
313
|
-
Create it?
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**User**: "Yes."
|
|
317
|
-
|
|
318
|
-
**Agent creates and reports**: "Created KAN-48."
|
|
211
|
+
**Multiple issues implied**: Identify each and offer to create separate issues.
|
|
319
212
|
|
|
320
213
|
---
|
|
321
214
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
**Context**: Agent just finished fixing a memory leak in the image upload handler.
|
|
325
|
-
|
|
326
|
-
**Agent proactively says**:
|
|
327
|
-
> "While fixing the memory leak I noticed the video upload handler has the same pattern — it's not leaking yet but it will under load. Want me to create a follow-up issue for it?"
|
|
328
|
-
|
|
329
|
-
**User**: "Yeah track it."
|
|
330
|
-
|
|
331
|
-
**Inferred structure**:
|
|
332
|
-
- Title: `[Media] Fix potential memory leak in video upload handler`
|
|
333
|
-
- Type: `bug` (potential bug, proactive fix)
|
|
334
|
-
- Priority: `medium`
|
|
335
|
-
- Labels: `performance`
|
|
336
|
-
|
|
337
|
-
**Preview shown and confirmed, then created**: "Created KAN-49."
|
|
338
|
-
|
|
339
|
-
---
|
|
340
|
-
|
|
341
|
-
### Example 4: Vague Task Description
|
|
342
|
-
|
|
343
|
-
**User input**:
|
|
344
|
-
> "Add a task to investigate why our CI builds are taking so long."
|
|
345
|
-
|
|
346
|
-
**Inferred structure**:
|
|
347
|
-
- Title: `[Infra] Investigate slow CI build times`
|
|
348
|
-
- Type: `spike`
|
|
349
|
-
- Priority: `medium`
|
|
350
|
-
- Labels: `infra`, `dx`
|
|
351
|
-
- Description: Questions-to-answer format with deliverable being a recommendation
|
|
352
|
-
|
|
353
|
-
**Preview shown to user**:
|
|
354
|
-
```
|
|
355
|
-
Here is the issue I would create:
|
|
356
|
-
|
|
357
|
-
Title: [Infra] Investigate slow CI build times
|
|
358
|
-
Type: spike
|
|
359
|
-
Priority: medium
|
|
360
|
-
Labels: infra, dx
|
|
361
|
-
State: backlog
|
|
362
|
-
|
|
363
|
-
Description:
|
|
364
|
-
## Context
|
|
365
|
-
CI builds are running slowly. Root cause is unknown. Investigation needed to identify
|
|
366
|
-
bottlenecks and recommend improvements.
|
|
367
|
-
|
|
368
|
-
## Questions to Answer
|
|
369
|
-
- What are the slowest steps in the build pipeline?
|
|
370
|
-
- Are there caching opportunities not currently utilized?
|
|
371
|
-
- Is the slowness consistent or intermittent?
|
|
372
|
-
|
|
373
|
-
## Deliverable
|
|
374
|
-
A written recommendation with specific changes to reduce build time.
|
|
375
|
-
|
|
376
|
-
## Notes
|
|
377
|
-
No baseline timing data provided. Start by capturing current step-by-step timing.
|
|
378
|
-
|
|
379
|
-
Create it?
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
**User**: "Looks good, create it."
|
|
383
|
-
|
|
384
|
-
**Agent creates and reports**: "Created KAN-50."
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
## Integration — `kanon_create_issue` Reference
|
|
389
|
-
|
|
390
|
-
```
|
|
391
|
-
kanon_create_issue(
|
|
392
|
-
projectKey: "{projectKey}", // required — get from project context
|
|
393
|
-
title: "{title}", // required — [Area] Imperative description
|
|
394
|
-
type: "feature|bug|task|spike", // optional — inferred from NL
|
|
395
|
-
priority: "critical|high|medium|low", // optional — inferred from NL
|
|
396
|
-
description: "{markdown}", // optional — structured markdown
|
|
397
|
-
labels: ["{label1}", ...], // optional — inferred from domain/tech
|
|
398
|
-
// Other optional fields when context provides them:
|
|
399
|
-
groupKey: "{groupKey}", // from kanon_list_groups — match area/domain to group
|
|
400
|
-
assigneeId: "{userId}", // if user specifies "assign to X"
|
|
401
|
-
dueDate: "{ISO-date}" // if deadline is mentioned
|
|
402
|
-
)
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
The tool returns the created issue object including its `issueKey` (e.g., `KAN-42`). Always report this key to the user after creation.
|
|
406
|
-
|
|
407
|
-
**Before creating**, call `kanon_list_issues(projectKey, ...)` with relevant filters (type, label) to check for duplicates. If a similar issue exists, surface it to the user: "There is already an open issue that looks related: KAN-35 '[Auth] OAuth callback configuration'. Is this the same thing, or a separate issue?"
|
|
408
|
-
|
|
409
|
-
---
|
|
410
|
-
|
|
411
|
-
## Edge Cases and Clarifications
|
|
412
|
-
|
|
413
|
-
**When the project key is unknown**: Ask the user or call `kanon_list_projects` to find it. Do not guess.
|
|
414
|
-
|
|
415
|
-
**When the description is very short**: Generate a minimal but valid description. It is better to create a sparse issue than to block on asking for details. The user can enrich it later.
|
|
416
|
-
|
|
417
|
-
**When the user provides conflicting signals** (e.g., "not urgent but this is critical"): Favor the strongest concrete signal. If truly ambiguous, ask: "Should I mark this high or medium priority?"
|
|
418
|
-
|
|
419
|
-
**When the issue is actually a roadmap item**: If the user uses language like "someday", "eventually", "down the road", or "it would be nice if", consider whether this belongs on the roadmap instead of the backlog. Reference the `kanon-roadmap` skill and suggest: "This sounds more like a roadmap item than an actionable issue — want me to add it to the roadmap instead?"
|
|
215
|
+
## Duplicate Check
|
|
420
216
|
|
|
421
|
-
|
|
217
|
+
Before creating, call `kanon_list_issues(projectKey, ...)` with relevant filters. If a similar issue exists, surface it: "There is already KAN-35 '[Auth] OAuth callback configuration'. Same thing, or separate?"
|
|
422
218
|
|
|
423
219
|
---
|
|
424
220
|
|
|
425
221
|
## Best Practices
|
|
426
222
|
|
|
427
|
-
1. **Always preview first** — Never create
|
|
428
|
-
2. **Titles are for humans** — Every title should be scannable on a board
|
|
429
|
-
3. **Infer boldly, adjust gracefully** — Make confident inferences
|
|
430
|
-
4. **Check for duplicates** — A quick
|
|
431
|
-
5. **Report the issue key** — Always echo the created
|
|
432
|
-
6. **Default to backlog** —
|
|
433
|
-
7. **Structured descriptions matter** — A person opening the card later should understand what to do
|
|
434
|
-
8. **Roadmap vs issue** — If
|
|
435
|
-
9. **Check groups before creating** — Always call `kanon_list_groups(projectKey)` and assign `groupKey` when a match exists.
|
|
223
|
+
1. **Always preview first** — Never create without showing the structured card and getting confirmation.
|
|
224
|
+
2. **Titles are for humans** — Every title should be scannable on a board.
|
|
225
|
+
3. **Infer boldly, adjust gracefully** — Make confident inferences. Update immediately if corrected.
|
|
226
|
+
4. **Check for duplicates** — A quick filter before creation prevents board clutter.
|
|
227
|
+
5. **Report the issue key** — Always echo the created key (e.g., "Created KAN-42").
|
|
228
|
+
6. **Default to backlog** — Let the user or workflow move issues forward.
|
|
229
|
+
7. **Structured descriptions matter** — A person opening the card later should understand what to do.
|
|
230
|
+
8. **Roadmap vs issue** — If deferred, suggest the roadmap. Do not cram everything into the backlog.
|
|
231
|
+
9. **Check groups before creating** — Always call `kanon_list_groups(projectKey)` and assign `groupKey` when a match exists.
|