Repository navigation
[Wave 4] Low/info — Docs: docs/design/data_audit_cli_split.md #718
Description
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 isforgelm/data_audit/__init__.pyandforgelm/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(nowforgelm/wizard/_byod.py)" -
DOC-D2B01-013 (docs, Low) — docs/design/data_audit_cli_split.md: stale — 1.b/1.e: the public
forgelm.data_auditsurface, 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 publicforgelm.data_auditsurface, 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_datasetalso takesworkers: int = 1. The package__all__also exportssecrets_gate_verdictandpii_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. Addworkers: int = 1to the audit_dataset signature and adddef secrets_gate_verdict(secrets_summary) -> Dict[str, Any]anddef 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.pycontains_length_stats.
severity Low
Where.docs/design/data_audit_cli_split.md:174-176· type: stale
The document says._streaming.pycontains_length_stats.
What the code does._length_statsdoes 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_statsfrom the_streaming.pyrow (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.pyat ~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.pyat ~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_CODESand inforgelm.cli.__all__, as is_maybe_run_wizard.
Code references.forgelm/cli/_exit_codes.py:10-50,forgelm/cli/__init__.py
Proposed correction. AddEXIT_WIZARD_CANCELLED: int = 5andEXIT_INTEGRITY_FAILURE: int = 6to 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.pythe 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.pythe 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.pyis 1474 lines. Both_parser.pyand_pipeline.pyexceed 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.pyand furthersubcommands/*modules were added later;_parser.pyand_pipeline.pynow exceed the ceiling and are tracked as deferred splits intools/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 newtests/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_digestsingleton 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_onlyimports.benchmarkand.modelinline.
severity Low
Where.docs/design/data_audit_cli_split.md:532· type: wrong detail
The document says._run_benchmark_onlyimports.benchmarkand.modelinline.
What the code does. It imports..benchmark.run_benchmarkand..inference.load_modelinline, not.model.
Code references.forgelm/cli/_no_train_modes.py:60-63
Proposed correction. "... imports..benchmarkand..inferenceinline ..."
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.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity