@grifhinz/logics-manager 2.0.5 → 2.1.0

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.
package/README.md CHANGED
@@ -2,73 +2,195 @@
2
2
 
3
3
  [![CI](https://github.com/AlexAgo83/logics-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/AlexAgo83/logics-manager/actions/workflows/ci.yml)
4
4
  [![License](https://img.shields.io/github/license/AlexAgo83/logics-manager)](LICENSE)
5
- ![Version](https://img.shields.io/badge/version-v2.0.5-4C8BF5)
5
+ ![Version](https://img.shields.io/badge/version-v2.1.0-4C8BF5)
6
6
  ![VS Code](https://img.shields.io/badge/VS%20Code-1.86.0-007ACC?logo=visualstudiocode&logoColor=white)
7
7
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.3.3-3178C6?logo=typescript&logoColor=white)
8
8
  ![Vitest](https://img.shields.io/badge/Vitest-2.1.8-6E9F18?logo=vitest&logoColor=white)
9
9
 
10
- Turn your `logics/*` Markdown corpus into a real delivery cockpit inside VS Code, backed by the canonical `logics-manager` runtime.
10
+ `logics-manager` is a local workflow runtime for projects that keep their delivery memory in Markdown.
11
11
 
12
- `logics-manager` gives you a visual orchestration layer for the Logics workflow
13
- (`requests -> backlog -> tasks -> specs`) without moving the source of truth out of the repository.
12
+ The core product is the CLI. It creates, promotes, validates, audits, and closes the `logics/*` documents that describe work:
14
13
 
15
- Version `2.0.0` marks the point where the extension, npm bin, Python package, generated assistant instructions, and runtime-facing docs all converge on the same product surface: `logics-manager`.
14
+ ```text
15
+ request -> backlog item -> task -> implementation
16
+ ```
17
+
18
+ Everything else in this repository is a client around that runtime:
19
+
20
+ - the VS Code extension gives humans a board, details panel, previews, search, and insights;
21
+ - the MCP server gives assistants a bounded tool API over the same CLI;
22
+ - the npm package and Python package are distribution paths for the same runtime.
23
+
24
+ The source of truth stays in your repository. Logics documents are plain Markdown, versioned with git, readable in reviews, and reusable by humans or AI assistants across sessions.
25
+
26
+ ## What It Solves
27
+
28
+ AI-heavy projects often lose context between chats, agents, and implementation passes. Logics turns that context into durable project artifacts:
16
29
 
17
- This is more than a workflow panel. It turns project context into a durable, inspectable memory that AI assistants can reuse across sessions, so teams spend less time re-explaining history, waste fewer tokens, and keep delivery conversations grounded in the same artifacts.
30
+ - `request`: the problem, need, and acceptance criteria;
31
+ - `backlog item`: a scoped delivery slice;
32
+ - `task`: executable implementation work;
33
+ - `product brief`: product framing and intent;
34
+ - `ADR`: architectural decisions;
35
+ - `spec`: behavioral contract.
18
36
 
19
- ## Logics Runtime and CLI
37
+ The result is a repo-local memory layer that reduces re-explaining, keeps implementation grounded, and gives every assistant or human the same inspectable workflow state.
20
38
 
21
- `logics-manager` is the canonical CLI surface for the Logics runtime. The VS Code extension uses the bundled Python runtime for local workflow operations and packaging checks.
39
+ ## Product Shape
22
40
 
23
- Install it locally with `pip`:
41
+ `logics-manager` has one core and several integrations:
42
+
43
+ | Layer | Purpose |
44
+ | --- | --- |
45
+ | CLI runtime | Canonical workflow engine for creating, promoting, auditing, repairing, and closing Logics docs. |
46
+ | VS Code extension | Human-facing cockpit for navigating and managing the Markdown corpus. |
47
+ | MCP server | Assistant-facing adapter that exposes bounded Logics tools without giving agents a shell. |
48
+ | npm / Python packaging | Installation paths for the same CLI/runtime. |
49
+
50
+ The CLI owns the behavior. The extension and MCP server call into it instead of reimplementing workflow logic.
51
+
52
+ ## Quick Start
53
+
54
+ Install the CLI from this repository:
24
55
 
25
56
  ```bash
26
57
  python3.11 -m pip install .
27
58
  logics-manager --help
28
59
  ```
29
60
 
30
- The repository also exposes a `logics-manager` npm bin when installed through npm, which delegates to the same Python CLI.
31
-
32
- Install the npm package with:
61
+ Or install the npm package:
33
62
 
34
63
  ```bash
35
64
  npm install -g @grifhinz/logics-manager
65
+ logics-manager --help
36
66
  ```
37
67
 
38
- To update that CLI later, run `logics-manager self-update`.
39
- The command uses `pip` when the Python package is installed and falls back to `npm` for the global npm package.
68
+ Initialize or check a repository:
69
+
70
+ ```bash
71
+ logics-manager bootstrap --check
72
+ ```
40
73
 
41
- For the editor client, build and install the VSIX:
74
+ Create the first workflow document:
42
75
 
43
76
  ```bash
77
+ logics-manager flow new request --title "Improve onboarding"
78
+ ```
79
+
80
+ Validate the workflow corpus:
81
+
82
+ ```bash
83
+ logics-manager lint --require-status
84
+ logics-manager audit
85
+ ```
86
+
87
+ ## Core CLI
88
+
89
+ The CLI is the stable contract for Logics. It supports:
90
+
91
+ - bootstrapping the `logics/` tree;
92
+ - creating requests, backlog items, tasks, product briefs, and ADRs;
93
+ - promoting request -> backlog and backlog -> task;
94
+ - splitting large requests or backlog items;
95
+ - closing tasks, backlog items, and requests with consistency checks;
96
+ - linting and auditing workflow traceability;
97
+ - exporting indexes, context packs, and graph data;
98
+ - serving the bounded MCP tool surface.
99
+
100
+ Useful commands:
101
+
102
+ ```bash
103
+ logics-manager flow list
104
+ logics-manager flow promote request-to-backlog logics/request/req_001_example.md
105
+ logics-manager flow promote backlog-to-task logics/backlog/item_001_example.md
106
+ logics-manager flow finish task logics/tasks/task_001_example.md
107
+ logics-manager sync context-pack req_001_example --format json
108
+ ```
109
+
110
+ To update the installed CLI later:
111
+
112
+ ```bash
113
+ logics-manager self-update
114
+ ```
115
+
116
+ ## VS Code Extension
117
+
118
+ The VS Code extension is the human cockpit around the same runtime. It helps you:
119
+
120
+ - browse workflow docs as a board or list;
121
+ - preview Logics Markdown with clickable references and Mermaid rendering;
122
+ - create and promote workflow items without leaving the editor;
123
+ - inspect recent activity, status, theme, confidence, stale work, and backlog coverage;
124
+ - run validation-oriented actions from the UI.
125
+
126
+ Install from the Marketplace:
127
+
128
+ https://marketplace.visualstudio.com/items?itemName=cdx-logics.cdx-logics-vscode
129
+
130
+ For local development or manual VSIX testing:
131
+
132
+ ```bash
133
+ npm install
44
134
  npm run package
45
135
  npm run install:vsix
46
136
  ```
47
137
 
48
- The bundled runtime is the normal path. Transitional repair flows remain available for older repositories when needed, but they are not part of normal setup.
138
+ ## MCP For Assistants
139
+
140
+ The MCP server is an assistant-facing adapter over the CLI. It is useful when a chat assistant should work with Logics documents without getting arbitrary filesystem or shell access.
141
+
142
+ The MCP surface can:
143
+
144
+ - create and promote workflow docs;
145
+ - read, list, search, and build context packs from approved Logics docs;
146
+ - update controlled indicators and append bounded notes;
147
+ - finish or close workflow docs through canonical commands;
148
+ - run lint, audit, deterministic repairs, split operations, and Logics-scoped diffs.
149
+
150
+ Inspect the exposed tools:
151
+
152
+ ```bash
153
+ python3 -m logics_manager mcp tools
154
+ ```
155
+
156
+ Run the local stdio server:
157
+
158
+ ```bash
159
+ python3 -m logics_manager mcp serve --repo-root .
160
+ ```
161
+
162
+ Run the local HTTP server for an HTTPS tunnel:
163
+
164
+ ```bash
165
+ LOGICS_MCP_BEARER_TOKEN="$(openssl rand -hex 32)" python3 -m logics_manager mcp serve-http --repo-root . --host 127.0.0.1 --port 8765
166
+ ```
167
+
168
+ `POST /mcp` accepts `Authorization: Bearer <token>` when `LOGICS_MCP_BEARER_TOKEN` or `--bearer-token` is set. Keep `/health` unauthenticated for smoke checks, but do not expose `/mcp` publicly without a bearer token.
169
+
170
+ Generate a local connector plan:
171
+
172
+ ```bash
173
+ python3 -m logics_manager mcp connect --repo-root . --port 8765
174
+ ```
175
+
176
+ With an HTTPS tunnel URL:
177
+
178
+ ```bash
179
+ python3 -m logics_manager mcp connect --repo-root . --public-url https://example-tunnel.example --check
180
+ ```
49
181
 
50
- ## Features
182
+ The connector plan prints the bearer token, server command, tunnel target, assistant connector URL, auth header, smoke checks, and cleanup steps.
51
183
 
52
- - Turn `logics/*` Markdown into a delivery cockpit inside VS Code.
53
- - Keep requests, backlog items, tasks, and specs connected in one workspace.
54
- - Preview Logics docs with clickable references, Mermaid rendering, and cleaner read views.
55
- - Move from triage to execution with board, list, search, and recent-activity views that stay aligned.
56
- - See richer card metadata and hover previews, including Theme, while the compact-list toggle stays hidden when forced.
57
- - Explore Logics Insights with day/week timelines plus WIP, Blocked, Stale, Status, Theme, Understanding, Confidence, and backlog-coverage sections.
58
- - Keep the extension on a tighter quality bar with ESLint, stronger coverage checks, and CI validation.
59
- - Create, promote, bootstrap, and review workflow items without leaving the editor.
60
- - Reuse shared project context for faster AI handoffs and lower-token sessions.
61
- - Prepare releases and keep workflow docs synchronized from the same toolchain.
184
+ ## Assistant Model
62
185
 
63
- For more detailed workflow behavior, see the sections below on requirements, runtime compatibility, commands, and tools.
186
+ The project is local-first:
64
187
 
65
- ## Why This Matters For AI Projects
188
+ - each operator runs the CLI and MCP server against their own repository;
189
+ - remote chat assistants connect through a short-lived HTTPS tunnel when needed;
190
+ - coding agents consume prepared tasks and run validations in the repo;
191
+ - shared GPTs or assistant configs can carry instructions, but each user keeps their own local connector URL and token.
66
192
 
67
- - AI sessions become cheaper because the project memory already exists in the repo instead of living only in previous chats.
68
- - Requests, backlog items, tasks, specs, and links become reusable context blocks that survive model changes, thread resets, and handoffs between assistants.
69
- - The plugin makes that memory operational: you can inspect it, navigate it, and inject a smaller assistant handoff directly from the active item.
70
- - That usually means lower token consumption, less context-window waste, and fewer regressions caused by missing earlier decisions.
71
- - Because the memory is plain Markdown in git, it stays reviewable by humans, diffable in pull requests, and portable across tools.
193
+ This avoids a hosted multi-tenant Logics service while still allowing ChatGPT, Claude, Codex, or another MCP-capable assistant to work against the same workflow contract.
72
194
 
73
195
  ## Onboarding Prompts
74
196
 
@@ -162,13 +284,15 @@ Windows notes:
162
284
  - Promote backlog -> task and confirm task document is generated.
163
285
  - Refresh board/details and confirm data remains consistent.
164
286
 
165
- ## Installation
287
+ ## VS Code Extension Installation
166
288
 
167
- ### Install from Marketplace
289
+ This section is only for installing the VS Code extension. For the core CLI, use the `Quick Start` section above.
290
+
291
+ ### Marketplace
168
292
 
169
293
  https://marketplace.visualstudio.com/items?itemName=cdx-logics.cdx-logics-vscode
170
294
 
171
- ### Install from VSIX (recommended for users)
295
+ ### VSIX
172
296
 
173
297
  ```bash
174
298
  code --install-extension logics-manager-<version>.vsix --force
@@ -178,7 +302,7 @@ If you don't have the `code` CLI on PATH:
178
302
  - Windows: either use the VS Code installer option that adds `code` to PATH, or install the `.vsix` from the VS Code UI via **Extensions -> ... -> Install from VSIX...**.
179
303
  - macOS/Linux: you can enable it from **Command Palette -> Shell Command: Install 'code' command in PATH**.
180
304
 
181
- ### Install from source (dev)
305
+ ### Extension Development From Source
182
306
 
183
307
  ```bash
184
308
  npm install
@@ -223,22 +347,10 @@ This creates `logics-manager-<version>.vsix` in the repo root.
223
347
  npm run install:vsix
224
348
  ```
225
349
 
226
- 6. Distribute the `.vsix` and use the curated file in `changelogs/` for the GitHub release body when publishing.
227
-
228
- For `2.0.0` and later, the curated changelog should summarize both user-visible changes and contract-level migrations such as runtime-surface consolidation, release workflow updates, or assistant-facing API removals.
350
+ 6. Distribute the `.vsix` and use the matching release notes when publishing.
229
351
 
230
352
  If the current plugin version is already published, `logics-manager assist next-step` can now propose the next release step instead of stalling on an already-live tag.
231
353
 
232
- ## Curated Changelogs
233
-
234
- Versioned release notes for the main extension live in [`changelogs/`](changelogs).
235
-
236
- Contract:
237
- - filename pattern: `CHANGELOGS_X_Y_Z.md`
238
- - version source of truth: root `package.json`
239
- - helper: `npm run release:changelog:resolve`
240
- - validation: `npm run release:changelog:validate` fails when the curated changelog for the current package version is missing
241
-
242
354
  ## Commands
243
355
 
244
356
  - `Logics: Refresh`
@@ -256,94 +368,6 @@ Contract:
256
368
  - `Logics: Build Validation Checklist`
257
369
  - `Logics: Review Doc Consistency`
258
370
 
259
- ## Tools Menu
260
-
261
- - The Tools menu is split into `Workflow` and `System` views, with a `Recommended` section surfaced first for common day-to-day actions.
262
- - `Select Agent` picks the active Logics agent and prepares assistant chat context.
263
- - `Getting Started` opens the onboarding guide inside the extension.
264
- - `Companion Doc` creates a linked product brief or ADR from the current workflow context when the runtime supports it.
265
- - `New Request` opens a guided request-drafting flow using the request-authoring agent.
266
- - `Bootstrap Logics` installs the Logics runtime into a project that is not initialized yet.
267
- - `Update Logics Runtime` runs the bundled-runtime repair/update flow when Git state is safe for automation.
268
- - `Publish Global Codex Runtime` publishes or repairs the shared global Logics runtime in `~/.codex` from the current bundled source when needed.
269
- - `Environment` opens the same diagnostics as `Logics: Check Environment`: repository state, Python availability, Git availability, global Codex runtime health, and whether read-only, workflow, bootstrap, or terminal-Codex handoff actions are currently available.
270
- - `Environment` can also surface direct remediation actions when the plugin detects a stale runtime, an incomplete bootstrap, a missing global publication, or missing environment placeholders.
271
- - `Environment` now uses a clearer hierarchy with summary, recommended actions, current status, and technical details, plus hybrid assist runtime state, backend availability, degraded reasons, Claude-bridge presence, and the shared Windows-safe runtime entrypoint.
272
- - `Check Environment` can be promoted into `Recommended` when the current repo state actually warrants operator attention.
273
- - repo-local refresh now watches `logics/**/*`, `logics.yaml`, and `.git/HEAD`; external global runtime state still requires an explicit refresh because it lives outside the workspace.
274
- - `Launch Codex` starts Codex using the globally published Logics runtime when the shared runtime is healthy.
275
- - `AI Runtime Status` probes the shared `logics.py flow assist runtime-status` surface and reports ready providers, flagged providers, cooldown or credential issues, and bounded backend provenance.
276
- - `AI Provider Insights` opens a dedicated plugin panel backed by `logics.py flow assist roi-report`, with provider mix, execution-path breakdowns, derived rates, estimated ROI proxies, and recent audit drill-down over the shared runtime output.
277
- - `Logics Insights` opens a repository-level corpus stats panel with stage counts, progress buckets, relationship hot spots, large docs, and recent updates.
278
- - `Commit All Changes` asks the shared hybrid runtime for a bounded commit plan and can execute it after explicit confirmation.
279
- - `Suggest Next Step` asks the shared hybrid runtime for the next bounded workflow action on a selected request, backlog item, or task.
280
- - `Triage Item` classifies a selected request, backlog item, or task through the shared hybrid runtime and keeps backend provenance visible in the completion notification.
281
- - `Assess Diff Risk` runs the shared `diff-risk` flow directly from the plugin so the current change surface can stay local-first when policy allows it.
282
- - `Validation Summary` runs the shared hybrid runtime summary flow and returns a compact validation state without reimplementing runtime logic in the extension.
283
- - `Validation Checklist` asks the shared runtime for a bounded validation checklist derived from the current diff surface.
284
- - `Doc Consistency` runs the shared runtime review flow for workflow-doc consistency without moving validation semantics into the extension.
285
- - `Prepare Release` checks release readiness and can run the bounded prep step that generates a missing changelog, refreshes the README version badge, syncs local version artifacts, and commits the release-prep changes.
286
- - When the current version is already published, `Prepare Release` can now propose the next patch version instead of leaving the operator with a no-op.
287
- - `Publish Release` checks readiness, can publish through the shared runtime flow, stays disabled with an explicit reason outside GitHub-compatible repositories, and warns when a local `release` branch exists but is behind the current branch.
288
- - On load, the extension can proactively publish or upgrade the global Codex runtime from a compatible repository without requiring an explicit migration action in the normal path.
289
- - Codex launch shown by the plugin now uses the standard `codex` command because the runtime no longer depends on a per-repo overlay launcher.
290
- - After successful bootstrap, the extension can propose a git commit with a generated message.
291
- - Bootstrap completion messaging now distinguishes repo-local runtime readiness from global Codex runtime readiness.
292
- - `Change Project Root` / `Reset Project Root` control which repository root the extension operates on.
293
- - `Refresh` is available from the Tools menu to keep the main toolbar focused on view/navigation controls.
294
- - `Fix Logics` runs Logics doc-fix flows when available.
295
- - `About` opens the project repository information.
296
-
297
- The plugin remains a thin client over the shared runtime:
298
- - shared hybrid actions call `python -m logics_manager flow assist ...`;
299
- - hybrid ROI aggregation and semantics also stay in the runtime through `python -m logics_manager flow assist roi-report --format json`;
300
- - the shared runtime now distinguishes deterministic helpers such as `changed-surface-summary`, `release-changelog-status`, `test-impact-summary`, and `hybrid-insights-explainer` from Ollama-first proposal flows such as `windows-compat-risk`, `review-checklist`, and `doc-link-suggestion`;
301
- - backend routing, fallback semantics, payload validation, audit, and degraded-mode policy remain owned by the Logics runtime;
302
- - global Codex runtime actions stay distinct from shared hybrid assist actions so the UI can support Codex, Claude-oriented bridges, and Windows-safe runtime paths without duplicating business logic in TypeScript.
303
-
304
- ## Assistant Handoffs
305
-
306
- The plugin now builds a lighter assistant handoff directly from the selected Logics item.
307
-
308
- - The details panel shows a `Context pack for AI assistants` summary with docs, lines, characters, approximate token cost, and a coarse budget label.
309
- - `summary-only` trims the handoff to the current item, compact summary points, acceptance criteria, and response contract.
310
- - `diff-first` puts relevant changed files first when the repository has recent Git changes tied to the current item.
311
- - Agent-aware filtering can exclude docs that do not belong to the active agent profile.
312
- - Session-hygiene hints warn when switching item, task type, workspace root, or handoff mode makes a fresh assistant session safer.
313
-
314
- These flows are designed to reduce token waste without hiding the underlying Logics docs. The Markdown corpus in `logics/*` remains the source of truth; the plugin only shapes a smaller handoff from it.
315
-
316
- ## Global Codex Runtime Publication
317
-
318
- The primary Codex runtime model is now a globally published Logics runtime under `~/.codex`.
319
- The plugin auto-publishes or upgrades the runtime into the shared Codex home when it detects a compatible bundled source.
320
-
321
- Examples:
322
-
323
- ```bash
324
- codex
325
- cat ~/.codex/logics-global-kit.json
326
- ```
327
-
328
- Runtime contract:
329
-
330
- - Bundled runtime paths are the default.
331
- - the active shared runtime is published into the main Codex home under `~/.codex/skills`.
332
- - the publication manifest `~/.codex/logics-global-kit.json` records installed version, source repo, source revision, publish time, and published runtime state.
333
- - the plugin can auto-upgrade the shared runtime when a newer compatible repo-local source is detected.
334
- - repo-owned workflow documents under `logics/request`, `logics/backlog`, `logics/tasks`, product briefs, and ADRs stay inside the repository and are never globalized.
335
-
336
- Plugin remediation path:
337
-
338
- - if the global runtime is missing or stale, opening a compatible repository can auto-publish it without a separate migration action in the normal path.
339
- - if publication is unavailable or broken, the plugin exposes direct diagnostics and repair actions through `Check Environment`.
340
- - when the global runtime is healthy, the plugin can launch Codex directly and still keeps a clipboard fallback for prompt handoff flows.
341
- - stale legacy overlay artifacts are no longer part of the normal operator path and should be treated as deprecated compatibility state.
342
-
343
- Legacy compatibility:
344
- - `logics_codex_workspace.py` remains available as a legacy overlay manager for transitional troubleshooting or older flows.
345
- - overlays are no longer the primary runtime contract for the plugin or the recommended default operator path.
346
-
347
371
  ## Validation
348
372
 
349
373
  - Compile: `npm run compile`
@@ -415,23 +439,6 @@ For multi-wave delivery work, prefer coherent checkpoints:
415
439
  - leave the repo in a commit-ready state at the end of the wave;
416
440
  - then create the reviewed commit checkpoint instead of batching several undocumented partial states.
417
441
 
418
- ## Webview Browser Debug
419
-
420
- Run the harness server:
421
-
422
- ```bash
423
- npm run debug:webview
424
- ```
425
-
426
- Then open `http://localhost:4173/` and switch scenarios from the in-page debug control.
427
-
428
- In harness mode:
429
- - `Change Project Root` uses browser-native directory selection fallbacks.
430
- - `Edit` and `Read` open selected files in new browser tabs (preferring File System Access API content when available).
431
- - `Read` renders markdown with Mermaid support in the browser preview tab.
432
- - Host-only actions (for example `Promote`, `Fix Logics`) show explicit guidance instead of silent no-op.
433
- - Add `?debug-ui=1` to the harness URL to enable verbose UI state transition logs in browser console.
434
-
435
442
  ## Accessibility Baseline
436
443
 
437
444
  For new UI controls in this project:
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.5
1
+ 2.1.0
@@ -31,6 +31,7 @@ ROOT_COMMANDS = (
31
31
  "lint",
32
32
  "config",
33
33
  "doctor",
34
+ "mcp",
34
35
  "self-update",
35
36
  )
36
37
 
@@ -46,6 +47,7 @@ def _build_root_help() -> str:
46
47
  "",
47
48
  "Top-level options:",
48
49
  " -h, --help Show this help message and exit.",
50
+ " -v, --version Print the installed version.",
49
51
  " --version Print the installed version.",
50
52
  "",
51
53
  "Commands:",
@@ -60,7 +62,7 @@ def _build_root_help() -> str:
60
62
  "",
61
63
  " sync",
62
64
  " Synchronize workflow transitions and exports.",
63
- " Subcommands: close-eligible-requests, refresh-mermaid-signatures, schema-status, context-pack, export-graph",
65
+ " Subcommands: close-eligible-requests, refresh-mermaid-signatures, schema-status, read-doc, list-docs, search-docs, update-indicators, append-note, context-pack, export-graph",
64
66
  "",
65
67
  " assist",
66
68
  " Inspect runtime signals and build context bundles.",
@@ -86,6 +88,10 @@ def _build_root_help() -> str:
86
88
  " Check required workflow directories and schema metadata.",
87
89
  " Options: --format {text,json}",
88
90
  "",
91
+ " mcp",
92
+ " Expose bounded Logics tools for MCP clients.",
93
+ " Subcommands: serve, serve-http, connect, tools, call",
94
+ "",
89
95
  " self-update",
90
96
  " Update the installed Python or npm package.",
91
97
  " Options: --manager {auto,pip,npm}, --package, --python-package, --dry-run",
@@ -127,7 +133,7 @@ def main(argv: list[str] | None = None) -> int:
127
133
  if argv[0] in ("-h", "--help"):
128
134
  _print_help(_build_root_help())
129
135
  return 0
130
- if argv[0] == "--version":
136
+ if argv[0] in {"-v", "--version"}:
131
137
  print(f"logics-manager {get_cli_version()}")
132
138
  return 0
133
139
 
@@ -214,7 +220,7 @@ def main(argv: list[str] | None = None) -> int:
214
220
 
215
221
  return flow_main(rest)
216
222
  if command == "sync":
217
- if rest[:1] not in (["close-eligible-requests"], ["refresh-mermaid-signatures"], ["schema-status"], ["context-pack"], ["export-graph"]) and rest[:1] not in HELP_ARGV:
223
+ if rest[:1] not in (["close-eligible-requests"], ["refresh-mermaid-signatures"], ["schema-status"], ["read-doc"], ["list-docs"], ["search-docs"], ["update-indicators"], ["append-note"], ["context-pack"], ["export-graph"]) and rest[:1] not in HELP_ARGV:
218
224
  raise SystemExit("Unsupported sync subcommand for the native CLI slice.")
219
225
  from .sync import main as sync_main
220
226
 
@@ -223,6 +229,10 @@ def main(argv: list[str] | None = None) -> int:
223
229
  if rest[:1] not in (["runtime-status"], ["diff-risk"], ["commit-plan"], ["changed-surface-summary"], ["doc-consistency"], ["review-checklist"], ["validation-checklist"], ["validation-summary"], ["test-impact-summary"], ["roi-report"], ["next-step"], ["claude-bridges"], ["claude-instructions"], ["request-draft"], ["spec-first-pass"], ["backlog-groom"], ["closure-summary"], ["context"]) and rest[:1] not in HELP_ARGV:
224
230
  raise SystemExit("Unsupported assist subcommand for the native CLI slice.")
225
231
  return assist_main(rest)
232
+ if command == "mcp":
233
+ from .mcp import main as mcp_main
234
+
235
+ return mcp_main(rest)
226
236
  if command == "audit":
227
237
  audit_parser = build_audit_parser()
228
238
  parsed, _unknown = audit_parser.parse_known_args(rest)
@@ -1868,18 +1868,18 @@ def _record_finished_task_follow_up(repo_root: Path, task_path: Path, dry_run: b
1868
1868
  _append_section_bullets(
1869
1869
  item_path,
1870
1870
  "Notes",
1871
- [f"- Task `{task_ref}` was finished via `logics-manager flow finish task` on {date.today().isoformat()}."],
1871
+ [f"Task `{task_ref}` was finished via `logics-manager flow finish task` on {date.today().isoformat()}."],
1872
1872
  dry_run,
1873
1873
  )
1874
1874
 
1875
1875
  validation_bullets = [
1876
- f"- Finish workflow executed on {date.today().isoformat()}.",
1877
- "- Linked backlog/request close verification passed.",
1876
+ f"Finish workflow executed on {date.today().isoformat()}.",
1877
+ "Linked backlog/request close verification passed.",
1878
1878
  ]
1879
1879
  report_bullets = [
1880
- f"- Finished on {date.today().isoformat()}.",
1881
- f"- Linked backlog item(s): {', '.join(f'`{ref}`' for ref in item_refs) if item_refs else '(none)'}",
1882
- f"- Related request(s): {', '.join(f'`{ref}`' for ref in sorted(request_refs)) if request_refs else '(none)'}",
1880
+ f"Finished on {date.today().isoformat()}.",
1881
+ f"Linked backlog item(s): {', '.join(f'`{ref}`' for ref in item_refs) if item_refs else '(none)'}",
1882
+ f"Related request(s): {', '.join(f'`{ref}`' for ref in sorted(request_refs)) if request_refs else '(none)'}",
1883
1883
  ]
1884
1884
  _append_section_bullets(task_path, "Validation", validation_bullets, dry_run)
1885
1885
  _append_section_bullets(task_path, "Report", report_bullets, dry_run)
@@ -1951,7 +1951,10 @@ def cmd_finish_task(args: argparse.Namespace) -> dict[str, object]:
1951
1951
 
1952
1952
  if args.dry_run:
1953
1953
  payload = {"command": "finish", "kind": "task", "source": source_path.relative_to(repo_root).as_posix(), "dry_run": True}
1954
- print("Dry run: skipped post-close verification.")
1954
+ if args.format == "json":
1955
+ print(json.dumps(payload, indent=2, sort_keys=True))
1956
+ else:
1957
+ print("Dry run: skipped post-close verification.")
1955
1958
  return payload
1956
1959
 
1957
1960
  issues = _verify_finished_task_chain(repo_root, source_path)