Files
genshin-assistant/src/data/buildFitProfiles.ts
T

452 lines
16 KiB
TypeScript

import {
BUILD_FIT_CONTRACT_VERSION,
BUILD_FIT_REQUIRED_FIELD_KEYS,
type BuildFitContractV1,
} from "../types/buildFit";
export const BUILD_FIT_PROFILE_CORPUS_VERSION = "build-fit-profile-corpus-v2" as const;
/**
* Curated production candidates. Each profile has a bounded source-review
* lifetime, Golden/adversarial coverage, and no authority outside its explicit
* assumptions. The separate evidence ranker remains read-only and never uses
* Roll-Efficiency as a Build-Fit input.
*/
export const curatedBuildFitProfiles: readonly BuildFitContractV1[] = [
{
version: BUILD_FIT_CONTRACT_VERSION,
id: "furina-off-field-solo-hydro-c0-c1",
revision: 1,
character: {
id: "furina",
name: "Furina",
},
target: {
id: "off-field-solo-hydro-c0-c1",
label: "Off-field DPS + Support · Solo Hydro · C0-C1",
role: "sub_dps",
description: "Ousia off-field personal damage and Burst support in a team where Furina is the only Hydro character.",
assumptions: [
"Furina is constellation 0 or 1; constellation 2 changes her HP and damage balance, while constellation 4 materially lowers her Energy Recharge requirement.",
"Furina is the only Hydro character and uses her Burst once per rotation.",
"Weapon, Favonius procs, rotation, and team Energy contributions must be supplied as explicit aggregate context.",
"The profile targets Ousia off-field damage and support, not constellation 2+ behavior, on-field attacks, or a no-Burst team.",
],
},
provenance: {
gameVersion: "Luna II",
reviewedAt: "2026-07-10T20:00:00.000Z",
validUntil: "2026-10-08T20:00:00.000Z",
sources: [
{
id: "kqm-furina-quick-guide-luna-ii",
label: "KQM Furina Quick Guide",
kind: "curated",
version: "Luna II",
reference: "https://keqingmains.com/q/furina-quickguide/",
},
{
id: "local-build-context-v1",
label: "Explicit local build context",
kind: "user",
version: "1",
reference: "local://build-fit/aggregate-context",
},
],
},
setPlans: [
{
id: "golden-troupe-4pc",
label: "Golden Troupe · 4pc",
tier: "preferred",
requirements: [{ setKey: "goldentroupe", pieces: 4 }],
reason: "The sourced guide identifies 4pc Golden Troupe as the personal-damage set for Furina's off-field Ousia Skill.",
},
],
mainStats: {
sands: [
{
stat: "Energy Recharge",
priority: 1,
reason: "Use when the explicit team and weapon context cannot otherwise reach the required Burst uptime.",
},
{
stat: "HP%",
priority: 1,
reason: "Use when the sourced Energy Recharge target is already met from the complete build context.",
},
],
goblet: [
{
stat: "HP%",
priority: 1,
reason: "Preferred for this pre-C2 Golden Troupe target according to the sourced guide.",
},
{
stat: "Hydro DMG Bonus",
priority: 2,
reason: "A sourced alternative that remains dependent on the surrounding build and team buffs.",
},
],
circlet: [
{
stat: "CRIT Rate",
priority: 1,
reason: "Choose the CRIT main stat needed to balance the complete build.",
},
{
stat: "CRIT DMG",
priority: 1,
reason: "Choose the CRIT main stat needed to balance the complete build.",
},
],
},
substats: [
{
stat: "Energy Recharge",
weight: 1,
reason: "Ordinal source priority: first until the explicit total-build requirement is met; not a damage multiplier.",
},
{
stat: "CRIT Rate",
weight: 0.8,
reason: "Ordinal source priority shared with CRIT DMG after Energy Recharge; not a damage multiplier.",
},
{
stat: "CRIT DMG",
weight: 0.8,
reason: "Ordinal source priority shared with CRIT Rate after Energy Recharge; not a damage multiplier.",
},
{
stat: "HP%",
weight: 0.6,
reason: "Ordinal source priority after Energy Recharge and CRIT; not a damage multiplier.",
},
],
aggregateTargets: [
{
stat: "Energy Recharge",
unit: "percent",
minimum: 200,
priority: "required",
reason: "The sourced guide lists 200%+ for Solo Hydro; exact weapon, Favonius, rotation, and team context remains explicit.",
},
],
evidenceRules: {
minimumExtractionConfidence: 88,
minimumFieldConfidence: 78,
requiredFieldKeys: [...BUILD_FIT_REQUIRED_FIELD_KEYS],
},
conflictPolicy: {
equippedByOtherCharacter: "warn",
assignedToOtherBuild: "warn",
},
},
{
version: BUILD_FIT_CONTRACT_VERSION,
id: "neuvillette-on-field-charged-attack",
revision: 1,
character: {
id: "neuvillette",
name: "Neuvillette",
},
target: {
id: "on-field-charged-attack",
label: "On-field Charged Attack DPS",
role: "main_dps",
description: "On-field Hydro damage focused on enhanced Charged Attacks with a complete Marechaussee Hunter set.",
assumptions: [
"Neuvillette is played as an on-field Charged Attack damage dealer rather than only as a driver for teammates.",
"His Charged Attack HP drain is available to maintain the Marechaussee Hunter four-piece effect.",
"Weapon, team, Favonius procs, Energy Recharge requirement, constellation, and rotation are external context and are not inferred from Artifacts.",
"This profile does not select a team or claim that a profile candidate proves character ownership.",
],
},
provenance: {
gameVersion: "Luna IV",
reviewedAt: "2026-07-10T20:00:00.000Z",
validUntil: "2026-10-08T20:00:00.000Z",
sources: [{
id: "kqm-neuvillette-quick-guide-luna-iv",
label: "KQM Neuvillette Quick Guide",
kind: "curated",
version: "Luna IV",
reference: "https://keqingmains.com/q/neuvillette-quickguide/",
}],
},
setPlans: [{
id: "marechaussee-hunter-4pc",
label: "Marechaussee Hunter · 4pc",
tier: "preferred",
requirements: [{ setKey: "marechausseehunter", pieces: 4 }],
reason: "The sourced guide identifies four-piece Marechaussee Hunter as Neuvillette's strongest general Charged Attack set, with stacks enabled by his HP drain.",
}],
mainStats: {
sands: [{
stat: "HP%",
priority: 1,
reason: "The sourced Charged Attack profile scales from HP.",
}],
goblet: [
{
stat: "Hydro DMG Bonus",
priority: 1,
reason: "The sourced default damage-facing Goblet choice for this profile.",
},
{
stat: "HP%",
priority: 2,
reason: "A sourced viable alternative whose exact value depends on weapon and team buffs.",
},
],
circlet: [
{
stat: "CRIT Rate",
priority: 1,
reason: "Use the CRIT main stat that balances the complete build.",
},
{
stat: "CRIT DMG",
priority: 1,
reason: "Use the CRIT main stat that balances the complete build.",
},
{
stat: "HP%",
priority: 2,
reason: "A sourced viable alternative with appropriately strong supporting substats.",
},
],
},
substats: [
{
stat: "Energy Recharge",
weight: 1,
reason: "Ordinal source priority until the explicit team and weapon requirement is met; this contract does not invent a universal threshold.",
},
{
stat: "CRIT Rate",
weight: 0.8,
reason: "Ordinal source priority shared with CRIT DMG; not a damage multiplier.",
},
{
stat: "CRIT DMG",
weight: 0.8,
reason: "Ordinal source priority shared with CRIT Rate; not a damage multiplier.",
},
{
stat: "HP%",
weight: 0.8,
reason: "Sourced HP scaling priority; not a damage multiplier.",
},
{
stat: "HP",
weight: 0.6,
reason: "Flat HP is a lower sourced priority than HP% for this profile.",
},
],
aggregateTargets: [],
evidenceRules: {
minimumExtractionConfidence: 88,
minimumFieldConfidence: 78,
requiredFieldKeys: [...BUILD_FIT_REQUIRED_FIELD_KEYS],
},
conflictPolicy: {
equippedByOtherCharacter: "warn",
assignedToOtherBuild: "warn",
},
},
{
version: BUILD_FIT_CONTRACT_VERSION,
id: "raiden-off-field-hyperbloom-trigger",
revision: 1,
character: {
id: "raidenshogun",
name: "Raiden Shogun",
},
target: {
id: "off-field-hyperbloom-trigger",
label: "Off-field Hyperbloom Trigger",
role: "reaction",
description: "Off-field Electro application focused only on triggering Hyperbloom with Elemental Mastery Artifact rules.",
assumptions: [
"Raiden remains off-field after activating her Skill and is the intended Hyperbloom trigger.",
"This excludes Burst DPS, Aggravate, Quickbloom, Overloaded, and personal-damage comparisons.",
"Another team member is the intended four-piece Deepwood Memories holder; Raiden-held Deepwood is a separate fallback, not this target.",
"Character level, team composition, weapon, and reaction ownership remain external context and are not inferred from Artifacts.",
],
},
provenance: {
gameVersion: "5.7",
reviewedAt: "2026-07-10T20:00:00.000Z",
validUntil: "2026-10-08T20:00:00.000Z",
sources: [{
id: "kqm-raiden-quick-guide-5-7",
label: "KQM Raiden Shogun Quick Guide",
kind: "curated",
version: "5.7",
reference: "https://keqingmains.com/q/raiden-quickguide/",
}],
},
setPlans: [
{
id: "flower-of-paradise-lost-4pc",
label: "Flower of Paradise Lost · 4pc",
tier: "preferred",
requirements: [{ setKey: "flowerofparadiselost", pieces: 4 }],
reason: "The sourced Hyperbloom section lists four-piece Flower of Paradise Lost as the highest-damage set for this narrow trigger target.",
},
{
id: "gilded-dreams-4pc",
label: "Gilded Dreams · 4pc",
tier: "alternative",
requirements: [{ setKey: "gildeddreams", pieces: 4 }],
reason: "The sourced guide lists four-piece Gilded Dreams as an EM-focused and resin-efficient alternative.",
},
],
mainStats: {
sands: [{
stat: "Elemental Mastery",
priority: 1,
reason: "The sourced Hyperbloom trigger table specifies Elemental Mastery.",
}],
goblet: [{
stat: "Elemental Mastery",
priority: 1,
reason: "The sourced Hyperbloom trigger table specifies Elemental Mastery.",
}],
circlet: [{
stat: "Elemental Mastery",
priority: 1,
reason: "The sourced Hyperbloom trigger table specifies Elemental Mastery.",
}],
},
substats: [{
stat: "Elemental Mastery",
weight: 1,
reason: "The sourced narrow trigger target treats Elemental Mastery as the only relevant Artifact substat; this is not a general Raiden profile.",
}],
aggregateTargets: [],
evidenceRules: {
minimumExtractionConfidence: 88,
minimumFieldConfidence: 78,
requiredFieldKeys: [...BUILD_FIT_REQUIRED_FIELD_KEYS],
},
conflictPolicy: {
equippedByOtherCharacter: "warn",
assignedToOtherBuild: "warn",
},
},
{
version: BUILD_FIT_CONTRACT_VERSION,
id: "nahida-off-field-deepwood-support",
revision: 1,
character: {
id: "nahida",
name: "Nahida",
},
target: {
id: "off-field-deepwood-support",
label: "Off-field Deepwood Support",
role: "support",
description: "Off-field Skill Dendro application and team support while Nahida is the intended Deepwood Memories holder.",
assumptions: [
"Nahida is used primarily off-field for Skill-based Dendro application and support.",
"Nahida is the intended team holder of four-piece Deepwood Memories; only one team member should supply that effect.",
"Weapon, team, rotation, Favonius, exact Energy Recharge requirement, and which teammate owns the highest Elemental Mastery remain external context.",
"The profile does not turn the conditional 900-1000 Elemental Mastery discussion into a hard universal target.",
],
},
provenance: {
gameVersion: "5.6",
reviewedAt: "2026-07-10T20:00:00.000Z",
validUntil: "2026-10-08T20:00:00.000Z",
sources: [{
id: "kqm-nahida-quick-guide-5-6",
label: "KQM Nahida Quick Guide",
kind: "curated",
version: "5.6",
reference: "https://keqingmains.com/q/nahida-quickguide/",
}],
},
setPlans: [{
id: "deepwood-memories-4pc",
label: "Deepwood Memories · 4pc",
tier: "preferred",
requirements: [{ setKey: "deepwoodmemories", pieces: 4 }],
reason: "The sourced guide describes four-piece Deepwood Memories as a useful generalist team set that Nahida can maintain reliably.",
}],
mainStats: {
sands: [{
stat: "Elemental Mastery",
priority: 1,
reason: "The sourced off-field table accepts Elemental Mastery Sands.",
}],
goblet: [
{
stat: "Elemental Mastery",
priority: 1,
reason: "The sourced off-field table accepts Elemental Mastery Goblet.",
},
{
stat: "Dendro DMG Bonus",
priority: 1,
reason: "The sourced off-field table accepts Dendro DMG Bonus Goblet.",
},
],
circlet: [
{
stat: "Elemental Mastery",
priority: 1,
reason: "The sourced off-field table accepts Elemental Mastery Circlet.",
},
{
stat: "CRIT Rate",
priority: 1,
reason: "The sourced off-field table accepts CRIT Circlet according to complete build context.",
},
{
stat: "CRIT DMG",
priority: 1,
reason: "The sourced off-field table accepts CRIT Circlet according to complete build context.",
},
],
},
substats: [
{
stat: "Energy Recharge",
weight: 1,
reason: "Ordinal source priority until the explicit team requirement is met; this contract does not invent a universal threshold.",
},
{
stat: "Elemental Mastery",
weight: 0.8,
reason: "Sourced off-field priority; not a damage multiplier.",
},
{
stat: "CRIT Rate",
weight: 0.6,
reason: "Sourced lower ordinal priority after Energy Recharge and Elemental Mastery; not a damage multiplier.",
},
{
stat: "CRIT DMG",
weight: 0.6,
reason: "Sourced lower ordinal priority after Energy Recharge and Elemental Mastery; not a damage multiplier.",
},
],
aggregateTargets: [],
evidenceRules: {
minimumExtractionConfidence: 88,
minimumFieldConfidence: 78,
requiredFieldKeys: [...BUILD_FIT_REQUIRED_FIELD_KEYS],
},
conflictPolicy: {
equippedByOtherCharacter: "warn",
assignedToOtherBuild: "warn",
},
},
];
export function findCuratedBuildFitProfile(id: string) {
return curatedBuildFitProfiles.find((profile) => profile.id === id) ?? null;
}