Skip to main content

rocketride-configuring-pipelines

Use when filling in a RocketRide pipeline's node configuration and validating it — fetching each node's schema, setting required fields, running the anti-pattern checklist, and validating against the engine before a run.

설치로 이동

소스 정보

저장소
rocketride-org/rocketride-server
최근 소스 활동
2026년 9월 14일 01:14
감지된 SKILL.md 언어
영어
스타
8,458
포크
2,716

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
4 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
rocketride-configuring-pipelines
description
Use when filling in a RocketRide pipeline's node configuration and validating it — fetching each node's schema, setting required fields, running the anti-pattern checklist, and validating against the engine before a run.
# Configuring & Validating RocketRide Pipelines Takes an approved topology (from `rocketride-designing-pipelines`) to a **validated** `pipeline.pipe` ready to run. Reliability comes from tools and a checklist, not cleverness: fetch schema → fill only real fields → checklist gate → `validate()` → re-validate until clean. Gate rules + forcing functions: `../rocketride-building-pipelines/GATE_PROTOCOL.md`. ## Step 1 — Configure each node (schema-driven, one at a time) For every node in the approved topology, in order: 1. **Fetch the schema** (L2): `describe_component` / `tools/fetch-node-schema.py <node>` / `.rocketride/schema/<node>.json`. Never configure from memory. (Forcing function 5.) Fetch **one node at a time** — never bulk-load every schema (FF#17). If you already fetched this node's schema while designing (Phase 1b) this session, reuse it with `--cache-ok` (serves the cached copy with no reconnect — still schema-grounded, just not re-fetched); a full re-fetch only on a cache miss. 2. **State what the schema says** before filling: the **required** fields, any **conditional** rules in prose ("if `batch_size` set, `max_batch_wait_ms` is required"), and the profile shape for LLM/embedding/store nodes. (Forcing function 10.) 3. **Fill only fields the schema defines.** Use `${ROCKETRIDE_*}` env references for secrets — never literal keys. Secret **values** never travel through tools or the model: over MCP, credentials are configured out-of-band — `list_integrations` reports per-integration readiness and (with a `name`) returns concrete setup steps to relay to the user. LLM/embedding/store nodes use a profile block: ```json "config": { "profile": "openai-5", "openai-5": { "apikey": "${ROCKETRIDE_OPENAI_KEY}" }, "parameters": {} } ``` Source nodes need the full source config, not `{}`: `{ "hideForm": true, "mode": "Source", "parameters": {}, "type": "<provider>" }`. The block above is the `<Good>` shape. The `<Bad>` shape — guessed from memory — fails validation and leaks a key: ```json "config": { "model": "gpt-5", "apikey": "sk-...", "max_tokens": 4096 } ``` Three bugs in one line: a **literal key** (must be `${ROCKETRIDE_*}`), **no `profile` wrapper**, and **`max_tokens` is not a real field** (the schema calls it `modelTotalTokens`). Fetch the schema, then copy the `<Good>` shape — never type config from memory. 4. **Run the 9-point checklist as a gate** (full list in `PIPELINE_ANTIPATTERNS.md`). State each item yes/no for this node before moving on — do not skip and claim "applied": > Node `<id>`: 1 ext✓ 2 components-order✓ 3 literal-guid✓ 4 source-match✓ 5 unique-id✓ > 6 input-array✓ 7 lane-types✓ 8 acyclic/no-orphan✓ 9 ROCKETRIDE_ env✓ ## Step 2 — Assemble & validate (→ Gate C) 1. **Assemble** the `.pipe`: `components` first (each with `id`, `provider`, `config`, and `input` for non-source nodes; `control` on controlled nodes), then a **literal-GUID** `project_id`, `viewport`, `version: 1`. File extension **`.pipe`**. 2. **validate()** the whole pipeline (L3): `validate_pipeline` tool / `tools/validate-pipeline.py <file>` (calls `client.validate()` → `{errors, warnings}`) / `--static` lint if no engine. 3. **The re-validation loop** (Forcing function 11): if `errors` is non-empty, show them **verbatim**, fix the offending node (loop back to Step 1 for that node — don't restart design), then **call validate() again**. Repeat until `errors == []`. Never write "validation passed" without a clean result in hand. Address warnings or explain why each is acceptable. 4. **Gate C** is a tool gate, not a user gate — it is "passed" only when validate() returns zero errors. Quote it: `validate(): 0 errors, K warnings`. ## Step 3 — Cost approval (→ Gate C.5) Before handing off to run, estimate cost and gate it (GATE_PROTOCOL §5): - Count paid/LLM nodes × expected calls × rough token cost; note if it runs on cloud compute (billed to the wallet) vs the user's own dev keys locally. - **Gate C.5:** > This run will cost ≈ $X (<basis>). Approve this run? (yes / no) Then **Write `.context/GATE_STATE.md`** = `GATE C.5 | presented | status: AWAITING` (§2), and STOP and wait. "Just run it" earlier is not cost approval. A tiny local test on the user's own key can be a one-line confirm; cloud/large runs always gate. Hand the validated `.pipe` to `rocketride-running-pipelines`. ## Red flags | Thought | Reality | |---|---| | "I'll set apikey/model from what I remember" | Fetch the schema; field names differ per provider (`modelTotalTokens`, profile keys). | | "Required fields only; prose constraints are optional" | Conditional rules ("if X then Y") are required too — state and satisfy them. | | "I'll run the checklist once at the end" | Per node, as a gate, stated yes/no. A checklist skimmed once is a checklist skipped. | | "validate() erred but I fixed it in the text" | A fix you didn't re-validate is a guess. Re-call validate() until errors == []. | | "Zero errors but warnings — ship it" | Read each warning; fix or justify. Warnings are often the real bug. | | "Hardcode the key just for the test" | Never. `${ROCKETRIDE_*}` always; literal keys leak and break substitution. | | "Skip the cost gate, it's a small run" | Present Gate C.5 regardless; let the user decide. | ## Supporting files - `PIPELINE_ANTIPATTERNS.md` — the real common mistakes, the 9-point checklist, the error table - `tools/fetch-node-schema.py` — `get_service(name)` (live) or read `.rocketride/schema/<name>.json` - `tools/validate-pipeline.py` — `client.validate(pipeline)`; `--static` = local lint, no engine - **deep docs** — for provider-specific config nuance/profiles the schema alone doesn't explain, fetch the node's doc page: `../rocketride-building-pipelines/tools/fetch-doc.py "<node-name>"` (→ `/nodes/<name>.md`). The schema gives exact fields; the page gives the why. Never `llms-full.txt`.
GitHub에서 보기