Skip to content

feat(narrative): assign Personality Style from scored Big Five - #141

Closed
cursor[bot] wants to merge 9 commits into
mainfrom
cursor/bc-d6b92d35-17a8-489b-ac92-f58f1a03fb8a-2575
Closed

cursor[bot] wants to merge 9 commits into
mainfrom
cursor/bc-d6b92d35-17a8-489b-ac92-f58f1a03fb8a-2575

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

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

  • Add style_mapping_version_v1 in src/style_mapping.rs.
  • Assign a primary style from the largest expressed Big Five pole.
  • Keep a close second pole as adjacent instead of forcing a single category.
  • Use style_balanced_profile when no dimension is expressed.
  • Treat a dimension as unexpressed when |score| < 0.50 or, when a standard error is present, |score| < 1.96 * SE.
  • Fail closed on unknown mapping version, invalid identity, missing/duplicate constructs, and unscored observations.
  • Never write back into score observations.

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_session plus the recovery claim_deadline_at fixture). #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 is feat(narrative): assign Personality Style from scored Big Five.

Verification

  • cargo test --test style_mapping_assignment --test traceability_active_pr_contract --test documentation_architecture_contract
  • cargo clippy --all-targets -- -D warnings
  • cargo doc --no-deps

Independent non-author approval and required checks on the unchanged exact head remain merge gates. Never self-approve.

Open in Web View Automation 

seonghobae and others added 9 commits August 16, 2026 10:41
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>
@cursor
cursor Bot requested a review from seonghobae August 16, 2026 15:51

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment thread src/style_mapping.rs
/// 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<'_>,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

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.

@seonghobae seonghobae closed this Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants