feat(narrative): assign Personality Style from scored Big Five - #141
cursor[bot] wants to merge 9 commits into
Conversation
Keep the session-authorization adapter beside the landed account-link module.
Add style_mapping_version_v1 so already-scored domain observations select an original presentation style, adjacent mixed poles, or a balanced profile without mutating numeric scores or claiming type equivalence. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
There was a problem hiding this comment.
Unique buyer-facing mapping — do not merge the #86 stack with it
Head af8cb36 adds assign_personality_style for ADR-0018 style_mapping_version_v1. The mapping itself is presentation-only: pole dominance from already-scored Big Five observations, adjacent second pole within 0.25, style_balanced_profile when nothing is expressed, 95% SE gate, fail-closed unknown version / invalid identity / missing-duplicate-unscored constructs, no write-back into ScoreObservation.
Known-score fixtures cover every pole, mixed adjacent, balanced, high-SE suppression, locale key change without style-ref change, and renderer handoff. Style refs are original product labels, not MBTI types.
This branch is stacked on #86 (authorize_anonymous_session + recovery fixture). #86 remains the landing vehicle for anonymous resource authorization. Command-auth honesty remains #135. Do not merge #141 as a substitute for those slices.
Residuals acceptable on this slice: no persistence, no HTTP, no Korean copy in the mapping module (style refs are language-neutral; localized prose stays in the separately versioned renderer).
Independent last-push approval and exact-head required checks remain required. This review does not approve.
Sent by Cursor Automation: Fix Issues
| /// Returns [`StyleMappingError`] when the mapping version is unknown, the identity is invalid, | ||
| /// a required construct is missing or duplicated, or a required construct is not scored. | ||
| pub fn assign_personality_style( | ||
| identity: &StyleAssignmentIdentity<'_>, |
There was a problem hiding this comment.
Landing vehicle for the first versioned Personality Style assignment. Keep this file isolated from the #86 anonymous-auth stack if a reviewer wants a single-concern merge. Do not add HTTP or persist style artifacts on this branch.
|
Closing this stale stacked vehicle because its unique Personality Style mapping slice has been isolated onto current-main reconciliation #314. #314 preserves the mapping contract without dragging #141's historical authorization/recovery ancestry; #86 and the other named lanes remain the owners of those unrelated slices. Do not transfer #141's checks or review evidence to #314. |


Why
After scoring, a buyer still cannot see a Personality Style. ADR-0018 already has the assignment key and deterministic fallback renderer on later main, but nothing assigns an original presentation style from already-scored Big Five observations. That leaves the consumer result incomplete and invites ad-hoc type labels.
What
style_mapping_version_v1insrc/style_mapping.rs.style_balanced_profilewhen no dimension is expressed.|score| < 0.50or, when a standard error is present,|score| < 1.96 * SE.Known-score fixtures cover every pole, mixed adjacent profiles, balanced profiles, uncertain high-SE scores, locale key change without style-ref change, and renderer handoff.
Architecture / scope
This is presentation mapping, not a psychometric kernel. It does not estimate traits, claim MBTI equivalence, persist style artifacts, or add HTTP. Citations are in ADR-0018 (APA 7th). TRACEABILITY records this as Active PR work, not protected-main truth.
This branch is stacked on #86 (
authorize_anonymous_sessionplus the recoveryclaim_deadline_atfixture). #86 remains the landing vehicle for anonymous resource authorization. Command-auth honesty remains #135. Do not merge this as a substitute for those slices if a reviewer wants them isolated; the unique commit isfeat(narrative): assign Personality Style from scored Big Five.Verification
cargo test --test style_mapping_assignment --test traceability_active_pr_contract --test documentation_architecture_contractcargo clippy --all-targets -- -D warningscargo doc --no-depsIndependent non-author approval and required checks on the unchanged exact head remain merge gates. Never self-approve.