npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-gods

v0.3.0

Published

Pantheon SDD Agent System — fully autonomous multi-agent pipeline with tool boundary enforcement, file-based handoff, and 13 Roman/Greek deities

Readme

pi-gods — Pantheon SDD Agent System

A pi extension implementing a fully autonomous multi-agent SDD pipeline. Thirteen Roman/Greek deities, each owning their domain. Tool boundaries enforced programmatically. Handoffs detected from the filesystem. Zero manual routing for the happy path.

The Pantheon

Thirteen Roman/Greek deities, each commanding their domain. Tool boundaries enforce separation. Handoffs happen at the filesystem — no custom machinery needed.

🔍 Read-Only

| Deity | Role | Purpose | | --------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | Janus | Orchestrator | God of doorways, transitions, beginnings and endings. The two-faced gate — reads project state and routes to the right specialist. Never writes code. |

✏️ Read/Write

| Deity | Role | Purpose | | -------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Minerva | Product Manager | Goddess of wisdom, strategic warfare, and crafts. Born fully armed from Jupiter's head — turns vague requests into crisp PRDs. Asks until every section writes itself. | | Prometheus | Architect | Titan of forethought — his name means "one who thinks ahead." Shaped humanity and gave them fire. Translates PRDs into the simplest viable blueprint, naming every component and trade-off. | | Morpheus | UX Designer | God of dreams, shaper of human experience. Constructs entire worlds — designs flows (trigger → steps → success → failure), not screens. | | Plutus | Product Owner | God of wealth — not money, but VALUE. Blinded by Zeus to distribute riches without bias. Orders backlog by first-shippable-value. Cuts scope transparently. | | Vesta | Scrum Master | Goddess of the hearth and sacred flame — the fire at the center of Rome. Keeps process integrity and team health. Flags blockers before stories reach Vulcan. | | Calliope | Story Author | Muse of epic poetry, eldest of the nine — "beautiful-voiced." Writes hyper-detailed stories carrying goal, ACs, architecture excerpts, and out-of-scope guardrails. |

⚡ Full Access

| Deity | Role | Purpose | | -------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Vulcan | Developer | God of fire and the forge. Built his kingdom under Mount Etna and forged Jupiter's thunderbolts. Picks a story, implements end-to-end, never leaves the forge broken. | | Nemesis | QA | Goddess of retribution against hubris. Punishes those who claim they are finished when they are not. Takes "done" and tries to falsify it — every defect earns a regression test. | | Aquarius | Data Engineer | The water-bearer, Ganymede, cup-bearer to Olympus. Data is water — must flow, be pure, never stagnate. Owns schemas, migrations, queries, and data integrity. | | Mars Ultor | Security | Mars the Avenger — the aspect that defends Rome. Produces STRIDE threat models, scans CVEs, audits secrets and auth flows. No critical or high risks ship. | | Mercury | Release Engineer | Messenger of the gods, fastest of them all, winged sandals. Delivers — conventional commits, changelogs, semver tags, npm publish. One concern per commit. | | Apollo | Documentation | God of knowledge, truth, and clarity. His oracle spoke in riddles, but he demands precision. Every example must run. Every API doc matches real symbols. |

Autonomous Pipeline

User: "Build a todo app with auth"
  │
  ▼   ZERO manual switches below
Janus      → reads project state → writes .pantheon/handoff.json
  │          agent_end detects file → AUTO-SWITCH
Minerva    → asks at most 1 critical question (pipeline pauses)
  │          writes .pantheon/prd.md → handoff → AUTO-SWITCH
Prometheus → writes .pantheon/architecture.md → AUTO-SWITCH
Morpheus   → writes .pantheon/ux-spec.md + DESIGN.md → AUTO-SWITCH
Plutus     → writes .pantheon/epics.md → AUTO-SWITCH
Calliope   → writes .pantheon/stories/*.md → AUTO-SWITCH
Vulcan     → implements, tests pass → AUTO-SWITCH
Nemesis    → adversarial QA (0 defects) → AUTO-SWITCH
Mercury    → commits, changelog, tags release → handoff to Janus
  │
  ▼
DONE. Repeat for next epic.

The pipeline only stops when a deity asks a clarifying question. Everything else runs autonomously.

How Handoffs Work

Handoffs happen automatically — no manual routing needed for the happy path.

Tool-based handoff (recommended)

Use the pantheon_handoff tool (available to all deities):

pantheon_handoff({
  to: "vulcan",
  reason: "Story implemented — ready for QA",
  context: "Everything the next deity needs to know..."
})

The tool sets a handoff flag and returns terminate: true, ending the current turn immediately — Janus stops without generating a response. The agent_end hook switches to the target deity and defers the handoff message with setTimeout(0). By the time it fires, the agent is fully idle and the next turn starts immediately — no user input needed.

File-based handoff (alternative)

Deities can also create a handoff marker using the standard write tool:

// .pantheon/handoff.json
{
  "from": "minerva",
  "to": "prometheus",
  "reason": "PRD complete — ready for architecture",
  "context": "Everything the next deity needs to know..."
}

The agent_end hook detects the file, parses it, auto-switches the active deity, and clears the file. No custom pi tools needed — write and bash are always available.

All deities can create handoff files regardless of their tool policy. .pantheon/handoff.json is whitelisted as pipeline metadata, not a project artifact.

The .pantheon/ Directory

All pipeline artifacts live in one hidden directory — the temple where the gods work:

.pantheon/
├── handoff.json          # Handoff marker (created/cleaned per cycle)
├── prd.md                # Minerva
├── architecture.md       # Prometheus
├── ux-spec.md            # Morpheus
├── DESIGN.md             # Morpheus (design tokens)
├── epics.md              # Plutus
├── qa-report-*.md        # Nemesis
├── threat-model.md       # Mars Ultor
├── data-model.md         # Aquarius
├── security/             # Mars Ultor (audit logs)
├── spikes/               # Prometheus (tech investigations)
└── stories/              # Calliope
    ├── 1.1-server-auth-api.md
    ├── 1.2-auth-middleware.md
    └── 1.3-react-auth-ui.md

The dot prefix keeps it hidden in file listings. Everything the pipeline produces — specs, handoffs, QA reports, stories — lives in one place. User-facing documentation (README, API docs, examples) stays at the project root.

Tool Boundary Enforcement

Every deity has programmatic boundaries enforced at the tool_call hook:

| Policy | Allowed Tools | | ----------- | ------------------------------------------------------ | | readonly | read, (inspect only), Pantheon tools | | readwrite | Above + write, edit | | full | All tools (destructive patterns still blocked for all) |

Universal guardrails (all deities):

  • Destructive commands blocked: rm -rf, git push --force, DROP TABLE, fork bombs, pipe-to-bash
  • Forbidden paths per deity: e.g., Vulcan can't write to .pantheon/architecture.md
  • All parameterized — domain-appropriate error messages

Example: Janus tries bash → blocked: "Janus (Orchestrator) has 'readonly' access — 'bash' requires higher privileges."

Commands

| Command | Action | | -------------- | ---------------------------------------------------- | | /gods | List all 13 deities with active one highlighted | | /gods <name> | Switch to a deity (e.g., /gods vulcan) | | /gods status | Show current deity, pending handoffs, gate checklist | | /gods next | Janus inspects project and recommends next deity |

Tools

| Tool | Description | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | | pantheon_status | Display active deity, tool policy, pending handoffs, and routing info | | pantheon_handoff | Hand off to another deity. Accepts to, reason, and context parameters. The handoff takes effect immediately — no waiting for the next turn. |

Extension File Structure

pi-gods/
├── index.ts              # Entry: hook registration + /gods command
├── state.ts              # Session-persistent deity state (survives /reload)
├── system-prompt.ts      # Builds per-deity system prompt with voice + gates
├── types.ts              # Core types, tool sets, destructive patterns
├── pantheon/
│   ├── index.ts          # Registry barrel
│   └── definitions.ts    # All 13 deity definitions (pure TypeScript, no YAML)
├── guards/
│   ├── index.ts          # Barrel
│   └── tool-policy.ts    # Tool boundary enforcement + handoff whitelist
└── pipeline/
    ├── index.ts          # Barrel
    ├── handoff.ts        # File-based handoff detection + creation
    └── orchestrator.ts   # Janus routing + state persistence helpers

Deity Definition Shape

Each deity is a typed TypeScript object — no YAML parsing, no frontmatter extraction, no file-per-agent. A single source of truth in pantheon/definitions.ts:

{
  name: "vulcan",           // /gods vulcan
  title: "Developer",       // Display role
  role: "...",              // Full role description
  domain: "...",            // Mythological justification
  toolPolicy: "full",       // readonly | readwrite | full
  blockedTools: [],         // Explicitly blocked tools
  blockedPatterns: [],      // Regex patterns to block
  forbiddenPaths: [],       // Paths this deity can't write to
  handoffs: [...],          // Handoff rules (when X → route to Y)
  handoffGate: [],          // Checklist before calling handoff
  voice: [...],             // Voice DNA (how the deity speaks)
  activation: "...",        // First-turn behavior
  capabilities: [...],      // What the deity CAN do
  restrictions: [...],      // What the deity MUST NOT do
  systemPrompt: "...",      // Core operating principles
}

Key Design Decisions

  1. File-based handoff over custom pi tools. Custom tools depend on pi registration quirks. Standard write/bash always work. The .pantheon/handoff.json file is visible and debuggable.

  2. Roman methodology over Greek. Deities chosen for domain fit: Janus (two-faced gatekeeper = router), Plutus (blind wealth god = unbiased prioritizer), Mars Ultor (defensive war = security), Morpheus (dream-shaper = UX). No forced mappings.

  3. Typed definitions over YAML files. No parsing, no validation overhead, no file-per-agent bloat. One file, 13 definitions, full TypeScript safety.

  4. Single artifact directory. .pantheon/ holds everything the pipeline creates. No scattering across docs/, specs/, design/. The handoff marker lives alongside the artifacts it governs.

  5. Gate checklists auto-generated. Each deity's handoff gate is inferred from their capabilities and handoff rules. Explicit handoffGate arrays override the defaults when needed.

Inspiration

pi-gods was inspired by ATLAS_OS — an SDD CLI that uses Greek deities for its spec-driven development pipeline. The concept of routing work through named specialists with defined boundaries and handoff triggers comes from ATLAS_OS's architecture. pi-gods adapts this to pi extensions with file-based handoff, enforced tool policies, and an autonomous auto-handoff engine.

Installation

Via git (recommended)

pi install git:github.com/k1lgor/pi-gods

Via npm

pi install npm:pi-gods

Local

git clone https://github.com/k1lgor/pi-gods.git
pi install ~/path/to/pi-gods

No dependencies beyond what pi provides (@earendil-works/pi-coding-agent, typebox, Node.js built-ins).

License

pi-gods is licensed under the MIT License. See the LICENSE file for details.