Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- **Avoid vacuous substring assertions in printer/formatter tests.** When asserting a `label: value` line is emitted, match against the full `"label: value"` string (or a regex), not the bare value β€” bare values often collide with the resource's `Name` or other surrounding context in the fixture and pass even when the line is missing.
- **Keep CRD enum docstrings consistent with the `+kubebuilder:validation:Enum` marker.** If the godoc says "empty matches both", either include `""` in the enum list so `field: ""` is accepted, or rephrase to "Omit to match both" so no one writes the explicit empty form. A docstring that invites a value the API server then rejects is a worse contract than either alternative.
- **Qualify cross-CRD field references with the owning kind in docs.** In a CRD reference section, write `Task.spec.podOverrides.env` rather than bare `podOverrides.env` when describing a field that lives on a sibling CRD. A reader of one CRD's reference page should be able to locate the cited field without already knowing the layout of the others.
- **Cover every supported agent runtime in docs that describe per-runtime behavior.** Kelos supports five agent runtimes (`claude-code`, `gemini`, `codex`, `opencode`, `cursor`) and they differ on instruction-file paths, env var names, and CLI flags accepted by the entrypoint. When a doc/README/example describes such per-runtime behavior β€” e.g., where `spec.agentsMD` is written, which file the agent reads on startup, which API-key variable the entrypoint honors β€” enumerate the behavior per runtime (one row per `claude-code`/`gemini`/`codex`/`opencode`/`cursor`) or explicitly say "Example uses Claude Code; see `docs/agent-image-interface.md` for the path your agent uses." Writing only the Claude Code path (e.g., `~/.claude/CLAUDE.md`) silently misleads readers running the other four runtimes β€” they will look for a file the entrypoint never creates. This is the docs analogue of "Parameterize e2e tests across all supported agent types."

## Key Makefile Targets
- `make verify` β€” run all verification checks (lint, fmt, vet, etc.).
Expand Down
1 change: 1 addition & 0 deletions self-development/agentconfig.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ spec:
- Avoid vacuous substring assertions in printer/formatter tests: when asserting a `label: value` line is emitted, match the full `"label: value"` string (or a regex), not the bare value β€” bare values frequently collide with the fixture's `Name` or surrounding context and pass even when the line is missing.
- Keep CRD enum docstrings consistent with the `+kubebuilder:validation:Enum` marker: if the godoc says "empty matches both", either include `""` in the enum list so `field: ""` is accepted, or rephrase to "Omit to match both" so no one writes the explicit empty form. A docstring that invites a value the API server then rejects is a worse contract than either alternative.
- Qualify cross-CRD field references with the owning kind in docs: in a CRD reference section, write `Task.spec.podOverrides.env` rather than bare `podOverrides.env` when describing a field that lives on a sibling CRD. A reader of one CRD's reference page should be able to locate the cited field without already knowing the layout of the others.
- Cover every supported agent runtime in docs that describe per-runtime behavior: Kelos supports five agent runtimes (`claude-code`, `gemini`, `codex`, `opencode`, `cursor`) and they differ on instruction-file paths, env var names, and CLI flags accepted by the entrypoint. When a doc/README/example describes such per-runtime behavior β€” e.g., where `spec.agentsMD` is written, which file the agent reads on startup, which API-key variable the entrypoint honors β€” enumerate the behavior per runtime (one row per `claude-code`/`gemini`/`codex`/`opencode`/`cursor`) or explicitly say "Example uses Claude Code; see `docs/agent-image-interface.md` for the path your agent uses." Writing only the Claude Code path (e.g., `~/.claude/CLAUDE.md`) silently misleads readers running the other four runtimes β€” they will look for a file the entrypoint never creates. This is the docs analogue of "Parameterize e2e tests across all supported agent types."
- PRs that only modify files under `self-development/` are internal agent improvements: use `/kind cleanup` and write "NONE" in the `release-note` block, even when the change fixes a bug or adds a feature in agent behavior. Classify by file location, not by problem nature.
- TaskSpawner conventions (for `self-development/` YAML files):
- Prefer webhook-based triggers (`githubWebhook`) over poll-based (`githubPullRequests`) for real-time event-driven tasks
Expand Down
1 change: 1 addition & 0 deletions self-development/kelos-workers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ spec:
- Avoid vacuous substring assertions in printer/formatter tests: when asserting a `label: value` line is emitted, match the full `"label: value"` string (or a regex), not the bare value β€” bare values frequently collide with the fixture's `Name` or surrounding context and pass even when the line is missing.
- Keep CRD enum docstrings consistent with the `+kubebuilder:validation:Enum` marker: if the godoc says "empty matches both", either include `""` in the enum list so `field: ""` is accepted, or rephrase to "Omit to match both" so no one writes the explicit empty form. A docstring that invites a value the API server then rejects is a worse contract than either alternative.
- Qualify cross-CRD field references with the owning kind in docs: in a CRD reference section, write `Task.spec.podOverrides.env` rather than bare `podOverrides.env` when describing a field that lives on a sibling CRD. A reader of one CRD's reference page should be able to locate the cited field without already knowing the layout of the others.
- Cover every supported agent runtime in docs that describe per-runtime behavior: Kelos supports five agent runtimes (`claude-code`, `gemini`, `codex`, `opencode`, `cursor`) and they differ on instruction-file paths, env var names, and CLI flags accepted by the entrypoint. When a doc/README/example describes such per-runtime behavior β€” e.g., where `spec.agentsMD` is written, which file the agent reads on startup, which API-key variable the entrypoint honors β€” enumerate the behavior per runtime (one row per `claude-code`/`gemini`/`codex`/`opencode`/`cursor`) or explicitly say "Example uses Claude Code; see `docs/agent-image-interface.md` for the path your agent uses." Writing only the Claude Code path (e.g., `~/.claude/CLAUDE.md`) silently misleads readers running the other four runtimes β€” they will look for a file the entrypoint never creates. This is the docs analogue of "Parameterize e2e tests across all supported agent types."
- PRs that only modify files under `self-development/` are internal agent improvements: use `/kind cleanup` and write "NONE" in the `release-note` block, even when the change fixes a bug or adds a feature in agent behavior. Classify by file location, not by problem nature.
- TaskSpawner conventions (for `self-development/` YAML files):
- Prefer webhook-based triggers (`githubWebhook`) over poll-based (`githubPullRequests`) for real-time event-driven tasks
Expand Down
Loading