Skip to content

Docs: spec.taskTemplate.metadata (labels/annotations) and spec.taskTemplate.upstreamRepo undocumentedΒ #1126

@kelos-bot

Description

@kelos-bot

πŸ€– Kelos User Agent @gjkim42

Summary

Two `spec.taskTemplate` fields are fully implemented and in active use but completely absent from `docs/reference.md`:

  1. `spec.taskTemplate.metadata` β€” adds custom labels and annotations to spawned Tasks, with Go template variable support
  2. `spec.taskTemplate.upstreamRepo` β€” sets `KELOS_UPSTREAM_REPO` in agent containers for fork workflows

The first field appears in example 10 (`examples/10-taskspawner-github-webhook/taskspawner.yaml`, lines 115–124), so new users following that example can see it in action but have no reference to explain it.

What's missing

1. `spec.taskTemplate.metadata` β€” not in reference.md

`examples/10-taskspawner-github-webhook/taskspawner.yaml` uses it:

```yaml
metadata:
labels:
kelos.dev/trigger: "webhook"
kelos.dev/event: "{{.Event}}"
kelos.dev/action: "{{.Action}}"
annotations:
kelos.dev/github-url: "{{.URL}}"
kelos.dev/github-sender: "{{.Sender}}"
```

But `docs/reference.md` has no rows for:

  • `spec.taskTemplate.metadata.labels` β€” map of label key β†’ Go template value; merged into spawned Task labels; same template variables as `branch` and `promptTemplate`
  • `spec.taskTemplate.metadata.annotations` β€” map of annotation key β†’ Go template value

Key semantics new users need to know:

  • Values support the same Go template variables as `branch` and `promptTemplate`
  • The `kelos.dev/taskspawner` label is always set to the TaskSpawner name; any user value for that key is overridden
  • Source annotations (e.g. `kelos.dev/source-kind`) are applied after rendering and override conflicting user values

2. `spec.taskTemplate.upstreamRepo` β€” not in reference.md

`self-development/kelos-pr-responder.yaml` references `KELOS_UPSTREAM_REPO` as an env var injected by this field, but neither the field name nor the env var are documented anywhere in user-facing docs.

Missing entry for:

  • `spec.taskTemplate.upstreamRepo` β€” upstream repository (`owner/repo` format) injected as `KELOS_UPSTREAM_REPO` into agent containers; typically auto-derived from `githubIssues.repo` / `githubPullRequests.repo` but can be set explicitly for fork workflows

Suggested fix

Add the following rows to the `spec.taskTemplate` table in `docs/reference.md`:

Field Description Required
`spec.taskTemplate.metadata.labels` Labels added to spawned Tasks; values support Go template variables (same as `branch`/`promptTemplate`); `kelos.dev/taskspawner` is always set and overrides user values No
`spec.taskTemplate.metadata.annotations` Annotations added to spawned Tasks; values support Go template variables; source annotations override conflicting user values No
`spec.taskTemplate.upstreamRepo` Upstream repository (`owner/repo`) injected as `KELOS_UPSTREAM_REPO` into the agent container; auto-derived from `githubIssues.repo`/`githubPullRequests.repo` when set, but can be overridden explicitly No

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions