Skip to content

feat(mqlaunch): mqobsidian read-only consumer (FAS 7b, PR1–3)#15

Merged
MCamner merged 3 commits into
mainfrom
feat/mqobsidian-consumer-pr1
Jun 23, 2026
Merged

feat(mqlaunch): mqobsidian read-only consumer (FAS 7b, PR1–3)#15
MCamner merged 3 commits into
mainfrom
feat/mqobsidian-consumer-pr1

Conversation

@MCamner

@MCamner MCamner commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Summary

Makes mqlaunch a read-only consumer of the mqobsidian vault: resolve the vault, read a small manifest of supported views, open the right file/folder. mqlaunch owns no context — mqobsidian does. No writes, no scoring, no pattern/feedback logic.

Built as three stacked commits on one branch:

PR Commit Content
PR1 b4b511f consumer lib (resolve / manifest / open / doctor / errors) + 4 commands + grounded views.json (8 real views)
PR2 4cfa9d1 mqobsidian-open-repo-context.sh + wired the existing mq-obsidian-menu.sh to the lib's shared opener (no parallel menu created)
PR3 9cc5bdc manifest-driven menu reconciliation — no hardcoded view paths left; new "Open any view (manifest)" picker (entry 14) exposing decisions/execution/repo hot files

Design / guarantees

  • Read-only. Opens via "${MQOBS_OPENER:-open}"; never writes to the vault.
  • Single source of views: mqlaunch/config/mqobsidian/views.json (10 entries). Paths resolve from the manifest, not hardcoded in logic — change the manifest, not the code.
  • Resolution: MQ_OBSIDIAN_DIR primary, single v1 fallback $HOME/mqobsidian (warns when used). Root validated by presence of systems/ + memory/.
  • Clear failure modes: unset dir → warn+fallback (error+exit 1 if missing); bad root → structure error; unknown key → "not defined in views.json"; missing target → "Target path from manifest does not exist".
  • Doctor: mqobsidian-doctor.sh health-checks the whole chain, opens nothing, non-zero on any problem.

Verification

Non-interactive: bash -n clean on all scripts · manifest valid (10 keys) · doctor resolves every entry · menu options 3/4 open correct files via manifest · picker works by number (2→roadmaps) and key (decisions). Not yet eyeballed: final panel rendering in a real TTY (mqlaunch → 9) — recommend a quick visual check before merge.

Ops page: mqlaunch/docs/mqobsidian-consumer.md.

🤖 Generated with Claude Code

MCamner and others added 3 commits June 23, 2026 18:36
…pen, doctor (PR1)

Thin read-only consumer of the mqobsidian vault for mqlaunch: a single
resolver (MQ_OBSIDIAN_DIR + one fallback), a manifest of supported views
(config/mqobsidian/views.json, 8 grounded entries), manifest-driven open,
and a health-check doctor. All paths flow through resolver + manifest — no
hardcoding. Read-only verified; MQOBS_OPENER hook makes it dry-runnable.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… consumer lib (PR2)

Adds mqobsidian-open-repo-context.sh (repo-key -> manifest view), and routes
the existing terminal/menus/mq-obsidian-menu.sh opener through the consumer
lib's single open_mqobsidian_path so the menu and commands share one opener
(graceful fallback if the lib is absent). No parallel menu was created — the
existing menu already covered the spec's wiring. Behavior-preserving.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Removes hardcoded view paths from mq-obsidian-menu.sh: the "Open roadmap" and
"Open context docs" actions now resolve through views.json (new roadmap-doc /
context-budget entries), each with a repo-relative fallback if the lib is
absent. Adds menu entry 14 "Open any view (manifest)" — a picker over every
manifest view (number or key), exposing decisions/execution/repo hot files the
panel did not list. Verified non-interactively; final panel render to be
eyeballed in a TTY.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@MCamner MCamner merged commit cff7e95 into main Jun 23, 2026
1 check passed
@MCamner MCamner deleted the feat/mqobsidian-consumer-pr1 branch June 23, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant