From d9535bc51fa3a9a5de0e96d5bd5b2c66d65a3b10 Mon Sep 17 00:00:00 2001 From: Michal Date: Sun, 9 Aug 2026 21:50:38 +0100 Subject: [PATCH] =?UTF-8?q?chore(taskmaster):=20file=20174=20=E2=80=94=20s?= =?UTF-8?q?cope=20project-only=20commands=20out=20of=20root=20--help?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tasks/repos command groups added with the CLI work sit at the root of `mcpctl --help`, but both only function inside a project context. Beyond the clutter, it teaches the wrong data model: a task reads as a peer of servers and secrets rather than a leaf of the epic tree. Convention recorded as the `scope-commands-to-their-context` prompt in the mcpctl-development project. Note `attach-server`/`detach-server` are already hidden, so the pattern exists and was simply not applied consistently. Co-Authored-By: Claude Opus 5 (1M context) --- .taskmaster/tasks/tasks.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 +}