{
  "markdown": "# notes-skills\n\nFive skills for writing up finished work — the root-cause analysis, the\nreusable-pattern note, the release notes, the daily task log, the debugging\nwar story. Packaged as a single plugin named `notes`, installable on six\ncoding-agent harnesses.\n\nEach skill mines the conversation you just had instead of asking you to retype\nit.\n\n## Skills\n\n| Skill | Invoke | What it does |\n|-------|--------|--------------|\n| `rca` | `/notes:rca [--commit] [--audience blog\\|private\\|internal]` | Writes a nine-section, Jekyll-ready root-cause analysis to `${RCA_REPO_PATH}/docs/analysis/YYYY-MM-DD-<slug>.md`. One document serves postmortem review, blog, AI training, and onboarding. |\n| `insight` | `/notes:insight [topic-hint]` | Captures one reusable pattern from the chat as a 50-80 line Korean note in the **current repo's** `docs/guide/learnings/`, and updates that directory's index. Refuses without real provenance. |\n| `release-note` | `/notes:release-note [<anchor-ref>] [<head-ref>]` | Finds the anchor commit, categorizes by conventional-commit prefix, and groups commits into user-facing themes rather than listing them one-to-one. |\n| `task-history` | `/notes:task-history [\"<description>\"]` | Appends this session's work to a daily log as a JIRA-pasteable block plus a markdown PR description, then auto-commits. |\n| `blog-dev-learnings` | `/notes:blog-dev-learnings \"<topic-hint>\"` | Retells a debugging war story as an entertaining Korean blog post following the arc 고통 -> 삽질 -> 깨달음 -> 해결. |\n\n### Visual guides and worked examples (GitHub Pages)\n\n- `rca` — [visual guide](https://deity719.github.io/notes-skills/skill-guides/rca.html) · [usage example](https://deity719.github.io/notes-skills/skill-output/rca-usage.html) (incident to 9-section report)\n- `insight` — [visual guide](https://deity719.github.io/notes-skills/skill-guides/insight.html) · [usage example](https://deity719.github.io/notes-skills/skill-output/insight-usage.html) (chat to learnings note)\n- `release-note` — [visual guide](https://deity719.github.io/notes-skills/skill-guides/release-note.html) · [usage example](https://deity719.github.io/notes-skills/skill-output/release-note-usage.html) (git range to themed notes)\n- `task-history` — [visual guide](https://deity719.github.io/notes-skills/skill-guides/task-history.html) · [usage example](https://deity719.github.io/notes-skills/skill-output/task-history-usage.html) (session to JIRA and PR text)\n- `blog-dev-learnings` — [visual guide](https://deity719.github.io/notes-skills/skill-guides/blog-dev-learnings.html) · [usage example](https://deity719.github.io/notes-skills/skill-output/blog-dev-learnings-usage.html) (war story to blog post)\n\nEach page is generated from a Markdown source under\n[`docs/skill-guides/`](docs/skill-guides) and [`docs/skill-output/`](docs/skill-output).\n\n### Picking between them\n\nSame incident, three registers: `rca` is the formal postmortem,\n`blog-dev-learnings` is the narrative retelling, `insight` is the one-pattern\ntakeaway. Pick one.\n\nThe other discriminator is **where the file lands**:\n\n| Writes inside the current repo | Writes to an absolute path outside it |\n|---|---|\n| `insight` -> `docs/guide/learnings/` | `rca` -> `$RCA_REPO_PATH` (default `~/para/archive/rca-knowledge`) |\n| `release-note` -> the project's existing release-note convention | `task-history` -> `$TASK_HISTORY_DIR` (default `~/para/archive/playbook/docs/task-history/`) |\n| | `blog-dev-learnings` -> `~/para/archive/playbook/docs/dev-learnings/` |\n\n`insight` is the only skill that requires the target repo to already have\n`docs/guide/learnings/` — it re-reads that directory's `README.md` as its\nrulebook on every run.\n\n## Install\n\n### Claude Code\n\n```\n/plugin marketplace add dEitY719/notes-skills\n/plugin install notes@notes-skills\n```\n\n### Codex\n\n```\ncodex plugin install dEitY719/notes-skills\n```\n\n### Kimi CLI\n\n```\nkimi plugin install dEitY719/notes-skills\n```\n\n### Hermes Agent\n\n```\nhermes plugins install dEitY719/notes-skills\n```\n\n### OpenCode\n\nSee [`.opencode/INSTALL.md`](.opencode/INSTALL.md).\n\n### Gemini CLI / Antigravity\n\n```\ngemini extensions install https://github.com/dEitY719/notes-skills\n```\n\nAntigravity (`agy`) shares `~/.gemini`, so it inherits the install.\n\n## Harness support\n\nThese skills are written in Claude Code's vocabulary, but they are mostly\nread-conversation / write-markdown work, so they port cleanly. The per-harness\ntool mappings and capability gaps are documented once, in\n[`dEitY719/harness-skills/references/`](https://github.com/dEitY719/harness-skills/tree/main/references)\n(dEitY719/dotfiles#1410 F-5); read the one file for the harness you are on.\n\n| Skill | Claude Code | Codex | Kimi | Gemini / Antigravity | Hermes | OpenCode |\n|-------|:-----------:|:-----:|:----:|:--------------------:|:------:|:--------:|\n| `rca` | full | full | full | full | full | full |\n| `insight` | full | full | full | full | full | full |\n| `release-note` | full | full | full | full | full | full |\n| `task-history` | full | full | full | full | full | full |\n| `blog-dev-learnings` | full | full | full | full | full | full |\n\nThe one thing every harness must supply itself is the raw material: these skills\nread the **current conversation**. None of them can reach a past session's\ntranscript, on any harness — when the live context is empty, they ask rather\nthan invent.\n\nSkills that pause for an answer (`insight` picking a candidate,\n`blog-dev-learnings` picking a title) need a real user reply; an auto-approve\nsession setting is not one.\n\n## Layout\n\nManifests live at the repo root and all point at one flat `skills/` directory:\n\n```\n.\n├── skills/{rca,insight,release-note,task-history,blog-dev-learnings}/\n│   ├── SKILL.md\n│   └── references/\n├── lib/collect-commits.sh                       release-note's helper\n├── tests/collect-commits-selftest.sh             ↳ its --selftest, CI-discovered\n├── .claude-plugin/{marketplace,plugin}.json     Claude Code\n├── .codex-plugin/plugin.json                    Codex\n├── .kimi-plugin/plugin.json                     Kimi CLI\n├── .hermes-plugin/{plugin.yaml,__init__.py}     Hermes Agent\n├── .opencode/plugins/notes.js + INSTALL.md      OpenCode\n├── .agents/plugins/marketplace.json             Antigravity\n├── gemini-extension.json + GEMINI.md            Gemini CLI\n├── package.json\n├── CLAUDE.md · AGENTS.md -> CLAUDE.md\n└── LICENSE\n```\n\nOnly Claude Code understands a nested `plugins/<name>/skills/` layout. The other\nfive harnesses resolve manifests at the repo root and a skills tree at\n`./skills/`, so this repo keeps everything flat. See [`CLAUDE.md`](CLAUDE.md) for\nthe full rationale and contribution rules.\n\nThe `.kimi-plugin/` manifest is pre-provisioned: Kimi CLI is not installed on the\nmaintainer's machines yet, and shipping the manifest now costs nothing and saves\na migration later.\n\n## CI\n\n[`.github/workflows/validate.yml`](.github/workflows/validate.yml) calls the\nreusable workflow owned by\n[`dEitY719/harness-skills`](https://github.com/dEitY719/harness-skills/blob/main/.github/workflows/skill-check.yml)\n(dEitY719/dotfiles#1410 D-10) — manifest parsing, required files, skill\nfrontmatter, progressive-disclosure line limits, the Codex description budget,\nversion agreement, shellcheck, and an emoji gate.\n\nTo change what the shared workflow validates, open a PR against `harness-skills`;\na merge to its `main` ships to all fifteen repos at once.\n\nOne repo-specific check does live here: `release-note`'s `lib/collect-commits.sh`\nships a `--selftest` mode, run via the `tests/*.sh` convention the shared\nworkflow auto-discovers — see\n[`tests/collect-commits-selftest.sh`](tests/collect-commits-selftest.sh).\n\n## Provenance\n\nThese skills were extracted from\n[`dEitY719/dotfiles`](https://github.com/dEitY719/dotfiles)\n(then at\n`claude/skills/write-{rca,insight,release-note,task-history,blog-dev-learnings}`)\nas a content snapshot — no history rewriting. The source commit SHA is recorded\nin this repo's first commit message. The `write-` prefix is dropped here because\nthe plugin namespace (`notes:`) now supplies it; the dotfiles originals have since\nbeen removed (dEitY719/dotfiles#1410 Phase 4), so `/notes:rca` is the only\ninvocation form.\n\nThis is part of Phase 1 of the dEitY719/dotfiles#1410 migration; `packaging-skills` was\nPhase 0 and `harness-skills` is its sibling.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n",
  "bytes": 8388,
  "sha": "f6efb0c2c4e3fc9f2a15ee7b53cee0a48b6cc1435eab621fa83cf322aa4816eb",
  "repo_slug": "deity719/notes-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_deity719_notes_skills_30a7b27b/readme"
}