skills/natural-language-config/SKILL.md
Translate natural language requests into NixOS configuration changes. Show diffs before applying. Use nixos-rebuild for atomic deploys. Every change is rollbackable and logged.
npx skillsauth add bolivian-peru/os-moda natural-language-configInstall 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.
Users describe what they want in plain English. You write the NixOS config.
Understand the request "Set up PostgreSQL with nightly backups" "Install and configure Caddy as a reverse proxy for port 3000" "Enable fail2ban to block brute force SSH"
Read current config
file_read({ path: "/etc/nixos/configuration.nix" })
Generate the NixOS module
Write idiomatic NixOS configuration. Use services.*, networking.*, security.* etc.
Prefer declarative NixOS options over imperative scripts.
Show the diff to the user Present EXACTLY what will change. Use a code block with +/- diff markers. Explain each change in plain English.
Wait for approval NEVER apply changes without user confirmation. "Here's what I'll add to your NixOS config. Apply it? [Y/n]"
Apply atomically
shell_exec({ command: "nixos-rebuild switch" })
Verify Check the service started correctly.
service_status({ service: "postgresql" })
Log everything
memory_store({
summary: "Installed PostgreSQL with nightly pg_dump backups",
detail: "Added services.postgresql, services.postgresqlBackup to configuration.nix. Generation 49.",
category: "system.config",
tags: "nixos,postgresql,config-change"
})
/etc/nixos/configuration.nix or imported modulesmkIf, mkOption, mkDefault when extending existing configservices.X.enable = true; patternsenvironment.systemPackagesnetworking.firewall.allowedTCPPortsusers.users.XUser: "Set up nginx to serve a static site from /var/www"
Response:
I'll add nginx to your NixOS config. Here's the change:
services.nginx = {
enable = true;
virtualHosts."default" = {
root = "/var/www";
locations."/" = {
index = "index.html";
};
};
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
This will:
- Install and start nginx
- Serve /var/www on port 80
- Open ports 80 and 443 in the firewall
Apply this? The change is atomic and rollbackable.
If a rebuild breaks something:
shell_exec({ command: "nixos-rebuild switch --rollback" })
Then investigate what went wrong.
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.
data-ai
Monitor system health: CPU, memory, disk, network, processes, services, and logs. Present data naturally. Correlate issues across subsystems. Alert on thresholds. Diagnose root causes.