Skip to main content

mirrord-config

Helps users generate, edit, and validate mirrord.json configuration files for mirrord (MetalBear). Use when the user wants to connect their local process to a Kubernetes environment, configure features (env/fs/network), or needs feedback on an existing mirrord.json. Always ensures output JSON is valid and schema-conformant.

Zur Installation springen

Quellinformationen

Repository
RunnerQuan/SAFE-Agent
Letzte Quellaktivität
30. März 2026 um 04:33
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
6 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
mirrord-config
description
Helps users generate, edit, and validate mirrord.json configuration files for mirrord (MetalBear). Use when the user wants to connect their local process to a Kubernetes environment, configure features (env/fs/network), or needs feedback on an existing mirrord.json. Always ensures output JSON is valid and schema-conformant.
metadata
{"author":"MetalBear","version":"1.0"}
# Mirrord Configuration Skill ## Purpose Generate and validate `mirrord.json` configuration files: - **Generate** valid configs from natural language descriptions - **Validate** user-provided configs against schema - **Fix** invalid configurations with explanations - **Explain** configuration options and patterns ## Critical First Steps **Step 1: Load references** Read BOTH reference files from this skill's `references/` directory: 1. `references/schema.json` - Authoritative JSON Schema 2. `references/configuration.md` - Configuration reference If using absolute paths, these are located relative to this skill's installation directory. Search for them if needed using patterns like `**/mirrord-config/references/*`. **Step 2: Install mirrord CLI (if not present)** ```bash # Check if installed which mirrord || brew install metalbear-co/mirrord/mirrord || curl -fsSL https://raw.githubusercontent.com/metalbear-co/mirrord/main/scripts/install.sh | bash ``` **Step 3: Validate before presenting** After generating any config, ALWAYS run: ```bash mirrord verify-config /path/to/config.json ``` - If validation fails, fix the config and re-validate - Only present configs that pass validation - Include validation output in your response ## Request Types ### Generate new config User describes what they want without providing JSON. - Extract target (pod/deployment), namespace, features needed - Create minimal valid config using only schema-defined keys - Default to minimal configs; mirrord has sensible defaults ### Validate existing config User provides JSON to check. - Parse strictly (catch trailing commas, comments, invalid syntax) - Validate against schema - List issues by severity: Errors → Warnings → Suggestions - Provide corrected version ### Modify existing config User wants changes to their config. - Validate first, then apply requested changes - Ensure modifications maintain schema conformance ## Response Format ### For generation or fixes: 1. Brief summary (1-2 sentences) 2. Valid JSON config in code block 3. Validation output from `mirrord verify-config`: ```json { "type": "Success", "warnings": [], "compatible_target_types": [...] } ``` 4. Short explanation of key sections (if validation passed) ### For validation: 1. **Errors** (schema violations - will cause failures) 2. **Warnings** (valid but potentially wrong behavior) 3. **Suggestions** (optional improvements) 4. Corrected JSON config ## Configuration Guidelines ### Common patterns (verify exact keys in schema): **Target selection:** - `"target": "pod/name"` or `{"path": "pod/name", "namespace": "staging"}` - Set `operator` if using operator mode - Specify `kube_context` if needed **Features:** - `"env": true` - Mirror environment variables - `"env": {"include": "VAR1;VAR2"}` - Selective inclusion - `"fs": "read"` - Read-only filesystem access - `"network": true` - Enable network mirroring - `"network": {"incoming": {"mode": "steal"}}` - Steal incoming traffic **Network modes:** - Check schema for valid `incoming.mode` values (e.g., "steal", "mirror", "off") - Configure HTTP filters, port mapping, localhost handling **Templating:** - mirrord uses Tera templates - Example: `"target": "{{ get_env(name=\"TARGET\", default=\"pod/fallback\") }}"` - Templates must remain valid JSON ## Validation Rules **Must enforce:** - Strict JSON parsing (no comments, no trailing commas) - All keys must exist in schema - Correct types (string vs object, enums, etc.) - Required fields present - No `additionalProperties` where schema forbids them **Path notation for errors:** Use JSON Pointer style: `/feature/network/incoming/mode` ## Common Pitfalls - User pastes YAML/TOML → Explain JSON required, offer to convert structure - User requests unsupported key → Say it's not in schema, suggest alternatives - Overly complex configs → Prefer minimal configs with only requested settings - Conflicting settings → Identify based on configuration.md semantics ## What to Ask (only if critical) If request is under-specified, ask for ONE detail: - Target identity (pod name, namespace) - Incoming network behavior (steal vs mirror) - Operator usage (yes/no) - Specific ports to map/ignore Otherwise provide safe defaults and note assumptions. ## Automatic Validation Workflow Every generated or modified config MUST be validated before presentation: 1. Save config to temporary file 2. Run `mirrord verify-config <file>` 3. If validation fails: - Parse error messages - Fix the config - Re-validate until success 4. Present config with validation output Never skip validation - it catches schema errors we might miss manually. ## Quality Requirements ✓ **Schema-first**: Output must conform to `schema.json` ✓ **No hallucination**: Only use documented keys ✓ **Valid JSON**: Always parseable, no comments ✓ **Actionable feedback**: Clear explanations of what to fix and why ✓ **Minimal configs**: Don't set unnecessary options ## Example Scenarios **"Connect to pod api-7c8d9 in staging, steal traffic on port 8080, exclude secret env vars"** → Read references, generate minimal config with target, network.incoming, env.exclude **User provides invalid JSON with trailing comma** → Parse error → Fix syntax → Validate against schema → Explain issues → Provide corrected config **"Is my config valid?" + JSON provided** → Check syntax → Validate all keys/types against schema → List violations → Suggest fixes
Auf GitHub ansehen