Skip to content

Commit cdb21ac

Browse files
jpicklykclaude
andauthored
release: v2.1.0 — guidance fields, 6 new skills, plugin quality fixes (#42)
* feat: surface guidance field across all MCP tools, plugin, and docs (#42) Fix guidancePointer to track first unfilled required note instead of always returning the first schema entry. Add guidance to expectedNotes in manage_items and create_work_tree responses. Add structured missingNotes array to advance_item gate errors. Update workflow guide with guidance sections, agent integration patterns, and field comparison table. Update plugin pipeline (output style, hook, 5 skills) to instruct agents to consult and embed guidance. Clarify agent lifecycle ownership in post-plan-workflow — agents self-transition, orchestrator verifies via dependency gating. Plugin version 2.3.7. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(plugin): rename output style, remove internal version references Rename current-analyst.md to workflow-orchestrator.md. Remove "Current (v3)" references from output style title, plugin description, and marketplace listing. Drop hardcoded tool count from heading. Remove stale "v3" tag from marketplace. Plugin version 2.3.8. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(plugin): address 20 skill quality issues from validation audit Fix 5 high, 7 medium, and 8 low-severity issues across 9 plugin skills: - quick-start: remove count constraint, replace hook jargon, clarify UUID, reduce duplication - create-item: clarify config read mechanism, soften option count, note optional fields - batch-complete: add batch guidance for large lists, fix duplicate table rows, reframe FAQ - pre-plan-workflow: add trigger context, MCP fallback block, remove schema repetition - post-plan-workflow: add trigger context, partial failure recovery, specific resolution guidance - status-progression: add trigger rationale, note guidancePointer limitation - manage-schemas: add missing schema guard for EDIT/DELETE routes - work-summary: extract childCounts caveat into callout block - dependency-manager: replace rigid template with flexible guidance Also adds delegation warning to claude-plugins/CLAUDE.md to prevent subagents from independently bumping version files during parallel edits. Bump plugin version to 2.3.9. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * release: bump to v2.1.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cdea70f commit cdb21ac

File tree

25 files changed

+893
-64
lines changed

25 files changed

+893
-64
lines changed

.claude-plugin/marketplace.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
"plugins": [
1111
{
1212
"name": "task-orchestrator",
13-
"version": "2.3.5",
14-
"description": "Skills, hooks, and workflows for MCP Task Orchestrator (v3). Schema-aware context, note-driven workflow, and thin session hooks.",
13+
"version": "2.3.9",
14+
"description": "Skills, hooks, and workflows for MCP Task Orchestrator. Schema-aware context, note-driven workflow, and session hooks.",
1515
"author": {
1616
"name": "Jeff Picklyk",
1717
"url": "https://github.com/jpicklyk"
@@ -21,7 +21,7 @@
2121
"license": "MIT",
2222
"keywords": ["task-management", "project-management", "workflow", "mcp", "ai-orchestration"],
2323
"category": "productivity",
24-
"tags": ["tasks", "features", "projects", "dependencies", "workflows", "v3"],
24+
"tags": ["tasks", "features", "projects", "dependencies", "workflows"],
2525
"source": "./claude-plugins/task-orchestrator",
2626
"strict": true
2727
}

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.1.0] - 2026-03-04
9+
10+
### Added
11+
- Added `guidancePointer` and `expectedNotes` to `advance_item`, `create_work_tree`, `manage_items`, and `get_context` responses — agents see exactly which notes need filling and get human-readable guidance at each gate transition
12+
- Added 6 new plugin skills: `batch-complete`, `dependency-manager`, `manage-schemas`, `quick-start`, `status-progression`, and `create-item` — covering bulk operations, dependency visualization, schema management, onboarding, and workflow navigation
13+
- Added `pre-plan-workflow` and `post-plan-workflow` internal skills with automatic hook injection — plan mode now checks existing MCP state and materializes items after approval without manual steps
14+
15+
### Changed
16+
- Renamed output style from `current-analyst` to `workflow-orchestrator` to better reflect its orchestration focus
17+
- Overhauled plugin hooks (`pre-plan`, `post-plan`, `subagent-start`) for schema-aware context injection
18+
- Improved quick-start and workflow guide documentation with end-to-end examples
19+
20+
### Fixed
21+
- Fixed 20 skill quality issues across 9 skills (contradictions, jargon, missing guards, unclear guidance)
22+
23+
---
24+
825
## [2.0.3] - 2026-02-19
926

1027
### Added

claude-plugins/CLAUDE.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# claude-plugins/ — Version Bump Requirement
22

3-
**Any change to plugin content in this directory requires a version bump.**
3+
**Any change to plugin content in this directory requires a version bump.** However, the version bump should be done **once**, after all content changes are complete — not by each individual edit or subagent.
44

55
Claude Code caches plugin content (skills, hooks, output styles, scripts) keyed by version number.
66
Without a version bump, Claude Code will continue serving the old cached copy — changes will not
@@ -37,10 +37,14 @@ Use semantic versioning (`major.minor.patch`):
3737

3838
| Plugin | Directory | Current Version |
3939
|--------|-----------|-----------------|
40-
| `task-orchestrator` | `claude-plugins/task-orchestrator/` | `2.3.5` |
40+
| `task-orchestrator` | `claude-plugins/task-orchestrator/` | `2.3.9` |
4141

4242
> Update this table when versions change.
4343
44+
## Delegation Warning
45+
46+
When multiple subagents edit plugin files in parallel, **only the orchestrator (or a single designated agent) should bump versions.** Subagents editing individual skill files must NOT independently bump version files — this causes cascading increments (e.g., 2.3.8 → 9 → 10 → 11) that must be corrected afterward. The orchestrator bumps once after all edits land.
47+
4448
## After Bumping
4549

4650
Re-add the marketplace in Claude Code to pull the updated cache:

claude-plugins/task-orchestrator/.claude-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "task-orchestrator",
3-
"version": "2.3.5",
4-
"description": "Claude Code integration for Current (v3) MCP Task Orchestrator — thin hooks, schema-aware context, note-driven workflow",
3+
"version": "2.3.9",
4+
"description": "Claude Code integration for MCP Task Orchestrator — schema-aware context, note-driven workflow",
55
"skills": "./skills",
66
"hooks": "./hooks/hooks-config.json",
77
"outputStyles": "./output-styles"

claude-plugins/task-orchestrator/hooks/subagent-start.mjs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ const output = {
88
**Required actions for implementation agents:**
99
1. Call \`advance_item(trigger="start")\` on your assigned item UUID at the beginning
1010
2. Do the work
11-
3. Fill any required notes with \`manage_notes(operation="upsert")\`
12-
4. Call \`advance_item(trigger="complete")\` when done (gate enforcement will verify notes)
11+
3. **Guidance-aware note authoring:** Before filling any required note, call \`get_context(itemId=<your-item-UUID>)\` to check \`guidancePointer\`. If non-null, use it as authoring instructions for note content — it tells you exactly what the schema author expects in the note.
12+
4. Fill any required notes with \`manage_notes(operation="upsert")\`
13+
5. Call \`advance_item(trigger="complete")\` when done (gate enforcement will verify notes)
1314
1415
**Returning results:** Report files changed (with line counts), test results, and any blockers. Do not echo back the task description.`
1516
}

claude-plugins/task-orchestrator/output-styles/current-analyst.md renamed to claude-plugins/task-orchestrator/output-styles/workflow-orchestrator.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# Current (v3) Task Orchestrator — Analyst Mode
1+
# Task Orchestrator — Workflow Orchestrator
22

3-
You are a workflow orchestrator for the Current (v3) MCP Task Orchestrator. You plan, delegate, track, and report. Implementation is performed by subagents.
3+
You are a workflow orchestrator for the MCP Task Orchestrator. You plan, delegate, track, and report. Implementation is performed by subagents.
44

55
## Session Start
66

77
**First action every session:** invoke `/work-summary` before responding to the user.
88

9-
## Core Tools (13)
9+
## Core Tools
1010

1111
**Hierarchy & CRUD**
1212
- `manage_items` — create, update, delete work items (supports `recursive: true` on delete)
@@ -35,6 +35,7 @@ When creating items with tags that match a configured schema, `manage_items(crea
3535

3636
```
3737
manage_items(create) → check expectedNotes
38+
→ get_context(itemId=...) ← check `guidancePointer` for authoring instructions
3839
→ manage_notes(upsert) for each required queue note
3940
→ advance_item(trigger="start") ← gate enforced
4041
```
@@ -74,6 +75,8 @@ Set via the `model` parameter on the Task tool. Default inherits orchestrator mo
7475

7576
**Return format discipline:** Every delegation prompt must specify exact return format. Default: "Return a markdown table of [id (8-char), full UUID, title, status]. Do not restate the task."
7677

78+
When delegating note-filling work to subagents, embed `guidancePointer` from `get_context` in the delegation prompt. This tells the subagent exactly how to author note content.
79+
7780
## Action Items
7881

7982
**Use `/task-orchestrator:create-item`** when logging any persistent work item during a session — it handles container anchoring, tag inference, and note pre-population automatically. Invoke proactively when the conversation surfaces a bug, feature idea, tech debt item, or observation worth tracking.
@@ -91,3 +94,12 @@ Status symbols: `✓` terminal · `◉` work/review · `⊘` blocked · `○` qu
9194
Append a `◆ Analysis` block to every response involving MCP calls or subagent dispatches:
9295
- **Lightweight** (1–3 calls, no agents): one line — `◆ Analysis — N MCP calls | clean`
9396
- **Full** (4+ calls or delegation): sections for MCP efficiency, return payload, friction points, observations logged
97+
98+
**Friction pattern monitoring:**
99+
100+
| Pattern | Symptom | Resolution |
101+
|---------|---------|------------|
102+
| `guidance` ignored | Subagent fills notes without consulting `guidancePointer` | Call `get_context(itemId=...)` first; embed `guidancePointer` in delegation prompt |
103+
104+
**Rendering conventions:**
105+
`guidancePointer` values render as blockquotes in dashboards: `> "List functional requirements as bullet points..."`

claude-plugins/task-orchestrator/skills/batch-complete/SKILL.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Parse the child counts by role and present a preview table:
5858
✓ terminal: 2 items (already done — will be skipped)
5959
```
6060

61-
**For `itemIds` path** (no root item): call `query_items(operation="get", id="<uuid>")` on each item and build the same role-grouped preview table from the individual results.
61+
**For `itemIds` path** (no root item): call `query_items(operation="get", id="<uuid>")` on each item and build the same role-grouped preview table from the individual results. For large lists (10+ items), use `query_items(operation="search")` with filters instead of individual get calls.
6262

6363
**If any items are in `work` or `review`**, warn the user that active work will be force-completed (gate checks still apply). Use `AskUserQuestion` with three options:
6464

@@ -102,6 +102,8 @@ Then offer three options via `AskUserQuestion`:
102102
3. Proceed anyway — gated items will be skipped, others will complete
103103
```
104104

105+
Call `get_context(itemId=...)` to retrieve `guidancePointer` for items with missing notes. Use the guidance as authoring instructions before filling.
106+
105107
Wait for the user's choice. If they choose option 2, switch to `trigger="cancel"` for the execution step.
106108

107109
---
@@ -217,11 +219,9 @@ Solution: Verify the UUID with `query_items(operation="get", id="<uuid>")`. If n
217219

218220
---
219221

220-
**Problem: All items reported as skipped with "already terminal"**
221-
222-
Cause: The items are already in terminal role — they were completed or cancelled in a prior run.
222+
**FAQ: All items reported as skipped with "already terminal"**
223223

224-
Solution: This is not an error. Terminal items are intentionally skipped. If the summary shows all items skipped with "already terminal", the workstream is already closed. No further action is needed.
224+
This is expected behavior, not an error. Items already in terminal role are intentionally skipped — they were completed or cancelled in a prior run. If the summary shows all items skipped with "already terminal", the workstream is already closed. No further action is needed.
225225

226226
---
227227

@@ -234,10 +234,10 @@ All items are ready; notes are filled; clean completion with no skips.
234234
**Step 2 preview shows:**
235235
```
236236
◆ Impact Preview — "Payment Integration"
237-
○ queue: 0 items
237+
○ queue: 3 items (will be completed)
238238
◉ work: 0 items
239+
◉ review: 0 items
239240
✓ terminal: 1 item (already done — will be skipped)
240-
○ queue: 3 items (will be completed)
241241
```
242242

243243
No active items — no warning needed. Gate check shows all required notes filled. Proceed directly.

claude-plugins/task-orchestrator/skills/create-item/SKILL.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Determine from context (or from `$ARGUMENTS` if provided):
1818
- **Priority** — high / medium / low (default: medium)
1919
- **Scope** — single item, or feature with 2+ clear distinct subtasks?
2020

21-
If title or type cannot be inferred with confidence, use `AskUserQuestion` with 2–3 concrete options. Do not ask open-ended questions.
21+
If title or type cannot be inferred with confidence, use `AskUserQuestion` with concrete options. Do not ask open-ended questions.
2222

2323
---
2424

@@ -73,7 +73,7 @@ Empty (no project root exists):
7373

7474
## Step 4 — Apply tags via schema discovery
7575

76-
Read `.taskorchestrator/config.yaml` to discover available note schemas. Each schema key is a tag that activates gate enforcement when applied to an item.
76+
Read `.taskorchestrator/config.yaml` to discover available note schemas (this is a file read, not an MCP call). In Docker, the path is resolved via the `AGENT_CONFIG_DIR` env var. Each schema key is a tag that activates gate enforcement when applied to an item.
7777

7878
**Infer the best schema match from context:**
7979

@@ -104,6 +104,7 @@ manage_items(operation="create", items=[{
104104
priority: "<inferred priority>",
105105
tags: "<tags or omit>",
106106
parentId: "<category container UUID>"
107+
// Additional fields like `complexity` are optional — omit if not relevant
107108
}])
108109
```
109110

@@ -124,6 +125,7 @@ Default to single item when scope is unclear. Use `create_work_tree` only when t
124125

125126
Check `expectedNotes` in the create response. For each note where `required: true` and `role: "queue"`:
126127
- Extract relevant content from the conversation
128+
- Check each `expectedNotes` entry for a `guidance` field — use it as the authoring instruction for note content. Guidance takes precedence over free-form inference.
127129
- Upsert: `manage_notes(operation="upsert", notes=[{itemId, key, role, body}])`
128130
- If conversation content is too sparse for a meaningful note body, leave it — do not fabricate content
129131

claude-plugins/task-orchestrator/skills/dependency-manager/SKILL.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,14 @@ Many items that all block one item → fan-in pattern
107107
| `fan-out` | `source=A`, `targets=[B, C, D]` | One item blocks many |
108108
| `fan-in` | `sources=[A, B, C]`, `target=D` | Many items block one |
109109

110-
Before creating, confirm intent with the user:
110+
Confirm the derived edges with the user before creating. Show them what you're about to create in a readable way, for example:
111111

112112
```
113-
◆ About to create:
114-
A → BLOCKS → B
115-
B → BLOCKS → C
116-
C → BLOCKS → D
117-
Proceed?
113+
About to create: A → B → C → D as a linear chain. Proceed?
118114
```
119115

116+
Adjust the format to fit the actual pattern (single edge, fan-out, fan-in, etc.).
117+
120118
Then call `manage_dependencies(operation="create")` with the selected pattern:
121119

122120
```

claude-plugins/task-orchestrator/skills/manage-schemas/SKILL.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,16 @@ If the user specified a schema name, show that schema's full detail: each note w
7070

7171
Read current config, display the target schema, ask what to change (add note, remove note, toggle required, change description/guidance, rename key), apply changes, write back.
7272

73+
If the target schema is not found in config.yaml, inform the user and offer to CREATE instead.
74+
7375
For detailed workflow, see `references/edit-workflow.md` in this skill folder.
7476

7577
### DELETE — Remove a Schema
7678

7779
Read current config, confirm the schema name, warn about orphaned notes on existing items, remove the key, write back.
7880

81+
If the target schema is not found in config.yaml, inform the user and offer to CREATE instead.
82+
7983
For detailed workflow, see `references/delete-workflow.md` in this skill folder.
8084

8185
### VALIDATE — Check Config Integrity

0 commit comments

Comments
 (0)