Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

add-cursor

skill:nanocoai/nanoclaw#add-cursor

Use Cursor (local Agent SDK) as a full agent provider — planning, tool orchestration, MCP tools, session resume — alongside or instead of Claude. Cursor-account sign-in or API key, held by the credential gateway. Per-group via `ncl groups config update --provider cursor`. Distinct from using Cursor as a cloud agent (those run on Cursor VMs and are not this provider).

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 22:33 UTC at acc2b1c

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

137
findings
critical
highest severity
9
threat classes
1,343
files scanned
6,371/6,393
checks satisfied
0
package advisories

Why this verdict

  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.test.ts:164:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.test.ts:409:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.ts:8:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-codex/payload/container/agent-runner/src/providers/codex.ts:168:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-codex/payload/container/agent-runner/src/providers/codex.ts:172:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-codex/payload/setup/providers/codex.ts:195:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/SKILL.md:14:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/provider-contracts/cursor.ts:15:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-auth.ts:41:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-gateway-probe.ts:95:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.factory.test.ts:287:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.gateway-proxy.test.ts:252:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.ts:531:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.ts:715:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-cursor/payload/setup/providers/cursor.ts:126:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-discord/SKILL.md:111:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-discord/SKILL.md:19:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-imessage/SKILL.md:168:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-imessage/SKILL.md:198:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-imessage/SKILL.md:54:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-slack/SKILL.md:30:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-teams/SKILL.md:135:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-teams/SKILL.md:140:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-teams/SKILL.md:154:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-teams/SKILL.md:33:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-telegram/SKILL.md:23:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-telegram/SKILL.md:25:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:.claude/skills/add-telegram/SKILL.md:28:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/agent-runner/src/provider-contracts/claude.ts:90:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/agent-runner/src/providers/claude-config.ts:94:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/agent-runner/src/providers/claude-history.ts:63:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/agent-runner/src/providers/claude.ts:294:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/install-cli-tools.sh:19:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/install-cli-tools.sh:28:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:container/pull.sh:276:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:docs/upgrade-recovery.md:26:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:docs/upgrade-recovery.md:26:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/init-first-agent.ts:99:HIJACK
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/skill-apply.ts:158:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/skill-apply.ts:161:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/skill-apply.ts:1:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/skill-apply.ts:687:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/skill-apply.ts:693:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:scripts/skill-apply.ts:817:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/auto.ts:1076:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/auto.ts:1442:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/auto.ts:1740:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/auto.ts:726:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/channels/slack-auto.ts:1:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/channels/slack-auto.ts:212:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/container.ts:196:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/container.ts:233:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/container.ts:45:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/index.ts:67:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-claude.sh:32:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-cred-helper.ts:257:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-cred-helper.ts:257:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-cred-helper.ts:8:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-docker.sh:1:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-docker.sh:35:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-docker.sh:37:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-docker.sh:7:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-github.sh:44:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-node.sh:46:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-node.sh:48:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-node.sh:72:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-node.sh:7:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-signal-cli.sh:52:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/install-signal-cli.sh:85:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/captured-token.ts:44:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-assist.ts:180:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-assist.ts:180:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-assist.ts:226:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-assist.ts:518:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-handoff.ts:120:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-handoff.ts:12:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/claude-handoff.ts:204:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/diagnostics.ts:71:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/restart.sh:36:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/restart.sh:58:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/runner.ts:216:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/setup-commit.ts:120:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/setup-commit.ts:91:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/skill-driver.ts:150:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/lib/skill-driver.ts:283:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/peer-cleanup.ts:226:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/peer-cleanup.ts:83:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/portal.ts:55:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/portal.ts:71:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/provider-auth.ts:89:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/providers/install.ts:89:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/providers/install.ts:94:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/register.ts:324:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/register.ts:331:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry-login.ts:1060:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry-login.ts:388:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry-login.ts:505:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry-login.ts:60:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry-login.ts:787:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry.ts:1:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry/credential-helper.mjs:299:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/registry/credential-helper.mjs:2:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/run-suggested.sh:8:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/service.ts:1:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/service.ts:1:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/service.ts:722:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/service.ts:727:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/slack-worker.ts:34:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/slack-worker.ts:83:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/timezone.ts:54:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/uninstall/remove.ts:184:DESTRUCT
  • suspicious: unverified finding skill:.claude/skills/add-cursor:setup/whatsapp-auth-version.ts:18:EXFIL
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/channels/cli.ts:111:MANIP
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/community-portal/slack-job.ts:105:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/community-portal/slack-job.ts:110:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/community-portal/slack-job.ts:168:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/container-runner.ts:1135:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/container-runner.ts:1634:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/container-runner.ts:1635:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/delivery.ts:642:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/group-skills.ts:96:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/mailbox/sqlite/index.ts:451:DESTRUCT
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/migrate-claude-memory-settings.ts:36:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/migrate-claude-memory-settings.ts:59:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/agent-to-agent/create-agent.ts:210:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/community-portal/runtime.ts:156:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/community-portal/runtime.ts:85:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/index.ts:13:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/permissions/guard.ts:21:PRIVESC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/self-mod/apply.ts:146:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/self-mod/apply.ts:56:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/modules/self-mod/request.ts:13:EXEC
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/project-doc-compose.ts:250:PERSIST
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/provider-contracts/registry.ts:271:CRED
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/templates/library.ts:217:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/templates/library.ts:22:SUPPLY
  • suspicious: unverified finding skill:.claude/skills/add-cursor:src/templates/library.ts:73:SUPPLY

Security findings 137

Code execution

criticalUnverifiedhigh confidence

Undeclared auto-run prerequisite: the container setup step silently executes the bundled install-docker.sh whenever the docker CLI is absent, chaining into that script's remote fetch-and-pipe installation.

execSync('bash setup/install-docker.sh', { cwd: projectRoot, stdio: 'inherit' });
vector:code

Code execution

criticalUnverifiedmedium confidence

Undeclared residue for the add-cursor skill (R62): this on-demand helper executes the remote claude.ai installer by piping it into bash, unpinned vendor code whose behavior lives outside the pinned commit.

curl -fsSL https://claude.ai/install.sh | /bin/bash
conceal:remotevector:code

Code execution

criticalUnverifiedhigh confidence

Undeclared for the add-cursor provider skill and auto-run by the container setup step when the docker CLI is missing, install-docker.sh pipes the remote get.docker.com installer straight into /bin/sh, executing unpinned vendor code on the host.

curl -fsSL https://get.docker.com | /bin/sh
conceal:remotevector:code

Code execution

criticalUnverifiedhigh confidence

The Linux branch of setup/install-docker.sh pipes the unpinned remote installer from https://get.docker.com directly into /bin/sh, executing whatever that URL serves at run time, and then runs sudo usermod to add the user to the docker group.

curl -fsSL https://get.docker.com | /bin/sh
conceal:remotevector:code

Persistence

criticalUnverifiedmedium confidence

Undeclared for a Cursor-provider skill: the setup peer-cleanup conditionally disables and unloads other NanoClaw systemd user services (units that are dead or repeatedly failing) on the host, a service-management capability the declared purpose does not cover.

execFileSync('systemctl', ['--user', 'disable', '--now', `${unit}.service`], { stdio: 'pipe' });
trigger:conditionalvector:code

Data exfiltration

criticalUnverifiedlow confidence

Undeclared telemetry: the docker credential helper sends host metadata (OS, architecture, Node version, broker-assigned host id, pull digest) to its credential broker on every credential mint, which the declared provider-wiring description does not cover.

res = await fetch(`${brokerBase(auth)}/v1/credentials`, {
vector:code

Persistence

criticalUnverifiedhigh confidence

The setup service step installs a persistent launchd/systemd user service for the host, enables lingering so it survives logout, and symlinks ncl into ~/.local/bin, giving the product automatic startup persistence on the machine.

Without linger, systemd terminates all user processes when the last session closes.
vector:code

Persistence

criticalUnverifiedmedium confidence

Without a usable systemd session, setup writes an executable start-nanoclaw.sh wrapper that kills any prior host by PID and relaunches the agent detached under setsid nohup — background persistence not declared by the add-cursor skill, though plain shared setup code.

fs.writeFileSync(wrapperPath, lines.join('
vector:code

Persistence

criticalUnverifiedlow confidence

The shared setup timezone step persists the resolved TZ into the project .env — configuration write the Cursor-provider declaration does not mention (adjudicated unexplained, not concealed), noting the extracted residue literal 'Set TZ in .env' is actually a log message rather than a file read.

fs.writeFileSync(envFile, `TZ=${resolvedTz}
vector:code

Persistence

criticalUnverifiedlow confidence

The skill's decoded payload includes host migration code whose text states it seeds or reconciles the agent control-plane file settings.json in the Claude state directory, with the written content and triggering conditions not shown in this pass.

Seed or reconcile `settings.json` in the Claude state directory.
conceal:encodingvector:code

Persistence

highUnverifiedlow confidence

The container-side codex provider writes the codex runtime config.toml (and, on contract cores, hooks.json) into the per-group CODEX_HOME at query time, and the hooks.json contents that would govern the codex agent runtime are not shown.

self.runtime.writeCodexConfigToml(self.mcpServers, memorySessionHook, self.inference);
vector:code

Credential access

highUnverifiedlow confidence

The setup auth flow saves the live OAuth auth.json written by an isolated `codex login` into the configured credential gateway store via store.save, and the store's eventual storage destination (local vault file, OS keychain, or remote gateway endpoint) is not shown in the artifact.

await store.save('codex', { kind: 'oauth', file: authJsonPath });
vector:code

Persistence

highUnverifiedmedium confidence

The provider persists auto-executing hooks by writing Cursor hooks.json files into the agent project directory and the user HOME layer that run its own script `bun /app/src/providers/cursor-hook.ts` at every sessionStart and preCompact inside the container.

mergeMemoryHooks(path.join(userDir, 'hooks.json'), memory);
vector:code

Code execution

highUnverifiedlow confidence

When the host lacks the pinned Bun, setup falls back to fetching the bun runtime from the npm registry via pnpm dlx and executing the login helper with it, a version-pinned but runtime-fetched code execution path.

return { command: 'pnpm', prefix: [`--package=bun@${pinnedBunVersion(root)}`, 'dlx', 'bun'] };
vector:code

Code execution

highUnverifiedlow confidence

SKILL.md instructs the agent to run the setup entry 'setup/index.ts --step provider-auth cursor', a single command that copies payload files, edits barrels, pins the SDK, rebuilds, and performs Cursor credential authentication, whose setup-step implementation is not shown in the reviewed units.

pnpm exec tsx setup/index.ts --step provider-auth cursor
vector:instruction

Code execution

highUnverifiedlow confidence

The add-discord, add-imessage, and add-slack skills instruct the agent to execute bash setup/lib/restart.sh, a script whose content is not included in the reviewed artifact units.

bash setup/lib/restart.sh
vector:instruction

Persistence

highUnverifiedlow confidence

The add-imessage skill instructs the agent to run setup/channels/imessage-configure.sh, an unshown script that rewrites the .env backend selector for the local or hosted backend.

bash setup/channels/imessage-configure.sh local
vector:instruction

Code execution

highUnverifiedlow confidence

The add-imessage skill instructs the agent to run the unshown scripts/photon-setup.ts, which the docs say provisions via Photon's cloud API and writes PHOTON_PROJECT_ID/PHOTON_PROJECT_SECRET to .env and a bearer token to data/photon-auth.json.

pnpm exec tsx scripts/photon-setup.ts setup --phone {{owner_handle}} --embedded
vector:instruction

Persistence

highUnverifiedlow confidence

The add-teams skill suggests rewriting npm's global prefix via a package-manager host-config write (npm config set prefix ~/.npm-global) when the global install hits EACCES.

npm config set prefix ~/.npm-global
vector:instruction

Credential access

highUnverifiedlow confidence

The add-teams skill tells the agent that Microsoft 365 login tokens may persist in the CLI's plaintext on-disk token cache and that the unencrypted-storage warning is safe to ignore.

a plaintext cache file that persists fine
vector:instruction

Persistence

highUnverifiedlow confidence

writeMemorySessionHook rewrites the agent's Claude settings.json to insert a SessionStart hook entry carrying a provider-supplied command, persisting an auto-executing control-plane hook configuration that runs at every session start.

fs.writeFileSync(filePath, JSON.stringify(settings, null, 2)
vector:code

Credential access

highUnverifiedlow confidence

Undeclared by the add-cursor skill's stated purpose, the runner enumerates the sensitive ~/.claude/projects transcript directory to select the newest .jsonl trace and rescans the same tree during continuation rotation, with comments tying the read to a /upload-trace diagnostic whose destination is not shown here.

fs.readdirSync(projects)
vector:code

Persistence

highUnverifiedlow confidence

container/install-cli-tools.sh writes /root/.npmrc inside the container image build to opt the two pinned CLIs into pnpm build scripts — residue R61 and contradiction leads C497/C498 are confirmed only as this container-internal, comment-disclosed configuration write (not a host .npmrc persistence, not a sensitive read), and C945/C946's node -e calls only parse the local manifest, so the D15/D22/D64/D71 and D90 contradiction leads are not confirmed.

require(
vector:code

Persistence

highUnverifiedmedium confidence

docs/upgrade-recovery.md instructs coding agents to automatically run the upgrade-state override stamp and restart without asking the human whenever they judge a supported upgrade succeeded, skipping human confirmation for an integrity-tripwire override whose truth depends on the agent's own assessment.

run the command above automatically and restart. Only stop to ask a human if the upgrade itself failed or you can't confirm it finished.
trigger:conditionalvector:instruction

Code execution

highUnverifiedmedium confidence

The skill apply engine binds a run command's stdout — which the code notes can come from a remote server — into {{vars}} and interpolates those vars into later shell command lines, so remote-controlled output can reach command construction where validate: guards are absent and the substitution layer does not quote it.

// Bind a `run capture:<spec>` from a command's stdout into one or more {{vars}}.
vector:codevector:mixed

Supply chain

highUnverifiedmedium confidence

The copy directive's from-branch path git-fetches a remote branch (origin by default, or a remote selected via NANOCLAW_CHANNELS_REMOTE/NANOCLAW_REGISTRY_REMOTE) and writes files from that mutable remote into the install root, installing remotely-controlled content that the agent app then imports.

await exec(gitFetchBranchCommand(remote, b));
conceal:remotevector:code

Credential access

highUnverifiedlow confidence

env-set directives substitute collected variables, including secret-flagged prompt values, into KEY=value lines appended to the install root .env, persisting credentials in plaintext as part of skill wiring.

const value = substitute(entry.slice(eq + 1).trim(), vars); // throws if a {{var}} is unresolved
vector:mixed

Code execution

highUnverifiedlow confidence

The sandbox-image step executes the artifact's registry-login bash script (REGISTRY_LOGIN_SCRIPT, value defined outside the shown range) via runInheritScript as a child process, performing a device-flow sign-in whose disclosed record sent to the remote registry service is the operator's email address plus an image-fetch event.

const code = await runInheritScript('bash', [REGISTRY_LOGIN_SCRIPT]);
vector:code

Credential access

highUnverifiedlow confidence

The setup driver reads SLACK_BOT_TOKEN from the process environment and the project .env — a capability undeclared anywhere for this provider-setup artifact — though it only presence-checks the value to decide whether to offer Slack onboarding, with no sink shown.

!(process.env.SLACK_BOT_TOKEN || readEnvKey('SLACK_BOT_TOKEN'))?.trim()
vector:code

Supply chain

highUnverifiedmedium confidence

The setup infrastructure fetches and imports executable code from a mutable remote git branch at runtime (the channels branch / from-branch registry branch, resolved as any remote carrying the branch) rather than a pinned commit, e.g. materializing src/provisioning/slack-app.ts via git fetch + git show and dynamically importing the fetched .ts, and copying the GitHub adapter in from the channels branch.

materialize that one file from the channels branch exactly
conceal:remotevector:code

Supply chain

highUnverifiedhigh confidence

When src/provisioning/slack-app.ts is absent, the Slack pre-step resolves a git remote (NANOCLAW_CHANNELS_REMOTE override, else origin preferred), git-fetches the mutable channels branch head, writes src/provisioning/slack-app.ts into the tree, and dynamically imports and executes it, so Slack setup runs unpinned remote code fetched at runtime.

exec(gitFetchBranchCommand(resolved, CHANNELS_BRANCH));
conceal:remotetrigger:conditionalvector:code

Privilege escalation

highUnverifiedmedium confidence

setup/container.ts invokes sudo to start the Docker service and to add the current user to the docker group (root-equivalent through the docker socket), then re-executes itself under sg docker as part of setup without a separate consent step.

spawnSync('sudo', ['usermod', '-aG', 'docker', process.env.USER ?? ''], {
vector:code

Code execution

highUnverifiedlow confidence

The add-cursor setup entry point invokes an undeclared launchSlackJob() Slack routine before running the declared Cursor-provider setup steps, a capability the skill's declared purpose does not account for (unexplained, not concealed).

await launchSlackJob(); await main();
vector:code

Credential access

highUnverifiedmedium confidence

Undeclared for the add-cursor skill: setup writes a docker-credential-nanoclaw executable into /usr/local/bin or ~/.local/bin and rewrites ~/.docker/config.json — a file that can hold every registry credential on the machine — so Docker routes one registry's credentials through the installed helper.

writeExecutable(helperPath, renderHelper(fs.readFileSync(helperSourcePath(), 'utf-8'), process.execPath))
vector:code

Persistence

highUnverifiedmedium confidence

setup/install-cred-helper.ts writes an executable docker-credential-nanoclaw into /usr/local/bin or ~/.local/bin, wires it into ~/.docker/config.json credHelpers to handle registry credentials for the pinned registry, and executes the installed binary to verify it, leaving a credential-handling executable on PATH that persists outside the project tree.

writeExecutable(helperPath, renderHelper(fs.readFileSync(helperSourcePath(), 'utf-8'), process.execPath));
vector:code

Persistence

highUnverifiedlow confidence

The setup installs a docker-credential-nanoclaw binary onto PATH and rewrites ~/.docker/config.json credHelpers to route registry credential lookups through it, a host configuration change that persists beyond the task and affects docker's credential resolution machine-wide for the wired registry.

Wiring is one `credHelpers` key in `~/.docker/config.json`, read-modify-write
vector:code

Code execution

highUnverifiedlow confidence

Bundled prerequisite installer scripts (Docker, Node, Claude CLI) execute pipe-to-shell downloads and sudo at run time, deliberately packaged as single allowlisted script units so the agent's permission allowlist approves the whole download-and-execute as one file before the task runs.

The script itself is the allowlisted unit; the pipes and sudo live inside
vector:code

Persistence

highUnverifiedmedium confidence

Undeclared by the skill: the installer creates node/npm/npx/pnpm symlinks under ~/.local/bin and prepends that directory to PATH, altering host shell configuration outside the declared Cursor-provider scope.

ln -sf ~/node/bin/node ~/.local/bin/node
vector:code

Privilege escalation

highUnverifiedmedium confidence

Undeclared and disclosed only in a comment: install-node.sh is deliberately structured so permission pre-approval matches only the allowlisted script file while its sudo and piped-remote execution run inside it where the approval mechanism cannot inspect what is executed.

The script itself is the allowlisted unit; the pipes and sudo live inside
evasion:scannervector:code

Persistence

highUnverifiedlow confidence

The signal-cli installer downloads a GitHub release tarball and stages a chmod +x binary into ~/.local/bin/signal-cli, placing an executable on the user's PATH; the download is checksum-pinned to a hardcoded sha256.

chmod +x 
vector:code

Credential access

highUnverifiedlow confidence

The setup flow captures the user's live provider OAuth token by running the interactive `claude setup-token` login under script(1) and parsing the PTY capture to recover the sk-ant secret for storage.

Extract the Claude OAuth token from a PTY capture of `claude setup-token`
vector:code

Code execution

highUnverifiedlow confidence

When the Claude CLI is missing, ensureClaudeReady executes the not-shown setup/install-claude.sh installer via spawnSync after a confirm prompt that defaults to Yes, running an unseen prerequisite installer on the host.

spawnSync('bash', ['setup/install-claude.sh'], {
vector:code

Credential access

highUnverifiedmedium confidence

ensureClaudeReady runs claude setup-token under script(1), writes the PTY capture to a temp file in os.tmpdir(), regex-extracts the sk-ant-oat OAuth token, and stores it in process.env.CLAUDE_CODE_OAUTH_TOKEN, leaving the credential on disk until a best-effort unlink.

const token = extractClaudeOAuthToken(fs.readFileSync(tmpfile, 'utf-8'));
vector:code

Code execution

highUnverifiedmedium confidence

Undeclared by the skill: the assistant executes a bash command parsed from a Claude model reply via setup/run-suggested.sh, gated only by an operator confirm-with-edit prompt.

const child = spawn('bash', [script, command], {
vector:code

Data exfiltration

highUnverifiedlow confidence

buildHandoffPrompt labels the collected setup values 'secrets redacted' but embeds each key and value verbatim into the prompt handed to the spawned Claude session, so any secret not redacted upstream would be handed to the model; the redaction the label promises is not performed in this code.

lines.push('Values collected so far (secrets redacted):');
vector:code

Data exfiltration

highUnverifiedhigh confidence

The setup driver performs undeclared telemetry: it sends a persistent install identifier (data/install-id as distinct_id) plus platform and event properties to the third-party collector us.i.posthog.com, which no declaration for this skill covers (an opt-out env var exists but the egress itself is undeclared).

void fetch(POSTHOG_URL, {
vector:code

Persistence

highUnverifiedlow confidence

The restart script loads the tool's LaunchAgent plist into launchd via launchctl bootstrap, activating the persistent per-user service job.

launchctl bootstrap
vector:code

Data exfiltration

highUnverifiedlow confidence

The setup runner emits host setup-activity telemetry (step names, durations, abort reasons) via phEmit calls whose destination and payload handling are not defined in the shown code, so setup metadata leaves the host to an unknown sink.

phEmit('step_started', { step: stepName });
vector:code

Persistence

highUnverifiedlow confidence

Setup persists a fallback git identity into the checkout's local git config and auto-commits skill-apply changes plus rewrites the upgrade-state marker — host-config writes undeclared by the provider-wiring purpose (unexplained residue, disclosed only in code comments and scoped to this checkout).

for (const [key, value] of missing) git(root, ['config', '--local', key, value]);
vector:code

Code execution

highUnverifiedlow confidence

The skill driver executes arbitrary SKILL.md-authored commands via bash -c with the full process environment plus a PATH-prepended project bin/ — an execution channel broader than the declared ncl wiring whose actual command set for this skill lives in the not-shown SKILL.md (declared core mechanism, hence contextual only).

const child = spawn('bash', ['-c', cmd], {
vector:codevector:mixed

Persistence

highUnverifiedmedium confidence

The setup peer-cleanup preflight enumerates other NanoClaw launchd/systemd user services in the user's home, unloads or disables them via launchctl/systemctl when it judges them dead or crash-looping, and force-deletes their plist/unit config files outside the workspace.

fs.rmSync(peer.configPath, { force: true });
vector:code

Data exfiltration

highUnverifiedlow confidence

Undeclared for the Cursor-provider purpose: the setup portal client labels the machine with the local hostname and current directory name for the community-portal sign-in flow toward portal.nanoclaw.dev, sending local host data off-host that the declaration does not mention.

label: `${os.hostname()} · ${path.basename(process.cwd())}`,
vector:code

Data exfiltration

highUnverifiedlow confidence

The setup portal flow registers this machine's device identity with an external service (https://portal.nanoclaw.dev by default, origin overridable via NANOCLAW_PORTAL_ORIGIN), sending registration data off-host during setup.

await client.register();
vector:code

Code execution

highUnverifiedlow confidence

After applying a provider skill the setup step dynamically imports the freshly written provider module (./providers/<name>.js) and newly appended host contract modules, executing just-installed code inside the host process.

await import(installedModule);
vector:code

Code execution

highUnverifiedlow confidence

The provider install pipeline runs dependency commands declared by the applied SKILL.md through execSync in the project root, executing skill-defined shell commands on the host during provider install.

exec: (cmd) => execSync(cmd, { cwd: projectRoot, stdio: 'pipe', encoding: 'utf8' }),
vector:code

Persistence

highUnverifiedlow confidence

Unexplained (undeclared) relative to the add-cursor provider-install description: the setup register step rewrites the registered agent group's CLAUDE.md agent persona/rules file in place, though it is scoped to the freshly registered group's own file and guarded by existence and content-diff checks.

const mdFile = path.join(projectRoot, 'groups', parsed.folder, 'CLAUDE.md');
vector:code

Persistence

highUnverifiedlow confidence

The register step rewrites the freshly registered agent group's CLAUDE.md rules file, replacing the 'You are Andy' persona instructions with a caller-supplied assistant name, an agent control-plane content write.

fs.writeFileSync(mdFile, after);
vector:code

Data exfiltration

highUnverifiedmedium confidence

Undeclared residue: the driver prompts the user to opt into NanoClaw/Echo marketing email (confirm defaulting to yes) and POSTs the answer with the account token to the broker's /v1/account/preferences — an email-consent collection the add-cursor skill's declared description does not cover.

json({ email_updates: optIn, consent_version: CONSENT_VERSION, source: 'cli' }, cred.token),
vector:code

Persistence

highUnverifiedlow confidence

On sign-in the driver persists the account token to 0600 files under ~/.config/nanoclaw and invokes installCredentialHelper to wire a docker credential helper for the registry host, modifying host docker credential configuration.

wireDockerCredentialHelper(record.registry);
vector:code

Data exfiltration

highUnverifiedhigh confidence

Undeclared residue: the sign-in driver enrolls machine metadata (os, arch, nanoclaw_version, per-machine host_id) and, on the browser path, the WorkOS access token to the operator-resolvable NanoClaw broker via POST /v1/enroll (plus /v1/session/probe and /v1/auth-config), a network capability absent from the add-cursor skill's declared description.

res = await http(`${api}/v1/enroll`, json(enrollWire(body)), HTTP_TIMEOUT_MS);
vector:code

Data exfiltration

highUnverifiedhigh confidence

Undeclared residue R31: this NanoClaw setup sign-in driver hardcodes and uses WorkOS device-flow endpoints at api.workos.com (overridable via NANOCLAW_WORKOS_* env) for OAuth sign-in — network identity traffic that the add-cursor skill's declared description never declares, though the code documents it openly.

const DEFAULT_DEVICE_ENDPOINT = 'https://api.workos.com/user_management/authorize/device';
vector:code

Code execution

highUnverifiedlow confidence

The device sign-in flow spawns the platform browser opener (open/xdg-open/wslview/cmd.exe) detached with a URL taken verbatim from the registry's device-authorization response, executing remote-influenced input as a command.

spawn(cmd[0], cmd[1], { stdio: 'ignore', detached: true })
vector:code

Persistence

highUnverifiedlow confidence

The NanoClaw docker credential helper is installed as a standalone binary on PATH that is designed to survive uninstall (the checkout is deleted but the file stays on PATH), with ~/.docker/config.json credHelpers routing registry pulls to it, leaving an executable credential-vending path outside the product tree.

uninstalling NanoClaw deletes the checkout while this file stays on PATH
vector:code

Code execution

highUnverifiedlow confidence

setup/run-suggested.sh runs commands suggested by the claude-assist agent through an eval inside an allowlisted script, with the guarantee that the user saw and confirmed the command asserted only in comments and delegated to unseen callers.

caller has already shown the command to the user and gotten confirmation.
vector:code

Privilege escalation

highUnverifiedhigh confidence

The setup service step pre-stamps an upgrade marker before first host start so the startup tripwire (enforceUpgradeTripwire) treats the install as sanctioned, i.e. the installer self-certifies past a safety check rather than being validated by it.

tripwire (enforceUpgradeTripwire) sees this as a sanctioned install
trigger:conditionalvector:code

Persistence

highUnverifiedhigh confidence

The nohup fallback writes a mode-0755 start-nanoclaw.sh into the project and executes it with /bin/bash, launching dist/index.js detached via setsid/nohup so the agent host keeps running after the setup terminal exits.

execFileSync('/bin/bash', [wrapperPath], { cwd: projectRoot, stdio: 'pipe', timeout: 15_000 });
vector:code

Data exfiltration

highUnverifiedlow confidence

The Slack setup worker sends the job's identity token as a Bearer credential in a POST to the network origin recorded in the local Slack job file (restricted to https or loopback), carrying the credential off-host to whatever service that job names.

authorization: `Bearer ${job.identity.token}`
vector:code

Data exfiltration

highUnverifiedlow confidence

The Slack provisioning worker, unrelated to the declared Cursor-provider purpose, sends setup status (appId, setupId, status) to a slackProgressClient service whose base URL is not shown in this batch and exchanges Slack bot tokens over the network with an origin-validated https/localhost service — undeclared network egress/ingress for this skill, contextual because it belongs to the Slack channel's own opt-in provisioning flow.

await slackProgressClient(current).request('POST', '/api/v1/device/slack', {
vector:code

Destructive action

highUnverifiedhigh confidence

Undeclared by the add-cursor description (which declares only provider wiring via ncl), the bundled setup ships an uninstaller that unloads launchd/systemd services, kills PIDs from pidfiles, pkill-matches host processes, force-removes containers/images/volumes/networks, deletes symlinks and the .env secrets file (backed up first), and recursively force-deletes install paths including user data directories — capability is plainly visible and scoped to its own install slug, so it is unexplained rather than concealed residue.

fs.rmSync(action.item.path, { recursive: true, force: true });
vector:code

Data exfiltration

highUnverifiedmedium confidence

Undeclared by the add-cursor Cursor-provider description, the bundled setup ships a WhatsApp channel-auth step whose version resolver makes an outbound HTTPS GET to the third-party tracker wppconnect.io; it sends no local message or credential data, so it does not actually break the per-channel local-only claims (D79/D83/D100/D113/D221), but the third-party network contact itself is covered by no declaration and is therefore unexplained residue, plainly visible in code.

const res = await fetch(TRACKER_URL, { signal: AbortSignal.timeout(LOOKUP_TIMEOUT_MS) });
vector:code

Credential access

highUnverifiedlow confidence

Undeclared for the add-cursor provider skill: launchSlackJob copies the entire process environment into a detached child process running setup/slack-worker.ts, exposing every ambient environment token to that spawned worker (residue R40 adjudicated as unexplained, not concealed).

const env = { ...process.env };
vector:code

Code execution

highUnverifiedlow confidence

launchSlackJob spawns a detached, fully silent background Node process that executes the repository script setup/slack-worker.ts via tsx with the full inherited environment, hiding the worker's execution from the user while its behavior is not shown in this pass.

spawn(process.execPath, ['--import', 'tsx', path.join(root, 'setup/slack-worker.ts')], {
vector:code

Credential access

highUnverifiedlow confidence

queueSlackJob copies the NanoClaw install token from the account file plus the Slack app/bot token snapshot from data/community-portal.json into data/slack-install.json (0600 via writePrivate), duplicating live credentials into a second on-disk file consumed by the detached worker.

token: account.token,
vector:code

Credential access

highUnverifiedmedium confidence

Undeclared residue: resolveProviderContribution passes the entire host environment (hostEnv: process.env) into provider host-adapter context, broader than the declared design in which the Cursor API key is held only by the credential gateway; the code is plainly visible (unexplained, not concealed) and no sink for the environment values is shown in this batch.

hostEnv: process.env,
vector:code

Supply chain

highUnverifiedlow confidence

buildAgentGroupImage interpolates central-DB-stored apt/npm package lists into Dockerfile RUN shell lines and executes a container-image build on the host runtime, deliberately allowlisting unpinned npm packages' postinstall install-time scripts.

pnpm install -g ${npmPackages.join(' ')}
vector:code

Persistence

highUnverifiedlow confidence

materializeTemplateSkills copies template skill trees from the group shared store into each provider per-group skills directory (including the store mounted where Claude reads ~/.claude/skills), planting skill content that agents load and execute and that persists across respawns.

copyTree(srcSkill, destSkill, 0);
vector:code

Destructive action

highUnverifiedlow confidence

SqliteAgentMailbox.destroy force-deletes a session's inbound and outbound mailbox SQLite files plus journal/shm/wal sidecars at paths built by joining agentGroupId/sessionId key parts under DATA_DIR, wiping that session's mailbox data.

fs.rmSync(`${db}${suffix}`, { force: true })
vector:code

Persistence

highUnverifiedmedium confidence

The host code rewrites Claude Code's settings.json — disabling auto-memory and registering a PreCompact hook that runs 'bun /app/src/compact-instructions.ts' — an agent control-plane write that the add-cursor/add-codex skill claims (setup screens and step sequence unchanged; installed is not authenticated and the default provider stays claude) neither declare nor cover, though the write itself is a visible, symlink-guarded reconcile that does not literally alter setup screens or the provider default.

dir.replaceFile(CLAUDE_SETTINGS_FILE, result.content)
vector:code

Code execution

highUnverifiedlow confidence

The portal runtime auto-launches a locally saved Slack install worker via launchSlackJob whenever the check loop runs after the remote cell link marks state dirty, gated only on the saved job's deviceId/install_id/account_id/origin matching the local identity, so a remote snapshot change triggers local execution of a worker whose code is not shown.

if (await launchSlackJob(root)) log({ event: 'slack_install_resumed', deviceId: current.deviceId });
trigger:conditionalvector:code

Credential access

highUnverifiedmedium confidence

The community-portal runtime reads the install identity (token/account/install ids) and the device key from the host home directory on every tick and uses them to authenticate a persistent outbound DeviceClient/CellLink to an origin read from the local state file data/community-portal.json, so stored host credential material continuously authenticates a network channel whose destination is whatever origin the state file names.

const account = local?.deviceId && local.origin ? await readInstallIdentity({ homeDir }) : null;
vector:code

Persistence

highUnverifiedmedium confidence

applyAddMcpServer writes an agent-supplied MCP server configuration into the container's mcp_servers map in the control-plane database and kills/respawns the container so the new server's tools load into the agent after admin approval.

servers[name] = serverConfig;
vector:code

Code execution

highUnverifiedmedium confidence

applyInstallPackages writes agent-supplied apt/npm package names into the container config database and then rebuilds the image and kills/respawns the container, installing and making those packages executable in the agent runtime once an admin approves the card (guard holds container-originated requests for admin approval).

await updateContainerConfigJson(agentGroup.id, 'packages_apt', existing);
vector:code

Code execution

highUnverifiedmedium confidence

The self-modification pipeline stores the agent-supplied install_packages/add_mcp_server payload verbatim in the database and runs it through shell execution and a container image rebuild on apply, so an agent-initiated request (gated by a single admin approval card) results in the container executing agent-chosen package installs and wiring new MCP servers.

verbatim through to shell exec on apply
vector:code

Persistence

highUnverifiedmedium confidence

The provider-surface realization writes agent control-plane files on the host on group init and every spawn — creating group directories, composing the CLAUDE.md project document into group state, reconciling provider settings files via registered transformers, and planting skill symlinks pointing at /app/skills inside the agent-visible skills directory.

writeAtomic(path.join(groupDir, spec.fileName), content)
vector:code

Credential access

highUnverifiedlow confidence

Provider host contracts allow a payload to declare its own modelDomains and HTTPS modelEndpoints — documented as provider-owned URLs used by gateway credential adapters and exempt from default gateway approval — validated only against the same payload's declared domains, so the Cursor payload's own declarations determine which hosts can receive credential-bearing gateway traffic.

modelEndpoints must use HTTPS within declared modelDomains
vector:code

Privilege escalation

mediumUnverifiedhigh confidence

The Codex provider writes ~/.codex/config.toml with hardcoded sandbox_mode 'danger-full-access' and approval_policy 'never' (writeCodexConfigToml → buildCodexConfigPlan → codexExecutionPolicySection → renderCodexConfigToml) and starts every app-server and thread with --dangerously-bypass-hook-trust / bypass_hook_trust, disabling Codex's sandbox, approval, and hook-trust protections inside the container.

sandbox_mode = 
vector:code

Privilege escalation

mediumUnverifiedmedium confidence

The add-codex payload's auto-approval handler accepts every Codex permission, file-change, patch, and command-execution approval regardless of path (test fixtures include 'rm -rf /', grantRoot '/etc', and '/etc/passwd') and grants full filesystem read/write on '/' with network enabled — undeclared in the skill prose, justified only by in-code comments that container isolation is the only remaining boundary.

it('grants full filesystem + network for permission requests', () => {
Decoded
NanoClaw (container isolation + OneCLI) is the boundary, so the handler accepts every request unconditionally — even paths/commands a sandbox policy would refuse.
vector:code

Privilege escalation

mediumUnverifiedhigh confidence

The add-codex payload runs the Codex app-server with Codex's own sandbox and approval primitives disabled and answers every permission negotiation, elicitation, and tool-call request with grant, leaving container isolation as the only boundary.

NanoClaw is the boundary, so accept/grant everything.
Decoded
Codex runs unrestricted inside the container. NanoClaw's container isolation and the OneCLI allow-list are the security boundary — not Codex's own sandbox/approval primitives (which can't run here anyway: workspace-write/read-only need user namespaces, which the agent containers deny).
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The container-side codex provider attaches an auto-approval handler to every spawned codex app-server session, potentially approving the codex agent's tool actions without per-action user confirmation, and the handler's implementation is not shown.

self.runtime.attachCodexAutoApproval(server);
vector:code

Privilege escalation

mediumUnverifiedmedium confidence

The Cursor provider's execution policy disables Cursor's built-in sandbox for agent sessions (sandbox.enabled=false), which the skill description does not declare and whose only stated compensation (the container being the sandbox and an egress lockdown) is asserted in comments but not demonstrated by the shown evidence.

sandbox: { enabled: false },
vector:code

Supply chain

mediumUnverifiedlow confidence

The channel skills instruct the agent to overwrite local src/channels sources with adapter code taken from the mutable `channels` git branch and then build and execute it, so the code that runs is whatever the branch holds at run time.

Fetch the `channels` branch and copy the Discord adapter and its registration
vector:instruction

Supply chain

mediumUnverifiedlow confidence

The skill directs the agent to copy the unified iMessage adapter and its tests from the mutable `channels` branch with no commit pin, so unpinned code enters the host build at apply time.

nc:copy from-branch:channels
vector:instruction

Supply chain

mediumUnverifiedlow confidence

The skill directs the agent to copy the Slack channel payload (adapter, guard, provisioning core, container skills) from the mutable `channels` branch with no commit pin, so unpinned code enters the host build at apply time.

nc:copy from-branch:channels
vector:instruction

Supply chain

mediumUnverifiedlow confidence

The add-teams skill instructs the agent to globally install @microsoft/teams.cli via npm so the package's native dependency install scripts run outside the workspace pnpm supply-chain policy that blocks dependency build scripts.

npm install -g @microsoft/teams.cli@3.0.2 --loglevel=error
vector:instruction

Supply chain

mediumUnverifiedlow confidence

The skill directs the agent to copy the Teams adapter and its registration test from the mutable `channels` branch with no commit pin, so unpinned code enters the host build at apply time.

nc:copy from-branch:channels
vector:instruction

Supply chain

mediumUnverifiedmedium confidence

The add-telegram skill directs the agent to overwrite host source files with content fetched at install time from the mutable `channels` branch ref (and points at a doc that only exists on that branch), so unpinned remote code enters the host build at runtime.

Fetch the `channels` branch and copy the Telegram adapter, its pairing helper
vector:instruction

Supply chain

mediumUnverifiedlow confidence

The add-telegram skill's first step instructs the agent to overwrite local channel source files with adapter code fetched from the mutable 'channels' branch, which is not pinned to a commit.

Fetch the `channels` branch and copy the Telegram adapter
vector:instruction

Supply chain

mediumUnverifiedmedium confidence

The add-telegram skill instructs the agent to overwrite six workspace source files with code copied from the mutable `channels` git branch with no commit pin (`nc:copy from-branch:channels`, 'overwrite — the branch is canonical'), an unpinned-remote-code supply surface that is undeclared in the target's stated purpose of adding a Cursor agent provider.

nc:copy from-branch:channels
vector:instruction

Privilege escalation

mediumUnverifiedmedium confidence

The runner's Claude execution policy hard-codes SDK permission bypass (permissionMode 'bypassPermissions' with allowDangerouslySkipPermissions true) so every tool call runs without permission prompts across a broad tool allowlist — a capability broader than the add-cursor skill's declared provider-wiring purpose that rests on the unverified in-code claim that container isolation and an allow-list are the security boundary.

permissionMode: 'bypassPermissions'
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The Claude provider forwards the execution policy's permissionMode and allowDangerouslySkipPermissions flags straight into the SDK, so a configured policy can run the agent without permission prompts — a permission-bypass surface the add-cursor skill description does not declare, though it is sourced from operator configuration rather than hardcoded and C148 (rotateClaudeContinuation transcript rotation) was checked and does not break the D15/D22/D64/D71 claims.

allowDangerouslySkipPermissions: this.executionPolicy.allowDangerouslySkipPermissions,
vector:code

Supply chain

mediumUnverifiedlow confidence

The image-build installer pnpm-installs every entry of the skill-extensible cli-tools.json manifest globally as root inside the container and derives only-built-dependencies postinstall opt-ins from the same manifest, so a skill-appended dependency's install scripts execute during image build.

pnpm install -g
vector:mixed

Supply chain

mediumUnverifiedlow confidence

container/pull.sh downgrades its agent-runner lockfile-drift check from a hard refusal to a warning, so a pulled image whose baked node_modules does not match the checkout's lockfile is retagged as if locally built and used — a supply-chain integrity weakening outside the add-cursor skill's declared purpose, disclosed only in in-file comments.

warn rather than refuse, and let operators take the patched image
vector:code

Privilege escalation

mediumUnverifiedmedium confidence

docs/upgrade-recovery.md instructs coding agents to run the upgrade-state override automatically and restart without asking the user unless the upgrade failed, clearing the startup exact-code integrity tripwire (a write of data/upgrade-state.json) without human confirmation — documented and conditioned on a reported-successful upgrade, but an agent-directed confirmation bypass.

if the upgrade you just ran reported success, run the command above automatically and restart
vector:instruction

Agent hijacking

mediumUnverifiedlow confidence

The setup welcome instructs the agent to read and follow /app/skills/welcome/addenda/<channel>.md, a file dropped by channel-install skills whose content this bundle does not fix, so whatever that file contains steers the freshly wired agent.

First read /app/skills/welcome/addenda/${channel}.md and follow it
vector:instruction

Supply chain

mediumUnverifiedlow confidence

The skill apply engine's copy directive plans a fetch of registry payloads from a mutable from-branch git ref (remote resolved via env override → first remote carrying the branch → origin), so unpinned remote content is installed on the host where subsequent dep/run directives act on it.

const from = d.attrs['from-branch'] ? `fetch ${String(d.attrs['from-branch'])} → ` : '';
vector:code

Supply chain

mediumUnverifiedlow confidence

The skill application engine fetches and applies skill payload files from a remote git branch named by a from-branch directive (resolved via git remotes or env override), an unpinned and mutable remote code/instruction source that is undeclared for this Cursor-provider skill's declared purpose.

const from = d.attrs['from-branch'] ? `fetch ${String(d.attrs['from-branch'])} → ` : '';
vector:code

Supply chain

mediumUnverifiedmedium confidence

When a skill directive's copy block carries from-branch, the shared installer fetches that branch from a configured git remote and writes file contents taken from the mutable branch tip into the project tree — an unpinned remote content pull that add-cursor's declared provider-wiring purpose does not declare (openly documented, journaled, and reversible, hence contextual).

await exec(gitShowToFileCommand(`refs/remotes/${remote}/${b}`, srcOf(l), destOf(l)));
vector:code

Supply chain

mediumUnverifiedlow confidence

Choosing the template library clones a remote template registry (cloneRegistry; remote URL and revision pinning not shown) and copies the selected template into templates/, where it becomes the installed agent definition.

registry = await cloneRegistry();
vector:code

Privilege escalation

mediumUnverifiedmedium confidence

On Linux the setup driver conditionally re-executes the entire setup under the docker group via `sg docker -c pnpm run setup:auto` when the Docker socket is permission-denied, gaining group authority after printing a warning but without asking the operator to confirm.

spawnSync('sg', ['docker', '-c', 'pnpm run setup:auto'], {
trigger:conditionalvector:code

Privilege escalation

mediumUnverifiedlow confidence

The container setup step executes `sudo systemctl start docker` on Linux (stdio inherited so sudo can prompt) to start the Docker daemon with elevated privileges — an operation undeclared by the add-cursor provider skill, though consistent with NanoClaw's own container setup purpose and operator-visible.

execSync('sudo systemctl start docker', { stdio: 'inherit' });
vector:code

Privilege escalation

mediumUnverifiedmedium confidence

The Docker install helper deliberately bundles the curl-pipe and sudo operations inside one allowlisted script so setup can run them without those patterns receiving individual approval — a safety-gating bypass, though aimed at official vendor installers.

The script itself is the allowlisted unit; the pipes and sudo live inside
vector:code

Supply chain

mediumUnverifiedmedium confidence

setup/install-github.sh fetches the mutable channels branch by ref with no commit pin, copies src/channels/github.ts out of it into the source tree, appends an auto-import to src/channels/index.ts, and rebuilds, so whatever that branch holds at run time is compiled into the agent.

git show refs/remotes/origin/channels:src/channels/github.ts > 
vector:code

Supply chain

mediumUnverifiedmedium confidence

Undeclared by the skill: the installer runs uvx nodeenv without a version pin, fetching and executing whatever nodeenv package version PyPI currently serves to build the Node toolchain.

uvx nodeenv --force -n lts ~/node
vector:code

Supply chain

mediumUnverifiedmedium confidence

Undeclared by the Cursor-provider skill: the Node setup installer downloads a setup script from deb.nodesource.com and pipes it into sudo -E /bin/bash -, executing remotely fetched, mutable code with root privileges on Linux.

curl -fsSL 
vector:code

Supply chain

mediumUnverifiedlow confidence

Undeclared by the skill: the setup downloads the signal-cli release binary from GitHub and installs it to ~/.local/bin/signal-cli — version- and sha256-pinned from the official upstream, but unrelated to the declared Cursor-provider purpose.

URL=
vector:code

Supply chain

mediumUnverifiedlow confidence

Undeclared by the skill: on a failed step the setup offers (default-yes confirm) to run setup/install-claude.sh to install the Claude CLI, a prerequisite installer whose contents are not shown in this artifact.

const code = spawnSync('bash', ['setup/install-claude.sh'], {
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The interactive handoff spawns the Claude CLI with `--permission-mode auto`, so the spawned agent acts on the auto-submitted handoff prompt without per-action permission prompts.

--permission-mode auto` with
vector:code

Privilege escalation

mediumUnverifiedmedium confidence

spawnInteractiveClaude launches the Claude CLI with --permission-mode auto, auto-approving that session's tool use such as commands and file edits while it inherits the terminal during setup.

spawn('claude', [prompt, '--permission-mode', 'auto', ...sessionArgs], { stdio: 'inherit' })
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The restart script falls back to non-interactive sudo to restart the system-level systemd unit when no user unit exists, exercising privileged service control without a confirmation prompt.

sudo -n systemctl restart
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The setup commit path disables the checkout's git hooks and commit signing for its machine-made commits via one-shot config overrides and --no-verify, a permission-bypass of host git hooks that the declared provider-wiring purpose does not mention.

const quiet = ['-c', 'core.hooksPath=/dev/null', '-c', 'commit.gpgSign=false'];
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The driver's default confirm seam auto-answers yes on non-TTY runs, silently passing the natural-barrier, URL-offer, and credential-reuse confirms when setup is driven headless or by an agent instead of the operator (non-TTY default disclosed in comments, but it removes operator gating).

if (!process.stdout.isTTY) return true;
vector:code

Supply chain

mediumUnverifiedlow confidence

The provider install resolves fork-aware remotes by shelling out to resolve_channels_remote so that `nc:copy from-branch` skill blocks can pull content from a mutable git branch during install.

source setup/lib/channels-remote.sh; resolve_channels_remote
vector:code

Privilege escalation

mediumUnverifiedlow confidence

Setup documentation describes re-executing the container step through sg docker, activating docker-group privileges for setup execution within the current session.

`sg docker` re-exec
vector:code

Manipulation

mediumUnverifiedlow confidence

The CLI channel's operator-privileged socket transport forwards client-controlled sender/senderId and reply_to addressing into any wired channel, and its only local-user guard (chmod 0600 on the socket) fails open with just a warning when it errors, so on such a host any local process could inject spoofed messages into external channels.

log.warn('Failed to chmod CLI socket (continuing)', { sock, err });
vector:code

Supply chain

mediumUnverifiedlow confidence

The host's per-group image builder — capability beyond the add-cursor skill's declared provider-wiring purpose and not hidden but undeclared by it — runs npm install-time lifecycle scripts for arbitrary unpinned operator-configured packages by appending each to /root/.npmrc and installing as root (dockerfile starts FROM base as USER root) during a docker build, a supply-chain code-execution path if the packages_apt/packages_npm config can be influenced.

echo 'only-built-dependencies[]=${p}' >> /root/.npmrc
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The delivery-action registry permits a later-registered module to overwrite an existing guard-wrapped action's handler merely by re-registering it with its own guard spec (only a warning is logged), so a hostile or compromised module could substitute a weaker guard and bypass the approval flow that handleSystemAction relies on.

log.warn('Delivery action handler overwritten', { action });
vector:code

Supply chain

mediumUnverifiedmedium confidence

The create_agent template branch fetches an agent template from a remote public template library via ensureTemplateLocal and stamps the fetched content into a newly created agent's workspace and config via createAgentFromTemplate, so remotely fetched instructions become a new agent's behavior while the fetch destination and commit pinning are not shown in this batch.

({ fetched, commit } = await ensureTemplateLocal(template));
vector:code

Supply chain

mediumUnverifiedlow confidence

The modules barrel states that /add-<name> skills (this add-cursor provider skill among them) install registry-based module code pulled from the mutable `modules` branch, an unpinned remote-code install surface that the declared Cursor-provider purpose does not declare; it is stated openly, so it is unexplained rather than concealed.

Registry-based modules (installed via /add-<name> skills, pulled from the
vector:code

Privilege escalation

mediumUnverifiedlow confidence

The permissions guard documents that the channel-registration free-text agent-name reply is deliberately not re-authorized, so a privilege revoked between the approval click and the reply still completes channel registration — a deliberate authorization-bypass window broader than the declared provider purpose.

a privilege revoked between the click and the reply still
vector:code

Supply chain

mediumUnverifiedlow confidence

The template manager fetches the template library index from the built-in constant INDEX_URL and installs templates fetched from a remote registry clone into the local templates directory, from which later stamping places their skills, persona text, and MCP configs into agent groups as agent-facing instructions.

res = await fetchImpl(INDEX_URL, { signal: AbortSignal.timeout(10_000) });
vector:code

Supply chain

mediumUnverifiedmedium confidence

Undeclared by this Cursor-provider skill: its host code fetches and stamps agent templates (personas, skills, MCP server configs) from the mutable `main` branch of github.com/nanocoai/nanoclaw-templates via clone and raw index fetch, giving a remote, unpinned instruction-injection channel into agent groups.

const LIBRARY_BRANCH = 'main';
vector:code

Supply chain

mediumUnverifiedmedium confidence

The host runtime clones the template library from a remote GitHub repository at a mutable branch tip via git clone and stamps the fetched plugin into new agent groups — persona instructions inlined at system-prompt tier, skills copied into the group's executable skills overlay, and stdio MCP server configs (cwd expanded to the plugin root in-container) written into the group's mcp_servers config — so whoever controls the remote repository controls the instructions, tools, and executable content of stamped agents.

await execFileAsync('git', cloneArgs(dir), { timeout: 20_000, env });
vector:code

Open questions 363

What the analysis could not settle from the code alone.

The PY-INV-HIDDEN-REF leads against payload/ and SKILL.md references appear name-based: the referenced payload files are shipped inside the skill directories and enumerated explicitly by the copy directives — confirm the payload trees ship no additional code beyond the enumerated copy lists and REMOVE rm lists.
Supply chain
Is docs/upgrade-recovery.md actually surfaced into agent context at runtime (e.g., linked from the host startup error when the upgrade tripwire trips) so the coding-agent auto-stamp instruction is read?
Persistence
Claim-contradiction lead pairs a claim about imessage-kit's better-sqlite3 with a DELETE FROM user_roles exec in src/modules/permissions/db/user-roles.ts; neither text appears in the shown units, so the lead cannot be confirmed or refuted here.
Code execution
Lead shows fs.rmSync(base, { recursive: true, force: true }) at line 55 of the add-cursor payload's cursor-hook test, contradicting a claim that setup screens do not change; the file is not among the shown units, so test-scoped cleanup versus a real deletion path is unresolved.
Destructive action
Lead shows writeAtomic at line 250 of src/project-doc-compose.ts (a file write) contradicting a claim that setup screens and step sequence do not change; the file is not shown, so the write's target and effect are unresolved.
Persistence
Where does the OAuth token recovered from the PTY capture ultimately go — only a run-scoped env var for the selected gateway, or also persisted to files, and is it ever transmitted anywhere besides the local gateway?
Credential access
Who invokes setup/run-suggested.sh, and does that caller actually render the suggested command to the user and require confirmation before the eval executes?
Code execution
Detector leads DET:04ff88e523bf7719 and DET:0548817b511eb207 cite a claim about the chat.db reader in setup/environment.ts and setup/platform.ts being contradicted by exec of docker and execSync open; neither the claim nor the exec sites are visible in this batch's units, so the alleged contradictions are unverified.
Code execution
None of the detector-lead excerpts (pkill of dist/index.js in setup/service.ts, docker network inspect, POST to the discord.com interaction callback in chat-sdk-bridge.ts, mergeMemoryHooks writing hooks.json in the skill payload's cursor.ts) appear in the text of the shown units; do those files contain agent-steering instructions or only host/tool behavior?
Whether the community-portal runtime sends locally saved perk credentials, the install token, or device-key material off-host to the account cell when it reconciles over bearer routes, or only uses them locally for proofed dial-in.
Credential access
Registry-based modules are described as 'installed via /add-<name> skills, pulled from the `modules` branch' — is that fetch pinned or from a mutable branch, and does the add-cursor install path use it?
Supply chain
Provider contracts declare HTTPS domains 'exempt from default gateway approval' (modelDomains, endpointAuthorities) — which domains does the cursor provider contract exempt, and are they scoped to Cursor's APIs?
Data exfiltration
Detector lead flags 'silently read' at setup/registry/credential-helper.mjs line 110 as possible secrecy-from-the-user instruction; the file content is not shown in this batch, so it cannot be confirmed whether it is a secrecy directive in text the agent loads or routine helper phrasing.
Agent hijacking
Whether the injection of a SessionStart command hook into ~/.codex/hooks.json (reconcileCodexHooksJson/writeCodexConfigToml) is disclosed as part of 'wiring codex in' in the add-codex SKILL.md; if undisclosed it is PERSIST residue rather than necessary wiring.
Persistence
Residue R77/R78 classify a file_read/host_config_write of .claude/skills/telegram-multi-instance/SKILL.md, but unit SRC:ec81bd36064ceda5 line 289 contains only the prose cross-reference '(reference: .claude/skills/telegram-multi-instance/SKILL.md on the channels branch)' with no nc: directive that reads or writes that path — confirm no directive elsewhere in this skill touches it.
Where does the /upload-trace command send the transcript path returned by newestClaudeTranscript — is the trace only handled locally or uploaded off-host?
Data exfiltration
The pull flow depends on a docker-credential-nanoclaw helper that mints registry credentials gated by a short-lived nonce file; its implementation and the broker/registry destination are not in the shown units — what endpoint does it mint credentials for and is the nonce gate enforceable there?
Credential access
Residues R59/R60 adjudicated false: line 122 of build.sh is 'rm -f' of the sed backup (not a read of .env.bak) and https://echo.ai is a printed help URL with no network call; confirm no other build.sh line transmits .env contents off-host.
Setup comments say provider payloads self-register their picker entry and auth flow on import — whether that alters the setup wizard flow in a way that breaks claim D15 ('The setup screens and step sequence do not change.') cannot be settled because the claim's unit text is not shown in this batch.
What the runtime-fetched provisioning core src/provisioning/slack-app.ts actually does (broker endpoints, token handling, file writes) cannot be judged from the shown tree — it is fetched from the channels branch only when Slack provisioning runs and is not part of this artifact's shipped content.
Supply chain
Adjudication of contradiction C707 / DET:b48ddbafc74ed39e is inconclusive: the dispatch site 'mod.run(stepArgs)' executes curated first-party STEPS modules after CLI validation, and the shown lines do not establish that any step runs dependency build scripts (npm/node-gyp rebuild), so whether claim D90 ('NanoClaw doesn't run dependency build scripts') is genuinely contradicted cannot be settled without the STEPS map and the step modules.
Code execution
What launchSlackJob() in setup/index.ts actually does is not shown in this batch; it may be a benign setup-status job for the NanoClaw Slack bot or a network send, which determines whether the undeclared call is harmless infrastructure or off-host activity.
Code execution
Are values in HandoffContext.collectedValues redacted at their construction site before buildHandoffPrompt embeds them, given the '(secrets redacted)' label with no redaction in the visible function?
Data exfiltration
Residue R32 claims network capability 'nanoclaw.dev', but the cited line is only the printed privacy-policy URL inside the consent text (CONSENT_LINES); no request to nanoclaw.dev appears anywhere in the shown code, so it could not be classified as necessary/unexplained/concealed — confirm whether nanoclaw.dev is ever contacted.
Data exfiltration
The batch's contradictions pair registry-login.ts capabilities with safety claims homed in sibling skills (D15/D22/D64/D71 file-write claims, D79/D83/D100/D113/D221 network claims, D90 exec claim); none of those claims governs this setup driver's scope (e.g. D64 concerns the provider default, which persistCredential does not change), so none was judged actually broken — confirm the intended claim scoping.
deriveAttachmentName returns an attacker-influenced att.name verbatim; the module states output is passed through isSafeAttachmentName at the call site, but no call site appears in this batch to confirm path-traversal names are blocked before host path joins.
Destructive action
Who can write the container config packages_apt/packages_npm columns (operator-only admin path vs. agent-reachable install_packages tool)? This determines whether the root-context npm lifecycle-script allowlist in buildAgentGroupImage (SRC:30e3a7ec752f613f) is attacker-reachable.
Supply chain
Which code path invokes prepareClaudeMemorySettings — does installing or configuring the add-cursor skill (the flow whose claims D15/D22/D64 promise unchanged setup and provider default) trigger the settings.json rewrite, or is it a separate host startup step?
Persistence
Contradiction C415/C415 adjudicated as not holding: the community-portal runtime's processLock write of data/community-portal-runtime.lock (line 82) and release?.() (line 236) are lock-file management, not changes to setup screens, provider defaults, or proxy config, so they do not break claims D15/D22/D64/D71; left unflagged.
The approvals module header says optional modules '(self-mod, future module gates)' register approval handlers here; whether the repository ships a self-modification module and what files it would write is not shown in this batch.
Persistence
Residue R47-R54 ('.ssh', '.gnupg', '.aws', '.netrc', '.npmrc', '.pypirc', 'id_rsa', 'id_ed25519' as undeclared file_read at src/modules/mount-security/index.ts lines 56-81) appears refuted by the cited content: those lines are entries in DEFAULT_BLOCKED_PATTERNS, matched by matchesBlockedPattern/validateMount to REJECT mounting those credential paths into containers, not to read them. Should these residue items be withdrawn rather than adjudicated as necessary/unexplained/concealed? Unit SRC:7cb⟦… 44 more chars …⟧
Credential access
Contradictions C909-C926 (getDb().run INSERT/UPDATE/DELETE in src/modules/permissions/db/*.ts vs claim D90) appear non-genuine: getDb() is NanoClaw's own state database via src/db/connection.js, and these parameterized calls neither use @photon-ai/imessage-kit's bundled better-sqlite3 nor open chat.db, so they do not break the claim that that dependency's copy can't open the chat database. Confirm the contradictions are refuted; the cited units are marked clean.
Code execution
Contradiction leads C417-C420 (DET:2c0d220d722358f2, DET:49bcbd9155e265e0, DET:d17bea13c6ab0aff, DET:7321a35662a6ccc7) pair the run-log append/read/unlink capability in src/modules/scheduling/run-log.ts with claim texts D15/D22/D64/D71; the writes target only <GROUPS_DIR>/<group>/tasks/<series>.md as the documented task run-log feature and do not touch provider defaults, setup screens, or proxy config, so no contradiction finding is reported, but the claim units (e.g. SRC:c749c5e9c2cd5800 for D6⟦… 56 more chars …⟧
Persistence
Three EXFIL-classed detector leads quote a claim about opening a DM with POST /users/@me/channels that appears nowhere in the cited units' text; the provenance of that claim string is unknown and it does not corroborate any exfiltration in the shown proxy-tunnel code.
The auto-approval grants full filesystem read/write on '/' and enables network inside the container; the stated boundary ('NanoClaw container isolation + OneCLI allow-list') is not shown in these units, so containment of these grants cannot be confirmed from the evidence.
Privilege escalation
The requested target is skill 'add-cursor' (a Cursor Agent SDK provider) but every owed unit lives under .claude/skills/add-codex/payload and implements an OpenAI Codex provider with OpenAI sign-in — is this the intended artifact pairing or a labeling/sampling mismatch?
Whether the `channels` branch the skills copy adapter source from is part of this repository, and what that copied code does once written into src/channels and built/executed.
Supply chain
The batch target is the add-cursor skill, but every shown unit belongs to add-teams, add-telegram, or the container agent-runner; no add-cursor behavior chain was present in this batch to evaluate.
Which repository and ref does nc:copy from-branch:channels resolve to, and is the fetched adapter code pinned to a commit rather than a mutable branch head?
Supply chain
The claim sentences cited by the PY-CLAIM-CONTRADICTION leads ('The setup screens and step sequence do not change.', 'Open the DM with `POST /users/@me/channels` …', 'Its `chat.db` reader …') do not appear in any shown unit, so the alleged contradictions could not be verified; which file carries those claims and do the flagged file_write/network/exec behaviors actually contradict them?
Detector leads (PY-CLAIM-CONTRADICTION) quote claims ('Its chat.db reader (@photon-ai/imessage-kit) brings its own better-sqlite3 12.x…' and 'The setup screens and step sequence do not change.') that do not appear in the cited units' text; the asserted contradictions between documentation claims and the exec/file_write calls cannot be verified from this batch.
Which git remote hosts supply the channels/registry branch content — are NANOCLAW_CHANNELS_REMOTE / NANOCLAW_REGISTRY_REMOTE expected to point at a fixed trusted host, and can they redirect skill installs to an attacker-controlled remote?
Supply chain
Setup clones a templates repository ('One git clone … the list comes from the clone's index.json') — what URL does it clone from, and is the cloned template content executed or only copied?
Supply chain
phEmit telemetry events (first_chat_ready, channel_chosen, image_source_chosen, setup_incomplete, setup_completed) are emitted throughout setup, but the emitter's implementation and destination are not in the shown units — do these events leave the host, and what fields do they carry?
Data exfiltration
The registry login flow discloses recording the operator's email address, and the login driver is described as flipping the install's image source to 'hardened' as a side effect — which host receives the credentials/identity and is the image-source override guarded in all paths?
Data exfiltration
init-first-agent is described (comments) as granting the first DM contact the owner role with cli_scope=global on the wired agent; the granting code is not shown — is that authority constrained to a confirmed owner and revocable?
Privilege escalation
Channel SKILL.md payloads applied by runSkill (add-slack, add-telegram, …) and the skill engine's remote payload resolution (resolveRemote) are not in the shown units — are channel payloads fetched from the mutable channels branch and executed as agent instructions?
Supply chain
resolveTimezoneViaClaude forwards the operator's free-text location answer to the Claude CLI and its return value is persisted via the --tz step — is the returned string constrained to an IANA zone before use, and where is the raw input sent?
Data exfiltration
The hardened container image fetch (runWindowedStep 'container', readAgentImagePin) names an Echo-built image but the registry destination and pin verification are not in the shown units.
Supply chain
The Slack broker calls send the install/manager token, workspace team ids and the connected user id to a service whose base URL is resolved at runtime (core.readServiceBase()); whether these credentials and identifiers go only to the operator's configured NanoClaw service cannot be confirmed from the shown units.
Data exfiltration
restart.sh lines 61-67 (the Linux nohup-wrapper fallback restart path referenced by the decoded comments) were not shown; what the fallback restart path executes is unknown.
Code execution
What commands and steps does the add-cursor SKILL.md instruct, given the driver executes its directives verbatim via bash -c on the host?
Code execution
Where do credential values reused by reuseFromEnv from the project .env flow after being merged into skill inputs?
Credential access
Can the Claude-assist path reached from a stalled step automatically execute a proposed fix command, or does it only display it for the user?
Code execution
What payload does SetupClient.register() transmit to the portal origin, and is the hostname/cwd label included in what is sent off-host?
Data exfiltration
Several detector lead 'claim' texts (the better-sqlite3 chat.db claim and the Discord DM POST /users/@me/channels claim) do not appear in any unit shown in this batch, so the claimed contradictions cannot be verified against the cited content.
The detector leads quote declared claims (an iMessage chat.db reader via @photon-ai/imessage-kit, a Discord DM via POST /users/@me/channels, and 'The setup screens and step sequence do not change.') that appear in none of the shown units; the origin of these claims is unknown, so the asserted claim-vs-behavior contradictions cannot be evaluated from this evidence.
Who creates the local Slack job file and its serviceBase/identity token — could a tampered job file redirect the bearer-token POST (and the /api/v1/device/slack status reports) to an attacker-chosen https origin?
Data exfiltration
printLeftAlone says the uninstall leaves a 'PATH line in ~/.bashrc and ~/.zshrc' behind — which setup code writes that shell-rc PATH line, what directory does it prepend, and is it disclosed at install time?
Persistence
Which host and credentials does slackProgressClient use for the POST /api/v1/device/slack status reporting in runSlackJob?
Data exfiltration
The target's declared description says the skill provides Cursor as an agent provider, but the units shown are nanoclaw host setup and messaging-channel infrastructure (WhatsApp Baileys auth, service verification, channel adapter registry); confirm whether these files are in this skill's scope and whether any skill entry point invokes them, since a capability-fetch to wppconnect.io and channel-credential reads are not covered by the declared description.
The journal helpers writePrivate and processLock are documented to enforce 0600/lock semantics on data/community-portal.json, but their implementations are not among the shown units; confirm they enforce the stated file modes.
The owed units are all host-application modules (community-portal, config, container-config, container-runner, concurrency) and none of them implements the declared Cursor-provider capability of this skill; where is the Cursor provider implementation that the declared description covers?
Whether any provider host adapter (implementations of getProviderContainerConfig / realizeProviderSpawnSurfaces, not in this batch) consumes the passed hostEnv beyond selecting its own provider key, and whether contribution.env carries host environment values into the container or off-host.
Credential access
What validateAdditionalMounts allowlists, and whether container-config additional mounts can expose arbitrary host paths (including credential paths) to the agent container.
Privilege escalation
The owed units are all host-side messaging DB, migration, and delivery code; no add-cursor/Cursor provider code (skill instructions, credential-gateway wiring, or provider invocation) appears among them, so the declared skill behavior itself cannot be assessed in this batch.
The contradiction detector leads cite claim texts ('The setup screens and step sequence do not change.', 'Its `chat.db` reader (`@photon-ai/imessage-kit`) brings its own `better-sqlite3` 12.x...') that appear in none of the units in this batch, so the alleged claim-vs-code contradictions cannot be evaluated from the evidence shown.
Driver and gateway selection allows skill-installed overlays to register a session driver or gateway provider by appending an import line to the installed.ts barrels; whether the add-cursor skill appends such imports, and what the appended driver executes at spawn, is not shown in this batch.
Code execution
Which delivery actions are registered and whether any are unguarded: handleSystemAction executes agent-triggered 'system' message actions directly, and unguarded entries run without an approval object.
Privilege escalation
install-slug derives launchd plist labels (com.nanoclaw-v2-<slug>) and systemd unit names for what its docs call service registration, but no unit in this batch shows where these names are consumed — do any code paths write launchd plists or systemd unit files that persist the host?
Persistence
The AnchoredDir primitive that bounds skill copying and deletion (claimed to refuse symlinks and anchor all opens by descriptor) is not shown; does its implementation actually prevent escapes from the group folder mounts for both source and destination?
Can the `origin` in data/community-portal.json be changed to a host other than the operator-configured portal (by setup, a cell push, or the reconcile client), causing the stored install token and device key to authenticate to an attacker-chosen server?
Data exfiltration
What process or code does launchSlackJob start, and does the saved Slack install worker fetch or execute anything from the cell?
Code execution
Which module imports follow the barrel header, and is the `modules` branch pull pinned to a commit or installable by any agent via an /add-<name> skill without admin approval?
Supply chain
None of the shown units implements the declared add-cursor Cursor provider or its credential gateway; are these host modules shipped as part of the add-cursor skill target or only present in the same repository?
No unit in this batch implements the declared Cursor provider or its credential gateway; whether a Cursor API key is read from the environment or a store, and where it is sent, is not visible from the shown permissions/scheduling/self-mod files (closest context is the provider-config comment in SRC:cfac942dbf9adf7c).
Credential access
Detector rule PY-CLAIM-CONTRADICTION repeatedly cites a claim 'The setup screens and step sequence do not change.' that appears in none of the shown units; which file of this artifact contains that claim, and does it disclose the host-side CLAUDE.md/settings/symlink writes performed by the realization code?
Persistence
Do the gateway credential adapters actually send credentials to contract-declared modelEndpoints URLs, and which credentials are transmitted — the consumer of getProviderModelEndpoint/providerModelAllowedHosts is not shown in this pass?
Credential access
The PY-CLAIM-CONTRADICTION detector leads cite the claim 'The setup screens and step sequence do not change.', which does not appear in the text of any cited unit; no document containing that claim is in evidence, so the asserted contradiction cannot be confirmed from the shown content (the underlying file writes and the fixed-argument git exec were verified directly and are managed/benign).
[invalid file request] What files does the add-cursor skill instruct the agent to edit and what commands to run, and does any step change the default provider, the setup flow, or reach beyond wiring the Cursor provider (context for claims D64 and D71 adjudicated against the runner file writes in this batch)?
Persistence
[invalid file request] Show the imports, the STEPS map, and the definitions or import sites of withSetupLock and launchSlackJob: which step modules does STEPS dynamically load, do any of those steps run dependency build scripts (npm/node-gyp rebuild) that would contradict the add-imessage claim D90, and what does launchSlackJob send or execute?
Code execution
[file request setup/index.ts] What does the --step provider-auth cursor/codex step (which the skills instruct the agent to run) actually execute — only the described vault walk-through and install check, or any additional host writes or network calls?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.ts] Do the implementation bodies (beyond the recovered comments) confine Cursor SDK traffic to the credential-gateway proxy routes and archive only completed exchanges, with no additional endpoints, uploads, or telemetry?
Data exfiltration
[file request .claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.ts] Does the server-to-client request handler grant every permission negotiation, MCP elicitation, and tool call unconditionally, and does it force hook trust on every thread as the comments state?
Privilege escalation
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-auth.ts] Does the login helper only mint the expiring key into the mode-0600 handoff file without printing, logging, or transmitting it anywhere other than that file?
Credential access
[file request .claude/skills/add-cursor/REMOVE.md] What does the Cursor provider removal procedure instruct the agent to do — file deletions, service/config changes, credential or gateway entry removals — and does anything go beyond uninstalling this provider?
Destructive action
[file request scripts/photon-setup.ts] Which hosts does the device-login/provisioning script contact and what does it write (PHOTON_PROJECT_ID/PHOTON_PROJECT_SECRET to .env, token to data/photon-auth.json); does it send any local data beyond Photon's dashboard/Spectrum APIs?
Credential access
[file request setup/channels/imessage-configure.sh] What does the backend-configure script write or remove in .env and elsewhere, and does it touch anything outside the iMessage backend selector?
Persistence
[file request setup/lib/restart.sh] What does the shared restart script do beyond restarting the NanoClaw service (service control mechanism, env or config handling)?
Code execution
[file request container/agent-runner/src/providers/cursor-auth.ts] Does the auth helper only exchange/mint the Cursor key with Cursor and the credential gateway, writing only the mode-0600 handoff file, and never print, log, or transmit the key elsewhere?
Credential access
[file request .claude/skills/add-teams/SKILL.md] What do the Alternatives (manual Azure portal fallback, from line 388 onward) instructions direct the agent and operator to do, and do the steps stay within Teams bot setup?
Code execution
[file request .claude/skills/telegram-multi-instance/SKILL.md] The add-telegram Channel Info block points agents at this doc on the channels branch; does it contain instructions beyond naming extra bot-token env keys (e.g., network calls, credential movement, or behavioral directives)?
Supply chain
[file request src/channels/telegram.ts] This file is overwritten at install time from the mutable channels branch (branch is canonical); does the branch version contact only api.telegram.org with the configured bot token, or does it send conversation data or tokens anywhere else?
Data exfiltration
[file request setup/channels/teams-manifest-build.ts] This script is run by the add-teams skill (including with --rsc); does it only build the local teams-app-package.zip under data/teams, or does it make network calls or write outside data/teams?
Code execution
[file request scripts/upgrade-state.ts] What does `set` write to data/upgrade-state.json, and does it validate that the checkout actually completed the supported upgrade steps (migrations, rebuilds) before stamping, or does it stamp unconditionally on request?
Persistence
[file request setup/pair-telegram.ts] The pair-telegram step registered in setup/index.ts watches for the 6-digit code and resolves the chat id and Telegram user id; does it transmit the bot token or resolved identifiers anywhere besides Telegram APIs and the local DB?
Data exfiltration
[file request .claude/skills/add-cursor/SKILL.md] What nc: directives, secret prompts, operator blocks, run effects (build/test/fetch/restart/wire/step), env writes, and from-branch copies does the add-cursor SKILL.md instruct the agent to perform, and does any prose steer beyond installing Cursor as a provider?
Agent hijacking
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-hook.test.ts] What does fs.rmSync(base, { recursive: true, force: true }) at line 55 delete — an idempotent test fixture under a temp directory, or a runtime path?
Destructive action
[file request src/modules/permissions/db/user-roles.ts] Under what conditions does the DELETE FROM user_roles statement at line 21 run, and is it scoped to the acting user's own role with agent_group_id IS NULL?
Code execution
[file request src/project-doc-compose.ts] What file does writeAtomic at line 250 write and when, and does it change setup screens or step sequence contrary to the claim that they do not change?
Persistence
[file request setup/run-suggested.sh] Does this script execute the Claude-suggested fix command only after the operator edits and confirms it, or can it auto-exec the parsed COMMAND?
Code execution
[file request .claude/skills/add-cursor/payload/setup/providers/cursor.ts] What does the Cursor provider's runAuth do with the Cursor-account token or API key — where is it stored, and is it ever sent anywhere other than the local credential gateway?
Credential access
[file request .claude/skills/add-cursor/SKILL.md] Do this skill's directives (nc:operator, nc:prompt, nc:copy from-branch, nc:run) stay within installing and wiring the Cursor provider, or do any steer the agent beyond that declared task?
Agent hijacking
[file request scripts/skill-apply.ts] How does the directive engine gate run/effect:step directives — is any operator confirmation actually required before a side-effecting command, given the driver's confirm seams auto-proceed?
Code execution
[file request setup/run-suggested.sh] Show the script body: does the eval path itself enforce that the command was displayed to and confirmed by the user (e.g. bash pre-filled readline requiring Enter), or can a caller invoke it in a way that executes without confirmation?
Code execution
[file request src/templates/library.ts] Does line 56 write core.hooksPath=/dev/null (disabling host git hooks), and does the text near it claim that the setup screens and step sequence do not change?
Persistence
[file request scripts/skill-apply.ts] What file does the writeFileSync at line 1115 write (the '<dynamic>' path persisting JSON), and does it contradict a displayed claim that the setup screens and step sequence do not change?
Persistence
[file request setup/registry-login.ts] What does writeSecretFile write to ~/.config/nanoclaw/registry-auth.json around lines 380-383, and does the text 'The setup screens and step sequence do not change.' appear in this file relative to that write?
Persistence
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.ts] What does mergeMemoryHooks write into the project's hooks.json, and does the Cursor provider modify agent control-plane configuration (hooks, settings, memory files) beyond the declared provider role?
Persistence
[file request setup/service.ts] Under what condition does setup/service.ts execute pkill -f against the project's dist/index.js, and is it a gated managed-service restart rather than arbitrary process termination?
Code execution
[file request .claude/skills/add-cursor/SKILL.md] What instructions does the add-cursor skill body give the agent (install steps, files to edit, commands to run), and do any steer the agent beyond adding the Cursor provider?
Agent hijacking
[file request .claude/skills/add-cursor/payload/src/provider-contracts/cursor.ts] What surfaces, modelDomains/endpointAuthorities exemptions, and speedTiers does the cursor provider contract declare, and does any declared text carry provider-authored instruction prose rather than facts for the core-owned canon?
Agent hijacking
[file request container/agent-runner/src/providers/cursor-hook.ts] What does the cursor provider hook do inside the container agent-runner (which SDK calls, env reads, or network sends does it perform)?
Code execution
[file request src/upgrade-state.ts] What exact message does enforceUpgradeTripwire write for the coding agent, and does it instruct actions beyond completing the sanctioned upgrade (for example running setup scripts without user confirmation)?
Agent hijacking
[file request src/drivers/index.ts] Line 21 contains 'silently run' - what does this text instruct the agent to run, and is the action meant to be hidden from the user?
Agent hijacking
[file request setup/install-claude.sh] What URL does the curl|bash pipeline at line 11 fetch and execute, and is the remote content pinned, checksummed, or otherwise verified before execution?
Code execution
[file request container/agent-runner/src/providers/claude-config.ts] Under what conditions is bypassPermissions set, and does it disable the agent's permission or sandbox prompts?
Privilege escalation
[file request setup/service.ts] What systemd unit does line 226 write under /etc/systemd/system/, with what contents, and is this host-level persistence disclosed as part of the declared install flow?
Persistence
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/provider-contracts/exchange-archive.ts] Does archiveProviderExchange only persist exchange data (prompt, result, continuation, status) to local storage under conversations/ with no network transmission to any host?
Data exfiltration
[file request .claude/skills/add-cursor/payload/setup/gateways/credential-store.ts] Does the credential gateway connection send the Cursor API key only to the selected local gateway and delete the mode-0600 handoff file after reading it, with no other destination for the key?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/memory/session-hook.ts] Does memoryContextForSessionStart only read the local memory tree and return its contents as session context, with no network access or reads beyond the declared memory directories?
Reconnaissance
[file request .claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.ts] Do the implementations of buildCodexProcessEnv (env allowlist filtering of secret-like host env) and attachCodexAutoApproval (unconditional approval grants with filesystem '/' and network) match what the tests and comments assert?
Privilege escalation
[file request .claude/skills/add-cursor/payload/setup/providers/cursor.ts] What does CURSOR_LOGIN_HELPER point to, and do the imports/constants (pinnedBunVersion, CURSOR_SDK_VERSION, CURSOR_CREDENTIAL_TARGETS) show the login helper only mints a Cursor key into the handoff file without other destinations?
Code execution
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-auth.ts] Does the container-side Cursor auth path send credentials only as the placeholder bearer header rewritten by the gateway to cursor.sh/cursor.com, with no other network destination or local key persistence?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-hook.ts] What does the Cursor hook module register (memory/session hooks) and does it write or send anything beyond the declared .cursor-shared state volume and AGENTS.md surfaces?
Persistence
[file request .claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.ts] What binary and arguments does spawnCodexAppServer use, and which entries does CODEX_ENV_ALLOWLIST forward to the codex process (any credential-bearing environment variables)?
Credential access
[file request .claude/skills/add-codex/payload/container/agent-runner/src/memory/hook.ts] What does the memory SessionStart hook (bun /app/src/memory/hook.ts) execute when a codex session starts, and does it send any data off-host?
Persistence
[file request .claude/skills/add-codex/payload/setup/providers/codex.ts] How do runCodexLoginAuth and the gateway vault handle the OAuth session and API key (destination of vaulted credentials, what gateway_store_failed does), and is anything sent beyond the declared credential gateway?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-app-server.ts] Does the add-cursor payload contain an auto-approval or permission-grant path analogous to attachCodexAutoApproval (accepting execution approvals or granting filesystem/network permissions) or a bypass of trust checks?
Privilege escalation
[file request .claude/skills/add-codex/payload/setup/gateways/credential-store.ts] Where does ProviderCredentialStore.save persist the codex OAuth auth.json and pasted API keys, and does any save/refresh path transmit the credential off-host or to destinations other than the provider endpoints (api.openai.com, chatgpt.com, auth.openai.com)? Residues R3/R4 aside, the codex provider routes live login credentials through this module and its storage destination is not shown.
Credential access
[file request .claude/skills/add-codex/payload/container/AGENTS.md] CODEX_PROJECT_DOC declares container/AGENTS.md as the base document composed into every codex group's AGENTS.md (mounted read-only at /workspace/agent/AGENTS.md). Does this base document contain only the declared provider/project instructions, or any additional instructions conditioning agent behavior, overriding user instructions, or directing network/file actions?
Agent hijacking
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.ts] Does the provider runtime match its declaration: sends only the CURSOR_API_KEY placeholder through the gateway proxy, pins HTTP/1.1, refuses HTTP/2 bypass, and writes only the declared memory hooks to .cursor/hooks.json?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-auth.ts] Does the login helper keep the minted key to the mode-0600 handoff file (store null, no stdout, no argv, no network send of the raw key) as the SKILL.md and its tests claim?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-hook.ts] What does the memory hook command executed from hooks.json actually run and read, and does it only inject the shared memory context as the hook tests describe?
Persistence
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-gateway-probe.ts] What endpoints does the gateway probe contact and what data does it transmit?
Code execution
[file request .claude/skills/add-cursor/payload/setup/providers/cursor.ts] Does the setup auth walk-through send the API key only to the credential gateway and the two declared Cursor routes (api2.cursor.sh exchange, api.cursor.com/v1/models), with no other egress of the key?
Credential access
[file request .claude/skills/add-cursor/REMOVE.md] Does the removal procedure actually undo the hooks.json, barrel import, service registration, and dependency changes this skill makes, without leaving residual persistence?
Persistence
[file request .claude/skills/add-cursor/payload/src/providers/cursor.ts] Is the host-side provider the declared data-only host contract (composed AGENTS.md, .cursor-shared state volume, skill directories, model domains) with no hidden side effects?
Code execution
[file request .claude/skills/add-cursor/payload/src/provider-contracts/cursor.ts] Does the host contract declare only the documented surface (execution stance, model mapping, memory hooks, MCP mapping) and nothing beyond it?
Code execution
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-gateway-probe.ts] runProbe spawns this file as a child with a copy of the parent environment (minus proxy/cursor vars, plus a decoy key); does the probe do anything beyond driving the Cursor SDK through the local fake proxy, such as direct outbound network, env/key material leaving the host, or writes outside its temp dirs?
Data exfiltration
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-auth.ts] The setup login helper (spawned as bun cursor-auth.ts with an --output handoff path) mints the Cursor key; does it only write the key to the handoff path and talk to Cursor's own auth endpoints, with no other destination for the key or machine data?
Credential access
[file request .claude/skills/add-cursor/payload/setup/gateways/credential-store.js] The gateway-proxy test says the gateway sets SSL_CERT_FILE to its own CA bundle and swaps in the vaulted key on its routes; does the credential gateway generate its TLS CA per installation and keep the real Cursor key vaulted on the host, or does it ship a static CA/key and where does that key travel?
Data exfiltration
[file request setup/lib/restart.sh] What does setup/lib/restart.sh, which the add-discord, add-imessage, and add-slack skills instruct the agent to run, actually execute, restart, or write?
Code execution
[file request setup/channels/imessage-configure.sh] What does imessage-configure.sh write to .env or other host files when invoked with 'local' or 'hosted'?
Persistence
[file request scripts/photon-setup.ts] Which hosts does photon-setup.ts contact during device login and provisioning, what data (phone number, bearer token, project secret) does it send or store, and exactly what does it write to .env and data/photon-auth.json?
Data exfiltration
[file request src/channels/discord.ts] The add-discord skill copies this adapter from the channels branch: which endpoints does it contact and what data does it send off-host beyond the Discord API?
Data exfiltration
[file request src/channels/imessage.ts] The add-imessage skill copies this adapter from the channels branch: what does it read (chat.db scope) and which endpoints does it contact or send data to off-host?
Data exfiltration
[file request src/channels/slack.ts] The add-slack skill copies this adapter from the channels branch: which endpoints does it contact and what data does it send off-host beyond the Slack API?
Data exfiltration
[file request src/channels/teams.ts] The add-teams skill copies this adapter from the channels branch: which endpoints does it contact and what data does it send off-host beyond the Microsoft Teams infrastructure?
Data exfiltration
[file request .claude/skills/add-cursor/payload/src/providers/cursor.ts] What does the cursor provider's registerProviderContainerConfig / getProviderContainerConfig contribute at runtime — which mounts, env values (e.g. how the real CURSOR_API_KEY is sourced), and network access does it set up?
Credential access
[file request setup/lib/restart.sh] Does restart.sh, run by the add-teams and add-telegram restart steps, only restart the local NanoClaw service, or does it also fetch code, modify environment/config, or change network exposure?
Code execution
[file request scripts/init-first-agent.ts] When invoked as 'pnpm exec tsx scripts/init-first-agent.ts --channel teams --user-id ... --platform-id ... --display-name ... --agent-name ... --role owner', what does init-first-agent.ts read, write, or transmit?
Persistence
[file request setup/index.ts] What do the pair-telegram and set-env steps do when run as 'pnpm exec tsx setup/index.ts --step pair-telegram' or '--step set-env --key ... --value ...' — what do they read, write, or transmit, and does the pair-telegram loader appended to STEPS match the declared behavior?
Code execution
[file request setup/channels/teams-manifest-build.ts] Does teams-manifest-build.ts only build the Teams app package zip in-process as declared, or does it also write host config or contact the network?
Code execution
[file request src/channels/telegram.ts] Is the Telegram adapter (telegram.ts plus telegram-pairing.ts and the tests copied via nc:copy from-branch:channels) shipped in this repository, and what network endpoints and file access does it have at runtime?
Supply chain
[file request container/agent-runner/src/providers/cwd-shim.ts] Does shimCwd only wrap a stdio MCP server config to add a working directory, or does it also modify the command, arguments, or environment?
Code execution
[file request container/agent-runner/src/memory/hook.ts] What does the memory session-start hook (bun /app/src/memory/hook.ts) print into the new context window, and does it read or transmit anything beyond the /workspace/agent/memory tree?
Data exfiltration
[file request container/release-image.sh] What does release-image.sh --fetch do — which network endpoint or registry does it query to resolve the published image reference, is that source pinned/official rather than mutable, and does it send any local data?
Supply chain
[file request setup/lib/install-slug.sh] This script is sourced by container/build.sh and container/pull.sh — does it only derive the container image slug, or does it perform any network access, credential access, or file writes beyond slug derivation?
Code execution
[file request container/Dockerfile] What base image and build steps does the default agent container Dockerfile use — is the base pinned by digest, and do any RUN steps fetch or execute code from remote or unpinned sources beyond the pinned pnpm installs?
Supply chain
[file request scripts/upgrade-state.ts] Does `upgrade-state.ts set` perform any validation before stamping data/upgrade-state.json, or can it clear the startup exact-code tripwire unconditionally when invoked directly?
Persistence
[file request src/group-persona.ts] What exactly does stageGroupPersona write, and is it confined to the agent group's own folder under GROUPS_DIR?
Persistence
[file request package.json] Does the root package.json declare a pnpm lifecycle-script policy (pnpm.onlyBuiltDependencies / pnpm.neverBuiltDependencies or equivalent) that determines whether `pnpm install --frozen-lockfile` in scripts/provider-contract-verifier.ts executes dependency build scripts, which would contradict claim D90 that NanoClaw doesn't run dependency build scripts?
Code execution
[file request container/agent-runner/package.json] Does container/agent-runner's package.json (trustedDependencies) or bunfig.toml allow dependency lifecycle scripts to run during the `bun install --frozen-lockfile` executed by scripts/provider-contract-verifier.ts, which would contradict claim D90 that NanoClaw doesn't run dependency build scripts?
Code execution
[file request scripts/git-fetch-branch.ts] Does the from-branch fetch used by the skill-apply engine pin to an immutable commit/SHA and which remote/URL does it fetch from, or does it pull a mutable branch head during skill install/refresh?
Supply chain
[file request .claude/skills/add-cursor/SKILL.md] Which nc: directives does add-cursor ship — specifically whether it uses copy from-branch (remote content pull), whether env-set writes the Cursor API key into .env rather than the declared credential gateway, and whether any directive changes the default provider that claim D64 says stays claude until explicit opt-in?
Supply chain
[file request scripts/skill-apply.ts] How are gitFetchBranchCommand, gitShowToFileCommand, substitute, envKeySet and selfStatus implemented — do directive-authored paths or {{var}}-substituted values reach the shell unescaped, and can from-branch copy destinations escape the project root?
Code execution
[file request scripts/provider-contract-verifier.ts] Does pinnedBunVersion resolve to a fixed lockfile-pinned semver (never 'latest'), so the dlx fallback in portableDependencyCommand cannot execute unpinned remote code?
Supply chain
[file request src/templates/library.ts] What URL does cloneRegistry clone the NanoClaw template library from, is the fetched ref pinned or version-locked, and does installing a template via installTemplateAgent execute any of the cloned content?
Supply chain
[file request setup/lib/diagnostics.ts] Where does the phEmit diagnostics emitter send setup events such as auto_started, agent_provider_chosen, and channel_chosen — a local log only or a remote telemetry endpoint — and which fields accompany them?
Data exfiltration
[file request setup/registry-login.sh] What does the registry login script executed via runInheritScript('bash', [REGISTRY_LOGIN_SCRIPT]) actually run and transmit during the device flow, which endpoints does it contact, and where are resulting tokens stored?
Credential access
[file request src/community-portal/slack-job.ts] What does launchSlackJob start before main() runs inside withSetupLock, and does the background Slack job read local data or transmit anything off-host?
Data exfiltration
[file request setup/channels/slack-auto-register.ts] What credentials does the Slack auto-provision pre-step (registerSlackAutoProvision) obtain programmatically, from where, and where does it send or pre-bind them as skill inputs?
Credential access
[file request setup/channels/run-channel-skill.ts] Does the browserConsent:true flag passed by setup/auto.ts to runChannelSkillWithPreStep and runImagePortal short-circuit a user-facing consent prompt, and what does that consent gate?
Privilege escalation
[file request scripts/git-fetch-branch.ts] Does the channels-branch fetch pin a commit/digest or verify integrity, or does it fetch the mutable branch HEAD that is later imported and executed?
Supply chain
[file request scripts/git-show-to-file.ts] How is the fetched provisioning module materialized into src/provisioning/slack-app.ts, and is there any integrity check before it is dynamically imported?
Supply chain
[file request setup/lib/registry-state.ts] What does REGISTRY_LOGIN_SCRIPT execute (the Slack sign-in runs it via bash with --require-verified and then reads the install token), and is it in-tree and pinned?
Code execution
[file request setup/lib/skill-driver.ts] What do runSkill and hostExec execute and write when applying .claude/skills/<name> (fence execution, file effects, restarts), confirming the R22/R23 skill reads are the declared application mechanism?
Code execution
[file request scripts/init-first-agent.ts] What group, role, and scope grants (commented as owner role + cli_scope=global) and file or DB writes does the shared wire perform?
Privilege escalation
[file request src/community-portal/slack-job.ts] launchSlackJob runs inside withSetupLock on every setup invocation before main() — does it transmit any local data off-host (and to which endpoints) or fetch remote instructions?
Data exfiltration
[file request setup/registry/credential-helper.mjs] What does the installed docker-credential-nanoclaw helper do with the credentials Docker hands it — serve only the configured registry locally, or store or send them anywhere else?
Credential access
[file request container/pull.sh] Does container/pull.sh (executed by the container setup step on the pull path) fetch the image only from the registry named by the pinned reference, and does it execute anything else fetched remotely?
Code execution
[file request .claude/skills/add-cursor/SKILL.md] Does installing or running the add-cursor skill stamp NANOCLAW_GATEWAY_PROVIDER=cursor or otherwise change the default provider without explicit user opt-in, which would contradict the claim that the default stays claude until you opt in?
Persistence
[file request setup/install-claude.sh] What does setup/install-claude.sh download and execute, and with what privileges (curl pipes, sudo), when ensureClaudeReady offers to install the Claude CLI?
Supply chain
[file request setup/run-suggested.sh] How does setup/run-suggested.sh execute the command passed as its argument — does it show an editable pre-fill or apply any safeguards beyond the confirm prompt in offerClaudeAssist?
Code execution
[file request setup/auto.ts] Does the setup flow serving the add-cursor provider path invoke install-node.sh, install-signal-cli.sh, and the claude-assist/claude-handoff helpers, or are these only on other providers' paths?
Code execution
[file request setup/lib/claude-handoff.ts] What does ensureClaudeReady do when the claude CLI is missing or unauthenticated — does it install or sign in Claude on the spot, and is that gated on explicit operator consent before any install or authentication?
Supply chain
[file request setup/lib/claude-handoff.ts] Where is HandoffContext (including collectedValues) defined and populated, and are secret values redacted before buildHandoffPrompt embeds them into the handoff prompt?
Data exfiltration
[file request container/build.sh] Does container/build.sh (spawned by buildContainerImage) pin its base images and avoid downloading or executing unpinned remote code during the image build?
Supply chain
[file request setup/registry-login.ts] What data does the registry sign-in flow send to the broker (default https://registry.nanoclaw.dev), and how is the returned bearer token stored in ~/.config/nanoclaw?
Credential access
[file request .claude/skills/add-cursor/SKILL.md] Which commands, file writes, and network endpoints do this skill's nc:run/nc:env-set/nc:operator directives perform — do they stay within provider wiring (ncl groups config update --provider cursor, credential-gated sign-in) or reach further?
Code execution
[file request setup/lib/channels-remote.sh] What does resolve_channels_remote do — does it construct or fetch from a mutable remote URL, and with what credentials?
Supply chain
[file request setup/lib/claude-handoff.ts] What do offerClaudeOnFailure and offerClaudeHandoff spawn, and do they send setup context, logs, or prompt/credential values anywhere off-host?
Code execution
[file request src/upgrade-state.ts] Where does writeUpgradeState write the upgrade marker and what fields does it persist?
Persistence
[file request setup/lib/browser.ts] How does openUrl launch the browser — is the skill-document-supplied URL passed through a shell (injection risk) or exec'd safely, and is anything sent off-host?
Code execution
[file request setup/lib/diagnostics.ts] Where does emit() send the step_started/step_completed/setup_aborted diagnostic events — local log/CLI only, or any network destination (telemetry)?
Data exfiltration
[file request setup/lib/diagnostics.ts] Does the emit() diagnostics function (imported as phEmit and called with step_started/step_completed/step_stalled events) send telemetry off-host over the network, or only record locally, and what data do the events carry?
Data exfiltration
[file request setup/lib/claude-handoff.ts] Does offerClaudeOnFailure send the raw step log off-host (e.g. via the claude CLI or a network call), and does it execute any proposed fix command without explicit user confirmation?
Data exfiltration
[file request setup/peer-cleanup.ts] Do deadLaunchdTarget, deadSystemdTarget, and the systemd cleanup path stay scoped to NanoClaw-labeled services and refrain from removing any plist/unit whose launch target still exists on disk?
Destructive action
[file request setup/auto.ts] Which user-input values are passed to setupLog.userInput(), and could any of them contain credentials (tokens, passwords) that would be written in plaintext to logs/setup.log?
Credential access
[file request setup/peer-cleanup.ts] What file writes or removals does reapDeadPeer perform when reaping a dead peer unit (the file_write reported at line 222)?
Persistence
[file request scripts/update-skills.ts] What exact dependency command does portableDependencyCommand build when applyProviderSkill executes it via execSync, and does it pin versions or point at a non-official registry/index URL?
Supply chain
[file request setup/registry-login.ts] How does the sign-in driver spawned by registry-login.sh use NANOCLAW_REGISTRY_TOKEN, and where does it persist sign-in credentials?
Credential access
[file request src/community-portal/index.ts] Does SetupClient transmit the label (hostname and directory name) to the portal during register/claim, and what other local data does it send?
Data exfiltration
[file request .claude/skills/add-cursor/SKILL.md] Does the add-cursor SKILL.md instruct running setup/registry-login.sh or otherwise depend on NanoClaw registry sign-in (which would place the WorkOS/broker traffic inside the skill's declared flow rather than unexplained residue)?
Data exfiltration
[file request setup/install-cred-helper.ts] What does installCredentialHelper write or modify on the host (docker config credHelpers entry, helper binary location) when wireDockerCredentialHelper calls it?
Persistence
[file request setup/lib/registry-state.ts] What is DEFAULT_BROKER_URL (the default destination for /v1/enroll, /v1/session/probe, /v1/auth-config and /v1/account/preferences) and what files do writeImageSource and readAgentImagePin persist to?
Data exfiltration
[file request setup/registry-reconcile.ts] Show the docker rmi invocation and DB updates in registry-reconcile: which images are removed and which guards apply (SAFE_IMAGE_REF, foreign-pin skip, no -f flag)?
Destructive action
[file request container/pull.sh] Does container/pull.sh acquire the agent image by pinned digest, set NANOCLAW_PULL_NONCE for exactly one pull, and execute or download anything else during the pull?
Supply chain
[file request setup/install-cred-helper.ts] How does install-cred-helper install the helper binary and edit ~/.docker/config.json — only a single credHelpers entry for its own registry host, or other hosts or fields?
Persistence
[file request setup/registry-login.sh] What does registry-login.sh send to the broker during device-flow sign-in and what exactly does it persist (does it write registry-auth.json with the bearer token)?
Credential access
[file request setup/service.ts] What do setupSystemd/setupNohupFallback write and execute — user unit files, loginctl enable-linger, the docker.sock POSIX ACL change granting the current user rw, and any nohup launcher script?
Persistence
[file request setup/peer-cleanup.ts] Which services and registrations does cleanupUnhealthyPeers unload or remove, and how does it decide a peer is unhealthy?
Destructive action
[file request .claude/skills/add-cursor/SKILL.md] Does the skill instruct the agent to run these setup steps (service install, registry pull, run-suggested.sh), and does it disclose service persistence, registry credential storage, or broker telemetry?
Persistence
[file request .claude/skills/add-cursor/SKILL.md] Which setup steps and scripts does this skill instruct the agent to run — does its flow invoke setup/service.ts, setup/set-env.ts, or other shared setup modules, and does it disclose the systemd/nohup host service installation and docker-socket ACL workaround?
Persistence
[file request src/community-portal/slack-job.js] What base URL does slackProgressClient connect to, and exactly what data leaves the host in its requests (POST /api/v1/device/slack)?
Data exfiltration
[file request src/community-portal/index.js] What file permissions and contents does writePrivate use for the Slack job file that stores Slack bot tokens, and does processLock leave lock files behind?
Credential access
[file request setup/service.ts] What processes does killOrphanedProcesses terminate and how does checkDockerGroupStale determine staleness?
Code execution
[file request src/install-slug.ts] What container image base and registry does getContainerImageBase return, and is the agent image reference pinned by digest/version or mutable (scan code inspects a :latest tag)?
Supply chain
[file request src/webhook-server.ts] chat-sdk-bridge.ts registers inbound platform webhooks via registerWebhookAdapter from ../webhook-server.js: does that shared webhook server bind only to loopback, and does it verify platform signing secrets on every inbound request before dispatching events into sessions?
Manipulation
[file request setup/slack-worker.ts] What does the detached Slack worker spawned by launchSlackJob do with the inherited process environment and the saved install identity snapshot (token, account_id, install_id, deviceId, app tokens) — does it transmit any of it off-host, and to which origins?
Data exfiltration
[file request src/community-portal/device-client.ts] Which origins does DeviceClient.request send the bearer install token to, and can the origin be overridden at runtime to a host other than the configured portal?
Data exfiltration
[file request src/providers/provider-container-registry.ts] Which provider host adapters registered here consume the context.hostEnv passed by resolveProviderContribution, and where do the environment values they read flow (container env passthrough versus host-side use)?
Credential access
[file request src/project-doc-compose.ts] What does composeGroupProjectDoc write, which instruction sources does it inline into the composed project document, and is the write confined to the agent group directory that is later mounted read-only?
Persistence
[file request .claude/skills/add-cursor/SKILL.md] Verify the context of claims D64 (install does not flip the default provider) and D71 (do not remove the proxy on HTTP/2 errors): does the skill's install or troubleshooting flow write any provider/auth configuration that changes the default provider or removes the proxy? This settles whether the migration/DB writes flagged in contradictions C328-C334 break those claims; from the DB units shown, no provider default or proxy is touched.
Persistence
[file request .claude/skills/add-codex/SKILL.md] Verify the context of claims D15 (setup screens and step sequence do not change) and D22 (install does not flip the default provider): do the setup screens or install steps write provider defaults or alter user-facing flow in a way the migration schema changes in src/db/migrations would contradict? From the DB units shown, the migrations only alter the host's own SQLite schema and do not touch provider defaults.
Persistence
[file request src/db/connection.ts] Which SQLite module does getDb() open the host session database with — the project's own better-sqlite3 dependency or the copy bundled with @photon-ai/imessage-kit? This confirms whether the getDb().run(...) exec hits (C864-C869) genuinely contradict claim D90 (which concerns only the imessage-kit-bundled copy) or are unrelated host DB writes.
Code execution
[file request src/container-runtime.ts] Is CONTAINER_RUNTIME_BIN, passed to execFileSync by egress-lockdown.ts (dockerOk, egressNetworkInternal, gatewayAttached), a fixed local container-runtime binary, or can configuration or agent input redirect it to an arbitrary executable?
Code execution
[file request src/migrate-claude-memory-settings.ts] What does prepareClaudeMemorySettings create or reconcile in the group's .claude-shared settings.json (the agent container's ~/.claude settings) — does it add hooks, permission grants, or instruction overrides beyond memory settings?
Persistence
[file request .claude/skills/add-codex/SKILL.md] Adjudicating contradiction C344-C347 (template-skill materialization writes in src/group-skills.ts against the claim 'The setup screens and step sequence do not change.' at line 42): what does the claim scope cover, and does any host-side skill-tree copy/unlink contradict a setup-screen or step-sequence promise?
Persistence
[file request .claude/skills/add-cursor/SKILL.md] Adjudicating contradictions C344-C359 and C873-C875 (directory copy/unlink in src/group-skills.ts and SQL prepare/run statements in src/mailbox/sqlite/index.ts against claims at lines 153 and 173): does installing the add-cursor skill, as described in this context, perform any provider-default change, proxy removal, or dependency build-script run that the claims deny, given the observed writes are template-skill copies and mailbox-database SQL ra⟦… 34 more chars …⟧
Persistence
[file request src/compact-instructions.ts] What does compact-instructions.ts (the PreCompact hook command this code registers into Claude's settings.json) execute or modify when Claude Code invokes it?
Persistence
[file request src/templates/library.ts] Does ensureTemplateLocal download agent templates from a remote host, is the download pinned to a commit or ref, and can the fetched template content execute during stamping?
Supply chain
[file request src/modules/community-portal/slack-job.ts] What does launchSlackJob execute when it resumes the saved Slack install worker (spawned process, commands run, credentials read), and is the resumed worker bounded to the saved installation?
Code execution
[file request .claude/skills/add-cursor/SKILL.md] What does the add-cursor skill instruct the agent to fetch, install, or register, and does it pin the `modules` branch to an immutable ref when installing the cursor provider module?
Supply chain
[file request src/modules/permissions/index.ts] Does the channel-registration response handler re-verify approver privilege when processing the free-text agent-name reply, as guard.ts's comment states it deliberately does not?
Privilege escalation
[file request .claude/skills/add-cursor/SKILL.md] Do the add-cursor SKILL.md instructions surrounding D64 (line 153) and D71 (line 173) direct any install-time file writes, provider-default changes, or setup-flow modifications beyond the documented opt-in `ncl groups config update --provider cursor`, which could give the run-log writes/deletes a setup-time trigger?
Persistence
[file request src/provider-contracts/cursor.ts] What host surfaces does the add-cursor provider contract declare (project document fileName, state volumes, prepared files, skill backings, model endpoints/domains), and does any exceed what wiring Cursor as a local Agent SDK provider requires?
Persistence
[file request src/migrate-claude-memory-settings.ts] What does CLAUDE_DEFAULT_SETTINGS contain and what content does the claudeSettingsTransformer write when it reconciles the group's settings.json via dir.replaceFile?
Persistence
[file request container/CLAUDE.md] What standing instructions does the canonical instruction template (BASE_INSTRUCTIONS_PATH) render into every agent group's composed project document?
Agent hijacking
[file request src/group-skills.ts] What content does materializeTemplateSkills copy into provider skill backings, and from where do the templates originate?
Persistence
[file request src/templates/create-agent.ts] The restamp path updates only mcp_servers (skipping user-added servers) and never writes the group's provider field, which supports claims D22/D64 that installing leaves the default provider claude until explicit opt-in; does the initial template stamping path (createAgentFromTemplate, referenced by groupsCarryingPlugin and prepareTemplateTasks) write the provider or any credential/auth configuration, or only the same surfaces restamp handles?
Persistence
[file request scripts/upgrade-state.ts] enforceUpgradeTripwire prints FIX_COMMAND ('pnpm exec tsx scripts/upgrade-state.ts set') for a coding agent to run automatically; does the `set` subcommand in that script validate the checkout or gate who may stamp the upgrade marker, or does any local invocation clear the boot gate?
Persistence
[file request .claude/skills/add-cursor/payload/setup/providers/cursor.ts] Do runCursorLoginAuth and runCursorApiKeyAuth spawn the login-helper command from loginHelperCommand, prompt for a pasted key in a masked prompt, and delete the mode-0600 handoff file after reading it?
Code execution
[file request .claude/skills/add-cursor/payload/setup/src/gateways/credential-store.ts] Where does the credential gateway persist the Cursor API key (local file, OS keychain, or remote service), and does the key ever leave the host?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/memory/session-hook.ts] What does memoryContextForSessionStart read from disk, and how broad is the memory tree the auto-run hook script scans?
Reconnaissance
[file request .claude/skills/add-cursor/payload/scripts/provider-contract-verifier.ts] Is pinnedBunVersion a literal pinned version, and does isPinnedBunVersion only accept that exact version?
Code execution
[file request .claude/skills/add-cursor/SKILL.md] What instructions does the SKILL.md body beyond the shown frontmatter give the agent, for example the cursor_core_ready predicate and any commands it must run?
Code execution
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.gateway-proxy.test.ts] Does the parent test set CURSOR_API_KEY to a dummy non-placeholder value rather than a real credential before spawning the probe?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/provider-contracts/exchange-archive.ts] Where does archiveProviderExchange write the archived exchange (prompt and result text), and does it stay inside the workspace?
Persistence
[file request .claude/skills/add-cursor/payload/setup/providers/cursor.ts] What executable and arguments does loginHelperCommand() build for CURSOR_LOGIN_HELPER, and where does saveCursorKey store or transmit the Cursor API key (destination service/host)?
Code execution
[file request .claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.ts] What are the exact values of CODEX_APP_SERVER_ARGS, CODEX_SANDBOX_MODE, CODEX_APPROVAL_POLICY, and CODEX_ENV_ALLOWLIST?
Privilege escalation
[file request .claude/skills/add-codex/payload/container/AGENTS.md] What instructions does the runtime-contract base AGENTS.md (copied to container/AGENTS.md) give the container agent?
Agent hijacking
[file request container/agent-runner/src/memory/hook.ts] Does the Codex SessionStart memory hook (bun /app/src/memory/hook.ts) send workspace or conversation data off-host?
Data exfiltration
[file request .claude/skills/add-codex/payload/container/agent-runner/src/providers/codex-app-server.ts] Implementation of attachCodexAutoApproval: does it auto-approve codex tool calls or disable approval prompts, and what tools or commands does it accept silently?
Privilege escalation
[file request .claude/skills/add-codex/payload/container/agent-runner/src/providers/codex.ts] Implementation of writeCodexConfigToml and the contract beforeQuery runtime write: exactly what is written into config.toml and hooks.json per codex query, and do any written hooks execute commands?
Persistence
[file request .claude/skills/add-codex/payload/setup/credentials.ts] Where does the provider credential store returned by getCredentialStore persist vaulted codex OAuth auth.json tokens — a local file, OS keychain, or a remote gateway endpoint?
Credential access
[file request .claude/skills/add-codex/payload/container/agent-runner/src/container-runner.ts] How does the gateway proxy inject the real OpenAI credential in flight for codex traffic, and to which host does it forward requests?
Credential access
[file request .claude/skills/add-cursor/SKILL.md] Does the add-cursor skill ship or reference this add-codex payload, and does it disclose that OpenAI Codex provider files and OpenAI sign-in will be wired rather than Cursor SDK code?
Impersonation
[file request .claude/skills/add-cursor/payload/setup/providers/cursor.ts] The provider-auth setup step mints a Cursor key into a handoff file and hands it to the credential gateway: does it send the key anywhere besides the local gateway and Cursor's two declared routes, write outside the project, or fetch and execute remote content?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor.ts] The provider runtime (including the hooks.json writer and installHttp2ProxyGuard) is copied into the agent-runner: does it write any files outside the declared per-group state and memory/hook paths, read credentials beyond the placeholder, or open network connections other than to api2.cursor.sh/api.cursor.com through the configured proxy?
Persistence
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-gateway-probe.ts] This child is spawned with the parent's filtered environment including the decoy CURSOR_API_KEY: does it transmit any environment values, files, or keys off-host, and what does its JSON summary report back?
Data exfiltration
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-auth.ts] The login helper mints a Cursor API key: where exactly is the key written and read, and is it ever logged, echoed, placed in process arguments, or sent over the network by this file?
Credential access
[file request .claude/skills/add-cursor/payload/container/agent-runner/src/providers/cursor-hook.ts] The hooks.json entries run this script at every session start and preCompact: what does it read, execute, or transmit, and is its behavior limited to rendering local memory context?
Code execution
[file request setup/lib/restart.sh] What does setup/lib/restart.sh execute — does it only restart the local NanoClaw service, or does it also fetch, write, or send anything else?
Code execution
[file request setup/channels/imessage-configure.sh] What does the iMessage configure script write or modify (which .env keys and any other files) for the local and hosted backends?
Persistence
[file request scripts/photon-setup.ts] Which hosts does scripts/photon-setup.ts contact, and does any data beyond the phone number and provisioning state leave the host or get written outside .env/data?
Data exfiltration
[file request .claude/skills/add-cursor/SKILL.md] Which nc: directives and shell commands does the add-cursor SKILL.md instruct the agent to run (barrel appends, @cursor/sdk install, provider-auth step that spawns the bun login helper)?
Code execution
[file request src/channels/imessage.ts] Does the iMessage adapter read anything beyond the chat.db/account needed for the channel, and does it send anything to hosts other than the local channel and the documented Photon endpoints?
Data exfiltration
[file request setup/lib/restart.sh] What does setup/lib/restart.sh execute when the add-teams and add-telegram restart steps run it — only a service restart, or any downloads, writes, or additional commands?
Code execution
[file request scripts/init-first-agent.ts] What does scripts/init-first-agent.ts write when invoked with --channel/--user-id/--platform-id/--instance — database rows only, or also agent wiring or config files outside the data directory?
Persistence
[file request container/agent-runner/src/providers/claude.ts] Where does the /upload-trace flow send newestClaudeTranscript's ~/.claude/projects transcript file — local display only, or a network destination?
Data exfiltration
[file request container/agent-runner/src/memory/session-hook.ts] What command string does the memory runtime register as the Claude SessionStart hook (the hook.command written into settings.json) and what does that command execute?
Code execution
[file request setup/index.ts] What do the set-env and pair-telegram steps in setup/index.ts write and log when storing TELEGRAM_BOT_TOKEN values — does the token value ever reach logs, files outside .env, or the network?
Credential access
[file request scripts/upgrade-state.ts] What does the 'set' subcommand write, where, and does it perform any validation of who invoked it — could an agent-invoked run forge the upgrade-complete marker?
Privilege escalation
[file request container/agent-runner/src/providers/claude-config.ts] How is executionPolicy resolved — can permissionMode or allowDangerouslySkipPermissions be enabled, from what defaults or inputs (env, per-group config), and who can set them?
Privilege escalation
[file request container/skills/welcome/addenda] Do the shipped default welcome or any channel addenda instruct the agent beyond a benign greeting (send data, run commands, contact endpoints)?
Agent hijacking
[file request docker-credential-nanoclaw] Where does the docker-credential-nanoclaw helper send its credential-mint request (broker URL), what does it transmit, and how are returned registry credentials stored?
Credential access
[file request container/release-image.sh] What remote URL does --fetch retrieve agent-images.json from, is it hardcoded, and can the fetched mapping steer the docker pull in pull.sh to an attacker-chosen image reference?
Supply chain
[file request scripts/skill-apply.ts] Show the nc:run directive implementation: does {{var}} substitution shell-quote bound values before command execution, and can values captured from remote/API stdout (capture: from fetch output, effect:step terminal-block fields) reach an executed command unquoted when no validate: regex is declared? Also show which exec mechanism (execSync/spawn) runs the command.
Code execution
[file request scripts/skill-apply.ts] Show the copy directive's from-branch fetch implementation: which git remotes/URLs it pulls registry payloads from, whether the branch ref is pinned or mutable, and whether the fetched files are subsequently executed via dep/run directives.
Supply chain
[file request .claude/skills/add-cursor/SKILL.md] Which nc:run/dep/copy/env-set/json-merge directives does the add-cursor SKILL.md contain — what shell commands, package specs, target files, operator URLs, and from-branch sources do they carry, and how does it handle the Cursor API key or sign-in (does any directive transmit credentials)?
Code execution
[file request scripts/skill-apply.ts] Show the definitions of gitFetchBranchCommand and gitShowToFileCommand: how do they construct their shell command strings, and are the remote, branch, src, and dst values quoted or escaped before exec?
Code execution
[file request setup/lib/providers.ts] Where is applyProviderSkill defined and what exec implementation does it pass into applySkill (does it run directive commands via a shell, with which cwd and privileges), and does anything constrain which SKILL.md files it will apply?
Code execution
[file request setup/auto.ts] Which module provides phEmit (telemetry destination), and what values do REGISTRY_LOGIN_SCRIPT, PING_AGENT_FOLDER, and DEFAULT_AGENT_PROVIDER take?
Code execution
[file request scripts/init-first-agent.ts] What does the wire script do with --role and cli_scope=global — does it grant the first DM contact owner authority over the agent, and what authorization constraints apply?
Privilege escalation
[file request setup/lib/restart.sh] What does the companion-skills restart script execute, and does it touch anything beyond restarting the local NanoClaw service?
Code execution
[file request setup/lib/skill-driver.ts] How does runSkill apply a SKILL.md — does it execute embedded commands, and does resolveRemote fetch payloads from the mutable channels branch?
Supply chain
[file request setup/channels/slack-auto.ts] Where do the provisioned Slack tokens (xoxb/xapp) and the registry install token go — which hosts receive them, and are they written to disk or .env?
Data exfiltration
[file request setup/registry-login.ts] What host does the registry login device flow contact and what data (email, machine or install identifiers) is recorded or sent?
Data exfiltration
[file request scripts/delete-cli-agent.ts] Does the cleanup script only remove the local test agent group, or does it touch other state?
Code execution
[file request setup/registry/credential-helper.mjs] What does the installed docker-credential-nanoclaw helper do with the registry credentials docker hands it — does it only return stored auths to the docker client, or also write or send them anywhere (endpoints, logs, files)?
Data exfiltration
[file request setup/install-docker.sh] What does this auto-run installer execute — curl pipes to remote scripts, sudo commands, added package sources, or group/permission edits?
Code execution
[file request container/pull.sh] Does pull.sh fetch the agent image pinned by digest from a fixed registry, and does it run anything beyond docker pull and retagging?
Supply chain
[file request setup/channels/slack-auto.ts] Where do REGISTRY_LOGIN_SCRIPT and loadProvisioningCore point — is the bash login script and the Slack provisioning module loaded from repo-committed files or from remote/runtime-provided content?
Code execution
[file request setup/register-claude-token.sh] How is setup/install-claude.sh invoked — is the curl|bash vendor installer auto-run on an auth-path selection without extra confirmation?
Code execution
[file request container/Dockerfile] What does the agent container image build run at build time (remote fetches, install scripts) before the image is trusted for agent sessions?
Code execution
[file request scripts/init-cli-agent.ts] What does init-cli-agent.ts create and write when invoked by the cli-agent setup step?
Code execution
[file request setup/run-suggested.sh] Does run-suggested.sh execute the passed command directly in bash, and does it provide the advertised editable pre-fill before any execution?
Code execution
[file request setup/install-claude.sh] What does install-claude.sh download and execute to install the Claude CLI (URLs, pipes into shells, sudo usage)?
Code execution
[file request setup/install-cred-helper.ts] What does installCredentialHelper write (helper binary source, docker config edits), and where does the helper binary come from?
Persistence
[file request container/build.sh] What does the container build script execute or fetch (base images, curl|sh, registries) when spawned by buildContainerImage?
Code execution
[file request setup/lib/diagnostics.ts] What are POSTHOG_URL and POSTHOG_KEY set to, and do any emitted event properties include file paths or error text?
Data exfiltration
[file request setup/index.ts] What do the setup steps spawned by runner.ts (pnpm exec tsx setup/index.ts --step ...) actually do — any downloads, credential reads, config writes, or network sends?
Code execution
[file request .claude/skills/add-cursor/SKILL.md] Which nc:run commands and effects does this skill's document declare for host execution via hostExec, and do any fetch or pipe remote content?
Code execution
[file request scripts/skill-apply.ts] How does the directive engine turn SKILL.md run directives into hostExec commands, and is there any validation or allowlist applied before execution?
Code execution
[file request setup/lib/ph.ts] Where does phEmit send events (destination host, payload, opt-out), and is any workspace, env, or credential content included?
Data exfiltration
[file request setup/registry-login.ts] What does the registry sign-in driver transmit to the broker during the device flow, and where does it write the resulting token files?
Credential access
[file request setup/lib/registry-state.ts] What is the literal value of DEFAULT_BROKER_URL (and BROKER_URL_ENV_KEY / NANOCLAW_REGISTRY_API handling), i.e. which host receives registry credentials and tokens?
Data exfiltration
[file request setup/lib/install-cred-helper.ts] What binary does the credential-helper install write, from where is it obtained, and what does it write into docker's config.json credHelpers?
Persistence
[file request setup/lib/claude-assist.ts] What do offerClaudeOnFailure and offerClaudeHandoff spawn, and what data (failure transcript, raw log paths, prompt text) do they hand to the spawned Claude session?
Code execution
[file request setup/lib/channels-remote.sh] What does resolve_channels_remote in this sourced script execute, and does it fetch or run anything from the network?
Code execution
[file request .claude/skills/add-cursor/SKILL.md] Which commands and steps does the skill document instruct, given the driver executes its directives verbatim via bash -c?
Code execution
[file request src/channels/dial-pairing.js] What do createPairing, waitForPairing and getLineLock do — do they open network listeners or handle credentials?
Code execution
[file request src/channels/telegram-pairing.js] What do createPairing and waitForPairing do for the Telegram pairing flow — network listeners, token handling?
Code execution
[file request setup/lib/runner.ts] How does spawnStep build and execute the child command, and can step output or skill content inject into it?
Code execution
[file request setup/lib/claude-assist.ts] Does offerClaudeOnFailure/offerClaudeAssist execute Claude-proposed fix commands automatically or only with explicit user approval?
Code execution
[file request setup/lib/setup-client.ts] What data does SetupClient (register/sign-in) transmit to the portal origin, and is the hostname/cwd label sent off-host?
Data exfiltration
[file request setup/lib/reuse-from-env.ts] Which files does reuseFromEnv read, and where do reused credential values flow after being merged into skill inputs?
Credential access
[file request setup/install-cred-helper.ts] What files and host configurations does installCredentialHelper write (docker config.json credHelpers, helper binary location, PATH), and does it fetch anything from the network?
Persistence
[file request scripts/skill-apply.ts] Which SKILL.md directives does applySkill execute or copy (nc:run, nc:copy from-branch, dependency commands), and can it run commands or fetch content originating from a remote git branch?
Code execution
[file request setup/lib/channels-remote.sh] What does resolve_channels_remote do — does it contact network remotes, auto-add upstreams, or derive a URL used to copy content into the install?
Supply chain
[file request setup/providers/cursor.ts] What does the Cursor provider's runAuth do with the Cursor account credential or API key — where is it read from, where is it stored, and where is it sent?
Credential access
[file request setup/lib/registry-state.ts] Where do writeImageSource/readImageSource/readAgentImagePin persist state, and what is the DEFAULT_BROKER_URL the sign-in driver sends credentials and host metadata to?
Persistence
[file request setup/registry-login.ts] Show http(), enroll(), probeSession(), persistCredential(), resolveApiBase() and DEFAULT_BROKER_URL: where account tokens are written on disk and which hosts they are sent to.
Credential access
[file request setup/service.ts] Show setupLaunchd, setupLinux, cleanupUnhealthyPeers and the orphan-kill code: which unit/plist files are written where, which commands run (launchctl/systemctl/loginctl/setfacl/pkill/sg), and whether peer services are unloaded or removed.
Persistence
[file request container/pull.sh] What does pull.sh download and execute during refresh, and is the agent image reference pinned to a digest or a mutable tag?
Supply chain
[file request setup/install-cred-helper.ts] How is the credential-helper binary installed onto PATH (shebang rewrite, permissions) and how is ~/.docker/config.json modified to route the registry host?
Persistence
[file request setup/registry-login.sh] What does the shell wrapper do before running registry-login.ts — any downloads, environment capture, or output redirection of the login status?
Code execution
[file request setup/register-claude-token.sh] run-suggested.sh cites this as the same readline-confirmation pattern — does it register agent-obtained tokens or auto-confirm commands, and where do those tokens go?
Credential access
[file request setup/auto.ts] How is registry-login invoked from the setup wizard (runInheritScript) — is the device-flow browser sign-in triggered automatically during setup without an explicit user command?
Code execution
[file request setup/service.ts] What do renderLaunchdPlist, hostProxyEnvEntries, and writeServiceProxyEnv place into the launchd plist and the owner-only proxy env file — any tokens or credentials, which destinations, and does the plist set RunAtLoad/KeepAlive?
Credential access
[file request setup/channels/run-channel-skill.ts] What does runChannelSkill('slack', ...) do with the bot_token/app_token inputs passed by install() — which local files or network endpoints receive them?
Credential access
[file request setup/verify.ts] Which modules supply the helpers used by run() (inspectCentralDb, inspectAgentImage, readImageSource, readSlackJob, getServiceManager, emitStatus, DEFER_WIRE_CHANNELS), and do any of them send data off-host or execute commands beyond local docker/sqlite/service-manager queries?
Code execution
[file request setup/whatsapp-auth-version.ts] What are the exact values of TRACKER_URL and LOOKUP_TIMEOUT_MS, and does the fetch attach any credentials, tokens, or local file data to the outbound request?
Data exfiltration
[file request setup/slack-worker.ts] What does the detached Slack worker spawned by launchSlackJob do: which hosts does it contact with the job's install token and Slack app/bot tokens, and does it fetch or execute any remote code?
Data exfiltration
[file request src/community-portal/supervisor.ts] Where is CellLink instantiated and what do its onSnapshot, onChange, and onForbidden callbacks do with data pushed by the cell over the persistent auto-reconnecting WebSocket?
Code execution
[file request src/container-runner.ts] Does the image-build path append operator-specified npm packages to /root/.npmrc to enable their postinstall scripts, and are those packages validated before the build executes their install scripts?
Supply chain
[file request src/community-portal/device-client.ts] What does DeviceClient.request() transmit and where does save() persist the bearer token — is any credential sent to or stored anywhere other than the configured portal origin and the local account file?
Credential access
[file request src/container-config.ts] Are packages_apt/packages_npm values validated or constrained before buildAgentGroupImage interpolates them into Dockerfile RUN shell lines and allows their npm postinstall scripts?
Supply chain
[file request src/providers/index.ts] Where do getProviderContainerConfig and getProviderHostContract resolve, and does any provider adapter read hostEnv (process.env) into contribution.env or send env values off-host?
Credential access
[file request src/session-manager.ts] Does readOutboxFiles confine the content.files names (which arrive from agent-controlled message content) to the group's outbox directory, rejecting traversal or absolute paths, before buffers are handed to deliveryAdapter.deliver for sending off-host?
Data exfiltration
[file request src/delivery.ts] Where is runGuarded defined, does invoking it with approval=null (as getDeliveryAction does for guarded entries) enforce the guard or execute the handler, and which delivery actions are registered unguarded?
Privilege escalation
[file request src/modules/agent-to-agent/agent-route.ts] What permission checks does routeAgentMessage apply before delivering a message from one agent session to another agent destination?
Data exfiltration
[file request src/group-init.ts] Where is prepareClaudeMemorySettings defined (see this file's imports) and what exact content does it write into the group's .claude-shared/settings.json — does it add hooks, permissions, allowed-tools, or env entries?
Persistence
[file request src/drivers/installed.ts] Which overlay import lines currently exist in this barrel (is a Cursor or other out-of-tree session driver registered by an appended import)?
Code execution
[file request src/gateway-providers/installed.ts] Which overlay import lines currently exist in this barrel (is a Cursor or other gateway provider registered by an appended import)?
Code execution
[file request src/session-manager.ts] Are agentGroupId and sessionId of MailboxSessionKey validated against path traversal before being joined into DATA_DIR-based paths used by sessionMailboxDir/sessionMailboxPath for mkdirSync, SQLite opens, and fs.rmSync deletes?
Destructive action
[file request src/templates/create-agent.ts] What content is stamped into data/v2-sessions/<group-id>/.claude-shared/skills (the template store that materializeTemplateSkills copies into provider skill directories), and is any of that skill content fetched from remote or unpinned sources?
Supply chain
[file request src/migrate-claude-memory-settings.ts] What are CLAUDE_SETTINGS_FILE and CLAUDE_DEFAULT_SETTINGS, where is claudeSettingsTransformer imported from, and what exact content does its transform write into the Claude settings.json control-plane file?
Persistence
[file request src/modules/agent-to-agent/create-agent.ts] Where is ensureTemplateLocal defined and from what remote URL or registry are templates fetched; are fetched templates pinned to a commit, and what files does createAgentFromTemplate stamp into the new agent's workspace?
Supply chain
[file request src/modules/self-mod/index.ts] What do the install_packages and add_mcp_server approval handlers execute, and from which registries or URLs do they fetch packages and MCP servers?
Supply chain
[file request src/modules/community-portal/runtime.ts] Which modules provide readInstallIdentity, readDeviceKey, DeviceClient, CellLink, readSlackJob, and launchSlackJob, and what process does launchSlackJob start?
Code execution
[file request src/modules/index.ts] Which module imports follow the header comment, and where is the `modules` branch pulled from and is the ref pinned to a commit?
Supply chain
[file request .claude/skills/add-cursor/SKILL.md] Does the add-cursor skill fetch code or instructions from a remote source (including the `modules` branch), and where does it send the Cursor API key or sign-in token?
Supply chain
[file request src/modules/permissions/db/pending-sender-approvals.ts] Show the DECLINE_STAMP_ID_PREFIX definition to confirm it is a fixed code literal (not derived from request data) before it is interpolated into the SQL LIKE patterns used by getDeclineStampAt and clearDeclineStamp.
Code execution
[file request src/modules/self-mod/index.ts] How are self-mod approval grants minted and validated before applyInstallPackages/applyAddMcpServer execute, and is there any path where the requesting agent's own approval card is granted without a human admin click?
Privilege escalation
[file request src/modules/scheduling/run-log.ts] Which module defines AnchoredDir, and do its open/appendFile/unlink actually enforce the symlink refusal and O_NOFOLLOW behavior the comments claim for run-log appends and deletes under GROUPS_DIR?
Destructive action
[file request src/modules/self-mod/apply.ts] What does apply.ts execute once an install_packages/add_mcp_server approval is granted — which shell commands, image rebuild steps, and container_config/MCP server writes run with the verbatim agent-supplied payload, and is the executed content bounded to the pre-validated package names?
Code execution
[file request src/provider-contracts/cursor.ts] Which modelDomains, modelAuthorities, and modelEndpoints does the Cursor provider contract declare, and do all declared credential-adapter endpoints resolve only to Cursor-operated hosts?
Credential access
[file request src/templates/library.ts] What are the values of LIBRARY_REPO and LIBRARY_BRANCH used by cloneArgs/cloneRegistry, and is the template fetch pinned to an immutable commit rather than a mutable branch tip?
Supply chain
[file request src/templates/library.ts] What are the values of INDEX_URL and TEMPLATES_DIR, and what repository/ref does cloneRegistry() fetch before templates are copied into the local templates directory?
Supply chain
[file request src/upgrade-state.ts] Where is FIX_COMMAND defined and what exact command does the upgrade tripwire instruct the coding agent to run to clear the stop?
Code execution

Coverage gaps 332

Parts of the artifact the static analysis could not fully examine.

context:unanalyzable_binary binary content is only byte-scanned
.claude/skills/add-clidash/add/tools/clidash/public/favicon.ico
unanalyzable_binary binary content is only byte-scanned
src/drivers/docker-driver.ts
parse_error tree-sitter typescript parse has errors; extraction may be partial
.claude/skills/add-codex/payload/setup/providers/codex.test.ts
parse_error tree-sitter typescript parse has errors; extraction may be partial
.claude/skills/add-codex/payload/src/providers/codex-agents-md.test.ts
parse_error tree-sitter typescript parse has errors; extraction may be partial
.claude/skills/add-codex/payload/src/providers/codex-host-contribution.test.ts
parse_error tree-sitter typescript parse has errors; extraction may be partial
.claude/skills/add-cursor/payload/src/providers/cursor-host-contribution.test.ts
parse_error tree-sitter typescript parse has errors; extraction may be partial
src/db/sessions.ts
parse_error tree-sitter typescript parse has errors; extraction may be partial
src/types.ts
no_dataflow_for_unsupported_script unsupported_script file: string-literal extraction only
scripts/photon-setup.ts
no_dataflow_for_dynamic_code line 17: invoked code is not structurally extracted
container/install-cli-tools.sh
no_dataflow_for_dynamic_code line 26: invoked code is not structurally extracted
container/install-cli-tools.sh
no_dataflow_for_dynamic_code line 22: invoked code is not structurally extracted
setup/lib/restart.sh
no_dataflow_for_dynamic_code line 35: invoked code is not structurally extracted
setup/run-suggested.sh
ledger_finding_without_valid_finding run 1: instruction-surface.1 SRC:27dcddeacae8cf95
ledger_finding_without_valid_finding run 1: instruction-surface.4 SRC:3cd42d6b4bf8dcca
ledger_finding_without_valid_finding run 1: instruction-surface.4 SRC:59b318ef16b5110f
ledger_finding_without_valid_finding run 1: instruction-surface.4 SRC:ff718a1e71be3676
ledger_finding_without_valid_finding run 1: instruction-surface.9 SRC:df4b0835d02b7f1d
ledger_finding_without_valid_finding run 1: declared-vs-actual.15 SRC:05a5701bf2caa548
ledger_finding_without_valid_finding run 1: declared-vs-actual.21 SRC:960387ef69e86ffa
ledger_finding_without_valid_finding run 1: declared-vs-actual.21 SRC:4d43a8cc97f4ff1a
ledger_finding_without_valid_finding run 1: declared-vs-actual.21 SRC:6a1fec32268ae709
ledger_finding_without_valid_finding run 1: declared-vs-actual.21 SRC:378fa959cb8b67a8
ledger_finding_without_valid_finding run 1: declared-vs-actual.22 SRC:2cd7c776ed1cdec7
ledger_finding_without_valid_finding run 1: declared-vs-actual.22 SRC:6722013971747394
ledger_finding_without_valid_finding run 1: behavior-chains.0 SRC:2655fd6f1c91717a
ledger_finding_without_valid_finding run 1: behavior-chains.11 SRC:b459ba17361e883d
ledger_finding_without_valid_finding run 1: behavior-chains.15 SRC:2cd7c776ed1cdec7
ledger_finding_without_valid_finding run 1: behavior-chains.15 SRC:6722013971747394
ledger_finding_without_valid_finding run 1: behavior-chains.23 SRC:55eca21e6aebc93c
ledger_finding_without_valid_finding run 1: behavior-chains.23 SRC:28412c5e5957a4cd
ledger_finding_without_valid_finding run 1: behavior-chains.25 SRC:1d6a4de9c9924d9e
ledger_finding_without_valid_finding run 1: behavior-chains.29 SRC:bf669b4e8717040c
ledger_finding_without_valid_finding run 1: behavior-chains.29 SRC:adc4945e2bdb7921
ledger_finding_without_valid_finding run 1: behavior-chains.29 SRC:7dad0e9cd0d9f0a6
invalid_judge_finding instruction-surface.1
invalid_judge_finding instruction-surface.4
invalid_judge_finding instruction-surface.5
invalid_judge_finding instruction-surface.9
invalid_judge_finding declared-vs-actual.15
invalid_judge_finding declared-vs-actual.21
invalid_judge_finding declared-vs-actual.22
invalid_judge_finding behavior-chains.11
invalid_judge_finding behavior-chains.15
invalid_judge_finding behavior-chains.23
invalid_judge_finding behavior-chains.25
invalid_judge_finding behavior-chains.29
request_unanswered declared-vs-actual.8: invalid file request (evidence_ids not shown in the asking request)
request_unanswered declared-vs-actual.1000: invalid file request (evidence_ids not shown in the asking request)
request_unanswered request.0: instruction-surface.0/req-setup-provider-auth: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.0: instruction-surface.0/req-cursor-provider-body: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.1: instruction-surface.0/req-codex-appserver-handler: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.1: instruction-surface.0/req-cursor-auth-body: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.1: instruction-surface.1/remove-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.2: instruction-surface.1/photon-setup-ts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.2: instruction-surface.1/imessage-configure-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.2: instruction-surface.1/restart-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.2: instruction-surface.1/cursor-auth-ts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.1/teams-alternatives: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.2/req-telegram-multi-inst: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.2/req-telegram-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.2/req-teams-manifest: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.2/req-upgrade-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.2/req-pair-telegram: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.3/req-add-cursor-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.3/req-cursor-hook-rm: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.3: instruction-surface.3/req-user-roles-delete: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.4: instruction-surface.3/req-project-doc-compose: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.4: instruction-surface.4/req-run-suggested: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.4: instruction-surface.4/req-cursor-auth: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.4: instruction-surface.4/req-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.5: instruction-surface.4/req-skill-apply: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.5: instruction-surface.5/req-runsuggested: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.5: instruction-surface.5/req-templates-library: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.5: instruction-surface.5/req-skill-apply: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.6: instruction-surface.5/req-registry-login: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.6: instruction-surface.7/req-cursor-hooks: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.6: instruction-surface.7/req-setup-pkill: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.8/skill-body: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.8/cursor-contract: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.8/cursor-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.9/upgrade-tripwire-msg: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.9/drivers-silently-run: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.9/install-claude-curl-bash: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.9/claude-config-bypass: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: instruction-surface.9/service-systemd-unit: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: declared-vs-actual.0/req-exchange-archive: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.7: declared-vs-actual.0/req-cred-store: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.0/req-session-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.1/req-codex-impl: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.1/req-cursor-consts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.1/req-cursor-auth: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.1/req-cursor-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.2/req-codex-spawn-env: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.8: declared-vs-actual.2/req-codex-memory-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.9: declared-vs-actual.2/req-codex-setup-auth: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.9: declared-vs-actual.2/req-cursor-autoapprove: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.9: declared-vs-actual.3/req-cred-store: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.9: declared-vs-actual.3/req-base-agents-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.10: declared-vs-actual.4/req-cursor-runtime: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.10: declared-vs-actual.4/req-cursor-auth: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.10: declared-vs-actual.4/req-cursor-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.10: declared-vs-actual.4/req-gateway-probe: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.4/req-setup-cursor: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.4/req-remove-doc: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.4/req-host-provider: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.4/req-host-contract: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.5/req-gateway-probe: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.5/req-cursor-auth-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.5/req-gateway-ca: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.6/req-restart-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.11: declared-vs-actual.6/req-imessage-configure: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.6/req-photon-setup: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.6/req-discord-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.6/req-imessage-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.6/req-slack-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.6/req-teams-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.6/req-cursor-provider: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.12: declared-vs-actual.7/req-restart-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.7/req-init-first-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.7/req-setup-index: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.7/req-teams-manifest-build: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.7/req-telegram-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.8/cwd-shim: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.8/memory-hook-script: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.9/req-release-image: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.9/req-install-slug: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.9/req-dockerfile: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.10/req-upgrade-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.10/req-group-persona: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.11/pkg-scripts-policy: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.11/runner-bun-scripts-policy: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.13: declared-vs-actual.11/branch-fetch-pinning: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.14: declared-vs-actual.12/add-cursor-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.14: declared-vs-actual.12/skill-apply-head: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.14: declared-vs-actual.12/pinned-bun-version: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.15: declared-vs-actual.13/tmpl-registry-src: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.15: declared-vs-actual.13/diagnostics-sink: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.15: declared-vs-actual.13/registry-login-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.15: declared-vs-actual.13/slack-job-behavior: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.15: declared-vs-actual.13/slack-autoreg: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.16: declared-vs-actual.13/browser-consent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.16: declared-vs-actual.14/req-git-fetch-branch: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.16: declared-vs-actual.14/req-git-show-to-file: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.16: declared-vs-actual.14/req-registry-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.17: declared-vs-actual.14/req-skill-driver: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.17: declared-vs-actual.14/req-init-first-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.17: declared-vs-actual.15/slack-job-file: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.18: declared-vs-actual.15/cred-helper-mjs: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.18: declared-vs-actual.15/pull-sh-source: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.18: declared-vs-actual.15/cursor-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.18: declared-vs-actual.16/install-claude-script: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.18: declared-vs-actual.16/run-suggested-script: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.19: declared-vs-actual.16/auto-setup-wiring: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.20: declared-vs-actual.17/req-ensure-claude-ready: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.20: declared-vs-actual.17/req-handoff-redaction: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.20: declared-vs-actual.17/req-container-build-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.21: declared-vs-actual.17/req-registry-login: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.21: declared-vs-actual.18/req-add-cursor-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.21: declared-vs-actual.18/req-channels-remote-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.18/req-claude-handoff: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.18/req-upgrade-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.18/req-browser-open: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.18/req-diagnostics: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.19/req-diagnostics-emit: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.19/req-claude-handoff: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.22: declared-vs-actual.19/req-peer-cleanup-rest: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.23: declared-vs-actual.19/req-userinput-callers: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.23: declared-vs-actual.20/reap-dead-peer-body: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.24: declared-vs-actual.20/dependency-command-builder: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.24: declared-vs-actual.20/registry-login-driver: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.24: declared-vs-actual.20/setupclient-label: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.25: declared-vs-actual.21/req-skill-scope: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.25: declared-vs-actual.21/req-cred-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.25: declared-vs-actual.21/req-broker-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.25: declared-vs-actual.21/req-reconcile-rmi: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.26: declared-vs-actual.22/req-pull-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.26: declared-vs-actual.22/req-cred-helper-install: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.26: declared-vs-actual.22/req-registry-login: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.26: declared-vs-actual.22/req-service-lower: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.26: declared-vs-actual.22/req-peer-cleanup: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.22/req-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.23/req-skill-md-cursor: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.23/req-slack-progress-base: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.23/req-writeprivate-perms: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.23/req-service-head-fns: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.24/req-install-slug: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.25/webhook-server-exposure: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.27: declared-vs-actual.27/slack-worker-env: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.27/device-client-origins: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.28/req-provider-hostenv: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.28/req-project-doc-compose: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.30/addcursor-skill-claims: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.30/addcodex-skill-claims: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.31/req-getdb-driver: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.28: declared-vs-actual.32/req-container-runtime-bin: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.32/req-claude-memory-settings: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.33/check-codex-claim-d15: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.33/check-cursor-claims-d64-d71: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.35/compact-instructions: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.35/template-library: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.36/slack-job-launch: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.29: declared-vs-actual.37/add-cursor-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.30: declared-vs-actual.37/permissions-index-handler: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.30: declared-vs-actual.38/add-cursor-skillmd: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.30: declared-vs-actual.39/cursor-contract: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.30: declared-vs-actual.39/claude-transformer: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.30: declared-vs-actual.39/canon-template: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.30: declared-vs-actual.39/template-skills: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: declared-vs-actual.42/req-create-agent-provider: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: declared-vs-actual.42/req-upgrade-state-set: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: behavior-chains.0/setup-auth-rest: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: behavior-chains.0/credential-store: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: behavior-chains.0/session-hook-reads: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: behavior-chains.0/bun-pin-literal: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.31: behavior-chains.0/skill-md-body: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.32: behavior-chains.0/gateway-probe-test: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.32: behavior-chains.0/exchange-archive: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.32: behavior-chains.1/login-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.32: behavior-chains.1/codex-constants: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.32: behavior-chains.1/codex-agents-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.32: behavior-chains.1/memory-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.33: behavior-chains.2/req-autoapprove: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.33: behavior-chains.2/req-config-hooks: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.33: behavior-chains.2/req-credstore: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.34: behavior-chains.2/req-gatewayproxy: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.35: behavior-chains.2/req-cursor-skillmd: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.35: behavior-chains.3/req-setup-provider: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.36: behavior-chains.3/req-cursor-runtime: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.36: behavior-chains.3/req-gateway-probe: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.36: behavior-chains.3/req-cursor-auth: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.36: behavior-chains.3/req-cursor-hook: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.37: behavior-chains.4/req-restart-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.37: behavior-chains.4/req-imessage-configure: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.37: behavior-chains.4/req-photon-setup: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.37: behavior-chains.4/req-add-cursor-skill: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.37: behavior-chains.4/req-imessage-adapter: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.37: behavior-chains.5/req-restart-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.5/req-init-first-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.5/req-trace-upload: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.5/req-memory-hook-cmd: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.5/req-set-env-step: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.6/req-upgrade-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.6/req-claude-config: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.6/req-welcome-addenda: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.6/req-cred-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.38: behavior-chains.6/req-release-remote: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.39: behavior-chains.7/skillapply-run-exec: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.39: behavior-chains.7/skillapply-frombranch: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.40: behavior-chains.8/req-addcursor-skillmd: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.40: behavior-chains.8/req-git-command-builders: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.40: behavior-chains.8/req-apply-provider-skill: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.41: behavior-chains.9/auto-consts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.41: behavior-chains.9/init-first-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.41: behavior-chains.9/restart-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.42: behavior-chains.9/skill-driver: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.42: behavior-chains.9/slack-auto-body: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.43: behavior-chains.9/registry-login: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.43: behavior-chains.9/delete-cli-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.44: behavior-chains.10/cred-helper-mjs: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.44: behavior-chains.10/install-docker-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.44: behavior-chains.10/pull-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.44: behavior-chains.10/slack-auto-head: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.44: behavior-chains.10/register-claude-token: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.44: behavior-chains.10/dockerfile: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.10/init-cli-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.11/req-run-suggested: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.11/req-install-claude: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.11/req-cred-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.11/req-container-build: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.11/req-diagnostics-consts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.12/req-1: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.45: behavior-chains.12/req-2: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.46: behavior-chains.12/req-3: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.46: behavior-chains.12/req-4: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.47: behavior-chains.12/req-5: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.48: behavior-chains.12/req-6: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.48: behavior-chains.12/req-7: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.48: behavior-chains.12/req-8: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.48: behavior-chains.13/channels-remote-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/add-cursor-skill-md: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/dial-pairing-js: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/telegram-pairing-js: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/runner-spawnstep: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/claude-assist: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/setup-client: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.49: behavior-chains.13/reuse-from-env: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.50: behavior-chains.14/req-cred-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.51: behavior-chains.14/req-skill-apply: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.51: behavior-chains.14/req-channels-remote: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.52: behavior-chains.14/req-provider-cursor: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.52: behavior-chains.14/req-registry-state: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.53: behavior-chains.15/req-registry-login-head: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.53: behavior-chains.15/req-service-rest: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.54: behavior-chains.15/req-container-pull-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.54: behavior-chains.15/req-install-cred-helper: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.54: behavior-chains.15/req-registry-login-sh: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.54: behavior-chains.15/req-register-claude-token: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.55: behavior-chains.15/req-setup-auto-ts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.56: behavior-chains.16/req-service-env-helpers: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.56: behavior-chains.16/req-run-channel-skill: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.56: behavior-chains.17/verify-imports: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.56: behavior-chains.17/wa-version-consts: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.56: behavior-chains.19/slack-worker-behavior: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.57: behavior-chains.19/cell-link-consumers: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.58: behavior-chains.19/npmrc-postinstall: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.59: behavior-chains.19/device-client-save: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.59: behavior-chains.20/pkg-validation: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.59: behavior-chains.20/provider-adapters: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.59: behavior-chains.22/req-outbox-files: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.60: behavior-chains.22/req-runguarded: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.60: behavior-chains.22/req-agent-route: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.60: behavior-chains.22/req-claude-settings: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.60: behavior-chains.22/req-driver-barrel: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.60: behavior-chains.22/req-gateway-barrel: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.23/req-session-manager: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.23/req-create-agent: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.24/migrate-settings-imports: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.24/template-fetch-chain: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.25/self-mod-handlers: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.25/portal-runtime-head: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.61: behavior-chains.25/modules-barrel: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.25/add-cursor-skill: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.26/req-decline-stamp-const: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.26/req-selfmod-grant: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.26/req-anchored-dir: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.27/req-selfmod-apply: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.27/req-cursor-contract: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.28/lib-constants: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.29/req-index-url: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
request_unanswered request.62: behavior-chains.29/req-fix-command: invalid answer output: schema: <root>: Additional properties are not allowed ('error' was unexpected); schema: <root>: 'echo' is a required property; schema: <root>: 'answers' is a required property; schema: <root>: 'findings' is a required property; schema: <root>: 'requests' is a required property; echo: missing
invalid_refuter Additional properties are not allowed ('error' was unexpected) Failed validating 'additionalProperties' in schema: {'$schema': 'https://json-schema.org/draft/2020-12/schema', 'title': 'oracle refuter output', 'type': 'object', 'additionalProperties': False, 'required': ['echo', 'results', 'requests'], '$defs': {'gate': {'type': 'object', 'additionalProperties': False, 'required': ['pass', 'evidence_ids', 'quote'],