Last reviewed: 2026-07-08. Base branch: main.
This file is a plain-language map of the project as it exists on main. It does not replace the README, roadmap, audit docs, or source comments. It points to them so a reviewer can see the whole shape without reading every file first.
Queer the Stacks is a local-first reading-library tool. It ingests personal library sources, keeps adapters read-only, builds shareable views, and supports recommendation and diversity lenses with source ethics in mind.
Package metadata checked in this pass:
- Python package
queer-the-stacksfor Python>=3.14.
- Readers maintaining personal libraries in Calibre, KOReader, or related tools.
- Maintainers building privacy-aware book dashboards and recommendation surfaces.
- Reviewers checking source ethics, accessibility, and read-only ingest guarantees.
- Read-only ingest adapters, snapshot logic, library unification, browse views, share cards, and wrapped-style summaries.
- Recommendation, diversity, shelf, stats, auth, and rendering code.
- Docs for roadmap, I18N, audits, ADRs, ethical sources, and responsible-tech review.
- Accessibility reports, scorecards, residual-risk notes, and data ethics docs.
- Tests covering ingest, rendering, privacy, a11y, and serving paths.
- ingest/ contains adapters and data-unification code.
- app/ contains browse, rendering, sharing, stats, server, and UI logic.
- docs/ holds ADRs, audits, roadmap, and source-ethics material.
- data/ is kept as a placeholder for local user data.
- tests/ exercises adapters and app outputs.
Observed source and operations surfaces:
DockerfileMakefileapp/docker-compose.ymlingest/pyproject.tomlrecommender/scripts/
GitHub workflow files checked:
.github/workflows/ci.yml.github/workflows/codeql.yml.github/workflows/container-scan.yml.github/workflows/scorecard.yml.github/workflows/standards.yml.github/workflows/zizmor.yml
- Adapters should read from library sources without modifying them.
- Book metadata and reading history can reveal identity and community, so privacy is part of the design.
- Recommendation lenses need sourced facts and should not infer identity from weak signals.
- It is not a hosted social reading network.
- It cannot guarantee the ethics or license status of every external book-data source.
- The duplicate local symlink path should be handled carefully to avoid double-counting the repo.
This pass checked 28 hand-authored doc or metadata files, 37 test files, and 6 workflow files on main. The count excludes vendored provider licenses, dependency folders, generated cache files, and large generated artifact history.
Primary docs checked:
.github/PULL_REQUEST_TEMPLATE.md.github/rulesets/README.mdCHANGELOG.mdCITATION.cffCODE_OF_CONDUCT.mdCONTRIBUTING.mdDEFINITION_OF_DONE.mdLICENSEREADME.mdSECURITY.mddocs/I18N.mddocs/RESPONSIBLE-TECH-AUDITS.mddocs/ROADMAP-FUTURE.mddocs/ROADMAP.mddocs/adr/0000-record-architecture-decisions.mddocs/adr/0001-static-render-audited-by-structural-checker.mddocs/adr/0002-calibre-koreader-join-key.mddocs/adr/0003-auth-fails-closed.mddocs/adr/0004-python-314-floor.mddocs/adr/0005-flat-non-src-layout.mddocs/adr/0006-i18n-and-ai-evaluation-not-applicable.mddocs/audits/accessibility-2026-06-05.mddocs/audits/library-safety.mddocs/audits/reading-privacy.mddocs/audits/residual-risk.mddocs/audits/scorecard-2026-07.mddocs/audits/source-ethics.mddocs/ethical-book-data-sources.md
Representative test files checked:
tests/__init__.pytests/conftest.pytests/test_a11y.pytests/test_auth.pytests/test_backup.pytests/test_calibre.pytests/test_catalog_parsers.pytests/test_catalogs_lists.pytests/test_config.pytests/test_diversity.pytests/test_eval.pytests/test_explanation.pytests/test_goals_time.pytests/test_hybrid.pytests/test_koreader.pytests/test_kosync.pytests/test_log_safety.pytests/test_no_egress.pytests/test_observability.pytests/test_perf.pytests/test_polish.pytests/test_recommender.pytests/test_refresh_doctor.pytests/test_reliability.pytests/test_render_view.pytests/test_reproducibility.pytests/test_schema_drift.pytests/test_share.pytests/test_shelf_browse.pytests/test_snapshot_readonly.pytests/test_source_allowlist.pytests/test_sourced_tags.pytests/test_sources_registry.pytests/test_stats.pytests/test_store_serde.pytests/test_unify.pytests/test_wrapped.py
For this docs PR, validation means the scope file was generated from the clean origin/main worktree, reviewed against repo metadata and docs inventory, and checked with git diff --check. Project test suites are still the authority for code behavior, because this PR changes documentation only.