{
  "schemaVersion": "1.0",
  "item": {
    "slug": "dev-chronicle",
    "name": "Dev Chronicle",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/sssamuelll/dev-chronicle",
    "canonicalUrl": "https://clawhub.ai/sssamuelll/dev-chronicle",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/dev-chronicle",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dev-chronicle",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "config.json",
      "references/voice-profile.md",
      "scripts/gather.sh"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/dev-chronicle"
    },
    "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/dev-chronicle",
    "agentPageUrl": "https://openagent3.xyz/skills/dev-chronicle/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dev-chronicle/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dev-chronicle/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "DevChronicle — Narrative Engineering Journal",
        "body": "DevChronicle generates prose chronicles of developer work — not dashboards, not metrics, not bullet lists. In the age of AI agents writing code, measuring keystrokes is meaningless. What matters is what you decided, what you killed, and where you're going.\n\nThe output is narrative: first person, honest, the way you'd tell a friend what you built today."
      },
      {
        "title": "Setup",
        "body": "On first use, check for {baseDir}/config.json. If it doesn't exist, create it by asking the user:\n\n{\n  \"projectDirs\": [\"~/Projects\"],\n  \"projectDepth\": 3,\n  \"memoryDir\": null,\n  \"sessionsDir\": null\n}\n\nprojectDirs: directories to scan for git repos (array, supports ~)\nprojectDepth: how deep to search for .git folders (default: 3)\nmemoryDir: path to OpenClaw memory files, or null to auto-detect (<workspace>/memory)\nsessionsDir: path to session transcripts, or null to auto-detect (~/.openclaw/agents/main/sessions)"
      },
      {
        "title": "Gathering Data",
        "body": "Run the gather script to collect raw data for a period:\n\nbash {baseDir}/scripts/gather.sh [YYYY-MM-DD] [days]\n\nExamples:\n\nbash {baseDir}/scripts/gather.sh — today only\nbash {baseDir}/scripts/gather.sh 2026-02-19 7 — week ending Feb 19\n\nThe script reads {baseDir}/config.json for paths. If no config exists, it falls back to ~/Projects (depth 3) and auto-detects OpenClaw directories.\n\nAfter gathering, read the output and generate a chronicle."
      },
      {
        "title": "Data Sources (priority order)",
        "body": "Git History (primary signal) — commits across all repos in configured directories\nMemory Files — memory/YYYY-MM-DD.md files contain decisions, context, things worth remembering\nSession Transcripts — JSONL files from OpenClaw sessions; richest context but heavy. Scan metadata line first, only read relevant sessions.\nExternal Tools (optional) — Trello, Notion, calendar, etc. Enrichment, not primary."
      },
      {
        "title": "Voice",
        "body": "Critical: Read {baseDir}/references/voice-profile.md before generating any chronicle. The voice IS the product.\n\nIf the user hasn't customized their voice profile, use the template and ask if they want to personalize it. A chronicle without voice is just a changelog.\n\nCore rules (regardless of voice profile):\n\nDecisions > tasks. What got rejected matters as much as what shipped.\nNo corporate speak. No \"leveraged\", \"synergized\", \"deliverables\", \"open threads\", \"action items\".\nInclude what was NOT done — kills, pivots, and rejected approaches are part of the story.\nEmotional beats matter — the satisfaction, frustration, surprise. These are human signals.\nBe personal. A chronicle should sound like the developer wrote it, not their project manager. If it reads like a status report, rewrite it.\nStructure is a suggestion, not a cage. If the day had one big theme, write one section. If it was chaos, let it be chaotic. Don't force headers."
      },
      {
        "title": "Formats",
        "body": "Daily Chronicle (default — aim for ~500-800 words, not a novel)\n\n# Chronicle — [Date]\n\n[Opening: set the scene in 1-2 punchy sentences]\n\n## [Theme 1]\n[Narrative: what happened, why, what got killed or rejected, how it felt]\n\n## [Theme 2]\n[...]\n\n[Weave metrics naturally: \"12 commits later...\" not a stats block at the end]\n[End with what's unfinished — but as narrative, not a TODO list]\n\nRules:\n\nDaily = tight. One screen of text. Save the epic for weekly.\nNo \"Metrics\" section. If commit count matters, weave it in. \"67 commits across two days\" belongs in a sentence, not a table.\nNo \"Open Threads\" or \"Next Steps\". If something's unfinished, say it where it fits: \"El Press Kit sigue esperando que Angélica suba el PDF.\" Done.\nNumbers without story are noise. \"5 deploys\" means nothing. \"Deployed 5 times because the server kept OOM-killing on a 914MB box\" means something.\n\nWeekly Chronicle — roll up daily themes into arcs. This one CAN be long. Emphasize direction and pivots over individual tasks.\n\nStandup — telegraphic: yesterday / today / blockers. Three bullets max each.\n\nPortfolio Narrative — third person, present tense, for LinkedIn/CV/case studies. Punchy and honest, not marketing-speak."
      },
      {
        "title": "Direction/Execution Ratio",
        "body": "When enough data exists (weekly+), calculate and mention:\n\nSpec lines vs code lines — are you building or planning?\nCommits vs decisions — activity vs impact\nKills — what got cut and why (kills show taste)\nPivots — direction changes and their reasoning\n\nThis is not a KPI. It's a mirror."
      }
    ],
    "body": "DevChronicle — Narrative Engineering Journal\n\nDevChronicle generates prose chronicles of developer work — not dashboards, not metrics, not bullet lists. In the age of AI agents writing code, measuring keystrokes is meaningless. What matters is what you decided, what you killed, and where you're going.\n\nThe output is narrative: first person, honest, the way you'd tell a friend what you built today.\n\nSetup\n\nOn first use, check for {baseDir}/config.json. If it doesn't exist, create it by asking the user:\n\n{\n  \"projectDirs\": [\"~/Projects\"],\n  \"projectDepth\": 3,\n  \"memoryDir\": null,\n  \"sessionsDir\": null\n}\n\nprojectDirs: directories to scan for git repos (array, supports ~)\nprojectDepth: how deep to search for .git folders (default: 3)\nmemoryDir: path to OpenClaw memory files, or null to auto-detect (<workspace>/memory)\nsessionsDir: path to session transcripts, or null to auto-detect (~/.openclaw/agents/main/sessions)\nGathering Data\n\nRun the gather script to collect raw data for a period:\n\nbash {baseDir}/scripts/gather.sh [YYYY-MM-DD] [days]\n\n\nExamples:\n\nbash {baseDir}/scripts/gather.sh — today only\nbash {baseDir}/scripts/gather.sh 2026-02-19 7 — week ending Feb 19\n\nThe script reads {baseDir}/config.json for paths. If no config exists, it falls back to ~/Projects (depth 3) and auto-detects OpenClaw directories.\n\nAfter gathering, read the output and generate a chronicle.\n\nData Sources (priority order)\nGit History (primary signal) — commits across all repos in configured directories\nMemory Files — memory/YYYY-MM-DD.md files contain decisions, context, things worth remembering\nSession Transcripts — JSONL files from OpenClaw sessions; richest context but heavy. Scan metadata line first, only read relevant sessions.\nExternal Tools (optional) — Trello, Notion, calendar, etc. Enrichment, not primary.\nGenerating the Chronicle\nVoice\n\nCritical: Read {baseDir}/references/voice-profile.md before generating any chronicle. The voice IS the product.\n\nIf the user hasn't customized their voice profile, use the template and ask if they want to personalize it. A chronicle without voice is just a changelog.\n\nCore rules (regardless of voice profile):\n\nDecisions > tasks. What got rejected matters as much as what shipped.\nNo corporate speak. No \"leveraged\", \"synergized\", \"deliverables\", \"open threads\", \"action items\".\nInclude what was NOT done — kills, pivots, and rejected approaches are part of the story.\nEmotional beats matter — the satisfaction, frustration, surprise. These are human signals.\nBe personal. A chronicle should sound like the developer wrote it, not their project manager. If it reads like a status report, rewrite it.\nStructure is a suggestion, not a cage. If the day had one big theme, write one section. If it was chaos, let it be chaotic. Don't force headers.\nFormats\n\nDaily Chronicle (default — aim for ~500-800 words, not a novel)\n\n# Chronicle — [Date]\n\n[Opening: set the scene in 1-2 punchy sentences]\n\n## [Theme 1]\n[Narrative: what happened, why, what got killed or rejected, how it felt]\n\n## [Theme 2]\n[...]\n\n[Weave metrics naturally: \"12 commits later...\" not a stats block at the end]\n[End with what's unfinished — but as narrative, not a TODO list]\n\n\nRules:\n\nDaily = tight. One screen of text. Save the epic for weekly.\nNo \"Metrics\" section. If commit count matters, weave it in. \"67 commits across two days\" belongs in a sentence, not a table.\nNo \"Open Threads\" or \"Next Steps\". If something's unfinished, say it where it fits: \"El Press Kit sigue esperando que Angélica suba el PDF.\" Done.\nNumbers without story are noise. \"5 deploys\" means nothing. \"Deployed 5 times because the server kept OOM-killing on a 914MB box\" means something.\n\nWeekly Chronicle — roll up daily themes into arcs. This one CAN be long. Emphasize direction and pivots over individual tasks.\n\nStandup — telegraphic: yesterday / today / blockers. Three bullets max each.\n\nPortfolio Narrative — third person, present tense, for LinkedIn/CV/case studies. Punchy and honest, not marketing-speak.\n\nDirection/Execution Ratio\n\nWhen enough data exists (weekly+), calculate and mention:\n\nSpec lines vs code lines — are you building or planning?\nCommits vs decisions — activity vs impact\nKills — what got cut and why (kills show taste)\nPivots — direction changes and their reasoning\n\nThis is not a KPI. It's a mirror."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sssamuelll/dev-chronicle",
    "publisherUrl": "https://clawhub.ai/sssamuelll/dev-chronicle",
    "owner": "sssamuelll",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/dev-chronicle",
    "downloadUrl": "https://openagent3.xyz/downloads/dev-chronicle",
    "agentUrl": "https://openagent3.xyz/skills/dev-chronicle/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dev-chronicle/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dev-chronicle/agent.md"
  }
}