Across Projects and People
Stato’s composition algebra lets you package expertise from one project and import it into another. Snapshot, slice, graft, and merge operations work on portable .stato archives.
Snapshot
Export all modules as a .stato archive:
stato snapshot --name "scrna-expert"Creates scrna-expert.stato, a zip file containing manifest.toml and all module .py files.
Template Mode
Use --template to create a reusable starting point that preserves learned expertise but resets progress:
stato snapshot --name "scrna-template" --template| Module Type | What Resets | What’s Preserved |
|---|---|---|
| Skill | Nothing | Everything (skills ARE the expertise) |
| Plan | Step statuses to "pending", outputs removed | Decision log, step structure, dependencies |
| Memory | Phase to "init", error history cleared | Task list, known issues |
| Context | Nothing | Everything (conventions, tools are reusable) |
Partial Export
stato snapshot --name "skills-only" --type skill # only skillsstato snapshot --name "qc-only" --module skills/qc # single modulestato snapshot --name "no-memory" --exclude memory # exclude memoryThe --module, --type, and --exclude flags can be combined. Partial archives are marked partial: true in the manifest.
Privacy Scanning
By default, stato snapshot runs the privacy scanner before creating an archive. See the Privacy guide for details.
stato snapshot --name "share" --sanitize # auto-replace secretsstato snapshot --name "internal" --force # skip scanImport
Import all modules from an archive:
stato import scrna-expert.statoImport into a specific project:
stato import scrna-expert.stato --path ~/new-projectImport a single module:
stato import full-export.stato --module skills/qcPreview what would be imported without writing:
stato import full-export.stato --dry-runInspect
Preview what’s inside an archive without importing:
stato inspect scrna-expert.statoShows archive metadata (name, creation date, template flag) and a table of included modules with their types and validation status.
Slice
Extract specific modules from your project into a new archive:
stato slice --module skills/normalizeIf the sliced module depends on another module in the project, you’ll see a warning. To automatically include dependencies:
stato slice --module skills/normalize --with-depsThis pulls in skills/qc.py because normalize depends on qc_filtering.
Graft
Add a module from an external archive or .py file:
stato graft expert.stato --module skills/clusteringConflict Handling
If a module with the same name already exists, control behavior with --on-conflict:
stato graft expert.stato --module skills/qc --on-conflict replace # overwritestato graft expert.stato --module skills/qc --on-conflict rename # auto-renamestato graft expert.stato --module skills/qc --on-conflict skip # skip silentlyThe default (--on-conflict ask) reports the conflict without writing.
Merge
Combine two archives with conflict resolution:
stato merge a.stato b.stato --output combined.statoStrategies:
--strategy union(default): combine all modules, flag conflicts--strategy prefer-left: when conflicts arise, keep the left archive’s version--strategy prefer-right: when conflicts arise, keep the right archive’s version
Use --dry-run to preview without writing.
Registry
Browse and install shared expertise packages from the community:
stato registry list # list all packagesstato registry search "bioinformatics" # search by keywordstato registry install scrna-expert # install a packagePackages are community-contributed expertise modules. Each package is privacy-scanned before publishing.
Typical Workflow
# Senior researcher exports expertisestato snapshot --name "lab-expertise" --template --sanitize# Sends lab-expertise.stato to the team
# New team member importsstato initstato import lab-expertise.statostato bridge --platform cursor# Agent starts with senior-level expertise from day one