Skip to main content

InstructCanvas - DAG-based instruction format for agentic AI tools

Project description

instructcanvas

Python bindings for InstructCanvas (.icvs) — a DAG-based instruction format for agentic AI tools.

Install

pip install instructcanvas

Usage

import instructcanvas as icvs

source = """[node: rule1]
  type = rule
  content = "Use 2-space indentation"
  severity = must

[edge: rule1 -> rule2]

[target: claude]
  resolve = [rule1]
"""

# Parse
doc = icvs.parse(source)
print(f"Nodes: {doc.node_count()}, Edges: {doc.edge_count()}")

# Validate
result = icvs.validate(source)
print("Valid" if result.is_valid else "Invalid")

# Export Markdown
md = icvs.export_markdown(source, "claude")
print(md)

# Export DOT graph
dot = icvs.export_dot(source)

# .icvs ↔ Markdown
icvs_back = icvs.md_to_icvs("# Hello")
md_back = icvs.icvs_to_md(source)

# Convert to AI agent format
agent_json = icvs.convert_agent(source, "claude")

# Apply template variables
result = icvs.apply_template(source, {"FRAMEWORK": "React"})

API

Function Description
parse(input) Parse .icvs → Document
validate(input) Validate → ValidationReport
export_markdown(input, target) Export per-target Markdown
export_dot(input) Export DOT graph
export_merge(input) Merge all nodes → Markdown
md_to_icvs(markdown) Convert Markdown → .icvs
icvs_to_md(input) Convert .icvs → Markdown
convert_agent(input, format) Export as Claude/OpenAI/JSON
apply_template(input, vars_dict) Apply {{ VAR }} template

CLI (Rust)

cargo install icvs
icvs validate rules.icvs
icvs convert --target claude rules.icvs

License

MIT

Project details


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

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

instructcanvas-0.2.1-cp312-cp312-manylinux_2_34_x86_64.whl (932.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

File details

Details for the file instructcanvas-0.2.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for instructcanvas-0.2.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0926a5ac13df6e9afc5abb774bf1e2b17598f72756182caf14a04ab415e6a151
MD5 88aed25fda5db61219466f55f457722d
BLAKE2b-256 38efac8ce7e04546ed535e884acc05855556e70ca72da1e49802228fda4aa07a

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