docs: add AGENTS.md for AI agents
This commit is contained in:
parent
475a103fad
commit
514090fced
1 changed files with 135 additions and 0 deletions
135
AGENTS.md
Normal file
135
AGENTS.md
Normal file
|
|
@ -0,0 +1,135 @@
|
||||||
|
# AGENTS.md
|
||||||
|
|
||||||
|
> для AI агентов, работающих с этим репозиторием
|
||||||
|
|
||||||
|
## what is this
|
||||||
|
|
||||||
|
- **declarative nix config** для нескольких хостов через nix-darwin + home-manager
|
||||||
|
- активный: **poppy** (MacBook Air M1)
|
||||||
|
- planned: **muscari** (NixOS server), **rosemary** (backup VM)
|
||||||
|
- user: `michaotic` (planned: `mikl`)
|
||||||
|
|
||||||
|
## structure
|
||||||
|
|
||||||
|
```
|
||||||
|
~/repos/nix-config/
|
||||||
|
├── flake.nix # entry point
|
||||||
|
├── flake.lock # locked deps
|
||||||
|
├── AGENTS.md # этот файл
|
||||||
|
├── garden.md # future plans, TODO, миграции
|
||||||
|
│
|
||||||
|
├── hosts/
|
||||||
|
│ ├── poppy/ # macbook (active daily driver)
|
||||||
|
│ │ ├── default.nix # основной конфиг
|
||||||
|
│ │ ├── apps.nix # brew casks + nix GUI пакеты
|
||||||
|
│ │ └── system.nix # macOS defaults
|
||||||
|
│ ├── muscari/ # NixOS server (planned)
|
||||||
|
│ └── common/ # shared NixOS config
|
||||||
|
│
|
||||||
|
├── home/ # home-manager modules
|
||||||
|
│ ├── default.nix # imports, sessionVariables
|
||||||
|
│ ├── cli.nix # CLI tools (universal)
|
||||||
|
│ ├── git.nix # git config
|
||||||
|
│ ├── ssh.nix # SSH matchBlocks
|
||||||
|
│ ├── zsh.nix # shell + aliases
|
||||||
|
│ ├── kitty.nix # terminal
|
||||||
|
│ ├── duti.nix # default apps
|
||||||
|
│ ├── pass.nix # pass + gpg-agent (только для GPG)
|
||||||
|
│ ├── syncthing.nix # p2p sync
|
||||||
|
│ ├── zoxide.nix
|
||||||
|
│ ├── bat.nix
|
||||||
|
│ ├── eza.nix
|
||||||
|
│ └── fzf.nix
|
||||||
|
│
|
||||||
|
└── docs/ # документация
|
||||||
|
├── structure.md # high-level overview
|
||||||
|
├── poppy.md # macbook specifics
|
||||||
|
├── muscari.md # server + k3s
|
||||||
|
├── shell.md # zsh + pure
|
||||||
|
├── terminal.md # kitty
|
||||||
|
├── ssh.md # SSH keys, FIDO2, recovery
|
||||||
|
├── apps.md # список приложений
|
||||||
|
├── cheatsheet.md # quick commands
|
||||||
|
└── bootstrap.md # manual setup guide
|
||||||
|
```
|
||||||
|
|
||||||
|
## commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# rebuild poppy
|
||||||
|
sudo darwin-rebuild switch --flake .#poppy
|
||||||
|
|
||||||
|
# rebuild muscari
|
||||||
|
sudo nixos-rebuild switch --flake .#muscari
|
||||||
|
|
||||||
|
# validate before applying
|
||||||
|
nix flake check
|
||||||
|
|
||||||
|
# update dependencies
|
||||||
|
nix flake update
|
||||||
|
|
||||||
|
# cleanup old generations
|
||||||
|
nix-collect-garbage -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## важные правила
|
||||||
|
|
||||||
|
### при работе с файлами
|
||||||
|
- **сначала показывай план**, потом делай
|
||||||
|
- **никогда** не удаляй user data (GPG, SSH ключи, pass-store)
|
||||||
|
- новые файлы в `home/` обсуждай перед созданием
|
||||||
|
- длинные изменения дроби на отдельные коммиты
|
||||||
|
|
||||||
|
### пакеты
|
||||||
|
- **CLI tools** → `home/cli.nix` (universal)
|
||||||
|
- **GUI apps** через nix → `hosts/poppy/apps.nix` (use `environment.systemPackages`, NOT `home.packages`)
|
||||||
|
- **brew casks** → `hosts/poppy/apps.nix` (тот же файл)
|
||||||
|
- **App Store apps** → ручная установка, в `docs/apps.md`
|
||||||
|
- **homebrew.onActivation.cleanup = "none"** (по умолчанию, безопаснее)
|
||||||
|
- `"zap"` удалит всё что не в nix config
|
||||||
|
|
||||||
|
### SSH ключи
|
||||||
|
- `home/ssh.nix` — matchBlocks для forgejo/github/sol.moe
|
||||||
|
- **не** добавляй `credential.helper` (мы ходим по SSH, не HTTPS)
|
||||||
|
- FIDO2 ключи (Ledger) — нужен `nixpkgs#libfido2` и `nixpkgs#openssh` через `nix shell`
|
||||||
|
- подробности в `docs/ssh.md`
|
||||||
|
|
||||||
|
### git workflow
|
||||||
|
- основной remote: `forgejo` (ssh://git@git.iscg.dev:2222/mikl/nix-config.git)
|
||||||
|
- **перед каждым значимым изменением** спрашивай подтверждение
|
||||||
|
- **не делай** `git push --force` без явного подтверждения
|
||||||
|
|
||||||
|
## backup и recovery
|
||||||
|
|
||||||
|
- **GPG ключ** → https://git.iscg.dev/mikl/gpg (private)
|
||||||
|
- **pass-store** → https://git.iscg.dev/mikl/pass (синхронизирован)
|
||||||
|
- **nix-config** → https://git.iscg.dev/mikl/nix-config
|
||||||
|
- **Obsidian traces** → https://git.iscg.dev/mikl/traces + Syncthing
|
||||||
|
- **Time Machine** → основной бэкап всего
|
||||||
|
|
||||||
|
## что в работе (TODO)
|
||||||
|
|
||||||
|
- sops-nix для `OPENROUTER_API_KEY`
|
||||||
|
- rosemary setup (NixOS VM)
|
||||||
|
- FIDO2 в nix-config постоянно (`libfido2`, `openssh`)
|
||||||
|
- pass-store remotes (github, git.sol.moe)
|
||||||
|
- pre-commit с alejandra
|
||||||
|
- uncomment aseprite в `hosts/poppy/apps.nix` (10-30 мин компиляции)
|
||||||
|
|
||||||
|
## новые хосты
|
||||||
|
|
||||||
|
при добавлении нового хоста:
|
||||||
|
1. создать `hosts/<name>/{default,system}.nix`
|
||||||
|
2. добавить в `flake.nix` `mkNixos` или `mkDarwin`
|
||||||
|
3. создать `docs/<name>.md` с описанием
|
||||||
|
4. обновить `garden.md`
|
||||||
|
|
||||||
|
## контекст для пользователя
|
||||||
|
|
||||||
|
- студент, hse university
|
||||||
|
- интересы: LLM/AI, it infra, self-hosted, литература
|
||||||
|
- ADHD, прокрастинация — **не отвлекай** на ненужные темы
|
||||||
|
- общается на русском и английском
|
||||||
|
- использует Telegram MCP, Forgejo MCP, SearXNG
|
||||||
|
- конфиг для macOS, учится nix
|
||||||
|
- не спеши, показывай план, спрашивай подтверждения
|
||||||
Loading…
Reference in a new issue