Files
claude-foundations/memory/log/2026-03-12.233744.md
Paul O'Reilly e0f8e6471c Add best-practices library, knowledge distillation pipeline settings, and first session log
- best-practices/: 11 topic files + INDEX.md extracted from cluster-bootstrap
  and custom-claude-skills (validation, k8s, helm, ansible, secrets, debugging, etc.)
- settings.yaml: pipeline config (log retention, tracked projects, max logs per run)
- CLAUDE.md: updated with best-practices loading and pipeline documentation
- memory/log/: first session log demonstrating the format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 23:39:06 +13:00

2.3 KiB

Session Log — 2026-03-12

Summary

Created the claude-foundations repo on Gitea (skynet org), built a best-practices folder with 11 topic files extracted from cluster-bootstrap and custom-claude-skills, then designed and implemented a three-tier knowledge distillation pipeline (/log, /reflect-logs, /distill-best-practices).

Decisions

  • Decision: Separate /reflect-logs from existing /reflect — Rationale: different purpose (continuous vs milestone), different cadence, avoids overcomplicating the existing skill
  • Decision: Use MD5 hashes for reflection state, git SHAs for distill state — Rationale: log files may not be committed when reflected; distill explicitly works across committed repos
  • Decision: Timestamp-based session IDs (HHMMSS) — Rationale: human-readable, naturally sorted, no external dependencies
  • Decision: Pruning happens in /log not /reflect-logs — Rationale: runs most frequently, keeps log dir clean as side effect of the most common operation
  • Decision: /distill-best-practices is interactive (proposals before changes) — Rationale: cross-project conventions need human judgment

Gotchas Discovered

  • [skills] Symptom: install.sh failed with exit 1 on broken symlink — Fix: old reflect symlink pointed to pre-move path (~/dev/claude/custom-claude-skills/ instead of ~/dev/claude/projects/custom-claude-skills/). readlink -f on a broken symlink returns empty string, causing comparison failure under set -e. Fixed by removing stale symlink and re-running.
  • [skills] Symptom: skills created mid-session not available as slash commands — Fix: skills are discovered at session start, not dynamically. New skills require a new session to become available.

Key Context

  • Best practices files are in claude-foundations/best-practices/ with INDEX.md as the card catalog
  • Settings for the pipeline live in claude-foundations/settings.yaml
  • State files: .reflection-state.json (per-project), best-practices/.distill-state.json (in claude-foundations)
  • SSH key for ai_enablement is password-protected — needs ssh-agent loaded before git push

Process Notes

  • The plan mode workflow worked well for this — explored existing patterns, designed the architecture, got approval, then executed cleanly
  • Creating all 11 best-practices files in parallel (single Write batch) was efficient