feat(method): refuse corpus-background wording as unique content - #151
Conversation
Corpus-level background language stays explicit method structure (ADR 0004 and 0012). It is not unique latent content and is not erased by a stopword list. Recovery is the computed share of background kinds that match known truth versus collapsing every token to unique content.
|
Warning Review limit reachedNext included review available in 38 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (18)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
# Conflicts: # CHANGELOG.md # docs/validation/temporal-event-foundation.md
|
Current head |
|
Current-head validation update (c7d5ed2): fixed the quality contract to derive the Rust crate count from scripts/check_workspace_contract.py instead of hard-coding 10. Local evidence: 89 quality tests passed; coverage 100% (991/991 statements, 442/442 branches); workspace, docstring, documentation, and diff checks passed. Please review and rerun Checks against this exact head; merge remains subject to the repository's two independent approvals and protected rules. |
|
Current-head review fix (a35d329): removed the duplicate active-PR Purpose-bound provider payloads row; the ledger now has one implemented-main row and the new corpus_background row. Local quality validation passed: 89 tests, 100% statement/branch coverage (991/991, 442/442), workspace/docstring/documentation contracts, and diff check. Please re-review this exact head. |
|
Review the exact current PR head a35d329 against base main with the protected independent agents. Re-check current source, tests, coverage, documentation, and security; do not modify or merge. @opencode-agent @cwl-noema-review |
|
Current-head review refresh for a35d329:
|
|
Rebased current head f87c812 onto origin/main. The changelog conflict retains both feature and current-main entries; inherited documentation trailing whitespace was removed. Local merge-tree, git diff --cached --check, and cargo fmt --all -- --check pass. Exact-head hosted checks and required independent approvals remain required before protected merge. |
|
@opencode-agent @cwl-noema-review Review-only request for exact current head f87c812. Re-review corpus-background identity and current validation ledger, the Rust identity contract, APA 7 research scope, documentation maturity, and protected-merge requirements. Do not merge or enable auto-merge. |
Exact-head queue dispositionExact head |
# Conflicts: # ARCHITECTURE.md # CHANGELOG.md # Cargo.lock # Cargo.toml # README.md # docs/TRACEABILITY.md # docs/adr/0004-shared-multilingual-latent-space.md # docs/adr/0012-temporal-relational-shared-latent-topic-measurement.md # docs/adr/README.md # docs/research/standards-and-literature.md # docs/validation/temporal-event-foundation.md # scripts/check_workspace_contract.py # tests/quality/test_check_docstrings.py
| Chemudugunta, C., Smyth, P., & Steyvers, M. (2007). Modeling general and specific aspects of documents with a probabilistic topic model. In B. Schölkopf, J. Platt, & T. Hoffman (Eds.), *Advances in Neural Information Processing Systems 19* (pp. 241–248). MIT Press. | ||
|
|
||
| Bianchi, F., Terragni, S., Hovy, D., Nozza, D., & Fersini, E. (2021). Cross-lingual contextualized topic models with zero-shot learning. In *Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics* (pp. 1676–1683). Association for Computational Linguistics. https://doi.org/10.18653/v1/2021.eacl-main.143 | ||
|
|
||
| Nguyen, T. P., Minh, N. V., Nguyen, T., Van, L. N., Nguyen, D. A., Sang, D. V., & Le, T. (2025). XTRA: Cross-lingual topic modeling with topic and representation alignments. In *Findings of the Association for Computational Linguistics: EMNLP 2025*. Association for Computational Linguistics. | ||
|
|
||
| TEPP retains a logistic-normal CPU reference while allowing adapter backends that satisfy shared-latent, posterior, temporal, relational, and measurement-invariance contracts. Non-lexical modality is modeled as explicit structure, not unique latent content and not a stopword deletion (Bateman, 2008). | ||
| TEPP retains a logistic-normal CPU reference while allowing adapter backends that satisfy shared-latent, posterior, temporal, relational, and measurement-invariance contracts. Corpus-background wording is modeled as explicit structure, not unique latent content and not a stopword deletion (Chemudugunta et al., 2007). |
There was a problem hiding this comment.
🔍 Literature register drops the modality citation
This PR overwrites the Bateman (2008) reference and modality paragraph in standards-and-literature.md and :41 with corpus-background material, even though modality_source is already merged on main. The section holds one method-source slot that every stacked PR replaces, so modality loses its central register entry each time. Its own doctoring file docs/research/modality-source-identity.md:25-28 still cites Bateman, so the claim stays documented under docs/research/.
Was this helpful? React with 👍 or 👎 to provide feedback.
| pub fn identity_recovery_rate( | ||
| truth: &[CorpusBackgroundKind], | ||
| decided: &[CorpusBackgroundKind], | ||
| ) -> Result<f64, CorpusBackgroundError> { | ||
| if truth.is_empty() || truth.len() != decided.len() { | ||
| return Err(CorpusBackgroundError::InvalidCorpusBackgroundPayload); | ||
| } | ||
| let mut matches = 0_u32; | ||
| for (truth_kind, decided_kind) in truth.iter().zip(decided) { | ||
| if truth_kind == decided_kind { | ||
| matches += 1; | ||
| } | ||
| } | ||
| Ok(f64::from(matches) / truth.len() as f64) | ||
| } |
There was a problem hiding this comment.
📝 Info: identity_recovery_rate fail-closed logic and casts are correct
kind.rs guards against empty and length-mismatched slices before computing the match fraction, and matches is bounded by truth.len(), so the f64::from(matches) / truth.len() as f64 division cannot divide by zero and is not affected by the cast_precision_loss allow beyond acceptable precision for realistic corpus sizes. No bug here.
Was this helpful? React with 👍 or 👎 to provide feedback.
Corpus-level background language stays explicit method structure (ADR 0004/0012). It is not unique latent content and is not erased by a stopword list. Recovery is the computed share of recovered kinds that match known truth versus collapsing every token to unique content.
Complementary to #147 section, #148 style, #149 copied-text, #150 modality, #145 stopword, #63 TF-IDF/BM25 inferential-weight refusal, and #75 method_effects. This crate owns corpus-background-versus-unique-content identity.
Local gates:
cargo test -p corpus_background --all-targetsGREEN after RED (package did not exist)-D warningsPASSDoes not allocate migration
0008. Does not recreate those in-flight method-source crates.Keep this PR draft. Preferred merge remains #47 only when exact-head required Checks pass and a qualifying independent APPROVE exists. Do not empty-commit #47.