docs/skills — Index#
Agent skill docs for projectbluefin/bootc-installer. Any agent (Copilot,
Claude, etc.) working in this repo should load the relevant files.
What belongs here#
Workflow knowledge, architectural context, operational runbooks, and engineering
gotchas that any agent needs to work effectively in this repo.
What does NOT belong here#
Agent-specific instruction files (AGENTS.md, .github/copilot-instructions.md)
are loaded separately and must not be listed here.
Skill docs#
| File | What it covers |
|---|---|
| PITFALLS.md | Engineering gotchas — GTK unit testing, composefs-native path layout, GStreamer quirks, recipe override chain, QR companion, stub contamination, flatpak-builder --run PATH |
| SKILL.md | Main skill — quick commands, architecture, dev loop, fisherman submodule workflow, CI/release, ISO integration |
Key architectural facts (current state)#
- Two-component: Python GUI (GTK4/Adwaita) + fisherman Go backend (submodule at
fisherman/) - Three image variants: GNOME (default), XFCE, KDE — shared Python core
- Branch model:
feature/xyz → dev → prod. All PRs targetdev. Neverproddirectly. - Fisherman is a separate git repo (
projectbluefin/fisherman). Commit there first, then update the submodule pointer in this repo. - Dev loop:
./dev.sh— builds viaflatpak run org.flatpak.Builder --ccacheinto_build/, runs withflatpak-builder --run(no user/system install)./app/binnot in PATH by default; use/app/bin/bootc-installer. - Debug log (in
--runmode):~/.var/app/org.bootcinstaller.Installer.Devel/cache/bootc-installer/installer-debug.log - Branch protection: no classic branch protection on
dev— uses repository rulesets. Remove viagh api --method DELETE repos/org/repo/rulesets/<id>. - composefs-native layout: writable
/etc=state/deploy/<HASH>/etc/, writable/var=state/os/default/var/. Never write to$TARGET/etc/or$TARGET/var/for post-install state — those are orphaned ghost dirs. See PITFALLS.md for full details.