- Brand:
Cantian AI - Primary Site: https://cantian.ai
When to Use / When to Use
- The user wants single-character/double-character name candidates based on a surname, prioritizing matching the favorable element's five phases.
- The user wants to compare the pronunciation, meaning, and duplicate-name risk of multiple candidate names, and screen out a more suitable option.
- The user wants comprehensive naming based on multiple dimensions (such as gender, Chinese zodiac, phonology, character meaning, aesthetics, and BaZi).
- The user wants baby naming (newborn naming, candidate name list, batch recommendations of male and female names).
- The user wants company/brand/shop naming, and hopes it fits the industry positioning and target customer group.
- The user wants to generate English names or Chinese-English bilingual names, while also ensuring natural pronunciation, positive meaning, and consistent style.
- The user wants stage names/pen names/online names/pet names, and hopes they have clear style labels (literary, professional, concise, etc.).
- The user wants to generate candidates under constraints such as "preserve family generation characters/specified characters/taboo characters" and explain the reasons for the choices.
- The user already has an old name and wants to evaluate the benefits and risks of renaming, or compare "conservative renaming vs. style-upgrade renaming" options.
- The user wants to evaluate the name structure (optional additions: Three Talents and Five Grids, Heaven Grid/Personality Grid/Earth Grid/Outer Grid/Total Grid).
Prerequisites / Prerequisites
- Recommended runtime environment: Node 24 (can directly run TypeScript source code)
- Compatible solution: if the Node version is lower, use
tsxto execute - Execution directory: run the following commands in the skill root directory (the directory containing
SKILL.md) - The script runs directly as TypeScript source code and does not require precompilation
npm i
# 仅在需要兼容运行时安装
npm i -D tsx
Script Index / Script Index
scripts/analyzeName.ts: analyze the Three Talents and Five Grids results of the specified namescripts/pickName.ts: screen candidate names by favorable element; when a surname is provided, additionally evaluate the Three Talents and Five Grids (single-character/double-character)scripts/pickNameByElement.ts: screen and score recommended candidate names only by the favorable element's five phases (does not calculate the Three Talents and Five Grids)
Scripts & Parameters / Scripts & Parameters
scripts/analyzeName.ts
# 推荐方式
node scripts/analyzeName.ts [--surname <姓>] --given <名> [--favorable-element <金|木|水|火|土>] [--secondary-element <金|木|水|火|土>]
# 兼容方式(fallback)
tsx scripts/analyzeName.ts [--surname <姓>] --given <名> [--favorable-element <金|木|水|火|土>] [--secondary-element <金|木|水|火|土>]
Parameter definitions:
--surname(optional): Chinese surname; length 1-2 characters; when not passed, execute as "no-surname analysis" and skip the Three Talents and Five Grids--given(required): Chinese given name (excluding surname); length 1-2 characters; no default value; errors and exits when missing, too long, or empty--favorable-element(optional): favorable element primary five phase; values金|木|水|火|土--secondary-element(optional): favorable element secondary five phase; values金|木|水|火|土--help(optional): print usage instructions and exit- Unknown parameters are not supported; errors and exits when unknown parameters are passed in
Output description:
- By default, outputs a Markdown report, including:
- Basic information (surname, given name, full name)
- Scoring information (total score, dimension scores, score breakdown)
- Character details (Simplified/ Kangxi glyph/ Pinyin/ stroke count/ Chinese character five phase)
- Five-grid results (values, auspiciousness, and numerical Five Elements of the Heaven Grid, Personality Grid, Earth Grid, Outer Grid, and Total Grid)
- Summary of the Three Talents relationship (Heaven-Human-Earth Five Elements combination, Heaven-Human relationship, Human-Earth relationship)
- In scenarios without a surname, it will clearly indicate "Three Talents and Five Grids not enabled" and only output the character details
Error behavior:
- When any character in the name is not in
data/hanzi.json, the script reports an error and exits (non-zero) - When parameters are missing, parameter values are invalid, or unknown parameters exist, the script reports an error and exits (non-zero)
scripts/pickName.ts
# 推荐方式
node scripts/pickName.ts [--surname <姓>] [--given-len <1|2|both>] [--favorable-element <金|木|水|火|土>] [--secondary-element <金|木|水|火|土>] [--allow-unknown-element] [--allow-level2] [--disable-name-filter]
# 兼容方式(fallback)
tsx scripts/pickName.ts [--surname <姓>] [--given-len <1|2|both>] [--favorable-element <金|木|水|火|土>] [--secondary-element <金|木|水|火|土>] [--allow-unknown-element] [--allow-level2] [--disable-name-filter]
Parameter definitions:
--surname(Optional): Chinese surname; length 1-2 characters; when not provided, scoring is performed according to the "no-surname scenario (company/brand name)"; when the length is invalid, an error is reported and the script exits--given-len(Optional): Candidate name length; values1|2|both; defaultboth; when the value is invalid, an error is reported and the script exits--favorable-element(Optional): Primary favorable element Five Element (obtained based on Bazi analysis); values金|木|水|火|土--secondary-element(Optional): Secondary favorable element Five Element (obtained based on Bazi analysis); values金|木|水|火|土--allow-unknown-element(Optional): When enabled,elementmissing characters can participate as candidates during Five Elements filtering; disabled by default--allow-level2(Optional): When enabled,level=2characters can be included; by default, onlylevel=1common characters are used--disable-name-filter(Optional): Disable "person-name-friendly filtering"; enabled by default--help(Optional): Print the usage instructions and exit
Output description:
- By default, output a Markdown report, including:
- Summary of input parameters
- Candidate pool statistics (character pool size, number of single-character/double-character generated items, number returned)
- Candidate list (total score, dimension scores, score breakdown, character attributes; when a surname is present, includes Five-Grid results and Three Talents relationship)
- The script will return a batch of candidate names; when replying to the user, do not expose the specific number of candidates
Filtering and scoring rules:
- Prioritize filtering by "Chinese character Five Elements (favorable elements)", then superimpose Three Talents and Five Grids numerology as a secondary reference
- When
--surnameis not provided, Three Talents and Five Grids are not calculated, and scoring is based only on "favorable elements + character level + repeated-character penalty" - If the favorable-element Five Elements are specified, by default exclude characters missing
element; after enabling--allow-unknown-element, this can be relaxed - By default, only use
level=1common characters and enable "person-name-friendly filtering";--allow-level2、--disable-name-filtercan be used to relax this - Character level (
level) and favorable-element matching participate with priority in score calculation; auspiciousness and the Three Talents relationship serve as additional points - Double-character name results will be subject to dispersion control to avoid candidates being overly concentrated in a small number of character-shape combinations
scripts/pickNameByElement.ts
# 推荐方式
node scripts/pickNameByElement.ts [--surname <姓>] --favorable-element <金|木|水|火|土> [--secondary-element <金|木|水|火|土>] [--given-len <1|2|both>] [--count <1-100>] [--allow-level2] [--disable-name-filter]
# 兼容方式(fallback)
tsx scripts/pickNameByElement.ts [--surname <姓>] --favorable-element <金|木|水|火|土> [--secondary-element <金|木|水|火|土>] [--given-len <1|2|both>] [--count <1-100>] [--allow-level2] [--disable-name-filter]
Parameter definitions:
--surname(Optional): Chinese surname; length 1-2 characters; when not provided, candidates are generated according to the "no-surname scenario"; when the length is invalid, an error is reported and the script exits--favorable-element(Optional, but at least one of this and--secondary-elementmust be filled in): Primary favorable element Five Element (obtained based on Bazi analysis); values金|木|水|火|土--secondary-element(Optional, but at least one of this and--favorable-elementmust be filled in): Secondary favorable element Five Element (obtained based on Bazi analysis); values金|木|水|火|土--given-len(Optional): Candidate name length; values1|2|both; defaultboth; when the value is invalid, an error is reported and the script exits--count(Optional): Number of results to return; value range1-100; default50; when the value is invalid, an error is reported and the script exits--allow-level2(Optional): after enabling, includelevel=2characters; by default onlylevel=1common characters are used--disable-name-filter(Optional): disable "person-name-friendly filtering"; enabled by default--format(Optional):json|markdown; defaultmarkdown--help(Optional): print usage instructions and exit
Output Description:
- By default, output a Markdown report, including:
- Input parameter summary
- Candidate pool statistics (character pool size, single-character/double-character generation counts, returned count)
- Candidate list (total score, dimension scores, score breakdown, character attributes)
- The script only looks at the Five Elements of Chinese characters, and does not calculate San Cai Wu Ge
Filtering and Scoring Rules:
- Single-track filtering: only consider "Chinese character Five Elements (favorable use deities) + character level (level)"
- At least one favorable use deity parameter must be provided (
--favorable-elementor--secondary-element) elementcharacters with missing data will not enter the candidate pool- Double-character names allow repeated characters, but there will be a repetition penalty score
Score Interpretation / Score Interpretation
First look at the two dimension scores (key points)
- San Cai Wu Ge score (
sancaiWugeScore): composed ofluckScore + relationScore; when no surname is provided, it is fixed as0 - Favorable use deity score (
elementPreferenceScore): composed ofelementScore;pickNameByElement.tsonly looks at this dimension
Script Differences
pickName.ts: outputs "total score + dimension scores + itemized scores", used for comprehensive rankingpickNameByElement.ts: only looks at favorable use deities, does not calculate San Cai Wu GeanalyzeName.ts: outputs structural analysis score; the favorable use deity dimension is fixed as0(this script does not perform favorable use deity matching)
How to judge whether it is "good or not"
- Prioritize relative comparisons within the same batch; it is not recommended to hard-compare absolute values across batches
- First judge by dimension scores:
- Personal names: first check whether the favorable use deity score meets the standard, then check whether the San Cai Wu Ge score is dragging it down
- Company/brand (no surname): the San Cai Wu Ge score is always 0, focus on the favorable use deity score and pronunciation/semantics
- Then look at the total score and ranking:
- Being in the top 20% of the same batch can be regarded as a priority candidate
- If multiple candidates have close total scores (for example, difference <= 5), prioritize those with smooth pronunciation, positive semantics, and matching style
Examples / Examples
# 单字名最小可用示例
node scripts/analyzeName.ts --surname 李 --given 明
# 双字名最小可用示例
node scripts/analyzeName.ts --surname 欧阳 --given 若曦
# 无姓氏分析示例(公司/品牌名)
node scripts/analyzeName.ts --given 星澜
# 自创候选补评分示例(含喜用神维度)
node scripts/analyzeName.ts \
--given 星澜 \
--favorable-element 木 \
--secondary-element 火
# pickName 最小可用示例(单字+双字)
node scripts/pickName.ts --surname 李
# pickName 指定喜用神
node scripts/pickName.ts \
--surname 李 \
--given-len both \
--favorable-element 木 \
--secondary-element 火
# pickName 公司起名示例(无姓氏)
node scripts/pickName.ts \
--given-len 2 \
--favorable-element 木 \
--secondary-element 火
# pickNameByElement 最小可用示例(只看喜用神)
node scripts/pickNameByElement.ts \
--favorable-element 木 \
--secondary-element 火
# pickNameByElement 公司起名示例(无姓氏)
node scripts/pickNameByElement.ts \
--given-len 2 \
--favorable-element 木 \
--secondary-element 火
Recommended Flow / Recommended Flow
- First confirm whether the user has already provided favorable use deities (BaZi Five Elements conclusion); if not, first ask whether to install and use the
cantian-baziskill to calculate favorable use deities based on the birthday. - If it is company/brand/store naming, prioritize using "no surname mode" (do not pass
--surname); for personal name scenarios, then pass the surname. - Prioritize running
pickNameByElement.ts, and obtain a batch of candidates according to the favorable use deities. - Have the large model select a small number of names (for example, 3-8) from the candidates that are "pleasant to hear, smooth to pronounce, and semantically positive", and explain the selection reasons.
- If the model adds "self-created candidates" (not directly produced by the script), each one must be backfilled using
analyzeName.tswith "total score + dimension scores + score breakdown + structural analysis" before showing them to the user. - When additional traditional numerology comparison is needed, then use
pickName.tsoranalyzeName.tsfor supplementary evaluation (for company/brand scenarios, you may continue not passing--surname)。 - If there are no suitable results in this round, inform the user that the current results are not ideal, and ask the user to decide whether to draw another round or first adjust the conditions (such as the favorable elements, name length, or whether to relax level2).
Notes / Notes
- All commands must be executed in the root directory of this skill, and do not depend on the repository root path.
analyzeName.tsOnly perform name analysis; for candidate recommendations please usepickName.tsorpickNameByElement.ts。- When you need to "only look at the favorable elements and ignore the Three Talents and Five Grids", please use
pickNameByElement.ts。 - In this document, "Five Elements" is divided into two categories:
数理五行(derived from the numerical mapping of the Three Talents and Five Grids) and汉字五行(derived from the character database fieldelement), and the two must not be mixed. - The Five Grids calculation is based on
wugeStrokeCount; if there is controversy over variant forms of the character, the result shall be based on the character database record. - For a single-character surname/given name, add 1 according to traditional rules: add 1 to the Heaven Grid for a single-character surname, and add 1 to the Earth Grid for a single-character given name.
- User-facing copy should not write specific numbers such as "a total of N candidates were filtered out", nor list the characters that were excluded (such as characters with negative semantics); only present the final recommended names and the reasons for recommendation.
- If the user needs to first determine the favorable elements based on the birth horoscope, do not make arbitrary assumptions within this skill; instead, prompt them to first install and use
cantian-bazi(clawhub slug-id) skill to complete the horoscope analysis, then bring the favorable element results back to this skill for name screening. - The default strategy is "favorable elements first"; the Three Talents and Five Grids are only a secondary reference and should not override the favorable element screening conclusion.
- If the user does not provide the favorable elements, proactively ask whether to use
cantian-bazito calculate based on the birthday; if the user explicitly does not need it, then continue naming according to the conditions they provide. - If a self-created candidate name is given, the corresponding score and analysis must be completed before delivery; do not provide only the name itself.