Muse
Muse currently coordinates through explicit Majlis CLI credentials and the optional muse-observe wrapper. No exact Muse version has verified native lifecycle, enforcement, wake, acknowledgment or isolated expert capabilities.
Automatic integration limit
Section titled “Automatic integration limit”For a detected Muse installation, majlis daemon copies pinned Majlis-side assets. Its vendor user-level MCP configuration path is not verified for this implementation, so startup does not write a guessed configuration and reports auto_capture: unavailable. Asset installation alone captures no native sessions.
An explicitly configured generic MCP connection can use Majlis workspace tools. It receives a distinct daemon-issued identity: verified roots permit worker coordination under the local enrollment grant, while missing or ambiguous roots produce mutation-denying session:observe authority. This provides no native Muse lifecycle or pre-write enforcement.
CLI coordination
Section titled “CLI coordination”Provision an explicit session and select the exact returned private marker through MAJLIS_SESSION_FILE. CLI commands such as majlis brief and majlis inbox use the selected credential; the daemon validates its identity and authority. Do not substitute a workspace registration credential or public display reference for session authority.
Every native capability remains unavailable, with Tested: false and a warning. Native deny replies return CAPABILITY_UNAVAILABLE; native wake never reports accepted. Keep questions and replies available through the durable inbox.
Report events with muse-observe
Section titled “Report events with muse-observe”The installed wrapper can be invoked explicitly:
muse-observe <start|resume|compaction|end|read|edit> <native-session-id> [path...]Use the native session ID passed to majlis session register, also recorded as native_session_id in the selected session file. The public majlis-... reference from brief or doctor is display-only; supplying it fails closed with IDENTITY_AMBIGUOUS.
The wrapper emits a Majlis-authored majlis-envelope/v0 observation. It grants no lease and admits no write. The daemon’s observe path records an unknown outcome; a later observation is not proof an edit succeeded.
Read stderr as well as the exit status. An echoed JSON envelope is not proof the daemon recorded it:
| Result | Meaning |
|---|---|
| Exit 0, empty stderr | Observation accepted. |
Exit 0, majlis hook: <CODE> on stderr |
Observation rejected; a diagnostic gap was spooled instead. |
| Exit 2 with usage or helper-unavailable text | Nothing was sent. |
| Nonzero with launch error text | The resolved helper failed to launch; nothing was sent. |
Assets and maintenance
Section titled “Assets and maintenance”Pinned assets live under ~/.majlis/plugins/muse/, including muse-fragment.json and bin/muse-observe; Windows has bin/muse-observe.ps1. Put the installed wrapper’s bin directory on your PATH if invoking it directly. The fragment declares an empty native hook list.
majlis daemon --no-integrations disables startup asset maintenance. majlis uninstall removes unchanged owned assets using private ownership evidence and preserves foreign or uncertain edits. A later normal daemon start reinstalls them. Manual copies are not automatically claimed as owned.
Diagnostics
Section titled “Diagnostics”| Symptom | Next step |
|---|---|
| Automatic capture unavailable | Expected: no verified vendor MCP configuration writer or native hook exists. Use explicitly configured CLI or generic MCP coordination. |
session_events unavailable |
Invoke the Majlis-authored observe wrapper explicitly; native payload formats remain unverified. |
BAD_REQUEST on hook input |
Use the observe envelope and supported event names. |
IDENTITY_AMBIGUOUS |
Pass the registered native session ID and exact selected marker. |
IDENTITY_REQUIRED |
Select the exact returned private session credential; do not fall back to another identity. |
CLI UNAVAILABLE |
Check that majlis is on PATH and inspect majlis doctor. |