Skill

Log End

Closes today's open work-session log entry — stamps the end time, appends what you did, one keystroke plus a sentence.

A time-log is only worth keeping if its entries are closed at the moment work ends, with a real end time and a real description — not backfilled from memory a week later. The friction of opening a file, finding today’s entry, and typing out the metadata is exactly enough to make you skip it. So the entries pile up open, the end times get guessed, and the record stops meaning anything.

This skill is the closing half of a two-skill pair. A companion /log-start opens an entry with a start time and a blank end field. /log-end <description> closes it: it finds today’s open entry, stamps the current time, and appends your description as a paragraph. The whole act of finishing a session becomes one keystroke and one sentence — low-friction enough to actually do every time.

Flow diagram: log-end finds today's open entry, stamps the end time, appends a one-sentence description, and closes the record.

How it works

The description is mandatory and is the only thing the skill takes from you. It asks no follow-up questions.

  • No-argument guard. Run /log-end with no description and it writes nothing — it replies with a single line asking you to re-run with a description plus an example, then stops. A half-closed, undescribed entry is worth little as a record, so it refuses to make one.
  • Find today’s open entry. It lists the log folder for files matching today’s date and picks the one whose end field is still empty. If none is open, it says so (you may have skipped /log-start) and stops without creating anything. If two are open, it closes the latest-start one and warns about the rest.
  • Update in place. It fills the end field with the current time and appends the description below the metadata block. It optionally rewrites the generic title to a short topic drawn from the first few words of the description — and leaves the title alone if the description is too generic for a clean one. The title rewrite is the only place it exercises judgment; everything else is mechanical, which is the point. A logging skill that editorializes is one that can be wrong about the record.
  • Confirm in one line. Filename and close time, nothing more.

One deliberate detail: the skill pastes the literal date into its shell commands rather than using $(date ...). In Claude Code, command substitution triggers an approval prompt even when an allow-rule would otherwise match, which would interrupt a flow meant to be frictionless.

Why split start and end

Two skills instead of one means each timestamp is captured at the moment it happens, not reconstructed. If the log is committed and pushed to a git remote, the push timestamp becomes a tamper-resistant record — local commit times are easy to fake, the remote’s receipt time is not. That property only holds if entries are genuinely closed when the work stops. Log End is what makes closing them cheap enough to be honest.

Keep it in lockstep

The two skills are a matched pair: Log End reads the exact field layout that Log Start writes. Change one format and you must change the other. The skill never invents content beyond your description — it does not summarize, does not touch the environment field, and modifies only the single open entry for today.