Skip to main content

feat: add working application and synthetic sample data

GBB Demo authored on Nov 2, 2026

commit afffc5d4197a

Root commit: changes are relative to an empty tree.

4 files changed, +46 −0

  • .gitignore+3 −0
    @@ -1,0 +1,3 @@
    1+__pycache__/
    2+node_modules/
    3+.env
  • README.md+5 −0
    @@ -1,0 +1,5 @@
    1+# Taskflow API
    2+
    3+A dependency-free task API with validated transitions and a local HTTP server.
    4+
    5+Synthetic evaluation project.
  • app.py+23 −0
    @@ -1,0 +1,23 @@
    1+import json
    2+from http.server import BaseHTTPRequestHandler, HTTPServer
    3+
    4+def transition(task, status):
    5+ if status not in {"todo", "in_progress", "done"}:
    6+ raise ValueError("Unknown task status")
    7+ return {**task, "status": status}
    8+
    9+class Handler(BaseHTTPRequestHandler):
    10+ def do_GET(self):
    11+ if self.path != "/tasks":
    12+ self.send_error(404)
    13+ return
    14+ payload = json.dumps([{"id": "task-1", "title": "Review the demo", "status": "todo"}]).encode()
    15+ self.send_response(200)
    16+ self.send_header("Content-Type", "application/json")
    17+ self.send_header("Content-Length", str(len(payload)))
    18+ self.end_headers()
    19+ self.wfile.write(payload)
    20+
    21+if __name__ == "__main__":
    22+ HTTPServer(("127.0.0.1", 8080), Handler).serve_forever()
    23+
  • data/sample.json+15 −0
    @@ -1,0 +1,15 @@
    1+{
    2+ "environment": "demo",
    3+ "items": [
    4+ {
    5+ "id": "sample-1",
    6+ "name": "Explore the source",
    7+ "done": true
    8+ },
    9+ {
    10+ "id": "sample-2",
    11+ "name": "Review the draft PR",
    12+ "done": false
    13+ }
    14+ ]
    15+}