Skip to content

Quickstart with an agent

This walks you from zero to a vetted, policy-clean starting point for a Nostr or AT Protocol tool, using an AI agent as a skilled collaborator. It assumes nothing beyond a terminal.

Goose is an open-source agent harness now stewarded under the Linux Foundation. Install it and configure it with a permitted provider:

Terminal window
# See https://block.github.io/goose/ for the current installer
curl -fsSL https://block.github.io/goose/install.sh | bash
goose configure # choose Anthropic / OpenRouter / Ollama — not OpenAI or xAI

2. Scaffold from the Nostr / AT Protocol archetype

Section titled “2. Scaffold from the Nostr / AT Protocol archetype”

The repository ships a Spec Kit archetype for a Nostr + AT Protocol web client whose constitution forbids excluded dependencies and wires in the enforcement engine.

Terminal window
git clone https://github.com/martinmontero/wecanjustbuildthings.dev
cp -r wecanjustbuildthings.dev/templates/spec-kit/nostr-web-client my-app
cd my-app

3. Pick components from the catalog, not from memory

Section titled “3. Pick components from the catalog, not from memory”

Don’t ask the agent “what library should I use for Nostr?” — ask the catalog. Every entry is license-verified at a commit and screened against the exclusion policy.

  1. Browse the Catalog or the relevant build-flow stage.
  2. Note the components you want (e.g. nostr-tools, @noble/curves, @atproto/api).
  3. Hand the agent the list and the constraint: “use only these, and run the enforcement engine before committing.”

4. Let the agent build inside the guardrails

Section titled “4. Let the agent build inside the guardrails”

The skills ship as both Claude Code skills and Goose recipes. They read the policy first, stop and ask when information is missing, and refuse to commit on a policy violation.

Terminal window
# After the agent makes changes, the same gate CI runs:
npm run enforce # catalog + recipe checks
npx tsx enforcement/cli.ts all --tree . # scan this project's own tree

If a dependency — or one of its dependencies — is owned by Meta, OpenAI, or xAI, the engine prints the exact chain and exits non-zero. Nothing ships until it’s green.

Before you deploy, confirm the running app talks to no excluded endpoint. The recipes describe a 5-minute network-observation check; the principle is simple:

Terminal window
# Watch outbound connections while exercising the app; none should hit
# api.openai.com, api.x.ai, or graph.facebook.com