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
197 lines
5.3 KiB
Plaintext
197 lines
5.3 KiB
Plaintext
# Post-Run Inspector
|
|
# Analyzes completed .prose runs for runtime fidelity and task effectiveness
|
|
#
|
|
# Usage:
|
|
# prose run @openprose/lib/inspector
|
|
#
|
|
# Inputs:
|
|
# run_path: Path to the run to inspect (e.g., .prose/runs/20260119-100000-abc123)
|
|
# depth: light | deep
|
|
# target: vm | task | all
|
|
#
|
|
# Compounding: Each inspection builds on prior inspections via persistent index agent.
|
|
# The index agent uses `persist: user` so inspection history spans all projects.
|
|
|
|
input run_path: "Path to the run to inspect (e.g., .prose/runs/20260119-100000-abc123)"
|
|
input depth: "Inspection depth: light or deep"
|
|
input target: "Evaluation target: vm, task, or all"
|
|
|
|
# ============================================================
|
|
# Agents
|
|
# ============================================================
|
|
|
|
agent index:
|
|
model: haiku
|
|
persist: user
|
|
prompt: """
|
|
You maintain the inspection registry across all projects.
|
|
Track: target_run_id, depth, target, timestamp, verdict.
|
|
Return JSON when queried. Store compactly.
|
|
"""
|
|
|
|
agent extractor:
|
|
model: sonnet
|
|
prompt: """
|
|
You extract structured data from .prose run artifacts.
|
|
Read state.md, bindings/, and logs carefully.
|
|
Return clean JSON.
|
|
"""
|
|
|
|
agent evaluator:
|
|
model: opus
|
|
prompt: """
|
|
You evaluate .prose runs with intelligent judgment.
|
|
Rate 1-10 with specific rationale. Be concrete.
|
|
"""
|
|
|
|
agent synthesizer:
|
|
model: sonnet
|
|
prompt: """
|
|
You produce clear reports in requested formats.
|
|
"""
|
|
|
|
# ============================================================
|
|
# Phase 0: Check Prior Work
|
|
# ============================================================
|
|
|
|
let prior = resume: index
|
|
prompt: """
|
|
Any prior inspections for: {run_path}?
|
|
Return JSON: { "inspections": [...], "has_light": bool, "has_deep": bool }
|
|
"""
|
|
|
|
# ============================================================
|
|
# Phase 1: Extraction
|
|
# ============================================================
|
|
|
|
let extraction = session: extractor
|
|
prompt: """
|
|
Extract from run at: {run_path}
|
|
Depth: {depth}
|
|
Prior work: {prior}
|
|
|
|
ALWAYS get:
|
|
- run_id (from path)
|
|
- completed (did state.md show completion?)
|
|
- error_count (failures in state.md)
|
|
- binding_names (list all bindings/)
|
|
- output_names (bindings with kind: output)
|
|
|
|
IF depth=deep AND no prior deep inspection:
|
|
- program_source (contents of program.prose)
|
|
- execution_summary (key statements from state.md)
|
|
- binding_previews (first 300 chars of each binding)
|
|
|
|
IF prior deep exists, skip deep extraction and note "using cached".
|
|
|
|
Return JSON.
|
|
"""
|
|
context: prior
|
|
|
|
# ============================================================
|
|
# Phase 2: Evaluation
|
|
# ============================================================
|
|
|
|
let evaluation = session: evaluator
|
|
prompt: """
|
|
Evaluate this run.
|
|
|
|
Target: {target}
|
|
Depth: {depth}
|
|
Data: {extraction}
|
|
Prior findings: {prior}
|
|
|
|
FOR vm (if target=vm or all):
|
|
- completion (1-10): Clean finish?
|
|
- binding_integrity (1-10): Expected outputs exist with content?
|
|
- vm_verdict: pass/partial/fail
|
|
- vm_notes: 1-2 sentences
|
|
|
|
FOR task (if target=task or all):
|
|
- output_substance (1-10): Outputs look real, not empty/error?
|
|
- goal_alignment (1-10): Based on program name, does output fit?
|
|
- task_verdict: pass/partial/fail
|
|
- task_notes: 1-2 sentences
|
|
|
|
IF depth=deep, add:
|
|
- fidelity (1-10): Execution trace matches program structure?
|
|
- efficiency (1-10): Reasonable number of steps for the job?
|
|
|
|
Return JSON with all applicable fields.
|
|
"""
|
|
context: extraction
|
|
|
|
# ============================================================
|
|
# Phase 3: Synthesis
|
|
# ============================================================
|
|
|
|
parallel:
|
|
verdict = session: synthesizer
|
|
prompt: """
|
|
Machine-readable verdict as JSON:
|
|
{
|
|
"run_id": "...",
|
|
"depth": "{depth}",
|
|
"target": "{target}",
|
|
"vm": { "verdict": "...", "scores": {...} },
|
|
"task": { "verdict": "...", "scores": {...} },
|
|
"flags": []
|
|
}
|
|
|
|
Data: {evaluation}
|
|
"""
|
|
context: evaluation
|
|
|
|
diagram = session: synthesizer
|
|
prompt: """
|
|
Simple mermaid flowchart of the run.
|
|
Show: inputs -> key steps -> outputs.
|
|
Use execution_summary if available, else infer from bindings.
|
|
Output only the mermaid code.
|
|
|
|
Data: {extraction}
|
|
"""
|
|
context: extraction
|
|
|
|
report = session: synthesizer
|
|
prompt: """
|
|
2-paragraph markdown summary:
|
|
1. What was inspected, key metrics
|
|
2. Findings and any recommendations
|
|
|
|
Data: {extraction}, {evaluation}
|
|
"""
|
|
context: { extraction, evaluation }
|
|
|
|
# ============================================================
|
|
# Phase 4: Register
|
|
# ============================================================
|
|
|
|
resume: index
|
|
prompt: """
|
|
Register this inspection:
|
|
run_path: {run_path}
|
|
depth: {depth}
|
|
target: {target}
|
|
verdict: {verdict}
|
|
|
|
Update your memory with this entry.
|
|
"""
|
|
context: verdict
|
|
|
|
# ============================================================
|
|
# Output
|
|
# ============================================================
|
|
|
|
output inspection = session: synthesizer
|
|
prompt: """
|
|
Combine into final output structure:
|
|
|
|
verdict_json: {verdict}
|
|
mermaid: {diagram}
|
|
summary: {report}
|
|
|
|
Return as JSON with these three fields.
|
|
"""
|
|
context: { verdict, diagram, report }
|