Skip to main content

A deterministic task + dependency tracker for coding agents (SQLite + Pydantic, MCP + CLI).

Project description

tackit

A deterministic task + dependency tracker for coding agents. One local SQLite file is the single source of truth for a project's build plan — its tasks, their dependencies, and their reconciliation state. An agent fetches small slices on demand instead of re-reading monolithic plan documents, so project truth survives across sessions and context-window compaction, and a change to one task can be traced to everything that depends on it.

Strict Pydantic validation at the boundary (malformed data is refused, not stored), a manual dirty-propagation discipline (editing a task marks its dependents stale; a stale task can't be closed until reconciled), and full-text search over tasks via SQLite FTS5. Exposed two ways over one core: an MCP server (the agent's primary door) and a CLI (debugging / scripting / fallback).

Status: alpha (0.1.0). The data model, interfaces, and sync design are settled and implemented; expect rough edges.

Install

pip install tackit && tackit setup

tackit setup doesn't touch your config — it emits the post-install steps with contextualized paths (the MCP registration snippet, where to drop the bundled SKILL.md, and tackit init) for the driving agent to carry out.

Quickstart (CLI)

tackit init                                   # create .tackit/ in this project
tackit add "parse FTS5 query" --label search  # create a task (D3)
tackit add "rank search results" --dep 1      # task 2 depends_on task 1
tackit search "fts"                           # ranked keyword search (D17)
tackit show 2                                 # slice: task + deps + dependents
tackit edit 1 --desc "tokenized MATCH"        # edits stale task 1's dependents
tackit stale                                  # the reconciliation worklist
tackit reconcile 2                            # reviewed-OK; clear stale
tackit close 2                                # refused while stale (D14)
tackit ls --status open                       # query/board (D15)
tackit --help                                 # full, self-documenting surface

The store lives at .tackit/tackit.db (binary, gitignored). Its git-canonical form is a deterministic SQL text dump, .tackit/tackit.sql, re-written on every mutation and committed — so diffs and merges are reviewable text, never a binary blob. Sync between the two is automatic; tackit status / export / import / restore exist only for the divergence cases the auto-sync deliberately refuses to guess at.

MCP

tackit mcp     # serve the stdio MCP server (the agent's primary door)

Tool names are the bare verbs (add, show, search, edit, close, reconcile, dep_add, …); their input schemas are generated from the Python type hints, so they can't drift from the real interface. Each mutating tool returns the agent's review obligations in its result.

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 Distribution

tackit-0.1.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

tackit-0.1.0-py3-none-any.whl (30.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tackit-0.1.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tackit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8ca3439503c63aa70ac5df3f2c3200e7f8e985098608326aed77e39f127087cc
MD5 0d6324a44a4475a8570a96294208f19c
BLAKE2b-256 51e6322cbb1bd43b8e47ea84db749f1c7515fab108f4b54ae8b347d134be96f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tackit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 30.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tackit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a599b40cb30e291f437d0269927d1a4570ed3af8d9b39d42a710bb410ffa0e9e
MD5 39c77087966c3c58eada7e096b13d343
BLAKE2b-256 2a901e2b57890379121645d459d101c88df65a109ce19ca78180bc8a9048732f

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