Skip to main content

Interview-driven bootstrap for a reusable agentic coding setup: proof-loop engine + project rules + skills, installed into any repo.

Project description

specced

Install a reusable, interview-driven agentic coding setup into any repo — one command instead of copy-pasting .claude/, .codex/, CONSTITUTION.md, and the proof-loop scaffolding between projects.

specced is two things sharing one set of templates:

  • a uv-installable CLI that does the deterministic, agent-agnostic scaffolding, and
  • a Claude Code plugin whose specced-bootstrap skill interviews you — detects your stack, asks a few sharp questions, and writes the project-specific content.

What you get

specced installs three layers into a repo:

  1. The engine — the repo-task-proof-loop skill (spec-freeze → build → evidence → fresh-verify → fix, with durable .agent/tasks/<ID>/ artifacts). Vendored from OpenAI, Apache-2.0 — see NOTICE.
  2. The structure — four project agents (.claude/agents/ + .codex/agents/), managed blocks in CLAUDE.md/AGENTS.md, a Stop-hook formatter, skeletons for .claude/rules/, .claude/code-review/, .mcp.json, and a Makefile verification vocabulary — plus an agent-experience layer: a pre-authorized permission allowlist, an orientation block, and a machine-readable checks map (.specced/).
  3. The content (interview) — your real CONSTITUTION.md, per-track rules, review dimensions, MCP servers, and make targets — authored to fit this repo.

Install

uv tool install specced          # or: uvx --from git+https://github.com/NoroSaroyan/specced specced

In Claude Code, add the marketplace and install the plugin:

/plugin marketplace add NoroSaroyan/specced
/plugin install specced

Quickstart

From inside the target repo, in Claude Code:

/specced:init

This runs the interview: it detects your stack, asks what matters, runs specced init for the mechanics, then writes your constitution, rules, review dimensions, MCP servers, and Makefile targets. Add --minimal to author all content by hand.

Then start your first task with the installed engine:

init my-first-task     # via the repo-task-proof-loop skill

Documentation

Full docs in docs/: Getting started · Concepts · The proof loop · CLI reference · Skills · Presets · FAQ

CLI reference

specced detect                    Inspect the repo: languages, tracks, infra,
                                  suggested preset + MCP servers (JSON).
specced presets                   List stack presets.
specced init [--preset NAME|auto] [--minimal] [--force] [--format-cmd "…"]
                                  Install / refresh the setup (idempotent).
specced add-mcp <names…> [--force]  Add MCP servers to .mcp.json from the catalog.
specced add-skill <name> [--force]  Install a library skill into .claude/skills/.
specced list-skills               List available library skills.
specced sync                      Refresh engine + agents + managed blocks.
specced doctor                    Verify the setup is consistent.
specced status                    Show installed components, presets, mcp catalog, config.
specced version                   Print specced + engine versions.

12 presets (go, rust, python-fastapi, python-django, python, node-next, node-svelte, node-react, node-express, node, java-spring, ruby-rails — see docs/presets.md) and a 17-skill library (code-review, api-endpoint, db-migration, add-integration, background-worker, regen-client, write-tests, debug-issue, refactor, dependency-upgrade, perf-investigation, security-review, release, prepare-pr, new-domain-skill, decision-record, capture-rule — see docs/skills.md).

Every command prints JSON, so the interview agent can read exactly what happened. State is recorded in .specced/config.json.

How it works

The CLI is the mechanical half: it copies the vendored engine, installs the static agent + managed-block templates verbatim (the same files the engine itself would write), and lays down create-if-absent skeletons for the content layer. The plugin is the intelligent half: the specced-bootstrap skill detects, interviews, calls the CLI, then replaces the skeletons with real content. One template tree, two surfaces.

Develop

make install   # uv venv + editable install with dev extras
make verify    # ruff format --check + ruff check + pytest + build (the CI gate)

See CONTRIBUTING.md and docs/architecture.md.

Status

v0.1 — interview-first, with stack detection, 12 presets, a 7-server MCP catalog, a 17-skill library, an agent-experience layer, and GitHub repo-as-code (Terraform under infra/terraform/github/). Roadmap: a specced update that diffs managed content across versions, more presets/skills, and PyPI publication.

License

specced is MIT (see LICENSE). It bundles the Apache-2.0 repo-task-proof-loop engine unmodified; attribution in NOTICE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

specced-0.1.0.tar.gz (86.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

specced-0.1.0-py3-none-any.whl (132.0 kB view details)

Uploaded Python 3

File details

Details for the file specced-0.1.0.tar.gz.

File metadata

  • Download URL: specced-0.1.0.tar.gz
  • Upload date:
  • Size: 86.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for specced-0.1.0.tar.gz
Algorithm Hash digest
SHA256 908ce0ccdaa9faa4f1c8d666ff98e4cd92b7b140e3022fd5d0ee96dbe27823ef
MD5 d07c246c7e5e7194bea76c357da53a56
BLAKE2b-256 41b37741ba2eeaa05da8bcbcb958ff59c704b09fd8c6bf1e96c508cf8d6c4166

See more details on using hashes here.

Provenance

The following attestation bundles were made for specced-0.1.0.tar.gz:

Publisher: release.yml on NoroSaroyan/specced

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file specced-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: specced-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 132.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for specced-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01f2644985774d2d36e948a7bb43372e9d989854f04355689bd0d140e7666554
MD5 dc971aa7be704bde550f9e20a1d005ba
BLAKE2b-256 82acf3f3b808d424b0cf0f20b86a0568b3355de347e9deb44eb9e57d965f111b

See more details on using hashes here.

Provenance

The following attestation bundles were made for specced-0.1.0-py3-none-any.whl:

Publisher: release.yml on NoroSaroyan/specced

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page