Files
claudetools/.claude/commands/save.md
Mike Swanson b1e5a7bb3b wiki: recompile overview.md + add /wiki-lint skill + /save unseeded check
overview.md recompiled with all 24 client articles and 7 project articles.
Captures ~80 action items sorted by priority; top urgent items: Neptune
cert (2026-05-31), Western Tire SSL (2026-05-30), Kittle eval license.

.claude/commands/wiki-lint.md: new skill — scans clients/ and projects/
for directories with session-logs but no wiki article, checks broken
[[backlinks]], stale last_compiled dates, index gaps, and stale queue
entries. Emits a structured lint report.

.claude/commands/save.md: added Phase 4 unseeded-wiki check — after sync,
if the session log was written for a client/project with no wiki article,
emit a /wiki-compile reminder. Informational only, no blocking behavior.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 06:13:22 -07:00

4.2 KiB

Save a comprehensive session log to the appropriate session-logs/ directory, then sync the repo.

/save and /sync share bash .claude/scripts/sync.sh as the canonical driver for git operations. The only difference: /save writes a session log first, then calls sync. /sync calls sync directly (no log).


Phase 1 — Generate the narrative

Claude writes all sections directly. Be concise, factual, technical. No filler phrases. Past tense. No emojis.

Author Sections
Claude All sections

Narrative sections (Claude writes directly)

Session Summary — 3-5 paragraphs: what was accomplished, in what order, why.

Key Decisions — bullet list of non-obvious decisions and their rationale.

Problems Encountered — bullet list of problems hit and how each was resolved. Omit section if none.


Phase 2 — Write to disk

Location

Work scope Path
Single project projects/<project>/session-logs/YYYY-MM-DD-session.md
Client clients/<slug>/session-logs/YYYY-MM-DD-session.md
Multi-project / general session-logs/YYYY-MM-DD-session.md

Filename + append behavior

  • Filename: YYYY-MM-DD-session.md (today's local date)
  • If file exists, append a ## Update: HH:MM PT — <topic> section. Do not overwrite.
  • If two users worked on the same date, namespace: YYYY-MM-DD-<user>-<topic>.md (e.g. 2026-05-01-howard-syncro-billing-batch.md)

Required sections (in order)

  1. User block — name, machine, role, session span. Pull from .claude/identity.json + git config.
  2. Session Summary (Ollama)
  3. Key Decisions (Ollama)
  4. Problems Encountered (Ollama)
  5. Configuration Changes — files modified / created / deleted (with paths)
  6. Credentials & Secrets — UNREDACTED if newly discovered or created. Vault paths if vaulted. Never half-redact a value future-Claude might need.
  7. Infrastructure & Servers — IPs, hostnames, ports, tenant IDs, container names, DNS, certs
  8. Commands & Outputs — important one-liners, key outputs, error messages with resolution
  9. Pending / Incomplete Tasks — what's left, blockers, next steps
  10. Reference Information — URLs, endpoints, commit SHAs, ticket IDs, routine IDs, file paths

When in doubt, include MORE detail — future sessions search these logs to recover context.


Phase 3 — Sync

bash .claude/scripts/sync.sh

sync.sh handles: stage tracked changes by name (never git add -A), auto-commit, fetch + rebase, push, then the same flow for the vault repo, then surface cross-user ## Note for <user> blocks.

After sync, emit a Post-commit Summary:

## Post-commit Summary
Commit:  <sha>  <subject>
Author:  <name> <<email>>
Push:    <old>..<new>  main -> main  (origin)
File:    <session log path>  (+N lines, appended/created)

Wiki updates (if any): <count> articles updated (clients/projects/systems/patterns)

Phase 4 — Unseeded Wiki Check

After sync completes, check whether the session log was written for a client or project that has no wiki article yet.

Logic:

  • Determine the slug from the session log path (e.g., clients/kittle/session-logs/... → slug = kittle)
  • Check: does wiki/clients/<slug>.md (or wiki/projects/<slug>.md) exist?
  • If YES → no action needed
  • If NO → emit after the post-commit summary:
[INFO] No wiki article for '<slug>' yet.
       Session log saved to clients/<slug>/session-logs/<file>.
       Run /wiki-compile client:<slug> to seed the wiki article.

For general (root) session logs, skip this check — no specific client/project is implied.

This check is informational only — do not block the save or prompt for confirmation.


Cross-user note handling (CRITICAL)

If sync.sh surfaces a ## Note for <user> or ## Message for <user> block from an incoming session log, display it prominently at the top of the response, before the sync summary:

============================================================
MESSAGE FROM <author> (<date>)
============================================================
<full note content>
============================================================

Explicitly address each action item or question before moving on.