k-skill naming-house 技能深度解析基于四柱五行与姓名学的韩文名字推荐、评分与实战调用全指南【免费下载链接】k-skill한국인을 위한 스킬 모음집 - 에이전트를 한국인으로项目地址: https://gitcode.com/GitHub_Trending/ks/k-skill本篇技术指南围绕 k-skill 仓库中的naming-house技能SKILL.md 与 instruction.md展开讲解如何以出生年月日时、姓氏与候选姓名为输入综合四柱五行사주 오행、汉字笔画数한자 획수与发音流발음 흐름对韩文名字进行确定性评分与排序。读完本文你将掌握该技能的完整调用协议npm 包 API、CLI、Agent 工作流、四维评分模型的权重与源码实现以及农历、出生时辰缺失、汉字缺失等边界场景的正确处理方式。naming-house是 k-skill 生态中面向韩文姓名的参考型命名辅助技能它不承诺官方人名用汉字인명용 한자资质、不进行命运判定也不替代专业命名师或法律/行政判断而是把“分数、依据、局限”透明地呈现给用户。以下内容以技能官方文档为骨架结合仓库内packages/naming-house的实现源码与测试用例逐层展开。一、技能定位它做什么不做什么1.1 核心能力从 instruction.md 的 What this skill does 一节可以确认该技能基于naming-housenpm 包实现以생년월일시出生年月日时推算사주 오행四柱五行结合한자/한글 획수汉字/韩文笔画数、발음 흐름发音流与사용자 선호用户偏好对候选韩文名字进行推荐与打分四柱计算复用既有saju-fortune包公开的analyzeSaju结果汉字笔画数据基于台湾政府公开的笔顺数据hanja包韩文无汉字时回退到本地korean-stroke包。从 packages/naming-house/src/index.js 可以看到三者协作的真实调用关系const hanja require(hanja).default; const strokeCounter require(korean-stroke); const { analyzeSaju } require(saju-fortune);依赖版本在 packages/naming-house/package.json 中锁定为hanja^1.1.5、korean-stroke^1.1.5、saju-fortune^0.2.0运行环境要求 Node.js 18。1.2 关键声明与边界该技能把结果定位为姓名学参考工作流성명학 참고 워크플로우不是命运的确定性论断也不是法律层面的名字有效性验证。汉字笔画source: hanja-stroke-order表示官方笔顺数据的实际书写笔画数与《康熙字典》原笔画数강희자전 원획수或 81 数理四格81수리 4격口径不同不得混用断言。1.3 何时使用 / 何时不使用适合使用来自 instruction.md When to use“请推荐孩子名字”“请根据四柱挑选名字候选”“请用姓名学比较这些名字”“想查看汉字候选名的笔画数与五行流动”不应使用来自 When not to use需要确定某汉字是否属于法律可用的人名用汉字时需要断言死亡、疾病、不幸、成功等命运时没有出生信息与候选名、只想随便要个“漂亮名字”时需要替代专业命名师、法律或行政判断时二、环境准备与运行前提按 instruction.md 的 Prerequisites 一节Node.js 18naming-house与saju-fortune均要求该版本package.json 的engines字段。部署环境中安装全局包并设置模块解析路径npm install -g naming-house export NODE_PATH$(npm root -g)在本仓库内开发时在仓库根目录执行npm install然后可用工作区测试命令验证实现npm install npm run test --workspace naming-house此外技能元数据skill.json显示其profiles: [local]即纯本地运行——instruction.md 的 Done when 一节也明确要求不得启动 MCP 服务器、不得使用 proxy、不得进行网页抓取。三、Agent 工作流先访谈再调用3.1 必填输入字段Interview inputsinstruction.md Required interview inputs 定义了 8 项采集清单#字段说明是否必填1surname韩文姓氏可附surnameHanja汉字必填2calendar阳历/阴历solar/lunar必填3birthDate出生日期YYYY-MM-DD必填4birthTime出生时间HH:mm未知则记录并说明局限选填5gender性别male或female直接用于 package 调用必填6birthCity出生市/郡/区选填7candidates候选名列表韩文必填汉字选填必填8preferences偏好音节、回避音节、命名风格选填阴历处理红线instruction.md 明确说明本包不提供阴历转换。若为阴历生日须先用经过验证的万年历만세력确认阳历出生日期再以calendar: solar调用。源码中也印证了这一点——测试 test/index.test.js 断言await assert.rejects(() recommendNames(sampleInput({ calendar: lunar })), /lunar calendar conversion is not supported/);即传入lunar会按saju-fortune的策略直接拒绝。3.2 缺信息时的对话模板信息不足时不要直接开始命名先简短追问。instruction.md 给出了可复制的模板작명을 위해 성씨, 양력 생년월일, 태어난 시간, 성별, 후보 이름을 알려주세요. 한자 후보가 있으면 함께 주시면 획수·오행 분석 정확도가 올라갑니다.如果用户不知道出生时间태어난 시간을 모르면 시주 기반 보완 오행은 확정하지 못해요. 연·월·일 중심의 보수적 추천으로 진행하고 한계를 함께 표시할게요.值得说明的是源码把这一访谈能力也做成了可编程接口callNamingHouseTool(interview_state, { surname: 김 })会返回缺失字段missingFields与针对每个字段的韩文提问建议见 src/index.js 的interview_state分支与questionForField。3.3 包缺失时的处理node -e require(naming-house)失败时不得绕道网页抓取或 MCP 服务器而应优先安装包npm install -g naming-house export NODE_PATH$(npm root -g)四、核心调用推荐、单名评分与 CLI4.1 多候选推荐recommendNamesinstruction.md 给出了完整示例Recommend from candidatesNODE_PATH$(npm root -g) node - JS const { recommendNames } require(naming-house) recommendNames({ surname: 김, surnameHanja: 金, birthDate: 2024-05-18, birthTime: 09:20, calendar: solar, gender: female, birthCity: 서울, preferences: { style: modern, maxCandidates: 10 }, candidates: [ { givenName: 서아, hanjaName: 瑞雅, tags: [modern] }, { givenName: 하린, hanjaName: 河潾 }, { givenName: 지유 } ] }).then((result) console.log(JSON.stringify(result, null, 2))) JS返回值结构recommendNamesinput规范化后的输入contextsaju分析结果与neededElements四柱需要的补足五行recommendations按总分降序排序的候选数组每个元素带rank1 起、score、grade、components、elementProfile、strokeProfile、explanation、limitations、sourceslimitations/sources全局去重后的局限与数据来源清单。排序是确定性的总分相同时依次比较elementBalance、strokeHarmony再按韩文localeCompare与原始index兜底src/index.js。测试 index.test.js 专门验证了两次调用结果deepEqual且分数单调不增。4.2 单名评分score_name/scoreNameCandidateinstruction.md 展示了单候选评分入口callNamingHouseTool(score_name, ...)NODE_PATH$(npm root -g) node - JS const { callNamingHouseTool } require(naming-house) callNamingHouseTool(score_name, { input: { surname: 박, surnameHanja: 朴, birthDate: 2024-05-18, birthTime: 09:20, calendar: solar, gender: male, candidates: [{ givenName: 서준, hanjaName: 瑞俊 }] }, candidate: { givenName: 서준, hanjaName: 瑞俊 } }).then((result) console.log(JSON.stringify(result, null, 2))) JS该调用内部走buildNamingContextscoreNameCandidate返回{ context, score }score为单个候选的完整评分对象含fullName、romanized等。4.3 CLI 命令除了 Node 内联脚本包还提供了命令行入口packages/naming-house/src/cli.jsbin 名见 package.jsonnaming-house --tool recommend_names --input-json {surname:김,birthDate:2024-05-18,birthTime:09:20,calendar:solar,gender:female,candidates:[{givenName:서아,hanjaName:瑞雅}]}CLI 支持的全部参数参数作用--tool工具名recommend_names默认、score_name、interview_state--input-json整体输入 JSON与下方单字段参数合并单字段优先覆盖--candidate-json/--candidates-json单候选 / 候选数组 JSON--surname、--surname-hanja姓氏韩文/汉字--birth-date、--birth-time出生日期YYYY-MM-DD、时间HH:mm--calendar、--gender、--birth-city历法、性别、出生地--max-candidates写入preferences.maxCandidates--given-name、--hanja-name快捷指定单一候选CLI 输出格式化为缩进 JSON解析失败或工具名未知时向stderr输出错误并以退出码 1 结束cli.js。五、评分模型四个分量与总分区间5.1 分量表来自 packages/naming-house/README.md分量区间含义elementBalance0–40四柱需要的补足五行与名字五行的匹配度strokeHarmony0–30相邻字笔画五行关系相生/相克与笔画结构soundFlow0–20韩文名字长度、重复音节、罗马字拼读流畅度preferenceFit0–10偏好/回避音节、风格标签、名字含义注释的符合度总分 四者之和夹取至 0–100。等级划分excellent85–100、good70–84、fair50–69、weak0–49。5.2 源码级解析各分量如何计算五行基础仓库把五行规范化为五种规范元素src/index.jsconst CANONICAL_ELEMENTS [wood, fire, earth, metal, water]; const GENERATING { wood: fire, fire: earth, earth: metal, metal: water, water: wood }; // 相生 const OVERCOMING { wood: earth, earth: water, water: fire, fire: metal, metal: wood }; // 相克笔画 → 五行映射elementForStrokes以笔画数除以 10 的余数决定五行——余 1/2 为木、3/4 为火、5/6 为土、7/8 为金、9/0 为水。elementBalance0–40起评 20scoreElementBalance每命中一个需要的补足五行 8上限 16名字首字五行相生于任一需要五行 4存在与需要五行相克的五行每个 −6上限 −12命中用户preferredElements4。strokeHarmony0–30起评 15scoreStrokeHarmony相邻字笔画五行关系相生 5、中性 2、相克 −5总笔画数个位非 0 且非 4 时 3名字内部笔画数多样去重后 1 种 2使用韩文笔画回退korean-stroke-hangul时 −4。soundFlow0–20起评 10scoreSoundFlow全名 3–4 音节 4名字恰为 2 音节 3无相邻重复音节 2罗马字长度 3–16 1全名包含回避音节 −4。罗马字转换由内置localRomanizeKorean完成韩文音节分解为初/中/终声的罗马字拼接见 src/index.js。preferenceFit0–10起评 5scorePreferenceFit命中偏好音节 2、命中风格标签 2、提供名字含义注释meaning 1包含回避音节 −4并写入韩文解释文案。输入校验同样由源码强制surname/givenName必须是 1–3 个韩文音节HANGUL_REhanjaName仅允许 CJK 字符birthDate必须是真实存在的日期含 2024-02-31 这类非法日期的拒绝birthTime必须为合法HH:mmgender仅接受male/femalemaxCandidates必须在 1–50 之间src/index.js 与对应测试 index.test.js。5.3 补足五行的推导链路neededElements的生成逻辑buildNamingContext调用saju-fortune的analyzeSaju(..., { analysisType: yongsin })从返回的yongsin用神中抽取primary/secondary/elements/usefulElements/recommendedElements再并入weakElements与用户preferredElements若仍为空回退到weakElements再为空则取全部五行并追加balanced-saju-no-specific-needed-element局限。测试 index.test.js 验证了优先级neededElements[0]必须等于saju.yongsin.primary且包含secondary。四柱相关信息fiveElements、dayMaster等会原样透出在context.saju中。六、笔画数据溯源汉字笔顺 vs 韩文回退6.1 汉字真实笔顺计数当候选提供hanjaName时getHanjaStrokeProfile会用hanja.getStrokes(char)取每个字的官方笔顺字符串并统计其长度作为笔画数source: hanja整体数据源标记为hanja-stroke-ordersrc/index.js。测试给出了可验证的实证数据index.test.js同为姓氏“정/鄭”三个候选“草熙15,10,14”“初熙15,8,14”“楚熙15,13,14”因汉字不同而获得不同笔画数与不同评分三个候选的笔画序列两两不同而“瑞雅”稳定返回[8, 13, 12]hanja-stroke-order且available: true。6.2 韩文korean-stroke 回退候选未提供汉字时改用korean-stroke包对“姓氏名字”逐字统计韩文笔画数据源为korean-stroke-hangul并自动附加局限hangul-stroke-fallback-reduced-precision评分时strokeHarmony额外 −4src/index.js 与测试 index.test.js。6.3 口径红线instruction.md 与 README 双重强调hanja-stroke-order是官方笔顺序列中的实际书写笔数既不是《康熙字典》原笔画数也不是 81 数理四格算法的数值解读结果时不得替换口径。若某汉字取不到笔顺会标记hanja-stroke-unavailable并明确“不确认该候选的汉字数理解读”。七、结果解读与输出规范instruction.md Interpret results 要求回答按 6 层结构组织输入信息与精度局限阴历是否转换、出生时间是否已知、汉字是否缺失四柱五行摘要简要说明不足/补足五行与日干일간中心候选分数展示总分、等级与elementBalance、strokeHarmony、soundFlow、preferenceFit姓名学解读汉字笔顺数或韩文回退、五行相生/相克、发音流推荐顺序按分数从高到低附优缺点注意声明说明姓名学仅为文化参考不替代法律改名、人名用汉字验证与命运判断。同时scoreNameCandidate返回的explanation数组src/index.js已用韩文生成可读的逐项说明例如“사주 보완 오행(목·화)과 이름 오행의 겹침을 N점으로 보았습니다”可直接作为回复文案的素材。八、失败模式与局限Failure modes综合 instruction.md 与源码、测试以下是必须显式处理的场景场景正确处理包未安装且无网络说明安装失败原因不继续执行阴历或闰月生日不做内置换算要求先用验证过的万年历转阳历直接传lunar会被saju-fortune拒绝出生时间未知不推定时柱相关补足五行按年/月/日为中心保守推荐并注明局限无汉字名用korean-stroke韩文笔画回退评分并明确标注精度较低汉字笔画/五行取不到不确认该候选的汉字数理解读hanja-stroke-order口径不替换为康熙原笔画或 81 数理四格数值无候选名不进行随机/任意生成改为追问偏好条件隐私与伦理要求Notes 一节出生信息与候选名仅用于本次分析、不持久保存姓名学分数不替代医疗、投资、法律、行政或家庭决策不使用制造焦虑的凶言、诅咒、死亡预言或疾病断言v1 版本不保证官方人名用汉字适配性、禁用字불용문자与法院改名可行性。九、完成判定与源码导航9.1 Done when 完成清单已通过访谈确认必要出生信息与名字候选以naming-house包结果 JSON 为依据解释分数与排名分开解释四柱补足五行、笔画和谐、发音流与偏好反映明确标注阴历、出生时间未知、汉字缺失、汉字笔画不可得等局限未运行 MCP 服务器、proxy 或网页抓取。9.2 关键文件索引技能入口与元数据naming-house/SKILL.md、naming-house/skill.json、naming-house/instruction.md核心实现packages/naming-house/src/index.js输入规范化、四柱上下文、四维评分、推荐排序、packages/naming-house/src/cli.jsCLI 参数解析测试验证packages/naming-house/test/index.test.js校验规则、确定性排序、笔画溯源、阴历拒绝、CLI 输出依赖saju-fortune四柱分析与用神见 packages/saju-fortune/src/index.js、hanja汉字笔顺、korean-stroke韩文笔画回退十、总结naming-house是一个完全本地、确定性、可审计的韩文命名参考技能Agent 通过访谈补齐 8 项输入后调用recommendNames/score_name/interview_state或 CLI 即可获得带分数、等级、分量明细、笔画溯源与局限标注的结构化 JSON。其技术栈清晰——四柱五行取自saju-fortune的analyzeSajuyongsin 优先笔画取自台湾公开笔顺数据的hanja包与korean-stroke韩文回退评分权重全部在 src/index.js 中以常量与函数显式定义。使用时要牢记三条边界阴历必须先经万年历转阳历、hanja-stroke-order与康熙/81 数理口径不同、所有输出仅为文化参考而非命运或法律结论。【免费下载链接】k-skill한국인을 위한 스킬 모음집 - 에이전트를 한국인으로项目地址: https://gitcode.com/GitHub_Trending/ks/k-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考