Skills osop-log
Generate OSOP session log — creates .osop workflow and .osoplog.yaml execution record
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/archie0125/osop-log" ~/.claude/skills/openclaw-skills-osop-log && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/archie0125/osop-log" ~/.openclaw/skills/openclaw-skills-osop-log && rm -rf "$T"
manifest:
skills/archie0125/osop-log/SKILL.mdsource content
OSOP Session Logger
You just completed a task. Now produce a structured session log.
What to create
— workflow definitionsessions/YYYY-MM-DD-<short-desc>.osop
— execution recordsessions/YYYY-MM-DD-<short-desc>.osoplog.yaml
Create the
sessions/ directory if it doesn't exist.
Task description
$ARGUMENTS
.osop format
osop_version: "1.0" id: "session-<short-description>" name: "<What you did>" description: "<1-2 sentence summary>" version: "1.0.0" tags: [claude-code, <relevant-tags>] nodes: - id: "<step-id>" type: "<node-type>" # human, agent, mcp, cli, api, cicd, git, db, docker, infra, system, event, gateway, data, company, department subtype: "<subtype>" # Optional: llm, explore, plan, worker, tool, test, commit, rest, etc. name: "<Step Name>" description: "<What this step does>" security: risk_level: "<low|medium|high|critical>" edges: - from: "<step-a>" to: "<step-b>" mode: "sequential" # sequential, parallel, conditional, fallback, error, spawn, etc.
.osoplog.yaml format
osoplog_version: "1.0" run_id: "<generate-uuid>" workflow_id: "<matches .osop id>" mode: "live" status: "COMPLETED" trigger: type: "manual" actor: "user" timestamp: "<ISO timestamp>" started_at: "<ISO timestamp>" ended_at: "<ISO timestamp>" duration_ms: <total ms> runtime: agent: "claude-code" model: "<current model>" node_records: - node_id: "<step-id>" node_type: "<type>" attempt: 1 status: "COMPLETED" started_at: "<ISO>" ended_at: "<ISO>" duration_ms: <ms> outputs: <what you produced> tools_used: - { tool: "<tool-name>", calls: <n> } reasoning: question: "<what was decided>" selected: "<chosen approach>" confidence: <0.0-1.0> result_summary: "<1-2 sentence summary>"
Node type mapping
| Action | type | subtype |
|---|---|---|
| Read/explore files | | |
| Edit/write files | | |
| Shell commands | | |
| Run tests | | |
| Git operations | | / / |
| Analyze/reason | | |
| Search codebase | | |
| Ask user | | |
| User reviews | | |
| Spawn sub-agent | | / / |
| API calls | | |
Sub-agent tracking
If you spawned sub-agents, use
parent on child nodes and spawn edge:
nodes: - id: "coordinator" type: "agent" subtype: "coordinator" - id: "explore_1" type: "agent" subtype: "explore" parent: "coordinator" edges: - from: "coordinator" to: "explore_1" mode: "spawn"
Important
- Be accurate about what tools were used and how many calls
- Include reasoning for non-obvious decisions
- Estimate durations based on tool call timing
- If the task failed, set status to FAILED and include error details
- View logs at https://osop-editor.vercel.app