Claude Skill

poly-adk-rtc

This skill should be used when the user wants to "change real-time configuration", "update RTC", "edit per-environment config", or work with the real_time_configuration/ directory of a PolyAI ADK project. Covers poly rtc pull/push/edit/diff/validate, drift protection, and the liv

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Download polyai-adk-skills_poly-adk-rtc-f615d0f.zip · 1 KB

Install

skills CLI npx skills add https://github.com/polyai/adk/tree/main/skills/poly-adk-rtc
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install polyai-adk@llmmart
Git git clone https://github.com/polyai/adk.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole polyai/adk collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Real-Time Configuration (RTC)

Load poly-adk-workflow first for the resource workflow RTC sits outside of. RTC is per-environment configuration that takes effect without a deployment — it is not branched, not versioned with resources, and not promoted through the sandbox → pre-release → live ladder. You pull and push it per environment, and there is no promotion between environments: changing a value everywhere means pushing to each one.

poly rtc push --env live writes straight to production, effective immediately — no branch, review, or promotion step. Never push to live (or pre-release) unless the user explicitly asks. Verify in sandbox first.

Local layout

Each environment holds a schema (schema.json, the shape) and data (data.json, the values):

real_time_configuration/
├── draft_and_sandbox/     # the sandbox environment (note the directory name)
│   ├── schema.json
│   └── data.json
├── pre_release/
└── live/

The cycle

poly rtc pull                  # all environments by default (--env to narrow)
# edit schema.json / data.json
poly rtc diff                  # local vs remote, per environment
poly rtc validate              # data.json against schema.json
poly rtc push --env sandbox    # --env is REQUIRED on push — no default, so no wrong-env accidents
  • --schema / --data on pull and push operate on just one half (mutually exclusive).
  • poly rtc push runs the same validation as poly rtc validate unless --skip-validation.
  • poly rtc edit --env <env> does pull → open in $EDITOR → validate → push in one step. It is inherently interactive (no --json), so as an agent prefer the pull/edit-files/push cycle.

Drift protection

Each poly rtc pull stores a base copy. On push, if the remote moved since your last pull (usually someone editing in the Agent Studio UI), the config has drifted. Default behavior is a three-way merge — per key, unlike resource files which merge per line: a key changed on one side applies cleanly; a key changed differently on both sides is a conflict and aborts the push.

  • --no-merge — fail on any drift instead of merging.
  • --force — skip the drift check and overwrite the remote. Confirm with the user first; someone's UI edits may be on the other side.
  • Drift protection only works if you pulled first — push without a prior pull and the check is silently skipped. Always poly rtc pull before editing.
Files (adk)
  • SKILL.md 3.1 KB
    ---
    name: poly-adk-rtc
    description: >
      This skill should be used when the user wants to "change real-time configuration",
      "update RTC", "edit per-environment config", or work with the real_time_configuration/
      directory of a PolyAI ADK project. Covers poly rtc pull/push/edit/diff/validate, drift
      protection, and the live-environment hazard. Part of the PolyAI ADK skills suite.
      Do NOT use for resources that deploy through branches (use poly-adk-workflow).
    metadata:
      author: PolyAI
      license: Apache-2.0
      version: 0.71.3
      requires:
        bins:
          - poly
        install: "uv tool install polyai-adk"
    ---
    
    # Real-Time Configuration (RTC)
    
    Load `poly-adk-workflow` first for the resource workflow RTC sits *outside* of. RTC is per-environment configuration that takes effect **without a deployment** — it is not branched, not versioned with resources, and not promoted through the sandbox → pre-release → live ladder. You pull and push it per environment, and there is no promotion between environments: changing a value everywhere means pushing to each one.
    
    **`poly rtc push --env live` writes straight to production, effective immediately — no branch, review, or promotion step.** Never push to `live` (or `pre-release`) unless the user explicitly asks. Verify in `sandbox` first.
    
    ## Local layout
    
    Each environment holds a **schema** (`schema.json`, the shape) and **data** (`data.json`, the values):
    
    ```text
    real_time_configuration/
    ├── draft_and_sandbox/     # the sandbox environment (note the directory name)
    │   ├── schema.json
    │   └── data.json
    ├── pre_release/
    └── live/
    ```
    
    ## The cycle
    
    ```bash
    poly rtc pull                  # all environments by default (--env to narrow)
    # edit schema.json / data.json
    poly rtc diff                  # local vs remote, per environment
    poly rtc validate              # data.json against schema.json
    poly rtc push --env sandbox    # --env is REQUIRED on push — no default, so no wrong-env accidents
    ```
    
    - `--schema` / `--data` on pull and push operate on just one half (mutually exclusive).
    - `poly rtc push` runs the same validation as `poly rtc validate` unless `--skip-validation`.
    - `poly rtc edit --env <env>` does pull → open in `$EDITOR` → validate → push in one step. It is inherently interactive (no `--json`), so as an agent prefer the pull/edit-files/push cycle.
    
    ## Drift protection
    
    Each `poly rtc pull` stores a base copy. On push, if the remote moved since your last pull (usually someone editing in the Agent Studio UI), the config has **drifted**. Default behavior is a three-way merge — **per key**, unlike resource files which merge per line: a key changed on one side applies cleanly; a key changed differently on both sides is a conflict and aborts the push.
    
    - `--no-merge` — fail on any drift instead of merging.
    - `--force` — skip the drift check and overwrite the remote. Confirm with the user first; someone's UI edits may be on the other side.
    - **Drift protection only works if you pulled first** — push without a prior pull and the check is silently skipped. Always `poly rtc pull` before editing.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.