Skip to content

Artifacts

The advisor writes three files to its trace_dir; ifm-advisor audit adds a fourth. Writes are best effort: a failure is logged and never fails the attempt. summary.json and the manifest are replaced atomically; private_trace.jsonl is append-only, one JSON object per line. All four are created readable and writable by their owner only (mode 0600), whatever the umask.

File Written by Publishable
private_trace.jsonl the advisor, one record per review No. Derived from privileged material
summary.json the advisor Yes
task_material_manifest.json the advisor, once at creation Only if those paths are already public
audit.json ifm-advisor audit No. It may quote privileged lines

private_trace.jsonl

A record is written for every review, including reviews that kept the draft and reviews that failed.

Key Meaning
timestamp Unix time the review started
attempt_id The attempt_id given to the Advisor
task Task name
solver_call_index The solver turn t this review belongs to (1-based)
trigger pre_submit (a proposed finish) or periodic
draft_attempted_finish Whether the draft called the finish tool
solver_model, advisor_model Model names
cue_kind self_check or reasoning_prefill
advisor_latency_sec Time spent obtaining the decision
advisor_attempts Attempts used to get a well-formed decision (the maximum when it failed)
decision The full decision (all seven fields, plan, hint and private_diagnosis included), or null when the review failed
intervened Whether a revision was committed
cue_fallback empty_hint or hint_screen when the reasoning-prefill cue was replaced by the self-check sentence; otherwise null
hint_screen_hits Why screen_hints rejected the hint, as a list; empty otherwise
delivered_cue The exact text the solver received, or null
revision_latency_sec Time spent on the revision, or null
revision_attempts Revision requests made
revision_attempted_finish Whether the committed revision still called the finish tool
revision_reasoning_tokens Tokens the solver generated after the cue, when the server reports them
hint_persisted_to_trajectory Whether the hint was spliced back onto the front of the revision's reasoning_content; null on the self-check path
hint_continuation_suffix The rotated suffix used, or ""
privileged_files Number of privileged files loaded
privileged_truncated_paths, privileged_omitted_paths Files truncated or omitted by the size limits
error ExceptionType: message for a failed review, or revision failed: ...; otherwise null

summary.json

Counters and settings only. It never contains a plan, a hint or a diagnosis. The Advisor writes it at creation and after every review; litellm_hook.advised(...) writes it again when the block ends.

Key Meaning
enabled Always true. Its presence marks an attempt as advised
attempt_id, task, solver_model, advisor_model Labels
prompt_version Advisor prompt used, for example advisor_v1
solver_profile A packaged profile name, or the file name of a profile you supplied
cue self_check or reasoning_prefill
solver_calls Solver turns seen by review
finish_reviews Reviews triggered by a proposed finish
periodic_reviews Reviews triggered by the interval
interventions Revisions committed
advisor_failures Reviews or revisions that failed
revision_calls Revisions made
hint_screen_fallbacks Hints replaced because screen_hints rejected them
empty_hint_fallbacks Empty hints replaced by the self-check sentence

task_material_manifest.json

Paths, sizes and hashes only. It never holds file contents or the task's absolute path, but it does list privileged file paths, sizes and hashes: hidden-test file names can reveal what is tested, and the hash of a small reference file confirms a guessed copy. Share it only when those paths are already public, such as a public benchmark's layout.

Key Meaning
task Task name (the directory name for from_task_dir)
privileged_roots The layout's roots, or null for from_texts
excluded_directory_names The layout's excluded directory names, or null
file_count Number of entries in files
total_content_bytes Content bytes sent to the advisor
truncated_paths, omitted_paths Files cut short, and files left out when the total budget ran out
files One entry per file: relative_path, size_bytes, sha256, text (whether its text is available to the advisor), truncated, skipped_reason

skipped_reason is null for a file that was read, otherwise "symlink", "not a regular file", "not valid utf-8", or "unreadable: <ExceptionType>". An entry can also be a directory: one that is skipped as a symlink, or one that could not be listed ("unreadable: <ExceptionType>"), whose contents are then unknown. See Use your own task material.

audit.json

See Command line for every key.