Skip to main content

ChartworkAI — the governance layer for agentic work

ChartworkAI

CI PyPI Python License

The governance layer for agentic work.

Agent frameworks orchestrate. ChartworkAI governs. Charter, decisions, handoffs, and phase gates that survive across sessions, assistants, and months — works with CrewAI, LangGraph, Claude Code, Cursor, or plain humans.

Agent runtimes are good at executing work and have no memory of why anything was decided: their state is scoped to a single run and vanishes when the process exits. ChartworkAI is the other half — a repository-native governance layer where scope, authority, decisions, and handoffs live as version-controlled Markdown, so any session, teammate, or assistant can reconstruct the project from the repo alone.

It is deliberately runtime-agnostic and works with any language, stack, assistant, or human language.

pip install chartworkai                                   # zero runtime dependencies

chartworkai init ./my-project --name "My Project" \
    --profile software-app                                # scaffold the governance layer
chartworkai check .                                       # is it installed and healthy?
chartworkai check . --json                                # machine-readable, for CI and agents
chartworkai plan .                                        # rebuild the phase plan from state
chartworkai mcp                                           # serve it to an AI assistant

Pick a profile for what you actually ship — software-app, data-science, database, competition-ml, investigation, deployed-service — and it decides which artifacts are required and what "reproducible" means for you. A web app is never asked for a data dictionary.

A fresh scaffold deliberately fails check until you fill in the placeholders and delete the _framework_* reference folders. That is the graduation gate, not a bug.

Use it from your AI assistant (MCP)

chartworkai mcp speaks the Model Context Protocol over stdio, so an assistant can enforce governance itself instead of waiting for you to relay output. Point your assistant's MCP config at it:

{
  "mcpServers": {
    "chartworkai": {
      "command": "chartworkai",
      "args": ["mcp"]
    }
  }
}

Four tools become available:

Tool Purpose
chartworkai_check Verify the governance layer is installed and healthy
chartworkai_state Where the project stands: phase, tasks, blockers, recent decisions and handoffs
chartworkai_file_decision Record a dated, authority-stamped decision (auto-numbered per DEC/DQ/SC/MD namespace)
chartworkai_file_handoff Write the handoff note that lets the next agent resume

What this gives you

  • A PROJECT_CHARTER skeleton — mission, non-goals, research questions, phased roadmap, success criteria, risks, change log.
  • An AGENTS.md pattern — every role has a Spec (for humans) and a paste-ready System Prompt (for the AI runtime). Handoff contracts are explicit.
  • A decision log convention with authority-stamped rulings, so domain calls stay traceable.
  • Data / artifact contracts — data dictionary, lineage, watchlist templates that keep producers and consumers in sync.
  • Reusable prompts for the recurring moments: initial planning, agent generation, orchestration turn, decision capture, handoff write-up, reflection.
  • A Standard Operating Procedure — the literal checklist to run at session start, when dispatching, when a decision arises, and at phase closure.

Definition of Installed

A project has not been initialized from this framework until these artifacts exist in the project root:

  • PROJECT_CHARTER.md
  • AGENTS.md
  • docs/phase_plan.md
  • STATUS.md
  • TASKS.md
  • docs/decisions/README.md plus at least one seed decision file
  • docs/handoffs/README.md or at least one dated handoff note
  • docs/domain/README.md

Data profiles only (data-science, database, competition-ml) additionally require the contract triad. A software-app, investigation or deployed-service project is never asked for these:

  • docs/data/data_dictionary.md
  • docs/data/lineage.md
  • docs/data/watchlist.md

Run the compliance checker from the target project root:

./scripts/check_framework_compliance.sh

If you are running it from this framework repo against another project:

./scripts/check_framework_compliance.sh /path/to/project

Fast Bootstrap

From this framework repo, create a compliance-checked scaffold with:

scripts/init_project_from_framework.sh /path/to/new_project "Project Name" project_slug

The bootstrap script copies the reference templates/prompts/agents into _framework_* directories, creates the canonical operating files, seeds the first decision and handoff, installs the compliance checker, and runs it before finishing.

When to use it

Use it when:

  • You'll run the project over many sessions and need continuity between them.
  • The work has ≥3 distinguishable roles (e.g. ingestion, domain expertise, analysis, QA).
  • You want every claim auditable back to the agent that produced it.
  • Reproducibility matters — outputs must be regenerable from source.

When not to use it

  • Single-shot tasks that fit in one session.
  • Prototypes where speed beats traceability.
  • Projects with fewer than three distinct workstreams.

How to read this repo

Start here, then follow in order:

→ Just want to use it? Read IMPLEMENTATION_GUIDE.md first — the single do-this playbook (bootstrap → customize → operate → ship), readable by you or an AI agent.

  1. FRAMEWORK_OVERVIEW.md — the six workflow stages and the philosophy behind them.
  2. SOP.md — the runbook. What to do at session start, at dispatch, at decision, at phase close.
  3. INITIALIZATION_GUIDE.md — step-by-step for standing up a new project from these templates.
  4. IMPROVEMENTS.md — the friction real projects hit, and the upgrades baked in as a result.
  5. templates/ — the artifacts you copy and fill in.
  6. agents/ — generic role specs + system prompts. Pick the ones you need.
  7. prompts/ — reusable prompts for the power moments.
  8. examples/research_case_study.md — a worked example showing each piece in real use.

Design principles

  • Charter is single source of truth. Scope, phases, roles all flow from it.
  • Roles are contracts, not titles. Each agent has explicit inputs, outputs, scope owned, scope not owned.
  • Decisions are first-class artifacts. Anything that changes scope, schema, or shared convention gets a dated, authority-stamped file in docs/decisions/.
  • Handoffs are the currency. Agents don't "finish" — they produce a handoff note that names the next agent and the next input.
  • Orchestrator doesn't do work. Coordinates, routes, records decisions. Never overrides a domain expert on their own turf.
  • Reproducibility or it didn't happen. No phase closes until a clean rebuild passes.

License

Apache License 2.0 — see LICENSE and NOTICE. Use it commercially, modify it, and redistribute it; retain the copyright and NOTICE, state significant changes you make, and note that the licence includes an express patent grant. Provided without warranty.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chartworkai-0.1.0.tar.gz (400.6 kB view details)

Uploaded Source

Built Distribution

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

chartworkai-0.1.0-py3-none-any.whl (136.2 kB view details)

Uploaded Python 3

File details

Details for the file chartworkai-0.1.0.tar.gz.

File metadata

  • Download URL: chartworkai-0.1.0.tar.gz
  • Upload date:
  • Size: 400.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chartworkai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e1599a5b8903618d31b1987ee69cf7708ede384d15f64b9890e716583d8a011
MD5 214c1fb257656c5df53c60ca7b88dccf
BLAKE2b-256 3f8441b543f8704569280ea8b85d5898f6c63a9dfa417592dbebe66b7bbd3446

See more details on using hashes here.

Provenance

The following attestation bundles were made for chartworkai-0.1.0.tar.gz:

Publisher: publish.yml on v-datos/chartworkai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chartworkai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: chartworkai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 136.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chartworkai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5cbe8b391658cdcb41d6a97a02905096038d5ce807dc48f4063a6aed94204b1b
MD5 ec5a6e9c7ec9e51364aa9fdce61ae168
BLAKE2b-256 eec0cf51ec6c9a53cbdb31df1ae99d9b13f30ce236e6b4e9a72b1dce3b289606

See more details on using hashes here.

Provenance

The following attestation bundles were made for chartworkai-0.1.0-py3-none-any.whl:

Publisher: publish.yml on v-datos/chartworkai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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