hd-prism-tenant-api

/home/avalon/.hermes/skills/astrology/hd-prism-tenant-api/SKILL.md · raw

HD Prism Tenant API

Use this skill whenever a user asks for any of these:

Hard rule

Do not calculate Human Design inside the tenant with local Python/JS modules, Swiss Ephemeris, timezonefinder, pytz, or hand-derived gates.

Astral Hermes tenants should call Alex's shared HD Prism service:

https://hdprism.apps.poofc.com/api/tenant/bodygraph

This mirrors the Astral chart-service pattern: the app/service owns calculation; the tenant owns conversation and interpretation.

Endpoint

GET  https://hdprism.apps.poofc.com/api/tenant/health
POST https://hdprism.apps.poofc.com/api/tenant/bodygraph
POST https://hdprism.apps.poofc.com/api/tenant/bodygraph.svg

Request JSON:

{
  "name": "Example Person",
  "birthDate": "1985-09-26",
  "birthTime": "07:14",
  "location": "London, England"
}

Optional alternatives:

{ "timeZone": "Europe/London" }
{ "utc": "1985-09-26T06:14:00Z" }

Curl example

curl -sS -X POST 'https://hdprism.apps.poofc.com/api/tenant/bodygraph' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Example Person","birthDate":"1985-09-26","birthTime":"07:14","location":"London, England"}'

Response shape:

{
  "ok": true,
  "service": "hd-prism-tenant-api",
  "resolved": {
    "timezone": "Europe/London",
    "utcIso": "1985-09-26T06:14:00.000Z",
    "source": "transit-list-demo.api.time.resolve"
  },
  "summary": {
    "type": "Projector",
    "authority": "Emotional",
    "profile": "6/2",
    "definition": "Split Definition",
    "environment": { "label": "Blending Caves" },
    "channels": ["10-57"],
    "gates": ["46"]
  },
  "bodygraph": { "...full HD Prism bodygraph...": true }
}

SVG chart route

Use this when a tenant needs a displayable bodygraph image/SVG in addition to JSON chart data.

POST https://hdprism.apps.poofc.com/api/tenant/bodygraph.svg

Request JSON uses the same birth-data fields as /bodygraph, plus optional render options:

{
  "name": "Example Person",
  "birthDate": "1985-09-26",
  "birthTime": "07:14",
  "location": "London, England",
  "theme": "light",
  "width": 900
}

Response:

Safe terminal pattern — save the SVG to a file; do not pipe remote curl output into Python/Node/shell interpreters:

curl -fsS -o bodygraph.svg \
  -H 'Content-Type: application/json' \
  --data-binary @payload.json \
  'https://hdprism.apps.poofc.com/api/tenant/bodygraph.svg'

To “pull a chart” for both interpretation and display:

  1. Call /api/tenant/bodygraph for JSON calculation and summary.
  2. Call /api/tenant/bodygraph.svg with the same birth data when the app/UI needs a bodygraph visual.
  3. Treat SVG as presentation only; use JSON summary/bodygraph for interpretation.

Required workflow

  1. Extract name, birth date, local birth time, and location/timezone from the user.
  2. If any required field is missing, ask only for the missing field(s).
  3. Call POST /api/tenant/bodygraph before interpreting.
  4. Use summary for compact answers and bodygraph.activations for detailed line/color/tone/base work.
  5. Mention the resolved timezone/UTC if relevant.
  6. Interpret from the returned API data. Never invent type/profile/authority/gates.

Failure behavior

If the API returns ok:false or the HTTP call fails:

Bad:

I can infer you're probably a Generator...

Good:

I need the HD Prism service to calculate the actual bodygraph. The service could not resolve the birth location; can you give me the IANA timezone, e.g. America/Los_Angeles?

Interpretation notes

Default compact output:

For deeper analysis, use the full bodygraph.activations object; Environment is derived from Design South Node, already included in summary.environment and bodygraph.environment.