{ "intent": "Install fee[dB]ack (rhythm-gaming / music-education app) from a local-only pacman package, and stop local build artifacts from entering git history.", "scope": [ "linux_configuration/scripts/single_use/install_feedback.sh (build driver)", "linux_configuration/scripts/single_use/feedback-appimage/PKGBUILD (package source)", ".gitignore (build artifacts, Bottles prefixes, archwiki_rag vector index)", ".pre-commit-config.yaml (shellcheck PKGBUILD exclusion)", "Non-goal: publishing to the AUR; this package is local-only", "Non-goal: running the install itself — interactive sudo belongs to the user" ], "changes": [ "Added install_feedback.sh, which builds the package with makepkg and then prints the `sudo pacman -U` command rather than running it, matching the existing hypersomnia-appimage / jackify-bin pattern on this machine.", "Added the PKGBUILD it builds from. options=(!strip) is required: stripping corrupts the AppImage's embedded ELF/squashfs layout.", "Gitignored linux_configuration/scripts/single_use/*/*.pkg.tar.{zst,xz} (the built artifact here is ~640 MB), bottles/ (Wine prefixes) and digital_wellbeing/data/ (archwiki_rag's regenerable vector index). The PKGBUILD and installer remain tracked as the actual source.", "Excluded PKGBUILD from the shellcheck hook. A PKGBUILD is a makepkg manifest, not a standalone script: it has no shebang by design, pkgname/pkgver/source/sha512sums are consumed by makepkg, and pkgdir/srcdir are injected by it, so shellcheck reports SC2148/SC2034/SC2154 for all of them. Same rationale as the pre-existing zsh exclusion — the dialect is outside what shellcheck can judge — and it avoids littering the file with per-line directives.", "Deleted stray files: f.html (a saved SearXNG results page), kcd2_dice_solver/9 (0-byte, a stray shell redirect) and an i3 config.bak from June." ], "verification": [ { "command": "git add -n linux_configuration/scripts/single_use/feedback-appimage/", "result": "pass", "evidence": "Only 'PKGBUILD' is added; git check-ignore confirms the 666 MB .pkg.tar.zst is matched by .gitignore:374. Total staged diff is 139 lines, no binaries." }, { "command": "pre-commit run --files ", "result": "pass", "evidence": "Block binary/image files, check for added large files, and all remaining hooks pass; shellcheck no longer reports the PKGBUILD false positives." } ], "risks": [ "The shellcheck PKGBUILD exclusion is repo-wide, so a future PKGBUILD is also unchecked. That is intended — shellcheck cannot meaningfully lint the format — but a genuinely broken PKGBUILD would fail at makepkg time rather than at commit time.", "The gitignore glob is scoped to linux_configuration/scripts/single_use/*/ so it cannot silently swallow packages built elsewhere in the repo." ], "rollback": [ "git revert the commit; the installer and PKGBUILD disappear and the ignore rules lift.", "The built artifact is untracked either way, so nothing in the working tree needs restoring.", "Confirm with: pre-commit run --all-files" ] }