Skip to content

[Bughunt Phase 4] Documentation rebuild: chatbot artifacts in README, dead autotools guide, no published API reference #294

Description

@grzanka

Found during a full bughunt/architecture review. Grouped as one phase since it's almost entirely writing/editing docs and can proceed in parallel with the code-focused phases (#290#293).

README.md

  • Contains an unedited LLM authoring artifact: "Here is the updated documentation with proper header levels, maintaining clarity and structure." immediately before the Linux installation section
  • Ends the uninstall section with a chatbot prompt shipped as documentation: "Would you like an automated uninstall script for easier removal? 🚀"
  • Section numbering skips: options are labelled i, ii, iii, iv, then jumps to vi — there is no "v.", and the intro text says "for option (iv)-(vi)"
  • Points to /docs/libamtrackManual.pdf under "Where do I find documentation" — no PDF exists anywhere in the repository (tracked separately as Include manual of PDF in the release files #124)
  • Documents the Windows CMake flag as -DGETOPT_LIBRARY=..., but CMakeLists.txt:108 actually reads GETOPT_LIB — the documented flag name is silently ignored
  • Lists libtool and gfortran as Linux/MSYS2 requirements — neither is used anywhere in the current CMake build; also describes the project as "ANSI C" while CMakeLists.txt:102 requires target_compile_features(amtrack PUBLIC c_std_11)
  • Should link the Docusaurus documentation site (this is already tracked as Add in readme link to main documentation website #268 — cross-referencing here so it's done as part of the same README pass rather than separately)

README_DEVELOPERS (581 lines) describes a build system that no longer exists

Every section describes an autotools workflow (configure.ac, Makefile.am, m4/, aclocal.m4, INSTALL) — none of these files exist anywhere in the tree; the project has been CMake-only for some time. It also references SVN and SourceForge (the project is on GitHub/Git), Eclipse 3.6+ as the recommended IDE, OS X 10.10 "Mountain Lion" and XCode 6.3.2, and CRAN packaging steps for a package removed from CRAN in 2019. A new contributor following this file literally cannot build the project.

Community/metadata files

  • No CITATION.cff — a meaningful gap for scientific software that researchers are expected to cite in publications
  • No SECURITY.md (relevant given the parser hardening in [Bughunt Phase 2] Memory safety: SPC binary-file decoder has unchecked file-controlled lengths and unbounded table fills #292)
  • No CODE_OF_CONDUCT.md
  • NEWS is placeholder joke text: "Keine Ahnung, was gibt's Neues? / Machst Du mirn Mettbrötchen? / TODO" — either populate or delete
  • ChangeLog's last real entry is 0.6.2 (2015-06-26); the repo's git tags reach 0.10.x and beyond — either regenerate from tags/releases or delete it so it stops being actively misleading
  • 65 source files' GPL header comments say "see file: copying.txt" but the actual file is COPYING (case and name both differ) — a one-shot sed across src/*.c

Doxygen / API reference

  • Doxyfile's INPUT for pictures uses a Windows-style path (docs\manual\pictures), which Doxygen silently skips on Linux/macOS CI runners
  • Several Doxyfile tags are flagged obsolete by the current Doxygen version; PAPER_TYPE has an invalid enum value; PROJECT_NUMBER is empty (should be wired to the CMake-derived version)
  • include/AT_SPC.h:66 documents an undefined enum (Documentation for undefined enum 'spc' found)
  • EXTRACT_ALL=YES in Doxyfile suppresses Doxygen's own undocumented-symbol warnings, so real documentation coverage is currently unmeasured. Separately, of the doc comments that do exist: 93 have a body that is literally just TODO, and 149 @param entries are documented only as TODO. Worst-affected headers: AT_KatzModel_Implementation.h (21 empty bodies), AT_SPC.h (14), AT_RDD_ExtendedTarget.h (14), AT_RDD_Simple.h (10), AT_Error.h (9). This overlaps Extend documentation of RDD models  #125 ("Extend documentation of RDD models").
  • Doxygen is never run in CI and its HTML output is never published anywhere — the entire documentation strategy for a 382-function public API is currently "read the header comments on GitHub." Fix the Doxyfile issues above, add a CI job that builds it with -Werror-equivalent warning treatment (once coverage is above some floor), and publish the output — either to GitHub Pages from this repo or as a new section on the libamtrack.github.io Docusaurus site (that repo currently documents almost exclusively the Python wrapper, pyamtrack, with a single "read the headers" landing page for the C library)
  • Build the LaTeX manual (docs/manual/libamtrackManual.tex) to PDF in CI and attach it to GitHub releases (closes Include manual of PDF in the release files #124)

Acceptance criteria

  • README.md has no AI-authorship artifacts, correct section numbering, and accurate flag names
  • README_DEVELOPERS is replaced by a CONTRIBUTING.md matching the actual CMake build
  • CITATION.cff exists and validates
  • Doxygen builds cleanly in CI and its output is reachable from a public URL

Related: #124, #125, #268

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions