Skip to main content

Specly Python CLI (Local Preview)

Standalone Python distribution for Specly — Spec-Driven Development scaffolding without requiring Node.js.

Status: Local development and testing only. This package is not published to PyPI or any public registry. The package name and public command identities remain provisional.

Supported Commands

  • specly init [options]: Generate SDD files conforming to canonical artifact contract v1.
  • specly doctor: Read-only readiness check for Python runtime (>=3.10), agent markers, and packaged template fingerprints.
  • specly plan <feature>: Read-only preview of proposed local file writes and effects.
  • specly verify <feature>: Read-only verification of local specification files and checklist progress.

Note: specly run and specly recover are not supported in the Python CLI and remain available via the Node CLI.

Interruption & Overwrite Safety

  • Running init on existing files checks their SHA-256 against canonical templates.
  • Files matching canonical template bytes are reported as already complete and skipped.
  • Modified or partial files trigger a warning requiring review; they are never overwritten without explicit --force.

Optional Strands Task Execution Adapter

The optional module specly_cli.optional.strands_adapter provides a strictly bounded task-execution boundary using the Strands Agents SDK:

  • Disabled by default: Default commands (init, doctor, plan, verify) never import Strands or inspect ambient credentials.
  • Explicit authorization: Execution requires an ExecutionRequest bound to an affirmative approval_digest, explicit provider configuration, and task ID.
  • Strict safety boundary:
    • Allowed tools are restricted to structured, data-only local operations (write-file). Shell, subprocess, VCS, PR, and network tools are prohibited.
    • Writable roots are confined to the project root; directory traversal, symlink escapes, and reserved paths (.git, .specly) fail closed.
    • Resource limits (budget_calls, timeout_seconds) halt execution with a limited status and claim no success.
  • Evidence distinction: An ExecutionRecord documents tool outcomes and status, but never marks tasks checked or implies requirements acceptance. Local unit tests run against local mock fixtures and contact no external providers.
  • Installation: Optional extra: pip install "specly[strands]".

Optional Google AX Cluster Adapter

The optional module specly_cli.optional.ax_adapter provides read-only prerequisite diagnostics and effect previews for Google AX / Agent Substrate:

  • Disabled by default: Default commands never import AX or inspect KUBECONFIG / ambient cluster credentials.
  • Offline diagnostics: Local inspection checks required binaries (kubectl, ko, go) without probing remote clusters or networks.
  • Immutable effect preview: Previews bind context, namespace, operation, resource targets, and proposed effects to an immutable SHA-256 approval digest.
  • Distinct mutation approval: Submitting a cluster operation requires affirmative approval matching the preview digest and explicit destination authorization (destination, operation, credential/session). Changing targets or effects invalidates approval and fails closed.
  • Evidence status: Labeled unverified (Google AX prerelease). No live cluster was contacted during local tests.
  • Installation: Optional extra: pip install "specly[ax]".

Development & Testing

# Verify asset synchronization against canonical repository sources
python3 python/scripts/sync_assets.py --check

# Run test suite
PYTHONPATH=python/src python3 -m unittest discover -s python/tests

# Build isolated wheel
uv build --wheel --no-sources

Metadata

Release files for specly 0.1.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 specly 0.1.0
File Size Uploaded Provenance
specly-0.1.0.tar.gz 25.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for specly 0.1.0
File Interpreter ABI Platform
specly-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 49.6 kB

Release files / specly-0.1.0.tar.gz

Download URL specly-0.1.0.tar.gz
Size 25.2 kB
Tags Source
SHA-256 checksum
How to use checksums
635a5a33a2d92e7b414c371a3aaf722ff4ff76bbfcb814a5c6b863fb478fb0a5
BLAKE2b-256 checksum
How to use checksums
d274ced1982f885f78b28e16060178644f3cb7e54b6a75d9f3017b8053b0f71e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / specly-0.1.0-py3-none-any.whl

Download URL specly-0.1.0-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c501b5d365f1fcaa14f070ac291be772cd1cc1286e293dbbd16231810b33d70a
BLAKE2b-256 checksum
How to use checksums
a1dea5add59fa864103419b0a787b620d21cbde20cd8d0195e06145a65105e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for specly 0.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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