Skip to content

feat(devops): add pde-gcp-runtime skill — kei CLI + kei-connector-runtime installation path - #7

Closed
Soypete wants to merge 1 commit into
mainfrom
feat/pde-gcp-runtime-skill
Closed

Soypete wants to merge 1 commit into
mainfrom
feat/pde-gcp-runtime-skill

Conversation

@Soypete

@Soypete Soypete commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a focused skill for the PDE GCP runtime-installation path under skills/devops/pde-gcp-runtime/.

Files

File Lines Purpose
skills/devops/pde-gcp-runtime/SKILL.md 426 Canonical skill definition
skills/devops/pde-gcp-runtime/evals/evals.json 59 Four eval cases with expectations

What the skill teaches

A harness to perform the full PDE GCP runtime installation lifecycle:

  1. Control-plane identity registration — kei orgs create, kei workspaces create, kei whoami
  2. Installation + credential minting — kei installations create with --dry-run first, single KEI_RUNTIME_TOKEN stored in Secret Manager
  3. Default-tool policy bootstrap — idempotent bootstrap that publishes permit policies for wiki_search and web_search; proxy is fail-closed until bundle ready
  4. Cloud Run configuration — kei-connector-runtime as sidecar with KEI_RUNTIME_TOKEN from secretKeyRef, never inline
  5. Harness identity registration — kei harnesses register, kei installations assign-agent
  6. Heartbeat + health — kei-connector-runtime heartbeat, kei installations status --show-heartbeat
  7. Wiki/web tool routing — POST /api/v1/runtime/tools/invoke with policy enforcement
  8. Redacted audit verification — kei audits list + jq to confirm credential fields are redacted

Negative checks

  • Missing workspace → workspace not found
  • Missing policy/binding → no matching policy
  • Stale/revoked installation → credential_valid: false, heartbeat rows_affected = 0
  • Unknown tool → unknown tool
  • Credential-bearing heartbeat → zero grep matches for credential patterns

Key design decisions

  • Binary names explicitly distinct: kei (admin CLI) vs kei-connector-runtime (tenant-side daemon)
  • No GCP deploy, Terraform, or providers — those are preconditions
  • No secrets in files/flags — KEI_RUNTIME_TOKEN read from env var or mounted secret
  • Fail-closed proxy — no tool calls until policy bundle is valid and ready
  • Dry-run before mutate — all mutation commands offer --dry-run

Validation

All CI checks pass locally:

Check Result
verify-skills.mjs 1 skill verified
verify-manifests.mjs 7 manifests match
verify-evals.mjs 1 skill with 4 eval cases
check-internal-links.mjs 14 links resolve
markdownlint 0 issues
oxlint 0 issues

Researched wiki decisions: HAI-121 runtime-installation-repository-extraction, runtime-installation-contract (ADR-020), control-plane-default-tool-policy-bootstrap, console-runtime-onboarding, HAI-127 argv leak blocker, HAI-122 agent_id deferral blocker.

…time installation path

Add a canonical SKILL.md and evals/evals.json teaching a harness to:
- Use administrator kei CLI for control-plane installation and credential
  operations (org/workspace/installation create, policy bootstrap)
- Install and invoke the separate tenant-side kei-connector-runtime binary
  for provider execution, heartbeat, and tool routing
- Register org/workspace/installation/harness identity
- Configure GCP Cloud Run using KEI_RUNTIME_TOKEN from Secret Manager
  (never embedded credentials)
- Send heartbeats and route wiki/web tool calls through the runtime
- Verify redacted audit delivery (no credential leakage)

Includes dry-run and local validation workflow plus negative checks for:
missing workspace, missing policy/binding, stale/revoked installation,
unknown tool, and credential-bearing heartbeat.

Binary names are explicitly distinct: kei (admin CLI) vs
kei-connector-runtime (tenant-side daemon).

Validated: verify-skills, verify-manifests, verify-evals, check-internal-links,
markdownlint (0 issues), oxlint (0 issues).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant