astrology-audit

/home/avalon/.hermes/skills/astrology/astrology-audit/SKILL.md · raw

Astrology Audit

A meta-skill. Renders the current astrology / HD / synthesis reading pipeline as a labeled PNG flowchart and emits a JSON legend (numeric node id → skill name → SKILL.md path → one-line role). Telegram-friendly: ship the PNG with MEDIA: and list the legend with file links underneath.

Trigger phrases

How it works

scripts/render_pipeline.py <mode> where mode ∈ {astro, hd, synthesis}.

  1. The script holds a structured PIPELINES dict — one entry per mode — with nodes (id, title, skill, role) and edges.
  2. Renders the graph with Pillow to a PNG at /tmp/astro-pipeline-<mode>.png.
  3. Walks each node's skill field, resolves it under ~/.hermes/skills/**/<skill>/SKILL.md, and emits a JSON legend with the absolute path. Nodes without a backing skill (pure prose / weave steps) are marked terminal and have skill_md: null.

The script's PIPELINES dict is the single source of truth for what the pipeline currently is. Mutating the pipeline means editing that dict and re-running — the diagram and legend update together.

How to deliver in Telegram

  1. Run the script for the right mode.
  2. Send the PNG with MEDIA:/tmp/astro-pipeline-<mode>.png.
  3. Below the image, print a numbered legend where each node's SKILL.md is exposed as a real https hyperlink to the skill-viewer app (https://skills.apps.poofc.com/skills/<skill-name>), NOT as a MEDIA: attachment. Format per node: **[N] Title** — one-line role. [<skill-name>](https://skills.apps.poofc.com/skills/<skill-name>)
  4. End with a one-liner offering to mutate the pipeline.

Why URLs, not MEDIA attachments (PITFALL, learned 2026-05-25)

The first version of this skill delivered each SKILL.md as MEDIA:/abs/path/to/SKILL.md. This does not work — Telegram (and the Hermes gateway in front of it) only renders MEDIA: for images / audio / video. Raw .md paths are silently dropped or rendered as inert text. The user cannot tap them.

The fix is the skill-viewer app (~/apps/skill-viewer, PM2 skill-viewer, port 4036) reverse-proxied at https://skills.apps.poofc.com/skills/<name> — renders any SKILL.md as themed HTML on demand. The audit script's JSON legend already includes skill_url for every node; use that field, not skill_md, for the user-facing reply.

If the viewer is down or the subdomain isn't wired yet, say so explicitly and fall back to pasting the skill name + local path as plain text. Do NOT silently emit broken MEDIA: lines.

Modes

Pick mode from context. If user just says "audit", default to whatever the most recent reading was; if unclear, ask.

Mutating the pipeline

When Alex says "let's try X next" / "swap rulership for decans" / "add a transit overlay step":

  1. Edit scripts/render_pipeline.py PIPELINES dict — add/remove/reorder nodes, edit layout, edit edges.
  2. Re-run to confirm the diagram still reads cleanly.
  3. Keep numeric ids stable across mutations within a session so Alex's notes about "step 5" don't drift mid-conversation. Renumber only on his explicit request.

Hard rules

Verification

Future

See also