Carry the Gitea issue body into the task

Found by reading .orchestra/launch.md on the first burn-in task. The rendered
context said `Acceptance: Not stated.` and carried the issue title as the whole
goal, because Gitea.event parsed the issue body and then dropped it from the
TaskCreated payload.

The body is the task's own statement of what it wants, which every rendered
context ranks above continuity and below only a human decision. The store
already reads `description` from TaskCreated; only the provider was silent.

Every Gitea-sourced task so far has therefore run on its title alone. Classify
as an authority bug, not a model-following failure: no agent could have known
what it was not told.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-26 22:53:36 +04:00
parent 2753a8df62
commit 09e572f11e
2 changed files with 39 additions and 1 deletions
+5 -1
View File
@@ -302,7 +302,11 @@ func (g Gitea) event(issue giteaIssue, source, project string) domain.Event {
for _, l := range issue.Labels {
caps = append(caps, l.Name)
}
p := map[string]any{"source": source, "external_id": strconv.Itoa(issue.Number), "project": project, "title": issue.Title, "capability": caps}
// The body is the task's own statement of what it wants, which is rank-one
// authority in every rendered context. Dropping it here made every
// Gitea-sourced task run on its title alone, with "Acceptance: Not stated."
// Found on the first burn-in task, 2026-08-26.
p := map[string]any{"source": source, "external_id": strconv.Itoa(issue.Number), "project": project, "title": issue.Title, "description": issue.Body, "capability": caps}
b, _ := json.Marshal(p)
return domain.Event{ID: domain.NewID(), TaskID: domain.NewID(), Type: "TaskCreated", Version: 1, Payload: b, Surface: string(authz.System)}
}