PlanSpec + lint + safety gates for agent plans.
Project description
sdf-plan
PlanSpec + lint + safety gates for agent plans.
3-Minute Quickstart
pip install sdf-plan
python -c "from sdf_plan import preflight_lint; print('OK')"
python examples/quickstart_local_lint.py
Expected output includes:
- lint findings
- policy summary with confirm-required counts
What You Get
- PlanSpec models (
sdf.v1.2) - lint engine
- policy annotation helper
preflight_linthelper/decorator- LangGraph/CrewAI adapters
Local Dev Install
pip install -e .
Basic Example
from sdf_plan import lint_plan, policy_annotate, preflight_lint
plan = {"steps": [{"id": "S1", "type": "ACT", "intent": "send email", "inputs": [], "outputs": ["x"], "depends_on": [], "stop_condition": "Step S1 completed", "fallback": "reduce_scope"}]}
plan, summary = policy_annotate(plan)
findings = lint_plan(plan, max_steps=12, safety_mode="safe")
preflight_lint(plan, max_steps=12, safety_mode="safe")
Examples
examples/quickstart_local_lint.pyexamples/langgraph_plangate_demo.pyexamples/crewai_plangate_demo.py
Compatibility
Use Cloud schema hash checks to detect contract drift:
from sdf_plan.compat import assert_schema_compat, package_version
assert_schema_compat(package_version(), "schema_hash_from_/v1/schema")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
sdf_plan-0.1.1-py3-none-any.whl
(10.7 kB
view details)
File details
Details for the file sdf_plan-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sdf_plan-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a955a0da2f0d73535a4f5f02739ab7b2544191ac2369c3db57aaf8d770a2b8b9
|
|
| MD5 |
14e231f22d372089d189691aa404d51d
|
|
| BLAKE2b-256 |
f84215b64aec9528d86614ee5b2610e6968df89e49bf520dfeac7d0f95b104ea
|
Provenance
The following attestation bundles were made for sdf_plan-0.1.1-py3-none-any.whl:
Publisher:
release.yml on directiveproto/sdf-plan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sdf_plan-0.1.1-py3-none-any.whl -
Subject digest:
a955a0da2f0d73535a4f5f02739ab7b2544191ac2369c3db57aaf8d770a2b8b9 - Sigstore transparency entry: 953213462
- Sigstore integration time:
-
Permalink:
directiveproto/sdf-plan@35a40aa736be881c60c86cd21a7d4d84ce242996 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/directiveproto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@35a40aa736be881c60c86cd21a7d4d84ce242996 -
Trigger Event:
push
-
Statement type: