# Environment audit — WP29 (Phase 00)
Audit performed 2026-10-29 (evening, America/Toronto) by the WP29 executor (Claude Code session, model claude-fable-5-1, client 2.1.314, operated by Simon-Pierre Boucher). No credential values were printed or copied into this repository.
# 1. Project identity and collision check
| Check |
Result |
| Series index |
~/Desktop/Recherche-UQO/README.md + HARMONISATION.md; highest number in use is 28 (finance/distributed-mle-synchronization, repo wp28_uqo.git). A second project (finance/russell3000-strategic-project-database) carries the FIRC label 0001 and is not numbered in the series. |
| WP29 collision |
No directory, repository (gitsrv:srv/git/wp29_uqo.git absent — repositories end at wp28_uqo.git), index row or file named WP29 exists. No collision. |
| Chosen location |
~/Desktop/Recherche-UQO/methodes/autonomous-research-claude-code/ — a new third category méthodes (the paper is neither real estate nor finance). To be added as row 29 in the series index at packaging time. |
| Author metadata |
Template _modele-working-paper/main.tex: author Simon-Pierre Boucher, Département des sciences administratives, Université du Québec en Outaouais, simon-pierre.boucher@uqo.ca, Pavillon Alexandre-Taché, 283 boul. Alexandre-Taché, Gatineau (Québec) J9A 1L8. Title page = sections/titlepage.tex with uq_logo.jpg, "Working Paper No.~N", date, version; abstract page with keywords and JEL. |
# 2. Source artefacts
| Artefact named in the mandate |
Status |
Methode_recherche_autonome_CLAUDE.pdf |
Not present on this machine (Spotlight + find over ~/Desktop, ~/Downloads). |
Kit_recherche_autonome_CLAUDE.zip |
Not present. |
CLAUDE_WP_UQO_2026-10-29.zip |
Not present. |
Primary mandates via https://git.spboucher.ai/raw/... |
Retrieved 2026-10-29 ≈ 03:00 UTC: 11 distinct CLAUDE.md (WP15, WP18–WP26, WP28) + WP15 PROMPT_INITIAL_CLAUDE.md (byte-identical to WP15 CLAUDE.md, SHA-256 2dd19c59…) + WP27 docs/DESIGN-BRIEF.md. WP27 CLAUDE.md → HTTP 404. Hashes in research/corpus_manifest.csv, files in research/corpus/. |
The three packaged artefacts were therefore reconstructed from the live endpoints, exactly as the mandate instructs when they are not mounted. No claim is made about their packaged contents.
# 3. Claude Code client (laptop = builder/controller/evaluator host)
| Item |
Observed value |
| Host |
MacBook (Apple silicon, arm64), macOS 27.0 (build 26A5425a); Node v25.9.0, npm 11.12.1 |
claude --version |
2.1.314 (Claude Code) — installed via npm global @anthropic-ai/claude-code@2.1.314 |
claude auth status |
loggedIn: true, authMethod: api_key, apiProvider: firstParty, org "AgentiLab". Keychain item Claude Code-credentials present. No ANTHROPIC_API_KEY in the interactive environment. |
| User-level instructions |
~/.claude/CLAUDE.md exists (large cluster-operations file). ~/.claude/settings.json: model fable[1m], one PreToolUse hook (auto-approve), 3 LSP plugins, fastMode: true. ~/.claude.json configures 9 MCP servers (apify, tavily, worldbank, openalex, anthropic, polymarket, etherscan, notion, hfmarketdata). 121 project directories under ~/.claude/projects (auto-memory). |
| Official docs |
memory, headless, cli-reference, hooks, permissions fetched 2026-10-29 (markdown, docs/claude-code-docs/, retrieval timestamp in retrieved_utc.txt). |
# 3.1 Verified flags relevant to the design (from claude --help 2.1.314 and cli-reference.md)
-p/--print, --output-format text|json|stream-json, --include-partial-messages, --verbose, --bare, --system-prompt[-file], --append-system-prompt[-file], --tools <list> (restrict built-in tool set), --allowedTools, --disallowedTools, --permission-mode, --permission-prompts host|none, --max-budget-usd (print mode; client-side estimate; subagent spend counts; spend can slightly exceed the cap), --max-turns, --resume <session-id|path>, --session-id <uuid>, --fork-session, --no-session-persistence, --model, --effort, --setting-sources, --settings, --strict-mcp-config, --add-dir, --restricted. No temperature or random-seed flag exists (none will be simulated). --json-schema exists for structured final output.
# 3.2 Behaviours verified by live probes (2026-10-29)
| Probe |
Observation |
claude --bare -p "Reply with exactly OK" --model claude-opus-5-5 --output-format json --tools "" --max-budget-usd 0.10 with ANTHROPIC_API_KEY exported |
Success in 1.55 s; result: "OK", total_cost_usd: 0.0004, modelUsage reports canonicalModel: claude-opus-5-5, costBasis: list, context window 1,000,000, 80 input / 4 output tokens, session_id returned. |
Sentinel test, normal -p mode in a temp dir with a project CLAUDE.md containing SENTINEL-7731 (model claude-haiku-5-5, tools disabled) |
Model reported SENTINEL-7731 and cluster node aliases from ~/.claude/CLAUDE.md; first-turn input ≈ 49,077 tokens. Confirms that non-bare print mode loads user-level and project instructions (and the hook/MCP configuration) — unsuitable for controlled arms. |
Sentinel test, --bare -p, same directory |
Model reported NONE for both; first-turn input 144 tokens. Confirms --bare skips CLAUDE.md auto-discovery, auto-memory, hooks, plugins and MCP. |
--bare -p --append-system-prompt-file append.txt (sentinel APPEND-4420) |
Model reported APPEND-4420; input 171 tokens. Confirms that explicit instruction injection works in bare mode and is the mechanism used to deliver treatment protocols. |
| Bare mode authentication |
--bare ignores OAuth/keychain and requires ANTHROPIC_API_KEY (verified in help text and docs). The study uses the researcher's existing first-party API key (sourced at launch time from an existing project .env, never written to this repository or to run logs). |
# 4. Executor hosts (cluster nodes) and isolation boundary
| Node |
Hardware |
Claude Code |
Python env |
| M3U96a |
Mac Studio M3 Ultra, 28 cores reported by nproc, 96 GB, macOS 26.6 |
upgraded 2.1.204 → 2.1.314 |
~/wp29/venv (Python 3.14.5): numpy 2.3.4, pandas 2.3.3, scipy 1.16.2, statsmodels 0.14.5, matplotlib 3.10.7 |
| M3U96b |
Mac Studio M3 Ultra, 28 cores, 96 GB |
2.1.314 |
same pinned venv |
| M4M64a |
Mac Studio M4 Max, 16 cores, 64 GB |
2.1.314 |
same pinned venv |
| M4M64b |
Mac Studio M4 Max, 16 cores, 64 GB |
2.1.314 |
same pinned venv |
Boundary facts: (i) the nodes hold no copy of this repository, of the oracles, or of the series; (ii) from M3U96a, TCP port 22 of the laptop (192.168.2.184) is not reachable (nc -z → no), so an executor process on a node cannot reach the evaluator host by SSH; (iii) each node has a ~/.claude/CLAUDE.md (cluster file) which --bare does not load (verified on the laptop; to be re-verified per node with the sentinel probe in the isolation tests, Phase 03); (iv) claude --bare -p on M3U96a with the key passed in the SSH command environment returned OK (cost 0.00096 USD, model claude-haiku-5-5), establishing that live inference from the nodes works.
# 5. Capture capabilities
| Tool |
Status |
/usr/sbin/screencapture |
Available (native window/screen capture; -l <windowid> for a specific window, -x silent). |
| Safari |
Available (for dashboard captures via AppleScript/screencapture). |
| Chromium |
Wrapper present but application missing (/Applications/Chromium.app absent) — not usable. |
script (BSD) |
Available for terminal session recording (transcript replay mode only). |
| tmux / asciinema |
Not installed. |
# 6. Gap list (Phase 00)
- Packaged source artefacts absent → replaced by live retrieval with hashes (done).
- No human second coder, no external human reviewers available → corpus coding single-coder; human-review cells will be labelled unavailable.
- Chromium absent → evidence-viewer screenshots will use Safari or native
screencapture.
- Budget: no explicit monetary budget was stated in the mandate. A provisional live-inference envelope is set by the executor and recorded in
protocol/amendments.csv (see Phase 02); the pilot measures real costs before the confirmatory design is frozen.
- Model stochasticity cannot be seeded (no seed flag) → repeats are genuine fresh sessions.
--max-budget-usd is a client-side estimate that can be slightly exceeded → the harness records both the cap and the observed total_cost_usd.