allye-opencode 1.2.3 → 1.2.4

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.
Files changed (2) hide show
  1. package/dist/index.js +32 -20
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -333,9 +333,10 @@ Create the top-level epic first:
333
333
 
334
334
  \`\`\`
335
335
  work_create(
336
- title: "User Authentication System",
337
- item_type: "epic",
338
- description: "## Goal\\n{business goal}\\n\\n## Scope\\n{what's included}\\n\\n## Out of scope\\n{what's excluded}\\n\\n## Success criteria\\n{how we know it's done}"
336
+ work_title: "User Authentication System",
337
+ work_type: "epic",
338
+ work_category: "product",
339
+ work_description: "## Goal\\n{business goal}\\n\\n## Scope\\n{what's included}\\n\\n## Out of scope\\n{what's excluded}\\n\\n## Success criteria\\n{how we know it's done}"
339
340
  )
340
341
  \`\`\`
341
342
 
@@ -344,12 +345,12 @@ work_create(
344
345
  Use \`work_bulk_create\` to create the full hierarchy in one call:
345
346
 
346
347
  \`\`\`
347
- work_bulk_create(items: [
348
+ work_bulk_create(work_items: [
348
349
  {
349
350
  "temp_id": "feat-1",
350
351
  "title": "Email/Password Auth",
351
352
  "item_type": "feature",
352
- "work_category": "feature",
353
+ "work_category": "product",
353
354
  "parent_key": "PROJ-100", // existing epic key
354
355
  "description": "..."
355
356
  },
@@ -357,7 +358,7 @@ work_bulk_create(items: [
357
358
  "temp_id": "story-1",
358
359
  "title": "User can register with email and password",
359
360
  "item_type": "story",
360
- "work_category": "story",
361
+ "work_category": "product",
361
362
  "parent_temp_id": "feat-1", // references the feature above
362
363
  "description": "..."
363
364
  },
@@ -365,7 +366,7 @@ work_bulk_create(items: [
365
366
  "temp_id": "story-2",
366
367
  "title": "User can log in with email and password",
367
368
  "item_type": "story",
368
- "work_category": "story",
369
+ "work_category": "product",
369
370
  "parent_temp_id": "feat-1",
370
371
  "description": "..."
371
372
  }
@@ -479,13 +480,13 @@ The steps below plan **one story at a time** \u2014 but the unit Technical Plann
479
480
  Fetch the story the user wants to plan:
480
481
 
481
482
  \`\`\`
482
- work_get(id: "{story uuid}" or key: "{PROJ-123}")
483
+ work_get(id: "{story uuid}" or work_key: "{PROJ-123}")
483
484
  \`\`\`
484
485
 
485
486
  Read the story's description, acceptance criteria, and parent context. If the story is part of a feature/epic, understand the broader scope:
486
487
 
487
488
  \`\`\`
488
- work_get(key: "{parent feature key}")
489
+ work_get(work_key: "{parent feature key}")
489
490
  \`\`\`
490
491
 
491
492
  ---
@@ -666,12 +667,12 @@ Present the wave structure to the user so they understand the execution order.
666
667
  ### 4.5 Create Tasks via Bulk Create
667
668
 
668
669
  \`\`\`
669
- work_bulk_create(items: [
670
+ work_bulk_create(work_items: [
670
671
  {
671
672
  "temp_id": "task-1",
672
673
  "title": "Set up database schema for {feature}",
673
674
  "item_type": "task",
674
- "work_category": "task",
675
+ "work_category": "backend",
675
676
  "parent_key": "{STORY-KEY}",
676
677
  "description": "{full description with acceptance criteria}"
677
678
  },
@@ -679,7 +680,7 @@ work_bulk_create(items: [
679
680
  "temp_id": "task-2",
680
681
  "title": "Create API route structure for {feature}",
681
682
  "item_type": "task",
682
- "work_category": "task",
683
+ "work_category": "backend",
683
684
  "parent_key": "{STORY-KEY}",
684
685
  "description": "{full description with acceptance criteria}"
685
686
  }
@@ -777,7 +778,7 @@ Before dispatching, do a quick completeness check on the story's tasks: does eac
777
778
  <!-- adapted from EveryInc/compound-engineering-plugin lfg (MIT) \u2014 verify the previous step's artifact before proceeding -->
778
779
  When the execution report comes back, don't take "done" at face value \u2014 check the report actually contains what it should before acting on it: files changed listed, tasks reported per acceptance criterion, not just a blanket "finished." An incomplete report is itself a signal to ask for more detail, not something to wave through.
779
780
 
780
- Once the report is genuinely complete, dispatch the \`reviewer\` subagent \u2014 in parallel, automatically, no need to ask the user first. Review never needs to pause and ask anyone anything, which is what makes it always dispatch-appropriate. Pass it: the story key, the task keys, and the files changed from the execution report.
781
+ Once the report is genuinely complete, dispatch the \`reviewer\` subagent \u2014 in parallel, automatically, no need to ask the user first. Review never needs to pause and ask anyone anything, which is what makes it always dispatch-appropriate. Pass it: the active team (id and name), the story key, the task keys, and the files changed from the execution report.
781
782
 
782
783
  ## 6. React to review
783
784
 
@@ -834,7 +835,7 @@ Get task \u2192 Search context \u2192 Move to in_progress \u2192 Read code \u219
834
835
  Fetch the task you're about to implement:
835
836
 
836
837
  \`\`\`
837
- work_get(key: "{TASK-KEY}")
838
+ work_get(work_key: "{TASK-KEY}")
838
839
  \`\`\`
839
840
 
840
841
  Read its description carefully \u2014 it should contain:
@@ -1113,7 +1114,7 @@ Get story context \u2192 Load decisions \u2192 Review each task \u2192 Document
1113
1114
  ### Get the story and its tasks
1114
1115
 
1115
1116
  \`\`\`
1116
- work_get(key: "{STORY-KEY}")
1117
+ work_get(work_key: "{STORY-KEY}")
1117
1118
  work_children(id: "{story uuid}")
1118
1119
  \`\`\`
1119
1120
 
@@ -1639,11 +1640,22 @@ This skill defines how to correctly move work items between statuses using Allye
1639
1640
 
1640
1641
  ---
1641
1642
 
1642
- ## 1. Status Categories
1643
+ ## 1. Status Categories vs. Status Names
1643
1644
 
1644
- Allye uses these status categories, in typical progression order:
1645
+ The MCP client can only **confirm** 4 status categories \u2014 \`work_statuses()\` (\`work_items.py\`) groups every status under a hardcoded \`category_order\`:
1645
1646
 
1646
- | Category | Meaning |
1647
+ | Category (confirmed) | Meaning |
1648
+ |----------|---------|
1649
+ | \`proposed\` | Not yet started (backlog/todo-like) |
1650
+ | \`in_progress\` | Actively being worked on |
1651
+ | \`done\` | Completed and verified |
1652
+ | \`cancelled\` | Will not be done |
1653
+
1654
+ That's the only taxonomy the MCP client source guarantees. Specific status **names** (e.g. "Backlog", "Todo", "In Progress", "Testing", "Review", "Deploying", "Done") are team-configurable \`WorkflowStatus\` records mapped onto those 4 categories via board columns \u2014 they are not enumerable or guaranteed from the client code alone, and a given team's board may use different names or skip some of them.
1655
+
1656
+ With that caveat, the finer-grained progression below is a common, practical convention (not something the client confirms) that this skill assumes as its default working model, because most teams do configure something like it:
1657
+
1658
+ | Status name (convention) | Meaning |
1647
1659
  |----------|---------|
1648
1660
  | \`backlog\` | Not yet planned \u2014 sitting in the backlog |
1649
1661
  | \`todo\` | Planned and ready to start |
@@ -1654,7 +1666,7 @@ Allye uses these status categories, in typical progression order:
1654
1666
  | \`done\` | Completed and verified |
1655
1667
  | \`cancelled\` | Will not be done |
1656
1668
 
1657
- Each team can customize their board with different columns and map statuses to columns as they see fit. The categories above are the semantic meaning \u2014 the actual status names may vary.
1669
+ Each team can customize their board with different columns and map statuses to columns as they see fit. Before relying on any specific status name, check \`work_statuses()\` (categories + actual names for the team) and \`board_columns()\` (which columns exist on the board in question).
1658
1670
 
1659
1671
  ---
1660
1672
 
@@ -1746,7 +1758,7 @@ Returns all available statuses with their categories and names.
1746
1758
  board_columns()
1747
1759
  \`\`\`
1748
1760
 
1749
- Returns the board structure showing which statuses are in which columns and their order. This is the source of truth for \`work_status_next\` progression.
1761
+ Returns the board's columns for the given \`board_id\` \u2014 each rendered as \`- {column name} (ID: {column id})\`. Note: this tool's text output does not surface which statuses map to which column, nor an explicit ordering field (\`boards.py\`'s \`board_columns\` action only formats \`name\` and \`id\` per column) \u2014 that richer structure may exist in the underlying API but isn't exposed here. Use it to confirm which columns exist on a board; pair it with \`work_statuses()\` for status names/categories.
1750
1762
 
1751
1763
  ---
1752
1764
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allye-opencode",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Allye multi-agent plugin for OpenCode — planning, building, reviewing, and delivering with structured workflows",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",