From cb5c72c1cd2f6b5738368ca07d69d337c84d5a1e Mon Sep 17 00:00:00 2001 From: fullsend-code <278716306+fullsend-ai-coder[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 04:00:00 +0000 Subject: [PATCH 1/3] docs(#6838): add consumer-completeness touchpoints to runtime checklist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The existing "Adding a runtime" checklist had 5 high-level items but did not name the specific consumer files that need updating when a runtime is added or renamed. PR #6789 (dummy-playback runtime) missed 9+ consumer files — registry tests, config validation, CLI prompt filtering, CLI help text, and documentation — driving 3–5 extra review-fix iterations. Add a "Consumer-completeness touchpoints" sub-section with a file-level markdown checklist covering registration, config validation, tests, CLI, and documentation files. Structured as checkboxes so agents and humans can use it as a mechanical walkthrough. Closes #6838 --- docs/contributing/runtime-implementation.md | 51 +++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/contributing/runtime-implementation.md b/docs/contributing/runtime-implementation.md index 25dcc80b4..d100ac8b1 100644 --- a/docs/contributing/runtime-implementation.md +++ b/docs/contributing/runtime-implementation.md @@ -34,6 +34,57 @@ On this page: existing ones are pinned and prove the pin at build time ([Pinned runtime binaries](#pinned-runtime-binaries-in-the-sandbox-image)). +### Consumer-completeness touchpoints + +After the core implementation above, walk through every file below. Each +one contains a hardcoded list of valid runtimes or runtime-specific +content that must be updated whenever a runtime is added or renamed. + +**Registration and config:** + +- [ ] `internal/runtime/registry.go` — add a `case` to `Resolve()` that + returns the new backend. +- [ ] `internal/config/config.go` — add the runtime name to the slice + returned by `ValidRuntimes()`. + +**Tests:** + +- [ ] `internal/runtime/registry_test.go` — add a `Resolve("")` + sub-test to `TestResolve` (and to `TestResolveFromConfig` / + `TestResolveFromPerRepoConfig` if the runtime is user-selectable). +- [ ] `internal/config/config_test.go` — update any assertion on + `ValidRuntimes()` to include the new name. + +**CLI:** + +- [ ] `internal/cli/runtime_prompt.go` — if the runtime is test-only + (e.g. `dummy`, `dummy-playback`), filter it from + `userRuntimeChoices()` so it does not appear in the interactive + prompt. +- [ ] `internal/cli/run.go` — update the `--runtime` flag description + to list the new runtime name. +- [ ] `internal/cli/admin.go` — check for any `--runtime` flag + descriptions or hardcoded runtime lists and update them. + +**Documentation:** + +- [ ] `docs/runtimes.md` — add a row to the + [harness config-keys table](../runtimes.md#harness-config-keys-per-runtime) + (item 4 above) and add the runtime to any prose lists of valid values. +- [ ] `docs/architecture.md` — update the runtime selection diagram + (the Mermaid `CFG` node lists valid runtime names) and any prose + references. +- [ ] `docs/cli/run.md` — update any `--runtime` flag description or + valid-values list if the page documents runtime flags. +- [ ] `docs/cli/github.md` — same as `run.md` if this page documents + runtime flags. +- [ ] `docs/guides/infrastructure/layered-config-reference.md` — update + the `runtime` field's valid values in the config-key table. + +Use this list as a mechanical walkthrough — check every box, even if the +answer is "no change needed", so omissions are deliberate rather than +accidental. + ## Security feature matrix The sandbox is the containment boundary; everything a runtime does with hooks and tool restrictions is steering inside it ([ADR 0027](../ADRs/0027-allowed-and-disallowed-tools-for-agents.md)). Read the matrix with that picture in mind: From ae44e28e5f5d75fa98521d2c87c5bfaf21701f65 Mon Sep 17 00:00:00 2001 From: fullsend-fix <278716306+fullsend-ai-coder[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 04:22:03 +0000 Subject: [PATCH 2/3] fix: address review feedback on PR #6839 - Replace "sub-test" with "assertion block" in TestResolve checklist item to match the flat test structure (no t.Run() sub-tests) - Replace vague admin.go checklist item with specific reference to newInstallCmd() and its --runtime flag description Addresses #6839 --- docs/contributing/runtime-implementation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/contributing/runtime-implementation.md b/docs/contributing/runtime-implementation.md index d100ac8b1..37ad84606 100644 --- a/docs/contributing/runtime-implementation.md +++ b/docs/contributing/runtime-implementation.md @@ -50,7 +50,7 @@ content that must be updated whenever a runtime is added or renamed. **Tests:** - [ ] `internal/runtime/registry_test.go` — add a `Resolve("")` - sub-test to `TestResolve` (and to `TestResolveFromConfig` / + assertion block to `TestResolve` (and to `TestResolveFromConfig` / `TestResolveFromPerRepoConfig` if the runtime is user-selectable). - [ ] `internal/config/config_test.go` — update any assertion on `ValidRuntimes()` to include the new name. @@ -63,8 +63,8 @@ content that must be updated whenever a runtime is added or renamed. prompt. - [ ] `internal/cli/run.go` — update the `--runtime` flag description to list the new runtime name. -- [ ] `internal/cli/admin.go` — check for any `--runtime` flag - descriptions or hardcoded runtime lists and update them. +- [ ] `internal/cli/admin.go` — update the `--runtime` flag description + in `newInstallCmd()` to include the new runtime name. **Documentation:** From aa24dc1054f295e7794d1c203d32d39a7049e557 Mon Sep 17 00:00:00 2001 From: fullsend-fix <278716306+fullsend-ai-coder[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 04:46:30 +0000 Subject: [PATCH 3/3] fix: add github.go to runtime checklist and clarify registry.go redundancy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add missing `internal/cli/github.go` checklist item under the CLI section — its `--runtime` flag in `newGitHubSetupCmd()` has a hardcoded valid-values string that needs updating when a runtime is added. Annotate the `registry.go` item with a parenthetical noting it mirrors step 1 so the walkthrough is intentionally self-contained. Addresses #6839 --- docs/contributing/runtime-implementation.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/contributing/runtime-implementation.md b/docs/contributing/runtime-implementation.md index 37ad84606..85310ecf0 100644 --- a/docs/contributing/runtime-implementation.md +++ b/docs/contributing/runtime-implementation.md @@ -43,7 +43,8 @@ content that must be updated whenever a runtime is added or renamed. **Registration and config:** - [ ] `internal/runtime/registry.go` — add a `case` to `Resolve()` that - returns the new backend. + returns the new backend (mirrors step 1 above — listed here so the + walkthrough is self-contained). - [ ] `internal/config/config.go` — add the runtime name to the slice returned by `ValidRuntimes()`. @@ -65,6 +66,8 @@ content that must be updated whenever a runtime is added or renamed. to list the new runtime name. - [ ] `internal/cli/admin.go` — update the `--runtime` flag description in `newInstallCmd()` to include the new runtime name. +- [ ] `internal/cli/github.go` — update the `--runtime` flag description + in `newGitHubSetupCmd()` to include the new runtime name. **Documentation:**