v0.1.0 — first tagged release (as Draftyard)
Draftyard's first tagged release. Single-business, single-operator deployments.
The project was originally published as FixClaw; renamed to Draftyard at v0.1. The old GitHub URL still forwards.
What's in v0.1
Engine
- Pipeline runner with three typed step types:
deterministic,ai,approval - YAML-defined pipelines and skills (no visual editor, no DSL)
- Operator approval channel over Telegram (Slack WIP)
- Token budgets enforced per-step, per-pipeline, per-day
- Output schema validation against each skill's JSON schema
- Input sanitization for operator messages (prompt-injection patterns scrubbed)
- Channel security: allowlists, rate limits, input-length caps — engine refuses to start without them
Connectors
- Gmail / Microsoft 365 (OAuth, read + send)
- GoHighLevel CRM (contacts, opportunities, conversations)
- Telegram (operator approval channel)
Actions
- gmail_unread, notify
- ghl_new_contacts, ghl_stale_opportunities, ghl_unread_conversations
- pdf_extract, pdf_verify_cite — parse PDFs with bounding boxes, resolve tags in AI output with a four-layer match
State & idempotency
- SQLite-backed state store (pure-Go, no CGO) at cfg.State.Path (default ./state.db)
- Per-(pipeline, scope) dedup of fetched item IDs
- Append-only pipeline_runs audit log
- WAL mode, synchronous=NORMAL
Developer experience
- draftyard validate [--strict] — config + skills linter
- draftyard test — fixture-driven dry-run (no real APIs touched)
- Pre-commit hooks via lefthook: gofmt, vet, build, test-short in parallel
- Pre-push: draftyard validate --strict
Not in v0.1
- Webhook triggers (schedule-only for now)
- Generic HTTP action
- Slack approval channel (mentioned in config schema, not built)
- Retry / circuit breaker on step failures
- Structured JSON logging / Prometheus metrics
- Multi-tenant / per-pipeline secrets
See the README "Roadmap signals" for what's next.
Quickstart
```bash
git clone https://github.com/renezander030/draftyard.git && cd draftyard
git checkout v0.1.0
cp secrets.yaml.example secrets.yaml
go build -o draftyard . && ./draftyard
```
Public APIs may change between minor versions until v1.0.