From 1ebbb7427cfa9b35baa139dea311d157efd066cf Mon Sep 17 00:00:00 2001 From: Saurabh Jain Date: Fri, 8 May 2026 15:26:55 +0200 Subject: [PATCH 1/3] docs(skill): tighten list_recent_decisions agent guidance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two prescriptive additions to prevent agent-runtime hallucinations observed in 2026-05-08 Cursor IDE GUI evidence (#1982): 1. "Invoke the tool directly — do not pre-flight-check." The Cursor agent invented an "auth required" error path before the MCP tool ever returned. The MCP server's response is authoritative; agents shouldn't speculate about auth or descriptor-file state before making the call. 2. "Reporting integrity." If the user prompt asks for a SMOKE_RESULT marker, derive it from the actual tool response, never from a guess at the response shape. The Cursor agent in the captured run wrote a SMOKE_RESULT for an upgrade envelope when the tool actually returned decisions, and vice versa — substituting one shape for the other corrupts both UX integrity and any release-prep test harness reading the marker. Signed-off-by: Saurabh Jain --- skills/list-recent-decisions/SKILL.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/skills/list-recent-decisions/SKILL.md b/skills/list-recent-decisions/SKILL.md index 76c9b78..123d639 100644 --- a/skills/list-recent-decisions/SKILL.md +++ b/skills/list-recent-decisions/SKILL.md @@ -5,7 +5,7 @@ description: Surface the user's recent AxonFlow governance decisions — answers Use this skill when the user asks "what just got blocked?", "show me recent denials", "did anything need approval today?", or wants to trace a workflow's decision history. -Call the `list_recent_decisions` MCP tool from the axonflow MCP server. +**Invoke the tool directly — do not pre-flight-check.** Call the `list_recent_decisions` MCP tool from the axonflow MCP server immediately. Do NOT speculate about authentication state, do NOT search local descriptor files, do NOT infer "the governance layer is blocking me" before the tool returns. The MCP server's response is authoritative. If the tool returns a result, use that result as written; if it returns an error, surface the error verbatim. Arguments (all optional): @@ -62,3 +62,5 @@ Present each row as a one-liner: ` on Date: Fri, 8 May 2026 15:28:28 +0200 Subject: [PATCH 2/3] chore(changelog): trim 1.4.0 telemetry entry to compact format [skip-runtime-e2e] Trims the v1.4.0 telemetry section to the project's standard 2-bullet / 5-line compact format at end of release entry. Same wire-shape contract documented; just shorter prose. Sibling to axonflow-openclaw-plugin#120 + axonflow-claude-plugin#74. Signed-off-by: Saurabh Jain --- CHANGELOG.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41d1195..72fdd17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,13 +7,11 @@ ### Added - **V1.1 `list-recent-decisions` skill** (axonflow-enterprise#1982). Drives the new `list_recent_decisions` MCP tool from Codex; Free-tier cap-hits render the V1 upgrade envelope verbatim. Plus `runtime-e2e/list-recent-decisions/` and a 7th over-cap scenario in `tests/e2e/runtime-mcp-tools.sh`. -- **v1 telemetry-schema** (axonflow-enterprise#2008): heartbeat now emits `telemetry_type: "plugin"`, `endpoint_type` (`localhost | private_network | remote | unknown`), and `profile` from `AXONFLOW_PROFILE`. -- `AXONFLOW_PROFILE` env var: drives the new `profile` payload field; reports `unknown` when unset. -- `AXONFLOW_TRY=1` env var: forces `deployment_mode=community_saas` for tenants behind custom hostnames proxying try.getaxonflow.com. -### Changed +### Telemetry -- `deployment_mode` allowlist normalised to `self_hosted | community_saas | unknown` (was `production`/`development`/`community-saas`). Detection now derives from endpoint host + `AXONFLOW_TRY=1`. Analytics queries on the legacy values must update. +- v1 schema (axonflow-enterprise#2008): heartbeat now emits `telemetry_type: "plugin"`, `endpoint_type` (`localhost | private_network | remote | unknown`), and `profile` from `AXONFLOW_PROFILE`; plus `AXONFLOW_TRY=1` to force `deployment_mode=community_saas` for tenants behind custom hostnames. +- `deployment_mode` allowlist normalised to `self_hosted | community_saas | unknown` (was `production`/`development`/`community-saas`). Analytics queries on the legacy values must update. ## [1.3.0] - 2026-05-07 — V1 Plugin Pro upgrade-prompt envelope + 5 new MCP tools surfaced From 12c4132575ca02729db2f30fe14ad3827cf661bd Mon Sep 17 00:00:00 2001 From: Saurabh Jain Date: Fri, 8 May 2026 16:18:58 +0200 Subject: [PATCH 3/3] chore: re-trigger CI after PR title/body update [skip-runtime-e2e] Signed-off-by: Saurabh Jain