dopeTask - deterministic task-packet lifecycle + gates
Project description
dopeTask is a deterministic task-packet execution kernel that plans one path or refuses with evidence.
Guarantees
- Artifact-first: if it did not write an artifact, it did not happen.
- Refusal-first: invalid or unsafe inputs produce a structured refusal with a stable exit code.
- Deterministic: identical packet + declared inputs + dopeTask version yields identical outputs.
- Single-path: no hidden retries, no fallback runners, no background execution.
Kernel Manifesto
dopeTask is strict by design:
- one packet, one scoped objective
- one path, or explicit refusal with evidence
- one artifact trail that can be verified end to end
The goal is operational trust, not convenience theater.
Anti-Features
dopeTask intentionally does not provide:
- hidden retries
- silent fallbacks to alternate runners
- undocumented file writes
- background mutation outside declared packet scope
Kernel FAQ
Why does dopeTask refuse so often?
Because refusal protects determinism and keeps artifacts trustworthy.
Why require proof bundles?
Because claims without command output are not verifiable.
Why avoid background behavior?
Because state changes must remain explicit, local, and auditable.
Determinism Stress Test
Re-run the same packet under the same inputs and version.
If outputs differ, treat it as a bug and capture evidence before retrying.
Install
Installation • Release Guidelines • Contributing • Security Policy
🦾 What is dopeTask?
Imagine a task runner that doesn't trust the internet, doesn't trust your system clock, and definitely doesn't trust random file mutations. That's dopeTask.
dopeTask is a rigorous system for managing the lifecycle of "Task Packets"—self-contained units of work. It is built for environments where "it works on my machine" is considered an admission of guilt.
🌟 Why You'll Love It (Or Fear It)
- 🔮 Deterministic Time Travel: We mock time. Literal time. Your builds will produce the exact same artifacts today, tomorrow, and in 2050.
- 🛡️ The Great Allowlist: Files don't just "change." They apply for a visa. Our
AllowlistDiffsystem catches unauthorized mutations before they even think about becoming a commit. - 🔌 Offline by Design: dopeTask assumes the internet is down. If your build needs
npm installto run, go back to square one. - 🧬 Audit Trails: Every run produces a forensic verification trail. Who ran it? When? with what inputs? It's all in the JSON.
🔄 The Lifecycle
dopeTask treats code changes as a manufacturing pipeline.
graph LR
A[Spec Mine] -->|Compile| B(Task Queue)
B -->|Run| C{Task Packet}
C -->|Execute| D[Run Workspace]
D -->|Collect| E[Evidence]
E -->|Verify| F{Compliance Gate}
F -->|Pass| G[Promotion Token]
F -->|Fail| H[Quarantine]
G -->|Commit| I[Git History]
style A fill:#f9f,stroke:#333,stroke-width:2px
style C fill:#bbf,stroke:#333,stroke-width:4px
style G fill:#9f9,stroke:#333,stroke-width:2px
style H fill:#f99,stroke:#333,stroke-width:2px
- Compile: Task definitions are mined from your specs and compiled into immutable packets.
- Run: A packet is executed in an isolated workspace.
- Gate: The output is scanned. Did it touch a file it wasn't supposed to? REJECTED.
- Promote: Only if the gate passes do you get a
PROMOTION.jsontoken. - Commit: You cannot commit without a token. (We check.)
Deterministic Task Execution
dopeTask uses isolated git worktrees and commit plans to ensure:
- linear
mainhistory - one JSON TP = one isolated committed unit
- one TP series = one cumulative PR branch
- deterministic rebases and fast-forward merges
- zero accidental commits on
main
For new supervisor-driven work, use dopetask tp series exec <packet.json> for each ready packet in the series and dopetask tp series finalize <series-id> once the final packet is complete.
See docs/13_TASK_PACKET_FORMAT.md for the JSON packet contract and docs/20_WORKTREES_COMMIT_SEQUENCING.md for the legacy markdown packet + commit-sequence path.
🚀 Quick Start
Get up and running faster than you can say "idempotency."
1. Installation
You can install dopeTask via pip, uv, or our unified installer script.
Using uv (Recommended):
uv tool install dopetask
dopetask --version
Using pip:
pip install dopetask
Using the Unified Installer (for Repo Wiring):
The installer script sets up a pinned environment and repository integration:
# Latest stable version
curl -fsSL https://raw.githubusercontent.com/hu3mann/dopeTask/main/scripts/install.sh | bash
Need manual installation or wheel support? Check the Detailed Installation Guide.
2. The "Hello World" Loop
Let's run a loop. A loop creates tasks, runs them, checks them, and promotes them.
dopetask --help
See docs/01_INSTALL.md for developer workflows and testing.
60-second example
dopetask route init --repo-root .
cat > PACKET.md <<'EOF'
# Packet
ROUTER_HINTS:
risk: low
EOF
dopetask route plan --repo-root . --packet PACKET.md
ls -1 out/dopetask_route/
Expected outputs:
out/dopetask_route/ROUTE_PLAN.jsonout/dopetask_route/ROUTE_PLAN.mdout/dopetask_route/HANDOFF.md(for handoff flows)
Docs
- Overview:
docs/00_OVERVIEW.md - Install:
docs/01_INSTALL.md - Quickstart:
docs/02_QUICKSTART.md - Architecture:
docs/10_ARCHITECTURE.md - Public contract:
docs/11_PUBLIC_CONTRACT.md - Router:
docs/12_ROUTER.md - Task packet format:
docs/13_TASK_PACKET_FORMAT.md - Project doctor:
docs/14_PROJECT_DOCTOR.md - Worktrees and commit sequencing (legacy maintainers):
docs/20_WORKTREES_COMMIT_SEQUENCING.md - Case bundles (maintainers):
docs/21_CASE_BUNDLES.md - Release (maintainers):
docs/90_RELEASE.md
Kernel vs ecosystem
dopeTask (kernel) validates packets, plans deterministically, executes one path (or emits a manual handoff), and writes canonical artifacts.
Everything else (scheduling, orchestration, memory, UX) belongs in the ecosystem above the kernel.
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 Distribution
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
File details
Details for the file dopetask-0.5.1.tar.gz.
File metadata
- Download URL: dopetask-0.5.1.tar.gz
- Upload date:
- Size: 264.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a27f279cd7b3fbb1e17d71e9e13ed7193a1672cf52af8c69e3ffc13fcde7a167
|
|
| MD5 |
1d310a8bfdc7b0fdcda4f10611dbddc0
|
|
| BLAKE2b-256 |
c6d00ab883fab904852f2a033e6a910f6e194c92d9f26db5cec4b4232ae0a608
|
File details
Details for the file dopetask-0.5.1-py3-none-any.whl.
File metadata
- Download URL: dopetask-0.5.1-py3-none-any.whl
- Upload date:
- Size: 259.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2d1441bccfe66f8fb0ff8d55292a974cc8e7b54c30159d963f78f1a49ba96fb
|
|
| MD5 |
f1bda00ae9ceba7a9f46f44dbbae7981
|
|
| BLAKE2b-256 |
9a6adc8c31a9870b0061bea1febaaba6d8e2aa8eceacdc8f7a5e8ba444615fae
|