Files
pulse-libs/skills/taskflow/examples/export-schema.json
T
pulse-agent bbdb68a6de feat(lib-core): biblioteca atomica @pulse-libs/core v1.0.0-beta.1
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)
2026-05-19 21:43:03 -03:00

119 lines
3.9 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://clawhub.dev/schemas/taskflow/export-projects-overview/v1",
"title": "TaskFlow Export — Projects Overview",
"description": "Output schema for scripts/export-projects-overview.mjs (taskflow-009). Emitted to stdout as a single JSON object.",
"type": "object",
"required": ["exported_at", "projects", "recent_transitions"],
"additionalProperties": false,
"properties": {
"exported_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the export was generated (UTC)."
},
"projects": {
"type": "array",
"description": "All projects in the TaskFlow DB, ordered by slug.",
"items": {
"type": "object",
"required": ["id", "name", "description", "status", "task_counts", "progress_pct"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Project slug — primary key in the `projects` table.",
"examples": ["dashboard", "trading", "smart-home"]
},
"name": {
"type": "string",
"description": "Human-readable project name.",
"examples": ["Dashboard", "Trading System"]
},
"description": {
"type": "string",
"description": "One-liner description (may be empty string)."
},
"status": {
"type": "string",
"enum": ["active", "paused", "done"],
"description": "Project lifecycle status."
},
"task_counts": {
"type": "object",
"description": "Count of tasks in each status bucket for this project.",
"required": ["in_progress", "pending_validation", "backlog", "blocked", "done"],
"additionalProperties": false,
"properties": {
"in_progress": { "type": "integer", "minimum": 0 },
"pending_validation": { "type": "integer", "minimum": 0 },
"backlog": { "type": "integer", "minimum": 0 },
"blocked": { "type": "integer", "minimum": 0 },
"done": { "type": "integer", "minimum": 0 }
}
},
"progress_pct": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Completion percentage: done / total * 100, rounded to 2 decimal places. 0 when there are no tasks."
}
}
}
},
"recent_transitions": {
"type": "array",
"description": "Last 20 task status transitions across all projects, ordered oldest-first within the window. Sourced from task_transitions_v2.",
"maxItems": 20,
"items": {
"type": "object",
"required": ["task_id", "to_status", "at"],
"additionalProperties": false,
"properties": {
"task_id": {
"type": "string",
"description": "Task identifier in <slug>-NNN format.",
"examples": ["dashboard-025", "trading-003"]
},
"from_status": {
"type": ["string", "null"],
"enum": ["backlog", "in_progress", "pending_validation", "blocked", "done", null],
"description": "Previous status. Null for task creation events."
},
"to_status": {
"type": "string",
"enum": ["backlog", "in_progress", "pending_validation", "blocked", "done"],
"description": "Status the task transitioned into."
},
"reason": {
"type": ["string", "null"],
"description": "Optional free-text reason recorded at transition time."
},
"at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp of the transition (UTC)."
}
}
}
}
}
}