Skip to main content

日本語

Public demo reproduction

We reproduced a public ARC demo that checks, before any run, whether an agent's output file is inside its permitted write scope

We checked whether a CrewAI spike of Netsujo's published agent role contracts (ARC) passes, fails as intended, then passes again when the permitted write scope declaration stays unchanged and only the task output file (output_file) moves inside the scope, outside it, and back inside. On 2026-11-03 we reproduced the demo at fixed commit 97a009bd in a freshly fetched copy. The test output reported 9 passed and 0 failed; the command exit code was not recorded. We have not confirmed a real CrewAI run or use in actual work.

Published:
2026-11-03
Time spent:
Unknown: Time was not recorded during the work and there is no basis to estimate it afterwards.
Cost:
Unknown: Cost was not recorded and there is no basis to estimate it afterwards.

What this check examines

Each role's permitted write scope and each task's output file (output_file) are written in separate settings. We checked whether this spike can find a mismatch between them before a run, by reading only the declarations in the config files. This is a reproduction of a public demo, not a check that started from a particular user's difficulty.

The design we checked

What we confirmed about the design is that it never starts CrewAI: it reads only the declarations in the config files and returns a mismatch with a reason code, so it can be tried without installing or launching an execution platform. We have not confirmed what was weighed when this design was chosen.

What we tried

We ran the demo at the public ARC commit 97a009bd (node examples/crewai-adapter-spike/demo.mjs). The permitted write scope declaration stayed unchanged; only the task output file (output_file) moved from a file inside the scope, to a file outside it, and back to the original file inside it. (1) Passed inside the scope, (2) failed with TASK_WRITE_SCOPE_OUTSIDE_AUTHORITY outside it, (3) passed again once restored. The exact file names used as input are in the README and the demo at the fixed commit.

The intended counter-example and what we restored

The failure in (2) is an intended counter-example: the output file was outside the permitted scope, so the check stopped it. We did not change the permitted scope declaration; only the output file went inside the scope, outside it, and back. It passed once restored. We did not look for failures this check would miss.

What was confirmed, and limits

What was confirmed is only that the declared permitted scope and the output file agree. On 2026-11-03 we reproduced the same fixed commit in a freshly fetched copy: the demo ran pass, intended failure, pass, and the test output reported 9 passed and 0 failed (Node v24.22.1). The test command exit code was not recorded. We have not confirmed that this holds for other versions, other configurations, a real CrewAI run, or different working conditions. CrewAI was not started and no tool was invoked or output file written, so whether a write outside the scope is stopped at runtime is not known.

What is unconfirmed in real use

This check covers setups that declare per-role write scopes and per-task output files separately. It does not cover setups with no write-scope declaration, or cases that need writes stopped while the agent runs. We have not confirmed how people who actually use such a setup experience it, how often it is used, or whether it led to any improvement.

What we want to check next

What we want to check next is whether declarations and behavior agree in a real CrewAI run. We have not tried it.

Who said what

Reported by the source

  • The demo output at the fixed ARC commit states that CrewAI is not started and that no tool is called and no output file is written.

Our observation

  • The demo at commit 97a009bd passed, then failed as intended with the output file moved out of scope, then passed with it restored. The permitted write scope declaration was not changed. The test output reported 9 passed and 0 failed (2026-11-03, freshly fetched copy, Node v24.22.1). The test command exit code was not recorded.

Inference

  • Contradictions between declarations can probably be found mechanically before a run, but only within what the declarations state.

Proposal

  • Where runtime enforcement is needed, it must be verified by a separate mechanism. This is a proposal, not something we have done.

Our interest

  • ARC is developed and published by Netsujo, so this record describes our own work.

AI involvement

  • AI agents took part in building the spike, recording it and reproducing it. How far a person checked each step is not confirmed in this record.

Limits

  • This is a declaration consistency check, not a runtime safety control.
  • Time spent and cost were not recorded and are unknown.
  • Reproduced in a freshly fetched copy for one demo and one configuration at the fixed commit. Generalization to other versions, other configurations, a real CrewAI run or different working conditions, and any user experience, frequency or improvement, is unconfirmed.
  • The test output reported 9 passed and 0 failed, but the command exit code was not recorded.

Public source and reproduction

The steps and example inputs are in the README, the demo and the targeted tests at the fixed commit below.

  1. ARC fixed commit 97a009bd (public repository; README: examples/crewai-adapter-spike/README.md, demo: examples/crewai-adapter-spike/demo.mjs, targeted tests: tests/crewai-adapter.test.mjs)

    Reproduced: 2026-11-03 ・ By: Netsujo AI worker (freshly fetched copy of the public repository)

  2. ARC PR #51 (public repository; the pull request that contains the commit above)