Skip to content

[Wave 4] Low/info — Docs: docs/usermanuals/en/data/ #785

Open

Description

@cemililik

Wave 4 · 15 finding(s) in 15 fix package(s). Documents with fewer than five findings each in this wave, grouped by directory.

Findings

  • DOC-BLEGAL-221 (docs, Low) — docs/usermanuals/en/data/croissant-card.md: false claim — HuggingFace's dataset card parser (the datasets library reads Croissant if present in the dataset directory).
    severity Low
    Where. docs/usermanuals/en/data/croissant-card.md:86 (Turkish mirror: docs/usermanuals/tr/data/croissant-card.md:86) · type: false claim
    The document says. HuggingFace's dataset card parser (the datasets library reads Croissant if present in the dataset directory).
    What the code does. The installed datasets 5.0.1 and huggingface_hub 1.33.0 contain no 'croissant' string. The HF dataset viewer generates Croissant JSON-LD server-side for Parquet-convertible Hub datasets, and the dataset card parser reads README.md YAML front matter.
    Proposed correction. Remove the bullet, or replace it with 'Hugging Face Hub generates its own Croissant metadata for Parquet-convertible datasets (/api/datasets//croissant); the datasets library does not read a local card.' TR: ilgili maddeyi kaldırın veya 'HF Hub kendi Croissant metadata'sını üretir; datasets yerel card okumaz' yazın.
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-BLEGAL-222 (docs, Low) — docs/usermanuals/en/data/croissant-card.md: false claim — For Hugging Face publishing, save the card as croissant.json in the dataset repo (HF expects it there).
    severity Low
    Where. docs/usermanuals/en/data/croissant-card.md:125 (Turkish mirror: docs/usermanuals/tr/data/croissant-card.md:125) · type: false claim
    The document says. For Hugging Face publishing, save the card as croissant.json in the dataset repo (HF expects it there).
    What the code does. No HF documentation says the Hub reads or expects a repo-root croissant.json. The viewer generates Croissant metadata automatically for supported formats (HF staff, forum thread 150255).
    Proposed correction. 'Hugging Face generates Croissant metadata automatically for Parquet-convertible datasets; committing croissant.json is optional and is not read by the Hub.' TR: 'HF, Parquet'e dönüştürülebilir dataset'ler için Croissant metadata'sını otomatik üretir; croissant.json Hub tarafından okunmaz.'
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-050 (docs, Low) — docs/usermanuals/en/data/all-mask.md: misleading — Some credential shapes (e.g. JWTs) overlap with email-like substrings; running secrets first prevents the email regex from chewing into the middle o…
    severity Low
    Where. docs/usermanuals/en/data/all-mask.md:43 (Turkish mirror: docs/usermanuals/tr/data/all-mask.md:43) · type: misleading
    The document says. Some credential shapes (e.g. JWTs) overlap with email-like substrings; running secrets first prevents the email regex from chewing into the middle of a JWT.
    What the code does. The JWT pattern is base64url with no '@', so it cannot overlap the email pattern. The code calls the ordering defensive, with no measurable cross-detector overlap today.
    Code references. forgelm/data_audit/_secrets.py:83-88, forgelm/ingestion.py:2113-2121
    Proposed correction. The ordering is defensive: secrets are higher-severity, so if a future pattern overlaps a PII pattern the span gets the secret label.
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-057 (docs, Low) — docs/usermanuals/en/data/croissant-card.md: wrong detail — "@​id": "train.jsonl"
    severity Low
    Where. docs/usermanuals/en/data/croissant-card.md:43-45 (Turkish mirror: docs/usermanuals/tr/data/croissant-card.md:43-45) · type: wrong detail
    The document says. "@​id": "train.jsonl"
    What the code does. @​id is slugged: "train_jsonl" (verified). name and contentUrl keep "train.jsonl".
    Code references. forgelm/data_audit/_croissant.py:129-143
    Proposed correction. "@​id": "train_jsonl"
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-058 (docs, Low) — docs/usermanuals/en/data/croissant-card.md: wrong detail — built by forgelm.data_audit._build_croissant_metadata
    severity Low
    Where. docs/usermanuals/en/data/croissant-card.md:103 (Turkish mirror: docs/usermanuals/tr/data/croissant-card.md:103) · type: wrong detail
    The document says. built by forgelm.data_audit._build_croissant_metadata
    What the code does. The function lives at forgelm.data_audit._croissant._build_croissant_metadata. hasattr(forgelm.data_audit, '_build_croissant_metadata') is False.
    Code references. forgelm/data_audit/_croissant.py:80, forgelm/data_audit/__init__.py:37-52
    Proposed correction. forgelm.data_audit._croissant._build_croissant_metadata (private helper)
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-059 (docs, Low) — docs/usermanuals/en/data/deduplication.md: false denial — Permutation count and LSH banding are not user-tunable today
    severity Low
    Where. docs/usermanuals/en/data/deduplication.md:81 (Turkish mirror: docs/usermanuals/tr/data/deduplication.md:81) · type: false denial
    The document says. Permutation count and LSH banding are not user-tunable today
    What the code does. True for the CLI, but the library audit_dataset(minhash_num_perm=...) accepts a permutation count.
    Code references. forgelm/data_audit/_orchestrator.py:234,304-305
    Proposed correction. Permutation count is not exposed on the CLI; library callers can pass audit_dataset(..., minhash_num_perm=N).
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-071 (docs, Low) — docs/usermanuals/en/data/leakage.md: misleading — It runs every time you call forgelm audit and refuses to certify a leaky split.
    severity Low
    Where. docs/usermanuals/en/data/leakage.md:10 · type: misleading
    The document says. It runs every time you call forgelm audit and refuses to certify a leaky split.
    What the code does. Leakage is reported only; exit 0 (as leakage.md:44 itself says). B11: 95% leakage gives exit 0.
    Code references. forgelm/cli/subcommands/_audit.py:236-240
    Proposed correction. Drop 'refuses to certify'
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-072 (docs, Low) — docs/usermanuals/en/data/leakage.md: wrong detail — input/config and I/O errors exit 1 and 2
    severity Low
    Where. docs/usermanuals/en/data/leakage.md:44 (Turkish mirror: docs/usermanuals/tr/data/leakage.md:44) · type: wrong detail
    The document says. input/config and I/O errors exit 1 and 2
    What the code does. An unreachable or unreadable input (OSError) exits 1. A missing optional extra (ImportError) exits 2.
    Code references. forgelm/cli/subcommands/_audit.py:212-231
    Proposed correction. an unreadable input exits 1; a missing optional extra exits 2
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-073 (docs, Low) — docs/usermanuals/en/data/leakage.md: misleading — leakage report is part of the compliance bundle
    severity Low
    Where. docs/usermanuals/en/data/leakage.md:118 (Turkish mirror: docs/usermanuals/tr/data/leakage.md:118) · type: misleading
    The document says. leakage report is part of the compliance bundle
    What the code does. The audit report is inlined into data_governance_report.json only when data_audit_report.json sits in training.output_dir. The audit default output is ./audit/.
    Code references. forgelm/compliance.py:668-703
    Proposed correction. leakage report is inlined into the compliance bundle when forgelm audit --output points at training.output_dir.
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-078 (docs, Low) — docs/usermanuals/en/data/pii-ml.md: stale — not wired up in v0.7.0
    severity Low
    Where. docs/usermanuals/en/data/pii-ml.md:126 (Turkish mirror: docs/usermanuals/tr/data/pii-ml.md:126) · type: stale
    The document says. not wired up in v0.7.0
    What the code does. The version pin is stale; Presidio masking is still not wired.
    Code references. forgelm/ingestion.py:2373-2392
    Proposed correction. not wired up today
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-079 (docs, Low) — docs/usermanuals/en/data/quality-filter.md: misleading — code-heavy datasets violate alpha ratio ... Either disable the affected checks or use code-specific thresholds.
    severity Low
    Where. docs/usermanuals/en/data/quality-filter.md:70,113-115 (Turkish mirror: docs/usermanuals/tr/data/quality-filter.md:70,113-115) · type: misleading
    The document says. code-heavy datasets violate alpha ratio ... Either disable the affected checks or use code-specific thresholds.
    What the code does. Fenced code blocks are stripped before the checks run, and pure-code rows are never flagged. Individual checks and thresholds cannot be disabled or tuned (the page says so itself).
    Code references. forgelm/data_audit/_quality.py:194-215
    Proposed correction. Fenced code blocks are excluded from the prose checks; unfenced code can still trip them. Individual checks cannot be disabled — use --no-quality-filter for the whole run.
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-080 (docs, Low) — docs/usermanuals/en/data/secrets.md: broken example — ✓ masked 47 secrets: aws_access_key: 12 ...
    severity Low
    Where. docs/usermanuals/en/data/secrets.md:35-40 (Turkish mirror: docs/usermanuals/tr/data/secrets.md:35-40) · type: broken example
    The document says. ✓ masked 47 secrets: aws_access_key: 12 ...
    What the code does. forgelm ingest prints an 'Ingestion summary' block with a 'Note : Secrets masking redacted N credential span(s): kind=count, ...' line, not this format.
    Code references. forgelm/ingestion.py:2783-2802,2546-2552
    Proposed correction. Replace with the real summary: Ingestion summary … Note : Secrets masking redacted 47 credential span(s): aws_access_key=12, github_token=8, jwt=18, openai_api_key=7, openssh_private_key=2.
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-081 (docs, Low) — docs/usermanuals/en/data/secrets.md: wrong detail — languages (top-3): en=8400
    severity Low
    Where. docs/usermanuals/en/data/secrets.md:66 (Turkish mirror: docs/usermanuals/tr/data/secrets.md:66) · type: wrong detail
    The document says. languages (top-3): en=8400
    What the code does. Language counts come from a sample of at most 200 payloads per split.
    Code references. forgelm/data_audit/_streaming.py:226
    Proposed correction. languages (top-3): en=200
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-083 (docs, Low) — docs/usermanuals/en/data/synthetic-data.md: misleading — system_prompt: "" # optional — prepended on every call
    severity Low
    Where. docs/usermanuals/en/data/synthetic-data.md:31 (Turkish mirror: docs/usermanuals/tr/data/synthetic-data.md:31) · type: misleading
    The document says. system_prompt: "" # optional — prepended on every call
    What the code does. When empty, the API and local backends send 'You are a helpful assistant.' as the system prompt.
    Code references. forgelm/synthetic.py:228,256
    Proposed correction. system_prompt: "" # empty → "You are a helpful assistant." is sent
    Turkish mirror. the Turkish page has the same error; fix both in the same PR

  • DOC-D3B07-084 (docs, Low) — docs/usermanuals/en/data/synthetic-data.md: broken example — [...] generating from gpt-4o / 100/ / ✓ wrote rows
    severity Low
    Where. docs/usermanuals/en/data/synthetic-data.md:48-51 (Turkish mirror: docs/usermanuals/tr/data/synthetic-data.md:48-51) · type: broken example
    The document says. [...] generating from gpt-4o / 100/ / ✓ wrote rows
    What the code does. The real log lines are 'Starting synthetic data generation: N prompts, teacher=…, backend=…', 'Synthetic data saved: … (N entries, X% success rate)' and 'Synthetic data generation: n/N successful …'. There is no progress counter.
    Code references. forgelm/synthetic.py:112-151, forgelm/cli/_no_train_modes.py (_run_generate_data)
    Proposed correction. Replace with the real log lines.
    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.

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