diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e547232..e3b75537 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -186,6 +186,20 @@ jobs: - name: Import-origin guard run: python3 tools/check_import_origin.py --strict + # testing.md forbids `|| true` in CI, but only the documented gauntlets + # were checked, and only for the literal `|| true`: appending it to the + # Node test command below left every wiring test green. This guard + # parses every run: block and the three gauntlets with a small shell + # lexer, and fails when a required command (pytest, node --test, ruff, + # mypy, the forgelm CLI, a tools/ guard) can fail without failing its + # step: an `||` fallback that can exit 0, a pipe without pipefail, + # set +e, continue-on-error, or a failure errexit ignores inside an + # &&/|| list or a { } group. bandit and pip-audit keep `|| true` only + # when the next command is their severity helper reading the same + # report. + - name: CI failure-masking guard (strict) + run: python3 tools/check_ci_failure_masking.py --strict + - name: Browser wizard regression tests run: node --test tests/site/*.test.cjs diff --git a/AGENTS.md b/AGENTS.md index d3b0470b..ce249c7d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -85,7 +85,7 @@ ForgeLM/ │ # export, inference, results, utils, __main__, │ # _pypdf_normalise, _script_sanity, │ # _strip_pattern -├── tests/ # 128 test modules; count grows over time (run `ls tests/test_*.py | wc -l` for current) +├── tests/ # 130 test modules; count grows over time (run `ls tests/test_*.py | wc -l` for current) ├── tools/ # CI guards: check_anchor_resolution, │ # check_bilingual_parity, check_cli_help_consistency, │ # check_field_descriptions, check_no_analysis_refs, @@ -173,6 +173,7 @@ Default workflow for a non-trivial change: python3 tools/check_http_discipline.py && \ python3 tools/check_no_mutation_artifacts.py --strict && \ python3 tools/check_strict_json_writers.py --strict && \ + python3 tools/check_ci_failure_masking.py --strict && \ python3 tools/check_bilingual_parity.py --strict && \ python3 tools/check_bilingual_code_blocks.py --strict && \ python3 tools/check_anchor_resolution.py --strict && \ @@ -216,7 +217,7 @@ Default workflow for a non-trivial change: does not cover the `tools/check_*.py` guards that import `forgelm` with `sys.path[0] == tools/`. - All 31 must pass — the exact set `.github/workflows/ci.yml` + All 32 must pass — the exact set `.github/workflows/ci.yml` runs, held there by `tests/test_guard_wiring.py`, which now compares the two inventories in **both** directions (the usermanual-schema-drift guard — `check_usermanual_schema_drift.py --strict` — validates that every @@ -347,6 +348,25 @@ Default workflow for a non-trivial change: in-repo `blob/main/` URL is checked by stripping the prefix, so converting a link to absolute form cannot trade a PyPI 404 for a universal one. + The CI failure-masking guard (`check_ci_failure_masking.py --strict`) + closes the gap the gauntlet's own `|| true` check left open. That check, + `test_no_gauntlet_short_circuits_on_failure` in + `tests/test_guard_wiring.py`, read only the three gauntlet blocks (in + CLAUDE.md, AGENTS.md and CONTRIBUTING.md), and only for the literal + `|| true`, so appending `|| true` to `ci.yml`'s `node --test` step left + every wiring test green — as did `|| :`, `|| exit 0`, `| tee` without + `pipefail`, `set +e`, a step-level `continue-on-error`, or + `cmd && echo ok` followed by another line (bash's errexit ignores a + failure inside an `&&` / `||` list). The guard parses every workflow + `run:` block and this block with a small POSIX-shell parser + (`tools/_shell_syntax.py`), so comments, quoted prose and `python -c` + programs are never read as commands, and checks that a failing required + command — `pytest`, `node --test`, `ruff`, `mypy`, the `forgelm` CLI or a + `tools/` guard — still fails its step. It accepts only the shapes it + models, so keep required commands plain. It catches accidental masking, + not deliberate evasion; `docs/standards/testing.md` lists what is beyond + it. The bandit / pip-audit `|| true` exception holds only when the very + next command is the severity helper reading the same report. ## Branches, issues and the project board diff --git a/CHANGELOG.md b/CHANGELOG.md index 818f6667..7c510f6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,10 @@ All notable changes to ForgeLM are documented here. provenance. Both wizards explicitly record the selected `none` exporter (#93). - Accept case-insensitive `env:` references with surrounding whitespace, lowercase letters and initial underscores in both CLI wizard monitoring and webhook inputs; reject malformed names. +- Cite Annex IV points as `§N` throughout, as the Turkish pages and most English ones already did: + the EN/TR `verify-annex-iv` reference and user-manual field tables (`Annex IV §2(c)`, `§9`, + `§2(g) / §4`, `§5`), the ISO 27001 mappings, the wizard hint, and the verify module's own field + table and comments (refs #948). - Omit Pydantic `input_value` / `input_type` excerpts from all rendered `ForgeConfig` validation errors, preserving field paths and reasons. `MonitoringConfig` also applies this protection standalone; other standalone submodels retain their existing diagnostics (#93). @@ -43,6 +47,84 @@ All notable changes to ForgeLM are documented here. ### Fixed +- Use the Regulation's own Article 72 terms for post-market monitoring in the German and Spanish + wizard copy ("Beobachtung nach dem Inverkehrbringen", "vigilancia poscomercialización"), and restore + the "metadata" the French and Spanish hints had dropped, so every locale again separates ForgeLM's + optional record from the provider's monitoring system and the Annex IV material. Correct citation, + article and gender slips in the touched German, French and Spanish strings, and use one German term + for the external stack. The new validation and interval keys keep their English fallback; native + review of the deferred locales remains open (refs #948). +- Say what Annex IV §9 asks for: a detailed description of the post-market monitoring system, its + plan included. The wizard hint in every locale and the EN/TR configuration and compliance pages said + it "includes the detailed plan"; German, French and Spanish now follow the Regulation's wording, and + the Chinese line awaits native review. French webhook copy says "alertes", and the Chinese webhook + card uses full-width punctuation and 端点 throughout (refs #948). +- Label the Annex IV `technical_documentation` key §1(c) / §3, the software version and the known + limitations it holds, instead of §3-5 "design and development methodology", in the verifier's field + table, the writer's comment and the EN/TR reference and user-manual tables. The Annex IV page no + longer calls `performance_metrics` the bundle's §7: no key holds the copy of the EU declaration of + conformity that §8 asks for, which the provider draws up under Article 47. Only descriptions and + comments change, here and in the `§N` citations above: no output of the verifier or the writer does + (refs #539). +- Apply the owner's Turkish terminology across the site and the Turkish docs: "piyasaya arz sonrası + izleme" (and "piyasaya arz" for placing on the market), "AB" and the Regulation as "(AB) 2024/1689 + sayılı Tüzük", "Annex IV §N" (never "Ek IV"), "exporter" kept in English, "alarm" for a monitoring + or threshold alert, "bildirim" for a webhook message and "uyarı" for a log warning, "EU AI Act" in + full, and the straight apostrophe throughout; "trend izleme", the user manual's term, replaces + "trend takibi". The `localization.md` glossary records the owner's decisions; tests pin them in the + site strings and keep their superseded spellings out of the Turkish docs (refs #948). +- Name every browser-wizard field by its visible caption. Text, number, slider, select and textarea + captions now point at their control through unique, stable `id`/`for` pairs, so screen readers + no longer announce a placeholder or nothing, and clicking a caption focuses its field. The LoRA + method caption names its group of method buttons; checkbox labels keep wrapping their toggles. + Keyboard focus now stays on the toggle, select, option card or section header that re-renders a + step, and on the field being edited, caret included, when another tab's change re-renders it, + without scrolling; a control the re-render removes leaves focus in the dialog instead of the page + behind it. "Required for risk tier" badges read as a separate word, and sliders show a keyboard + focus ring (#950). +- Keep the browser wizard's open sections and flagged errors when another tab updates it. The update + replaced this tab's state with the saved one, which holds neither, so the Compliance step's sections + closed and its errors vanished. Open sections and flagged steps now stay with their tab and are never + saved, so two open tabs cannot overwrite each other's. A wizard reopened in a tab whose copy is older + starts from the newer saved answers instead of writing its own copy over them; another tab clearing + all site storage resets it like the wizard's own Reset; and a saved step that is not a step number + starts the wizard over instead of leaving it blank (refs #557, #683). +- Render the browser wizard's Compliance step again. It called a helper that only three other step + renderers declared, so every visit threw a `ReferenceError` before the Article 9 risk-assessment, + benchmark and LLM-judge controls appeared, and strict risk tiers could not complete the step. + The helper is now shared, and every step has DOM-level render coverage. Turning auto-revert on or + off now shows or hides its loss threshold at once (F-W1-SITE-01, #879). +- Clear the browser wizard's error on a model id or dataset name as soon as the corrected value + validates. The input handlers read the "before" state after storing the new value, so the red + border, `aria-invalid="true"` and the error message stayed until something else re-rendered the + step. The error now clears in place, keeping focus and the caret in the field, and comes back in + place when a corrected value is broken again; while the value is invalid the message names the + check it fails now (`abc` reads "format", not "required"). All 19 validated fields share this + behaviour (#952). +- Show the code in the browser wizard's GRPO reward-model tip as code; its `` tags appeared as + text in every language. The same happened on the home, features, quickstart and compliance pages, + whose strings with `` or `&` were set as plain text; they now render as markup, and a test + keeps markup out of the strings a page shows as plain text. +- Stop `quickstart.html` from scrolling sideways on phones and tablets. A step's grid column could + not shrink below its longest terminal line, so from 320 to 768 px wide the page laid out about + 990 px wide, with the menu button off screen; on desktop one step card overflowed its container. + The column can now shrink, so a long line scrolls inside its code block, which already allowed it + (#953). +- Stop the site from laying out wider than a phone. `compliance.html`'s article cards grew to their + longest file path and long inline code could not break; on the German, French and Spanish home + pages a button label and the pipeline stages, and on the German privacy and terms pages the title, + did the same, the quickstart spotlight cut off its German and Turkish text, and at 320 px a terminal + block's copy button was clipped. Columns now shrink (`minmax(0, 1fr)`), headings wrap long words, + and on phones inline code may break anywhere and buttons wrap their labels; wider screens keep code + whole. The contact grid and use-case rows get the same columns. At 320, 375, 768 and 1280 px no page + is wider than the screen or cuts content off in any of the six site languages; on desktop only the + quickstart steps, whose long lines now scroll inside their code blocks, and the compliance cards' + equal columns change. +- Make the browser wizard easier to read and operate: a focused invalid field gets an outline instead + of keeping only its red border, the light theme's focus colour (2.3:1 on white) on fields, sliders + and section headers and its error text (3.8:1) give way to darker shades that pass, locked toggles + keep their size beside long captions, + and the "required for risk tier" badge is styled as a pill. - Restore the monitoring-plan evidence contract: `monitoring.*` declares an external plan, labelled `declarative_only: true`; ForgeLM runs no exporter, drift detector, alert, or scheduler. Warn once per config-file load for an enabled exporter declaration, without repeating during @@ -193,6 +275,18 @@ All notable changes to ForgeLM are documented here. ### Added +- **`tools/check_ci_failure_masking.py`** (32nd CI guard) fails CI when a required command's failure + would not fail its step. The only failure-masking check read the three documented gauntlets, and + only for the literal `|| true`, so appending `|| true` to the validation job's `node --test` step left + CI green. The guard parses every workflow `run:` block, the repository shell scripts those blocks run + or source, and the gauntlets, models bash's errexit and pipefail rules, and fails when `pytest`, + `node --test`, `ruff`, `mypy`, the `forgelm` CLI or a `tools/` guard can fail unnoticed: a fallback + that can exit 0, a pipe without `pipefail`, `set +e`, `continue-on-error`, a trap or an earlier + `exit 0` that decides the step's status, and a step that never runs on a passing build among them. + It accepts only the shapes it models, so keep required commands plain; `docs/standards/testing.md` + lists them, and what is beyond a guard that targets accidental masking. Bandit and pip-audit keep + `|| true` only when the next command is their severity helper reading the same report. Its shell + parser lives in `tools/_shell_syntax.py` (#951). - Add a recorded CPU validation, data audit, and audit-log verification sample with EN/TR provenance and limitations; link it from the README and website, expose installation and dry-run quickstart commands in the hero, and make contributor entry points visible. diff --git a/CLAUDE.md b/CLAUDE.md index 67197574..518a3ea4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -85,7 +85,7 @@ ForgeLM/ │ # export, inference, results, utils, __main__, │ # _pypdf_normalise, _script_sanity, │ # _strip_pattern -├── tests/ # 128 test modules; count grows over time (run `ls tests/test_*.py | wc -l` for current) +├── tests/ # 130 test modules; count grows over time (run `ls tests/test_*.py | wc -l` for current) ├── tools/ # CI guards: check_anchor_resolution, │ # check_bilingual_parity, check_cli_help_consistency, │ # check_field_descriptions, check_no_analysis_refs, @@ -173,6 +173,7 @@ Default workflow for a non-trivial change: python3 tools/check_http_discipline.py && \ python3 tools/check_no_mutation_artifacts.py --strict && \ python3 tools/check_strict_json_writers.py --strict && \ + python3 tools/check_ci_failure_masking.py --strict && \ python3 tools/check_bilingual_parity.py --strict && \ python3 tools/check_bilingual_code_blocks.py --strict && \ python3 tools/check_anchor_resolution.py --strict && \ @@ -216,7 +217,7 @@ Default workflow for a non-trivial change: does not cover the `tools/check_*.py` guards that import `forgelm` with `sys.path[0] == tools/`. - All 31 must pass — the exact set `.github/workflows/ci.yml` + All 32 must pass — the exact set `.github/workflows/ci.yml` runs, held there by `tests/test_guard_wiring.py`, which now compares the two inventories in **both** directions (the usermanual-schema-drift guard — `check_usermanual_schema_drift.py --strict` — validates that every @@ -347,6 +348,25 @@ Default workflow for a non-trivial change: in-repo `blob/main/` URL is checked by stripping the prefix, so converting a link to absolute form cannot trade a PyPI 404 for a universal one. + The CI failure-masking guard (`check_ci_failure_masking.py --strict`) + closes the gap the gauntlet's own `|| true` check left open. That check, + `test_no_gauntlet_short_circuits_on_failure` in + `tests/test_guard_wiring.py`, read only the three gauntlet blocks (in + CLAUDE.md, AGENTS.md and CONTRIBUTING.md), and only for the literal + `|| true`, so appending `|| true` to `ci.yml`'s `node --test` step left + every wiring test green — as did `|| :`, `|| exit 0`, `| tee` without + `pipefail`, `set +e`, a step-level `continue-on-error`, or + `cmd && echo ok` followed by another line (bash's errexit ignores a + failure inside an `&&` / `||` list). The guard parses every workflow + `run:` block and this block with a small POSIX-shell parser + (`tools/_shell_syntax.py`), so comments, quoted prose and `python -c` + programs are never read as commands, and checks that a failing required + command — `pytest`, `node --test`, `ruff`, `mypy`, the `forgelm` CLI or a + `tools/` guard — still fails its step. It accepts only the shapes it + models, so keep required commands plain. It catches accidental masking, + not deliberate evasion; `docs/standards/testing.md` lists what is beyond + it. The bandit / pip-audit `|| true` exception holds only when the very + next command is the severity helper reading the same report. ## Branches, issues and the project board diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dbf0da6a..bab77ca5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -172,6 +172,7 @@ python3 tools/check_import_origin.py --strict && \ python3 tools/check_http_discipline.py && \ python3 tools/check_no_mutation_artifacts.py --strict && \ python3 tools/check_strict_json_writers.py --strict && \ + python3 tools/check_ci_failure_masking.py --strict && \ python3 tools/check_bilingual_parity.py --strict && \ python3 tools/check_bilingual_code_blocks.py --strict && \ python3 tools/check_anchor_resolution.py --strict && \ @@ -214,7 +215,7 @@ every later step depends on — that the `forgelm` being imported is the one you just edited — and `-m` alone does not cover the `tools/check_*.py` guards that import `forgelm` with `sys.path[0] == tools/`. -All 31 must pass — the exact set `.github/workflows/ci.yml` runs. +All 32 must pass — the exact set `.github/workflows/ci.yml` runs. `tests/test_guard_wiring.py` compares the two inventories in **both** directions across this file, `CLAUDE.md` and `AGENTS.md`, so wiring a new guard into CI without listing it here fails the build. The four after the @@ -246,7 +247,7 @@ ForgeLM is a single-package layout: a mix of single-file modules and five focused sub-packages (`forgelm/cli/` post-Phase-15 split, `forgelm/data_audit/` post-Phase-14 split, `forgelm/wizard/` from Phase 22, `forgelm/safety/` from the post-v0.9.1 split and `forgelm/verify/` from -Phase 16 S1) under `forgelm/`, 128 test files +Phase 16 S1) under `forgelm/`, 130 test files under `tests/` (collected-test count grows over time — run `pytest --collect-only -q` for current), plus `configs/`, `docs/`, `tools/` (CI guards), and `notebooks/`. For the authoritative module-by-module map diff --git a/docs/design/iso27001_soc2_alignment.md b/docs/design/iso27001_soc2_alignment.md index 19003e2f..117abf20 100644 --- a/docs/design/iso27001_soc2_alignment.md +++ b/docs/design/iso27001_soc2_alignment.md @@ -157,7 +157,7 @@ Each row classifies coverage as one of: | A.5.5 Contact with authorities | OOS | — | Establish regulator contact for serious-incident reporting (EU AI Act Art. 73) | ForgeLM cannot interface with regulators | | A.5.6 Contact with special interest groups | OOS | — | ML safety / red-team community engagement | Out of scope | | A.5.7 Threat intelligence | OOS | — | Subscribe to ML supply-chain CVE feeds, model-poisoning advisories | Out of scope | -| A.5.8 Information security in project management | FL-helps | `risk_assessment` config block; F-compliance-110 strict gate; Annex IV point 5 metadata | Embed ForgeLM dry-run + safety-eval gates in project sign-off checklist | Project methodology deployer-side | +| A.5.8 Information security in project management | FL-helps | `risk_assessment` config block; F-compliance-110 strict gate; Annex IV §5 metadata | Embed ForgeLM dry-run + safety-eval gates in project sign-off checklist | Project methodology deployer-side | | A.5.9 Inventory of information & associated assets | FL-helps | `data_provenance.json`, `model_integrity.json`, SBOM | Maintain corporate asset register linking model SHA + data fingerprint | Org asset registry deployer-side | | A.5.10 Acceptable use of information | OOS | — | Acceptable-use policy for trained-model outputs | Out of scope | | A.5.11 Return of assets | OOS | — | Decommissioning of deployed models | Out of scope | diff --git a/docs/guides/cicd_pipeline-tr.md b/docs/guides/cicd_pipeline-tr.md index 0fe0afad..f7afdfc5 100644 --- a/docs/guides/cicd_pipeline-tr.md +++ b/docs/guides/cicd_pipeline-tr.md @@ -17,7 +17,7 @@ ForgeLM'in CI/CD-yerlisi tasarımı şunları sağlar: - **JSON çıktı**: Makine-okunabilir sonuçlar için `--output-format json` - **Dry-run doğrulama**: GPU olmadan `--dry-run` doğrular - **Webhook bildirimleri**: Başlangıç/başarı/hata için gerçek-zamanlı - Slack/Teams alarmları + Slack/Teams bildirimleri --- diff --git a/docs/guides/gdpr_erasure-tr.md b/docs/guides/gdpr_erasure-tr.md index 4971c6bf..64a1bb16 100644 --- a/docs/guides/gdpr_erasure-tr.md +++ b/docs/guides/gdpr_erasure-tr.md @@ -1,6 +1,6 @@ # GDPR Silinme Hakkı Rehberi (`forgelm purge`) -> **EU Genel Veri Koruma Tüzüğü Madde 17** ("unutulma hakkı") veri +> **AB Genel Veri Koruma Tüzüğü Madde 17** ("unutulma hakkı") veri > sahibine, sorumlunun kendisi hakkında tuttuğu kişisel verilerin > silinmesini isteme hakkı verir. ForgeLM'in `forgelm purge` > subcommand'ı, bir ForgeLM dağıtımının ürettiği veya tükettiği eğitim diff --git a/docs/guides/human_approval_gate-tr.md b/docs/guides/human_approval_gate-tr.md index 8501fe62..4e60e0dd 100644 --- a/docs/guides/human_approval_gate-tr.md +++ b/docs/guides/human_approval_gate-tr.md @@ -173,7 +173,7 @@ Yazdırılan herhangi bir satır ihlaldir. Temiz bir koşumda hiçbir şey yazd ## 7. Timeout politikası -ForgeLM bugün kapıda otomatik timeout zorunlu kılmaz (Phase 9 kapıyı ship eder; Phase 9.5 / v0.6.0+ auto-fail timer'ını ekler). Bugün CI kuran operatörler bekleyen koşumları stale durumdayken uyarmak için §3'teki polling deseni kullanmalı: +ForgeLM bugün kapıda otomatik timeout zorunlu kılmaz (Phase 9 kapıyı ship eder; Phase 9.5 / v0.6.0+ auto-fail timer'ını ekler). Bugün CI kuran operatörler, stale kalan bekleyen koşumlar için alarm vermek üzere §3'teki polling desenini kullanmalı: ```bash # CI cron — herhangi bir onay 24h+ pending ise eskalasyon. diff --git a/docs/guides/safety_compliance-tr.md b/docs/guides/safety_compliance-tr.md index eae6ef2c..547edf2f 100644 --- a/docs/guides/safety_compliance-tr.md +++ b/docs/guides/safety_compliance-tr.md @@ -188,7 +188,7 @@ Güvenlik sonuçları `checkpoints/safety/safety_results.json`'a kaydedilir: } ``` -### Cross-run trend takibi +### Cross-run trend izleme Her güvenlik değerlendirmesi `checkpoints/safety/safety_trend.jsonl`'a eklenir: @@ -290,7 +290,7 @@ Değişikliğin Madde 1(39)(b) hükmüyle eklenen Madde 111(4), **2 Ağustos 202 sunulmuş, sentetik ses, görüntü, video veya metin üreten sistemlerin (genel amaçlı YZ sistemleri dahil) sağlayıcılarına, Madde 50(2)'deki istisnalar saklı kalmak üzere, hükme uyum için **2 Aralık 2026**'ya kadar süre tanır. Bölüm V'teki genel amaçlı -YZ modeli yükümlülükleri **2 Ağustos 2025**'ten itibaren uygulanır; bu tarihten önce piyasaya sunulmuş +YZ modeli yükümlülükleri **2 Ağustos 2025**'ten itibaren uygulanır; bu tarihten önce piyasaya arz edilmiş modeller için geçiş tarihi 2 Ağustos 2027'dir ([(AB) 2024/1689 sayılı Tüzük, Madde 113 ve 111(3)](https://eur-lex.europa.eu/eli/reg/2024/1689/oj/eng)). Mevcut yüksek riskli sistemlere ilişkin Madde 111(2) dahil diğer geçiş hükümleri de uygulanabilirliği etkileyebilir. @@ -302,7 +302,7 @@ Dağıtımınıza uygulanacak kuralları yetkin bir hukuk danışmanıyla değer - Makine-okunabilir uyumluluk kanıtı - Eğitim verisi kaynağı (provenance) takibi - Risk sınıflandırması -- Pazar sonrası izleme sistemini işletin; ForgeLM yalnızca harici plan metadata’sını kaydeder +- Piyasaya arz sonrası izleme sistemini işletin; ForgeLM yalnızca harici plan metadata'sını kaydeder ### Uyumluluk artefaktları diff --git a/docs/product_strategy-tr.md b/docs/product_strategy-tr.md index 20be39be..97d465cd 100644 --- a/docs/product_strategy-tr.md +++ b/docs/product_strategy-tr.md @@ -20,7 +20,7 @@ ForgeLM, LLM ince ayarını (fine-tuning) **güvenli, denetlenebilir ve tekrarla - **Llama Guard 3** güvenlik değerlendirmesi eğitim pipeline'ının içinde çalışır; eğitim sonrası değil - **3 katmanlı güvenlik kapısı**: ikili geçer/kalır + güven ağırlıklı skor + 14 zarar kategorisinde (S1-S14) önem analizi - **Otomatik geri alma (auto-revert)**: güvenlik regresyonu tespit edilirse, çıktılar yazılmadan önce eğitim sonucu otomatik olarak reddedilir -- **Çalıştırmalar arası trend takibi**: güvenlik skorları her çalıştırmada loglanır; zamanla oluşan kayan bozulma yakalanır +- **Çalıştırmalar arası trend izleme**: güvenlik skorları her çalıştırmada loglanır; zamanla oluşan kayan bozulma yakalanır - **`auto_revert_on_safety_failure`** config alanı doğrudan YAML'a yazılır — CI'da güvenlik kapısı uygulamak için özel script gerekmez ### 2. Uyumluluk Yerleşik (Compliance-Native) @@ -37,7 +37,7 @@ tüm hükümlerinin bu Kısım B sistemlerine uygulanacağı anlamına gelmez. Diğer yükümlülükler ve geçiş hükümleri için ayrı tarihler geçerlidir. ForgeLM, uyumluluk incelemesini destekleyen dokümantasyon artefaktları üretir; bu artefaktlar hukuki uyumluluğu sağlamaz. -- **EU AI Act Madde 9-17 + Ek IV** — her madde yapılandırılmış bir çıktı dosyasına karşılık gelir: +- **EU AI Act Madde 9-17 + Annex IV** — her madde yapılandırılmış bir çıktı dosyasına karşılık gelir: - Mad. 9 Risk Değerlendirmesi → `risk_assessment.json` - Mad. 10 Veri Yönetişimi → `data_governance_report.json` - Mad. 11 Teknik Dokümantasyon → `annex_iv_metadata.json` @@ -69,7 +69,7 @@ ForgeLM'in temel mimari kimliği: bir YAML dosyası bir eğitim çalışmasını **ForgeLM'i neden seçerler:** Anlamlı çıkış kodları doğrudan pipeline dallanma mantığına karşılık gelir. `--dry-run`, GPU kuyruğuna alınmadan config'i doğrular. Yapılandırılmış JSON çıktı, gözlemlenebilirlik platformlarıyla entegre olur. Webhook bildirimleri (Slack/Teams) mevcut olay yönetimi akışlarına bağlanır. -**Temsili iş akışı:** `git push → GitHub Actions tetiklenir → forgelm --config job.yaml → çıkış kodu → dağıt veya uyarı ver` +**Temsili iş akışı:** `git push → GitHub Actions tetiklenir → forgelm --config job.yaml → çıkış kodu → dağıt veya alarm ver` ### İkincil: Düzenlemeye Tabi Sektörlerdeki ML Mühendisleri @@ -102,7 +102,7 @@ Açıkça kapsam dışı — şimdi ve uzun vadede: | Boyut | ForgeLM | LLaMA-Factory | Unsloth | Axolotl | |---|---|---|---|---| | Güvenlik değerlendirmesi (entegre) | ✅ Llama Guard S1-S14 | ❌ | ❌ | ❌ | -| EU AI Act uyumluluğu | ✅ Mad. 9-17 + Ek IV | ❌ | ❌ | ❌ | +| EU AI Act uyumluluğu | ✅ Mad. 9-17 + Annex IV | ❌ | ❌ | ❌ | | CI/CD-native çıkış kodları | ✅ 0/1/2/3/4/5/6 | Kısmi | ❌ | Kısmi | | Web UI | ❌ (kasıtlı) | ✅ | ✅ Studio | ❌ | | Hız optimizasyonu | Standart | Standart | ✅ 2-5x | Standart | @@ -150,7 +150,7 @@ EU AI Act'in uygulanabilirliği yükümlülüğe ve sisteme göre değerlendiril ilişkin Bölüm III tarihleri Ek III için 2 Aralık 2027, Ek I için 2 Ağustos 2028'dir; [(AB) 2026/1744 sayılı Tüzük, Madde 1(40)(b)](https://eur-lex.europa.eu/eli/reg/2026/1744/oj/eng) kapsamı ve istisnaları belirler. Madde 50'deki şeffaflık yükümlülükleri genel olarak 2 Ağustos 2026'dan -itibaren uygulanır; Madde 111(4), 2 Ağustos 2026'dan önce piyasaya sunulmuş, sentetik ses, görüntü, +itibaren uygulanır; Madde 111(4), 2 Ağustos 2026'dan önce piyasaya arz edilmiş, sentetik ses, görüntü, video veya metin üreten sistemlerin (genel amaçlı YZ sistemleri dahil) sağlayıcılarına Madde 50(2)'ye uyum için 2 Aralık 2026'ya kadar süre tanır; bu hükmün istisnaları saklıdır. Madde 2(2)'nin Ek I, Kısım B için belirlediği ayrı kapsam kuralı da geçerlidir. diff --git a/docs/qms/sop_data_management-tr.md b/docs/qms/sop_data_management-tr.md index 8e5a8f08..782550cd 100644 --- a/docs/qms/sop_data_management-tr.md +++ b/docs/qms/sop_data_management-tr.md @@ -36,7 +36,7 @@ Model eğitimi, validation ve değerlendirme için kullanılan tüm veri kümele ```yaml data: governance: - known_biases: "Veri kümesi EU bölgesindeki İngilizce konuşan müşterilere meyilli" + known_biases: "Veri kümesi AB bölgesindeki İngilizce konuşan müşterilere meyilli" ``` ### 4.2 Kişisel Veri diff --git a/docs/qms/sop_incident_response-tr.md b/docs/qms/sop_incident_response-tr.md index 1c2b0f8a..b1aabf3d 100644 --- a/docs/qms/sop_incident_response-tr.md +++ b/docs/qms/sop_incident_response-tr.md @@ -28,8 +28,8 @@ yanında kapsar. ### 3.1 Tespit Olaylar şunlardan tespit edilebilir: -- Harici servis/izleme altyapınızdan gelen runtime uyarıları (`monitoring.*` uyumluluk manifestine - yalnızca bir plan kaydeder; ForgeLM drift tespit etmez veya izleme uyarısı göndermez) +- Harici servis/izleme altyapınızdan gelen runtime alarmları (`monitoring.*` uyumluluk manifestine + yalnızca bir plan kaydeder; ForgeLM drift tespit etmez veya izleme alarmı göndermez) - Kullanıcı/operatör raporları - Periyodik kalite denetimleri - ForgeLM webhook arıza bildirimleri @@ -262,7 +262,7 @@ olabilir. **Tetik:** Sahip silme talebi gönderir. -**Önem:** Medium (regülasyon deadline 30 gün; bazı EU üye +**Önem:** Medium (regülasyon deadline 30 gün; bazı AB üye ülkeleri daha kısa yanıt gerektirir). **Runbook:** @@ -290,7 +290,7 @@ otoritelerine raporlamalıdır. "Ciddi bir olay" şunları içerir: - Temel haklara ciddi ihlal - Kritik altyapıya ciddi aksaklık -**Rapor:** Etkilenen EU üye ülkesinin ulusal piyasa gözetim otoritesi +**Rapor:** Etkilenen AB üye ülkesinin ulusal piyasa gözetim otoritesi **Süre:** Farkına varıldıktan sonraki 15 gün içinde ## 6. İnceleme diff --git a/docs/qms/statement_of_applicability-tr.md b/docs/qms/statement_of_applicability-tr.md index 6bc99bf0..ac90f3c5 100644 --- a/docs/qms/statement_of_applicability-tr.md +++ b/docs/qms/statement_of_applicability-tr.md @@ -35,7 +35,7 @@ operatör-tarafı eylem. | A.5.5 Yetkililerle iletişim | YES | EU AI Act Md. 73 ciddi-olay raporlama | Düzenleyici contact listesi tut | | A.5.6 Özel ilgi gruplarıyla iletişim | YES | ML safety / red-team topluluğu | İlgili threat intel'e abone ol | | A.5.7 Tehdit istihbaratı | YES | ML supply-chain CVE feed'leri, model-poisoning advisory'leri | İlgili feed'lere abone ol | -| A.5.8 Proje yönetiminde bilgi güvenliği | YES | `risk_assessment` config + F-compliance-110 strict gate; Annex IV point 5 metadata | Proje sign-off'unda göm | +| A.5.8 Proje yönetiminde bilgi güvenliği | YES | `risk_assessment` config + F-compliance-110 strict gate; Annex IV §5 metadata | Proje sign-off'unda göm | | A.5.9 Bilgi ve diğer ilişkili varlıkların envanteri | YES | `data_provenance.json`, `model_integrity.json`, SBOM | Kurumsal asset register tut | | A.5.10 Bilginin kabul edilebilir kullanımı | YES | Standart kurumsal AUP | Benimse | | A.5.11 Varlıkların iadesi | YES | Dağıtılan modellerin / eğitim host'larının decommissioning'i | Benimse | diff --git a/docs/qms/statement_of_applicability.md b/docs/qms/statement_of_applicability.md index e19021dd..b78bc887 100644 --- a/docs/qms/statement_of_applicability.md +++ b/docs/qms/statement_of_applicability.md @@ -34,7 +34,7 @@ contribution → deployer-side action. | A.5.5 Contact with authorities | YES | EU AI Act Art. 73 serious-incident reporting | Maintain regulator contact list | | A.5.6 Contact with special interest groups | YES | ML safety / red-team community | Subscribe to relevant threat intel | | A.5.7 Threat intelligence | YES | ML supply-chain CVE feeds, model-poisoning advisories | Subscribe to relevant feeds | -| A.5.8 Information security in project management | YES | `risk_assessment` config + F-compliance-110 strict gate; Annex IV point 5 metadata | Embed in project sign-off | +| A.5.8 Information security in project management | YES | `risk_assessment` config + F-compliance-110 strict gate; Annex IV §5 metadata | Embed in project sign-off | | A.5.9 Inventory of information and other associated assets | YES | `data_provenance.json`, `model_integrity.json`, SBOM | Maintain corporate asset register | | A.5.10 Acceptable use of information | YES | Standard corporate AUP | Adopt | | A.5.11 Return of assets | YES | Decommissioning of deployed models / training hosts | Adopt | diff --git a/docs/reference/architecture-tr.md b/docs/reference/architecture-tr.md index 76978c09..634033f7 100644 --- a/docs/reference/architecture-tr.md +++ b/docs/reference/architecture-tr.md @@ -96,7 +96,7 @@ ForgeLM/ │ ├── deepspeed/ # ZeRO-2, ZeRO-3, ZeRO-3+Offload ön ayarları │ └── safety_prompts/ # Yerleşik adversarial prompt kütüphanesi (140 prompt, 6 kategori) ├── notebooks/ # 10 Colab-uyumlu Jupyter notebook -├── tests/ # 128 test modülü +├── tests/ # 130 test modülü ├── tools/ # CI guard'ları: bilingual_parity, anchor_resolution, │ # cli_help_consistency, yaml_snippets, │ # audit_event_catalog, library_api_doc, @@ -133,7 +133,7 @@ Hafif `TrainResult` dataclass — torch/transformers olmadan import edilebilir. EleutherAI `lm-evaluation-harness`'i sarar. Yapılandırılabilir benchmark görevleri çalıştırır, accuracy metriklerini çıkarır, `min_score` eşiğini uygular ve sonuçları kaydeder. Opsiyonel bağımlılık: `pip install forgelm[eval]`. ### `safety/` -İki puanlama modu: binary (güvenli/güvensiz oranı) ve confidence-weighted (sınıflandırıcı güven skoru). 3 katmanlı güvenlik kapısı: binary oran → confidence skoru → ciddiyet eşiği. Llama Guard S1-S14 zarar kategorileri, ciddiyet seviyeleri (kritik/yüksek/orta/düşük), düşük güven uyarıları, çalışmalar arası trend takibi (safety_trend.jsonl). +İki puanlama modu: binary (güvenli/güvensiz oranı) ve confidence-weighted (sınıflandırıcı güven skoru). 3 katmanlı güvenlik kapısı: binary oran → confidence skoru → ciddiyet eşiği. Llama Guard S1-S14 zarar kategorileri, ciddiyet seviyeleri (kritik/yüksek/orta/düşük), düşük güven uyarıları, çalışmalar arası trend izleme (safety_trend.jsonl). ### `judge.py` LLM-as-Judge değerlendirme: API tabanlı hakimler (OpenAI-uyumlu endpoint) ve yerel model hakimleri destekler. Markdown code block çıkarmalı sağlam JSON parse'i içerir. 1-10 ölçeğinde puanlar; yapılandırılabilir minimum eşik. diff --git a/docs/reference/architecture.md b/docs/reference/architecture.md index cda21d17..daeaeb45 100644 --- a/docs/reference/architecture.md +++ b/docs/reference/architecture.md @@ -96,7 +96,7 @@ ForgeLM/ │ ├── deepspeed/ # ZeRO-2, ZeRO-3, ZeRO-3+Offload presets │ └── safety_prompts/ # Built-in adversarial prompt library (140 prompts, 6 categories) ├── notebooks/ # 10 Colab-ready Jupyter notebooks -├── tests/ # 128 test modules +├── tests/ # 130 test modules ├── tools/ # CI guards: bilingual_parity, anchor_resolution, │ # cli_help_consistency, yaml_snippets, │ # audit_event_catalog, library_api_doc, diff --git a/docs/reference/audit_event_catalog-tr.md b/docs/reference/audit_event_catalog-tr.md index 5d65720a..3068d80d 100644 --- a/docs/reference/audit_event_catalog-tr.md +++ b/docs/reference/audit_event_catalog-tr.md @@ -61,15 +61,15 @@ Hash zinciri, satır diske düştükten (`flush` + `fsync`) sonra ilerler; kirli | `model.integrity_verified` | Model kartı ve deployer talimatları dahil model yapıtları hash'lendi ve `model_integrity.json` yazıldı. Bağımsız doğrulamayı değil, üretimi kaydeder. | `artifacts` (hash'lenen dosya sayısı) | 15 | | `audit.classifier_load_failed` | Güvenlik sınıflandırıcısı (örn. Llama Guard) yüklenemedi. Koşu yine `passed=False` kaydeder. | `classifier`, `reason` | 15 | -### Madde 11 + Ek IV — Uyumluluk artefaktları +### Madde 11 + Annex IV — Uyumluluk artefaktları | Event | Ne zaman emit edilir | Payload | Madde | |----------------------------------|-------------------------------------------------------------------------------|--------------------------------------------------|---------------| | `compliance.governance_exported` | Madde 10 veri yönetişim raporu diske yazıldı. | `output_path`, `dataset_count` | 10 | | `compliance.governance_section_missing` | Yönetişim raporu yazıldı ancak Madde 10 veri-kalitesi bölümü eksikti (`data_audit_report.json` yok). | `section`, `expected_path` | 10 | | `compliance.governance_failed` | Yönetişim raporu üretimi iptal edildi (örn. şema uyumsuzluğu). | `reason` | 10 | -| `compliance.artifacts_exported` | Ek IV teknik dokümantasyon paketi (manifest, model card, audit zip) yazıldı. | `output_dir`, `files`, `governance_ok` | 11, Ek IV | -| `compliance.artifacts_export_failed` | Ek IV / Madde 11 manifest export'u başarısız oldu veya yarım kaldı (disk dolu, SIGKILL, serileştirme hatası). | `reason` | 11, Ek IV | +| `compliance.artifacts_exported` | Annex IV teknik dokümantasyon paketi (manifest, model card, audit zip) yazıldı. | `output_dir`, `files`, `governance_ok` | 11, Annex IV | +| `compliance.artifacts_export_failed` | Annex IV / Madde 11 manifest export'u başarısız oldu veya yarım kaldı (disk dolu, SIGKILL, serileştirme hatası). | `reason` | 11, Annex IV | ### Madde 17 — GDPR Silinme Hakkı (Phase 21 — `forgelm purge`) diff --git a/docs/reference/compliance_summary-tr.md b/docs/reference/compliance_summary-tr.md index 1437b221..1d9b3def 100644 --- a/docs/reference/compliance_summary-tr.md +++ b/docs/reference/compliance_summary-tr.md @@ -52,7 +52,7 @@ Düzenleyicinin sorduğu vs ForgeLM'in cevapladığı: | Veri kaynağı | `data_provenance.json`; `compute_dataset_fingerprint` (SHA-256 + size + mtime); `hf_revision_source` ile derecelendirilmiş dataset Hub commit SHA'sı | | Teknik dokümantasyon | `annex_iv_metadata.json`; Annex IV §§1-9 kanonik düzen | | Uygunluk kanıtı | `compliance_report.json`; `model_card.md`; `model_integrity.json` | -| Harici izleme planı beyanı | `monitoring:` yalnızca metadata kaydeder; Madde 72 izleme sistemini ayrıca işletin. Webhook’lar yaşam döngüsü bildirimleridir; `safety_trend.jsonl` koşular arası değerlendirme eğilimlerini kaydeder. | +| Harici izleme planı beyanı | `monitoring:` yalnızca metadata kaydeder; Madde 72 izleme sistemini ayrıca işletin. Webhook'lar yaşam döngüsü bildirimleridir; `safety_trend.jsonl` koşular arası değerlendirme eğilimlerini kaydeder. | | İnsan gözetimi | Madde 14 staging gate; `human_approval.required/granted/rejected` | ## ForgeLM her gereksinimi nerede karşılar diff --git a/docs/reference/configuration-tr.md b/docs/reference/configuration-tr.md index 20506bce..b78fa07f 100644 --- a/docs/reference/configuration-tr.md +++ b/docs/reference/configuration-tr.md @@ -319,11 +319,11 @@ uzatmasını engeller. ## `monitoring` (İsteğe bağlı — Harici izleme planı, Madde 72 / 17(1)(h)) Bu blok **yalnızca beyan niteliğinde metadata** içerir. `enabled: true` olduğunda ForgeLM, harici -pazar sonrası izleme planınızı uyumluluk manifestine ve Annex IV `monitoring_and_logging` bölümüne +piyasaya arz sonrası izleme planınızı uyumluluk manifestine ve Annex IV `monitoring_and_logging` bölümüne `declarative_only: true` etiketiyle kaydeder. Endpoint'e bağlanmaz, metrikleri dışa aktarmaz, drift -tespit etmez, drift uyarısı göndermez veya kontrol zamanlamaz. İzleme altyapınızı ayrıca işletin; +tespit etmez, drift alarmı göndermez veya kontrol zamanlamaz. İzleme altyapınızı ayrıca işletin; bu beyan izlemenin çalıştığını kanıtlamaz ve izleme yükümlülüğünü tek başına karşılamaz. -Pazar sonrası izleme planı [Madde 72](https://eur-lex.europa.eu/eli/reg/2024/1689/oj/eng#art_72), +Piyasaya arz sonrası izleme planı [Madde 72](https://eur-lex.europa.eu/eli/reg/2024/1689/oj/eng#art_72), QMS ise [Madde 17(1)(h)](https://eur-lex.europa.eu/eli/reg/2024/1689/oj/eng#art_17) kapsamındadır. | Alan | Tip | Varsayılan | Açıklama | @@ -331,22 +331,22 @@ QMS ise [Madde 17(1)(h)](https://eur-lex.europa.eu/eli/reg/2024/1689/oj/eng#art_ | `enabled` | bool | `false` | Harici planı manifeste kaydet; metadata kaydı isteğe bağlıdır; yasal yükümlülükler ayrıca geçerlidir | | `endpoint` | string | `""` | İsteğe bağlı URL; kanıta yalnızca scheme/host/port yazılır, bağlantı kurulmaz | | `endpoint_env` | string | `null` | ASCII tanımlayıcısı `endpoint`'ten önceliklidir; düz metin kanıta `$NAME` yazılır, değeri okunmaz; kimlik bilgisi yazmayın | -| `metrics_export` | string | `"none"` | Beyan edilen harici aktarım sistemi: `"none"`, `"prometheus"`, `"datadog"`, `"custom_webhook"`; etkin planda `none` dışındaki seçim yapılandırma yüklenirken uyarı üretir | -| `alert_on_drift` | bool | `true` | Harici planda drift uyarısı öngörülüp öngörülmediği; uyarıları etkinleştirmez | +| `metrics_export` | string | `"none"` | Beyan edilen harici exporter: `"none"`, `"prometheus"`, `"datadog"`, `"custom_webhook"`; etkin planda `none` dışındaki seçim yapılandırma yüklenirken uyarı üretir | +| `alert_on_drift` | bool | `true` | Harici planda drift alarmı öngörülüp öngörülmediği; alarmları etkinleştirmez | | `check_interval_hours` | int | `24` | Beyan edilen harici kontrol aralığı, saat (en az 1); kontrol zamanlamaz | Her iki endpoint alanı da boşsa manifeste `endpoint: null` yazılır. Adlandırılan ortam değişkeni tanımlı olsa bile referansı çözümlenmez. Kapalı veya belirtilmemiş planlar kaydedilmez. -ForgeLM'de metadata kaydı isteğe bağlıdır; Madde 72, yüksek riskli yapay zekâ sistemlerinin sağlayıcılarının pazar -sonrası izleme sistemi kurmasını ve belgelemesini gerektirir. Bu alanlar bir özettir; Annex IV madde 9'un (Madde -72(3)) gerektirdiği ayrıntılı plan değildir. +ForgeLM'de metadata kaydı isteğe bağlıdır; Madde 72, yüksek riskli yapay zekâ sistemlerinin sağlayıcılarının piyasaya arz +sonrası izleme sistemi kurmasını ve belgelemesini gerektirir. Bu alanlar bir özettir; Annex IV §9'un istediği, +izleme planını (Madde 72(3)) da içeren ayrıntılı açıklama değildir. `load_config`, etkin ve `none` dışında exporter beyan eden plan için uyarı verir; doğrudan `ForgeConfig(...)` kurulumu bu dosya yükleme uyarısını vermez. İzleme kanıtı dosyaları (`compliance_report.json` ve üretildiğinde `annex_iv_metadata.json`) düz metindir. -Düzleştirilmiş `training_manifest.yaml` özeti izleme metadatası içermez. +Düzleştirilmiş `training_manifest.yaml` özeti izleme metadata'sı içermez. Literal `endpoint` kırpılır; `https://monitor.example.com:8443/plan` gibi host ve geçerli port içeren mutlak bir HTTP(S) URL olmalıdır. Şemasız değerler reddedilir. Kanıtta scheme, host ve varsa port korunur; IPv6 köşeli @@ -363,7 +363,7 @@ nedenini korur. `defaulted_fields`, operatörün açıkça yazdığı değerler yerine şema varsayılanlarından gelen kayıt alanlarını listeler. Kütüphane kullanıcıları, yapılandırmayı yeniden kurarken bu ayrımı korumak için `model_dump(exclude_unset=True)` kullanmalıdır; tam döküm varsayılanları açık girdiye dönüştürür. Yalnızca planı etkinleştirmek, 24 saatlik kontrol -aralığı veya drift uyarısı politikası beyan etmez. Örneğin `monitoring: {enabled: true}`, `compliance_report.json` +aralığı veya drift alarmı politikası beyan etmez. Örneğin `monitoring: {enabled: true}`, `compliance_report.json` içinde şu kaydı üretir: ```json diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index 77690e50..0f83d16e 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -400,8 +400,8 @@ An enabled non-`none` exporter declaration emits a warning at `load_config`; dir does not emit this file-load warning. Recording metadata in ForgeLM is optional; Article 72 requires providers of high-risk AI systems to establish and -document a post-market monitoring system. These fields are a summary, not the detailed plan required by Annex IV point -9 (Article 72(3)). +document a post-market monitoring system. These fields are a summary, not the detailed description Annex IV §9 +requires, which includes the monitoring plan (Article 72(3)). Monitoring evidence files (`compliance_report.json` and, when emitted, `annex_iv_metadata.json`) are plain text. The flattened `training_manifest.yaml` summary does not contain monitoring metadata. diff --git a/docs/reference/iso27001_control_mapping-tr.md b/docs/reference/iso27001_control_mapping-tr.md index f3f85762..57e78d96 100644 --- a/docs/reference/iso27001_control_mapping-tr.md +++ b/docs/reference/iso27001_control_mapping-tr.md @@ -28,7 +28,7 @@ | A.5.5 Yetkililerle iletişim | OOS | — | | A.5.6 Özel ilgi gruplarıyla iletişim | OOS | — | | A.5.7 Tehdit istihbaratı | OOS | — | -| A.5.8 Proje yönetiminde bilgi güvenliği | FL-helps | `risk_assessment` config; F-compliance-110 strict gate; Annex IV point 5 | +| A.5.8 Proje yönetiminde bilgi güvenliği | FL-helps | `risk_assessment` config; F-compliance-110 strict gate; Annex IV §5 | | A.5.9 Bilgi ve ilişkili varlık envanteri | FL-helps | `data_provenance.json`; `model_integrity.json`; SBOM | | A.5.10 Bilginin kabul edilebilir kullanımı | OOS | — | | A.5.11 Varlıkların iadesi | OOS | — | diff --git a/docs/reference/iso27001_control_mapping.md b/docs/reference/iso27001_control_mapping.md index 57508fe9..5f1885a2 100644 --- a/docs/reference/iso27001_control_mapping.md +++ b/docs/reference/iso27001_control_mapping.md @@ -29,7 +29,7 @@ | A.5.5 Contact with authorities | OOS | — | | A.5.6 Contact with special interest groups | OOS | — | | A.5.7 Threat intelligence | OOS | — | -| A.5.8 Information security in project management | FL-helps | `risk_assessment` config; F-compliance-110 strict gate; Annex IV point 5 | +| A.5.8 Information security in project management | FL-helps | `risk_assessment` config; F-compliance-110 strict gate; Annex IV §5 | | A.5.9 Inventory of information and other associated assets | FL-helps | `data_provenance.json`; `model_integrity.json`; SBOM | | A.5.10 Acceptable use of information | OOS | — | | A.5.11 Return of assets | OOS | — | diff --git a/docs/reference/verify_annex_iv_subcommand-tr.md b/docs/reference/verify_annex_iv_subcommand-tr.md index 5627854e..9bd0328a 100644 --- a/docs/reference/verify_annex_iv_subcommand-tr.md +++ b/docs/reference/verify_annex_iv_subcommand-tr.md @@ -163,12 +163,12 @@ Doğrulayıcı statik bir katalogu (`_ANNEX_IV_REQUIRED_FIELDS`) yürür; böyle | `system_identification` | §1 — sistem tanıtımı (ad, sürüm, sağlayıcı, intended_purpose). | | `intended_purpose` | §1 — amaçlanan kullanım beyanı. | | `system_components` | §2 — yazılım / donanım bileşenleri + tedarikçi listesi. | -| `computational_resources` | Annex IV point 2(c) — eğitim sırasında kullanılan hesaplama kaynakları. | +| `computational_resources` | Annex IV §2(c) — eğitim sırasında kullanılan hesaplama kaynakları. | | `data_governance` | §2(d) — veri kaynakları, yönetişim, doğrulama metodolojisi. | -| `technical_documentation` | §3-5 — tasarım + geliştirme metodolojisi. | -| `monitoring_and_logging` | Annex IV madde 9 (Madde 72(3)) — Beyan edilen harici izleme planı (`declarative_only: true`) veya audit log referansı; çalışan izleme kanıtı değildir. | -| `performance_metrics` | Annex IV points 2(g) / 4 — doğruluk / dayanıklılık / siber güvenlik metrikleri. | -| `risk_management` | Annex IV point 5 — risk yönetim sistemi referansı (Madde 9 hizalaması). | +| `technical_documentation` | §1(c) / §3 — yazılım sürümü ve bilinen sınırlamalar (`forgelm_version`, `known_limitations`). | +| `monitoring_and_logging` | Annex IV §9 (Madde 72(3)) — Beyan edilen harici izleme planı (`declarative_only: true`) veya audit log referansı; çalışan izleme kanıtı değildir. | +| `performance_metrics` | Annex IV §2(g) / §4 — doğruluk / dayanıklılık / siber güvenlik metrikleri. | +| `risk_management` | Annex IV §5 — risk yönetim sistemi referansı (Madde 9 hizalaması). | Bu tablo kısmi metadata eşlemelerini gösterir; tam bir Annex IV belgesi değildir. Diğer eski bölüm etiketlerinin düzeltilmesi [#539](https://github.com/HodeTech/ForgeLM/issues/539), doğrulayıcının tamlık iddiaları diff --git a/docs/reference/verify_annex_iv_subcommand.md b/docs/reference/verify_annex_iv_subcommand.md index 01ab3c82..c44502b4 100644 --- a/docs/reference/verify_annex_iv_subcommand.md +++ b/docs/reference/verify_annex_iv_subcommand.md @@ -163,12 +163,12 @@ The verifier walks a static catalog (`_ANNEX_IV_REQUIRED_FIELDS`) so a future sc | `system_identification` | §1 — system identification (name, version, provider, intended_purpose). | | `intended_purpose` | §1 — intended purpose statement. | | `system_components` | §2 — software / hardware components + supplier list. | -| `computational_resources` | Annex IV point 2(c) — compute resources used during training. | +| `computational_resources` | Annex IV §2(c) — compute resources used during training. | | `data_governance` | §2(d) — data sources, governance, validation methodology. | -| `technical_documentation` | §3-5 — design + development methodology. | -| `monitoring_and_logging` | Annex IV point 9 (Art. 72(3)) — Declared external monitoring-plan metadata (`declarative_only: true`), or an audit-log reference; no runtime monitoring evidence. | -| `performance_metrics` | Annex IV points 2(g) / 4 — accuracy / robustness / cybersecurity metrics. | -| `risk_management` | Annex IV point 5 — risk management system reference (Article 9 alignment). | +| `technical_documentation` | §1(c) / §3 — the software version and the known limitations (`forgelm_version`, `known_limitations`). | +| `monitoring_and_logging` | Annex IV §9 (Art. 72(3)) — Declared external monitoring-plan metadata (`declarative_only: true`), or an audit-log reference; no runtime monitoring evidence. | +| `performance_metrics` | Annex IV §2(g) / §4 — accuracy / robustness / cybersecurity metrics. | +| `risk_management` | Annex IV §5 — risk management system reference (Article 9 alignment). | This table maps partial metadata, not complete Annex IV sections. Remaining legacy section labels are tracked in [#539](https://github.com/HodeTech/ForgeLM/issues/539); verifier completeness claims are tracked in diff --git a/docs/reference/verify_integrity_subcommand-tr.md b/docs/reference/verify_integrity_subcommand-tr.md index 20727444..a1aa7425 100644 --- a/docs/reference/verify_integrity_subcommand-tr.md +++ b/docs/reference/verify_integrity_subcommand-tr.md @@ -1,6 +1,6 @@ # `forgelm verify-integrity` — Referans -> **Hedef kitle:** Eğitilmiş bir model dizininin, eğitim sırasında kaydedilen SHA-256 manifestiyle hâlâ eşleştiğini doğrulayan uyumluluk operatörleri ve CI kapıları (AB YZ Yasası Madde 15). +> **Hedef kitle:** Eğitilmiş bir model dizininin, eğitim sırasında kaydedilen SHA-256 manifestiyle hâlâ eşleştiğini doğrulayan uyumluluk operatörleri ve CI kapıları (EU AI Act Madde 15). > **Ayna:** [verify_integrity_subcommand.md](verify_integrity_subcommand.md) `verify-integrity` alt komutu, Madde 15 `model_integrity.json` manifestinin tüketici karşılığıdır. Sonlandırma sırasında trainer, model dizinindeki dosyaları hash'leyip manifesti yazmadan önce model kartını (`README.md`) ve `deployer_instructions.md` dosyasını yazar. Manifest dosyasının kendisi doğrulamadan hariç tutulur. `verify-integrity` bu manifesti geri okur, her dosyanın SHA-256'sını yeniden hesaplar ve manifest üretildikten sonra **değiştirilen**, **silinen** veya **eklenen** her bir yapıtı raporlar. CLI, kütüphane giriş noktası `forgelm.verify.verify_integrity`'ye devreder (paket kökünde `forgelm.verify_integrity` olarak da erişilebilir) ve yapılandırılmış bir `VerifyIntegrityResult` döndürür. diff --git a/docs/roadmap-tr.md b/docs/roadmap-tr.md index 56ce6ef9..0e63287f 100644 --- a/docs/roadmap-tr.md +++ b/docs/roadmap-tr.md @@ -6,7 +6,7 @@ | Tür | Faz | Durum | |-----|-----|-------| -| ✅ Tamam | [Faz 1-9](roadmap/completed-phases.md) | SOTA iyileştirmeleri, değerlendirme, güvenilirlik, kurumsal entegrasyon, ekosistem, hizalama stack'i, güvenlik, EU AI Act uyumluluğu (Madde 9-17 + Ek IV), gelişmiş güvenlik zekası | +| ✅ Tamam | [Faz 1-9](roadmap/completed-phases.md) | SOTA iyileştirmeleri, değerlendirme, güvenilirlik, kurumsal entegrasyon, ekosistem, hizalama stack'i, güvenlik, EU AI Act uyumluluğu (Madde 9-17 + Annex IV), gelişmiş güvenlik zekası | | ✅ Tamam | [Faz 10 — Post-Training Tamamlama](roadmap/completed-phases.md) | `inference.py`, `chat`, `export` (GGUF), `--fit-check`, `deploy` — `v0.4.0` | | ✅ Tamam | [Faz 10.5 — Quickstart Katmanı ve Onboarding](roadmap/completed-phases.md) | `forgelm quickstart