Skip to content

docs: post-#63 accuracy audit — fix code-vs-doc drift + EN/TR currency#64

Merged
cemililik merged 7 commits into
mainfrom
docs/post-pr63-doc-audit
Jun 15, 2026
Merged

docs: post-#63 accuracy audit — fix code-vs-doc drift + EN/TR currency#64
cemililik merged 7 commits into
mainfrom
docs/post-pr63-doc-audit

Conversation

@cemililik

@cemililik cemililik commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

What

Post-merge documentation audit of docs/{design,guides,qms,reference,usermanuals} + the root README, verifying every factual claim against the code at HEAD and bringing EN↔TR mirrors back into content parity.

Method: a 12-agent audit (read-only, claims checked against forgelm/) surfaced 89 candidate findings; a verify-before-fix pass applied 65 genuine corrections and skipped 23 as already-correct (audit false positives, caught before any wrong edit). All changes are docs — no code touched.

Highlights

  • Phantom config blocks removed — user manuals documented galore: / datasets: / output: / deployment: top-level YAML blocks that ForgeConfig (extra="forbid") rejects; following them would raise ValidationError. Also fixed use_unslothmodel.backend, training.batch_sizeper_device_train_batch_size, GaLore rank default 256→128, floors:{}min_score.
  • architecture.md (EN+TR) — 18→19 subcommands (+verify-integrity), exit contract 0–4→0–5 (+wizard-cancelled), 21→23 Pydantic models.
  • library_api_reference.md (EN+TR) — corrected non-existent API attributes (TrainResult.output_dirfinal_model_path, revert_reasonreverted; VerifyResult.entries_checkedentries_count, dropped chain_head).
  • New page: compliance/verify-integrity (EN+TR) — the Art.15 model-integrity verifier now has its own user-manual page (+ _meta.yaml nav entry).
  • Stale version pins v0.5.5 / v0.6.x → v0.7.0; bilingual currencyconfiguration-tr.md +27 missing field rows, several TR mirrors brought up to EN content.
  • README — added the model+log integrity verification surface to the compliance section; all other claims + doc links verified accurate.

Validation

Full doc gauntlet green: check_bilingual_parity, check_anchor_resolution, check_cli_help_consistency, check_tr_links_prefer_mirror, check_usermanual_self_contained, check_doc_numerical_claims, check_no_analysis_refs, check_audit_event_catalog, update_site_version + build_usermanuals (67 pages EN/TR, no missing/orphan) + usermanual consistency tests (24 passed).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added forgelm verify-integrity compliance verification feature for validating model artifact integrity post-deployment.
    • Updated configuration schema documentation: restructured training parameters (e.g., trainer_type, galore_* fields), introduced new top-level config blocks (webhook, risk_assessment, monitoring, retention, pipeline), and changed benchmark gating from per-task thresholds to average min_score.
    • Updated audit log paths and human approval workflows; clarified that model deduplication requires manual post-audit cleanup.
    • Expanded exit code contract to include code 5 for wizard cancellation across CLI, library API, and CI/CD guides.
    • Updated all version references from v0.5.5 to v0.7.0; added localized Turkish documentation for new compliance features.

cemililik and others added 4 commits June 15, 2026 18:59
architecture.md (EN+TR): 18->19 subcommands (+verify-integrity), exit contract 0/1/2/3/4->0/1/2/3/4/5 (+wizard-cancelled), 21->23 Pydantic config models. library_api_reference.md (EN+TR): fix non-existent TrainResult (output_dir->final_model_path, revert_reason->reverted), VerifyResult (entries_checked->entries_count, drop chain_head), AuditReport attrs + detect_pii/secrets examples. configuration-tr.md: +27 missing field rows to reach EN parity. soc2: drop false webhook-HMAC claim. compliance_summary/supply_chain: verify-integrity + CVE-ignore accuracy. usage-tr.md: missing [export]/[chat] extras + tokenizer files. verify_audit: stale v0.5.5/v0.6.x -> post-v0.7.0. data_ingestion_architecture: stale line cites.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…age (post-#63 audit)

Remove non-existent YAML blocks users would hit ValidationError on: galore:/datasets:/output: (training/galore, long-context), deployment: (deploy-targets), and fix field names (use_unsloth->model.backend, training.batch_size->per_device_train_batch_size, rope_scaling/sliding_window_attention under training:, GaLore rank default 256->128). configuration.md: 12->15 top-level blocks. benchmarks: floors{} -> min_score scalar. Remove non-existent forgelm batch-chat. NEW: compliance/verify-integrity.md (EN+TR) + _meta.yaml entry — the Art.15 model-integrity verifier now has its own user-manual page (fixes the dangling see-also from verify-audit). EN<->TR kept in sync throughout.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…audit)

guides: library_api __version__/__api_version__ (0.5.5/0.5 -> 0.7.0/1.0.0), troubleshooting exit-code 5 row, gdpr_erasure staging_ttl_days removal v0.7.0->v0.8.0, safety_compliance staging-dir wording, pipeline/alignment/cicd accuracy, performance-tr drift. qms: encryption_at_rest staging path final_model.staging.<run_id>, access_control/incident/risk_treatment EN<->TR currency. design: cache-split + gdpr + iso27001 spec-vs-shipped accuracy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tion

Add forgelm verify-integrity (Art.15 model-integrity manifest) + verify-audit to the Compliance & Safety bullets — the shipped integrity-verification surface was unmentioned. All other README claims + doc links verified accurate against code; no other changes needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request comprehensively updates the English and Turkish documentation to align with ForgeLM v0.7.0, introducing the new verify-integrity subcommand, updating CLI exit codes, and restructuring the YAML configuration reference (such as nesting galore parameters inside training and adding pipeline and retention blocks). The review feedback correctly identifies a bug in the suggested jq command for manual deduplication in the user manuals, which requires the -s (slurp) flag to process JSON Lines correctly. Additionally, the feedback points out an inconsistency in the ASCII architecture diagrams, which list only 17 subcommands instead of the updated 19.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +96 to +98
$ jq --slurpfile dups dup_indices.json \
'[to_entries[] | select(.key as $i | $dups[0] | index($i) | not) | .value]' \
data/train.jsonl > data/train.dedup.jsonl

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The suggested jq command has a bug when processing a JSON Lines (.jsonl) file. Because jq is run without the -s (slurp) flag, it processes each line individually. Applying to_entries on a single line converts the object's key-value pairs (e.g., "prompt", "response") into entries, rather than mapping the line numbers. This results in the keys being discarded and no lines actually being filtered out.

To correctly filter the JSON Lines file by line index using the slurped duplicate indices, you should use the -s flag to read the file as an array, map the line indices using to_entries, filter them, and then output them back as JSON Lines.

Suggested change
$ jq --slurpfile dups dup_indices.json \
'[to_entries[] | select(.key as $i | $dups[0] | index($i) | not) | .value]' \
data/train.jsonl > data/train.dedup.jsonl
$ jq --slurpfile dups dup_indices.json -s \\
'to_entries | map(select(.key as $i | $dups[0] | index($i) | not) | .value)[]' \\
data/train.jsonl > data/train.dedup.jsonl

Comment on lines +96 to +98
$ jq --slurpfile dups dup_indices.json \
'[to_entries[] | select(.key as $i | $dups[0] | index($i) | not) | .value]' \
data/train.jsonl > data/train.dedup.jsonl

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Önerilen jq komutunda JSON Lines (.jsonl) dosyasını işlerken bir hata bulunmaktadır. jq komutu -s (slurp) bayrağı olmadan çalıştırıldığı için her satırı ayrı ayrı işler. Tek bir satır üzerinde to_entries uygulamak, satır numaralarını eşlemek yerine nesnenin anahtar-değer çiftlerini (örneğin "prompt", "response") girdilere dönüştürür. Bu durum anahtarların kaybolmasına ve hiçbir satırın filtrelenmemesine neden olur.

JSON Lines dosyasını satır indeksine göre doğru şekilde filtrelemek için -s bayrağını kullanarak dosyayı bir dizi olarak okumalı, to_entries ile satır indekslerini eşlemeli, filtrelemeli ve ardından tekrar JSON Lines olarak yazdırmalısınız.

Suggested change
$ jq --slurpfile dups dup_indices.json \
'[to_entries[] | select(.key as $i | $dups[0] | index($i) | not) | .value]' \
data/train.jsonl > data/train.dedup.jsonl
$ jq --slurpfile dups dup_indices.json -s \\
'to_entries | map(select(.key as $i | $dups[0] | index($i) | not) | .value)[]' \\
data/train.jsonl > data/train.dedup.jsonl

Comment thread docs/reference/architecture.md Outdated
Comment on lines +15 to +18
│ ├── ingest, audit, chat, export, deploy, doctor,
│ │ cache, purge, reverse_pii, approve, approvals,
│ │ safety_eval, verify_audit, verify_annex_iv,
│ │ verify_gguf, quickstart
├── config.py → Pydantic validation (21 config models)
│ │ verify_gguf, verify_integrity, quickstart

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The ASCII tree list of subcommands contains only 17 items, which is inconsistent with the updated description on line 11 stating there are 19 subcommands. Specifically, the reject and cache-tasks subcommands are missing, and cache-models is simplified to cache.

Updating this list to explicitly include all 19 subcommands will ensure the architecture documentation remains accurate and consistent with the CLI parser.

Suggested change
│ ├── ingest, audit, chat, export, deploy, doctor,
│ │ cache, purge, reverse_pii, approve, approvals,
│ │ safety_eval, verify_audit, verify_annex_iv,
│ │ verify_gguf, quickstart
├── config.py → Pydantic validation (21 config models)
│ │ verify_gguf, verify_integrity, quickstart
│ ├── ingest, audit, chat, export, deploy, doctor,
│ │ cache-models, cache-tasks, purge, reverse_pii,
│ │ approve, approvals, reject, safety_eval,
│ │ verify_audit, verify_annex_iv, verify_gguf,
│ │ verify_integrity, quickstart

Comment thread docs/reference/architecture-tr.md Outdated
Comment on lines +15 to +18
│ ├── ingest, audit, chat, export, deploy, doctor,
│ │ cache, purge, reverse_pii, approve, approvals,
│ │ safety_eval, verify_audit, verify_annex_iv,
│ │ verify_gguf, quickstart
├── config.py → Pydantic doğrulama (21 config modeli)
│ │ verify_gguf, verify_integrity, quickstart

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

ASCII ağacındaki subcommand listesi yalnızca 17 öğe içermektedir; bu durum, satır 11'deki güncellenmiş "19 subcommand" açıklamasıyla çelişmektedir. Özellikle reject ve cache-tasks komutları eksiktir ve cache-models komutu cache olarak basitleştirilmiştir.

Bu listenin tüm 19 subcommand'ı açıkça içerecek şekilde güncellenmesi, mimari dokümantasyonunun CLI parser ile tutarlı ve doğru kalmasını sağlayacaktır.

Suggested change
│ ├── ingest, audit, chat, export, deploy, doctor,
│ │ cache, purge, reverse_pii, approve, approvals,
│ │ safety_eval, verify_audit, verify_annex_iv,
│ │ verify_gguf, quickstart
├── config.py → Pydantic doğrulama (21 config modeli)
│ │ verify_gguf, verify_integrity, quickstart
│ ├── ingest, audit, chat, export, deploy, doctor,
│ │ cache-models, cache-tasks, purge, reverse_pii,
│ │ approve, approvals, reject, safety_eval,
│ │ verify_audit, verify_annex_iv, verify_gguf,
│ │ verify_integrity, quickstart

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @cemililik, your pull request is larger than the review limit of 150000 diff characters

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@cemililik, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 2 hours, 59 minutes, and 12 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3f320034-19e3-4805-8d14-971b468c8519

📥 Commits

Reviewing files that changed from the base of the PR and between d9ddc4f and 82978d7.

📒 Files selected for processing (2)
  • docs/usermanuals/en/data/leakage.md
  • docs/usermanuals/tr/data/leakage.md
📝 Walkthrough

Walkthrough

Documentation-only update across ~85 files aligning ForgeLM docs with v0.7.0: adds new forgelm verify-integrity user manual pages (EN + TR) and nav entry, expands the public exit-code contract to include codes 4 and 5, updates training config examples to the new schema (trainer_type, training.galore_*, min_score), clarifies forgelm audit as detect-only with no YAML audit: block, and corrects QMS/compliance accuracy (line citations, staging paths, webhook HMAC clarification, audit-chain filter).

Changes

ForgeLM v0.7.0 Documentation Alignment

Layer / File(s) Summary
New verify-integrity feature documentation
README.md, docs/usermanuals/_meta.yaml, docs/usermanuals/en/compliance/verify-integrity.md, docs/usermanuals/tr/compliance/verify-integrity.md, docs/usermanuals/en/compliance/verify-audit.md, docs/usermanuals/tr/compliance/verify-audit.md, docs/reference/architecture*.md, docs/reference/verify_audit*.md, docs/reference/verify_integrity_subcommand-tr.md, docs/reference/compliance_summary*.md, docs/design/iso27001_soc2_alignment.md
Adds complete EN and TR manual pages for forgelm verify-integrity (SHA-256 manifest, exit codes 0/1/2, mismatch output, pitfalls), registers the page in nav metadata, updates verify-audit example paths from .../compliance/audit_log.jsonl to checkpoints/run/audit_log.jsonl, and propagates verify-integrity references into architecture, compliance summaries, design docs, and README.
Exit-code contract expansion (codes 4 and 5)
docs/design/data_audit_cli_split.md, docs/guides/cicd_pipeline*.md, docs/guides/library_api*.md, docs/guides/troubleshooting*.md, docs/guides/safety_compliance*.md, docs/usermanuals/en/operations/cicd.md, docs/usermanuals/tr/operations/cicd.md, docs/usermanuals/en/data/audit.md, docs/usermanuals/tr/data/audit.md, docs/usermanuals/tr/data/leakage.md, docs/usermanuals/en/data/leakage.md
Adds exit code 4 (human approval pending) and exit code 5 (wizard cancelled) throughout all affected tables and guides; corrects exit code 2 from "audit warnings" to "training error"; redefines forgelm audit exit codes as completion/IO/import-only (severity findings do not set non-zero exit); updates CI jq gating from .verdict to specific report fields.
Configuration schema documentation updates
docs/reference/configuration*.md, docs/usermanuals/en/reference/configuration.md, docs/usermanuals/tr/reference/configuration.md, docs/usermanuals/en/training/*, docs/usermanuals/tr/training/*, docs/guides/alignment*.md, docs/usermanuals/en/evaluation/benchmarks.md, docs/usermanuals/tr/evaluation/benchmarks.md, docs/usermanuals/en/compliance/gdpr.md, docs/usermanuals/tr/compliance/gdpr.md, docs/usermanuals/tr/concepts/data-formats.md, docs/usermanuals/tr/training/simpo.md
Updates all YAML examples to use trainer_type, training.galore_*, model.backend, per_device_train_batch_size, sliding_window_attention, data.dataset_name_or_path, model.load_in_4bit; replaces evaluation.benchmark.floors with min_score; adds new top-level YAML blocks (webhook, risk_assessment, monitoring, retention, pipeline); expands LoRA/compliance parameter tables; clarifies rejected top-level blocks (audit:, ingestion:, deployment:, output:).
Data audit and data pipeline behavior clarification
docs/usermanuals/en/data/*, docs/usermanuals/tr/data/*, docs/guides/data_audit-tr.md, docs/reference/data_ingestion_architecture.md, docs/reference/usage-tr.md
Clarifies forgelm audit is detect-only with no YAML audit: or ingestion: configuration blocks; replaces YAML-driven auto-removal examples with manual jq-based workflows for deduplication, leakage, quality filtering, and PII masking; updates simhash backend performance note; adds tokenizer artifacts to output tree and new [export]/[chat] install extras.
QMS, compliance accuracy, and library API reference fixes
docs/qms/*, docs/reference/soc2_trust_criteria_mapping*.md, docs/reference/supply_chain_security*.md, docs/reference/library_api_reference*.md, docs/usermanuals/en/compliance/model-card.md, docs/usermanuals/tr/compliance/model-card.md, docs/usermanuals/en/compliance/human-oversight.md, docs/usermanuals/tr/compliance/human-oversight.md, docs/guides/gdpr_erasure*.md, docs/guides/pipeline*.md, docs/usermanuals/en/operations/*, docs/usermanuals/tr/operations/*, docs/usermanuals/en/deployment/*, docs/usermanuals/tr/deployment/*, docs/usermanuals/en/getting-started/first-run.md, docs/usermanuals/tr/getting-started/first-run.md
Updates compliance.py line citations to :164; renames staging path from staging_model.<run_id> to final_model.staging.<run_id>/; fixes audit-chain splice filter from notify_* to training.*|pipeline.*|human_approval.*; corrects P6.1 to state webhook bodies are NOT HMAC-signed; updates operator fallback identity to username@hostname; aligns library API result field names (entries_count, final_model_path, result.error); bumps v0.5.5 → v0.7.0 version strings; marks pipeline Phase 14 as shipped.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • HodeTech/ForgeLM#54: Documents changes introduced alongside the Phase 14 pipeline/Annex IV compliance work, including the forgelm verify-integrity verifier and forgelm/compliance.py line references tracked here.
  • HodeTech/ForgeLM#61: The forgelm/compliance.py audit-log verification behavior changes reflected in this PR's updated verify-audit exit-code and AuditLogger.__init__ line citations align with changes in PR #61.
  • HodeTech/ForgeLM#19: The integrity/verification CLI documentation (verify-audit exit-code semantics, forgelm/compliance.py HMAC-chain references) builds directly on the implementation introduced in PR #19.

Poem

🐇 A rabbit hopped through docs so wide,
Stamping SHA-256 with pride,
Exit-five for wizards who fled,
trainer_type where trainer was said,
min_score now guards the gate,
v0.7.0 — shipped on date! 🎉

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/post-pr63-doc-audit

cemililik and others added 2 commits June 15, 2026 19:16
…_yaml_snippets)

Two snippets became ForgeConfig-shaped after the audit fixes and the strict snippet guard then validated them:
- long-context.md (EN+TR) Quick example: replacing datasets: with data: made it a full config; it was missing the required lora: block — added lora{r:16, alpha:32} (verified: 'alpha', not 'lora_alpha').
- reference/configuration.md (EN+TR) 15-block overview: correcting it to the real 15 fields made it match the ForgeConfig shape heuristic; it is a structure map with {...} placeholders, not a runnable config — added the guard's sanctioned '# INVALID:' opt-out so it is skipped.
check_yaml_snippets now OK (33 validated); test_check_yaml_snippets 7 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two review findings on PR #64, both verified against jq behaviour and the live CLI parser:

- deduplication.md (EN+TR): the jq removal command lacked -s/--slurp, so to_entries ran per-line on each object's keys (prompt/response) instead of line indices — it filtered nothing and mangled output. Fixed to 'jq -cs' (slurp + compact), dropped the array wrap, and added a comment. Verified on a 4-row fixture: rows at the duplicate indices are correctly dropped and the output is valid JSONL.

- architecture.md (EN+TR): the prose said 19 subcommands but the ASCII tree listed only 17 (missing reject and cache-tasks; cache-models shown as 'cache'). Updated the tree to the authoritative 19 CLI subcommand names from 'forgelm --help' (hyphenated), and annotated the node with '(19 subcommands)'.

Doc gauntlet green (yaml-snippets, cli-help-consistency, bilingual-parity, anchor, numerical-claims, tr-links, usermanual-self-contained); usermanuals build OK (67 pages EN/TR).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/usermanuals/en/reference/configuration.md (2)

219-223: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Replace relative paths with SPA routes in user manual configuration references.

Both EN and TR configuration reference files use relative file paths in docs/usermanuals/, violating the constraint that all links must be SPA routes (#/<section>/<page>) or absolute HTTPS URLs.

  • docs/usermanuals/en/reference/configuration.md#L219-L223: Link to [release.md](../standards/release.md#deprecation-cadence) should become [release.md](#/standards/release) or an absolute URL.
  • docs/usermanuals/tr/reference/configuration.md#L219-L223: Turkish equivalent link (if using relative path) should also be updated to match the SPA route.

As per coding guidelines for docs/usermanuals/**/*.md, relative ../../../ paths are prohibited.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/usermanuals/en/reference/configuration.md` around lines 219 - 223,
Replace relative file path links with SPA routes in both configuration reference
files. In docs/usermanuals/en/reference/configuration.md at lines 219-223,
replace any relative markdown links (such as links using ../ paths like
[release.md](../standards/release.md#deprecation-cadence)) with SPA route format
`#/`<section>/<page> (e.g., [release.md](`#/standards/release`)) or absolute HTTPS
URLs. Apply the identical fix to the Turkish equivalent in
docs/usermanuals/tr/reference/configuration.md at lines 219-223, ensuring both
files use the same SPA route or absolute URL format, as relative paths are
prohibited in docs/usermanuals/**/*.md files per coding guidelines.

Source: Coding guidelines


219-224: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Replace relative path with SPA route (docs/usermanuals/ user manual constraint).

Line 220 references [release.md](../standards/release.md#deprecation-cadence) — a relative file path. Per coding guidelines, all links inside docs/usermanuals/ must be either SPA routes (#/<section>/<page>) backed by real manual pages, or absolute HTTPS URLs; relative ../../../ references are prohibited.

Change to an SPA route like [release.md](#/standards/release) or an absolute documentation URL. As per coding guidelines for docs/usermanuals/**/*.md: links must follow this constraint.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/usermanuals/en/reference/configuration.md` around lines 219 - 224, The
markdown link reference on line 220 uses a relative path
`../standards/release.md#deprecation-cadence` which violates the constraint for
files in docs/usermanuals/. Replace this relative path link with either an SPA
route format like `#/standards/release` or an absolute HTTPS documentation URL.
Ensure the link maintains the same anchor reference (deprecation-cadence) if
applicable to the target route, and verify the destination page exists in the
manual structure.

Source: Coding guidelines

docs/usermanuals/en/data/leakage.md (1)

44-44: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Stale exit-code documentation in both EN and TR leakage manuals contradicts v0.7.0 contract.

Both docs/usermanuals/en/data/leakage.md and docs/usermanuals/tr/data/leakage.md line 44 incorrectly state that audit exits non-zero if leakage rate exceeds a threshold. However, the Quick examples (line 57 in both files) correctly show exit code: 0/exit kodu: 0, and the PR objectives confirm that v0.7.0 audit exits 0 regardless of finding severity. The lines need identical fixes to reflect the actual behavior.

  • docs/usermanuals/en/data/leakage.md#L44-L44: Replace "If the leakage rate is over the configured threshold, audit exits non-zero" with "Audit exits 0 on completion; severity-based gating is done via jq (see Dataset Audit)."
  • docs/usermanuals/tr/data/leakage.md#L44-L44: Replace "Sızıntı oranı konfigüre eşiği geçerse audit sıfır olmayan exit verir" with Turkish equivalent: "Audit tamamlandıktan sonra 0 ile exit verir; sızıntı bulgularına göre CI kapısı kurmak için JSON raporunu jq ile süzün (bkz. Veri Seti Denetimi)."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/usermanuals/en/data/leakage.md` at line 44, The documentation in both
the English and Turkish leakage manuals contains outdated exit code behavior
that contradicts v0.7.0's actual implementation. In
docs/usermanuals/en/data/leakage.md line 44, replace the text stating that audit
exits non-zero when leakage rate exceeds a threshold with text explaining that
audit exits 0 on completion and that severity-based gating is done via jq with
reference to the Dataset Audit section. In docs/usermanuals/tr/data/leakage.md
line 44, apply the identical fix using the provided Turkish translation that
explains audit exits 0 and severity-based gating through jq filtering.
🧹 Nitpick comments (1)
docs/usermanuals/tr/reference/configuration.md (1)

100-100: ⚡ Quick win

Bilingual consistency: use Turkish link labels throughout Turkish user manuals.

Turkish documentation files contain English link labels within Turkish prose, breaking bilingual consistency:

  • docs/usermanuals/tr/reference/configuration.md#L100: [Experiment Tracking](#/operations/experiment-tracking) should use Turkish label (e.g., [Deney İzleme](#/operations/experiment-tracking)). Check lines 148, 206 and elsewhere for similar inconsistencies.
  • docs/usermanuals/tr/training/distributed.md#L146-L149: [GaLore](#/training/galore), [VRAM Fit-Check](#/operations/vram-fit-check), [CI/CD Hatları](#/operations/cicd) — first two use English labels in Turkish prose; third mixes Turkish and English.

Update all link labels in Turkish user manuals to use Turkish text consistently.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/usermanuals/tr/reference/configuration.md` at line 100, Update link
labels in Turkish user manual files to use Turkish text consistently throughout.
In docs/usermanuals/tr/reference/configuration.md at lines 100, 148, and 206,
replace English link labels such as "Experiment Tracking" with their Turkish
equivalents (e.g., "Deney İzleme") while preserving the URLs. In
docs/usermanuals/tr/training/distributed.md at lines 146-149, replace the
English link labels "GaLore" and "VRAM Fit-Check" with Turkish translations,
while keeping the mixed English-Turkish label "CI/CD Hatları" consistent with
the surrounding Turkish prose by reviewing whether it should be fully Turkish or
if the technical term should remain mixed.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/usermanuals/en/data/leakage.md`:
- Line 44: The documentation in both the English and Turkish leakage manuals
contains outdated exit code behavior that contradicts v0.7.0's actual
implementation. In docs/usermanuals/en/data/leakage.md line 44, replace the text
stating that audit exits non-zero when leakage rate exceeds a threshold with
text explaining that audit exits 0 on completion and that severity-based gating
is done via jq with reference to the Dataset Audit section. In
docs/usermanuals/tr/data/leakage.md line 44, apply the identical fix using the
provided Turkish translation that explains audit exits 0 and severity-based
gating through jq filtering.

In `@docs/usermanuals/en/reference/configuration.md`:
- Around line 219-223: Replace relative file path links with SPA routes in both
configuration reference files. In docs/usermanuals/en/reference/configuration.md
at lines 219-223, replace any relative markdown links (such as links using ../
paths like [release.md](../standards/release.md#deprecation-cadence)) with SPA
route format `#/`<section>/<page> (e.g., [release.md](`#/standards/release`)) or
absolute HTTPS URLs. Apply the identical fix to the Turkish equivalent in
docs/usermanuals/tr/reference/configuration.md at lines 219-223, ensuring both
files use the same SPA route or absolute URL format, as relative paths are
prohibited in docs/usermanuals/**/*.md files per coding guidelines.
- Around line 219-224: The markdown link reference on line 220 uses a relative
path `../standards/release.md#deprecation-cadence` which violates the constraint
for files in docs/usermanuals/. Replace this relative path link with either an
SPA route format like `#/standards/release` or an absolute HTTPS documentation
URL. Ensure the link maintains the same anchor reference (deprecation-cadence)
if applicable to the target route, and verify the destination page exists in the
manual structure.

---

Nitpick comments:
In `@docs/usermanuals/tr/reference/configuration.md`:
- Line 100: Update link labels in Turkish user manual files to use Turkish text
consistently throughout. In docs/usermanuals/tr/reference/configuration.md at
lines 100, 148, and 206, replace English link labels such as "Experiment
Tracking" with their Turkish equivalents (e.g., "Deney İzleme") while preserving
the URLs. In docs/usermanuals/tr/training/distributed.md at lines 146-149,
replace the English link labels "GaLore" and "VRAM Fit-Check" with Turkish
translations, while keeping the mixed English-Turkish label "CI/CD Hatları"
consistent with the surrounding Turkish prose by reviewing whether it should be
fully Turkish or if the technical term should remain mixed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 368b2b3b-6f81-47e6-a273-5a1afa2ed7ac

📥 Commits

Reviewing files that changed from the base of the PR and between 991bbe4 and d9ddc4f.

📒 Files selected for processing (99)
  • README.md
  • docs/design/data_audit_cli_split.md
  • docs/design/gdpr_erasure.md
  • docs/design/iso27001_soc2_alignment.md
  • docs/guides/alignment-tr.md
  • docs/guides/alignment.md
  • docs/guides/cicd_pipeline-tr.md
  • docs/guides/cicd_pipeline.md
  • docs/guides/data_audit-tr.md
  • docs/guides/gdpr_erasure-tr.md
  • docs/guides/gdpr_erasure.md
  • docs/guides/library_api-tr.md
  • docs/guides/library_api.md
  • docs/guides/performance-tr.md
  • docs/guides/pipeline-tr.md
  • docs/guides/pipeline.md
  • docs/guides/safety_compliance-tr.md
  • docs/guides/safety_compliance.md
  • docs/guides/troubleshooting-tr.md
  • docs/guides/troubleshooting.md
  • docs/qms/access_control-tr.md
  • docs/qms/access_control.md
  • docs/qms/encryption_at_rest-tr.md
  • docs/qms/encryption_at_rest.md
  • docs/qms/risk_treatment_plan-tr.md
  • docs/qms/risk_treatment_plan.md
  • docs/qms/sop_incident_response-tr.md
  • docs/qms/sop_incident_response.md
  • docs/qms/statement_of_applicability-tr.md
  • docs/qms/statement_of_applicability.md
  • docs/reference/architecture-tr.md
  • docs/reference/architecture.md
  • docs/reference/compliance_summary-tr.md
  • docs/reference/compliance_summary.md
  • docs/reference/configuration-tr.md
  • docs/reference/data_ingestion_architecture.md
  • docs/reference/library_api_reference-tr.md
  • docs/reference/library_api_reference.md
  • docs/reference/soc2_trust_criteria_mapping-tr.md
  • docs/reference/soc2_trust_criteria_mapping.md
  • docs/reference/supply_chain_security-tr.md
  • docs/reference/supply_chain_security.md
  • docs/reference/usage-tr.md
  • docs/reference/verify_audit-tr.md
  • docs/reference/verify_audit.md
  • docs/reference/verify_integrity_subcommand-tr.md
  • docs/usermanuals/_meta.yaml
  • docs/usermanuals/en/compliance/gdpr.md
  • docs/usermanuals/en/compliance/human-oversight.md
  • docs/usermanuals/en/compliance/model-card.md
  • docs/usermanuals/en/compliance/verify-audit.md
  • docs/usermanuals/en/compliance/verify-integrity.md
  • docs/usermanuals/en/data/audit.md
  • docs/usermanuals/en/data/deduplication.md
  • docs/usermanuals/en/data/ingestion.md
  • docs/usermanuals/en/data/language-detection.md
  • docs/usermanuals/en/data/leakage.md
  • docs/usermanuals/en/data/pii-masking.md
  • docs/usermanuals/en/data/pii-ml.md
  • docs/usermanuals/en/data/quality-filter.md
  • docs/usermanuals/en/deployment/chat.md
  • docs/usermanuals/en/deployment/deploy-targets.md
  • docs/usermanuals/en/evaluation/benchmarks.md
  • docs/usermanuals/en/getting-started/first-run.md
  • docs/usermanuals/en/operations/cicd.md
  • docs/usermanuals/en/operations/iso-soc2-deployer.md
  • docs/usermanuals/en/operations/supply-chain.md
  • docs/usermanuals/en/reference/configuration.md
  • docs/usermanuals/en/training/distributed.md
  • docs/usermanuals/en/training/galore.md
  • docs/usermanuals/en/training/long-context.md
  • docs/usermanuals/en/training/lora.md
  • docs/usermanuals/tr/compliance/gdpr.md
  • docs/usermanuals/tr/compliance/human-oversight.md
  • docs/usermanuals/tr/compliance/model-card.md
  • docs/usermanuals/tr/compliance/verify-audit.md
  • docs/usermanuals/tr/compliance/verify-integrity.md
  • docs/usermanuals/tr/concepts/data-formats.md
  • docs/usermanuals/tr/data/audit.md
  • docs/usermanuals/tr/data/deduplication.md
  • docs/usermanuals/tr/data/ingestion.md
  • docs/usermanuals/tr/data/language-detection.md
  • docs/usermanuals/tr/data/leakage.md
  • docs/usermanuals/tr/data/pii-masking.md
  • docs/usermanuals/tr/data/pii-ml.md
  • docs/usermanuals/tr/data/quality-filter.md
  • docs/usermanuals/tr/deployment/chat.md
  • docs/usermanuals/tr/deployment/deploy-targets.md
  • docs/usermanuals/tr/evaluation/benchmarks.md
  • docs/usermanuals/tr/getting-started/first-run.md
  • docs/usermanuals/tr/operations/cicd.md
  • docs/usermanuals/tr/operations/iso-soc2-deployer.md
  • docs/usermanuals/tr/operations/supply-chain.md
  • docs/usermanuals/tr/reference/configuration.md
  • docs/usermanuals/tr/training/distributed.md
  • docs/usermanuals/tr/training/galore.md
  • docs/usermanuals/tr/training/long-context.md
  • docs/usermanuals/tr/training/lora.md
  • docs/usermanuals/tr/training/simpo.md
💤 Files with no reviewable changes (1)
  • docs/guides/cicd_pipeline-tr.md

…eview)

leakage.md (EN+TR) line 44 claimed 'forgelm audit exits non-zero if the leakage rate is over the configured threshold'. Verified against forgelm/cli/subcommands/_audit.py: audit exits 0 on successful completion regardless of findings, and only non-zero on an input/config error (EXIT_CONFIG_ERROR) or I/O failure (EXIT_TRAINING_ERROR) — there is no leakage-rate gate. Corrected to match the established wording in data/audit.md and point to the jq-based CI gate (#/data/audit).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cemililik cemililik merged commit 9b964b6 into main Jun 15, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant