Skip to content

[Wave 4] Low/info — Docs: docs/design/data_audit_cli_split.md #718

Open

Description

@cemililik

Wave 4 · 10 finding(s) in 10 fix package(s). One pass over this document; keep the Turkish mirror in sync.

Findings

  • DOC-D2B01-010 (docs, Low) — docs/design/data_audit_cli_split.md: misleading — 'Living spec — kept in sync with the implementation'; 'Status: Implemented in v0.5.5'.
    severity Low
    Where. docs/design/data_audit_cli_split.md:8-12 · type: misleading
    The document says. 'Living spec — kept in sync with the implementation'; 'Status: Implemented in v0.5.5'.
    What the code does. The API and layout sections are stale (see the entries above), and the release version cannot be checked without CHANGELOG.
    Code references. forgelm/data_audit/__init__.py:146-175, forgelm/cli/_exit_codes.py:41-50
    Proposed correction. Replace 'Living spec — kept in sync' with 'Historical design record of the split; the authoritative surface is forgelm/data_audit/__init__.py and forgelm/cli/__init__.py.'

  • DOC-D2B01-011 (docs, Low) — docs/design/data_audit_cli_split.md: stale — Quotes 'Architecture standard, line 71 (verbatim)'.
    severity Low
    Where. docs/design/data_audit_cli_split.md:25-27 · type: stale
    The document says. Quotes 'Architecture standard, line 71 (verbatim)'.
    What the code does. docs/standards/architecture.md now states the ceiling at L73-77 in different wording ('The ~1000-line ceiling is the trigger for a sub-package split ...').
    Code references. docs/standards/architecture.md:71-77
    Proposed correction. Change to 'Architecture standard, "Module-size ceiling" section (quoted at time of writing)'.

  • DOC-D2B01-012 (docs, Low) — docs/design/data_audit_cli_split.md: stale — In-package callers: forgelm/wizard.py (audit_dataset, summarize_report).
    severity Low
    Where. docs/design/data_audit_cli_split.md:35 · type: stale
    The document says. In-package callers: forgelm/wizard.py (audit_dataset, summarize_report).
    What the code does. The wizard is now a package and the caller is forgelm/wizard/_byod.py. forgelm/wizard.py does not exist.
    Code references. forgelm/wizard/_byod.py
    Proposed correction. "forgelm/wizard.py (now forgelm/wizard/_byod.py)"

  • DOC-D2B01-013 (docs, Low) — docs/design/data_audit_cli_split.md: stale — 1.b/1.e: the public forgelm.data_audit surface, which 'must remain bit-identical': audit_dataset(source, *, output_dir, near_dup_threshold, dedup_method…
    severity Low
    Where. docs/design/data_audit_cli_split.md:79-125, 214-266 · type: stale
    The document says. 1.b/1.e: the public forgelm.data_audit surface, which 'must remain bit-identical': audit_dataset(source, *, output_dir, near_dup_threshold, dedup_method, minhash_jaccard, minhash_num_perm, enable_quality_filter, enable_pii_ml, pii_ml_language, emit_croissant) -> AuditReport; __all__ of 23 names.
    What the code does. audit_dataset also takes workers: int = 1. The package __all__ also exports secrets_gate_verdict and pii_gate_verdict, and the facade re-exports further private sentinels (_HAS_XXHASH, _HAS_NUMPY, _HAS_DATASKETCH, _MinHash, ...).
    Code references. forgelm/data_audit/_orchestrator.py:227-240, forgelm/data_audit/__init__.py:54-175
    Proposed correction. Add workers: int = 1 to the audit_dataset signature and add def secrets_gate_verdict(secrets_summary) -> Dict[str, Any] and def pii_gate_verdict(pii_summary) -> Dict[str, Any] to 1.b and to the 1.e __all__.

  • DOC-D2B01-014 (docs, Low) — docs/design/data_audit_cli_split.md: stale — _streaming.py contains _length_stats.
    severity Low
    Where. docs/design/data_audit_cli_split.md:174-176 · type: stale
    The document says. _streaming.py contains _length_stats.
    What the code does. _length_stats does not exist. Length statistics come from _LengthDigest.stats().
    Code references. forgelm/data_audit/_streaming.py:54-113, forgelm/data_audit/_streaming.py:248-257
    Proposed correction. Remove _length_stats from the _streaming.py row (and 1.a C9).

  • DOC-D2B01-015 (docs, Low) — docs/design/data_audit_cli_split.md: stale — Every file lands well below the 1000-line ceiling, most below 350; the only borderline case is _aggregator.py at ~340.
    severity Low
    Where. docs/design/data_audit_cli_split.md:210 · type: stale
    The document says. Every file lands well below the 1000-line ceiling, most below 350; the only borderline case is _aggregator.py at ~340.
    What the code does. Actual sizes: _summary.py 513, _orchestrator.py 504, _aggregator.py 405, _simhash.py 386. All are below 1000, but _aggregator is not the only file above 350.
    Code references. forgelm/data_audit/_summary.py, forgelm/data_audit/_orchestrator.py
    Proposed correction. "Every file lands below the 1000-line ceiling; the largest are _summary.py (~510), _orchestrator.py (~500) and _aggregator.py (~400)."

  • DOC-D2B01-016 (docs, Low) — docs/design/data_audit_cli_split.md: stale — 2.b/2.e: the public CLI constants are EXIT_SUCCESS..EXIT_AWAITING_APPROVAL (0-4), and the designed __all__ lists only these five.
    severity Low
    Where. docs/design/data_audit_cli_split.md:376-392, 461-487 · type: stale
    The document says. 2.b/2.e: the public CLI constants are EXIT_SUCCESS..EXIT_AWAITING_APPROVAL (0-4), and the designed __all__ lists only these five.
    What the code does. The public exit-code set also includes EXIT_WIZARD_CANCELLED=5 and EXIT_INTEGRITY_FAILURE=6. Both are in _PUBLIC_EXIT_CODES and in forgelm.cli.__all__, as is _maybe_run_wizard.
    Code references. forgelm/cli/_exit_codes.py:10-50, forgelm/cli/__init__.py
    Proposed correction. Add EXIT_WIZARD_CANCELLED: int = 5 and EXIT_INTEGRITY_FAILURE: int = 6 to 2.b and to the 2.e __all__ (plus _maybe_run_wizard).

  • DOC-D2B01-017 (docs, Low) — docs/design/data_audit_cli_split.md: stale — 2.d proposed/resulting CLI layout: the module list, with _parser.py the largest file at ~580 lines and every module below the ceiling.
    severity Low
    Where. docs/design/data_audit_cli_split.md:400-457 · type: stale
    The document says. 2.d proposed/resulting CLI layout: the module list, with _parser.py the largest file at ~580 lines and every module below the ceiling.
    What the code does. The package also contains _pipeline.py (1788 lines) and _abi_check.py, plus 13 more subcommand modules (approve, approvals, audit_log_reader, cache, doctor, purge, reverse_pii, safety_eval, verify_*). _parser.py is 1474 lines. Both _parser.py and _pipeline.py exceed the ~1000-line ceiling and are tracked as deferred splits in tools/check_module_size.py.
    Code references. forgelm/cli/_parser.py, forgelm/cli/_pipeline.py, tools/check_module_size.py:399-415
    Proposed correction. Add a note under 2.d: "Post-split growth: _pipeline.py, _abi_check.py and further subcommands/* modules were added later; _parser.py and _pipeline.py now exceed the ceiling and are tracked as deferred splits in tools/check_module_size.py."

  • DOC-D2B01-018 (docs, Low) — docs/design/data_audit_cli_split.md: stale — C-6 adds a new tests/test_cli_import_stability.py.
    severity Low
    Where. docs/design/data_audit_cli_split.md:511 · type: stale
    The document says. C-6 adds a new tests/test_cli_import_stability.py.
    What the code does. No such test module exists in tests/ (nor tests/test_data_audit_import_stability.py from 1.g). Only the _token_digest singleton assertion exists, in tests/test_data_audit.py.
    Code references. tests/test_data_audit.py
    Proposed correction. Mark as not implemented: "(planned; not added — import surface is covered by existing per-module tests)".

  • DOC-D2B01-019 (docs, Low) — docs/design/data_audit_cli_split.md: wrong detail — _run_benchmark_only imports .benchmark and .model inline.
    severity Low
    Where. docs/design/data_audit_cli_split.md:532 · type: wrong detail
    The document says. _run_benchmark_only imports .benchmark and .model inline.
    What the code does. It imports ..benchmark.run_benchmark and ..inference.load_model inline, not .model.
    Code references. forgelm/cli/_no_train_modes.py:60-63
    Proposed correction. "... imports ..benchmark and ..inference inline ..."

Done when

  • Every finding above is fixed or closed with a reason (tick it here).
  • Code fixes carry a test; doc fixes update the Turkish mirror in the same PR.

Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationseverity: lowMinor defect, inaccuracy or rough edgesource: review-2026-10Found by the October 2026 code and documentation reviewwave: 4Roadmap wave 4: low / info / watch, when touching the module

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions