bbdb68a6de
Esta commit conteudo a estrutura atomica completa:
- types: Result<T,E>, AsyncState<T>, Paginated<T>, SortConfig<T>
- utils: date, str, num, cn, debounce, throttle, storage, arr, obj
- validators: Zod schemas — email, password, uuid, url, phone, CPF/CNPJ, sanitizedStr, safeParse
- hooks: useToggle, useAsync, useDebounce, useLocalStorage, useMedia, useInterval, useOnClickOutside, useClipboard, useFetch
- components: Button, Input, Alert, Card, Spinner (atomic design pattern)
- build: tsup v8 ESM+CJS + DTS + sourcemaps — 0 erros
- tests: 57 testes 100% usuarios
- docker: multi-stage Dockerfile (node 20-alpine)
- config: vitest, tsup, tsconfig strict, .npmignore
Filosofia atomica:/utils ← /types ← /validators ← /hooks ← /components
Build: npm run build | Test: npm test | Publish: npm publish
🤖 Generated with Pulse (openclaw + nova-self-improver)
126 lines
4.3 KiB
Markdown
126 lines
4.3 KiB
Markdown
# TaskFlow
|
|
|
|
Structured project and task management for OpenClaw agents — markdown-first, SQLite-backed, zero dependencies.
|
|
|
|
---
|
|
|
|

|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 1. Set workspace (add to your shell profile)
|
|
export OPENCLAW_WORKSPACE="/path/to/your/.openclaw/workspace"
|
|
|
|
# 2. Link the CLI
|
|
ln -sf "$(pwd)/scripts/taskflow-cli.mjs" /opt/homebrew/bin/taskflow # macOS
|
|
# ln -sf "$(pwd)/scripts/taskflow-cli.mjs" /usr/local/bin/taskflow # Linux
|
|
|
|
# 3. Run setup
|
|
taskflow setup
|
|
```
|
|
|
|
The setup wizard creates your workspace structure, walks you through your first project, initializes the SQLite database, syncs your markdown files, and optionally installs a macOS LaunchAgent for automatic 60-second sync.
|
|
|
|
**Non-interactive (scripted installs):**
|
|
|
|
```bash
|
|
taskflow setup --name "My Project" --desc "What it does"
|
|
```
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
- **Markdown-first** — `PROJECTS.md` and `tasks/<slug>-tasks.md` are the source of truth; edit them directly in any editor or agent session
|
|
- **SQLite-backed** — bidirectional sync keeps a derived index for fast querying, dashboards, and exports
|
|
- **Bidirectional sync** — `files-to-db` and `db-to-files` modes; check for drift with `sync check`
|
|
- **CLI** — `taskflow status`, `taskflow add`, `taskflow list`, `taskflow export`, `taskflow sync`, `taskflow setup`
|
|
- **JSON export** — full project/task snapshot to stdout, ready for dashboards and integrations
|
|
- **LaunchAgent (macOS)** — automatic 60s background sync via `launchctl`; Linux cron instructions included
|
|
- **Zero dependencies** — pure Node.js, uses the built-in `node:sqlite` module (no npm install)
|
|
|
|
---
|
|
|
|
## CLI
|
|
|
|

|
|
|
|
```
|
|
taskflow setup Interactive first-run onboarding
|
|
taskflow status All projects with task counts and progress bars
|
|
taskflow sync files-to-db Sync markdown → SQLite (markdown is authoritative)
|
|
taskflow sync db-to-files Regenerate markdown from DB state
|
|
taskflow sync check Detect drift (exit 1 if mismatch — good for CI)
|
|
taskflow export JSON snapshot to stdout
|
|
taskflow init Bootstrap or re-bootstrap the SQLite schema
|
|
taskflow add <project> ... Add a task with automatic next ID assignment
|
|
taskflow list <project> List current tasks for a project (supports --project and fuzzy name)
|
|
taskflow help Full reference
|
|
```
|
|
|
|

|
|
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- **Node.js 22.5+** (uses `node:sqlite` / `DatabaseSync`)
|
|
- macOS or Linux
|
|
|
|
---
|
|
|
|
## How It Works
|
|
|
|
```
|
|
<workspace>/
|
|
├── PROJECTS.md # Project registry (one ## block per project)
|
|
├── tasks/<slug>-tasks.md # Task list per project (five fixed sections)
|
|
├── plans/<slug>-plan.md # Optional: architecture / design docs
|
|
└── memory/
|
|
└── taskflow.sqlite # Derived index — never edit directly
|
|
```
|
|
|
|
Tasks live in five fixed sections: `## In Progress`, `## Pending Validation`, `## Backlog`, `## Blocked`, `## Done`. A task line looks like:
|
|
|
|
```
|
|
- [ ] (task:myproject-007) [P1] [codex] Implement search endpoint
|
|
```
|
|
|
|
The sync engine reads section headers (not checkboxes) to determine task status. Move a line between sections to change status; the LaunchAgent or a manual sync picks it up within 60 seconds.
|
|
|
|
---
|
|
|
|
## Agent Integration
|
|
|
|
TaskFlow is designed to be used by OpenClaw agents as a skill. The agent reads `PROJECTS.md` to discover projects, reads `tasks/<slug>-tasks.md` for current task state, and edits those files directly — no special API needed.
|
|
|
|
See [SKILL.md](SKILL.md) for the full agent contract: task line format, sync rules, memory integration policy, SQLite query patterns, and known quirks.
|
|
|
|
---
|
|
|
|
## Apple Notes Sync (macOS)
|
|
|
|
`taskflow notes` pushes a live project status summary to Apple Notes -- share it with your team or just keep it on your phone.
|
|
|
|

|
|
|
|
---
|
|
|
|
## Disclaimer
|
|
|
|
Use at your own risk. We are not liable for any issues you encounter. This is a tool we built for ourselves and found genuinely useful -- sharing it in case other ADHD nerds juggling 10 projects at once get something out of it too. PRs and feedback welcome.
|
|
|
|
---
|
|
|
|
## Credits
|
|
|
|
Built by [Aux](https://github.com/auxclawdbot) (an [OpenClaw](https://openclaw.ai) agent) and [@sm0ls](https://github.com/sm0ls).
|
|
|
|
## License
|
|
|
|
MIT
|