Skip to content
Back to skills

Log

ASecurity

Log this session's learnings (decisions, insights, questions, quiz) for a task to the personal Notion "Engineering learnings" databases (any task tracker). Use when the user says /log, "log this", "save learnings", or when a PR is opened or a task reaches Done and the user wants the insight captured.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentspythongogitdatabasesecurity

Works with

  • cli

Security analysis

A100/100

Scanned October 20, 2026

npx -y skills add swastij/claude-log-skill --skill log --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Log?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Log
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/swastij-log/badge)](https://www.skillsdirectory.com/skills/swastij-log)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: log
description: Log this session's learnings (decisions, insights, questions, quiz) for a task to the personal Notion "Engineering learnings" databases (any task tracker). Use when the user says /log, "log this", "save learnings", or when a PR is opened or a task reaches Done and the user wants the insight captured.
---

# /log — capture learnings to Notion

Personal knowledge base, not team-facing. Script: `~/.claude/scripts/notion-log.py`.
Entry files go in the scratchpad dir (or a temp dir), named `log-<task_id>.json`.
Setup and the Notion template: https://github.com/swastij/claude-log-skill

## Steps

1. **Identify the task.** Task ID (ClickUp, Jira, Linear, GitHub issue; any id works, it is only the upsert key) from the branch name, PR body or the user. If none exists, ask. Collect PR URLs for every repo touched.

2. **Draft the entry** from the session. Write it as JSON (shape in the script docstring) and SHOW it to the user as a short readable summary, not raw JSON. Rules:
   - `surprised_me` / `how_it_works` / `would_bite_again`: one paragraph each, mechanism not diff. Leave empty if the task was trivial; never pad.
   - `decisions`: every product/architecture/security choice made this session, each with **why** and **alternatives rejected**. Workarounds and deferred items are decisions too (`kind: workaround|deferred`).
   - `questions` with `source: "I asked"`: notable questions the user asked that changed the outcome. Rate 1–5 by how much it mattered.
   - `questions` with `source: "should have asked"`: questions that, had they been asked earlier, would have saved rework or caught a bug. Rate 1–5 by cost of not asking. Be honest; this is the most valuable list.
   - `spawned_from`: set when this task was opened because of another logged task.
   - `risk`: high for auth, payments, migrations, infra, data deletion.

3. **If status is Done** (merged / shipped): add 3–5 `source: "quiz"` questions with `correct_answer` filled and `my_answer` empty. Make them about mechanism and failure modes ("what happens if X", "why not Y"), not trivia. Set `shipped_on` to today.

4. **Wait for the user's edits.** Apply them to the JSON. Do not send before they confirm.

5. **Send:** `python3 -I ~/.claude/scripts/notion-log.py <file>`. Report the script's output lines verbatim. Re-running is safe: task is upserted by Task ID, rows with an existing title are skipped.

## Don'ts
- Don't put anything secret (tokens, customer data) in an entry.
- Don't set `status` unless the user confirms it; the task tracker is the source of truth.
- Don't invent decisions the session didn't make.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.