mohitmalayanandy/route-doctor

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/mohitmalayanandy--route-doctor.svg).

coding

Works on Linux with Haiku

README claims checked out on 1 recorded setup. Other recorded outcomes appear below.

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 25, 2026 · ec60886b829b · claude-code / 2.1.310 (Claude Code)
Recorded operation: npm run scan -- https://example.com --json

Does what it says
3 of 3 claims checked out
  • Scans a page and reports a text summary: Real input produced the expected result: Summary: 0 error(s), 3 warning(s), 4 passed

    Source: It checks a single HTTP(S) page, traces redirects, checks its basic canonical/indexability signals, and probes the site's conventional `robots.txt` and `sitemap.xml` paths.

    Input: https://example.com

    Expected: text report with summary line

    Command: npm run scan -- https://example.com

    Observed: Summary: 0 error(s), 3 warning(s), 4 passed

  • Warnings alone do not cause failure: Real input produced the expected result: 3 warning(s)

    Source: Warnings alone do not cause failure.

    Input: https://example.com

    Expected: exit 0 despite 3 warnings

    Command: npm run scan -- https://example.com

    Observed: 3 warning(s), 4 passed

  • JSON output is supported: Real input produced the expected result: "tool": "routedoctor"

    Source: JSON and text output

    Input: https://example.com --json

    Expected: machine-readable JSON report

    Command: npm run scan -- https://example.com --json

    Observed: "tool": "routedoctor", "version": "0.1.0", "inputUrl": "https://example.com/", "finalUrl": "https://example.com/", "redirects": [], "status": 200, "checks": [ { "severity": "pass", "code": "REDIRECT_NONE", "message": "Page has no redirects" }, { "severity": "pass", "code": "HTTP_OK", "message": "Page returned HTTP 200" }, { "severity": "pass", "code": "TITLE_PRESENT", "message": "HTML title detected" }, { "severity": "pass", "code": "NO_NOINDEX", "message": "No noindex directive dete

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

Last commit Oct 22, 2026

Setup time
1 min 7 s
1 min 7 s to a working result
Issue
none found in confirmed setups
Examples
1 of 1 ran as expected
  • Project test suite runs (documented npm test): command completed successfully

    Source: README.md Run locally

    Input: none

    Expected: all 19 offline tests pass

    Command: npm test

    Observed: ok 17 - exact redirect budget succeeds and relative locations resolve --- duration_ms: 27.195272 type: 'test' ... # Subtest: canonical edge cases preserve URL semantics ok 18 - canonical edge cases preserve URL semantics --- duration_ms: 301.967743 type: 'test' ... # Subtest: robots warning and report ordering are stable across completion order ok 19 - robots warning and report ordering are stable across completion order --- duration_ms: 49.235222 type: 'test' ... 1..19 # tests 19 # suites 0 # pass 19 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 1366.017129

Evidence
README behavior checked
Agent interfaces
CLI
CLI

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

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

Each entry describes its recorded operation and source revision.

Safety
Made outbound connections: yes (hosts not recorded) by <guest-path>

Review signals across current setups: connection review.

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

Reviewed as expected for a test run: resolver address lookups that send no data.

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

Repair history and test corrections
Current diagnosis: unknown · pending

product invocation failed: {"argv": ["npm", "run", "scan", "--", "http://127.0.0.1:8765/", "--json"], "returncode": 1, "stdout": "\n> [email protected] scan\n> node./bin/routedoctor.js scan http://127.0.0.1:8765/ --json\n\n{\n \"schemaVersion\": \"1\",\n \"tool\": \"routedoctor\",\n \"version\": \"0.1.0\",\n \"inputUrl\": \"http://127.0.0.1:8765/\",\n \"finalUrl\": \"http://127.0.0.1:8765/\",\n \"redirects\": [],\n \"status\": null,\n \"checks\": [\n {\n \"severity\": \"pass\",\n \"code\": \"REDIRECT_NONE\",\n \"message\": \"Page has no redirects\"\n },\n {\n \"severity\": \"error\",\n \"code\": \"FETCH_FAILED\",\n \"message\": \"Request failed for http://127.0.0.1:8765/: fetch failed\"\n }\n ],\n \"summary\": {\n \"errors\": 1,\n \"warnings\": 0,\n \"passed\": 1\n }\n}\n", "stderr": "", "needs_credentials": false, "needs_browser": false}

Repair record fix-54db961ea398a98d7e94 · current status JSON. Original run outcomes remain unchanged.

Failed run: mohitmalayanandy/route-doctor · Oct 25, 2026 · Held back.

Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation npm run scan -- https://example.com --json

Agent-reported scope: Scan a single HTTP(S) page for redirects, status, title, canonical, noindex, robots.txt and sitemap.xml signals (text and JSON output)

Run details
run
mohitmalayanandy--route-doctor-claude-haiku-5-5-1792969743915472110
date
Oct 25, 2026
time to working
67.1s
product hosting / execution
Local command 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.009916
Recorded source
https://github.com/mohitmalayanandy/route-doctor
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "ec60886b829bd34de6f6f3331c65e7585911f5b0", "url": "https://github.com/mohitmalayanandy/route-doctor"}
Test version
readme-ca496ea10bb07418d1d8f1c256c2433a55547acc0fb62d8b6d86ae33c976fbfa
revision
ec60886b829bd34de6f6f3331c65e7585911f5b0
Whose fault: not assigned · resolved

Safety: Review signals: 1 connection review.

Review signals: 1 connection review.

Reviewed as expected for a test run: resolver address lookups that send no data.

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

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
  • Scans a page and reports a text summary: Real input produced the expected result: Summary: 0 error(s), 3 warning(s), 4 passed

    Source: It checks a single HTTP(S) page, traces redirects, checks its basic canonical/indexability signals, and probes the site's conventional `robots.txt` and `sitemap.xml` paths.

    Input: https://example.com

    Expected: text report with summary line

    Command: npm run scan -- https://example.com

    Observed: Summary: 0 error(s), 3 warning(s), 4 passed

  • Warnings alone do not cause failure: Real input produced the expected result: 3 warning(s)

    Source: Warnings alone do not cause failure.

    Input: https://example.com

    Expected: exit 0 despite 3 warnings

    Command: npm run scan -- https://example.com

    Observed: 3 warning(s), 4 passed

  • JSON output is supported: Real input produced the expected result: "tool": "routedoctor"

    Source: JSON and text output

    Input: https://example.com --json

    Expected: machine-readable JSON report

    Command: npm run scan -- https://example.com --json

    Observed: "tool": "routedoctor", "version": "0.1.0", "inputUrl": "https://example.com/", "finalUrl": "https://example.com/", "redirects": [], "status": 200, "checks": [ { "severity": "pass", "code": "REDIRECT_NONE", "message": "Page has no redirects" }, { "severity": "pass", "code": "HTTP_OK", "message": "Page returned HTTP 200" }, { "severity": "pass", "code": "TITLE_PRESENT", "message": "HTML title detected" }, { "severity": "pass", "code": "NO_NOINDEX", "message": "No noindex directive dete

Examples

  • Project test suite runs (documented npm test): command completed successfully

    Source: README.md Run locally

    Input: none

    Expected: all 19 offline tests pass

    Command: npm test

    Observed: ok 17 - exact redirect budget succeeds and relative locations resolve --- duration_ms: 27.195272 type: 'test' ... # Subtest: canonical edge cases preserve URL semantics ok 18 - canonical edge cases preserve URL semantics --- duration_ms: 301.967743 type: 'test' ... # Subtest: robots warning and report ordering are stable across completion order ok 19 - robots warning and report ordering are stable across completion order --- duration_ms: 49.235222 type: 'test' ... 1..19 # tests 19 # suites 0 # pass 19 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 1366.017129

Local or hosted: local

What the agent did

Scan a single HTTP(S) page for redirects, status, title, canonical, noindex, robots.txt and sitemap.xml signals (text and JSON output)

cd <guest-path> && pwd && ls -la && id -u && python3 --version && cat /etc/os-release | head -3 && ls /inputs 2>/dev/null; ls <guest-path> 2>/dev/null
cd <guest-path> && ls -la; test -f README.md && wc -c README.md && head -c 6000 README.md
cd <guest-path> && (node --version; npm --version) 2>&1; cat package.json; ls bin src test docs .coldpass
cd <guest-path> && NODE_USE_ENV_PROXY=1 npm install 2>&1 | tail -20; echo "rc=$?"
cd <guest-path> && npm test 2>&1 | tail -30
cd <guest-path> && npm run scan -- https://example.com 2>&1; echo "rc=$?"; npm run scan -- https://example.com --json 2>&1 | head -60; echo "rc=${PIPESTATUS[0]}"
cd <guest-path> && node bin/routedoctor.js scan http://example.com 2>&1; echo "rc=$?"; node bin/routedoctor.js scan 2>&1; echo "rc=$?"; node bin/routedoctor.js scan https://example.com --timeout 10000 --max-redirects 10 --json >/dev/null 2>&1; echo "rc=$?"
cd <guest-path> && grep -rniE "cron|schedul|setInterval|watch|webhook|--once|--now|loop" bin src README.md docs | head -20; echo "---"; ls .github; ls .github/workflows 2>/dev/null; ps aux | grep -c routedoctor
cd <guest-path> && cat > probe.json <<'EOF'
{"kind":"cli","argv":["npm","run","scan","--","https://example.com","--json"],"cwd":"<guest-path>","expected_text":"\"tool\": \"routedoctor\""}
EOF
cat > claims.json <<'EOF'
[
{"kind":"claim","claim":"RouteDoctor scans a page and reports a text summary","source":"README.md","quote_note":"single line","input":"https://example.com","expected":"text report with summary","probe_kind":"cli","argv":["npm","run","scan","--","https://example.com"],"expected_text":"Summary: 0 error(s), 3 warning(s), 4 passed","cwd":"<guest-path>"},
{"kind":"claim","claim":"Warnings alone do not cause failure","source":"README.md","input":"https://example.com","expected":"exit 0 despite warnings","probe_kind":"cli","argv":["npm","run","scan","--","https://example.com"],"expected_text":"3 warning(s)","cwd":"<guest-path>"},
{"kind":"claim","claim":"JSON and text output are both supported","source":"README.md","input":"https://example.com --json","expected":"machine-readable JSON report","probe_kind":"cli","argv":["npm","run","scan","--","https://example.com","--json"],"expected_text":"\"tool\": \"routedoctor\"","cwd":"<guest-path>"}
]
EOF
python3 -I -c "import json;json.load(open('probe.json'));json.load(open('claims.json'));print('ok')"
cd <guest-path> && grep -c "It checks a single HTTP(S) page, traces redirects, checks its basic canonical/indexability signals, and probes the site's conventional \`robots.txt\` and \`sitemap.xml\` paths." README.md; grep -c "Warnings alone do not cause failure." README.md; grep -c "^- JSON and text output$" README.md
cd .coldpass && cat > claims.json <<'EOF'
[
{"kind":"claim","claim":"Scans a page and reports a text summary","source":"It checks a single HTTP(S) page, traces redirects, checks its basic canonical/indexability signals, and probes the site's conventional `robots.txt` and `sitemap.xml` paths.","input":"https://example.com","expected":"text report with summary line","probe_kind":"cli","argv":["npm","run","scan","--","https://example.com"],"expected_text":"Summary: 0 error(s), 3 warning(s), 4 passed","cwd":"<guest-path>"},
{"kind":"claim","claim":"Warnings alone do not cause failure","source":"Warnings alone do not cause failure.","input":"https://example.com","expected":"exit 0 despite 3 warnings","probe_kind":"cli","argv":["npm","run","scan","--","https://example.com"],"expected_text":"3 warning(s)","cwd":"<guest-path>"},
{"kind":"claim","claim":"JSON output is supported","source":"JSON and text output","input":"https://example.com --json","expected":"machine-readable JSON report","probe_kind":"cli","argv":["npm","run","scan","--","https://example.com","--json"],"expected_text":"\"tool\": \"routedoctor\"","cwd":"<guest-path>"}
]
EOF
python3 -I -c "import json;json.load(open('.coldpass/claims.json'));print('ok')"
cd <guest-path> && cat > examples.json <<'EOF'
[
{"kind":"example","claim":"Project test suite runs (documented npm test)","source":"README.md Run locally","input":"none","expected":"all 19 offline tests pass","argv":["npm","test"],"cwd":"<guest-path>","env":{},"expected_text":"# fail 0"}
]
EOF
cat > cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected (bin/routedoctor.js, src, package.json scripts, README, docs). No cron, scheduler, loop, webhook, --once or --now exists; RouteDoctor is a one-shot CLI run per scan. The only 'loop' hits are redirect-loop detection in src/http.js.","checks":[]}
EOF
cat > report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Scan a single HTTP(S) page for redirects, status, title, canonical, noindex, robots.txt and sitemap.xml signals (text and JSON output)","operation_scope":"Node.js 22+ (v22.23.4 present), npm install with parse5, outbound HTTPS to example.com; offline unit tests via npm test","steps":["npm install","npm test","npm run scan -- https://example.com","npm run scan -- https://example.com --json"],"deviations":["Used npm run scan (documented in README) instead of npm link/routedoctor; equivalent entry point bin/routedoctor.js. Git metadata not needed, no git init performed."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF
for f in examples.json cycles.json report.json; do python3 -I -c "import json,sys;json.load(open(sys.argv[1]));print(sys.argv[1],'ok')" $f; done; ls -la
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60; echo "rc=${PIPESTATUS[0]}"