feat: consolidate course into 21 lessons

This commit is contained in:
Haoran
2026-07-31 03:15:58 +08:00
parent 4bc33ec858
commit 2d69019342
200 changed files with 7338 additions and 10829 deletions

View File

@@ -1,46 +1,45 @@
{
"version": "s17",
"title": "Autonomous Agents",
"description": "Idle teammates can scan the task board, claim eligible work, and return to idle after completion.",
"title": "Worktree Isolation",
"description": "A task can be bound to an isolated git worktree so concurrent agents avoid stepping on each other.",
"steps": [
{
"type": "system_event",
"content": "teammate(worker-a): state=IDLE -> idle_poll()",
"annotation": "Autonomy starts from an idle lifecycle tick, not a direct user command."
"type": "user_message",
"content": "Update the docs and parser in parallel without letting the changes interfere.",
"annotation": "Concurrent edits need isolated working directories."
},
{
"type": "tool_call",
"toolName": "list_tasks",
"content": "{\"status\":\"open\"}",
"annotation": "The idle agent scans the shared task board."
"toolName": "create_worktree",
"content": "{\"task_id\":\"task_docs\",\"name\":\"docs-fix\"}",
"annotation": "The tool validates a safe worktree name before touching git."
},
{
"type": "system_event",
"content": "git worktree add .worktrees/docs-fix -b agent/docs-fix",
"annotation": "A separate branch and checkout are created for that task."
},
{
"type": "tool_result",
"toolName": "list_tasks",
"content": "[{\"id\":\"task_5\",\"status\":\"open\",\"owner\":null,\"title\":\"Update README\"}]",
"annotation": "Only unclaimed work is eligible for autonomous pickup."
},
{
"type": "tool_call",
"toolName": "claim_task",
"content": "{\"id\":\"task_5\",\"owner\":\"worker-a\"}",
"annotation": "The task manager enforces ownership before work begins."
"toolName": "create_worktree",
"content": "task_docs bound to .worktrees/docs-fix",
"annotation": "The task record stores the assigned worktree path."
},
{
"type": "system_event",
"content": "worker-a: state=WORK task=task_5",
"annotation": "The lifecycle moves from IDLE to WORK."
"content": ".worktrees/events.jsonl <- {event:\"created\", task:\"task_docs\", worktree:\"docs-fix\"}",
"annotation": "Lifecycle events are emitted as a side channel."
},
{
"type": "tool_call",
"toolName": "complete_task",
"content": "{\"id\":\"task_5\",\"result\":\"README updated with setup notes.\"}",
"annotation": "Completion writes the result back to the shared board."
"toolName": "keep_worktree",
"content": "{\"task_id\":\"task_docs\",\"reason\":\"needs human review\"}",
"annotation": "Closeout can preserve a worktree instead of deleting it immediately."
},
{
"type": "system_event",
"content": "worker-a: state=IDLE next_poll_in=5s",
"annotation": "After finishing, the agent becomes available for more work."
"type": "assistant_text",
"content": "The docs task now has an isolated worktree and can be reviewed independently from parser changes.",
"annotation": "The user sees the isolation boundary, not just a raw git command."
}
]
}