Skip to content

Commit 7907edd

Browse files
jpicklykclaude
andauthored
release: v2.0.2 — README and doc corrections (#34)
* refactor: remove session-start hook in favor of orchestrator mode Removed session-start hook from plugin architecture as it duplicates functionality provided by orchestrator-prompt.txt system prompt. Changes: - Removed hook files: session-start.js, session-start.sh, hooks.json - Updated plugin.json to remove hooks reference - Updated documentation to remove hook sections - Fixed project-setup-workflow.md with v2.0 tool syntax and template discovery - Updated initialize-task-orchestrator.md to guide plugin installation - Updated migration docs to document v2.1 hook removal Benefits: - Eliminates redundancy: single source of truth for orchestration guidance - Token savings: ~600 tokens when using orchestrator mode - Cleaner architecture: one comprehensive system prompt vs fragmented hooks - Easier maintenance: update one file instead of syncing multiple sources Orchestrator mode (via system prompt) is now the recommended approach, providing both orchestration logic and communication style in one file. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: remove Skills, Agents, Plugin, and redundant tools (18 → 12 tools) Remove features that Claude Code now provides natively, preserving the MCP's unique value: persistent hierarchical storage, templates, rich dependencies, token-optimized queries, and configurable status workflows. Deleted resources (~55 skill files, 10 agent files, plugin, workflows, output styles, config files). Removed 7 Kotlin tools: ListTagsTool, GetTagUsageTool, RenameTagTool, QueryWorkflowStateTool, SetupProjectTool, GetAgentDefinitionTool, RecommendAgentTool. Removed supporting services: AgentRecommendationService, AgentDirectoryManager, TaskOrchestratorConfigManager, AgentResources, WorkflowPromptsGuidance. Updated McpServer.kt registration, simplified MCP resources and AI guidance to remove Skills/Agent references. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add request_transition tool for trigger-based status changes New MCP tool that provides a higher-level interface for status transitions using named triggers (start, complete, cancel, block, hold) instead of raw status values. Validates transitions against the workflow config, checks prerequisites via StatusValidator, and detects cascade events after applying changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add semantic status roles to workflow config Add role annotations (queue, work, review, blocked, terminal) to status definitions in default-config.yaml for all container types. Roles provide semantic context for AI decision-making about workflow state. Update NextStatusRecommendation.Ready with optional currentRole/nextRole fields. StatusProgressionServiceImpl parses roles from config with fallback inference from terminal/emergency status lists. GetNextStatusTool includes roles in JSON output. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: simplify CLAUDE.md to reflect 12-tool architecture Remove ~400 lines of Skills, Agents, Orchestration Mode, Decision Gates, and Specialist Routing content that referenced deleted features. Add concise MCP Tools section documenting all 12 tools with usage patterns for request_transition, scoped overview, and template discovery. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: post-simplification cleanup after 18→12 tool refactor - Delete claude-plugins/ directory (48 stale skill/agent files) - Delete 7 orphaned tool docs and 6 stale doc files - Update api-reference.md, quick-start.md, ai-guidelines.md, index.md to reflect current 12-tool architecture - Remove unimplemented config sections (parallelism, automation, etc.) - Add DEPLOYED status to ProjectStatus enum with V8 migration - Add GetBlockedTasksTool unit tests (33 tests) - Remove unused gradle deps (slf4j-nop, exposed-migration) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: realign built-in templates to set documentation floor, not ceiling Templates now provide brief 4-7 line prompts telling the AI WHAT to document rather than prescriptive multi-page workflows telling HOW to plan. This preserves the template system's value (minimum required sections) while allowing Claude's native planning to evolve freely. Changes: - Trim 6 template creators from ~930 lines of contentSample to ~110 - Rename 3 templates: Task Implementation Workflow → Task Implementation, Bug Investigation Workflow → Bug Investigation, Testing Strategy → Test Plan - Delete 2 redundant sections: Technical Decision Log, Testing Checkpoints - Change 2 sections to optional: Integration Considerations, Production Readiness - Add V9 Flyway migration to update templates in existing databases - Update TemplateInitializerImpl with new template names - Update migration tests for new names, counts (26→24 sections), and titles Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add Claude Code plugin with skills, hooks, and marketplace integration Replace the old MCP-tool-based deployment approach with a proper Claude Code plugin at claude-plugins/task-orchestrator/. The plugin provides 4 lean skills (task-orchestration, feature-orchestration, status-progression, dependency-analysis), a SessionStart hook for auto-overview, and marketplace distribution via the existing .claude-plugin/marketplace.json. Also fixes ~60 stale pre-v2.0 tool name references across MCP resources and prompts (list_templates, get_overview, create_task, etc.), adds missing get_next_status and request_transition documentation resources, and adds YAML frontmatter to deploy_to_docker command. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add orchestrator output style supporting subagents and agent teams Adds an optional output style that transforms the main Claude session into a pure orchestrator — strips coding instructions and adds delegation patterns. Covers both standard subagents and experimental agent teams, with clear distinction between MCP task orchestrator (persistent) and Claude Code delegation (session-scoped). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add task-mirroring skill and enforce MCP→CC display sync in output style Adds one-way mirroring from MCP Task Orchestrator tasks to Claude Code's terminal task display (Ctrl+T). The output style deterministically requires mirroring when active; the skill provides detailed mapping patterns (14 MCP statuses → 3 CC statuses, dependency mirroring, metadata correlation). Only tasks related to the current focus are mirrored, not the entire database. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: reinforce critical skill behaviors in orchestrator output style Add deterministic reinforcement for three high-risk skill behaviors: partial updates (never fetch-modify-save), cascade event handling (check parent status after transitions), and feature completion verification (all tasks done, sections reviewed before completing). These ensure correct behavior even when skills don't probabilistically activate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: auto-delete child tasks when feature reaches terminal status When a feature is completed or archived, its child tasks are transient work items that have served their purpose. This adds a configurable CompletionCleanupService that synchronously deletes child tasks (with their sections and dependencies) during status transitions. Bug-tagged tasks are retained for diagnostic value. Cleanup is config-gated via completion_cleanup.enabled and respects existing terminal_statuses from the workflow config to support custom flows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: move workflow config out of resources/claude, remove stale docs Move default-config.yaml from resources/claude/configuration/ to resources/configuration/ — the claude/ prefix was a holdover from before the plugin migration. Delete empty hooks/ directory and remove PLUGIN-STRUCTURE.md which referenced agents and files that no longer exist. Update all 5 references (3 tests, 2 docs). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: overhaul Docker infrastructure for security, performance, and correctness - Add .dockerignore to reduce build context from ~412MB to ~8MB - Add non-root user (appuser:1001) to Dockerfile for security hardening - Add OCI metadata labels to Docker image - Optimize Dockerfile layer caching with dedicated dependency download step - Make LOG_LEVEL env var functional via logback.xml variable substitution - Modernize docker-compose.yml: add AGENT_CONFIG_DIR, project mount, resource limits, remove dead env vars (JAVA_TOOL_OPTIONS, MCP_DEBUG) - Replace misleading docker-clean-and-build.bat with cross-platform docker-build.sh and docker-build.bat scripts - Add Buildx, GHA cache, multi-platform (amd64/arm64), and Trivy scanning to CI/CD pipeline - Remove dead MCP_DEBUG env var references across all documentation - Update deploy skill, CLAUDE.md, installation guide, and troubleshooting docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: upgrade MCP Kotlin SDK from 0.7.4 to 0.8.3 - Migrate Tool.Input/Tool.Output to ToolSchema (types package reorganization) - Update all imports from sdk root to sdk.types subpackage - Handle nullable request.arguments with fallback to empty JsonObject - Rename _meta to meta in GetPromptResult (API change) - Update Role.assistant to Role.Assistant (enum case change) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve Docker build failures for AL2023 headless runtime image Install shadow-utils via dnf for groupadd/useradd support on Amazon Linux 2023 minimal images, and move git install before Gradle dependency download since build.gradle.kts requires git at configuration time for version calculation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: upgrade logback from 1.5.13 to 1.5.28 (CVE-2025-11226) Addresses arbitrary code execution vulnerability via conditional configuration file processing (CVSS 5.9, medium severity). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct extraKnownMarketplaces source format to use object The source field requires an object with source type and path, not a plain string. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update CLAUDE.md with accurate project info - Fix MCP SDK version (0.7.2 -> 0.8.3) - Fix Exposed ORM version (v1 -> 1.0.0-beta-2) - Fix tool count (12 -> 13) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: rewrite Quick Start and fix README inaccuracies - Rewrite Quick Start with two clear paths: Claude Code (plugin install) and Other MCP Clients (Docker pull + configure) - Add GHCR MCP server declaration to plugin.json so plugin install includes the MCP server for Claude Code users - Remove phantom references (setup_project, initialize_task_orchestrator) - Fix MCP SDK version (0.7.2 -> 0.8.3) in Technical Stack - Fix broken docs/plugin-installation.md link - Reframe sub-agents as optional/configurable, not pre-packaged - Add .mcp.json to .gitignore (local dev MCP config) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: fall back to bundled default-config.yaml when user config missing StatusProgressionServiceImpl now loads the bundled default-config.yaml from the classpath when no .taskorchestrator/config.yaml exists on the filesystem. This ensures get_next_status and request_transition work out of the box for new users without manual config setup. Malformed user configs still fail explicitly (no silent fallback). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: comprehensive audit and fix of all 13 MCP tool documentation files Audited all tool docs against source implementations and fixed ~80 discrepancies across 12 of 13 tools. Key fixes: corrected status enum tables for all container types, replaced old tool name references, fixed response field names and formats, added missing response fields, removed phantom fields, added DEPRECATED notices. Also: restructured plugin for dev use (removed bundled mcpServers), consolidated session-start hook into plugin, updated README Quick Start and CONTRIBUTING.md with accurate developer setup instructions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: plugin manifest and marketplace configuration for proper discovery - Fix marketplace.json owner field to match schema (name only, no url) - Remove broken extraKnownMarketplaces from settings.json (relative directory paths not resolved by Claude Code, filed #23978) - Add explicit skills and hooks fields to plugin.json manifest - Rename hooks.json to session-hooks.json to avoid conflict with auto-discovery convention while keeping explicit manifest declaration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: remove incorrect deprecation notices and fix stale tool references GetNextTaskTool and GetBlockedTasksTool were incorrectly marked as deprecated pointing to non-existent query_tasks queryType parameters. Also fixes error code mapping in ManageContainerTool to return proper VALIDATION_ERROR/NOT_FOUND/CONFLICT codes instead of generic DATABASE_ERROR, and updates stale Related tool cross-references across tool descriptions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add planning workflow hooks for MCP Task Orchestrator integration PreToolUse:EnterPlanMode hook guides the agent through structured planning: template discovery, container sizing, user confirmation, and plan writing with templates as the structural floor. PostToolUse:ExitPlanMode hook materializes approved plans into MCP containers with UUIDs written back into plan.md, dependency setup, and verification. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: CRLF line endings in hook scripts causing hook errors Git on Windows auto-converted LF to CRLF in shell scripts. The \r characters embedded in JSON output caused Claude Code to show "hook error" despite the context injection still working. Fixed all scripts to LF and added .gitattributes to enforce LF for *.sh files. Also updated hook scripts with refined planning workflow guidance: templates as structural floor, multiSelect template confirmation, and hookEventName field restored per docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: SessionStart hook fires on compaction, derailing in-progress work Added matcher: "startup" to the SessionStart hook so it only fires on new sessions. Previously it had no matcher, causing it to also fire on context compaction which interrupted the agent's current work by prompting a full project overview. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add role-aware status transitions with bidirectional CC-MCP task sync Add getRoleForStatus() to StatusProgressionService and include previousRole/ newRole fields in request_transition responses. Create two new plugin hooks: - PostToolUse status-sync hook detects role boundary crossings and reminds the agent to update mirrored CC task status - TaskCompleted hook enforces MCP-first completion order using a block-once pattern with temp file markers Update task mirroring convention to prefix CC task subjects with [short-hash] for visual correlation and hook-based identification. Update skills and output style with CC-MCP sync guidance. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: reduce output style and skill token overhead by deduplicating content - Output style: 887→343 words (61% reduction). Removed sections duplicated by hooks (Session Start, Error Handling, Handoff) and skills (partial updates, cascade events). Keeps identity, response format, delegation pattern, and decision heuristics. - task-mirroring skill: 836→300 words (64% reduction). Hooks handle post-transition sync (status-sync.sh) and completion enforcement (task-complete-sync.sh) deterministically. Skill now only covers bootstrapping — initial mirror creation, status mapping, and dependency mirroring. - Cross-skill deduplication: Each concept now has a single owner skill. Status flows/triggers/tags → status-progression. CC mirror sync → task-mirroring. Partial updates → task-orchestration. Other skills reference the owner with one-liner pointers instead of repeating content. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add 3 automation hooks, 2 new skills, and strip tool-doc duplication from all skills New hooks: - PostToolUse on manage_container: auto-prompts CC mirror creation for new tasks - PostToolUseFailure on MCP tools: contextual error recovery guidance - SubagentStop: prompts MCP task status sync when subagents reference MCP entities SessionStart matcher expanded from "startup" to "startup|resume|compact" so MCP state reloads on session resume and after context compaction. New skills: template-management (manage_template, apply_template coverage), project-orchestration (project-tier lifecycle coordination). All 7 skills rewritten to remove verbose tool-call code blocks that duplicated the 9.4k tokens of parameter documentation already provided by tool schemas. Skills now contain only workflow patterns, decision heuristics, and key parameter hints. Total skill word count: 1,828 words across 7 files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add completion gate verification with requiresVerification flag Adds a verification gate that blocks task/feature completion until structured JSON acceptance criteria all pass. Inspired by Anthropic's "Effective Harnesses for Long-Running Agents" article on preventing premature completion. Core changes: - requiresVerification boolean on Task and Feature domain models - VerificationGateService with 5-gate check (section exists, non-blank, valid JSON, has criteria, all pass) - Gate enforced at both request_transition(complete) and setStatus paths - ApplyTemplateTool auto-sets flag when Verification section detected - requiresVerification surfaced in all 6 QueryContainerTool response builders - Advisory in GetNextStatusTool when gate is active Database: - V10: adds requires_verification column to tasks and features tables - V11: adds Verification sections to 3 templates, disables Definition of Done Templates: - Verification section added to Task Implementation, Bug Investigation, Requirements Specification - Definition of Done disabled (superseded by enforceable JSON criteria) Plugin: - Planning hooks moved from settings.json into plugin session-hooks.json - Verification gate guidance added to output style and task-orchestration skill - AI guidance updated in McpServerAiGuidance.kt Tests: 1172 total (45 new verification gate tests across 4 test files) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add 4 composable planning templates with signal-based auto-sizing Add Feature Plan (FEATURE, 8 sections), Codebase Exploration (TASK, 3), Design Decision (TASK, 3), and Implementation Specification (TASK, 5) templates for tiered planning workflows (Quick/Standard/Detailed). Disable Local Git Branching and GitHub PR Workflow templates — these duplicate knowledge AI agents already have. Refactor TemplateInitializerImpl to be incremental: creates only missing templates instead of skipping all if any exist. Existing databases get new templates on next startup. V12 Flyway migration handles existing databases: inserts 4 new templates with 19 sections, disables 2 outdated templates. Update pre-planning hook to infer planning depth from user context signals instead of always prompting. Agent determines tier autonomously and asks only when genuinely ambiguous. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct hook JSON response formats per Claude Code docs SessionStart hook was using `systemMessage` (user-facing warning) instead of `hookSpecificOutput.additionalContext` (context injected into Claude). Five scripts were missing the required `hookEventName` field. Added Session Start section to output style as belt-and-suspenders reinforcement. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: report newly unblocked tasks in request_transition response When a blocker task is completed or cancelled, request_transition now identifies downstream tasks that became unblocked and includes them in the response as an unblockedTasks array. This eliminates the need for a follow-up get_blocked_tasks or get_next_task call to discover newly available work. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: skip terminal tasks in mirroring and refresh docs Task mirroring now skips completed/cancelled/archived tasks during bootstrapping since CC tasks cannot be created in a completed state. Also cleans up plugin settings, updates hook configs, and refreshes README and template documentation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add visual formatting tiers and MCP bulk delegation rules to orchestrator output style Adds a 4-tier visual formatting system (dashboard, decisions, narration, technical) with consistent unicode symbols and markdown hierarchy. Adds MCP bulk operation delegation rules — 3+ MCP calls offloaded to cheap subagents (haiku/sonnet) to keep orchestrator context lean. Includes model tier guidance and handoff prompt requirements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: remove task mirroring, restructure plugin output style, relax summary gate Remove the CC task mirroring system (hooks, scripts, skill) which was architecturally incompatible with subagent delegation and blocked by additionalContext bug (#24788). Restructure the orchestrator output style based on Claude Code best practices — heavy trim from 195 to 67 lines, moving workflow patterns to task-orchestration skill. Relax the task summary completion gate to upper-bound only (500 chars max, removing the 300 char minimum). Add project initialization guidance, comprehensive tagging documentation, and action item tracking patterns. Key changes: - Delete task-mirroring skill and 4 mirroring hook scripts - Consolidate agent identity to "project manager and workflow orchestrator" - Add plan-before-acting principle with EnterPlanMode guidance - Expand task-orchestration skill with delegation, tagging, and project init - Store project UUID in CLAUDE.md for cross-session reference - Update StatusValidator, tests, migration, and 9 doc files for summary gate Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add MCP 2025-11-25 structured content, tool annotations, and user summaries Each tool call now returns a clean one-line summary in TextContent for terminal display while the full typed data is available via structuredContent. All 13 tools declare toolAnnotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) and override userSummary() with operation-specific messages. - Add toolAnnotations and userSummary() to ToolDefinition interface - Add shortId() helper to BaseToolDefinition - Add extractDataPayload() and isErrorResponse() to ResponseUtil - Update McpToolAdapter to build structured CallToolResult - Pass title, outputSchema, toolAnnotations through ToolRegistry - Implement per-tool userSummary() for all 13 tools - Add project-summary plugin skill - Add ResponseUtilTest (10 tests) and userSummary tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: align outputSchema with structuredContent and preserve error details Update outputSchema on all 13 tools to describe the data payload shape instead of the response envelope, fixing a spec violation where the declared schema didn't match actual structuredContent output. Also fix extractDataPayload() to include error message and details when data is null on error responses, so the model receives actionable guidance for self-correction instead of an empty object. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: disable MCP 2025-11-25 tool registration fields that break Claude Code outputSchema, title, and toolAnnotations in server.addTool() cause Claude Code's MCP client to silently drop all tools from the tools/list response. structuredContent in tool responses remains enabled (works fine). Tracked upstream: anthropics/claude-code#25081 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: include per-feature taskCounts in project overview response Project overview now returns taskCounts (total + byStatus) for each feature, enabling single-call dashboards without N+1 feature queries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: simplify session start to use /project-summary skill Replace inline MCP calls with skill invocation, reducing duplication and leveraging per-feature taskCounts for complete dashboards. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: make CC tasks the default session progress tracker Replace optional/gated CC task usage with proactive creation for multi-step work, subagent delegation, and MCP task execution. Moves deferred items to MCP action-item tasks where they belong. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: remove stale Workflow Prompts references, add request_transition guidance Remove the getting_started MCP prompt (redundant with MCP Resources and CC plugin skills). Strip 11 "Workflow Prompts" references from all 4 guideline resources — that system was removed but references remained. Add request_transition as the preferred status management tool across all guidance content, keeping manage_container(setStatus) as fallback. Relocate update efficiency and verification gate guides from the deleted prompt into the workflow-integration resource. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: remove dead plugin hook scripts superseded by output style and skills Session start, planning, error recovery, and subagent sync hooks all relied on additionalContext injection which never worked for MCP tools (#24788). These workflows are now handled by the output style and skill system. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: downgrade jvmToolchain to 21 for Docker container compatibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: treat cancelled tasks as terminal and enforce validation on update status changes StatusValidator now recognizes cancelled tasks and archived features as terminal states when checking completion gates. The manage_container update operation now runs the same StatusValidator checks as setStatus when a status field is included, closing the validation bypass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add role-aware taskCounts with byStatus annotations and byRole aggregates taskCounts responses now include workflow role annotations per status (queue, work, review, blocked, terminal) and a byRole aggregate for progress tracking. Roles are resolved from the configurable status progression workflow via StatusProgressionService, which is now wired into ToolExecutionContext. Graceful degradation when service is unavailable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: restore planning hooks for MCP container materialization Re-add PreToolUse (EnterPlanMode) and PostToolUse (ExitPlanMode) hooks that inject planning guidance and MCP container creation instructions. These hooks use command type with bash scripts since prompt hooks cannot inject additionalContext. Previously removed in 9d5938a along with MCP-tool hooks that don't support additionalContext (#24788). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: drop bash prefix from plugin hook commands for reliable execution Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add workflow enforcement hooks for status discipline and subagent injection Add 3 new plugin hooks to enforce orchestration workflow discipline: - PreToolUse prompt on manage_container: blocks setStatus, update-with-status, bulkUpdate-with-status (redirects to request_transition), and create-without- templates (redirects to query_templates) - PreToolUse command on request_transition: reads transcript to verify get_next_status was called before trigger=complete - SubagentStart command on *: injects workflow rules into all subagent contexts PostToolUse prompt hook on request_transition was tested and confirmed not working — neither additionalContext nor prompt reason surfaces for MCP tool PostToolUse events. Removed after verification. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add status transition validation and cascade detection to bulkUpdate and update bulkUpdate now validates each entity's status transition via StatusValidator.validateTransition with full PrerequisiteContext instead of enum-only checks. Partial success reporting returns succeeded and failed entities separately. Cascade events and unblocked downstream tasks are detected and included in the response. update operations that change status now detect cascade events (parent entity advancement suggestions) and unblocked tasks (freed downstream dependencies), matching request_transition response enrichment. Adds 11 new tests covering valid/invalid transitions, partial success, unblocked task detection, and non-status bulk updates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: cascade-delete child entities on force-delete of features and projects deleteFeature(force=true) and deleteProject(force=true) failed with SQLITE_CONSTRAINT_FOREIGNKEY because they only deleted the parent's own sections without removing child tasks, their dependencies, or their sections first. Now both methods cascade in FK-safe order: dependencies → task sections → tasks → feature sections → features → parent sections → parent entity. Adds 9 test scenarios covering all hierarchy combinations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: consolidate dependency tools with bulk creation and graph traversal Rename manage_dependency to manage_dependencies with array-based create schema supporting bulk dependency creation and pattern shortcuts (linear, fan-out, fan-in). Add neighborsOnly parameter to query_dependencies for full server-side graph traversal with topological sort, critical path, bottleneck detection, and parallelizable group identification. Key changes: - manage_dependencies: dependencies array, pattern shortcuts, atomic batch validation with cross-batch cycle detection - query_dependencies: neighborsOnly=false enables graph analysis response with chain, depth, criticalPath, bottlenecks, parallelizable fields - New DependencyGraphService with BFS traversal and Kahn's algorithm - Repository batch create with transactional atomicity - 64 new tests (42 manage_dependencies + 22 graph traversal) - All hooks, skills, docs, and references updated for rename Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add graceful shutdown with signal handling and cleanup coordination Docker containers were accumulating because the server had no signal handling — docker stop sent SIGTERM but nothing caught it. This adds a ShutdownCoordinator with exactly-once semantics, SIGTERM/SIGINT handlers, a JVM shutdown hook fallback, and proper database cleanup via TransactionManager.closeAndUnregister(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add batch transitions and embedded readiness to request_transition Completing multiple tasks previously required 2 MCP calls per entity (get_next_status + request_transition). Now request_transition accepts a transitions array for batch processing and embeds flow context (activeFlow, flowSequence, flowPosition) in every response, making get_next_status optional. Removed the pre-completion-check hook since readiness validation is now native to the tool. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: enforce materialize-before-implement sequencing in planning workflow Strengthen output style and post-planning hook to prohibit dispatching implementation subagents before MCP container materialization completes. Parallel task creation within materialization is still allowed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: collapse completed features in project-summary dashboard Show only active features in the table and summarize completed ones as a single inline list. Reduces dashboard noise as features ship. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: show only count for completed features in project-summary Drop the comma-separated name list — just the count is sufficient. Names added clutter without actionable value. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add cascade lifecycle prerequisites to status-progression and api-reference Document that task→feature cascades require the feature to be in in-development (work role) before all_tasks_complete fires. Skipping the first_task_started step causes cascades to silently not trigger. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add pre-existing container guidance to pre-planning hook Guide agents to write existing feature UUIDs to plan.md before ExitPlanMode so the post-plan hook enters revision mode instead of creating duplicates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: refresh status-progression.md and api-reference.md for overhaul branch status-progression.md: - Reframe Event-Driven Architecture from skills-based to trigger-based - Replace 16+ stale manage_container(setStatus) references with request_transition - Fix config path (orchestration → configuration) - Add Role Annotations, Verification Gates, Completion Cleanup sections - Add request_transition vs manage_container comparison table api-reference.md: - Fix tool count 12 → 13 and reduction ratio 79% → 77% - Add bulkUpdate status validation note (StatusValidator per-entity) - Add graph traversal response example for neighborsOnly=false Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: auto-apply cascade events in request_transition Cascade events (first_task_started, all_tasks_complete, all_features_complete) are now automatically applied after status transitions instead of being returned as suggestions. This eliminates the need for agents to manually act on cascade suggestions, fixing the common issue where features get stuck in planning. - Add AutoCascadeConfig domain model and config section (enabled by default) - Implement recursive applyCascades() loop with configurable depth cap (default 3) - Wire into processSingleTransition() and processBatchTransitions() - Update userSummary() to show cascade count in terminal output - Add 13 new tests covering happy path, recursion, depth limit, error isolation - Update status-progression.md, api-reference.md, and CLAUDE.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add setup-instructions skill, server.instructions, and close 8 workflow gaps Create /setup-instructions skill with universal CLAUDE.md template for any MCP client. Add two-layer architecture for non-plugin agents: server.instructions (~80 tokens/session) points agents to check for version marker, MCP resource (task-orchestrator://guidelines/setup-instructions) provides full template on demand. Version marker (<!-- mcp-task-orchestrator-setup: v1 -->) enables automatic update detection when the template evolves. Also closes 8 workflow instruction gaps across existing plugin skills: - status-progression: fix duplicate cascade header, add completion cleanup and configuration override sections - feature-orchestration: add feature tagging table and cleanup warning - task-orchestration: add query operation selection, standalone vs feature task framework, section tags, MCP resources reference - subagent-workflow-context.sh: add DEPENDENCIES and CLEANUP paragraphs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat!: manage_container v2 — always-array API with 3 operations Unify manage_container from 5 operations to 3 (create, update, delete), all using array parameters for consistent batch support. Remove setStatus (use request_transition) and bulkUpdate (merged into update). Update all docs, tests, plugins, and hooks to reflect the v2 API surface. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: request_transition userSummary crash on single-entity summary field The userSummary method assumed data["summary"] was always a JsonObject (batch response counts), but single-entity responses put the caller's note as a string in the same field. Safe-cast prevents the crash. Also removes legacy single-param mode from tool schema and description so agents only see the transitions array format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: manage_dependencies — remove legacy single-create from schema Remove legacy fromTaskId/toTaskId create mode from tool description and schema descriptions so agents only see dependencies array and pattern shortcuts for creation. Legacy code path preserved for backwards compat. Clarify fromTaskId/toTaskId are for delete operations only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update all MCP resource and skill examples to v2 API format Update manage_container, request_transition, and manage_dependencies examples across MCP Resources, plugin skills, and tool descriptions to use array-based v2 format exclusively. Add scoped CLAUDE.md as canonical API format reference for cross-reference consistency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: synchronize all documentation with v2 API format Bump SETUP_INSTRUCTIONS_VERSION to v2. Sync setup instructions (MCP resource + plugin skill) to show transitions array format. Update api-reference.md request_transition params and manage_dependencies create examples. Remove all legacy single-param references from manage-dependency.md and ai-guidelines.md. Fix claude-plugin.md hooks/scripts structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: genericize setup instructions and add SessionStart enforcement hook Replace all user-facing "CLAUDE.md" references with generic "agent instructions file" terminology in server.instructions and MCP resource text. Add a SessionStart plugin hook that checks for the setup instructions version marker and injects guidance when missing/outdated. Includes a setup_check_enabled config parameter for opt-out. Also deletes stale .taskorchestrator/status-workflow-config.yaml (zero source references, old format) and creates the project's runtime config. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct Jekyll config theme key and stale nav reference - `used theme: minima` was a no-op — fixed to `theme: minima` - `workflow-prompts.md` renamed to `workflow-patterns.md` in header_pages Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: consolidate WorkflowService into CascadeService Replace two parallel workflow systems (WorkflowConfigLoader/WorkflowService and StatusProgressionService) with a unified CascadeService. Eliminates dead config file dependency (status_workflow_config.yaml), extracts 300+ lines of cascade business logic from interface-layer tools into proper application-layer service, and fixes StatusValidator AGENT_CONFIG_DIR support for Docker. - New CascadeService handles cascade detection, application, and unblocked task detection - Moved AppliedCascade from private inner class to domain model layer - Deleted 7 source files + 3 test files (WorkflowConfigLoader, WorkflowService, unused domain models) - Added 22 new CascadeService tests, updated 23 existing tool tests - Net reduction: ~680 lines Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: comprehensive workflow configuration test coverage (+51 tests) Fix CompletionCleanupService to fall back to bundled default-config.yaml when no user config exists (aligning with CascadeServiceImpl pattern). Add tests for all previously untested config keys: named flows (with_review, with_deploy, experimental), feature flow_mappings, auto_cascade config loading and tool-level behavior, completion_cleanup config loading, and status_roles at both service and tool levels. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: convert plugin hook scripts from bash to Node.js Bash scripts in the plugin cache get CRLF line endings on Windows, which silently breaks heredoc parsing. Node.js (.mjs) is line-ending agnostic and guaranteed available wherever Claude Code runs. - Convert 4 .sh scripts to .mjs equivalents - Update session-hooks.json command paths to use `node *.mjs` - Delete original .sh scripts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: add missing hookEventName to SessionStart hook output The session-setup-check script was outputting hookSpecificOutput without the required hookEventName discriminator field, causing Claude Code's schema validation to reject the output and display a startup hook error. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update stale KDoc references from WorkflowService to CascadeService WorkflowService was consolidated into CascadeService in 4b39538 but three KDoc comments in the domain layer still referenced the old name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add status, priority, and tags filters to overview queries Adds filter parameters to query_container(operation="overview") so agents can control payload size. Filters apply to child collections (features in project overview, tasks in feature overview) while keeping parent-level taskCounts unfiltered for true health reporting. Response includes *Meta fields (returned/total) when filters are active. - OverviewFilters data class with raw string storage (fixes enum type mismatch when filtering children of a different container type) - matchesOverviewFilters() parses filter for the child's actual type - All 6 overview methods (3 global + 3 scoped) support filtering - 10 new tests in FilteredOverviewTests - Updated api-reference.md and project-summary skill Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: reject TEMPLATE and SECTION entityType in manage_sections The parameterSchema exposed all EntityType enum values including TEMPLATE and SECTION. The add operation silently accepted TEMPLATE, validated the template existed, then wrote sections to the wrong table (sections instead of template_sections), creating invisible data. Restricts entityType enum to PROJECT, FEATURE, TASK and adds validation in add, reorder, and bulkCreate operations. Adds 4 regression tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: simplify default task flow to 3 statuses, add with_testing_flow Remove testing from default_flow and bug_fix_flow since AI-driven development typically validates inline rather than in a separate QA phase. Add with_testing_flow for tasks tagged qa-required or manual-test that need explicit QA. Update test expectation for the 4-element default flow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update status-progression guide for simplified default flow Reflect the 3-status default task flow throughout examples, flow diagrams, and response samples. Update progress calculation comments and flow position references to match the new sequence. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: update plugin for simplified flow, transition guidance, and auto-continuation Update all plugin skills and hooks for the 3-status default task flow and new with_testing_flow. Add transition mechanics section to status-progression skill explaining call counts per flow. Bump setup instructions to v3 with updated flow tables. Make post-plan execution automatic — plan approval is the green light for both materialization and implementation without stopping for additional confirmation. Add default flow guidance to subagent workflow context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: fix stale dependency tool references in architecture and changelog Update architecture.md tool listing from legacy names (CreateDependencyTool, GetTaskDependenciesTool, DeleteDependencyTool) to current consolidated names. Add parenthetical note in changelog for the dependency tool consolidation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add role-based workflow progression with dependency gating, queries, and audit trail Transform semantic roles (queue, work, review, blocked, terminal) from informational annotations into the primary behavioral mechanism for dependency blocking, query filtering, and cascade detection. Key changes: Role-Based Dependency Gating (Feature A): - Add StatusRole enum with hardcoded ordering and isRoleAtOrBeyond() - Add unblockAt field to Dependency model (null defaults to terminal) - Add getBlockerTaskId()/getBlockedTaskId() direction normalization - Refactor StatusValidator to accept StatusProgressionService injection - Replace 7 hardcoded blocking checks with role-aware resolution - Add unblockAt parameter to manage_dependencies create flow - Include unblockAt and blocker role in query/blocked task responses - V13 migration: ALTER TABLE dependencies ADD COLUMN unblock_at Role-Aware Queries & Transition History (Feature B): - Add getStatusesForRole() reverse lookup on StatusProgressionService - Add role parameter to query_container search and overview operations - Create RoleTransition domain model and repository - Record role transitions in request_transition on role changes - Add role_transitions MCP resource endpoint for audit queries - Add role aggregation rules in CascadeService with YAML config - V14 migration: CREATE TABLE role_transitions with indexes Role-Based Templates & Documentation (Feature C): - Tag 46 template sections across 13 templates with role:{name} - Document role tag convention, hook integration guide - Update API reference, status-progression docs, and plugin skill - Add agent delegation pattern guide (role-to-agent mapping) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: update plugin skills, hooks, output styles, and setup resource for role-based features Align all consumer-facing content with the role-based workflow progression changes (unblockAt gating, role queries, transition annotations, role-tagged templates). Skills (6 updated): - dependency-analysis: add unblockAt, role-based unblocking section - feature-orchestration: add role query filter, role aggregation - project-orchestration: add role filter for project-wide queries - task-orchestration: add role filter, role-tagged section guidance - template-management: add role tag convention section - setup-instructions: add role query rule, unblockAt guidance, previousRole/newRole in post-transition handling Hooks (2 updated): - subagent-workflow-context: add ROLES paragraph, unblockAt guidance - session-setup-check: bump EXPECTED_VERSION from v2 to v3 Output styles (2 updated): - orchestrator: add return format discipline, role-aware queries - workflow-analyst: add multi-status role query detection pattern Codebase resource: - TaskOrchestratorResources: bump setup instructions to v3, fix stale default task flow, add role features to template, add qa-required row Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: replace broken transitions resource with query_role_transitions tool, comprehensive doc audit The MCP SDK 0.8.3 addResource does exact URI matching — resource templates with {entityId} are silently registered but can never be read. Replace the unreachable transitions resource with a proper MCP tool. query_role_transitions tool (14th tool): - Parameters: entityId (required), entityType, limit, fromRole, toRole - Returns audit trail of role changes with timestamps and triggers - 15 tests (7 execution + 6 validation + 2 user summary) Resource cleanup: - Remove addRoleTransitionResource from TaskOrchestratorResources - Remove repositoryProvider param from configureResources/configureAiGuidance - Register QueryRoleTransitionsTool in McpServer.createTools() Documentation audit (4-agent team, 20 files): - Fix tool count 12/13 -> 14 across all docs, skills, CLAUDE.md - Add full query_role_transitions section to api-reference.md - Fix 7 stale default_flow examples (remove testing from default) - Fix status-progression skill transition call counts - Modernize architecture.md ASCII diagrams to v2 tool names - Add query_role_transitions refs to subagent hook + output styles Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: rewrite architecture guide for v2.0 with client/server separation Full rewrite of architecture.md to reflect the current v2.0 codebase. Establishes clear boundary between the client-agnostic MCP server (Part 1) and the Claude Code plugin as a client-specific extension (Part 2). Key changes: - Replace stale v1 tool references with 14 consolidated v2.0 tools - Add Status Progression System section (roles, flows, triggers, cascade) - Add system boundary diagram showing MCP server vs client layer - Reframe AI Guidance as client-agnostic (not Claude-specific) - Add Part 2: Claude Code Plugin with skills, hooks, output style inventory - Include "Building Plugins for Other Clients" guidance - Remove sub-agent orchestration and 4-tier hybrid sections (plugin concerns) - Update technology versions (MCP SDK 0.8.3, Exposed 1.0.0-beta-2, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: remove obsolete subagent-template.md and fix reference Subagent template is a Claude Code plugin concern, not an MCP server doc. Removed the file and its reference from the internal CLAUDE.md downstream consumers table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve 3 role-based dependency gating bugs found during probing - StatusValidator now receives StatusProgressionService from context, fixing permanent blocking of non-terminal unblockAt thresholds - IS_BLOCKED_BY deps now checked in StatusValidator, GetBlockedTasksTool, and CascadeServiceImpl by querying both dependency directions - CascadeServiceImpl records role transitions for auto-cascaded entities via new roleTransitionRepository dependency 1592 tests passing (535 new lines of test coverage) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve 4 remaining issues from role-based dependency gating probing - Fix IS_BLOCKED_BY candidate discovery in CascadeServiceImpl.findNewlyUnblockedTasks() outer loop — now queries both directions so IS_BLOCKED_BY deps report unblocked tasks - Fix auto-cascade single-step advancement — when all children are terminal, features and projects now cascade directly to terminal status instead of advancing one step - Add "resume" trigger to request_transition for recovering from on-hold/blocked status, using role transition history to restore the previous in-flow status - Add dependency-awareness to get_next_status — tasks with incomplete blocking dependencies now return "Blocked" recommendation instead of misleading "Ready" 18 new tests (1610 total), all passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add tight coupling documentation and version sync test Document cross-referencing requirements for status enums, service dependencies, template registration, and plugin manifest sync in CLAUDE.md files. Add SetupVersionSyncTest to catch SETUP_INSTRUCTIONS_VERSION drift across Kotlin constant, hook script, and skill template before publish. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: cascade step-by-step advancement, complete trigger gating, and template role-tag alignment Cascade improvements: - CascadeService now advances features one step at a time through their workflow flow instead of jumping directly to terminal status - Added feature_self_advancement event detection for continued progression after feature transitions (not just task completions) - Verification gate respected during cascade — features with requiresVerification stop before terminal and require manual completion - Auto-cascade max_depth increased from 3 to 10 to support multi-step intermediate status progression Request transition improvements: - Complete trigger now validates workflow position — only allowed from penultimate status or later, preventing skip of intermediate steps - Added back trigger for moving to previous status in workflow flow - Flow context in response now shows post-transition position Template role-tag corrections (11 sections across 5 templates): - FeaturePlan: Implementation Phases and File Change Manifest gain role:work (referenced during active development); Verification JSON corrected from role:queue to role:review - ImplementationSpec: Code Change Points, Technical Spec, Test Plan gain role:work; Verification JSON corrected from role:queue to role:review - TestingStrategy: Test Coverage corrected from role:review to role:queue+role:work (planned then executed); Acceptance Criteria gains role:review (verified during review) - BugInvestigation: Fix & Verification gains role:work (fix is active work) - RequirementsSpec: Verification JSON corrected from role:terminal to role:review (review gate, not terminal state) Config: completion_cleanup disabled by default Docs: updated api-reference, request-transition docs, plugin skills Tests: comprehensive coverage for cascade, cleanup, transition, and query container changes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: add 6 semantic role-tag validation tests for template sections Add assertion-based tests to RoleTaggedTemplateTest that enforce semantic invariants for section role assignments: 1. JSON Verification sections must include role:review 2. acceptance-criteria tagged sections must include role:review 3. fix-implementation tagged sections must include role:work 4. implementation+execution tagged sections must include role:work 5. Every enabled task template has at least one role:work section 6. Every enabled feature template has at least one role:queue section These tests encode the correctness rules that the role-tag alignment corrections followed. Test #2 immediately caught that Must-Have Requirements had an "acceptance-criteria" semantic tag despite being a queue-only planning section — removed the tag since the Verification JSON section is the actual acceptance gate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: restore acceptance-criteria tag on Must-Have Requirements with role:review The previous commit removed the acceptance-criteria semantic tag to pass the new validation test. The correct fix is to keep the tag (Must-Have Requirements does define acceptance criteria) and add role:review so the section surfaces during review when verifying requirements are met. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add current (v3) module with unified WorkItem model and 10 MCP tools Implements the v3 architecture as a Gradle submodule under current/ with a simplified 5-role model (QUEUE, WORK, REVIEW, BLOCKED, TERMINAL) replacing v2's configurable status flows. Single WorkItem entity with parent-child hierarchy replaces the Project/Feature/Task split. Phase 1 (CRUD): manage_items, query_items, manage_notes, query_notes Phase 2 (Workflow): request_transition, get_next_status, get_next_item, get_blocked_items, manage_dependencies, query_dependencies Key design decisions: - Stateless utility classes (RoleTransitionHandler, CascadeDetector) instead of heavyweight services with config caching - Iterative detect-apply cascade pattern for correct multi-level propagation - Role-based dependency gating with unblockAt thresholds - Batch transitions with independent per-item error handling 501 tests across domain models, repositories, tool logic, and integration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: complete v3 Phase 2 — advance_item tool, note schema gates, model corrections - Rename request_transition → advance_item (tool name, class, file, tests) - Add requiresVerification field and make complexity nullable (Int? = null) on WorkItem - Flyway V2 migration: recreate work_items with nullable complexity + requires_verification column - Add NoteSchemaEntry domain model and NoteSchemaService interface + NoOpNoteSchemaService - Add YamlNoteSchemaService: reads .taskorchestrator/config.yaml, AGENT_CONFIG_DIR-aware, testable via path injection - Wire NoteSchemaService into ToolExecutionContext and CurrentMcpServer - Gate enforcement in AdvanceItemTool: start checks current-phase required notes, complete checks all phases - Schema-detected review phase: hasReviewPhase=false causes WORK→TERMINAL (skip REVIEW) - Add expectedNotes array to AdvanceItemTool success responses - Add roleChangedAfter/Before temporal filters to query_items and WorkItemRepository - 523 tests, 0 failures Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: add v3 Phase 3 & 4 — compound operations, context delivery, and plugin Phase 3 — Compound Operations: - create_work_tree: atomic hierarchy creation (root + children + deps + notes) in a single DB transaction via WorkTreeService; ref-based local names for dep wiring - complete_tree: batch terminal transitions with Kahn's topological ordering, gate enforcement (missing required notes), and skip propagation to dependents - findDescendants: iterative BFS added to WorkItemRepository + SQLiteWorkItemRepository Phase 4 — Context Delivery: - get_context: 3-mode context tool (item schema + gate status, session resume since timestamp, and health check); uses findSince on RoleTransitionRepository - findSince: new RoleTransitionRepository method for session-resume queries - Claude Code plugin (claude-plugins/current/): 5 hooks (.mjs), 3 skills (project-summary, status-progression, schema-builder), current-analyst output style Tool count: 10 → 13 (added complete_tree, create_work_tree, get_context) Test count: 523 → 558 (+35 new tests, 0 failures) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: add true DB transaction atomicity to create_work_tree via infrastructure layer WorkTreeService (app layer) called repository methods that each committed their own independent newSuspendedTransaction in Exposed 1.0.0-beta-2. A midway failure left orphaned rows — the "atomic" KDoc was aspirational, not real. Fix: introduce SQLiteWorkTreeService (infrastructure layer) that writes all rows — WorkItems, Dependencies, Notes — using Exposed table objects directly inside a single newSuspendedTransaction. Any exception triggers a full rollback. Architecture: - NEW application/service/WorkTreeExecutor.kt — WorkTreeExecutor interface + TreeDepSpec, WorkTreeInput, WorkTreeResult data classes (replaces WorkTreeService) - DELETE application/service/WorkTreeService.kt - NEW infrastructure/service/SQLiteWorkTreeService.kt — direct table access, all inserts in one transaction; cyclic check skipped (new items only) - RepositoryProvider / DefaultRepositoryProvider: expose workTreeExecutor() - ToolExecutionContext: expose workTreeExecutor() (removed database() accessor) - CreateWorkTreeTool: uses context.workTreeExecutor().execute(input) - CreateWorkTreeToolTest: simplified to mock one WorkTreeExecutor (was 3 repos) - NEW WorkTreeServiceIntegrationTest: proves rollback via Result.Error after midway failure against a real H2 in-memory database Also adds: DependencyRepository.createSuspend() suspend variant (no longer used in the main path but retained for general use), RepositoryProvider.database() accessor (vestigial, harmless). Test count: 558 → 561. 0 failures. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: add Docker v2/v3 architecture switch with multi-stage Dockerfile - Dockerfile: extract runtime-base stage, add runtime-v2 and runtime-current targets, build both module JARs in one builder pass - docker-compose.yml: add mcp-task-orchestrator-current service (profile: current) with separate mcp-task-data-current volume; both services use same MCP server name - docker-build.sh/bat: add --current (v3 only) and --all (both) flags - deploy_to_docker skill: add --current flag for v3 target and volume selection Switch to v3: docker compose --profile current up mcp-task-orchestrator-current Switch to v2: docker compose up (unchanged default) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * chore: update marketplace to list both current and clockwork plugins - marketplace.json: fix source path (task-orchestrator → clockwork), add current-task-orchestrator as primary entry, rename v2 entry to clockwork - clockwork/plugin.json: rename internal name from task-orchestrator to clockwork Both plugins installable locally. When going public, drop the clockwork entry. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * docs: add CLAUDE.md to claude-plugins/ enforcing version bump discipline Documents the requirement to bump both marketplace.json and plugin.json versions whenever plugin content changes, to prevent Claude Code from serving stale cached scripts/skills/hooks. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * chore: rename current plugin to 'current' and fix stale doc link - marketplace.json: shorten plugin name from current-task-orchestrator to current - docs/hook-integration-guide.md: update skills link from task-orchestrator/ to clockwork/ Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: correct plugin manifest paths and bump current plugin to 1.0.1 The current plugin's plugin.json used ../ paths (relative to its .claude-plugin/ subdirectory) for skills, hooks, and outputStyles. The Claude Code validator resolves these paths from the plugin source root, so ../ escaped the plugin directory and failed validation with "Invalid input" errors on all three fields. Changed all three paths from ../ to ./ so they resolve correctly from the plugin root directory, matching the pattern used by the clockwork plugin. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: convert current plugin hooks to object schema, bump to 1.0.2 The Claude Code plugin system now requires hooks config to be a { "hooks": { "<EventName>": [...] } } object rather than a flat array. Also switched command paths to use ${CLAUDE_PLUGIN_ROOT} for reliable resolution regardless of working directory. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: remove stop hook and add model selection guidance to current-analyst, bump to 1.0.4 - Remove stop-check.mjs and its hook entry (stop hooks lack conversation context and proved unreliable for MCP state checks) - Update hooks-config.json to object schema (already in progress) - Add Model Selection section to current-analyst.md output style with 3-tier haiku/sonnet/opus guidance keyed to task type - Bump current plugin 1.0.2 → 1.0.4 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * feat: add start cascade — parent auto-advances when first child starts When a child item transitions to work role, the parent now automatically advances from queue to work via a new first_child_started cascade event. - Add StartCascadeConfig (enabled: true by default) loaded from config - Detect first_child_started in detectTaskCascades() (task→feature) and detectFeatureCascades() (feature→project) using role-based checks - Wire StartCascadeConfig into CascadeServiceImpl constructor via McpServer - Add start_cascade section to default-config.yaml - Add 6 new test cases in StartCascadeTests; update existing tests with required feature role mocks Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: remove trailing comma in hooks-config.json, bump current plugin to 1.0.5 Invalid JSON (trailing comma after last hooks entry) caused plugin load failure. Fixed and bumped patch version per claude-plugins/CLAUDE.md policy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: rewrite cascade detection as pure role-based logic Remove all status-string cascade detection in favor of role comparisons. V3 architecture treats role as the canonical state — status_label is display-only and must never trigger cascades. - Remove first_task_started (checked taskStatus == "in-progress") - Remove RoleAggregationConfig, loadAggregationRules(), checkRoleAggregation(), countTasksByStatus() — all used target_feature_status (status strings) - Add Rule 2: all_children_in_review — when all siblings reach review or beyond and parent is in work, parent advances to review - Keep first_child_started (role-based: newRole == WORK, parent == QUEUE) - Completion cascade rewritten to check item.role == TERMINAL -…
1 parent 76ba059 commit 7907edd

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ 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.0.2] - 2026-02-19
9+
10+
### Fixed
11+
- Corrected Docker image tag references and version badge in README
12+
13+
### Documentation
14+
- Restructured Quick Start with explicit `docker pull` step and simplified default config
15+
- Scoped config mount documentation to `.taskorchestrator/` only
16+
- Fixed all project mount path references across docs
17+
- Trimmed README — removed padding sections, collapsed marketing copy
18+
19+
---
20+
821
## [2.0.1] - 2026-02-19
922

1023
### Fixed

version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
VERSION_MAJOR=2
22
VERSION_MINOR=0
3-
VERSION_PATCH=1
3+
VERSION_PATCH=2

0 commit comments

Comments
 (0)