6.3 KiB
Plano Agent Skills
A structured repository of best practices for building agents and agentic applications with Plano — the AI-native proxy and dataplane. Optimized for coding agents and LLMs.
What Are Skills?
Skills are principle-based guides that help coding agents (Claude Code, Cursor, Copilot, etc.) make better decisions when working with Plano. They cover configuration patterns, routing strategies, agent orchestration, observability, and CLI workflows — acting as operating principles, not documentation replacements.
Installing
# Install via npx skills
npx skills add katanemo/plano-agent-skills
Structure
skills/
├── rules/ # Individual rule files (one per rule)
│ ├── _sections.md # Section metadata and prefix definitions
│ ├── _template.md # Template for creating new rules
│ ├── config-*.md # Section 1: Configuration Fundamentals
│ ├── routing-*.md # Section 2: Routing & Model Selection
│ ├── agent-*.md # Section 3: Agent Orchestration
│ ├── filter-*.md # Section 4: Filter Chains & Guardrails
│ ├── observe-*.md # Section 5: Observability & Debugging
│ ├── cli-*.md # Section 6: CLI Operations
│ ├── deploy-*.md # Section 7: Deployment & Security
│ └── advanced-*.md # Section 8: Advanced Patterns
├── src/
│ ├── build.ts # Compiles rules/ into AGENTS.md
│ ├── validate.ts # Validates rule files
│ └── extract-tests.ts # Extracts test cases for LLM evaluation
├── metadata.json # Document metadata
├── AGENTS.md # Compiled output (generated — do not edit directly)
├── test-cases.json # Test cases for LLM evaluation (generated)
└── package.json
Sections
| # | Prefix | Section | Rules |
|---|---|---|---|
| 1 | config- |
Configuration Fundamentals | Version, listeners, providers, secrets, timeouts |
| 2 | routing- |
Routing & Model Selection | Preferences, aliases, defaults, passthrough |
| 3 | agent- |
Agent Orchestration | Descriptions, agent registration |
| 4 | filter- |
Filter Chains & Guardrails | Ordering, MCP integration, guardrails |
| 5 | observe- |
Observability & Debugging | Tracing, trace inspection, span attributes |
| 6 | cli- |
CLI Operations | Startup, CLI agent, init, code generation |
| 7 | deploy- |
Deployment & Security | Docker networking, state storage, health checks |
| 8 | advanced- |
Advanced Patterns | Prompt targets, rate limits, multi-listener |
Getting Started
# Install dependencies
npm install
# Validate all rule files
npm run validate
# Build AGENTS.md from rules
npm run build
# Extract test cases for LLM evaluation
npm run extract-tests
# Run all of the above
npm run dev
Creating a New Rule
-
Copy
rules/_template.mdtorules/<prefix>-<description>.md -
Choose the correct prefix for your section:
config-— Configuration Fundamentalsrouting-— Routing & Model Selectionagent-— Agent Orchestrationfilter-— Filter Chains & Guardrailsobserve-— Observability & Debuggingcli-— CLI Operationsdeploy-— Deployment & Securityadvanced-— Advanced Patterns
-
Fill in the frontmatter:
--- title: Clear, Actionable Rule Title impact: HIGH impactDescription: One-line description of why this matters tags: config, routing, relevant-tags --- -
Write the rule body with:
- Brief explanation of the principle and why it matters
- Incorrect example (YAML config or CLI command showing the wrong pattern)
- Correct example (the right pattern with comments)
- Optional explanatory notes
-
Run
npm run devto validate and regenerate
Rule File Structure
---
title: Rule Title Here
impact: CRITICAL
impactDescription: One sentence on the impact
tags: tag1, tag2, tag3
---
## Rule Title Here
Brief explanation of the rule and why it matters for Plano developers.
**Incorrect (describe what's wrong):**
```yaml
# Bad example
Correct (describe what's right):
# Good example with comments explaining the decisions
Optional explanatory text, lists, or tables.
Reference: https://github.com/katanemo/archgw
Impact Levels
| Level | Description |
|---|---|
CRITICAL |
Causes startup failures or silent misbehavior — always fix |
HIGH |
Significantly degrades routing accuracy, security, or reliability |
MEDIUM-HIGH |
Important for production deployments |
MEDIUM |
Best practice for maintainability and developer experience |
LOW-MEDIUM |
Incremental improvements |
LOW |
Nice to have |
Key Rules at a Glance
- Always set
version: v0.3.0— config is rejected without it - Use
host.docker.internalfor agent/filter URLs —localhostdoesn't work inside Docker - Set exactly one
default: trueprovider — unmatched requests need a fallback - Write specific routing preference descriptions — vague descriptions cause misroutes
- Order filter chains: guards → rewriters → context builders — never build context before blocking bad input
- Use
$VAR_NAMEfor all secrets — never hardcode API keys in config.yaml - Enable tracing with
--with-tracing— traces are the primary debugging tool
Scripts
| Command | Description |
|---|---|
npm run build |
Compile rules/ into AGENTS.md |
npm run validate |
Validate all rule files for required fields and structure |
npm run extract-tests |
Generate test-cases.json for LLM evaluation |
npm run dev |
Validate + build + extract tests |
Contributing
Rules are automatically sorted alphabetically by title within each section — no need to manage numbers. IDs (1.1, 1.2, etc.) are assigned during build.
When adding rules:
- Use the correct filename prefix for your section
- Follow
_template.mdstructure - Include clear bad/good YAML or CLI examples
- Add relevant tags
- Run
npm run devto validate and regenerate
License
Apache-2.0 — see LICENSE