{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ops-journal",
    "name": "ops-journal",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/mariusfit/ops-journal",
    "canonicalUrl": "https://clawhub.ai/mariusfit/ops-journal",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ops-journal",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ops-journal",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/journal.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ops-journal"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ops-journal",
    "agentPageUrl": "https://openagent3.xyz/skills/ops-journal/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ops-journal/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ops-journal/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ops-journal — Automated Ops Logging & Incident Timeline for OpenClaw",
        "body": "Structured operational journal that captures deployments, incidents, changes, and decisions. Creates a searchable ops log with incident timeline reconstruction and automated postmortem generation."
      },
      {
        "title": "Quick Start",
        "body": "# Initialize journal\npython3 scripts/journal.py init\n\n# Log an event\npython3 scripts/journal.py log \"Upgraded nginx to 1.25\" --category deploy\npython3 scripts/journal.py log \"Disk cleanup, freed 5GB\" --category maintenance --tags storage\n\n# Start an incident\npython3 scripts/journal.py incident open \"API latency spike\" --severity high\n\n# Resolve an incident\npython3 scripts/journal.py incident resolve INC-001 \"Root cause: disk full on /var\"\n\n# Search logs\npython3 scripts/journal.py search \"nginx\" --since 7d\npython3 scripts/journal.py search --category incident --severity high\n\n# Generate reports\npython3 scripts/journal.py summary --period week\npython3 scripts/journal.py timeline INC-001\n\n# Export\npython3 scripts/journal.py export --format markdown --since 30d"
      },
      {
        "title": "Entry Categories",
        "body": "CategoryDescriptionAuto-loggeddeployDeployments, upgrades, rollbacksVia hooksincidentIncidents, outages, degradationsVia watchdog integrationconfigConfiguration changesVia hooksmaintenanceScheduled maintenance, cleanupManual or cronsecuritySecurity events, audits, patchesVia security skillsnoteGeneral observations, decisionsManual"
      },
      {
        "title": "Severity Levels",
        "body": "info — Normal operations (default)\nwarn — Something worth noting\nhigh — Important event requiring attention\ncritical — Major incident or outage"
      },
      {
        "title": "log — Create a journal entry",
        "body": "python3 scripts/journal.py log \"message\" [--category CAT] [--severity SEV] [--tags tag1,tag2]"
      },
      {
        "title": "incident — Incident management",
        "body": "python3 scripts/journal.py incident open \"description\" [--severity SEV]\npython3 scripts/journal.py incident resolve ID \"resolution\"\npython3 scripts/journal.py incident list [--status open|resolved|all]\npython3 scripts/journal.py incident show ID"
      },
      {
        "title": "search — Search journal entries",
        "body": "python3 scripts/journal.py search [query] [--category CAT] [--severity SEV] [--since Nd|Nw|Nm] [--limit N]"
      },
      {
        "title": "summary — Generate period summary",
        "body": "python3 scripts/journal.py summary [--period day|week|month] [--json]"
      },
      {
        "title": "timeline — Incident timeline",
        "body": "python3 scripts/journal.py timeline ID [--format markdown|json]"
      },
      {
        "title": "export — Export journal",
        "body": "python3 scripts/journal.py export [--format markdown|json|csv] [--since Nd] [--output file]"
      },
      {
        "title": "stats — Journal statistics",
        "body": "python3 scripts/journal.py stats [--period month]"
      },
      {
        "title": "Output Modes",
        "body": "Human: Colored terminal output with category icons and severity highlighting\nJSON: Machine-readable output for integration (--json)\nMarkdown: Report-ready markdown for sharing (--format markdown)\nCSV: Spreadsheet-compatible export (--format csv)"
      },
      {
        "title": "Integration with infra-watchdog",
        "body": "When infra-watchdog detects an issue, ops-journal can auto-log it:\n\n# In a cron or hook:\npython3 scripts/journal.py log \"Monitor CRITICAL: Gateway down\" --category incident --severity critical"
      },
      {
        "title": "OpenClaw Cron Integration",
        "body": "# Daily summary at 09:00\npython3 scripts/journal.py summary --period day --json\n\n# Weekly digest on Monday\npython3 scripts/journal.py summary --period week"
      },
      {
        "title": "Storage",
        "body": "All data stored in ~/.openclaw/workspace/ops-journal/:\n\njournal.db — SQLite database with all entries\nincidents/ — Individual incident files (markdown)"
      },
      {
        "title": "Files",
        "body": "scripts/journal.py — Main journal engine\nSKILL.md — This file"
      }
    ],
    "body": "ops-journal — Automated Ops Logging & Incident Timeline for OpenClaw\n\nStructured operational journal that captures deployments, incidents, changes, and decisions. Creates a searchable ops log with incident timeline reconstruction and automated postmortem generation.\n\nQuick Start\n# Initialize journal\npython3 scripts/journal.py init\n\n# Log an event\npython3 scripts/journal.py log \"Upgraded nginx to 1.25\" --category deploy\npython3 scripts/journal.py log \"Disk cleanup, freed 5GB\" --category maintenance --tags storage\n\n# Start an incident\npython3 scripts/journal.py incident open \"API latency spike\" --severity high\n\n# Resolve an incident\npython3 scripts/journal.py incident resolve INC-001 \"Root cause: disk full on /var\"\n\n# Search logs\npython3 scripts/journal.py search \"nginx\" --since 7d\npython3 scripts/journal.py search --category incident --severity high\n\n# Generate reports\npython3 scripts/journal.py summary --period week\npython3 scripts/journal.py timeline INC-001\n\n# Export\npython3 scripts/journal.py export --format markdown --since 30d\n\nEntry Categories\nCategory\tDescription\tAuto-logged\ndeploy\tDeployments, upgrades, rollbacks\tVia hooks\nincident\tIncidents, outages, degradations\tVia watchdog integration\nconfig\tConfiguration changes\tVia hooks\nmaintenance\tScheduled maintenance, cleanup\tManual or cron\nsecurity\tSecurity events, audits, patches\tVia security skills\nnote\tGeneral observations, decisions\tManual\nSeverity Levels\ninfo — Normal operations (default)\nwarn — Something worth noting\nhigh — Important event requiring attention\ncritical — Major incident or outage\nCommands\nlog — Create a journal entry\npython3 scripts/journal.py log \"message\" [--category CAT] [--severity SEV] [--tags tag1,tag2]\n\nincident — Incident management\npython3 scripts/journal.py incident open \"description\" [--severity SEV]\npython3 scripts/journal.py incident resolve ID \"resolution\"\npython3 scripts/journal.py incident list [--status open|resolved|all]\npython3 scripts/journal.py incident show ID\n\nsearch — Search journal entries\npython3 scripts/journal.py search [query] [--category CAT] [--severity SEV] [--since Nd|Nw|Nm] [--limit N]\n\nsummary — Generate period summary\npython3 scripts/journal.py summary [--period day|week|month] [--json]\n\ntimeline — Incident timeline\npython3 scripts/journal.py timeline ID [--format markdown|json]\n\nexport — Export journal\npython3 scripts/journal.py export [--format markdown|json|csv] [--since Nd] [--output file]\n\nstats — Journal statistics\npython3 scripts/journal.py stats [--period month]\n\nOutput Modes\nHuman: Colored terminal output with category icons and severity highlighting\nJSON: Machine-readable output for integration (--json)\nMarkdown: Report-ready markdown for sharing (--format markdown)\nCSV: Spreadsheet-compatible export (--format csv)\nIntegration with infra-watchdog\n\nWhen infra-watchdog detects an issue, ops-journal can auto-log it:\n\n# In a cron or hook:\npython3 scripts/journal.py log \"Monitor CRITICAL: Gateway down\" --category incident --severity critical\n\nOpenClaw Cron Integration\n# Daily summary at 09:00\npython3 scripts/journal.py summary --period day --json\n\n# Weekly digest on Monday\npython3 scripts/journal.py summary --period week\n\nStorage\n\nAll data stored in ~/.openclaw/workspace/ops-journal/:\n\njournal.db — SQLite database with all entries\nincidents/ — Individual incident files (markdown)\nFiles\nscripts/journal.py — Main journal engine\nSKILL.md — This file"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mariusfit/ops-journal",
    "publisherUrl": "https://clawhub.ai/mariusfit/ops-journal",
    "owner": "mariusfit",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ops-journal",
    "downloadUrl": "https://openagent3.xyz/downloads/ops-journal",
    "agentUrl": "https://openagent3.xyz/skills/ops-journal/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ops-journal/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ops-journal/agent.md"
  }
}