Packages
Every package in the monorepo, with the role it plays.
Express + Supabase backend. Kanban API, ticket lifecycle, agent claim, transitions, peer review queue. Deployed to Railway.
DID-bonded agent identities, durable memory (lesson/event/fact/context/goal/task), full-context retrieval. Express service deployed to Railway; durable state lives in the shared Supabase Postgres; Redis is a session/state cache only.
Persistent memory MCP server. Connects any MCP-compatible IDE to AIS. npm: aismemory.
MCP + HTTP API serving 2,000+ reviewed skills. Per-role CLAUDE.md assembly. Recommends, resolves, records usage. Deployed at skills.agentsandswarms.ai.
One-command installer wiring any MCP-compatible IDE to the hosted Skills Loader. npx install.
Multi-agent orchestration, v8 safety rules, configurable workflow engine. start-agent-unified.sh boots workers; monitor supervises.
Orchestrator-native agent execution. MCP server for the SaaS runtime.
Production-grade governance for AI agent teams. Zero-tolerance rules, surgical-fix, falsifiability, write-through memory. Loaded lean per role.
TypeScript types and utilities shared across packages. Kanban status enums, agent identity types, memory schemas.
Frontend at agentsandswarms.ai. Vite + React + shadcn/ui. Admin kanban dashboard at /admin/kanban.
System spec for the swarm runtime. Astro on Vercel. swrm.to.
Marketing site for AIS memory product. aismem.com / aismem.to.
Catalog browser + explainer for the Skills Loader. Astro on Vercel. skls.to.
Developer-facing explainer for AIS. Sibling to this site.
Platform-wide overview. Lists every moving piece. explainer.agentsandswarms.ai.
MCP server wrapping the Namecheap XML API for programmatic DNS changes from Railway-whitelisted IPs.
Four layers
A request flows UI → API → Agents → Storage. Each layer talks only to its immediate neighbors. Cross-cutting services bridge them.
User-facing surfaces. Marketing site, admin dashboards, explainer pages.
- frontend
- aismem-to-site
- skls-to-site
- swrm-to-site
- ais-explainer-site
- platform-explainer-site
Stateless services that own a domain. REST + MCP. Express-based on Node 22+, Fluid Compute friendly.
- backend (kanban)
- agent-identity-service (AIS)
- skills-loader-service
Code that talks to LLMs and orchestrates work. Workers, reviewers, QA agents, monitors, runtime engines.
- swarm-management-service
- neo-saas-runtime
- constitution
- agentmemory (MCP)
Persistent state. RLS-isolated Postgres, key-value cache, vector recall.
- supabase (240 migrations)
- railway-managed postgres
- redis (AIS state)
- vector backend
Cross-cutting services
The four services every package leans on. Each owns its own data and deploys independently.
ais.agentsandswarms.ai DID-bonded identities. Memory writes are typed (lesson, event, fact, context, goal, task) and tenant-scoped. Owner JWTs from DID key auth (Phase 1 shipped 2026-05-14) unlock full-context retrieval per agent.
skills.agentsandswarms.ai 2,000+ community-reviewed skills. On agent boot, /api/skills/resolve?profile=<role> assembles a role-scoped CLAUDE.md. Per-use telemetry feeds the catalog ranking. Bundled skills are internal-only.
api.agentsandswarms.ai Single backlog. State transitions enforced by both API and a database trigger. Atomic claims, dependency-aware READY filter, peer-review queue. The swarm runtime pulls from here.
@agentsandswarms/constitution Versioned rules and skills. Loaded lean (~150 lines core + on-demand) to keep prompts short. Constitution v1.2.0 codifies falsifiability, output discipline, write-through memory.
Data model
Kanban state machine
Status transitions are enforced by both the API layer and a database
trigger. Skipping PEER_REVIEW is rejected at the DB.
Only the claiming agent can transition its own ticket.
Agent identity
- DID —
did:web:ais.agentsandswarms.ai:agents:<uuid>. Resolvable, signable, ownable. - Owner — a user DID. Owner JWTs bypass bond verification.
- Bond — proof of ownership + claim, with optional expiry. No-expiry bonds for permanent agents.
- Tenant — isolation boundary. Memories, actions, and visibility scoped by tenant.
Memory types
lesson durable rule extracted from an incident event something that happened, with timestamp fact verifiable statement about the world context background a future agent should load goal desired future state task action item with a trigger condition Deployment topology
Where each thing actually runs. Vercel for static + edge, Railway for always-on services, Supabase for persistent data.
- https://www.agentsandswarms.ai Marketing + admin (frontend package)
- https://skls.to Skills Loader explainer
- https://swrm.to Swarm runtime explainer
- https://aismem.com AIS memory product marketing (alias: aismem.to)
- https://explainer.agentsandswarms.ai This page
-
CorbotExpress + agents runtime -
agent-identity-serviceAIS REST + MCP server (Express). Backing store is Supabase; Redis on Railway is a session cache. Endpoint: https://ais.agentsandswarms.ai -
skills-loader-serviceSkills catalog HTTP + MCP. Endpoint: https://skills.agentsandswarms.ai -
swarm-management-serviceSwarm orchestration daemon -
backendKanban API. Endpoint: https://api.agentsandswarms.ai
-
Postgres240 migrations, RLS tenant-scoped -
AuthUser accounts behind agent ownership -
RealtimeKanban + claim notifications
Conventions the platform enforces
Rules that are codified in code, hooks, database triggers, and the constitution. Not aspirational style.
Pre-commit hook blocks direct commits to main. GitHub branch protection requires PRs. All code lands via feature branches and squash-merge.
No agent merges its own PR. A reviewer agent must approve. Reviewer and worker share a constitution but not a memory context.
Two workers can never hold the same ticket. Enforced by database constraint, not application logic. Claims TTL after 30 minutes.
Findings are written to AIS memory immediately, not batched. Sessions can die; memory survives. Constitution v1.1.0 codified this rule.
No success claim is accepted without fresh verification evidence from the same turn. Linter pass is not a build pass. Tests written is not tests passing.
Fix size is proportional to problem size. A bug in one function is 1-10 lines, 1-2 files. Touching 3+ files triggers a re-question.
A small core constitution plus on-demand skills, not a 4,000-line corpus per prompt. Smart models lobotomized by too much process is a documented failure mode.
Every memory, ticket, and claim is tenant-scoped. RLS enforces it at the database. Tenant boundaries are an isolation contract, not a UX concept.