Repository navigation
[Wave 4] Low/info — Docs: docs/guides/data_audit.md #723
Description
Wave 4 · 14 finding(s) in 14 fix package(s). One pass over this document; keep the Turkish mirror in sync.
Findings
-
DOC-BLEGAL-185 (docs, Low) — docs/guides/data_audit.md: misleading — "Typical multi-split runs (train / validation / test) see a near-linear speed-up at --workers 3."
severity Low
Where.docs/guides/data_audit.md:598-599(Turkish mirror:docs/guides/data_audit-tr.md:583) · type: misleading
The document says. "Typical multi-split runs (train / validation / test) see a near-linear speed-up at --workers 3."
What the code does. Re-measured on the snapshot: with a typical 80/10/10 split, --workers 3 gave about 1.2x (ceiling total/largest = 1.25x; the cross-check measured 0.96-1.04x). Only equal-size splits gave 1.6-2.6x. The largest split bounds the wall time.
Proposed correction. 'Speed-up is bounded by the largest split (total / largest): a typical 80/10/10 split gains about 1.2x at --workers 3; equal-size splits approach 2-3x.'
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-020 (docs, Low) — docs/guides/data_audit.md: misleading — Per-split example:
sample_count: 1240withlanguages_top3counts 950/240/50, which sum to the row count.
severity Low
Where.docs/guides/data_audit.md:70-79(Turkish mirror:docs/guides/data_audit-tr.md:75-79) · type: misleading
The document says. Per-split example:sample_count: 1240withlanguages_top3counts 950/240/50, which sum to the row count.
What the code does. Language detection runs on a uniform reservoir of at most 200 text-bearing payloads, solanguages_top3[].countvalues sum to at most 200, not to the row count.
Code references.forgelm/data_audit/_streaming.py:226-245,forgelm/data_audit/_aggregator.py:127-145
Proposed correction. Change the example counts so they sum to ≤200 and add: "languages_top3counts are over a ≤200-row reservoir sample, not over all rows."
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-021 (docs, Low) — docs/guides/data_audit.md: wrong detail — Credit cards run through issuer-prefix + Luhn and TR IDs through the TC Kimlik checksum; other categories surface on regex shape alone.
severity Low
Where.docs/guides/data_audit.md:126-128(Turkish mirror:docs/guides/data_audit-tr.md:126-129) · type: wrong detail
The document says. Credit cards run through issuer-prefix + Luhn and TR IDs through the TC Kimlik checksum; other categories surface on regex shape alone.
What the code does. IBANs are also checksum-validated (ISO 7064 mod-97) before they are counted.
Code references.forgelm/data_audit/_pii_regex.py:177-193,forgelm/data_audit/_pii_regex.py:222-226
Proposed correction. "... credit cards run through an issuer-prefix + Luhn check, IBANs through ISO 7064 mod-97, TR national IDs through the TC Kimlik No checksum. Other categories surface on regex shape alone ..."
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-022 (docs, Low) — docs/guides/data_audit.md: wrong detail — The gate reads the declared tier in
PII_SEVERITY.
severity Low
Where.docs/guides/data_audit.md:195-197(Turkish mirror:docs/guides/data_audit-tr.md:206-208) · type: wrong detail
The document says. The gate reads the declared tier inPII_SEVERITY.
What the code does. The gate reads the merged table{**PII_SEVERITY, **PII_ML_SEVERITY}, so an ML category raised tocriticalwould also gate.
Code references.forgelm/data_audit/_summary.py:208-228
Proposed correction. "... the gate reads the declared tier in the mergedPII_SEVERITY+PII_ML_SEVERITYtable ..."
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-024 (docs, Low) — docs/guides/data_audit.md: stale — Heading 'Heuristic quality filter (Phase 12, opt-in)'; programmatic audit_dataset example implies CLI-equivalent output
severity Low
Where.docs/guides/data_audit.md:357; docs/guides/data_audit.md:621-633 · type: stale
The document says. Heading 'Heuristic quality filter (Phase 12, opt-in)'; programmatic audit_dataset example implies CLI-equivalent output
What the code does. CLI default is ON (data_audit.md:13 and the parser), but library audit_dataset() still defaults enable_quality_filter=False, so the documented API example produces an empty quality_summary
Code references.forgelm/cli/_parser.py:584-595,forgelm/data_audit/_orchestrator.py:235
Proposed correction. Fix the heading; note the library default in the Programmatic API section
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-025 (docs, Low) — docs/guides/data_audit.md: stale — Section heading 'Heuristic quality filter (Phase 12, opt-in)' / '
forgelm audit --quality-filterruns ...'
severity Low
Where.docs/guides/data_audit.md:357-359(Turkish mirror:docs/guides/data_audit-tr.md:360-362) · type: stale
The document says. Section heading 'Heuristic quality filter (Phase 12, opt-in)' / 'forgelm audit --quality-filterruns ...'
What the code does. In the CLI the filter is on by default (BooleanOptionalAction; the dispatcher defaults it to True), and the guide's own intro says so.
Code references.forgelm/cli/subcommands/_audit.py:353
Proposed correction. Retitle to 'Heuristic quality filter (Phase 12; CLI default-ON since v0.6.0)' and say 'forgelm auditruns ... unless--no-quality-filteris passed'.
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-026 (docs, Low) — docs/guides/data_audit.md: wrong detail —
quality_summaryexample with keys samples_flagged, by_check, overall_quality_score.
severity Low
Where.docs/guides/data_audit.md:362-376(Turkish mirror:docs/guides/data_audit-tr.md:365-378) · type: wrong detail
The document says.quality_summaryexample with keys samples_flagged, by_check, overall_quality_score.
What the code does. The block also carriessamples_evaluated, the denominator ofoverall_quality_score.
Code references.forgelm/data_audit/_summary.py:274-300
Proposed correction. Add"samples_evaluated": 1240,to the example.
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-027 (docs, Low) — docs/guides/data_audit.md: wrong detail — The auditor reads the first text-bearing column it finds, in this priority:
text→content→completion→prompt. Formessages-format chat data, th…
severity Low
Where.docs/guides/data_audit.md:517-519(Turkish mirror:docs/guides/data_audit-tr.md:525-527) · type: wrong detail
The document says. The auditor reads the first text-bearing column it finds, in this priority:text→content→completion→prompt. Formessages-format chat data, the role-tagged content is concatenated.
What the code does. The instruction pairs (instruction/output,User/Assistant,prompt/response) take priority and both halves are joined.text/content/completion/promptcome next, thenmessagescontent, which is joined without role tags. A half-present instruction pair is the last fallback.
Code references.forgelm/data_audit/_streaming.py:116-163,forgelm/data_audit/_types.py:78-94
Proposed correction. "Payload selection: (1) recognised instruction pairs (instruction/output,User/Assistant,prompt/response), both halves joined; (2) the first non-empty oftext→content→completion→prompt; (3)messages[].contentconcatenated (no role tags); (4) a lone half of an instruction pair."
Turkish mirror. the Turkish page has no such statement -
DOC-D2B01-028 (docs, Low) — docs/guides/data_audit.md: wrong detail — Any column that appears after row 0 is reported under
schema_drift_columns.
severity Low
Where.docs/guides/data_audit.md:521-524(Turkish mirror:docs/guides/data_audit-tr.md:529-533) · type: wrong detail
The document says. Any column that appears after row 0 is reported underschema_drift_columns.
What the code does. Drift columns are the columns missing from the most common keyset, whatever row they first appear in. A column present from row 0 but absent from the majority keyset is drift, and a column first seen after row 0 that is in the majority keyset is not.
Code references.forgelm/data_audit/_aggregator.py:211-223
Proposed correction. "... any column not present in the most common row keyset is reported underschema_drift_columns."
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-029 (docs, Low) — docs/guides/data_audit.md: wrong detail — The on-disk JSON is byte-identical across worker counts; the only field that varies is
generated_at.
severity Low
Where.docs/guides/data_audit.md:601-606(Turkish mirror:docs/guides/data_audit-tr.md:585-589) · type: wrong detail
The document says. The on-disk JSON is byte-identical across worker counts; the only field that varies isgenerated_at.
What the code does. With--croissant,croissant.datePublishedis set to the same wall-clockgenerated_atvalue and also varies between runs.
Code references.forgelm/data_audit/_orchestrator.py:462-473,forgelm/data_audit/_croissant.py:226
Proposed correction. "... the only fields that vary aregenerated_atand, with--croissant,croissant.datePublished."
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-030 (docs, Low) — docs/guides/data_audit.md: wrong detail — Language stats show "unknown (install forgelm[ingestion])" when langdetect is missing
severity Low
Where.docs/guides/data_audit.md:615· type: wrong detail
The document says. Language stats show "unknown (install forgelm[ingestion])" when langdetect is missing
What the code does. Output is a bare 'unknown=' with no hint and no note; the string does not occur in forgelm/
Code references.forgelm/data_audit/_streaming.py:25-41
Proposed correction. Document the bare 'unknown', or emit the hint/note in code
Turkish mirror. the Turkish page has no such statement -
DOC-D2B01-031 (docs, Low) — docs/guides/data_audit.md: wrong detail — Troubleshooting: the symptom
"unknown (install forgelm[ingestion])"appears in language stats when langdetect is missing.
severity Low
Where.docs/guides/data_audit.md:615(Turkish mirror:docs/guides/data_audit-tr.md:625) · type: wrong detail
The document says. Troubleshooting: the symptom"unknown (install forgelm[ingestion])"appears in language stats when langdetect is missing.
What the code does. When langdetect is missing (ImportError),_detect_languagereturns plain"unknown"; no install hint is emitted. Reproduced:languages_top3showed [{'code': 'unknown', ...}].
Code references.forgelm/data_audit/_streaming.py:25-41
Proposed correction. Symptom: "languages_top3reports only{"code": "unknown"}"; cause: "langdetectnot installed (or rows shorter than 20 chars)".
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-036 (docs, Low) — docs/guides/data_audit.md: misleading — Phase 11.5 added 'a verbose-by-default truncation policy'.
severity Low
Where.docs/guides/data_audit.md:7-9(Turkish mirror:docs/guides/data_audit-tr.md) · type: misleading
The document says. Phase 11.5 added 'a verbose-by-default truncation policy'.
What the code does. The default is non-verbose: zero-finding splits are folded into one '(N clean split(s)...)' tail line, and --verbose expands them. The doc itself says this at L568-572.
Code references.forgelm/data_audit/_summary.py:380-403
Proposed correction. Replace with 'a folded-by-default human summary (clean splits collapse into one line; --verbose expands them)'.
Turkish mirror. the Turkish page has the same error; fix both in the same PR -
DOC-D2B01-037 (docs, Low) — docs/guides/data_audit.md: misleading — Mask with forgelm ingest --pii-mask (or in your own preprocessing) before publishing the dataset (also the remediation in the PII gate message, L173).
severity Low
Where.docs/guides/data_audit.md:129-130(Turkish mirror:docs/guides/data_audit-tr.md) · type: misleading
The document says. Mask with forgelm ingest --pii-mask (or in your own preprocessing) before publishing the dataset (also the remediation in the PII gate message, L173).
What the code does. forgelm ingest reads only .pdf, .docx, .epub, .txt and .md sources, not JSONL, so an audited JSONL cannot be masked by re-running ingest on it. The usable routes are re-ingesting the original documents with --pii-mask, or calling forgelm.data_audit.mask_pii on the JSONL text.
Code references.forgelm/ingestion.py:60,forgelm/ingestion.py:2005
Proposed correction. Write: 'Mask by re-running forgelm ingest --pii-mask on the original documents, or apply forgelm.data_audit.mask_pii to the JSONL text in your own preprocessing.'
Turkish mirror. the Turkish page has the same error; fix both in the same PR
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