@konductro/claude-plugin 2.1.1 → 2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@konductro/claude-plugin",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "description": "Claude Code plugin for the Konductro platform — technical analysis and delivery tasks",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -348,6 +348,30 @@ server.tool(
348
348
  }
349
349
  );
350
350
 
351
+ // Tool: Submit a regenerated developer brief (KON-325)
352
+ server.tool(
353
+ 'submit_regenerated_brief',
354
+ "Submit a freshly regenerated developer brief for a task to Konductro. It becomes the task's current brief and is appended to the brief history (the previous version is preserved). Regenerate the brief tailored to Claude Code conventions before calling this.",
355
+ {
356
+ ticketId: z.string().describe('The ticket ID or key (e.g. KON-325) to update'),
357
+ content: z.string().describe('The full regenerated developer brief (markdown)'),
358
+ toolset: z.enum(['claude', 'q', 'codex', 'cursor']).default('claude').describe("Coding toolset that produced this brief (this plugin: 'claude')"),
359
+ },
360
+ async ({ ticketId, content, toolset }) => {
361
+ const result = await konductroFetch(`/api/cli/tickets/${ticketId}/regenerate-brief`, {
362
+ method: 'POST',
363
+ body: JSON.stringify({ content, toolset }),
364
+ });
365
+
366
+ return {
367
+ content: [{
368
+ type: 'text',
369
+ text: `Developer brief regenerated for ${ticketId} — now version ${result.version} (${result.toolset}).`,
370
+ }],
371
+ };
372
+ }
373
+ );
374
+
351
375
  // Tool: List my tickets
352
376
  server.tool(
353
377
  'list_my_tickets',
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: regenerate-brief
3
+ description: Regenerate a task's developer brief using Claude Code, tailored to the current codebase, and submit it back to Konductro. Use when a developer wants a fresh, tool-tailored brief for an existing task.
4
+ allowed-tools: Read, Grep, Glob, Bash, mcp__konductro__list_my_tickets, mcp__konductro__get_ticket_context, mcp__konductro__submit_regenerated_brief
5
+ ---
6
+
7
+ # Regenerate Developer Brief
8
+
9
+ Help a developer regenerate the developer brief for a Konductro task, tailored to Claude Code, then submit it back. The regenerated brief becomes the task's current brief; the previous version is preserved in the brief history (nothing is lost).
10
+
11
+ ## Workflow
12
+
13
+ ### Step 1: Pick the task
14
+
15
+ Call `list_my_tickets` to show assigned tickets, or take a ticket key the developer gives you (e.g. `KON-325`). Choose the task whose brief to regenerate.
16
+
17
+ ### Step 2: Load current context
18
+
19
+ Call `get_ticket_context` with the ticket ID. Review the **current brief** (context pack), description, acceptance criteria, architectural notes, and target repository — this is your starting point.
20
+
21
+ ### Step 3: Explore the codebase
22
+
23
+ Use Read / Grep / Glob against the **local** repository to ground the brief in the actual code as it stands now — relevant files, existing patterns, entry points, and tests. A regenerated brief should reflect the current state of the code, not just the original decomposition.
24
+
25
+ ### Step 4: Regenerate the brief
26
+
27
+ Write a fresh developer brief tailored to Claude Code conventions. Use clear, actionable sections:
28
+ - **Architecture Context** — how this task fits, key constraints
29
+ - **Files to Create / Files to Modify** — concrete paths + what changes
30
+ - **Implementation Steps** — a numbered, ordered approach
31
+ - **Out of Scope** — what this task explicitly does not cover
32
+
33
+ Keep it focused on THIS task. Prefer concrete file paths and specifics over generic advice.
34
+
35
+ ### Step 5: Submit
36
+
37
+ Call `submit_regenerated_brief` with the ticket ID and the regenerated brief as `content` (the `toolset` defaults to `claude` for this plugin). On success it becomes the current brief and is recorded as a new version.
38
+
39
+ ## Rules
40
+
41
+ - This does not change the task's status or branch — it only updates the brief. To start work, use `/start-ticket`.
42
+ - If `submit_regenerated_brief` fails (auth/validation), show the error clearly **and** show the brief you wrote so the developer can retry without losing it.
43
+ - Regenerate against the real local code — don't just reword the existing brief.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: start-ticket
3
3
  description: Pick up an assigned ticket and start work — creates branch, pushes ticket spec, updates status. Use when a developer wants to begin working on a ticket.
4
- allowed-tools: Read, Grep, Glob, Bash, mcp__konductro__list_my_tickets, mcp__konductro__get_ticket_context, mcp__konductro__start_work
4
+ allowed-tools: Read, Grep, Glob, Bash, mcp__konductro__list_my_tickets, mcp__konductro__get_ticket_context, mcp__konductro__submit_regenerated_brief, mcp__konductro__start_work
5
5
  ---
6
6
 
7
7
  # Start Ticket
@@ -24,6 +24,10 @@ Call `get_ticket_context` with the chosen ticket ID. Present a summary:
24
24
  - Target repository and default base branch
25
25
  - Any dependencies or architectural notes
26
26
 
27
+ ### Step 2.5 (optional): Regenerate the brief before starting
28
+
29
+ Offer the developer the option to **regenerate the developer brief first**, tailored to Claude Code, so they start from a fresh, code-grounded brief. If they accept: explore the local codebase, write an updated brief, and submit it with `submit_regenerated_brief` (toolset `claude`) before moving on. If they decline, continue with the existing brief. (For a standalone regeneration without starting work, use `/regenerate-brief`.)
30
+
27
31
  ### Step 3: Confirm Branch Details
28
32
 
29
33
  Ask the developer: