# Evidence Topic: SuperAgent Manual XML Run Bypassed MCP

## Metadata

- Date: 2026-07-29
- Status: Historical evidence; production requirement superseded by ADR-002
- Scope: Manual SuperAgent XML test versus the accepted Web → OSS → Agent → MCP → PostgreSQL flow
- Confidence: Fact for the exported run; strong inference for the published-Prompt mismatch
- Source: User-exported `XML File Analysis (2).md`
- Last verified: 2026-07-29 19:53 +08:00
- Stale trigger: None; retain as historical evidence and interpret through ADR-002

## Question

Did the exported SuperAgent run exercise the accepted ARR database-ingestion path?

## Requirement Correction

The user confirmed that this Agent is dedicated to a fixed business-system entrypoint whose PROGRAM_INPUT is
already constrained in code. Direct SuperAgent chat uploads are outside the production contract. Therefore these
logs remain factual execution evidence but do not justify input-validation gates in Main Prompt. ADR-002 is the
current authority.

## Evidence

- The 249-line export covers a manual XML conversation from 19:13:23 to 19:14:37.
- The deterministic daily processor succeeded for business date `2026-07-21`; it reported 135 source records and 119 retained output rows.
- Tool-name counts in the complete export were: `read_file=10`, `present_files=1`, `fetch_oss_file=0`, and `arr_submit_processing_result=0`.
- The export contains no `PROGRAM_INPUT`, `submission_grant`, `job_id`/attempt submission identity, MCP receipt, or `enterprise_mcp_transport_unavailable` event.
- The Agent accepted a chat-uploaded XML, processed a local upload path, and presented generated files. The accepted Main Prompt explicitly rejects chat uploads and forbids `present_files` on the direct-ingestion path.
- The Agent's own reasoning says a “main agent prompt file” at a local user path was inaccessible. This is consistent with a Profile containing a file-path reference or an old prompt rather than the full contents of `prompts/arr_opera_daily_main_agent_prompt.md`.
- A second 95-line export from 19:46 shows the compact Prompt recognized that direct `0722.XML` upload lacked PROGRAM_INPUT. It did not call the Skill, `fetch_oss_file`, `arr_submit_processing_result`, or `present_files`.
- That run still called `read_file` once for 20.44 seconds and `ask_clarification` once before stopping, and it invented the field name `fetch_strategy` instead of `attachment_fetch_policy`.
- A third 376-line export from 20:22 processed the chat path `/mnt/user-data/uploads/0721.XML` directly with shell tools and then called `present_files`. It contained zero `fetch_oss_file` calls, zero `arr_submit_processing_result` calls, no submission grant and no committed receipt. The Skill succeeded, but no OSS/MCP/database path ran.
- The third run's reasoning still describes the superseded “validate PROGRAM_INPUT” Prompt and its `present_files` behavior violates the final controlled Prompt. That session therefore does not prove the latest Profile text was saved/published and selected.
- The intermediate 3,095-character defensive Prompt was superseded after the user's boundary clarification. The final source is a 1,321-character controlled orchestrator with no duplicated input gates; a regression test caps it below 1,800 characters and preserves one fetch/Skill/MCP plus receipt boundaries. All 12 targeted tests pass. This source change is not evidence that SuperAgent has published it.

## Finding

The Skill and its deterministic processor worked, but this run did not fetch the source from ARR-controlled OSS, did not receive an attempt-bound submission grant, did not call ARR MCP, and did not write or prove any database facts. It is a processor-only manual test, not an end-to-end ARR test.

The runs do not prove production Profile correctness because they bypassed the supported entrypoint. A valid E2E
must begin with ARR-generated PROGRAM_INPUT and then show `fetch_oss_file`, the Skill, the MCP submission and a
committed database result.

## Impact

- Do not use manual SuperAgent chat uploads as production acceptance tests.
- Paste and publish the final controlled-orchestration Prompt with the MCP tool loaded.
- Test through ARR Web so the backend supplies the validated PROGRAM_INPUT and grant.
- Accept only `committed`/`already_committed` plus matching PostgreSQL facts.
