# Changelog

## Score

- CAI 64 → 66 (+1.9)
- Rubric changed (rubric-2026.09.9 → rubric-2026.09.17) — scores are not directly comparable.

## Lenses

- Code Health 83 → 83 (+0.0)
- Architecture 99 → 95 (-3.2)
- Maturity 68 → 68 (+0.0)
- Readiness 56 → 56 (+0.9)
- Security 63 → 70 (+7.5)
- Performance 100 (new)

## Resolved (4)

- Documentation: no installation or build instructions (README.md)
- Edited copy of a member (25 corresponding lines) (crates/code2prompt-core/src/git.rs)
- Hotspot: crates/code2prompt-core/src/file_processor/ipynb.rs (crates/code2prompt-core/src/file_processor/ipynb.rs)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (crates/code2prompt/src/model/mod.rs)

## New (12)

- Ambiguous prompt generation flow. 'generate_prompt' likely calls 'render_prompt' internally, but both are exposed. It is unclear if 'generate_prompt' does additional processing (e.g., token counting, validation) or if they are interchangeable. This creates confusion about the correct entry point for prompt generation.
- Coverage not measured — JavaScript/TypeScript suite
- Documentation: no project overview (README.md)
- Duplicate selection logic across Session and SelectionEngine. The Session type exposes low-level selection mutation methods (select_file, deselect_file, toggle_file_selection) that directly mirror the methods on the internal SelectionEngine. This violates encapsulation and creates two entry points for the same state change.
- Edited copy of a member (25 corresponding lines) (crates/code2prompt-core/src/git.rs)
- Fragmented template loading. 'utils.load_all_templates' suggests a general utility for loading templates, while 'BuiltinTemplates' is a specific type for built-in ones. It is unclear if 'utils.load_all_templates' loads both built-in and custom templates, or just built-in, creating confusion about the source of templates.
- Inconsistent initialization paths. TemplateState can be initialized from either a Session or a Model. Since Model contains a Session, this creates redundant ways to achieve the same result. It is unclear why one would use one over the other, leading to potential state desynchronization if the underlying data differs.
- Inverted test pyramid
- Members sharing a duplicated core (4 members, 50+ identical tokens) (crates/code2prompt/src/model/mod.rs)
- Off the main sequence: code2prompt_core
- Redundant Git operations. The Session type exposes specific Git loading methods that duplicate the functionality of the git module functions. This creates a confusing API where users can either call Session.load_git_diff() or git.get_git_diff(), leading to inconsistent usage patterns.
- Test suite declares a test script but contains no test files: website/
