solisolsoli/context-layer

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works · Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/solisolsoli--context-layer.svg).

mcp-server

Works

README claims checked out on 2 recorded setups. Combinations not listed here were not tested.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyesyes

Linux / Haiku 5.5: yes · Oct 24, 2026 · 22ac801fa808 · claude-code / 2.1.300 (Claude Code)
Recorded operation: <guest-path> mcp --vault <guest-path> · local stdio MCP start + initialize + tools/list

Linux / Luna: yes · Oct 24, 2026 · 22ac801fa808 · codex / codex-cli 0.163.0
Recorded operation: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

Does what it says
3 of 3 claims checked out
  • Search returns a JSON evidence packet with the timer decision: Real input produced the expected result: Option 2, because the schedule in

    Source: a JSON evidence packet containing the timer decision

    Input: which timer controller did we choose and why

    Expected: the decision note passage is returned

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

    Observed: Option 2, because the schedule in [[Example - Watering Schedule v2]] needs a\nsecond watering time on hot days.\n\n## Evidence\n\n- PARTIAL: the schedule note asks for morning watering every day; evening\n watering only on days above 28 C, so two programs are needed on hot days\n only.\n- USER_STATED: a battery is acceptable; there is no power outlet near the beds.\n- NOT_FOUND: no note in this vault gives the battery life. This search found\n nothing; it does not mean the battery life is short.\n","start":0,"end":915,"line_start":1,"line_end":36,"source_chars":915,"truncated":false,"match_

  • Synaptic search follows links between notes: Real input produced the expected result: 500-Knowledge/Example - Drip Irrigation Basics.md

    Source: The `--method synaptic` option follows links between notes.

    Input: which timer controller did we choose and why with --method synaptic

    Expected: a note reached through a link is included

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

    Observed: 500-Knowledge/Example - Drip Irrigation Basics.md","source_sha256":"cc5fb95e94ff42cea3054edf2e76218454e8a59803a299eabc810497ee766d15","content":"# Example - Drip Irrigation Basics\n\n> [!note] Example note\n> Fictional content that shows linking and supersession. Safe to delete.\n\nDrip irrigation delivers water slowly at the root through a line with small\nemitters. For raised beds it wastes less water than a sprinkler and keeps the\nleaves dry.\n\n- One emitter per plant, or a line with emitters every 30 cm.\n- A pressure reducer and a filter go between the tap and the line.\n- How often to

  • Agent can search notes over MCP: Real input produced the expected result: Option 2, because the schedule in

    Source: The agent can then search notes and read sources on demand.

    Input: {"tool": "search_vault", "arguments": {"prompt": "which timer controller did we choose and why"}}

    Expected: the decision passage is returned by the search_vault tool

    Command: <guest-path> mcp --vault <guest-path> tools/call {"tool": "search_vault", "arguments": {"prompt": "which timer controller did we choose and why"}}

    Observed: Option 2, because the schedule in [[Example - Watering Schedule v2]] needs a\\nsecond watering time on hot days.\\n\\n## Evidence\\n\\n- PARTIAL: the schedule note asks for morning watering every day; evening\\n watering only on days above 28 C, so two programs are needed on hot days\\n only.\\n- USER_STATED: a battery is acceptable; there is no power outlet near the beds.\\n- NOT_FOUND: no note in this vault gives the battery life. This search found\\n nothing; it does not mean the battery life is short.\\n\",\"start\":0,\"end\":915,\"line_start\":1,\"line_end\":36,\"source_chars\":915,\"t

MCP
Yes, observed
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 15 days ago; 49 commits and 0 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases

Last commit Oct 8, 2026

Setup time
36 min 52 s
36 min 52 s to a working result
Issue
none found in recorded check
Examples
2 of 2 ran as expected
  • Index the demo vault as the quick start describes: command completed successfully

    Source: README.md Quick start

    Input: ~/ContextLayerDemo (<guest-path>)

    Expected: 27 files indexed

    Command: <guest-path> index <guest-path>

    Observed: indexed 27 files, 27 records -> .context/index.sqlite incremental: 0 changed, 0 added, 0 removed, 27 unchanged (0 records rewritten); index unchanged graph: 27 notes, 66 edges, 0 unresolved links (0 ambiguous) -> .context/graph.sqlite in 0.020s (unchanged)

  • Plain full-text search of the demo vault returns evidence: command completed successfully

    Source: README.md Quick start

    Input: which timer controller did we choose and why

    Expected: status PARTIAL with evidence

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why'

    Observed: ower outlet near the beds.\n- NOT_FOUND: no note in this vault gives the battery life. This search found\n nothing; it does not mean the battery life is short.\n","start":0,"end":915,"line_start":1,"line_end":36,"source_chars":915,"truncated":false,"match_in_content":true}],"coverage":{"indexed_notes":27,"index_sha256":"00903e53dc7519679a6bca49ff22a90493b91563009af584c4baf5d425c068f8","query_terms":["timer","controller","did","choose"],"match_expression":"\"timer\" OR \"controller\" OR \"did\" OR \"choose\"","skipped_by_reason":{"oversize":0,"unreadable":0,"unsupported_name":0,"not_utf8":0}}}

Evidence
README behavior checked
Agent interfaces
MCP
MCP

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

MCP context
9 tools · about 1,894 tokens
9 tools · about 1,894 tokens

Largest returned tools/list page in these observations. Compact UTF-8 definition bytes ÷ 4, rounded up; approximate, excluding client framing and tool results. This is context size, not proof that every tool works.

Measured on linux with Haiku 5.5 · Oct 24, 2026 on 22ac801fa808

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.300 (Claude Code) · Checked operation passed · Oct 24, 2026 on 22ac801fa808

Each entry describes its recorded operation and source revision. Other agent clients were not tested.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation <guest-path> mcp --vault <guest-path> · local stdio MCP start + initialize + tools/list

Agent-reported scope: Build a local index of a Markdown vault and retrieve source-linked evidence for a question, both by the context-layer CLI search command and through the context-layer MCP stdio server (search_vault tool)

MCP server returned: context-layer · version 0.5.0.

MCP tools returned: search_vault, read_source, vault_status, memory_record, memory_resume, graph_neighbors, read_packet, check_claims, github_context. Tool listing does not establish authenticated tool-call success.

Run details
run
solisolsoli--context-layer-claude-haiku-5-5-1792816079161105046
date
Oct 24, 2026
time to working
2211.6s
product hosting / execution
Local stdio MCP server in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.022413
Recorded source
https://github.com/solisolsoli/context-layer
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "22ac801fa808a6df303d74cf5543f6d9276c671b", "url": "https://github.com/solisolsoli/context-layer"}
Test version
readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9
revision
22ac801fa808a6df303d74cf5543f6d9276c671b
Whose fault: not assigned · resolved

Safety: No problems traced to this repository code in these checks.

No problems traced to this repository code in these checks.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • Search returns a JSON evidence packet with the timer decision: Real input produced the expected result: Option 2, because the schedule in

    Source: a JSON evidence packet containing the timer decision

    Input: which timer controller did we choose and why

    Expected: the decision note passage is returned

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

    Observed: Option 2, because the schedule in [[Example - Watering Schedule v2]] needs a\nsecond watering time on hot days.\n\n## Evidence\n\n- PARTIAL: the schedule note asks for morning watering every day; evening\n watering only on days above 28 C, so two programs are needed on hot days\n only.\n- USER_STATED: a battery is acceptable; there is no power outlet near the beds.\n- NOT_FOUND: no note in this vault gives the battery life. This search found\n nothing; it does not mean the battery life is short.\n","start":0,"end":915,"line_start":1,"line_end":36,"source_chars":915,"truncated":false,"match_

  • Synaptic search follows links between notes: Real input produced the expected result: 500-Knowledge/Example - Drip Irrigation Basics.md

    Source: The `--method synaptic` option follows links between notes.

    Input: which timer controller did we choose and why with --method synaptic

    Expected: a note reached through a link is included

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

    Observed: 500-Knowledge/Example - Drip Irrigation Basics.md","source_sha256":"cc5fb95e94ff42cea3054edf2e76218454e8a59803a299eabc810497ee766d15","content":"# Example - Drip Irrigation Basics\n\n> [!note] Example note\n> Fictional content that shows linking and supersession. Safe to delete.\n\nDrip irrigation delivers water slowly at the root through a line with small\nemitters. For raised beds it wastes less water than a sprinkler and keeps the\nleaves dry.\n\n- One emitter per plant, or a line with emitters every 30 cm.\n- A pressure reducer and a filter go between the tap and the line.\n- How often to

  • Agent can search notes over MCP: Real input produced the expected result: Option 2, because the schedule in

    Source: The agent can then search notes and read sources on demand.

    Input: {"tool": "search_vault", "arguments": {"prompt": "which timer controller did we choose and why"}}

    Expected: the decision passage is returned by the search_vault tool

    Command: <guest-path> mcp --vault <guest-path> tools/call {"tool": "search_vault", "arguments": {"prompt": "which timer controller did we choose and why"}}

    Observed: Option 2, because the schedule in [[Example - Watering Schedule v2]] needs a\\nsecond watering time on hot days.\\n\\n## Evidence\\n\\n- PARTIAL: the schedule note asks for morning watering every day; evening\\n watering only on days above 28 C, so two programs are needed on hot days\\n only.\\n- USER_STATED: a battery is acceptable; there is no power outlet near the beds.\\n- NOT_FOUND: no note in this vault gives the battery life. This search found\\n nothing; it does not mean the battery life is short.\\n\",\"start\":0,\"end\":915,\"line_start\":1,\"line_end\":36,\"source_chars\":915,\"t

Examples

  • Index the demo vault as the quick start describes: command completed successfully

    Source: README.md Quick start

    Input: ~/ContextLayerDemo (<guest-path>)

    Expected: 27 files indexed

    Command: <guest-path> index <guest-path>

    Observed: indexed 27 files, 27 records -> .context/index.sqlite incremental: 0 changed, 0 added, 0 removed, 27 unchanged (0 records rewritten); index unchanged graph: 27 notes, 66 edges, 0 unresolved links (0 ambiguous) -> .context/graph.sqlite in 0.020s (unchanged)

  • Plain full-text search of the demo vault returns evidence: command completed successfully

    Source: README.md Quick start

    Input: which timer controller did we choose and why

    Expected: status PARTIAL with evidence

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why'

    Observed: ower outlet near the beds.\n- NOT_FOUND: no note in this vault gives the battery life. This search found\n nothing; it does not mean the battery life is short.\n","start":0,"end":915,"line_start":1,"line_end":36,"source_chars":915,"truncated":false,"match_in_content":true}],"coverage":{"indexed_notes":27,"index_sha256":"00903e53dc7519679a6bca49ff22a90493b91563009af584c4baf5d425c068f8","query_terms":["timer","controller","did","choose"],"match_expression":"\"timer\" OR \"controller\" OR \"did\" OR \"choose\"","skipped_by_reason":{"oversize":0,"unreadable":0,"unsupported_name":0,"not_utf8":0}}}

Local or hosted: local

What the agent did

Build a local index of a Markdown vault and retrieve source-linked evidence for a question, both by the context-layer CLI search command and through the context-layer MCP stdio server (search_vault tool)

cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; python3 --version; id -u; cat /etc/os-release | head -2; ls /inputs 2>&1
cd <guest-path> && cat README.md 2>/dev/null | head -300
cd <guest-path> && ls -la .coldpass; which git; git --version; ls <guest-path> 2>&1; ls /inputs 2>&1; python3 -m venv --help >/dev/null 2>&1 && echo venv_ok || echo venv_missing; sed -n 1,40p pyproject.toml | grep -n -i "python" 
cd <guest-path> && git init -q && git remote add origin https://github.com/solisolsoli/context-layer && timeout 170 git fetch --depth 1 origin 22ac801fa808a6df303d74cf5543f6d9276c671b 2>&1 | tail -5; echo rc=$?; git reset --mixed FETCH_HEAD 2>&1 | tail -3; git log --oneline -1 2>&1; git status --short | head -5
cd <guest-path> && python3 -m venv .venv && . .venv/bin/activate && python -m pip install -q --upgrade pip 2>&1 | tail -2; python -m pip install -e . 2>&1 | tail -4; echo rc=${PIPESTATUS[0]}; ls -la ~/ContextLayerDemo 2>&1; ls <guest-path> | grep context
cd <guest-path> && sudo -n apt-get update -qq 2>&1 | tail -2; sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3.12-venv 2>&1 | tail -3; echo rc=$?; rm -rf .venv && python3 -m venv .venv && echo VENV_OK
cd <guest-path> && .venv/bin/python -m pip install -q --upgrade pip 2>&1 | tail -2; .venv/bin/python -m pip install -e . 2>&1 | tail -4; echo rc=${PIPESTATUS[0]}; ls .venv/bin | grep context-layer
cd <guest-path> && echo HOME=$HOME && V=<guest-path>; D=$HOME/ContextLayerDemo; ls -d $D 2>&1; $V brain init $D --apply 2>&1 | tail -20; echo rc=$?; $V index $D 2>&1 | tail -20; echo rc=$?; $V search $D --prompt "which timer controller did we choose and why" --method synaptic 2>&1 | head -80; echo rc=$?
cd <guest-path> && grep -n -A3 "^test" Makefile | head -30; echo ---; grep -rn -i "schedul\|cron\|--once\|--now\|webhook\|loop" --include=*.py context_layer | head -20; echo ---; grep -n "def \|expected_text\|kind" <guest-path> | head -80
cd <guest-path> && sed -n 1,12p Makefile | grep -n PYTHON; . .venv/bin/activate && timeout 900 make test > <guest-path> 2>&1; echo rc=$?; tail -15 <guest-path>
cd <guest-path> && sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make ><guest-path> 2>&1; echo install_rc=$?; which make; . .venv/bin/activate && timeout 900 make test > <guest-path> 2>&1; echo rc=$?; tail -15 <guest-path>
cd <guest-path> && grep -n "FAIL\|ERROR\|Error" <guest-path> | head; sed -n 45,56p Makefile; echo ---; grep -n "import\|claude\|subprocess\|sleep" tests/test_orchestrate.py | head -30; grep -c "" tests/test_orchestrate.py
cd <guest-path> && . .venv/bin/activate && export PYTHONUTF8=1 && nohup bash -c 'start=$(date +%s); python3 tests/test_orchestrate.py > <guest-path> 2>&1; echo "EXIT=$? secs=$(( $(date +%s)-start ))" >> <guest-path>' >/dev/null 2>&1 &
sleep 5; echo started; tail -c 300 <guest-path>
cd <guest-path> && .venv/bin/context-layer --help 2>&1 | head -60; grep -n "mcp" docs/cli.md | head -10; grep -n "\"name\": \"\|@tool\|def tool_" context_layer/mcp_server.py | head -20
cd <guest-path> && sed -n 971,1005p context_layer/mcp_server.py; sed -n 774,790p context_layer/mcp_server.py; .venv/bin/context-layer mcp --help 2>&1 | head -20
cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'
{"kind":"mcp","argv":["<guest-path>","mcp","--vault","<guest-path>"],"cwd":"<guest-path>","tool":"search_vault","arguments":{"prompt":"which timer controller did we choose and why"},"expected_text":"Option 2, because the schedule in"}
EOF
cat > .coldpass/claims.json <<'EOF'
[
{"kind":"claim","claim":"Search returns a JSON evidence packet with the timer decision","source":"a JSON evidence packet containing the timer decision","input":"which timer controller did we choose and why","expected":"the decision note passage is returned","probe_kind":"cli","argv":["<guest-path>","search","<guest-path>","--prompt","which timer controller did we choose and why","--method","synaptic"],"cwd":"<guest-path>","expected_text":"Option 2, because the schedule in"},
{"kind":"claim","claim":"Synaptic search follows links between notes","source":"The `--method synaptic` option follows links between notes.","input":"which timer controller did we choose and why with --method synaptic","expected":"a note reached through a link is included","probe_kind":"cli","argv":["<guest-path>","search","<guest-path>","--prompt","which timer controller did we choose and why","--method","synaptic"],"cwd":"<guest-path>","expected_text":"500-Knowledge/Example - Drip Irrigation Basics.md"},
{"kind":"claim","claim":"Agent can search notes over MCP","source":"The agent can then search notes and read sources on demand.","input":"which timer controller did we choose and why","expected":"the decision passage is returned by the search_vault tool","probe_kind":"mcp","argv":["<guest-path>","mcp","--vault","<guest-path>"],"tool":"search_vault","arguments":{"prompt":"which timer controller did we choose and why"},"expected_text":"Option 2, because the schedule in","cwd":"<guest-path>"}
]
EOF
cat > .coldpass/examples.json <<'EOF'
[
{"kind":"example","claim":"Index the demo vault as the quick start describes","source":"README.md Quick start","input":"~/ContextLayerDemo (<guest-path>)","expected":"27 files indexed","argv":["<guest-path>","index","<guest-path>"],"cwd":"<guest-path>","env":{},"expected_text":"indexed 27 files"},
{"kind":"example","claim":"Plain full-text search of the demo vault returns evidence","source":"README.md Quick start","input":"which timer controller did we choose and why","expected":"status PARTIAL with evidence","argv":["<guest-path>","search","<guest-path>","--prompt","which timer controller did we choose and why"],"cwd":"<guest-path>","env":{},"expected_text":"\"status\":\"PARTIAL\""}
]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected: README.md, QUICKSTART.md and docs/cli.md list no scheduler, cron, loop, webhook, --once or --now command. context_layer/ contains no scheduling code; the CLI subcommands (index, search, mcp, hook, etc.) run once per invocation and the MCP server runs only while a host keeps stdin open. The only 'loop' hits are unrelated code comments and the agent-loop usage label. No product cycle to trigger.","checks":[]}
EOF
for f in probe claims examples cycles; do python3 -I -c "import json,sys; json.load(open('.coldpass/$f.json')); print('$f ok')"; done; tail -c 400 <guest-path>
cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; tail -c 3000 <guest-path>
cd <guest-path> && grep -o '"verdict": "[a-z]*"' <guest-path> | sort | uniq -c; grep -o -i 'problem[^,]*' <guest-path> | head -5; grep -o '"outcome": "[^"]*"' <guest-path> | sort | uniq -c | head; echo ---; tail -c 300 <guest-path>
for i in $(seq 1 16); do grep -q EXIT= <guest-path> && break; sleep 20; done; tail -c 400 <guest-path>; echo; ps aux | grep -c "[t]est_orchestrate"
cd <guest-path> && nohup bash -c 'start=$(date +%s); . .venv/bin/activate; PYTHONUTF8=1 make test; echo "MAKE_EXIT=$? secs=$(( $(date +%s)-start ))"' </dev/null > <guest-path> 2>&1 &
sleep 240; grep -c "ok$" <guest-path>; grep -n "MAKE_EXIT\|FAIL\|Error\|Terminated" <guest-path> | head; tail -c 200 <guest-path>
for i in $(seq 1 40); do grep -q MAKE_EXIT <guest-path> && break; sleep 20; done; grep -n "MAKE_EXIT\|^FAILED\|Error:\|Terminated\|^FAIL:" <guest-path> | head; grep -c "^Ran" <guest-path>; tail -c 300 <guest-path>
for i in $(seq 1 40); do grep -q MAKE_EXIT <guest-path> && break; sleep 20; done; grep -n "MAKE_EXIT\|^FAILED\|Terminated\|^FAIL:\|make: \*\*\*" <guest-path> | head; grep -c "^OK" <guest-path>; tail -c 250 <guest-path>
cd <guest-path> && ps aux | grep -E "[c]ontext-layer|[t]est_" | head -3; echo procs_checked; git status --short | head -10; ls .coldpass
cd <guest-path> && cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Build a local index of a Markdown vault and retrieve source-linked evidence for a question, both by the context-layer CLI search command and through the context-layer MCP stdio server (search_vault tool)","operation_scope":"Pinned commit 22ac801fa808a6df303d74cf5543f6d9276c671b on Ubuntu 24.04 with Python 3.12.3; uses the README's demo vault (fictional notes, no API key, no network for local search). Browser, GitHub sources and model APIs were not used. Scheduling/cycles: none in the product.","steps":["git init; git remote add origin https://github.com/solisolsoli/context-layer; git fetch --depth 1 origin 22ac801fa808a6df303d74cf5543f6d9276c671b; git reset --mixed FETCH_HEAD","python3 -m venv .venv  (failed first: ensurepip unavailable; fixed by sudo apt-get install python3.12-venv, then recreated .venv)","python -m pip install -e .  (in the venv; installed context-layer 0.5.0)","context-layer brain init ~/ContextLayerDemo --apply  (HOME=<guest-path>, so folder is <guest-path>)","context-layer index ~/ContextLayerDemo  (indexed 27 files, 27 notes, 66 edges)","context-layer search ~/ContextLayerDemo --prompt \"which timer controller did we choose and why\" --method synaptic  (returned PARTIAL evidence packet with the timer decision and linked notes)","context-layer mcp --vault ~/ContextLayerDemo, MCP tools/call search_vault with prompt \"which timer controller did we choose and why\" (returned the decision passage)","make test (documented in README 'Support and development'): exit 0 after 1073 s, all suites OK, 2 platform tests skipped"],"deviations":["python3 -m venv failed: ensurepip not available (python3.12-venv missing). Substitute: sudo -n apt-get install -y python3.12-venv, then recreated the venv in the same location. Succeeded.","make was not installed; installed with sudo -n apt-get install -y make. Succeeded.","First foreground 'make test' was killed by my own 900 s tool timeout (rc=124) during tests/test_orchestrate.py; no test failure was reported. Reran make test in the background with stdin closed; it completed with exit 0 in 1073 s.","Demo folder placed at <guest-path> because HOME is <guest-path>, not the README's ~ equivalent of a user home directory.","The quick start's Windows and Obsidian steps were not run (not applicable to this Linux guest; Obsidian plugin not installed)."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":"None required for the tested path. Optional: the README's first install step assumes python3-venv is present; on Ubuntu 24.04 minimal guests a 'python3.12-venv' install is needed first."}
EOF
python3 -I -c "import json; d=json.load(open('.coldpass/report.json')); print(d['outcome'], d['fault_owner'])"; <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; grep -o '"problems": \[[^]]*\]' <guest-path> | head -2; grep -o '"verdict": "[a-z]*"' <guest-path> | sort | uniq -c
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

Agent-reported scope: README quick start demo: initialize fictional vault, index notes, and retrieve the timer decision with synaptic search

Run details
run
solisolsoli--context-layer-gpt-6-luna-1792816247697602569
date
Oct 24, 2026
time to working
101.4s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.163.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/solisolsoli/context-layer
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "22ac801fa808a6df303d74cf5543f6d9276c671b", "url": "https://github.com/solisolsoli/context-layer"}
Test version
readme-f72312298d35d84837d4fc5f6f22b138d54d456600b5ed431e36e8f5db931dbf
revision
22ac801fa808a6df303d74cf5543f6d9276c671b
Whose fault: not assigned · resolved

Safety: No problems traced to this repository code in these checks.

No problems traced to this repository code in these checks.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • The quick start returns the timer decision and linked notes.: Real input produced the expected result: battery timer with two programs

    Source: The commands below create a new folder of fictional example notes.

    Input: which timer controller did we choose and why

    Expected: battery timer with two programs

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

    Observed: battery timer with two programs.\n\n## Decision and why\n\nOption 2, because the schedule in [[Example - Watering Schedule v2]] needs a\nsecond watering time on hot days.\n\n## Evidence\n\n- PARTIAL: the schedule note asks for morning watering every day; evening\n watering only on days above 28 C, so two programs are needed on hot days\n only.\n- USER_STATED: a battery is acceptable; there is no power outlet near the beds.\n- NOT_FOUND: no note in this vault gives the battery life. This search found\n nothing; it does not mean the battery life is short.\n","start":0,"end":915,"line_start":1

Examples

  • README Quick start search: command completed successfully

    Source: README.md / Quick start

    Input: which timer controller did we choose and why

    Expected: evidence packet includes battery timer rationale

    Command: <guest-path> search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic

    Observed: ded":0,"target_unavailable":0,"attachment_target":0,"below_threshold":0,"node_cap":0},"graph":{"present":true,"readable":true,"built_at":"2026-10-24T04:32:32Z","edges":66,"unresolved_links":0,"stale_sources":[],"withheld_passages_from":[]},"trace":".context/activation.json"},"coverage":{"indexed_notes":27,"index_sha256":"51870a80a8ffa8898cb0692d194dc6a72e2333cda9b35160372b6228bb28a5ea","query_terms":["timer","controller","did","choose"],"match_expression":"\"timer\" OR \"controller\" OR \"did\" OR \"choose\"","skipped_by_reason":{"oversize":0,"unreadable":0,"unsupported_name":0,"not_utf8":0}}}

Local or hosted: local

What the agent did

README quick start demo: initialize fictional vault, index notes, and retrieve the timer decision with synaptic search

pwd; rg --files -g 'README*' -g 'AGENTS.md' -g 'pyproject.toml' -g 'package.json' -g 'Makefile' -g '*.md' | head -80; python3 --version; id -u; git status --short --branch; ls -la
cat README.md; cat AGENTS.md; cat pyproject.toml; find . -maxdepth 3 -type f | sort | head -150; cat <guest-path> 2>/dev/null
python3 -m venv .venv && .venv/bin/python -m pip install -e . && .venv/bin/context-layer brain init <guest-path> --apply && .venv/bin/context-layer index <guest-path> && .venv/bin/context-layer search <guest-path> --prompt "which timer controller did we choose and why" --method synaptic
sudo -n apt-get update && sudo -n apt-get install -y python3.12-venv
python3 -m venv .venv && .venv/bin/python -m pip install -e . && .venv/bin/context-layer brain init <guest-path> --apply && .venv/bin/context-layer index <guest-path> && .venv/bin/context-layer search <guest-path> --prompt "which timer controller did we choose and why" --method synaptic
find .coldpass -maxdepth 2 -type f -print; mkdir -p .coldpass; cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"The quick start returns the timer decision and linked notes.","source":"The commands below create a new folder of fictional example notes.","input":"which timer controller did we choose and why","expected":"battery timer with two programs","probe_kind":"cli","argv":["<guest-path>","search","<guest-path>","--prompt","which timer controller did we choose and why","--method","synaptic"],"expected_text":"battery timer with two programs","cwd":"<guest-path>"}]
EOF
cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["<guest-path>","search","<guest-path>","--prompt","which timer controller did we choose and why","--method","synaptic"],"cwd":"<guest-path>","expected_text":"battery timer with two programs"}
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"README Quick start search","source":"README.md / Quick start","input":"which timer controller did we choose and why","expected":"evidence packet includes battery timer rationale","argv":["<guest-path>","search","<guest-path>","--prompt","which timer controller did we choose and why","--method","synaptic"],"cwd":"<guest-path>","expected_text":"battery timer with two programs"}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"The documented operation is an on-demand index/search CLI; inspected README entry points describe no scheduler, loop, webhook or cycle trigger.","checks":[]}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"README quick start demo: initialize fictional vault, index notes, and retrieve the timer decision with synaptic search","operation_scope":"Python 3.12; installed editable package in a venv after installing Ubuntu python3.12-venv prerequisite","steps":["python3 -m venv .venv",".venv/bin/python -m pip install -e .",".venv/bin/context-layer brain init <guest-path> --apply",".venv/bin/context-layer index <guest-path>",".venv/bin/context-layer search <guest-path> --prompt 'which timer controller did we choose and why' --method synaptic"],"deviations":["Initial venv creation failed because ensurepip was absent; installed it with sudo -n apt-get update && sudo -n apt-get install -y python3.12-venv, then reran successfully."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay