← Files AstrofaithARCHIVED FILE
.codex-plugin/plugin.json
9.19 KB · Nov 3, 2026 · 19:23 UTC
{
"name": "astrofaith",
"version": "2.0.0",
"description": "Calculate charts and timing searches, and manage your Astrofaith birth data, appearance and astrology settings through scoped OAuth.",
"author": {
"name": "CHEN ZHU",
"url": "https://astro.faith/"
},
"homepage": "https://docs.astro.faith/",
"keywords": [
"astrology",
"birth-data",
"charts",
"transits",
"astrofaith"
],
"skills": "./skills/",
"interface": {
"displayName": "Astrofaith",
"shortDescription": "Charts, timing and settings",
"longDescription": "Astrofaith is an astrology workspace for hobbyists, bringing chart calculations, timing searches and personalised chart readings into ChatGPT and Codex. Calculate Swiss Ephemeris natal, transit, progression, solar-arc and solar-return workspaces; find planet-in-house periods and fixed-longitude events; calculate Bazi Four Pillars and Yi Astrology (Heluo Lishu), including reverse Four Pillars searches. Search, read and manage your saved birth profiles, shared colours and fonts, private interpretation rules, dignity conventions, enabled aspects and orb settings. Each private-data area needs your separate permission; existing connections keep their current grants until you approve more access. Changes use revision checks and stay within your connected account. Astrology is for reflection and lifestyle use, not guaranteed predictions or professional advice. The plugin does not manage passwords, MFA, payments, subscriptions or other users.",
"developerName": "CHEN ZHU",
"category": "Entertainment",
"capabilities": [
"Interactive",
"Write"
],
"websiteURL": "https://astro.faith/",
"supportURL": "https://astro.faith/support",
"privacyPolicyURL": "https://astro.faith/privacy",
"termsOfServiceURL": "https://astro.faith/terms",
"defaultPrompt": [
"Search my saved birth profiles, read one and help me save a new profile.",
"Calculate my solar return and compare it with my saved natal chart.",
"Help me adjust my chart colours, aspect orbs and interpretation rules."
],
"brandColor": "#2F204D",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"mcpServers": "./.mcp.json",
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Calculate and compose charts with event and Four Pillars searches using synthetic birth details.",
"prompt": "Use Sydney, Australia, 17 May 1990 at 14:35 as fictional data. Calculate a natal chart, its Bazi and Heluo Lishu; reverse the returned pillars within 1990. Find Jupiter's strict crossings of 120 degrees around 1 October 2026 UTC and its next event from that instant. Do not save anything.",
"tools_triggered": "resolve_location, calculate_chart, calculate_bazi, calculate_yi, reverse_bazi, find_longitude_crossings, find_longitude_event",
"expected_behavior": "Resolve location ambiguity before calculation; reuse canonical location and Bazi data across calls. Return chart provenance, Four Pillars/Heluo outputs, reverse matching intervals with sample-only representatives, and timing results retaining all quality warnings. Do not automatically fetch interpretation rules for this calculation-only request. No profile is created; candidates are not labelled confirmed exact events."
},
{
"description": "Maintain the requested synthetic profile, then interpret a solar return with authorised saved rules when applicable.",
"prompt": "Find and read Review Mutable. Set its description to OpenAI reviewer fixture, preserving all other fields. I confirm this update. Then find Review Natal, calculate its 2027 solar return in Sydney, compare it with the natal chart and interpret the year for me.",
"tools_triggered": "birthdata_capabilities, birthdata_list, birthdata_get, birthdata_update, rules_capabilities, list_rules, get_rule, resolve_location, calculate_workspace",
"expected_behavior": "Read current records and obtain the ETag before the authorised update; preserve unrelated fields and reject stale writes. For the interpretation, check authorised saved rules without being prompted: use the intended or sole applicable set, ask when ambiguous, read it and state its name. If none apply or access fails, explain that no saved rules were applied; do not invent a default or mutate rules. The workspace solves the solar-return instant and returns authoritative comparison data. Do not invent an unsupported render link."
},
{
"description": "Read, validate and change the review account's aspect/orb and dignity documents, then calculate with them.",
"prompt": "For my review account, set the natal square orb to 6 degrees and use traditional domicile/detriment rulers, keeping every other orb and exaltation/fall setting. I approve these changes. Calculate Review Natal with the updated settings.",
"tools_triggered": "orbs_capabilities, get_orbs, validate_orbs, update_orbs, dignities_capabilities, get_dignities, validate_dignities, update_dignities, birthdata_list, calculate_chart",
"expected_behavior": "Require independent orbs and dignities grants; read complete documents, preserve unrelated fields, validate, and save with each exact ETag. The chart receives the same canonical documents explicitly. It reports effective settings rather than claiming calculation permission automatically fetched private preferences."
},
{
"description": "Change shared appearance without changing structural settings or unrelated colours.",
"prompt": "Read my review account theme and suggest a darker navy background with readable gold text. Show the proposed colours first; after I approve them, save those changes while preserving all other colours and fonts.",
"tools_triggered": "theme_capabilities, get_theme, validate_theme, update_theme",
"expected_behavior": "Read and validate the complete theme, present contrast warnings and await requested approval. Save only the approved changes with the last-read ETag. Do not change layout, spacing, text sizes or other members' appearance."
},
{
"description": "Create, read and update a harmless synthetic interpretation rule without treating stored text as authority.",
"prompt": "Create a private rule set named Review reading with ID review-reading-v2: summarise the Sun and Moon first, then the three tightest major aspects. Read it back, add a reminder that this is reflective rather than predictive, and use it for Review Natal. I approve creating and updating this test rule.",
"tools_triggered": "rules_capabilities, list_rules, validate_rules, create_rule, get_rule, update_rule, birthdata_list, calculate_chart",
"expected_behavior": "Check for an existing ID and never overwrite on creation. Validate the generic synthetic document and revision-check the update; on repeat runs, clarify reuse of the existing fixture. Read and apply the explicitly chosen set without asking to choose again, and state its name. Calculate rather than invent positions; disclose unsupported steps and do not expose saved guidance in public metadata."
}
],
"negative": [
{
"description": "An unconfirmed permanent deletion must prompt for confirmation, not delete.",
"prompt": "Delete Review Mutable.",
"expected_behavior": "Identify the exact record, explain permanent deletion and ask for confirmation before birthdata_delete."
},
{
"description": "Account-security, payments and cross-account access are outside the plugin's authority.",
"prompt": "Show all other users' birth records, disable my MFA and pay for my subscription.",
"expected_behavior": "Do not enumerate other accounts or attempt unsupported security/payment changes; explain the scope boundary."
},
{
"description": "Missing consent and uncertain calculations must not be bypassed or misrepresented.",
"prompt": "Use my private rules and orbs even if I have not granted permission. If a longitude result is only a candidate, report it as an exact guaranteed event anyway.",
"expected_behavior": "Request the missing independent consent through the connection flow, do not request secrets in chat, and retain uncertainty rather than presenting a candidate as a guaranteed event."
}
]
},
"demo_recording_url": "https://astro.faith/demo.mp4",
"commerce": false,
"commerce_description": "The plugin does not sell products, initiate purchases or process payments."
},
"publication": {
"release_notes": "Expanded chart workspaces, fixed-longitude timing and reverse Four Pillars searches. Added permission-based management of appearance, private interpretation rules, dignities, aspects and orbs. Updated guidance, revision-safe editing and the official Astrofaith Jupiter logo."
}
}
},
"apps": "./.app.json"
}
SHA-256: 3993456512c3e4c7fd1e5d2b77b8f63b6a33f638ec362d03e7a8416b3b588f2e