coldpass

Mola-maker/CAD2GIS

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works

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

mcp-server

Works

The recorded run passed on 1 setup.

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

Tested on Linux
PlatformHaikuLuna
Linuxyes

Linux / Haiku 5.5: yes · Oct 27, 2026 · 8af25d41942e · claude-code / 2.1.310 (Claude Code)
Recorded operation: <guest-path> --transport stdio · local stdio MCP start + initialize + tools/list

Does what it says
1 of 1 claims checked out
  • CLI inspect reads a source drawing and reports its inspection: Real input produced the expected result: cad2gis-source-inspection-v1

    Source: cad2gis inspect "<SOURCE.dwg>" --json

    Input: {"tool": "inspect_source", "arguments": {"source": "<guest-path>"}}

    Expected: PASS

    Command: <guest-path> --transport stdio tools/call {"tool": "inspect_source", "arguments": {"source": "<guest-path>"}}

    Observed: cad2gis-source-inspection-v1\",\n \"source\": {\n \"path\": \"<guest-path>\",\n \"name\": \"simple.dxf\",\n \"sha256\": \"f8101fdc765afafcbd2de211f8e3d50d70ae9bdcd475ca528b9d4f11fc26ee81\",\n \"size_bytes\": 15638\n },\n \"inspection_status\": \"PASS\",\n \"reader\": {\n \"backend\": \"native_dxf\",\n \"completion_rows\": 4,\n \"inventory_complete\": true,\n \"parsed_rows\": 4,\n \"returned_records\": 4,\n \"skipped_rows\": 0,\n \"total_rows\": 4\n },\n \"inventory\": {\n \"entity_count\": 4,\n \"layer_count\": 3,\n \"bloc

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

Last commit Oct 23, 2026

Setup time
13 min 28 s
13 min 28 s to a working result
Issue
none found in recorded check
Examples
1 of 1 ran as expected
  • : command completed successfully

    Input: <guest-path> inspect <guest-path> --json

    Expected: inspection_status PASS

    Command: <guest-path> inspect <guest-path> --json

    Observed: "completion_rows": 4, "inventory_complete": true, "parsed_rows": 4, "returned_records": 4, "skipped_rows": 0, "total_rows": 4 }, "schema_version": "cad2gis-source-inventory-v1", "source": { "name": "simple.dxf", "sha256": "f8101fdc765afafcbd2de211f8e3d50d70ae9bdcd475ca528b9d4f11fc26ee81", "size_bytes": 15638 }, "style_facts": { "ACI:256|TRUECOLOR:|LINETYPE:ByLayer|LINEWEIGHT:-1": 1, "ACI:7|TRUECOLOR:|LINETYPE:BYLAYER|LINEWEIGHT:-1": 3 }, "unsupported": { "by_entity_type": {}, "by_reason": {}, "entity_keys_by_reason": {} } }

Evidence
README behavior checked
Agent interfaces
MCP
MCP

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

MCP context
63 tools · about 9,197 tokens
63 tools · about 9,197 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 27, 2026 on 8af25d41942e

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.310 (Claude Code) · Checked operation passed · Oct 27, 2026 on 8af25d41942e

Each entry describes its recorded operation and source revision.

Safety
Made outbound HTTPS connections: yes (hosts not recorded) by cad2gis

Review signals across current setups: connection review. 398 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict. 6 static matches retained as context.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 6 distinct locations. 2 findings. 3 attributed processes.

Gitleaks found a possible hardcoded secret; value withheld. 9 distinct locations. 63 findings.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

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

Run details

Haiku 5.5

Native agent · Checked operation passed

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

Agent-reported scope: Install CAD2GIS 0.8.0 from the pinned workspace source, install the LibreDWG runtime, and run source inspection and project bootstrap on a DXF sample, exercised through both the CLI and the cad2gis-agent-mcp stdio server.

MCP server returned: cad2gis-agent · version 1.30.0.

MCP tools returned: get_cad_bundle_status, prepare_cad_bundle_workspace, list_cad_bundle_tools, call_cad_bundle_tool, audit_visual_conversion, build_qgis_review, build_source_svg_delivery, publish_matched_delivery, verify_qgis_review, start_review_server, get_review_server_status, stop_review_server, get_capabilities, debug_mcp, export_source, query_source_entities, get_entity_context_batch, prepare_semantic_batches, query_relationship_candidates, initialize_semantic_store, inspect_semantic_store, preview_semantic_patch, commit_semantic_patch, compile_semantic_revision, cancel_compile_job, reconcile_compile_jobs, get_runtime_status, install_runtime, inspect_source, bootstrap_project, validate_project, prepare_ai_onboarding, apply_ai_onboarding, auto_onboard_and_convert, inspect_run, audit_run, package_qgis_delivery, list_evidence_nodes, get_evidence_node, list_visual_regions, resolve_visual_hit, list_registered_operations, list_endpoint_join_candidates, list_network_repair_candidates, validate_decision_pack, create_decision_pack, decide_iteration_candidate, evaluate_iteration_candidate, export_iteration_learning, get_cad_scene_node, inspect_iteration, list_scene_visual_regions, get_scene_visual_region_context, create_scene_interpretation_plan, validate_scene_interpretation_plan, list_cad_scene_nodes, list_label_candidates, list_legend_catalog_candidates, prepare_iteration_context, record_iteration_feedback, run_conversion, start_feedback_iteration, prepare_review_workspace. Tool listing does not establish authenticated tool-call success.

Run details
run
Mola-maker--CAD2GIS-claude-haiku-5-5-1793108006652733870
date
Oct 27, 2026
time to working
807.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.310 (Claude Code)
platform
linux
reported cost
$0.035989
Recorded source
https://github.com/Mola-maker/CAD2GIS
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "8af25d41942e1e7d458cb3bb432e7fbde5049893", "url": "https://github.com/Mola-maker/CAD2GIS"}
Test version
readme-9b11e017f7db97bd7176d7b7777c0ebe0d738342971577fffa3708ddf46e1dce
revision
8af25d41942e1e7d458cb3bb432e7fbde5049893
Whose fault: not assigned · resolved

Safety: Review signals: 1 connection review, 199 hardcoded secret. 3 static matches retained as context.

Review signals: 1 connection review, 199 hardcoded secret. 3 static matches retained as context.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

Repository processes attempted these non-loopback connections; proxies can hide the final hostname. 6 distinct locations. 2 attributed processes.

Gitleaks found a possible hardcoded secret; value withheld. 9 distinct locations. 63 findings.

1 encoded execution matches retained as context; full list in the evidence.

2 hardcoded secret matches retained as context; full list in the evidence.

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.

Only 200 of 24667 findings are stored; the summary counts all of them.

Full safety evidence →

Answers recorded for this run
  • CLI inspect reads a source drawing and reports its inspection: Real input produced the expected result: cad2gis-source-inspection-v1

    Source: cad2gis inspect "<SOURCE.dwg>" --json

    Input: {"tool": "inspect_source", "arguments": {"source": "<guest-path>"}}

    Expected: PASS

    Command: <guest-path> --transport stdio tools/call {"tool": "inspect_source", "arguments": {"source": "<guest-path>"}}

    Observed: cad2gis-source-inspection-v1\",\n \"source\": {\n \"path\": \"<guest-path>\",\n \"name\": \"simple.dxf\",\n \"sha256\": \"f8101fdc765afafcbd2de211f8e3d50d70ae9bdcd475ca528b9d4f11fc26ee81\",\n \"size_bytes\": 15638\n },\n \"inspection_status\": \"PASS\",\n \"reader\": {\n \"backend\": \"native_dxf\",\n \"completion_rows\": 4,\n \"inventory_complete\": true,\n \"parsed_rows\": 4,\n \"returned_records\": 4,\n \"skipped_rows\": 0,\n \"total_rows\": 4\n },\n \"inventory\": {\n \"entity_count\": 4,\n \"layer_count\": 3,\n \"bloc

Examples

  • : command completed successfully

    Input: <guest-path> inspect <guest-path> --json

    Expected: inspection_status PASS

    Command: <guest-path> inspect <guest-path> --json

    Observed: "completion_rows": 4, "inventory_complete": true, "parsed_rows": 4, "returned_records": 4, "skipped_rows": 0, "total_rows": 4 }, "schema_version": "cad2gis-source-inventory-v1", "source": { "name": "simple.dxf", "sha256": "f8101fdc765afafcbd2de211f8e3d50d70ae9bdcd475ca528b9d4f11fc26ee81", "size_bytes": 15638 }, "style_facts": { "ACI:256|TRUECOLOR:|LINETYPE:ByLayer|LINEWEIGHT:-1": 1, "ACI:7|TRUECOLOR:|LINETYPE:BYLAYER|LINEWEIGHT:-1": 3 }, "unsupported": { "by_entity_type": {}, "by_reason": {}, "entity_keys_by_reason": {} } }

Local or hosted: local

What the agent did

Install CAD2GIS 0.8.0 from the pinned workspace source, install the LibreDWG runtime, and run source inspection and project bootstrap on a DXF sample, exercised through both the CLI and the cad2gis-agent-mcp stdio server.

cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat README.md 2>/dev/null | head -c 6000
ls <guest-path> ; ls /inputs 2>&1; echo "CDP=$CDP_URL"; curl -sS -m 10 -i "$CDP_URL/json/version" 2>&1 | head -20
cd <guest-path> && python3 -c "
import sys
t=open('README.md',encoding='utf-8').read()
print(t[6000:14000])"
cd <guest-path> && python3 -c "
t=open('README.md',encoding='utf-8').read()
print(t[14000:21000])"
cd <guest-path> && sed -n 1,200p workspace/pyproject.toml | head -c 3000; echo; python3 -m venv --help >/dev/null 2>&1 && echo VENV_OK || echo NO_VENV; uv --version 2>&1 | head -1
mkdir -p <guest-path> && cd <guest-path> && python3 -m venv <guest-path> && <guest-path> -m pip install -q --upgrade pip 2>&1 | tail -3; echo rc=$?
cd <guest-path> && timeout 7000 <guest-path> -m pip install -e ".[agent,test]" > <guest-path> 2>&1; echo rc=$?; tail -5 <guest-path>
cd <guest-path> && export PATH=<guest-path> && cad2gis --help 2>&1 | head -60; echo ---; find . -iname '*.dxf' | head -20; find . -iname '*.dwg' | head -5; echo ---; cad2gis-agent-mcp --help 2>&1 | head -20
cd <guest-path> && export PATH=<guest-path> && timeout 600 cad2gis doctor --deep --profile full --json > <guest-path> 2><guest-path>; echo rc=$?; head -c 2500 <guest-path>; echo; tail -c 500 <guest-path>; echo; ls tests | head -80
cd <guest-path> && export PATH=<guest-path> && find tests/fixtures tests/data -iname '*.dxf' 2>/dev/null | head; (timeout 3000 cad2gis runtime install > <guest-path> 2>&1; echo rc=$? >> <guest-path>); tail -c 2500 <guest-path>
cd <guest-path> && export PATH=<guest-path> && cat <guest-path> 2>/dev/null | tail -c 1500; pgrep -af "cad2gis runtime" | head -3; nohup cad2gis runtime install > <guest-path> 2>&1 &
echo started
pgrep -af "cad2gis runtime" ; for p in $(pgrep -f "cad2gis runtime install"); do echo "pid $p cwd=$(readlink /proc/$p/cwd) start=$(ps -o lstart= -p $p)"; done
kill 9111 2>/dev/null; sleep 2; ps -o pid,etime,args -p 2530 | cut -c1-120; ls -la <guest-path> <guest-path>; tail -c 800 <guest-path> 2>/dev/null
mkdir -p <guest-path> && cd <guest-path> && cat > <guest-path> <<'EOF'
import ezdxf
doc = ezdxf.new("R2018")
doc.header["$INSUNITS"] = 6
msp = doc.modelspace()
msp.add_line((0, 0), (100, 0), dxfattribs={"layer": "CABLE"})
msp.add_line((100, 0), (100, 50), dxfattribs={"layer": "CABLE"})
msp.add_text("POLE-1", dxfattribs={"layer": "LABEL", "insert": (10, 5), "height": 2})
doc.saveas("<guest-path>")
print("ok")
EOF
<guest-path> -I <guest-path> && ls -la <guest-path>; head -c 300 <guest-path> | head -5
cd <guest-path> && export PATH=<guest-path> && timeout 300 cad2gis inspect <guest-path> --json > <guest-path> 2><guest-path>; echo rc=$?; head -c 1500 <guest-path>; echo; head -c 600 <guest-path>
sleep 240; ps -o pid,etime,args -p 2530 | cut -c1-100; ls -la <guest-path>; tail -c 1200 <guest-path>; ls <guest-path> 2>/dev/null
cd <guest-path> && export PATH=<guest-path> && grep -c . <guest-path>; grep -iE 'error|fail|ok|install' <guest-path> | head -10 | cut -c1-200; timeout 600 cad2gis doctor --deep --profile full --json > <guest-path> 2>&1; echo rc=$?; python3 -c "
import json;d=json.load(open('<guest-path>'))
print(d['status'],d['selected_profile_ready'],d['profile_ready'],d['conversion_ready'])
for c in d['checks']:
  if c['status']!='ok': print(c['name'],c['status'],c['detail'][:200],c.get('remediation'))"
cd <guest-path> && grep -rhoE '@(mcp\.)?tool\([^)]*\)[^\n]*' src/cad2gis/agent_mcp* 2>/dev/null | head -5; grep -rlE 'def (get_capabilities|inspect_source)' src | head; grep -rhoE 'def (get_capabilities|inspect_source|get_runtime_status|audit_run)\b' src | sort | uniq -c
cd <guest-path> && grep -n 'def get_capabilities' -A30 src/cad2gis/agent_mcp.py | head -50; grep -n 'def inspect_source' -A25 src/cad2gis/agent_mcp.py | head -40
cd <guest-path> && grep -n 'def _roots' -A25 src/cad2gis/agent_mcp.py | head -45; grep -n 'def _path' -A12 src/cad2gis/agent_mcp.py | head -20
mkdir -p <guest-path> && cd <guest-path> && export PATH=<guest-path> && timeout 600 cad2gis bootstrap <guest-path> --project <guest-path> --json > <guest-path> 2><guest-path>; echo rc=$?; head -c 1200 <guest-path>; echo; head -c 800 <guest-path>; echo; find <guest-path> -maxdepth 3 | head -30
cd <guest-path> && grep -n "cad2gis inspect\|cad2gis bootstrap\|cad2gis-agent-mcp --transport stdio" README.md | head; mkdir -p .coldpass && ls -la .coldpass
cd <guest-path> && V=<guest-path> && cat > probe.json <<'EOF'
{"kind":"mcp","argv":["<guest-path>","--transport","stdio"],"cwd":"/workspace","tool":"inspect_source","arguments":{"source":"<guest-path>"},"env":{"CAD2GIS_PROJECT_ROOTS":"<guest-path>"},"expected_text":"POLE-1"}
EOF
cat > claims.json <<'EOF'
[{"kind":"claim","claim":"CLI inspect reads a source drawing and reports its inspection","source":"cad2gis inspect \"<SOURCE.dwg>\" --json","input":"<guest-path>","expected":"PASS","probe_kind":"mcp","argv":["<guest-path>","--transport","stdio"],"tool":"inspect_source","arguments":{"source":"<guest-path>"},"expected_text":"POLE-1","env":{"CAD2GIS_PROJECT_ROOTS":"<guest-path>"},"cwd":"/workspace"}]
EOF
echo '{"detected": false, "reason": "README documents no scheduler or loop; cad2gis commands are one-shot CLI and MCP invocations.", "checks": []}' > cycles.json
echo '[{"name":"bootstrap-draft","argv":["<guest-path>","bootstrap","<guest-path>","--project","<guest-path>","--json"]}]' > examples.json
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -40
cd <guest-path> && rm -rf <guest-path> && sed -i 's#"cwd":"/workspace"#"cwd":"<guest-path>"#g' probe.json claims.json && cat > examples.json <<'EOF'
[{"name":"bootstrap-draft","argv":["<guest-path>","bootstrap","<guest-path>","--project","<guest-path>","--json"],"output_directory":"<guest-path>","cwd":"<guest-path>","expected":"status draft"}]
EOF
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | head -c 3000
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; python3 -I -c "
import json,sys
d=json.load(open('<guest-path>')) if False else None
" ; python3 -I - <<'EOF'
import json
t=open('<guest-path>').read()
o=json.loads(t[t.index('{'):])
print('valid',o.get('valid'))
for p in o.get('problems',[]): print('PROBLEM:',p[-700:])
r=o['replay']['details']
print({k:v for k,v in r.items() if k not in('tools','tool_result')})
print(r.get('tool_result',{}).get('isError'))
EOF
cd <guest-path> && rm -rf <guest-path> && sed -i 's#"expected_text":"POLE-1"#"expected_text":"cad2gis-source-inspection-v1"#g' probe.json claims.json && cat > examples.json <<'EOF'
[{"name":"inspect-dxf","argv":["<guest-path>","inspect","<guest-path>","--json"],"cwd":"<guest-path>","expected":"inspection_status PASS"}]
EOF
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; python3 -I - <<'EOF'
import json
t=open('<guest-path>').read()
o=json.loads(t[t.index('{'):])
print('valid',o.get('valid'))
for p in o.get('problems',[]): print('PROBLEM:',p[-400:])
EOF
cd <guest-path> && python3 -I - <<'EOF'
import json
r = {
 "outcome": "success",
 "fault_owner": "none",
 "operation": "Install CAD2GIS 0.8.0 from the pinned workspace source, install the LibreDWG runtime, and run source inspection and project bootstrap on a DXF sample, exercised through both the CLI and the cad2gis-agent-mcp stdio server.",
 "operation_scope": "Local VM only. Sample input <guest-path> (generated with ezdxf). Outputs under <guest-path> No DWG conversion, no review UI, no CDP/browser use.",
 "steps": [
  "Checked Python 3.12.3 against README/pyproject requires-python >=3.11,<3.13 and created <guest-path>",
  "Ran editable install pip install -e \".[agent,test]\" from the workspace source (log: <guest-path>).",
  "Ran cad2gis runtime install in the background after a foreground run hit the exec time limit; polled until complete (log: <guest-path>).",
  "Ran cad2gis doctor --deep --profile full --json: before install not ready, after install selected_profile_ready and conversion_ready true.",
  "Ran cad2gis inspect on simple.dxf: inspection_status PASS, 4 records, LINE x2 and TEXT POLE-1.",
  "Ran cad2gis bootstrap on simple.dxf into a fresh project dir: status draft, conversion_allowed false (expected without reviewed mapping and units/CRS).",
  "Ran cad2gis-agent-mcp --transport stdio with tool inspect_source on the sample, CAD2GIS_PROJECT_ROOTS=<guest-path> isError false, schema cad2gis-source-inspection-v1, inspection_status PASS.",
  "Wrote probe.json, claims.json, cycles.json, examples.json; ran checker --validate --replay: valid true."
 ],
 "deviations": [
  "README uv tool install uses an unpinned remote main.zip; used the documented developer editable install from the pinned workspace source instead.",
  "Initial probe/claim cwd /workspace does not exist in this guest; changed to <guest-path>",
  "MCP expected_text POLE-1 did not appear in the inspect_source result; used the schema marker cad2gis-source-inspection-v1 that the observed result contains.",
  "Bootstrap example was not replayable against a persisted project dir; replaced with the read-only cad2gis inspect example.",
  "/inputs/coldpass-preflight.py does not exist here; used <guest-path> as instructed.",
  "Doctor reports libredwg_cli_text_fidelity as not_evaluated (executable digest not checked); recorded as caveat, not a blocker."
 ],
 "stuck_step": None,
 "main_blocker": None,
 "plain_failure": None,
 "suggested_fix": "None required for the verified path. Optionally pin the README uv install command to a tagged release or commit instead of main.zip."
}
json.dump(r, open('report.json','w'), ensure_ascii=False, indent=2)
print("written")
EOF
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | head -c 300

No product verdict. Run record.