skills/generation-timeline/SKILL.md
NixOS generation-aware debugging and time-travel. Correlate system state changes with application failures. Query "what changed and when."
npx skillsauth add bolivian-peru/os-moda generation-timelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Correlate NixOS generations + audit ledger + journal logs to debug issues across time.
When a user reports "something broke":
shell_exec({ command: "nixos-rebuild list-generations 2>/dev/null | tail -10" })
event_log({ limit: 30 })
journal_logs({ priority: "err", since: "24 hours ago", lines: 50 })
memory_recall({ query: "config change rebuild generation", timeframe: "7d" })
Present a unified view:
Timeline — Last 48 Hours:
Feb 19 09:30 Gen 48 applied (nixpkgs update: OpenSSL 3.1→3.2)
Feb 19 09:47 ERROR: app returned first 502 (17 min after gen 48)
Feb 19 09:48 WARNING: 12 more 502s in next minute
Feb 19 09:52 agentd detected service degradation (audit #134)
Feb 19 10:00 You: "something broke"
Root cause: Gen 48 updated OpenSSL, breaking TLS cipher
used by your app.
Options:
(a) Rollback to Gen 47 (reverts everything since)
(b) Pin OpenSSL 3.1 for your app only (overlay)
(c) Update app TLS config (best long-term fix)
When asked "what does this server do" or "explain the setup":
shell_exec({ command: "cat /etc/nixos/configuration.nix" })
shell_exec({ command: "nixos-rebuild list-generations | head -5" })
shell_exec({ command: "systemctl list-units --type=service --state=running --no-pager" })
Generate a plain-English overview:
Your Server — osModa (Hetzner CX22)
Services running:
- agentd (osModa system daemon) — since boot
- OpenClaw Gateway (AI agent interface) — port 18789
- SSH (key-auth only) — port 22
- nginx (reverse proxy) — ports 80, 443
Architecture:
Internet → nginx (443) → OpenClaw (18789)
SSH → direct access (22)
NixOS: Generation 50, built Feb 20
Resources: 2 CPU, 7.6GB RAM, 80GB disk (38% used)
Uptime: 12 hours
History: 50 generations over 18 days.
Key changes stored in audit ledger (134 entries).
When asked to create a staging copy or export the config:
shell_exec({ command: "cat /etc/nixos/configuration.nix" })
shell_exec({ command: "cat /etc/nixos/hardware-configuration.nix" })
Generate a self-contained flake that reproduces this machine:
The audit ledger is the source of truth for "why" something was done. NixOS generations are the source of truth for "what" the system state is. Journal logs are the source of truth for "when" things happened.
Always correlate all three when debugging.
testing
Generate a concise daily infrastructure briefing. Covers: service health, resource usage, security events, overnight incidents, and cost tracking. Designed for Telegram/chat delivery.
devops
Multi-perspective risk analysis using structured persona debate before deploying changes
development
Build software via spec-driven development (github/spec-kit). Whenever the user asks for a feature larger than a one-line tweak, scaffold a spec-kit project, capture WHAT + WHY, declare tech stack, break into tasks, then iterate the implementation until tests pass.
development
Manage NixOS packages declaratively. Search, install (via configuration.nix rebuild), remove, rollback, and list generations. Understands the NixOS declarative model.