Skip to main content

Lightweight AI collaboration spec for solo/small projects

Project description

sspec

简体中文

Sspec Synthesizes Programs from Explicit Context.

sspec is a file-based workflow for AI-assisted development. It keeps planning, decisions, and handover in your repository, so an agent can resume work across sessions instead of restarting from zero.

Why sspec

AI coding sessions usually fail at continuity:

  • decisions get lost after context compression,
  • implementation intent drifts between sessions,
  • humans repeat the same project background.

sspec solves this by storing working state in .sspec/ and defining agent behavior in AGENTS.md.

Quick Start

1) Install

pip install sspec
# or
uv tool install sspec

2) Initialize in your project

cd your-project
sspec project init

Then fill .sspec/project.md with your stack, conventions, and key paths.

3) Create a request

sspec request new add-password-reset

Write the request in .sspec/requests/... (problem, initial direction, success criteria).

4) Hand it to your agent

In chat with your coding agent:

@change add-password-reset

The agent should run the SSPEC lifecycle, update change files, and ask for human decisions at @ask gates.

5) Resume later

@resume

The agent reloads handover.md, tasks.md, and spec.md to continue from the previous stopping point.

Lifecycle

Each phase has a dedicated SKILL in .sspec/skills/.

[Request] -> [Research] -> [Design] -> [Plan] -> [Implement] -> [Review] -> [Handover]
                     (ask)      (ask)         (ask)        (feedback loop)

Core rules:

  • Research focuses on understanding problem space and code context.
  • Design and Implement are mandatory @ask checkpoints.
  • Plan uses a lightweight @ask confirmation.
  • Implement and Review form a feedback loop until user acceptance.
  • Handover is not optional cleanup; it is a lifecycle phase.

What sspec creates

project/
├── AGENTS.md
└── .sspec/
    ├── project.md
    ├── changes/
    ├── requests/
    ├── asks/
    ├── spec-docs/
    ├── skills/
    └── tmp/
  • project.md: project identity, conventions, long-term notes.
  • changes/<id>/spec.md: problem and proposed solution.
  • changes/<id>/tasks.md: executable checklist and progress.
  • changes/<id>/handover.md: session memory and next steps.
  • requests/: user intents before formal change creation.
  • asks/: agent-to-user Q&A records.

Human vs Agent

Human responsibilities

  • create requests,
  • answer @ask questions,
  • approve design and review outcomes.

Agent responsibilities

  • assess scope (micro/single/multi-change),
  • create and maintain change files,
  • keep tasks and handover current,
  • drive the ask-feedback loop until accepted.

Chat Directives

These directives are interpreted by agents that load your AGENTS.md.

Directive Typical use
@change <name> Start/resume work on a change
@resume Continue the active change
@handover Persist state for next session
@sync Reconcile docs (tasks.md, handover.md) with code reality
@argue Stop current approach and reassess scope

CLI Reference

Project

sspec project init
sspec project status
sspec project update --dry-run

Requests

sspec request new <name>
sspec request list
sspec request show <name>
sspec request find <query>
sspec request link <request> <change>
sspec request archive [name] --with-change

Changes

sspec change new <name>
sspec change new --from <request>
sspec change new <name> --root
sspec change list --all
sspec change find <query>
sspec change validate <name>
sspec change archive [name] --with-request

Asks

sspec ask create <topic>
sspec ask prompt <ask-file>
sspec ask list --all
sspec ask archive [name]

Spec docs

sspec doc list
sspec doc new "<name>"
sspec doc new "<name>" --dir

Optional utilities

sspec skill list
sspec skill new <name>
sspec cmd add
sspec cmd list
sspec cmd run <name>
sspec tmp new <name>
sspec tool mdtoc <file>
sspec tool view-tree
sspec tool pack-zip --dry-run
sspec tool patch --prompt

Compatibility

sspec works best with coding agents that can:

  • read and write repository files,
  • follow instructions from AGENTS.md,
  • execute local CLI commands.
  • use claude skills.

License

AGPL-V3.0

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

sspec-1.1.1.tar.gz (858.9 kB view details)

Uploaded Source

Built Distribution

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

sspec-1.1.1-py3-none-any.whl (152.6 kB view details)

Uploaded Python 3

File details

Details for the file sspec-1.1.1.tar.gz.

File metadata

  • Download URL: sspec-1.1.1.tar.gz
  • Upload date:
  • Size: 858.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sspec-1.1.1.tar.gz
Algorithm Hash digest
SHA256 349a1c1be7045691808768bda104a09e3305c105d453cb8f82fb03f30c067bfb
MD5 ccb87345336d7fb99dd839aa5d68a6d1
BLAKE2b-256 fc18f4668179cc49e2ce6d0484edc5470411ea69d0d72837e2b76248a017cf97

See more details on using hashes here.

File details

Details for the file sspec-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: sspec-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 152.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sspec-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f69d5321ad2ef33cae18d400c8e0782917d0b97db2f899cbac24ebb60827439b
MD5 f902db2fd9d697423769f44140689b9f
BLAKE2b-256 9869fabb49f4e1d41fe7ec30872ab969d4c66d714a6eca7f91e617f82b91aa23

See more details on using hashes here.

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