Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
251 lines
6.5 KiB
Plaintext
251 lines
6.5 KiB
Plaintext
# Error Forensics
|
|
# Deep investigation of failed or problematic runs
|
|
#
|
|
# Usage:
|
|
# prose run @openprose/lib/error-forensics
|
|
#
|
|
# Inputs:
|
|
# run_path: Path to the failed/problematic run
|
|
# focus: Optional focus area (vm | program | context | external)
|
|
#
|
|
# Outputs:
|
|
# - Root cause analysis
|
|
# - Error classification
|
|
# - Fix recommendations
|
|
# - Prevention suggestions
|
|
|
|
input run_path: "Path to the run to investigate"
|
|
input focus: "Optional focus: vm | program | context | external (default: auto-detect)"
|
|
|
|
# ============================================================
|
|
# Agents
|
|
# ============================================================
|
|
|
|
agent investigator:
|
|
model: opus
|
|
prompt: """
|
|
You are a forensic investigator for failed .prose runs.
|
|
|
|
You methodically trace execution to find root causes:
|
|
- Read state.md for execution trace
|
|
- Check each binding for errors or unexpected content
|
|
- Look for patterns: where did things go wrong?
|
|
- Distinguish symptoms from causes
|
|
"""
|
|
|
|
agent classifier:
|
|
model: sonnet
|
|
prompt: """
|
|
You classify errors into actionable categories:
|
|
|
|
VM errors: The OpenProse VM itself misbehaved
|
|
- State management bugs
|
|
- Incorrect control flow
|
|
- Context passing failures
|
|
|
|
Program errors: The .prose program has issues
|
|
- Logic errors
|
|
- Missing error handling
|
|
- Bad agent prompts
|
|
|
|
Context errors: Context degradation or bloat
|
|
- Information lost between agents
|
|
- Context too large
|
|
- Wrong context passed
|
|
|
|
External errors: Outside factors
|
|
- Tool failures
|
|
- Network issues
|
|
- Resource limits
|
|
"""
|
|
|
|
agent fixer:
|
|
model: opus
|
|
prompt: """
|
|
You propose specific fixes for identified issues.
|
|
Be concrete: show the change, not just describe it.
|
|
"""
|
|
|
|
# ============================================================
|
|
# Phase 1: Gather Evidence
|
|
# ============================================================
|
|
|
|
let evidence = session: investigator
|
|
prompt: """
|
|
Gather evidence from the failed run.
|
|
|
|
Run: {run_path}
|
|
|
|
Read and analyze:
|
|
1. state.md - What was the execution trace? Where did it stop?
|
|
2. bindings/ - Which bindings exist? Any with errors or empty?
|
|
3. program.prose - What was the program trying to do?
|
|
4. agents/ - Any agent memory files with clues?
|
|
|
|
Document:
|
|
- Last successful step
|
|
- First sign of trouble
|
|
- Error messages (if any)
|
|
- Unexpected states
|
|
|
|
Return structured evidence.
|
|
"""
|
|
|
|
# ============================================================
|
|
# Phase 2: Trace Execution
|
|
# ============================================================
|
|
|
|
let trace = session: investigator
|
|
prompt: """
|
|
Trace execution step by step to find the failure point.
|
|
|
|
Evidence: {evidence}
|
|
|
|
Walk through the execution:
|
|
1. What was the program supposed to do at each step?
|
|
2. What actually happened (according to state.md)?
|
|
3. Where do expected and actual diverge?
|
|
|
|
For the divergence point:
|
|
- What was the input to that step?
|
|
- What was the output (or lack thereof)?
|
|
- What should have happened?
|
|
|
|
Return:
|
|
{
|
|
"failure_point": { step, statement, expected, actual },
|
|
"chain_of_events": [...],
|
|
"contributing_factors": [...]
|
|
}
|
|
"""
|
|
context: evidence
|
|
|
|
# ============================================================
|
|
# Phase 3: Classify Error
|
|
# ============================================================
|
|
|
|
let classification = session: classifier
|
|
prompt: """
|
|
Classify this error.
|
|
|
|
Trace: {trace}
|
|
Evidence: {evidence}
|
|
Focus hint: {focus}
|
|
|
|
Determine:
|
|
- Primary category (vm | program | context | external)
|
|
- Subcategory (specific type within category)
|
|
- Severity (critical | major | minor)
|
|
- Reproducibility (always | sometimes | rare)
|
|
|
|
Return:
|
|
{
|
|
"category": "...",
|
|
"subcategory": "...",
|
|
"severity": "...",
|
|
"reproducibility": "...",
|
|
"confidence": "high" | "medium" | "low",
|
|
"reasoning": "..."
|
|
}
|
|
"""
|
|
context: { trace, evidence }
|
|
|
|
# ============================================================
|
|
# Phase 4: Root Cause Analysis
|
|
# ============================================================
|
|
|
|
let root_cause = session: investigator
|
|
prompt: """
|
|
Determine the root cause (not just symptoms).
|
|
|
|
Trace: {trace}
|
|
Classification: {classification}
|
|
|
|
Ask "why" repeatedly until you reach the root:
|
|
- Why did this step fail?
|
|
- Why was that input malformed?
|
|
- Why did that agent produce that output?
|
|
- ...
|
|
|
|
The root cause is the earliest point where an intervention
|
|
would have prevented the failure.
|
|
|
|
Return:
|
|
{
|
|
"root_cause": "...",
|
|
"causal_chain": ["step 1", "led to step 2", "which caused failure"],
|
|
"root_cause_category": "vm" | "program" | "context" | "external"
|
|
}
|
|
"""
|
|
context: { trace, classification }
|
|
|
|
# ============================================================
|
|
# Phase 5: Fix Recommendations
|
|
# ============================================================
|
|
|
|
let fixes = session: fixer
|
|
prompt: """
|
|
Propose fixes for this failure.
|
|
|
|
Root cause: {root_cause}
|
|
Classification: {classification}
|
|
Evidence: {evidence}
|
|
|
|
Provide:
|
|
1. Immediate fix (how to make this specific run work)
|
|
2. Permanent fix (how to prevent this class of error)
|
|
3. Detection (how to catch this earlier next time)
|
|
|
|
Be specific. If it's a code change, show the diff.
|
|
If it's a process change, describe the new process.
|
|
|
|
Return:
|
|
{
|
|
"immediate": { action, details },
|
|
"permanent": { action, details, files_to_change },
|
|
"detection": { action, details },
|
|
"prevention": "how to avoid this in future programs"
|
|
}
|
|
"""
|
|
context: { root_cause, classification, evidence }
|
|
|
|
# ============================================================
|
|
# Output
|
|
# ============================================================
|
|
|
|
output report = session "Format report"
|
|
prompt: """
|
|
Format the forensic analysis as a report.
|
|
|
|
Evidence: {evidence}
|
|
Trace: {trace}
|
|
Classification: {classification}
|
|
Root cause: {root_cause}
|
|
Fixes: {fixes}
|
|
|
|
Structure:
|
|
1. Executive Summary
|
|
- What failed
|
|
- Why it failed (root cause)
|
|
- How to fix it
|
|
|
|
2. Timeline
|
|
- Execution trace with failure point highlighted
|
|
|
|
3. Root Cause Analysis
|
|
- Causal chain
|
|
- Classification
|
|
|
|
4. Recommendations
|
|
- Immediate fix
|
|
- Permanent fix
|
|
- Prevention
|
|
|
|
5. Technical Details
|
|
- Evidence gathered
|
|
- Files examined
|
|
|
|
Format as markdown.
|
|
"""
|
|
context: { evidence, trace, classification, root_cause, fixes }
|