Download cli/seed.py from LoveLogicAI/kanbot-backend: direct link, hf CLI and curl.
- Browser
- Download file 1.96 kB
-
https://huggingface.co/spaces/LoveLogicAI/kanbot-backend/resolve/main/cli/seed.py
- Command line
-
hf download hf://spaces/LoveLogicAI/kanbot-backend/cli/seed.py
-
curl -L -o seed.py https://huggingface.co/spaces/LoveLogicAI/kanbot-backend/resolve/main/cli/seed.py
1.96 kB
| #!/usr/bin/env python3 | |
| """ | |
| Seed the board with KanBot's OWN remaining faces — it bootstraps itself. | |
| Drops one planner card ("Build KanBot's remaining faces") that, once the | |
| Conductor is running, the planner will decompose into executor subtasks. In | |
| DRY-RUN those subtasks will propose tool calls and park for your approval — so | |
| you literally watch the board plan its own construction, safely. | |
| Run: python cli/seed.py | |
| """ | |
| import asyncio | |
| import json | |
| import sys | |
| sys.path.insert(0, ".") | |
| from core.mcp_server import create_card # noqa: E402 | |
| ROOT_SPEC = ( | |
| "Build the three remaining faces of KanBot on top of the existing headless " | |
| "core (Conductor + MCP server + card schema + kb CLI, all working). " | |
| "Deliver: (1) a Next.js + Tailwind web view that subscribes to Postgres " | |
| "LISTEN/NOTIFY over a websocket and renders live drag-and-drop columns with " | |
| "streaming per-card agent threads; (2) a hardened MCP stdio+http CLI client " | |
| "so kb can talk to a remote conductor; (3) Telegram bot polish: inline " | |
| "approve/reject buttons on human-needed cards. Keep everything local-first " | |
| "and behind the same 9-tool MCP contract. Follow DevRev/Computer branding on " | |
| "the web view (black/white/yellow, Chip fonts, pill CTAs)." | |
| ) | |
| async def main() -> None: | |
| res = json.loads(await create_card( | |
| title="Build KanBot's remaining faces", | |
| spec=ROOT_SPEC, | |
| role="planner", | |
| acceptance_criteria=[ | |
| "web view renders live board from NOTIFY with drag-and-drop", | |
| "kb CLI works against a remote conductor over MCP", | |
| "telegram bot has inline approve/reject on human-needed cards", | |
| ], | |
| )) | |
| print(f"seeded planner card {res['id']} in backlog.") | |
| print("start the Conductor (`make conductor`) and watch it decompose itself.") | |
| print("in DRY-RUN, executor subtasks will park for `kb approve <id>`.") | |
| if __name__ == "__main__": | |
| asyncio.run(main()) | |