Troubleshooting¶
Start with:
adamast-doctor --config adamast.json
adamast-status --config adamast.json
For a zero-config user-level installation, omit --config:
adamast-doctor --codex
adamast-doctor --claude-code
Use harness-specific checks when relevant:
adamast-doctor --config adamast.json --claude-code
adamast-doctor --config adamast.json --codex
Commands are installed but PowerShell cannot run them¶
On Windows, Python's user-level Scripts directory may not be on PATH.
Run the module entry points directly until that directory is added:
python -m adamast_runtime.doctor --codex
python -m adamast_integration.codex.install --user-level
An npm Codex installation may also resolve bare codex to codex.ps1, which
PowerShell can block under a restrictive execution policy. Use the equivalent
command shim without changing the machine policy:
codex.cmd --version
codex.cmd
A gate did not fire¶
Blocking gates fail open by design: if the hook process crashes or is killed
at the harness's per-hook timeout, the agent continues and the gate is
silently skipped — an AdaMAST bug must never brick your session. To confirm
gating actually happened, check [adamast] stderr lines, the per-gate records
in <trace_output>/decisions.log, and adamast-status (a finished session
with no final-gate evidence means the gate was skipped).
Codex shows only the final AdaMAST checkpoint¶
Routine hook polls are intentionally silent as assistant messages. Codex may
show a short transient status such as Polling AdaMAST or Saving AdaMAST trace
while the hook runs. The managed AdaMAST skill requires one compact checkpoint
after an actual failed tool operation and before the agent's next tool call.
Taxonomy generation/refinement trigger, activation, retention, or failure
notices appear once on the next model-context lifecycle event.
Stop and SubagentStop happen after the current model response, so AdaMAST does
not consume learning notices there. It holds them for SessionStart or
UserPromptSubmit, the events where Codex documents additionalContext.
Null PostToolUse outputs in codex-decisions.log are normal successful polls.
If a real tool failure is followed immediately by another tool call without a
compact checkpoint, the installed managed skill is stale. Upgrade, reinstall,
and review /hooks if Codex asks you to trust the definition again.
adamast_model cannot be called¶
Install the provider extra you need and make sure credentials are in the environment.
Anthropic:
python -m pip install "adamast[anthropic]"
Bedrock:
python -m pip install "adamast[bedrock]"
export AWS_BEARER_TOKEN_BEDROCK="..."
export AWS_REGION="us-east-1"
Do not print or commit credentials.
Hooks installed but not firing¶
Check:
- the hook config was installed into the project you are actually running;
- the harness trusts/enables project-local hooks;
adamast.jsonpoints to a valid trace output;- custom hook matchers use the host's actual event/tool names.
For broad tool matchers such as Bash, prefer adding a command_pattern so a
custom hook fires only for the intended recurring command.
For Codex, open /hooks and trust the AdaMAST hooks.
For Claude Code, list installed AdaMAST custom hooks:
adamast-claude-list-hooks --project-dir .
The taxonomy browser reopens after resuming Claude Code¶
Current releases bind each Claude session ID to its first resolved AdaMAST
program. This prevents Claude's resumed or changed cwd from looking like a
new conversation. Upgrade and reinstall the user-level hooks:
python -m pip install --upgrade adamast
adamast-claude-install --user-level
adamast-doctor --claude-code
The first hook after upgrading also migrates any existing selected or disabled
session state into the binding. It should not ask for the taxonomy again.
An exact legacy inline reply such as MAST is also recovered from the saved
Claude transcript before a pending session can launch the browser.
A taxonomy browser opens beside an unrelated Codex task¶
If the browser page names memories as the project, it came from a Codex
host-maintenance conversation rather than the visible project. Current releases
bypass ~/.codex/memories before AdaMAST routing. They also recover an exact
legacy inline reply such as MAST from a pending task's transcript before
opening a browser.
The conversation still says MAST after learning finished¶
MAST may remain in persisted selection state as the conversation's lineage
seed. Once generation or refinement activates a successor, host context should
instead name the active taxonomy's display name and immutable ID and direct the
agent to its codes. Run adamast-status to compare the active taxonomy with the
generation and refinement states. If status shows a learned taxonomy but the
conversation still calls MAST pinned, upgrade and reinstall the host hooks.
Native taxonomy learning cannot launch¶
The conversation hooks can run even when a taxonomy worker cannot be dispatched. Check the host-specific doctor output:
adamast-doctor --codex
adamast-doctor --claude-code
For Codex, the native taxonomy job is claimed on UserPromptSubmit or a
supported SessionStart boundary, then launched by the active agent as a
subagent. The default SessionStart matcher includes startup, resume, and
context compaction. This matters for older or already-running desktop tasks
whose host process does not emit UserPromptSubmit: polling still queues the
job, and the next resume or compaction can deliver it safely. Reinstall the
Codex hooks after upgrading so the compact matcher is present. A queued job
can remain safely dormant between tasks; no standalone Codex CLI is required.
If job.json reports support_queued, candidate generation already succeeded.
AdaMAST is waiting for the independent evidence-support subagent, not generating
the same candidate again. The manifest mirrors this intermediate state and the
originating conversation receives a one-time notice. SubagentStop deliberately
does not claim this phase; the next prompt, resume, or context compaction does.
For Claude Code, inspect the next SessionStart or UserPromptSubmit hook
context for AdaMAST native taxonomy learning is ready. The active Claude agent
must launch exactly one native Agent subtask for the requested phase and return
its receipt through SubagentStop. A separate support-review phase follows a
valid replacement proposal. A standalone claude -p login and
claude_code.claude_cli_path are not used by the native path.
No external provider API key is needed for codex_subagent or
claude_subagent; each uses its active host session.
Final gate retries unexpectedly¶
The final gate checks the shape of the reflection and decision. It can verify that evidence was cited or that none apply was justified; it cannot guarantee the reasoning is insightful.
If the agent keeps failing the gate, inspect the generated trace and the gate prompt assets listed in CUSTOMIZATION.md.
Dashboard does not open¶
Try launching it manually:
adamast-dashboard --trace-output ./adamast-program --store-dir ~/.adamast/taxonomies
If the port is busy, stop the old dashboard process or configure a different port through the integration that launches it.
Taxonomy does not appear in the picker¶
MAST is built in and intentionally not a store record. It does not appear in list_all.
Generated, refined, imported, or registered taxonomies appear only after they are stored as JSON records under the configured store directory.
Trace folders are growing¶
AdaMAST keeps traces by default so future generation and refinement have evidence. For long-running programs, keep trace roots outside the repository and archive old folders periodically.
If another system needs the evidence, configure evidence_export so AdaMAST
writes a session-end JSON snapshot to a separate file or directory sink. This
does not prune or move the original trace folder.