Result: done Files: crates/nikaia-std/src/tools/check_facts.nika crates/nikaia-std/src/tools/check_references.nika crates/nikaia-std/src/tools/check_core_expr.nika crates/nikaia-std/src/tools/check_core_stmt.nika crates/nikaia-std/src/tools/emit_expr.nika crates/nikaia-std/src/tools/emit_core_leaves.nika crates/nikaia-std/src/tools/lowered/check_facts.rs crates/nikaia-std/src/tools/lowered/check_references.rs crates/nikaia-std/src/tools/lowered/check_core_expr.rs crates/nikaia-std/src/tools/lowered/check_core_stmt.rs crates/nikaia-std/src/tools/lowered/emit_expr.rs crates/nikaia-std/src/tools/lowered/emit_core_leaves.rs tests/compiler/tests/a_let_mut_view_is_assigned_through.nika tests/compiler/tests/a_let_mut_view_is_assigned_through.stdout docs/briefs/b976.step1.report.md Commit: check, emit: an assignment to a let mut view writes through it, and a view of a number is read as c Fixes: #976 Model: Opus 5.5 Tests: a_let_mut_view_is_assigned_through (failed on the unfixed compiler, NK1105 and E0368); nikaia test –both-settings –project tests/compiler 331 ok; it guard set + map_entries mut_bindings mut_parameter_parts lending element_views map_reads 92 ok; clippy clean; pre-push-check ok; lower-std fixpoint Gate: green Deviation: none Found: none Needs: none Changelog: none here; for the version raise (supervisor): an assignment or compound assignment to a let mut view (entry or_insert/or_insert_with, m[k] ?? jump, m.get(k) ?? jump, v[i]) writes through it (c = v, *c += 1); an entry view of a number, bool or char is typed as the value and every mention of it is *c (was NK1105 for =, rustc E0368 for +=) Attribution: Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Claude-Session: https://claude.ai/code/session_01GFeMqxRbtUMiGVyDMxsvEq Pushed: df022c05fa36a8e8baf42ae1f54182a3e766d002