Skip to main content

slicer

Roadmap and slice management for the review → slice → implement → done loop.

slicer is AI-friendly: a coding agent can review a project, turn accepted findings into an importable roadmap, and work through bounded slices using commands with JSON output. For a new project, start with goals and acceptance criteria instead of review findings. The AI supplies the review and planning; slicer stores, validates, prioritizes, and renders the work. It runs locally without an AI service or API key.

Run slicer ai instructions for a concise agent quick start, or add --json for machine-readable output. It works before initialization and reads no project state.

The permanent canonical store is git-tracked JSON under .slicer/. It travels with branches and clones, exposes state changes in review diffs, and lets slicer check compare generated output byte for byte. The markdown under .slicer/render/ is generated output — readable, committed, and never parsed back. Edit through the commands or the TUI, not by hand.

Any future database may only be a disposable cache inside the checkout: gitignored, rebuildable from JSON, and never read back as authority. ~/.slicer/ is not a canonical state directory; canonical state stays inside the checkout. Coordination stays in git.

Stdlib Python 3.11+, no dependencies.

Install

Into its own virtual environment from PyPI. The distribution is squalor-slicer because the slicer name on PyPI is taken; the command it installs is still slicer.

python3 -m venv ~/.slicer-venv
~/.slicer-venv/bin/pip install squalor-slicer
ln -s ~/.slicer-venv/bin/slicer ~/.local/bin/slicer   # or anywhere on your PATH

slicer --about prints the version, description, source URL, and issues URL.

slicer --help confirms it. Other ways in — pip --user, pipx, uv, unreleased main — are in getting started; the editable install for working on slicer itself is in AGENTS.md.

Use it on a project

cd any-repo
slicer init                             # creates .slicer/
slicer add "Parse the config file" --size M --tree core
slicer promote S01                      # give it a slice file from the template
slicer edit S01 --section Why --text "Load settings before starting the app"
slicer render                           # regenerate .slicer/render/
slicer check                            # the gate: exit 1 if anything drifted

add appends a roadmap row; promote gives it a slice file.

Got a whole roadmap to load? Write it as a markdown outline and import it in one go:

slicer import --skeleton > roadmap.md   # a template, built from your config
slicer import roadmap.md --dry-run      # validate; writes nothing
slicer import roadmap.md                # apply

Each ## heading is an item, optional key: value lines carry its size, tree and dependencies, and ### sections become the slice itself — so one file can produce a fully written roadmap. It is a one-way ramp: the file is yours to delete afterwards.

Already running this workflow by hand in markdown? slicer migrate --from docs/slices converts an existing tree that is already in slicer's legacy format. It refuses to write anything unless every file round-trips byte for byte, so a document slicer cannot reproduce is never half-migrated.

Commands

ai onboarding instructions for coding agents
init create .slicer/ in a project
setup-git print the git config that turns on the merge drivers (run once per clone)
merge-index the index.json merge driver Git runs; merges independent items and fields, and takes the larger next_id
import add items in bulk from a markdown outline
migrate convert an existing markdown slice tree
next the highest-priority startable item
next-id the id the next add would take, without allocating it
id-prefix show the id prefix, or change its case for new ids
list list items by readiness, declared pass order, then effective score (empty passes merge by score), omitting done and retired unless asked. --in-work and --review show those queues
deps dependencies: unblocked items, or one item's edges
find search items by text
show print one slice
sections list configured section names, marking the ones next requires
config print the effective config, or one value by dotted key
recommended-workflow print the generic recommended project workflow
add append a roadmap item
promote give an item a slice file
move reorder the queue
sort reorder the whole queue by priority score
set change an item's fields
edit edit a slice section or scope boundary
note append a dated note to an item
feedback keep a gitignored local log of frictions, bugs, and feature ideas, apart from the roadmap
feedback-report file the log's unreported bug and feature entries as GitHub issues through gh, one per entry
issues-pull file a repository's open GitHub issues as unscored roadmap rows through gh, one per issue
note-verify record machine verification of an item note
note-attest record owner attestation of an item note (workflow convention, not authentication)
done mark an item finished
start mark an item in progress and claim it
release clear a claim without changing status
handoff hand a started slice to review and clear its claim
reject send a review back with a verdict and clear its claim
park set an item aside
unpark return a parked item to the queue
prose read and edit the roadmap's own prose
remove retire an obsolete item, or purge one outright
render regenerate .slicer/render/
sync rewrite derived lines in other documents
verify check the index for consistency (and against git unless git_check is off)
check the CI gate: render, sync and integrity
goals show project goals and non-goals
stats counts by status, size, tree and pass
status next item, progress, and blockers in one view
log recent history, newest first
tui / ui browse, read, reorder and edit interactively

Every flag, the .slicer/ layout, removing items, and roadmap prose are in the command reference; keys and screens are in the TUI manual. Every command except tui/ui takes --json, failures included; the agent reference has the payloads and exit codes.

slicer never commits, pushes or tags. Its git access is a read-only allowlist, and a mutation leaves the index untouched; see Git access.

Documentation

Tests

python3 -m unittest discover -s tests -t tests

No install step and no dependencies — the suite puts src/ on sys.path itself. Fixtures and the optional live-tree migrator check are described in AGENTS.md.

Status

slicer manages its own roadmap: .slicer/ in this repository is a worked example you can read, and .slicer/render/ROADMAP.md is what it renders to. Run slicer --version for the installed version, and see the changelog. Its own goals and non-goals: run slicer goals, or read them at the top of the roadmap. In short, slicer is a small, dependency-light, file-based store for a project's roadmap, goals, and issues — canonical JSON that humans and AI agents plan from, projected deterministically to markdown — and is not a real-time, multi-user collaboration tool (coordination happens through git).

Apache-2.0. Stdlib Python, no dependencies, and none planned.

Metadata

Release files for squalor-slicer 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for squalor-slicer 1.5.0
File Size Uploaded
squalor_slicer-1.5.0.tar.gz 318.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for squalor-slicer 1.5.0
File Interpreter ABI Platform
squalor_slicer-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 483.4 kB

Release files / squalor_slicer-1.5.0.tar.gz

Download URL squalor_slicer-1.5.0.tar.gz
Size 318.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2630511f7c771b180d795fbb74c9b8d94bfff53bf7df86f281cb2592812a7da8
BLAKE2b-256 checksum
How to use checksums
bbe57062ada937da437d11db61727fd2325cec27ae1ec2fd5168bb980836a2c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / squalor_slicer-1.5.0-py3-none-any.whl

Download URL squalor_slicer-1.5.0-py3-none-any.whl
Size 164.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51400888f38478c30d3475bf88dd35e2418a83bef3bee0772e8bb95cd2540075
BLAKE2b-256 checksum
How to use checksums
d03d24e2a42e9954e6df84726d22327b3826c702566b5cfa425b74122029a069
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

1.15.0

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.12.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

This release

1.5.0 This release

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page