Repository navigation
configuration.md (EN+TR) states the wrong exit codes and checks for verify-annex-iv --pipeline (CR-A09-004) #445
Description
Wave 1 · theme D1-8: Docs describing features that do not exist (doc side of code findings) · highest severity High · 1 finding(s) · effort trivial
Summary
A CI author following configuration.md treats 1 as the chain-violation signal and never alarms on 6, or reads exit 1 on a clean run as a config error.
Primary finding
CR-A09-004 — configuration.md (EN+TR) states the wrong exit codes and checks for verify-annex-iv --pipeline
severity High · reachability default · intent contract-violation · confidence confirmed · independently confirmed · reproduced end to end · already tracked: KNOWN-OPEN C31-EXIT-CODE-PROSE — docs/roadmap/phase-16-trust-surface-hardening.md:782-785 (S15 open)
What happens. configuration.md:471 (TR :461) says the verifier checks 'per-stage training_manifest.json existence' and exits '0 on clean manifest, 1 on config / chain violation, 2 on runtime I/O failure'. The code sends chain, structural and evidence violations to 6, deep-parses annex_iv_metadata.json rather than checking existence, and exits 1 on a clean run when FORGELM_AUDIT_SECRET is unset (unattested corroboration). verify_annex_iv_subcommand.md and the user manual are accurate; this page contradicts them.
Where.
docs/reference/configuration.md:471(exit-code and existence prose)docs/reference/configuration-tr.md:461(exit-code and existence prose)forgelm/cli/subcommands/_verify_annex_iv.py:125-133(_classify_pipeline_violations routing)forgelm/cli/subcommands/_verify_annex_iv.py:96-133forgelm/compliance.py:3424-3445(unattested audit_log_absent / no_audit_secret -> UNVERIFIED:: prefix)forgelm/verify/_pipeline_evidence.py:324-420forgelm/verify/_pipeline_evidence.py:531-535(corroboration always runs and its violations are appended)forgelm/verify/_pipeline_evidence.py:60(evidence basename annex_iv_metadata.json, deep-parsed via _read_capped_json at :372)forgelm/cli/subcommands/_verify_annex_iv.py:65-133(the _classify_pipeline_violations code that is correct; the cited 125-133 is its return block)
Evidence.
- pipe: chain edit -> EXIT=6 (doc says 1); a clean run without the secret -> EXIT=1 'unattested (no_audit_secret)' (doc says 0).
Recommended fix. Replace the paragraph with a link to verify_annex_iv_subcommand.md#pipeline-mode and the 0/1/2/6 table.
Acceptance criteria
- A regression test reproduces the failure scenario and asserts the corrected behaviour.
- Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
- Every finding in this issue is resolved or explicitly closed with a reason.
Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity