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>
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)
- User block — name, machine, role, session span. Pull from
.claude/identity.json+ git config. - Session Summary (Ollama)
- Key Decisions (Ollama)
- Problems Encountered (Ollama)
- Configuration Changes — files modified / created / deleted (with paths)
- Credentials & Secrets — UNREDACTED if newly discovered or created. Vault paths if vaulted. Never half-redact a value future-Claude might need.
- Infrastructure & Servers — IPs, hostnames, ports, tenant IDs, container names, DNS, certs
- Commands & Outputs — important one-liners, key outputs, error messages with resolution
- Pending / Incomplete Tasks — what's left, blockers, next steps
- 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(orwiki/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.