Known drift between docs and reality in personal-os-setup
Cross-check these before assuming documentation is current — several claims in CONTRIBUTING.md/Makefile don't match the code as of this writing.
Makefile
make help's "Development:" section is broken: it grepsmakefiles/dev.mk, which doesn't exist — the real file ismakefiles/check_format.mk. Runningmake helpprints agrep: ... No such file or directoryand shows an empty Development section, even thoughmake lint/make format/make pre-commit/make pre-commit-installall work fine when invoked directly.make test-installation(uv run --directory . hello) looks stale/broken — nohelloconsole-script is registered inpyproject.toml's[project.scripts](onlypersonal-os-setupis). Don't rely on it.make installinstalls zero dev/docs dependencies —pyproject.tomlsetsdefault-groups = [], so plainuv sync(whatmake installruns) gets you only runtime deps. Usemake install-dev(uv sync --all-groups) to get pytest/ruff/pre-commit/mkdocs tooling.common.mk's$(UV)variable falls back to~/.local/bin/uvifuvisn't onPATH— if it's installed somewhere else, every target fails with a plain "command not found" rather than a clear error.
.pre-commit-config.yaml vs CONTRIBUTING.md § 3.1 "Security"
CONTRIBUTING.md claims actionlint, zizmor, and pip-audit are active local pre-commit security hooks. They're commented out in .pre-commit-config.yaml — not actually running. bandit and markdown-link-check are also present-but-commented-out. Nothing currently lints/security-scans the GitHub Actions workflow YAML itself — hand-review workflow diffs carefully, especially for script-injection via untrusted ${{ }} interpolation, since no tool catches it here.
commitizen's hook only fires at git'scommit-msgstage —pre-commit run --all-files(whatmake pre-commitruns) does not exercise it. A cleanmake pre-commitsays nothing about whether your commit message is well-formed. See [[ship-feature]].detect-secretsruns stateless (no--baselinefile configured) — false positives on new files must be suppressed with an inline# pragma: allowlist secretcomment, not by adding the whole file to--exclude-filesin.pre-commit-config.yaml(explicit repo convention).end-of-file-fixer/trailing-whitespace/ruff --fix/ruff-formatall auto-rewrite files in place and fail the first run — re-git addand commit again, nothing is actually wrong.
CONTRIBUTING.md references that don't exist
make docker-prod/make docker-dev— no such targets exist in anymakefiles/*.mk. There is no Docker-based dev workflow in this repo (onlymake act, which uses Docker to run GitHub Actions locally).- "
make test... requires.envfile" — not actually true;common.mktolerates a missing.env(-include .env), and no unit test hard-requires one. - "run
make pre-commit install" (with a space) — the real target ispre-commit-install(hyphenated). As literally written this parses as two separate make targets (pre-commitandinstall), which happen to both exist, so it "works" by accident, not for the reason implied.
properdocs.yml / docs site
See [[docs-site]] for the full docs_dir: . gotcha (any new top-level directory in the repo needs an entry in the exclude plugin's glob list, or it gets crawled into the published docs site).
packages.yaml
No schema validation beyond one Python-level test asserting every (distro, manager) pair resolves to a real backend (tests/unit/test_detect_os.py::TestPackagesYaml). A malformed entry (wrong nesting, list where a dict is expected) surfaces as a TypeError/AttributeError at load time, not a clear validation error. See [[add-system-action]] for the required manager-registration step when adding a new manager name.
Misc
src/awesome_os/is dead — stale__pycache__from a prior package name, not live code (already flagged inCLAUDE.md, repeated here since it's easy to stumble on).tests/archlinux/is an orphaned Docker smoke-test harness, not wired intomake/CI. See [[run-tests]].