re-render tool-builder bundles with fixed runwhen-platform-mcp renderer

- Regenerated SKILL_TEMPLATE.md for all three tool-builder bundles
  (stg-workspace-smoke, system-info-check, system-info-check-bash) — the
  previous versions had 8 leading spaces on every line because the renderer's
  textwrap.dedent didn't work against column-0 injected tables. Fixed on the
  MCP side; these are the corresponding refreshed outputs.
- Gave system-info-check and system-info-check-bash distinct baseNames
  (`sys-info-py` and `sys-info-bash`). Both previously truncated to
  `system-info-che` under the default 15-char baseName rule and collided
  in workspace-builder — the two SLXs would have shared the same computed
  name so only one (or neither) ever showed up.
- Also picks up the resource_path YAML-quoting change (single-quoted only
  when strictly required — no longer force-double-quoted).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
stewartshea
2026-07-07 00:35:51 -04:00
parent b401b3e3ec
commit db6f6f291b
8 changed files with 146 additions and 155 deletions
@@ -1,80 +1,77 @@
# Staging Workspace Smoke Check # Staging Workspace Smoke Check
Verify tool-builder runtime can execute a simple custom task against the stg-test workspace. Verify tool-builder runtime can execute a simple custom task against the stg-test workspace.
**Bundle:** `stg-workspace-smoke` · **Task title:** `Run staging workspace smoke check` · **Bundle:** `stg-workspace-smoke` · **Task title:** `Run staging workspace smoke check` ·
**Runtime:** tool-builder (python) **Runtime:** tool-builder (python)
> **Review artifact:** See `raw_script.py` in this directory > **Review artifact:** See `raw_script.py` in this directory
> for the decoded script content that reviewers and automated systems should > for the decoded script content that reviewers and automated systems should
> inspect. Do **not** parse the base64-encoded `GEN_CMD` in the TaskSet template > inspect. Do **not** parse the base64-encoded `GEN_CMD` in the TaskSet template
> for review purposes — use this SKILL_TEMPLATE.md and the accompanying > for review purposes — use this SKILL_TEMPLATE.md and the accompanying
> `raw_script.py` file instead. > `raw_script.py` file instead.
## When this SLX gets created ## When this SLX gets created
- **Platform:** `runwhen` — workspace-builder matches RunWhen platform resources - **Platform:** `runwhen` — workspace-builder matches RunWhen platform resources
- **Resource types:** `workspace` - **Resource types:** `workspace`
- **Match rules (plain English):** - **Match rules (plain English):**
- matches every resource (pattern `.+` on name) - matches every resource (pattern `.+` on name)
- **Expected cardinality:** one SLX per matched resource, named `<qualifiers>-stg-smoke` - **Expected cardinality:** one SLX per matched resource, named `<qualifiers>-stg-smoke`
- **Qualifiers:** `workspace` - **Qualifiers:** `workspace`
## What this SLX does ## What this SLX does
The task runs a python script via the shared `tool-builder` codebundle in The task runs a python script via the shared `tool-builder` codebundle in
`rw-generic-codecollection`. The workspace-builder renders the TaskSet template with `rw-generic-codecollection`. The workspace-builder renders the TaskSet template with
a base64-encoded `GEN_CMD` at deploy time; the decoded script is available in a base64-encoded `GEN_CMD` at deploy time; the decoded script is available in
`raw_script.py` in this directory for review. `raw_script.py` in this directory for review.
### Environment variables ### Environment variables
| Name | Value | Notes | | Name | Value | Notes |
|---|---|---| |---|---|---|
| _(none)_ | | | | _(none)_ | | |
### Secrets (names only — values live in RunWhen workspace secrets)
### Secrets (names only — values live in RunWhen workspace secrets) | Name | Required |
| Name | Required |
|---|---| |---|---|
| _(none)_ | no | | _(none)_ | no |
### Runtime variables (user-supplied at run time)
### Runtime variables (user-supplied at run time) | Name | Default | Description |
| Name | Default | Description |
|---|---|---| |---|---|---|
| _(none)_ | | | | _(none)_ | | |
## Operational metadata
## Operational metadata - **Timeout:** 300s
- **Access:** `read-only` · **Data:** `logs-bulk`
- **Owners:** shea@runwhen.com
- **Timeout:** 300s ## Provenance
- **Access:** `read-only` · **Data:** `logs-bulk`
- **Owners:** shea@runwhen.com
## Provenance - Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Source workspace: `stg-test` - Source workspace: `stg-test`
- Generated at: `2026-07-07T03:52:40Z` - Generated at: `2026-07-07T04:35:06Z`
## Deploying this codecollection ## Deploying this codecollection
Add to your runwhen-local runner `workspaceInfo.yaml`: Add to your runwhen-local runner `workspaceInfo.yaml`:
```yaml ```yaml
codeCollections: codeCollections:
- repoURL: https://<host>/<org>/<your-private-codecollection>.git - repoURL: https://<host>/<org>/<your-private-codecollection>.git
ref: main ref: main
``` ```
Then reconcile (Flux example): Then reconcile (Flux example):
```bash ```bash
flux reconcile hr runwhen-local -n <runner-namespace> --with-source flux reconcile hr runwhen-local -n <runner-namespace> --with-source
``` ```
> **Requires runwhen-local with `platform: runwhen` support** (RW-1355). Until that > **Requires runwhen-local with `platform: runwhen` support** (RW-1355). Until that
> release lands, generation rules using `platform: runwhen` will not render SLXs. > release lands, generation rules using `platform: runwhen` will not render SLXs.
@@ -17,7 +17,7 @@ spec:
Verify tool-builder runtime can execute a simple custom task against the stg-test workspace. Verify tool-builder runtime can execute a simple custom task against the stg-test workspace.
additionalContext: additionalContext:
qualified_name: "{{ match_resource.qualified_name }}" qualified_name: "{{ match_resource.qualified_name }}"
resourcePath: "custom/workspace/stg-test" resourcePath: custom/workspace/stg-test
hierarchy: [platform, workspace] hierarchy: [platform, workspace]
tags: tags:
- name: platform - name: platform
@@ -1,80 +1,77 @@
# System Info Check (Bash) # System Info Check (Bash)
The runner should report hostname and disk space when queried. The runner should report hostname and disk space when queried.
**Bundle:** `system-info-check-bash` · **Task title:** `Run system info check (bash)` · **Bundle:** `system-info-check-bash` · **Task title:** `Run system info check (bash)` ·
**Runtime:** tool-builder (bash) **Runtime:** tool-builder (bash)
> **Review artifact:** See `raw_script.sh` in this directory > **Review artifact:** See `raw_script.sh` in this directory
> for the decoded script content that reviewers and automated systems should > for the decoded script content that reviewers and automated systems should
> inspect. Do **not** parse the base64-encoded `GEN_CMD` in the TaskSet template > inspect. Do **not** parse the base64-encoded `GEN_CMD` in the TaskSet template
> for review purposes — use this SKILL_TEMPLATE.md and the accompanying > for review purposes — use this SKILL_TEMPLATE.md and the accompanying
> `raw_script.sh` file instead. > `raw_script.sh` file instead.
## When this SLX gets created ## When this SLX gets created
- **Platform:** `runwhen` — workspace-builder matches RunWhen platform resources - **Platform:** `runwhen` — workspace-builder matches RunWhen platform resources
- **Resource types:** `workspace` - **Resource types:** `workspace`
- **Match rules (plain English):** - **Match rules (plain English):**
- matches every resource (pattern `.+` on name) - matches every resource (pattern `.+` on name)
- **Expected cardinality:** one SLX per matched resource, named `<qualifiers>-system-info-che` - **Expected cardinality:** one SLX per matched resource, named `<qualifiers>-sys-info-bash`
- **Qualifiers:** `workspace` - **Qualifiers:** `workspace`
## What this SLX does ## What this SLX does
The task runs a bash script via the shared `tool-builder` codebundle in The task runs a bash script via the shared `tool-builder` codebundle in
`rw-generic-codecollection`. The workspace-builder renders the TaskSet template with `rw-generic-codecollection`. The workspace-builder renders the TaskSet template with
a base64-encoded `GEN_CMD` at deploy time; the decoded script is available in a base64-encoded `GEN_CMD` at deploy time; the decoded script is available in
`raw_script.sh` in this directory for review. `raw_script.sh` in this directory for review.
### Environment variables ### Environment variables
| Name | Value | Notes | | Name | Value | Notes |
|---|---|---| |---|---|---|
| _(none)_ | | | | _(none)_ | | |
### Secrets (names only — values live in RunWhen workspace secrets)
### Secrets (names only — values live in RunWhen workspace secrets) | Name | Required |
| Name | Required |
|---|---| |---|---|
| _(none)_ | no | | _(none)_ | no |
### Runtime variables (user-supplied at run time)
### Runtime variables (user-supplied at run time) | Name | Default | Description |
| Name | Default | Description |
|---|---|---| |---|---|---|
| _(none)_ | | | | _(none)_ | | |
## Operational metadata
## Operational metadata - **Timeout:** 300s
- **Access:** `read-only` · **Data:** `config`
- **Owners:** shea@runwhen.com
- **Timeout:** 300s ## Provenance
- **Access:** `read-only` · **Data:** `config`
- **Owners:** shea@runwhen.com
## Provenance - Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Source workspace: `stg-test` - Source workspace: `stg-test`
- Generated at: `2026-07-07T03:52:40Z` - Generated at: `2026-07-07T04:35:06Z`
## Deploying this codecollection ## Deploying this codecollection
Add to your runwhen-local runner `workspaceInfo.yaml`: Add to your runwhen-local runner `workspaceInfo.yaml`:
```yaml ```yaml
codeCollections: codeCollections:
- repoURL: https://<host>/<org>/<your-private-codecollection>.git - repoURL: https://<host>/<org>/<your-private-codecollection>.git
ref: main ref: main
``` ```
Then reconcile (Flux example): Then reconcile (Flux example):
```bash ```bash
flux reconcile hr runwhen-local -n <runner-namespace> --with-source flux reconcile hr runwhen-local -n <runner-namespace> --with-source
``` ```
> **Requires runwhen-local with `platform: runwhen` support** (RW-1355). Until that > **Requires runwhen-local with `platform: runwhen` support** (RW-1355). Until that
> release lands, generation rules using `platform: runwhen` will not render SLXs. > release lands, generation rules using `platform: runwhen` will not render SLXs.
@@ -12,7 +12,7 @@ spec:
- name - name
mode: substring mode: substring
slxs: slxs:
- baseName: system-info-che - baseName: sys-info-bash
qualifiers: qualifiers:
- workspace - workspace
baseTemplateName: system-info-check-bash baseTemplateName: system-info-check-bash
@@ -17,7 +17,7 @@ spec:
The runner should report hostname and disk space when queried. The runner should report hostname and disk space when queried.
additionalContext: additionalContext:
qualified_name: "{{ match_resource.qualified_name }}" qualified_name: "{{ match_resource.qualified_name }}"
resourcePath: "custom/workspace/stg-test" resourcePath: custom/workspace/stg-test
hierarchy: [platform, workspace] hierarchy: [platform, workspace]
tags: tags:
- name: platform - name: platform
@@ -1,80 +1,77 @@
# System Info Check # System Info Check
The runner should report its kernel and system information when queried. The runner should report its kernel and system information when queried.
**Bundle:** `system-info-check` · **Task title:** `Run system info check` · **Bundle:** `system-info-check` · **Task title:** `Run system info check` ·
**Runtime:** tool-builder (python) **Runtime:** tool-builder (python)
> **Review artifact:** See `raw_script.py` in this directory > **Review artifact:** See `raw_script.py` in this directory
> for the decoded script content that reviewers and automated systems should > for the decoded script content that reviewers and automated systems should
> inspect. Do **not** parse the base64-encoded `GEN_CMD` in the TaskSet template > inspect. Do **not** parse the base64-encoded `GEN_CMD` in the TaskSet template
> for review purposes — use this SKILL_TEMPLATE.md and the accompanying > for review purposes — use this SKILL_TEMPLATE.md and the accompanying
> `raw_script.py` file instead. > `raw_script.py` file instead.
## When this SLX gets created ## When this SLX gets created
- **Platform:** `runwhen` — workspace-builder matches RunWhen platform resources - **Platform:** `runwhen` — workspace-builder matches RunWhen platform resources
- **Resource types:** `workspace` - **Resource types:** `workspace`
- **Match rules (plain English):** - **Match rules (plain English):**
- matches every resource (pattern `.+` on name) - matches every resource (pattern `.+` on name)
- **Expected cardinality:** one SLX per matched resource, named `<qualifiers>-system-info-che` - **Expected cardinality:** one SLX per matched resource, named `<qualifiers>-sys-info-py`
- **Qualifiers:** `workspace` - **Qualifiers:** `workspace`
## What this SLX does ## What this SLX does
The task runs a python script via the shared `tool-builder` codebundle in The task runs a python script via the shared `tool-builder` codebundle in
`rw-generic-codecollection`. The workspace-builder renders the TaskSet template with `rw-generic-codecollection`. The workspace-builder renders the TaskSet template with
a base64-encoded `GEN_CMD` at deploy time; the decoded script is available in a base64-encoded `GEN_CMD` at deploy time; the decoded script is available in
`raw_script.py` in this directory for review. `raw_script.py` in this directory for review.
### Environment variables ### Environment variables
| Name | Value | Notes | | Name | Value | Notes |
|---|---|---| |---|---|---|
| _(none)_ | | | | _(none)_ | | |
### Secrets (names only — values live in RunWhen workspace secrets)
### Secrets (names only — values live in RunWhen workspace secrets) | Name | Required |
| Name | Required |
|---|---| |---|---|
| _(none)_ | no | | _(none)_ | no |
### Runtime variables (user-supplied at run time)
### Runtime variables (user-supplied at run time) | Name | Default | Description |
| Name | Default | Description |
|---|---|---| |---|---|---|
| _(none)_ | | | | _(none)_ | | |
## Operational metadata
## Operational metadata - **Timeout:** 300s
- **Access:** `read-only` · **Data:** `config`
- **Owners:** shea@runwhen.com
- **Timeout:** 300s ## Provenance
- **Access:** `read-only` · **Data:** `config`
- **Owners:** shea@runwhen.com
## Provenance - Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Generated by `runwhen-platform-mcp` `render_codecollection_skill` v0.0.0-dev
- Source workspace: `stg-test` - Source workspace: `stg-test`
- Generated at: `2026-07-07T03:52:40Z` - Generated at: `2026-07-07T04:35:06Z`
## Deploying this codecollection ## Deploying this codecollection
Add to your runwhen-local runner `workspaceInfo.yaml`: Add to your runwhen-local runner `workspaceInfo.yaml`:
```yaml ```yaml
codeCollections: codeCollections:
- repoURL: https://<host>/<org>/<your-private-codecollection>.git - repoURL: https://<host>/<org>/<your-private-codecollection>.git
ref: main ref: main
``` ```
Then reconcile (Flux example): Then reconcile (Flux example):
```bash ```bash
flux reconcile hr runwhen-local -n <runner-namespace> --with-source flux reconcile hr runwhen-local -n <runner-namespace> --with-source
``` ```
> **Requires runwhen-local with `platform: runwhen` support** (RW-1355). Until that > **Requires runwhen-local with `platform: runwhen` support** (RW-1355). Until that
> release lands, generation rules using `platform: runwhen` will not render SLXs. > release lands, generation rules using `platform: runwhen` will not render SLXs.
@@ -12,7 +12,7 @@ spec:
- name - name
mode: substring mode: substring
slxs: slxs:
- baseName: system-info-che - baseName: sys-info-py
qualifiers: qualifiers:
- workspace - workspace
baseTemplateName: system-info-check baseTemplateName: system-info-check
@@ -17,7 +17,7 @@ spec:
The runner should report its kernel and system information when queried. The runner should report its kernel and system information when queried.
additionalContext: additionalContext:
qualified_name: "{{ match_resource.qualified_name }}" qualified_name: "{{ match_resource.qualified_name }}"
resourcePath: "custom/workspace/stg-test" resourcePath: custom/workspace/stg-test
hierarchy: [platform, workspace] hierarchy: [platform, workspace]
tags: tags:
- name: platform - name: platform