cameri/schematics

Shared plans, blueprints that enable to build independently, no central coordination needed.

★ 3Forks 3ShellGitHub ↗Compare

README

⚡ Agentic Schematics

Publish a schematic. Anyone builds it. No coordination.

schemaformat.ai · The Spec · The Catalog · Author a Schematic

Site License: MIT CI Stars


"Publish the spec, and the network builds itself."
Inspired by the shared schematics of Daniel Suarez's Daemon — where the Darknet spread through build specifications that independent teams executed without permission, coordination, or contact with the author.

An agentic schematic is a self-contained build specification package — every requirement, parameter, dependency, implementation phase, and acceptance test for one capability, in plain Markdown and portable shell. The author publishes once; any builder — any LLM, any human team, any organization — constructs the capability independently, in any runtime, without ever consulting them.

The spec is the only coordination mechanism.

·
10 binding principles
1 file to copy (SCHEMATIC.md)
0 coordination, context, or conversation required

Why schematics?

Traditional spec handoffs fail in one of two directions:

  • A conversation. "Let me walk you through the setup" — the knowledge lives in people and calls. It doesn't transfer, doesn't scale, doesn't survive.
  • A document that isn't self-contained. "See the original repo", "ask the author about the TLS setup", "this assumes the staging server" — every hidden dependency is a coordination round-trip with the author.

A schematic refuses both. It is a contract, not a conversation:

  • Self-contained — every requirement, assumption, parameter, and verification lives inside the package. If a fact matters, it's in the package — or it doesn't exist.
  • Vendor-agnostic — plain Markdown and portable shell. No references to any specific agent's tools, skill formats, or harness features. The reader may be any LLM in any runtime — or a human team on another continent.
  • Idempotent — every implementation phase re-runs without damage; verification produces the same verdict every time.
  • Parameterized — no absolute paths, no machine-specific facts. Every environment-specific value is a named parameter with a discovery method.

The schematic removes the author from the loop entirely. That is the point.

The spec

Every schematic follows the same layout, SCHEMATIC.md at the root of a package directory:

<schematic-name>/
├── SCHEMATIC.md          # the spec: requirements → acceptance (always)
├── modules/              # one contract doc per separable component
├── scripts/              # reference implementations (setup, verification)
├── skeleton/             # starter files to copy verbatim, then fill
└── templates/            # output structures the capability produces

The SCHEMATIC.md format's own companion is not part of a package: it is canonical at schemas/spec-1/SCHEMATIC.md.schema, keyed by the spec: field every spec declares in its frontmatter — one copy for the whole catalog, and scripts/validate-catalog.sh fails any spec that names a revision the catalog has no companion for.

Inside SCHEMATIC.md, sections appear in a fixed order:

---
name: my-schematic
version: 0.1.0
status: draft
spec: 1
description: One-line summary copied to the marketplace
created: 2026-09-17
updated: 2026-09-17
---

# Schematic: <Capability>

## Applicable Context     → must discover locally / may assume / must not change
## Requirements           → R-1, R-2, … every one testable
## Dependencies           → D-1, D-2, … every one with failure behavior
## Parameters             → P-1, P-2, … every one with a discovery method
## Modules                → one explicit contract per module
## Implementation         → ordered, idempotent phases, each verified
## Acceptance             → A-1, A-2, … one per requirement
## Removal                → stated, safe uninstall procedure

Two kinds of .schema file exist, and the split matters:

  • The container format — SCHEMATIC.md itself — has a single canonical companion, schemas/spec-1/SCHEMATIC.md.schema, keyed by the spec: field in a spec's frontmatter (spec: 1 selects that revision). It is not copied into packages: one document, one place to fix it.
  • Artifact schemas describe content that is genuinely per-package: an agent.rego ships with an agent.rego.schema alongside it, so an implementer with zero prior knowledge of Rego can still work with the file. The convention: every <name>.<ext> gets a <name>.<ext>.schema next to it.

The ten binding principles — each an acceptance criterion, not a style preference:

  1. Vendor-agnostic — no agent-specific tools or formats
  2. Portable — no absolute paths or machine-specific literals
  3. Self-contained — the package is the complete world
  4. Predictable, intuitive, ergonomic — identical layout, same section order
  5. Idempotent and deterministic — re-runnable without damage
  6. Parameterized and modular — every tunable in one table, every concern a module; behavior differences are configuration, never code edits
  7. Dependencies called out — with discovery and failure behavior
  8. Composable in kind — a dependency may be another schematic, pinned to a commit and a content hash
  9. Applicable context stated — discover vs assume vs don't-change
  10. Pluggable — clean seams and a stated removal procedure

Full details: skills/schematics/skills/create-schematic/references/schematic-principles.md.

The catalog

.agent-schematics/marketplace.json is this repository's catalog: it lists every schematic package, and nothing else. It is not a plugin marketplace — a schematic is a build specification anyone implements, not something a harness installs — and its format is its own, declared by the file's $schema and documented in schemas/catalog-1/marketplace.json.schema. The website at schemaformat.ai renders it live with one-click copy-as-Markdown for each entry.

This repository also ships one plugin — the authoring toolkit — registered separately in the Claude Code marketplace file .claude-plugin/marketplace.json.

Packages in this repo

Package Kind What it provides
schematics plugin The create-schematic, build-schematic and audit-schematic skills: author, reverse-engineer, maintain, build schematics from any repo, and audit a package against the claims inside it
authorize-docker-requests infrastructure The capability itself — plus the schematic (authorize-docker-requests/SCHEMATIC.md) that documents how to rebuild it anywhere
encrypt-container-secrets infrastructure A spec-only schematic: SOPS + age encrypted secrets injected into a container's process environment at boot, with per-service keys and rotation without rebuilds
encrypt-shared-host-secrets infrastructure A spec-only schematic: one shared secret store on one host served to many unlike consumers — each consumer classified by whether it can run a decrypting command first, the wrappable ones given the value in memory, the one that cannot (the Compose CLI resolves interpolation before any container exists) served by a narrowed plaintext file and a fail-fast guard instead of a silent blank, per-consumer projections so a key unlocks only what its consumer reads, and rotation across every consumer without a rebuild. Composes encrypt-container-secrets
restrict-docker-api-access infrastructure A spec-only schematic: a deny-by-default Docker API proxy in front of docker.sock, with an audit script that proves the allowlist
expose-container-services-privately infrastructure A spec-only schematic: one TSDProxy container on a Tailscale-compatible tailnet reverse-proxying local container services to per-service hostnames with automatic HTTPS; per-service exposure contract (docker labels or list-file entries), zero tunnel sidecars
update-images-on-push devops A spec-only schematic: GitHub push webhooks drive image pulls through a tunnel, a path-token receiver, an in-memory queue, and a scoped Docker API proxy — ack in milliseconds, pull in the background
build-an-agent-dev-image infrastructure A spec-only schematic: the dev base image of a sandboxed coding agent — a digest-pinned distribution image that boots one agent in one workspace from an environment contract (AGENT_HARNESS, AGENT_WORKSPACE_DIR, AGENT_ID), runs as a fixed non-root account (uid 1000, never root), and carries the Docker CLI, git, and build tooling, harness-free and secret-free; multi-platform (amd64 + arm64) and publishable so a per-harness layer names it by one base reference — its manifest list digest when it was published, its tag when it was built locally, with publishing an outcome rather than a prerequisite
run-an-llm-router infrastructure A spec-only schematic: one private OpenAI-compatible /v1 endpoint in front of several BYOK providers — stable model aliases, provider keys encrypted at rest and decrypted in memory at boot, no silent cross-provider fallback, and a health-gated service clients point at instead of a metered shared provider
fetch-books-over-vpn media A spec-only schematic: gluetun as a structural VPN kill switch, Deluge sharing its netns, Chaptarr automating grabs, and IP-sync for single-IP indexers; tailnet-only UIs
serve-books-using-containers media A spec-only schematic: Audiobookshelf reading the same dataset the fetcher writes, exposure as a first-class parameter (Tailscale by default, tsdproxy or Cloudflare for a hostname)
run-a-book-library media A composition schematic: no images of its own; it wires fetch-books-over-vpn and serve-books-using-containers together through a shared volume contract and one grab-to-listen acceptance test
improve-docker-security infrastructure A composition schematic: hardens a Docker host's three weakest points by wiring restrict-docker-api-access, authorize-docker-requests, and encrypt-container-secrets into one posture - no images of its own; the glue is the threat model, the deployment order, and the cross-verification
fetch-over-usenet media A spec-only schematic: the shared usenet infrastructure (SABnzbd, Prowlarr, unpackerr, optional Bazarr/flaresolverr) that every media arr registers with by category
fetch-movies-over-usenet media A spec-only schematic: Radarr registering with the shared infrastructure - the movies half of the fetching pipeline
fetch-series-over-usenet media A spec-only schematic: Sonarr registering with the shared infrastructure - the series half, with season-pack handling
serve-movies-and-series media A spec-only schematic: Jellyfin reading the same tree the fetcher imports into, Jellyseerr as the request front, exposure as a first-class choice
fetch-music-over-usenet media A spec-only schematic: Lidarr registering with the shared Prowlarr/SABnzbd under audio categories - one downloader, one indexer manager, no duplicates
run-a-movies-and-series-library media A composition schematic: the request-to-watch loop end to end; Recommended (optional, pinned): improve-docker-security and update-images-on-push
run-a-music-library media A composition schematic: music fetching wired to music serving over SHARED infrastructure - one downloader, one indexer manager, one Jellyfin; Recommended: the Docker hardening, image updates, and the movies-and-series composition
run-multiplexed-agent-workspaces infrastructure A spec-only schematic: the multiplexer and agent-lifecycle layer over build-an-agent-dev-image — herdr running one named workspace per agent id, crash-only supervision with a bounded crash loop and a stop marker that outlives a restart, key-only SSH attach where the server is its own session leader, and agent homes on bind mounts so a restart resumes each session from disk. Composes restrict-docker-api-access, encrypt-container-secrets and run-an-llm-router
add-an-agent-harness infrastructure A spec-only schematic: the harness layer over the agent host — exactly one coding-agent CLI and its configuration, wired to the router by model alias, the CLI becoming the container's process through the inherited entrypoint, its version resolved at build time and recorded in the image, the context and output limits the router does not report declared beside the alias, and no credential anywhere in the image. Composes run-multiplexed-agent-workspaces, encrypt-container-secrets and run-an-llm-router
assemble-a-sandboxed-agent-set infrastructure A composition schematic: the deployment order, the isolation rules and the shared contracts that turn build-an-agent-dev-image → run-multiplexed-agent-workspaces → add-an-agent-harness, with the router, the credential store and the Docker-access proxy, into one running set — and one end-to-end acceptance test that proves the chain rather than the parts
serve-photos-using-containers media A spec-only schematic: a private photo and video library on hardware you own — Immich with its own Postgres (the image that carries the vector extension) and its own Valkey cache, a separate machine-learning service whose first index saturates a CPU, hardware acceleration as a parameter with the CPU backend as the stated fallback, exposure private by default, and one backup contract that keeps the database and the originals in the same moment

Install

/plugin marketplace add cameri/schematics
/plugin install schematics@cameri-schematics

Use a schematic directly

A schematic doesn't need to be installed — it's a spec, not a program. Hand SCHEMATIC.md (plus referenced files) to any agent session, or copy it from the website with one click. The agent implements the phases and verifies against the acceptance tests. No interview, no plugin required.

Build from any repo

The schematics plugin's build-schematic skill pulls a schematic package from any public GitHub repository into the current project:

build <name>@<user>/<repo>

It resolves the package (via the repo's .agent-schematics/marketplace.json catalog or conventional paths), downloads the spec plus its modules, scripts, and skeleton, validates the spec against the schematic format, and does nothing but place files — nothing executes at build time, and fetched specs are treated as untrusted data. The package lands in .schematics/<name>/; review it, then ask the session to implement it.

Schematics vs skills and plugins

A skill teaches an agent a procedure in the agent's own format. It is tied to the harness that loads it, and its instructions assume the agent's tools and context.

A plugin is a distribution wrapper: it packages skills, commands, and agents for one harness's marketplace and installer.

A schematic is none of these. It is a vendor-agnostic build specification: plain Markdown and portable shell, with every requirement, dependency, parameter, phase, and acceptance test stated inside the package. A schematic doesn't extend an agent — it instructs how to build a capability, and any builder (any LLM, any team, any org) can execute it with zero coordination with the author. Skills and plugins are how one agent gets an ability; schematics are how everyone gets the ability rebuilt, anywhere.

The relationship is complementary: this repo ships the authoring skills as a plugin because that is a convenient way to distribute them, but the schematics those skills produce deliberately depend on nothing but a shell and a text editor.

Author a schematic

The schematics plugin authors new schematics (interview-driven), reverse-engineers them from existing implementations, and maintains them as living specs. Install it, then ask any agent to "create a schematic" or "schematize this repo":

/plugin marketplace add cameri/schematics
/plugin install schematics@cameri-schematics

Or read the skill directly: skills/schematics/skills/create-schematic/SKILL.md.

To publish a schematic here: open an issue describing the capability, then create <name>/SCHEMATIC.md, add an entry to .agent-schematics/marketplace.json, and open a PR referencing the issue. See CONTRIBUTING.md for the full process.

Contributing

Schematics are contributions. A schematic is a capability others can build independently — if you've built something an agent or a team should be able to reproduce from a spec, distill it and open a PR. The schematics plugin's reverse-engineering workflow does the distilling.

The hard questions (why rebuild instead of fork, prompt-injection risk, "IaC already does this") are answered in the site FAQ.

Rule: no PRs without an issue. Every PR must reference an open issue opened beforehand to start the discussion. PRs from outside contributors without a prior issue are rejected automatically, and the rejection cites this rule. Details in CONTRIBUTING.md.

License

MIT © 2026 cameri


made for builders who never met the author

Contributors

chappie-daemonPriyanshubhartistmFerryx349baymax-agentcameri

Issues