本文へ移動
cccskills
無料GitHub で公開

engineering-journal

Use when starting or picking up a non-trivial effort (feature, investigation, perf probe, refactor, migration) in a shared repo where teammates or future agents must coordinate or hand off; when a repo has no durable in-tree record of decisions and dead-ends; when you're about to drop a well-measured negative result; or when bootstrapping a journal from a repo's commit history.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md10.3 KB
  • publishing-example.md4.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Engineering Journal

Overview

An engineering journal is an in-repo markdown record of efforts — what you set out to do, the decision to proceed or not, what happened, and what was learned. It lives in the tree (docs/journal/ or the repo's docs dir), lands on main via PR, and is grounded in code (real commits, files, specs).

Core principle: an effort's record is a deliverable, landed alongside the code — not a closed issue, not notes in your head. A well-measured dead-end is the most valuable entry: an unrecorded NO-GO is the one the team re-pays to rediscover.

When to use

  • Starting a non-trivial effort a teammate or future agent might need to understand or continue.
  • Picking up someone's in-progress work — read their entry to continue.
  • A repo with no decision/dead-end record — establish the journal as the convention.
  • Bootstrapping from a repo's commit history (retrospective mode, below).

Not for trivial one-liners.

Journal vs. issues (use both)

Issues/PRs are the task layer — discrete units, assignment, notifications. The journal is the narrative/decision layer — why, the dead-ends, current state, how to continue. It must be in-repo: versioned with the code, greppable, code-grounded, and readable by the next agent without leaving the tree. Link the journal to issues/PRs; don't let an issue be the only record of a non-trivial effort.

The lifecycle (per effort)

  1. Pick & scope. Gather requirements. Grep the journal + git log for prior art first — don't re-litigate a settled question.
  2. Open — land intent on main. Write the entry: goal/hypothesis, requirements, GO/NO-GO criteria (number-gated where possible), plan. Commit via PR to main so the effort is visible before you build. This is the coordination move. If the entry names deferred/reopen items, mirror them into docs/backlog.md in the same commit (see "Keep the backlog in sync").
  3. Go / no-go. Probe or price it cheaply before building. Record the verdict honestly.
  4. Implement & test.
  5. Close out — in the implementing PR. Update the entry with the outcome (shipped / NO-GO + numbers + mechanism) and update any docs the change affects. Reconcile docs/backlog.md: add any new deferred items this effort leaves behind, and remove or mark done every backlog item this landing completes or deprecates — in the same PR. Landing the work closes the record.

A NO-GO closes out the same way: land the negative result with its mechanism and a reopen condition ("revisit if new hardware / data / regime"). Merge negative probes; don't abandon them.

Ground every claim in code

The journal's authority is that it traces to source: real commit SHAs, PR numbers, source-code paths (src/…, crates/…), measured numbers — never invented figures, and never a transient design/spec doc that may be deleted (absorb its content instead — see below). When you update or reconstruct an entry, re-verify against current code; stale claims are the main failure mode. If a detail isn't in the source, say so or omit it.

Absorb the design doc — the entry is self-contained

An effort's design often starts life as a separate spec/plan/brainstorm doc (from a planning skill, an ad-hoc docs/design/ or scratch location). Do not leave that doc beside the journal and link to it: parallel records drift, and a scratch doc that later gets deleted turns the journal's links into dangling references.

When you journal an effort, lift the design doc's durable content — the goal, the decisions and their rationale, the GO/NO-GO, the dead-ends — into the journal entry itself, then remove the consumed spec/plan doc in the same PR. The entry becomes the design record (as this skill's own entries do). A useful check: after writing, grep the entry for any path you are about to delete — if a fact only lives behind such a reference, lift it inline; then the reference goes. The entry must read completely on its own, citing only things that persist (SHAs, PRs, code paths).

Sampler efforts carry a measured overhead number

If the effort adds or changes a sampler — or changes core code that affects samplers — the GO/NO-GO criteria and the close-out MUST carry the measured per-refresh overhead (µs at fleet-representative scale, from the agent's sampling latency debug line), never "bounded"/"low"/"negligible". If the refresh reads a non-mmap source (sysfs device command, ioctl, SMI/library call, page-table walk), also record the cadence decision (throttle to the sampler's own interval + dispatch off the sample cycle). This is where "measured numbers" above is non-negotiable, and it is most dangerous for a legitimate sysfs/procfs exception, where no cost alarm fires for you — an unmeasured overhead claim there is not a GO. See docs/principles.md principles 13, 16, 17. For the full pass, use the reviewing-samplers skill.

Honest-ledger voice

Factual, not diaristic or triumphant. NO-GOs and falsifications are first-class, with their mechanism. Flag what you couldn't measure. Don't overclaim — the record is trusted only if it's honest about what didn't work and what's uncertain.

Retrospective mode (bootstrap)

For a repo without a journal: cluster the commit history into thematic arcs/campaigns, write one grounded entry per arc from its commit range + design docs + notes (one drafter per arc parallelizes well), and add a series index. Same grounding and voice rules — lift the design docs' key decisions into the entries and remove the consumed docs (see "Absorb the design doc"); the entries, not the scratch docs, are the record.

Keep the backlog in sync

docs/backlog.md is the repo's consolidated backlog — the ordering layer over the work. Most items are the journal's deferred/reopen items mirrored here, each tracing back to the journal entry that owns its "why" and mechanism (it may also carry net-new follow-ups/capability requests not yet tied to an effort — those cite their own origin). The journal-derived portion is not a second source of truth; because it is derived it goes stale unless updated with the journal, so treat it as part of every journal change:

  • Adding an entry (open or retrospective) whose Deferred/Reopen/limitations section lists items → add those items to docs/backlog.md, each linking its source entry and carrying its reopen condition.
  • Updating an entry — new deferred items, or a resolved one → mirror the change in the backlog (add / edit / drop).
  • Landing work that completes or deprecates a backlog item → remove it (or mark it done with the PR that closed it) in the same PR. A backlog that still lists shipped work is worse than none — it sends people to re-do or re-litigate finished efforts.

Keep items grounded (link the entry, cite code paths / PRs), and mark state (Open / Roadmap / By-design) rather than deleting the reasoning. If the repo has a dedicated backlog/roadmap skill, defer ordering and prioritization to it; this skill still keeps docs/backlog.md consistent with the journal.

Optional: publish as docs

The journal can feed a doc site in whatever the repo already uses (mdBook, another SSG, plain markdown, the repo's existing docs) — don't impose a toolchain. Journals stay source-of-truth; the site consumes them. A concrete worked example (private-by-construction mdBook with a build + link-check gate) and reusable scripts are in publishing-example.md.

Related

The journal records a single effort; docs/backlog.md (see "Keep the backlog in sync") is the consolidated index of their deferred/reopen items, kept in step with the journal by this skill. Prioritizing which effort to pick next is a separate concern — defer it to a dedicated backlog/roadmap skill if the repo has one.

Common rationalizations

RationalizationReality
"No journal convention here; I won't invent one for one item."The journal is the convention — establish it once. It compounds; every entry saves the next person from re-deriving.
"A GitHub issue is enough."Issues aren't versioned with the code, aren't greppable in-repo, aren't code-grounded, and the next agent won't find them. The record belongs in the tree.
"I'll keep scratch notes in my head."Then the reasoning is lost at handoff. The journal is where the reasoning lives.
"It's a dead end — nothing to record."The dead-end is the highest-value entry. Record the mechanism and the reopen condition.
"I'll write it up after it ships."Land the record in the same PR. "After" = never, or an unverified reconstruction.
"Close enough on the numbers."Ground every figure in a source or omit it. Invented numbers destroy the record's authority.
"The sampler refresh is a small sysfs read — obviously cheap."Cheap is a measured number. drivehealth's "small sysfs read" was ~83 ms/refresh (an ATA command per drive). A legitimate principle-15 exception is exactly where no cost alarm fires — measure it.
"The spec doc already says all this — I'll just link it."A separate spec drifts from the code and dangles when the doc is deleted. Lift its decisions into the entry and remove the doc; the entry is the design record.

Red flags — stop

  • About to implement without landing intent for coordination.
  • Recording an outcome you didn't verify against code.
  • Dropping a negative result instead of landing it.
  • Reaching for a GitHub issue as the only record of a non-trivial effort.
  • Writing "bounded" / "low overhead" in a sampler effort's GO criteria or close-out with no measured µs number behind it.
  • Leaving a separate spec/plan/scratch doc beside the entry and linking to it, instead of lifting its content in and removing it — especially a doc slated for deletion (the link will dangle).
  • Landing work that finishes or deprecates a backlog item without removing it from docs/backlog.md, or adding a journal entry's deferred items without mirroring them into the backlog.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Write or update the CLI `--help` text and README section for a new or changed rezolus feature (a subcommand, flag, mode, or behavior change), then prove the help is usable by dispatching a fresh subagent that has never seen the code. Use this whenever you add or change how rezolus is invoked — new `rezolus <subcommand>`, new flags/args on an existing mode, renamed options, or changed defaults — and any time the user says the help/README is thin, stale, confusing, or "an agent couldn't figure this out." Treats help text as an interface under test, not prose.

日本語の概要は準備中です。原文の説明を表示しています。

iopsystems/rezolus2752026年10月10日 更新

pr

無料

Create a feature branch, commit changes, push, and open a PR against iopsystems/rezolus

日本語の概要は準備中です。原文の説明を表示しています。

iopsystems/rezolus2752026年10月10日 更新

Tag and push a prerelease from the current Cargo.toml version. Use when the user wants to cut an alpha/beta/rc prerelease. Aborts on stable versions (no `-` in version string) and if the tag already exists.

日本語の概要は準備中です。原文の説明を表示しています。

iopsystems/rezolus2752026年10月10日 更新

release

無料

Create a release PR with version bump and changelog update

日本語の概要は準備中です。原文の説明を表示しています。

iopsystems/rezolus2752026年10月10日 更新

Use when reviewing a Rezolus sampler change before merge — a new sampler, a change to an existing sampler's probes/refresh/metrics, or core changes that affect samplers; or whenever a sampler's overhead, cadence, or data source is in question.

日本語の概要は準備中です。原文の説明を表示しています。

iopsystems/rezolus2752026年10月10日 更新

Investigate a Rezolus performance recording (.parquet, .rez, .dendro) through the rezolus MCP server. Discovery before query, verdicts and marks written back, links to the viewer.

日本語の概要は準備中です。原文の説明を表示しています。

iopsystems/rezolus2752026年10月10日 更新

iopsystems のスキルをすべて見る

このスキルの問題を報告する