diff --git a/apps/llm-mcp-reference/README.md b/apps/llm-mcp-reference/README.md index 83b7ef0..5ca979e 100644 --- a/apps/llm-mcp-reference/README.md +++ b/apps/llm-mcp-reference/README.md @@ -2,6 +2,8 @@ Secondary App-References tier: **LLM product façades** that call Traverse **workflows/capabilities** through MCP instead of encoding business logic in prompt “skills”. +Shared prompts/workflows follow Specs 001/002 presentation vocabulary (`idle|loading|loaded|blocked|ended|error`) and still forbid inventing business fields — see [`shared/prompts/system-boundary.md`](shared/prompts/system-boundary.md). + Plan: [`docs/llm-reference-apps-plan.md`](../../docs/llm-reference-apps-plan.md) ## Layout diff --git a/apps/llm-mcp-reference/shared/prompts/system-boundary.md b/apps/llm-mcp-reference/shared/prompts/system-boundary.md index 6c70641..a9c647a 100644 --- a/apps/llm-mcp-reference/shared/prompts/system-boundary.md +++ b/apps/llm-mcp-reference/shared/prompts/system-boundary.md @@ -6,9 +6,11 @@ You are a **façade** over the Traverse runtime. You do **not** invent business 1. Use MCP / Traverse tools to **discover, validate, and execute** capabilities or workflows. 2. When presenting results, only report fields returned by the runtime (for example title, tags, noteType, suggestedNextAction, status, action items). If a field is missing, say it is missing — **do not invent it**. -3. Do not re-implement starter / doc-approval / meeting-notes pipelines in natural language “skills”. -4. If the tool fails or the runtime is offline, report the tool error. Do not fabricate a successful structured result. -5. Prefer deterministic tool execution over long chain-of-thought process control. +3. When describing session progress, use Spec 001 presentation states from runtime evidence only: `idle | loading | loaded | blocked | ended | error`. Do not invent a success/`loaded` state without a completed tool/runtime result. +4. For multi-capability runs (Spec 002), report invoke/result order from tool/runtime evidence — never from local step timers or guessed stages. +5. Do not re-implement starter / doc-approval / meeting-notes pipelines in natural language “skills”. +6. If the tool fails or the runtime is offline, report the tool error. Do not fabricate a successful structured result. +7. Prefer deterministic tool execution over long chain-of-thought process control. ## Why diff --git a/apps/llm-mcp-reference/shared/workflows/meeting-notes.md b/apps/llm-mcp-reference/shared/workflows/meeting-notes.md index f8d9f67..7ff13b1 100644 --- a/apps/llm-mcp-reference/shared/workflows/meeting-notes.md +++ b/apps/llm-mcp-reference/shared/workflows/meeting-notes.md @@ -15,6 +15,8 @@ OS twins: [`apps/meeting-notes/`](../../../meeting-notes/) (Web / iOS / macOS / Discover this entrypoint through `traverse-mcp` — do **not** hard-code private crate paths. Prefer the **governed workflow/entrypoint** the server lists for `meeting-notes.process`. +Presentation chrome (Specs 001/002): keep the session at `loading` while tools run; move to `loaded` only when runtime output fields are present; use `error` on tool/runtime failure. If the workflow exposes multiple capabilities, narrate invoke/result order from evidence only. + ## Prerequisites (Mode A) 1. Traverse checkout with working `traverse-mcp` (see [MCP stdio server](https://github.com/traverse-framework/Traverse/blob/main/docs/mcp-stdio-server.md)). diff --git a/apps/llm-mcp-reference/shared/workflows/traverse-starter.md b/apps/llm-mcp-reference/shared/workflows/traverse-starter.md index 62a4a4d..4151136 100644 --- a/apps/llm-mcp-reference/shared/workflows/traverse-starter.md +++ b/apps/llm-mcp-reference/shared/workflows/traverse-starter.md @@ -8,14 +8,14 @@ Use the Traverse MCP server’s discovery/description tools to locate the starte ## Happy path -1. Confirm MCP server is reachable (`describe_server` / discovery). -2. Execute with a note string input (example: `"Ship the MCP façade docs tomorrow"`). -3. Render **only** runtime fields from the execution report (e.g. title, tags, noteType, suggestedNextAction, status / validation issues / summary when present). +1. Confirm MCP server is reachable (`describe_server` / discovery) — presentation `idle` until submit. +2. Execute with a note string input (example: `"Ship the MCP façade docs tomorrow"`) — while tools run, presentation is `loading` (or `blocked` only if the runtime reports a waiting-for-human condition). +3. Render **only** runtime fields from the execution report (e.g. title, tags, noteType, suggestedNextAction, status / validation issues / summary when present) — presentation `loaded` when renderable output is present, else `ended` if the runtime completed without product fields. ## Success looks like -Same as Web starter: structured fields filled by the runtime, not by the model. +Same as Web starter: structured fields filled by the runtime, not by the model. Session chrome matches Spec 001 (`idle|loading|loaded|blocked|ended|error`). ## Failure -If execution fails, show the tool error. Do not invent a title/tags payload. +If execution fails, show the tool error and presentation `error`. Do not invent a title/tags payload.