diff --git a/.taskmaster/tasks/tasks.json b/.taskmaster/tasks/tasks.json index e62c9f2..095cece 100644 --- a/.taskmaster/tasks/tasks.json +++ b/.taskmaster/tasks/tasks.json @@ -3401,6 +3401,20 @@ "status": "pending", "subtasks": [], "updatedAt": "2026-08-09T19:36:34.052Z" + }, + { + "id": "174", + "title": "Scope project-only commands out of the root --help", + "description": "`mcpctl tasks *` and `mcpctl repos *` were added at the root, but both only work inside a project context. They should not appear in the bare `mcpctl --help`.", + "details": "Violates the CLI convention recorded as the `scope-commands-to-their-context` prompt in the mcpctl-development project.\n\n- `repos discover|import` need a gitprovider AND a target project.\n- `tasks advance|verdict|accept|reject|history` operate on a work item that only exists under an epictask under an epic under a project.\n\nRoot --help should stay the set of things runnable from a cold start. Surfacing these there also teaches the wrong data model: it reads as though a task is a peer of `servers` and `secrets` rather than a leaf of the epic tree.\n\nOptions to weigh (this is a real design choice, not mechanical):\n- hide from root help but keep the command working (commander supports hidden commands, as `attach-server` already does);\n- nest under the parent noun, e.g. `mcpctl epics tasks ...`;\n- surface only when `--project` is present.\n\nCheck the whole CLI while in there, not just the two new ones — `attach-server`/`detach-server` are already hidden, which suggests the pattern exists but was not applied consistently.", + "testStrategy": "src/cli/tests/commands: assert the root program help does not list the scoped commands, and that they still execute when invoked. Update src/cli/tests/completions.test.ts if the generator output changes.", + "priority": "medium", + "dependencies": [ + "137" + ], + "status": "pending", + "subtasks": [], + "updatedAt": "2026-08-09T20:50:38.660Z" } ], "metadata": { @@ -3413,4 +3427,4 @@ ] } } -} \ No newline at end of file +}