Initial scaffold: skill definitions and subtask schemas

Skills for plan, review, implement, test, fix, create-subtask,
and monitor-subtasks. Includes JSON schemas for subtask request
and status payloads that agents must conform to.
This commit is contained in:
2026-06-08 22:51:57 +10:00
parent 85fe7f38f8
commit 2f92d24506
9 changed files with 320 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "SubtaskRequest",
"description": "Schema for requesting a new subtask from the forgebot API",
"type": "object",
"required": ["command", "repository", "ref", "author"],
"properties": {
"command": {
"type": "string",
"enum": ["plan", "implement", "review", "test", "fix"],
"description": "The command/skill for the subtask to execute"
},
"repository": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.-]+/[a-zA-Z0-9_.-]+$",
"description": "The target repository in owner/repo format"
},
"ref": {
"type": "string",
"description": "Git ref to checkout (branch, tag, or commit SHA)"
},
"skill": {
"type": "string",
"description": "Override skill name (defaults to command name)"
},
"body": {
"type": "string",
"description": "Context or instructions for the subtask"
},
"author": {
"type": "string",
"description": "The user who initiated the original task"
},
"issueNumber": {
"type": "integer",
"minimum": 0,
"description": "Issue number for context"
},
"prNumber": {
"type": "integer",
"minimum": 0,
"description": "Pull request number for context"
},
"extraTools": {
"type": "array",
"items": { "type": "string" },
"description": "Additional tools to download from artifactapi at runtime"
},
"poolRef": {
"type": "string",
"description": "Override the agent pool (defaults to parent task's pool)"
}
},
"additionalProperties": false
}
+41
View File
@@ -0,0 +1,41 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "SubtaskStatus",
"description": "Schema for the response when querying a subtask's status",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"command": {
"type": "string"
},
"repository": {
"type": "string"
},
"status": {
"type": "string",
"enum": ["pending", "running", "succeeded", "failed", "cancelled"]
},
"result": {
"type": "string",
"description": "Output from the completed subtask"
},
"errorMessage": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"startedAt": {
"type": ["string", "null"],
"format": "date-time"
},
"completedAt": {
"type": ["string", "null"],
"format": "date-time"
}
}
}