agentsclimarketplace

Write session log

Skill dbtlr/atlas-skills/skills/write-session-log

Write the merged Session Log that memorializes a Session — what happened, decisions, deviations, and Consolidation Candidates. Trigger at a work boundary — a task/feature/investigation finished, a wrap-up signal, context nearing compaction, or an explicit request. Primary agent only.From its SKILL.md

Install
npx -y skills add dbtlr/atlas-skills --skill write-session-log

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.9 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

write-session-log

Memorialize the current Session as one frozen record, centered on Consolidation Candidates — the narrative of the work plus the user observations worth carrying forward, in a single log.

Primary agent only. Subagents never write Session Logs.

When to trigger

At a work boundary — don't wait to be asked:

  • a task / feature / fix / investigation finished
  • the user signals wrap-up ("that's all", "good session", "done for now")
  • context is approaching compaction (write before the threshold, not after)
  • a repo switch, or an explicit request ("write a session log")

Preflight — norn is required

The log is created through norn, so its frontmatter is schema-validated at write time (norn's session-log-base rule) instead of hand-authored — no fallback:

command -v norn || { echo "write-session-log requires the 'norn' CLI on PATH. Install it and re-run."; exit 1; }
[ -n "$ATLAS_PATH" ] && [ -f "$ATLAS_PATH/.norn/config.yaml" ] || { echo "write-session-log needs ATLAS_PATH set to the atlas vault root (the dir containing .norn/config.yaml)."; exit 1; }

If either check fails, stop and tell the user — don't hand-write the file; an unvalidated log is invisible to (or breaks) the consolidation scans downstream.

What to write

Compose the log body from templates/session-log.md — it is the body outline; frontmatter is norn's job (below). Fill every section; more detail is better than less — write for a future session with zero memory of today.

The heart is Consolidation Candidates"what happened that, had I known it earlier, would have saved time?" Tag each by the taxonomy in references/consolidation-candidates.md:

  • Durable knowledge — decisions, user-personas, user-stories
  • Future opportunities — tech-debt, follow-up-tasks, open-questions
  • User observations — collaboration-patterns

Mark carried candidates. If a candidate repeats one a prior Session Log raised that was never actioned, list it as carried (since <YYYY-MM-DD>) (the first-raised date, optionally a count) rather than as fresh — see Carried candidates in references/consolidation-candidates.md. This is detection only: you surface the recurrence, you don't file or decide it (that's consolidate-workspace' job).

Create it with norn

The log lives at artifacts/session-logs/<YYYY-MM-DD-HHMM>-<slug>.md — vault-root artifacts/, never inside the workspace. Take real timestamps — never invent one — in the two shapes needed: STAMP=$(date +%Y-%m-%d-%H%M) for the filename, NOW=$(date +%Y-%m-%dT%H:%M) for the frontmatter fields. Write the composed body to a temp file, then create the log in one call — pin the vault with -C "$ATLAS_PATH" (norn resolves its vault from $NORN_ROOT/cwd, never from ATLAS_PATH; run from a repo cwd, a bare call hits the wrong place):

BODY=$(mktemp)   # the composed log body, from the template outline
norn -C "$ATLAS_PATH" new "artifacts/session-logs/${STAMP}-<slug>.md" \
  --field title="<session title>" \
  --field description="<one-line summary>" \
  --field type=session-log \
  --field workspace=<workspace> \
  --field created="$NOW" --field modified="$NOW" \
  --field-json workspace_consolidated=false --field-json memory_consolidated=false \
  --body-from-stdin --yes < "$BODY"

--yes is load-bearing: without it a non-TTY run is an implicit dry-run and nothing is written. norn validates the new doc on write — a warning on the log it just wrote means the log is malformed: fix it before moving on.

The two consolidation-state flags start false and stay false here: they're the cursor consolidate-workspace / consolidate-memory scan on (norn -C "$ATLAS_PATH" find) and flip (norn -C "$ATLAS_PATH" set) once each has lifted this log's candidates.

After writing

  • Update the Workspace Brief's session-state sections (Current State, What's Next, Open Questions, Learnings, Recent Sessions) — below the rule only; never touch the durable manifest above it.
  • The Session Log is frozen; durable truth is lifted out of it later — durable knowledge + follow-ups by consolidate-workspace, user observations by consolidate-memory.

Freezing the log is the terminal act of a standalone memorialization (the end alias, or a direct "write a session log" request). When write-session-log runs inside merged (its log arg), the frozen log is a checkpoint the composing flow passes through, not a stop: after the Brief update, return control to merged and continue its Report and next steps in the same turn — don't treat the frozen log as the end of the turn.

Keep looking

Skills are one crate of 326,499. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.