Skip to content

[Wave 3] Medium — TR mirror: docs/guides/ #635

Open

Description

@cemililik

Wave 3 · 15 finding(s) in 15 fix package(s). Mirror drift across small document pairs in this directory.

Findings

  • DOC-TR06-010 (TR mirror, Medium) — TR mirror drift in docs/guides/alignment.md: Stage 2: DPO (uses the SFT model as base) ... model.name_or_path: "./checkpoints_sft/final_model"
    severity Medium
    Where. EN docs/guides/alignment.md:219-232 · TR docs/guides/alignment-tr.md:257-270
    English text. Stage 2: DPO (uses the SFT model as base) ... model.name_or_path: "./checkpoints_sft/final_model"
    Turkish text. Aşama 2: DPO (SFT modelini base olarak kullanır) ... model.name_or_path: "./checkpoints_sft/final_model"
    Which is correct. Neither. With the default training.merge_adapters=false, final_model/ holds only LoRA adapters plus tokenizer, not a standalone base model. The path also assumes stage-1 training.output_dir=./checkpoints_sft, which the example never sets.
    Proposed correction (Turkish text for the -tr page). Aşama 2 için model.name_or_path, birinci aşamanın training.output_dir altındaki final_model dizinine işaret eder. Varsayılan merge_adapters: false olduğunda bu dizin yalnızca LoRA adapter'larını içerir; tam ağırlıklı bir temel model gerekiyorsa birinci aşamada training.merge_adapters: true kullanın veya zincirleme için pipeline: bloğunu tercih edin (pipeline.md).

  • DOC-TR08-011 (TR mirror, Medium) — TR mirror drift in docs/guides/air_gap_deployment.md: unreadable cache root (chmod broken, mount detached) reports fail rather than warn
    severity Medium
    Where. EN docs/guides/air_gap_deployment.md:129 · TR docs/guides/air_gap_deployment-tr.md:129
    English text. unreadable cache root (chmod broken, mount detached) reports fail rather than warn
    Turkish text. Okunamaz cache root (chmod kırık, mount kopuk) warn yerine fail raporlar
    Which is correct. Neither exactly: fail only when the walk errored and zero files were visible; a missing directory (detached mount) is warn.
    Proposed correction (Turkish text for the -tr page). Cache kökü var ama okunamıyorsa (dizin yürüyüşü hata verir ve hiç dosya görünmüyorsa; ör. chmod bozuk) hf_hub.offline_cache fail raporlar; dizin hiç yoksa (mount kopuk) veya cache boşsa warn raporlar. Bu yüzden fail/warn satırını eğitimden önce mutlaka okuyun.

  • DOC-TR08-012 (TR mirror, Medium) — TR mirror drift in docs/guides/air_gap_deployment.md: --offline enforces local_files_only=True end-to-end
    severity Medium · already tracked: KNOWN-OPEN CLI-04|CLI-02 docs/roadmap/phase-16-trust-surface-hardening.md:483-489
    Where. EN docs/guides/air_gap_deployment.md:139 · TR docs/guides/air_gap_deployment-tr.md:139
    English text. --offline enforces local_files_only=True end-to-end
    Turkish text. --offline bayrağı uçtan uca local_files_only=True zorlar
    Which is correct. Neither: --offline sets model.offline and the HF_*_OFFLINE env vars.
    Proposed correction (Turkish text for the -tr page). --offline bayrağı model.offline'ı açar ve HF_HUB_OFFLINE, TRANSFORMERS_OFFLINE, HF_DATASETS_OFFLINE ortam değişkenlerini 1'e çeker; cache'te olmayan bir referans HF kütüphaneleri tarafından hata ile reddedilir.

  • DOC-TR08-013 (TR mirror, Medium) — TR mirror drift in docs/guides/air_gap_deployment.md: without FORGELM_OPERATOR the run continues without auditing
    severity Medium
    Where. EN docs/guides/air_gap_deployment.md:199 · TR docs/guides/air_gap_deployment-tr.md:199
    English text. without FORGELM_OPERATOR the run continues without auditing
    Turkish text. FORGELM_OPERATOR set edilmemiş bağlı staging makinesi debug-seviyesinde bir not görür ve çalıştırma audit olmadan devam eder
    Which is correct. Neither: operator identity falls back to user@host; the audit-less path is only for logger construction failure (debug log).
    Proposed correction (Turkish text for the -tr page). Audit logger kurulumu best-effort'tur: FORGELM_OPERATOR yoksa kimlik kullanıcı@host olarak türetilir; logger kurulamazsa debug-seviyesinde not düşülür ve işlem audit olmadan sürer. Kimin stage ettiğine dair kanıt gerekiyorsa FORGELM_OPERATOR'ı sabitleyin.

  • DOC-TR08-014 (TR mirror, Medium) — TR mirror drift in docs/guides/air_gap_deployment.md: gated models require the same HF_TOKEN during cache-models as during training
    severity Medium
    Where. EN docs/guides/air_gap_deployment.md:209 · TR docs/guides/air_gap_deployment-tr.md:209
    English text. gated models require the same HF_TOKEN during cache-models as during training
    Turkish text. gated modeller, cache-models sırasında set edilen aynı HF_TOKEN'ı gerektirir
    Which is correct. Neither: the token is needed only on the connected host at cache-models time; the offline run reads the local snapshot.
    Proposed correction (Turkish text for the -tr page). Gated modeller için HF_TOKEN yalnızca bağlı staging host'ta cache-models sırasında gerekir (lisans erişimi orada çözülür); air-gap host'ta eğitim yerel snapshot'ı okur.

  • DOC-TR08-015 (TR mirror, Medium) — TR mirror drift in docs/guides/cicd_pipeline.md: Exit codes 0 success, 1 ... 4 awaiting approval (0-4 only)
    severity Medium
    Where. EN docs/guides/cicd_pipeline.md:11,223-229 · TR docs/guides/cicd_pipeline-tr.md:15-16,231-237
    English text. Exit codes 0 success, 1 ... 4 awaiting approval (0-4 only)
    Turkish text. 0 başarı, 1 config hatası, 2 eğitim hatası, 3 eval hatası, 4 insan onayı bekliyor
    Which is correct. Neither is complete: _PUBLIC_EXIT_CODES = 0,1,2,3,4,5 (wizard cancelled),6 (integrity failure; verify-* only).
    Proposed correction (Turkish text for the -tr page). 0 başarı, 1 config hatası, 2 eğitim/runtime hatası, 3 eval/gate başarısızlığı, 4 insan onayı bekliyor; ayrıca 5 (wizard iptal) ve 6 (verify-* bütünlük hatası, güvenlik olayı). case bloğuna 5) ve 6) dalları ve bilinmeyen kodlar için *) eklenmelidir.

  • DOC-TR08-016 (TR mirror, Medium) — TR mirror drift in docs/guides/cicd_pipeline.md: forgelm ... > training_result.json; echo "EXIT_CODE=$?" >> $GITHUB_ENV
    severity Medium
    Where. EN docs/guides/cicd_pipeline.md:61-64 · TR docs/guides/cicd_pipeline-tr.md:67-70
    English text. forgelm ... > training_result.json; echo "EXIT_CODE=$?" >> $GITHUB_ENV
    Turkish text. aynı
    Which is correct. Neither: the step runs under bash -e so a non-zero exit aborts before the echo; also exit 4 would fail the job.
    Proposed correction (Turkish text for the -tr page). Çıkış kodunu yakalamak için set +e; forgelm ... ; code=$?; set -e; echo "EXIT_CODE=$code" >> "$GITHUB_ENV"; exit 0 kalıbını kullanın (veya adımda continue-on-error: true); ${{ github.event.inputs.config }} değerini doğrudan run: içine yazmak yerine env: ile geçirin (script injection).

  • DOC-TR08-017 (TR mirror, Medium) — TR mirror drift in docs/guides/cicd_pipeline.md: checkpoints/compliance/ contains audit trails; commit it for regulatory audit trails
    severity Medium
    Where. EN docs/guides/cicd_pipeline.md:73-81,276,278 · TR docs/guides/cicd_pipeline-tr.md:84-87,291-298
    English text. checkpoints/compliance/ contains audit trails; commit it for regulatory audit trails
    Turkish text. checkpoints/compliance/ audit izlerini içerir; ... birlikte commit'lemeyi düşünün
    Which is correct. Neither: audit_log.jsonl lives in the output dir, not compliance/; committing compliance artefacts to VCS is a footgun (may carry data-subject/PII-derived metadata).
    Proposed correction (Turkish text for the -tr page). Audit zinciri (audit_log.jsonl + manifest) çıktı dizinindedir; checkpoints/compliance/ Annex IV / governance paketlerini içerir. Audit log'u write-once depolamaya, compliance paketini artifact olarak saklayın; kişisel veri içerebileceğinden git'e commit'lemeyin.

  • DOC-TR08-018 (TR mirror, Medium) — TR mirror drift in docs/guides/cicd_pipeline.md: forgelm ... --output-format json | jq / json.loads(result.stdout)
    severity Medium
    Where. EN docs/guides/cicd_pipeline.md:238-263 · TR docs/guides/cicd_pipeline-tr.md:246-271
    English text. forgelm ... --output-format json | jq / json.loads(result.stdout)
    Turkish text. aynı
    Which is correct. Neither: stdout carries log lines besides the JSON envelope (verified broken example)
    Proposed correction (Turkish text for the -tr page). JSON zarfını ayrıştırmadan önce yalnızca son JSON nesnesini alın veya log'ları stderr'e yönlendirin; -q ile log'u kısıp jq ile doğrulayın.

  • DOC-TR08-019 (TR mirror, Medium) — TR mirror drift in docs/guides/gdpr_erasure.md: --kind artefacts deletes a run's compliance bundle (compliance/.json embedding run_id)
    severity Medium · already tracked: KNOWN-OPEN TRUST-02 docs/roadmap/phase-16-trust-surface-hardening.md:553-562
    Where. EN docs/guides/gdpr_erasure.md:15,60 · TR docs/guides/gdpr_erasure-tr.md:15,60
    English text. --kind artefacts deletes a run's compliance bundle (compliance/
    .json embedding run_id)
    Turkish text. compliance bundle'ını siler / adında run_id embed eden compliance/*.json dosyalarını siler
    Which is correct. Neither exact (verified misleading): deletion is limited to files whose names embed the run_id, which need not be the whole bundle.
    Proposed correction (Turkish text for the -tr page). --kind artefacts yalnızca <output_dir>/compliance/ altında adında <run_id> geçen dosyaları siler; run'a ait tüm compliance bundle'ını silmeyi garanti etmez. Silmeden önce --dry-run ile would_delete listesini inceleyin.

  • DOC-TR08-020 (TR mirror, Medium) — TR mirror drift in docs/guides/gdpr_erasure.md: --dry-run previews and emits the audit chain without modifying disk
    severity Medium
    Where. EN docs/guides/gdpr_erasure.md:50 · TR docs/guides/gdpr_erasure-tr.md:50
    English text. --dry-run previews and emits the audit chain without modifying disk
    Turkish text. Disk'e dokunmadan silmeyi önizlemek + audit zincirini yaymak için --dry-run
    Which is correct. Neither: dry-run does append erasure_requested / erasure_completed(dry_run=true) to audit_log.jsonl (disk write), and in run mode logs bytes_freed=0.
    Proposed correction (Turkish text for the -tr page). --dry-run corpus ve artefact'lara dokunmaz, ancak audit log'a dry_run=true işaretli event'ler ekler (audit zinciri append-only olduğundan bu kayıtlar geri alınamaz).

  • DOC-TR08-021 (TR mirror, Medium) — TR mirror drift in docs/guides/gdpr_erasure.md: Loaded config has a webhook block (both modes).
    severity Medium
    Where. EN docs/guides/gdpr_erasure.md:101 · TR docs/guides/gdpr_erasure-tr.md:101
    English text. Loaded config has a webhook block (both modes).
    Turkish text. Yüklü config webhook block'u içeriyor
    Which is correct. Neither: event fires in row mode only (warnings computed at _purge.py L660 inside row path) and only when webhook.url is set or webhook.url_env resolves to a non-empty env var.
    Proposed correction (Turkish text for the -tr page). Yalnız row modunda. Row erasure × yüklü config'te çözümlenebilir bir webhook hedefi var (webhook.url dolu veya webhook.url_env ile adlandırılan ortam değişkeni set). Run modu bu uyarıyı yaymaz.

  • DOC-TR08-022 (TR mirror, Medium) — TR mirror drift in docs/guides/gdpr_erasure.md: reverse-pii uses the same per-output-dir salt as purge; digests match
    severity Medium
    Where. EN docs/guides/gdpr_erasure.md:130-147 · TR docs/guides/gdpr_erasure-tr.md:131-148
    English text. reverse-pii uses the same per-output-dir salt as purge; digests match
    Turkish text. aynı
    Which is correct. Neither fully (verified misleading): reverse-pii --salt-source per_dir | env_var | plaintext; digests match only when same salt source/dir is used.
    Proposed correction (Turkish text for the -tr page). Digest eşleşmesi yalnızca reverse-pii'nin aynı --output-dir'deki aynı per-dir salt ile (ve aynı FORGELM_AUDIT_SECRET durumunda) çalıştırılmasıyla geçerlidir; --salt-source env_var veya plaintext farklı digest üretir.

  • DOC-TR08-023 (TR mirror, Medium) — TR mirror drift in docs/guides/human_approval_gate.md: notify_awaiting_approval with the run id and metrics summary
    severity Medium
    Where. EN docs/guides/human_approval_gate.md:93 · TR docs/guides/human_approval_gate-tr.md:93
    English text. notify_awaiting_approval with the run id and metrics summary
    Turkish text. run id ve metric özetiyle fırlatır
    Which is correct. Neither: payload carries run_name, status and model_path (staging path) only; and is suppressed when notify_on_success is false.
    Proposed correction (Turkish text for the -tr page). Trainer notify_awaiting_approval'ı run_name ve staging yolu (model_path) ile fırlatır; metrik özeti ve run_id taşımaz. webhook.notify_on_success: false ise bu bildirim de gönderilmez — reviewer'ı yalnız webhook'a bağlamayın.

  • DOC-TR09-001 (TR mirror, Medium) — TR mirror drift in docs/guides/getting-started.md: operator.identity — pass if FORGELM_OPERATOR is set, warn with the getpass.getuser()@​hostname fallback, fail if neither resolves (unless FORGE…
    severity Medium
    Where. EN docs/guides/getting-started.md:75 · TR docs/guides/getting-started-tr.md:75
    English text. operator.identity — pass if FORGELM_OPERATOR is set, warn with the getpass.getuser()@​hostname fallback, fail if neither resolves (unless FORGELM_ALLOW_ANONYMOUS_OPERATOR=1 opt-in is set).
    Turkish text. operator.identity — FORGELM_OPERATOR set ise pass, getpass.getuser()@​hostname fallback ile warn, ikisi de çözülmezse fail (FORGELM_ALLOW_ANONYMOUS_OPERATOR=1 opt-in set ise).
    Which is correct. EN. In code, an unresolvable username with FORGELM_ALLOW_ANONYMOUS_OPERATOR=1 gives warn (anonymous@host), and without the opt-in it gives fail (_doctor.py:896-923; AuditLogger raises ConfigError at compliance.py:219-229). The TR parenthetical reads as 'fail when the opt-in is set', which inverts the rule. TR :143 states it correctly.
    Proposed correction (Turkish text for the -tr page). 'operator.identity — FORGELM_OPERATOR set ise pass; getpass.getuser()@​hostname fallback'iyle warn; ikisi de çözülemezse fail (yalnızca FORGELM_ALLOW_ANONYMOUS_OPERATOR=1 opt-in'i set edilmemişse; opt-in set ise anonymous@<host> kimliğiyle warn).'

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.

Activity

  1. added
    documentationImprovements or additions to documentation
    backlog: knownAlready tracked in docs/roadmap
    i18nEnglish/Turkish documentation mirror
    severity: mediumReal defect with limited reach or a workaround
    source: review-2026-10Found by the October 2026 code and documentation review
    wave: 3Roadmap wave 3: medium severity, module sweeps
    on Oct 9, 2026
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

    backlog: knownAlready tracked in docs/roadmapdocumentationImprovements or additions to documentationi18nEnglish/Turkish documentation mirrorseverity: mediumReal defect with limited reach or a workaroundsource: review-2026-10Found by the October 2026 code and documentation reviewwave: 3Roadmap wave 3: medium severity, module sweeps

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions