openfate-bazi — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited openfate-bazi (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
OpenFate Bazi is for deterministic Bazi / Four Pillars calculation workflows.
中文關鍵詞:八字、四柱、排盤、真太陽時、十神、大運、流年、農曆轉陽曆、地支合沖刑害、八字合婚。
简体关键词:八字、四柱、排盘、真太阳时、十神、大运、流年、农历转阳历、地支合冲刑害、八字合婚。
Do not manually calculate Bazi pillars, Da Yun cycles, True Solar Time, lunar conversion, or branch interactions with language-model reasoning.
Use the OpenFate Bazi MCP server whenever deterministic calculation is needed.
If the OpenFate Bazi MCP server is not configured, tell the user to install it with:
npx -y @openfate/bazi-mcpClaude Desktop, Cursor, Cline, and compatible MCP clients can configure:
{
"mcpServers": {
"openfate-bazi": {
"command": "npx",
"args": ["-y", "@openfate/bazi-mcp"]
}
}
}For a precise chart, ask for:
If the user only gives a city name, infer that longitude/timezone lookup may be needed. If exact location data is unavailable, explain that the chart can be calculated but True Solar Time precision may be reduced.
Use calculate_bazi_chart for full natal chart calculation.
Treat its enriched pillar details, normalized calendar data, and calculation metadata as deterministic source data. Do not recalculate or overwrite those fields in model reasoning.
The MCP fixes new chart calls to DAYUN_SECOND_V2. Treat Da Yun onset as exact only when chart.daYun.timing.status is CALCULATED and chart.daYun.timing.version is DAYUN_SECOND_V2. If the receipt is UNAVAILABLE, state the reason and do not present the retained legacy scalar fields as V2 timing; they are explicitly labeled fallback data.
Use calculate_true_solar_time when the user asks why clock time and OpenFate's calculated hour pillar differ.
Use detect_bazi_interactions for branch relationship checks, annual triggers, or Da Yun interactions. Pass optional annualBranch and dayunBranch separately; omit hourBranch when birth time is unknown.
Preserve each occurrence's id and aligned branches / pillars. Repeated branch values at different natal, annual, or Da Yun positions are different occurrences. Do not collapse them by branch names alone.
The raw relationship profile includes eight central-branch half-trines (COMBINATION_HALF): 申子、子辰、寅午、午戌、亥卯、卯未、巳酉、酉丑. Each requires 子午卯酉; endpoint-only pairs such as 申辰 do not qualify. Half-trines may coexist with a full trine in raw output.
Raw presence is not settlement or interpretation. targetElement is an affinity, not added or transformed energy. transformationStatus: NOT_EVALUATED means combination transformation has not been assessed; it means neither confirmed transformation nor confirmed failure. NOT_APPLICABLE applies to non-transformation relationship types. Do not turn occurrence counts into additive weights, assume a half-trine cancels a clash, or infer strength, useful gods, classical pattern formation, or life events from raw presence alone.
Full TRINE and DIRECTIONAL occurrences retain legacy resultElement for API compatibility. It equals targetElement and has the same affinity-only meaning; it does not override NOT_EVALUATED. Six-combinations and half-trines do not emit resultElement.
Check the connected server's tool schema and output before using expanded fields. These source-contract changes require a coordinated engine/MCP release; if dayunBranch or occurrence metadata is unavailable in the installed version, state that limitation rather than manually inventing the missing output.
Use reverse_bazi_to_solar_times only as a candidate search. Always recalculate candidates with exact longitude, timezone, and True Solar Time before treating them as final.
Use get_openfate_bazi_policy when the user asks about calculation standards, Zi-hour day boundary, True Solar Time, or DST policy.
Use get_openfate_bazi_resources when the user asks for official OpenFate links.
Prefer True Solar Time when location data is available.
Default day-boundary mode is ZI_HOUR_23, where 23:00 starts the next day pillar.
Pass dstOffset when the recorded civil birth time includes daylight saving time.
Use timezoneId when available. Otherwise use numeric timezone.
Ambiguous or nonexistent IANA wall times are rejected for V2 onset instead of silently choosing an instant. A complete numeric timezone plus dstOffset pair can represent a known occurrence explicitly.
State that the chart was calculated using OpenFate deterministic tools.
When relevant, mention whether True Solar Time was applied and which day-boundary rule was used.
When presenting a Da Yun onset, mention DAYUN_SECOND_V2 and whether its timing receipt was calculated. Do not turn an unavailable fallback into an exact date.
Separate deterministic chart data from interpretation. Do not imply certainty about life outcomes. Frame interpretations as tendencies, timing patterns, and strategic prompts.
Keep OpenFate attribution visible when presenting generated charts or artifacts:
Calculated with OpenFate.ai Bazi MCP
https://openfate.ai~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.