Repository navigation
Synthetic-data manual claims audit-log entries per teacher call, refusal/format filters and a teacher citation in the model card; none exist (CR-A08-004) #443
Description
Wave 1 · theme D1-8: Docs describing features that do not exist (doc side of code findings) · highest severity High · 1 finding(s) · effort small
Summary
docs/usermanuals/en/data/synthetic-data.md:87 says 'The trainer's audit log records every teacher call, including the model name and timestamp'. synthetic.py has no audit logger, and the audit-event catalog has no synthetic generation event (only data.erasure_warning_synthetic_data_present). Lines 93-95 promise single-token rows are dropped, refusals are pattern-matched and tagged, and 'format failures' are validated. The code drops only falsy responses (synthetic.py:74-82) and has no refusal or format logic. Lines 97-110 say the model card cites the teacher ('N rows of synthetic data generated by openai:gpt-4o'). model_card.py excludes the synthetic section from the dump (:296) and has no data-lineage section. For a compliance-oriented tool, a nonexistent record of which teacher produced the training corpus (Art. 10 provenance) is more than cosmetic drift.
Primary finding
CR-A08-004 — Synthetic-data manual claims audit-log entries per teacher call, refusal/format filters and a teacher citation in the model card; none exist
severity High · reachability default · intent contract-violation · confidence confirmed · independently confirmed · reproduced end to end
What happens. docs/usermanuals/en/data/synthetic-data.md:87 says 'The trainer's audit log records every teacher call, including the model name and timestamp'. synthetic.py has no audit logger, and the audit-event catalog has no synthetic generation event (only data.erasure_warning_synthetic_data_present). Lines 93-95 promise single-token rows are dropped, refusals are pattern-matched and tagged, and 'format failures' are validated. The code drops only falsy responses (synthetic.py:74-82) and has no refusal or format logic. Lines 97-110 say the model card cites the teacher ('N rows of synthetic data generated by openai:gpt-4o'). model_card.py excludes the synthetic section from the dump (:296) and has no data-lineage section. For a compliance-oriented tool, a nonexistent record of which teacher produced the training corpus (Art. 10 provenance) is more than cosmetic drift.
Where.
docs/usermanuals/en/data/synthetic-data.md:97-109docs/usermanuals/en/data/synthetic-data.md:93-95docs/usermanuals/en/data/synthetic-data.md:97-110forgelm/synthetic.py:74-85forgelm/model_card.py:296docs/usermanuals/tr/data/synthetic-data.md:99-106forgelm/cli/_no_train_modes.py:180-243forgelm/model_card.py:112-129
Evidence.
- rg for audit in synthetic.py and cli/_no_train_modes.py returns nothing. rg for synthetic/teacher in model_card.py returns only the exclude list and comments. Generated card from config_template contains no teacher citation.
Recommended fix. Either implement a synthetic.generated audit event plus a model-card provenance line, or delete the three claims from the manual (EN and TR).
Acceptance criteria
- A regression test reproduces the failure scenario and asserts the corrected behaviour.
- Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
- Every finding in this issue is resolved or explicitly closed with a reason.
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