Ascendant

Build with an agent

Give your coding agent the Ascendant docs, a prompt that sets the rules, and a checklist for reviewing what it writes.

These docs are written to be read by a coding agent. An agent can do two separate things with Ascendant:

The agent shouldUseWhere
Write code that calculates charts, dashas, and transitsThe docs and a promptThis page
Answer astrology questions from a saved birth chartThe Ascendant skillSkills and plugins

Start with the prompt

Getting started has a prompt for any coding agent. Paste it, replace the last line with your task, and send it. It carries the docs location, runtime pattern, time-zone handling, and school rules.

Give the agent the docs

Pick the form that fits the job:

FormAddressUse it for
Index/llms.txtEvery page with a one-line description. Start here.
Everything/llms-full.txtAll pages in one file, about 200 KB. Send it when the agent has the room.
One page/docs/<page>.mdA single page as Markdown, such as /docs/quickstart.md or /docs/guides/transits.md. Getting started is /docs/index.md.
Copy buttonCopy Markdown on each pageOne page pasted into a chat.
Open menuOpen on each pageA page sent to ChatGPT, Claude, Cursor, or Scira AI, or its source on GitHub.
Typesnode_modules/astro-ascendantExact signatures from the shipped TypeScript declarations, once installed.

The API reference is generated from the published package, so its names and types are exact. The guides explain how the pieces fit.

Reading order

Done means the agent can name the guide and API page its task uses.

  1. Read /llms.txt to see what exists.
  2. Read the Quickstart and Core concepts for the vocabulary and the runtime pattern.
  3. Read the one guide for the task, such as settings, dashas, or transits.
  4. Look up each name in its API reference page before using it.

Effect

Ascendant is built on Effect 4, and names changed between releases. Add Effect's own guide for current code: LLMS.md. The Quickstart lists more Effect resources.

Keep the rules in your project

Put the rules in the file your agent reads every session, such as AGENTS.md or CLAUDE.md:

## Astrology (astro-ascendant)

- Docs index: https://astro-ascendant.vercel.app/llms.txt. Read the relevant page
  before writing code, and take names from the API reference.
- Effect docs: https://raw.githubusercontent.com/Effect-TS/effect/refs/heads/main/LLMS.md
- Build one `ManagedRuntime` from `Runtime.MainLayer`, reuse it, and dispose it at shutdown.
- Keep all moments in UTC. Convert local time with its IANA zone and the birth date,
  using `DateTime.makeZoned` with `disambiguation: "reject"`. Ask for missing birth data.
- Calculate Placements once with `Chart.generate` and reuse them.
- Default is KrishnamurtiVP291 + Placidus (KP). Use Lahiri + WholeSign for Parashari.
  Judge each question in one school, and report the settings used.
- Handle typed errors with `Effect.catchTag`, and let defects propagate.
- Describe results as mechanics: positions and periods, never predictions or
  medical, legal, or financial advice.

Review what the agent wrote

Each row is a mistake this library invites. Done means every row holds.

CheckWhy it matters
One ManagedRuntime, created onceA runtime per request starts with an empty position cache. See Ephemeris adapters and caching.
Local time converted with the zone for that dateOffsets change over time, and a daylight-saving gap or overlap can shift a birth by an hour. See From local time to a Located Moment.
One school per judgment, settings statedKP and Parashari use different ayanamsas and house systems. See Choose a school and settings.
Every function and import existsAgents invent names or reach for removed ones. Chart.generate replaces Chart.project, removed in 6.0.
Dasha.at and Dasha.atRashi results checked for nullThey return null outside the timeline. See Dashas.
Errors handled by tagChart.generate fails typed on bad input. See Errors and typed failures.
Arudha Pada described as the plain projectionThe library skips the classical adjustment. See Jaimini calculations.
Results framed as positions and periodsA calculation is not a promise.

A known-good result

Have the agent calculate this birth and compare. A match means its runtime, time conversion, and chart code are almost certainly right.

  • Birth: 2000-01-01 17:30 local time, Asia/Kolkata, latitude 12.9716, longitude 77.5946
  • Settings: defaults, KrishnamurtiVP291 with Placidus
PointExpected
D1 Lagna69.68°, Gemini, Ardra pada 1
D9 Lagna signSagittarius
Moon199.55°, Swati pada 4, not retrograde
Saturn16.62°, Bharani pada 1, retrograde

The Quickstart builds this program and shows its full output. The settings recorded on each result give the agent, and you, something to cite. See Provenance and verification.

Agents that answer questions

The Ascendant skill saves birth data once and answers from that record with cited evidence:

npx ascendant-skills install

It works with Claude Code, Codex, OpenCode, Cursor, Gemini CLI, Copilot, and other skill-compatible agents. See Skills and plugins for per-tool steps.

On this page