Skip to content

gpu_profiles / gpu_profiles.local.yaml custom GPU profiles are documented as working but do not exist (CR-A01-018) #427

Open

Description

@cemililik

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

An operator with an unlisted GPU follows the page and creates gpu_profiles.local.yaml. ForgeLM silently ignores it, so cost estimation still falls back to no rate. If they paste the block into the config instead, the run fails validation.

Primary finding

CR-A01-018 — gpu_profiles / gpu_profiles.local.yaml custom GPU profiles are documented as working but do not exist

severity High · reachability default · intent contract-violation · confidence confirmed · independently confirmed · reproduced end to end · already tracked: KNOWN-OPEN C31-DOC-SCHEMA-PROSE — docs/roadmap/phase-16-trust-surface-hardening.md:785-786 (S15 open)

What happens. gpu-cost.md:122-135 (EN and TR) shows a gpu_profiles.custom block and says 'Drop this in your project root as gpu_profiles.local.yaml; ForgeLM auto-merges it.' No code reads such a file or key. Put in the config, the key is rejected (extra=forbid). Put in the project root as a file, it is silently ignored. Unlike the cost_tracking examples on the same page, this section has no roadmap or placeholder label. The usermanual schema-drift guard misses it because it skips any unrecognised top-level key (tools/check_usermanual_schema_drift.py:302-304).

Where.

Evidence.

  • run4: the gpu_profiles block in the config gives dry-run exit 1, 'gpu_profiles Extra inputs are not permitted [type=extra_forbidden]'. The same block saved as gpu_profiles.local.yaml in the cwd gives dry-run exit 0 and the file is never referenced. rg 'gpu_profiles|local.yaml' finds no match in forgelm/.

Recommended fix. Remove the section, or mark it as a roadmap placeholder in EN and TR and point to training.gpu_cost_per_hour. Consider making the schema-drift guard flag unknown top-level keys in blocks that otherwise look like ForgeLM configs.

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

No one assigned

    Labels

    area: configCode area: configbacklog: knownAlready tracked in docs/roadmapblockedWaits for another issue (see Blocked by); set and removed automatically, never by handbugSomething isn't workingseverity: highWrong behaviour or a false claim users rely onsource: review-2026-10Found by the October 2026 code and documentation reviewwave: 1Roadmap wave 1: high severity, small effort

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions