- This repository contains independent Arch Linux packages. Keep package changes inside the affected top-level package directory; shared build and workflow changes are handled separately.
- When designing a new package, use the
create-packageskill at.agents/skills/create-package/SKILL.md. - Each package is defined by
PKGBUILD; keep its tracked.SRCINFOsynchronized withmakepkg --printsrcinfo > .SRCINFOfrom that package directory. - After testing package functionality, check both metadata and the built archive with
namcap PKGBUILDandnamcap pkgname.pkg.tar.zst; namcap checks commonPKGBUILDand hierarchy errors, shared-library dependencies in ELF files, and missing or redundant dependencies. - Preserve the package-local
REUSE.tomlSPDX annotations when adding or changing package metadata files. - Increment
pkgrelfor every packaging-only change, including dependency, architecture, install-path, relation, source-handling, and license-metadata changes; regenerate.SRCINFOin the same change. - Treat
SKIPchecksums as exceptional and documented. Inspect the diff afterupdpkgsums, which can replace intentionalSKIPentries for mutable metadata sources. - For detached signatures from package-specific upstream keys, use a tracked key in
keys/pgp/and an isolatedverify()function that imports it into a temporary GPG home. Do not rely on the host keyring being available inside clean-chroot builds; use a.signaturesource suffix when bypassing makepkg's automatic.sigverification. - Prefer
./lint.sh allfor repository-wide validation. It checks ShellCheck,.SRCINFO,namcap, and REUSE annotations. - Use
makepkg --cleanbuild --clean --forcefor initial package development and local change validation. Ensure build and runtime dependencies are installed; do not use--nodepsas normal validation. - Use
./build.shfor clean-chroot validation. TheCheck and build packagesjob in.github/workflows/test-packages.ymlinvokes it as a required pull-request CI check for every changed package; this CI job runs in a privileged Arch container and is the authoritative clean-chroot validation. If local sudo cannot run non-interactively, report that local clean-chroot validation is unavailable rather than presenting a localmakepkgbuild as equivalent.
- To enable Renovate for a package whose upstream publishes GitHub tags or releases, add a Renovate annotation to its
pkgverassignment inPKGBUILD:pkgver=1.2.3 # renovate: datasource=github-tags depName=OWNER/REPOSITORY - Use the upstream repository's
OWNER/REPOSITORYvalue fordepName; the repository'srenovate.jsonremoves an optional leadingvfrom Git tags. - Keep package source URLs, archive names, and any version-derived variables based on
pkgverso Renovate's version replacement updates the downloadable source as well. - Renovate updates the version only. On same-repository Renovate pull requests targeting
mainthat change*/PKGBUILD, theUpdate package metadataworkflow recalculates checksums withupdpkgsums, regenerates.SRCINFO, and commits those files back to the Renovate branch. It does not update forks or unrelated pull requests. - New packages using this pattern are picked up automatically. Packages whose upstream version is stored in another variable, or whose releases are not available through a supported Renovate datasource, require a corresponding custom-manager or datasource change before adding an annotation.