Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:21:38 +08:00
commit 24d76237d6
7 changed files with 868 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
{
"name": "002-jeremy-yaml-master-agent",
"description": "Intelligent YAML validation, generation, and transformation agent with schema inference, linting, and format conversion capabilities",
"version": "1.0.0",
"author": {
"name": "Jeremy Longshore",
"email": "jeremy@intentsolutions.io"
},
"skills": [
"./skills"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# 002-jeremy-yaml-master-agent
Intelligent YAML validation, generation, and transformation agent with schema inference, linting, and format conversion capabilities

57
plugin.lock.json Normal file
View File

@@ -0,0 +1,57 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:jeremylongshore/claude-code-plugins-plus:plugins/productivity/002-jeremy-yaml-master-agent",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "b1ef7f4089765653e616b4f66e49bb76af533831",
"treeHash": "c6846aab44973acb3c1bde481c9cc60b849d6cdd70b9dc901ae5ef618204322f",
"generatedAt": "2025-11-28T10:18:01.848893Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "002-jeremy-yaml-master-agent",
"description": "Intelligent YAML validation, generation, and transformation agent with schema inference, linting, and format conversion capabilities",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "929a27bbef11b10c4b7d37dc4403c4cab27aa53f44196c1ab83e6d0e7bc23cc5"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "8c0e60cda84c176aa614ee692c662c5e1ddb69fb041c7524c746f792af2513f0"
},
{
"path": "skills/yaml-master/SKILL.md",
"sha256": "06738fa392d06f66830310e0c0ed2ce6101a82142585dcf8b22ba7737b64cbde"
},
{
"path": "skills/yaml-master/references/README.md",
"sha256": "db9680278e03728fef93321fc76c435387bc0c8fe1dcc9870bdf2fa236ea8ac3"
},
{
"path": "skills/yaml-master/scripts/README.md",
"sha256": "f042646ad5b685556c044080a6b73202a490fb8288be8219328faefc12d5a30e"
},
{
"path": "skills/yaml-master/assets/README.md",
"sha256": "33bfb083485b48c78a1738368c52cd9f202724a414bce507db181d8291b83aec"
}
],
"dirSha256": "c6846aab44973acb3c1bde481c9cc60b849d6cdd70b9dc901ae5ef618204322f"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}

720
skills/yaml-master/SKILL.md Normal file
View File

@@ -0,0 +1,720 @@
---
name: yaml-master
description: |
PROACTIVE YAML INTELLIGENCE: Automatically activates when working with YAML files, configuration management,
CI/CD pipelines, Kubernetes manifests, Docker Compose, or any YAML-based workflows. Provides intelligent
validation, schema inference, linting, format conversion (JSON/TOML/XML), and structural transformations
with deep understanding of YAML specifications and common anti-patterns.
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
version: 1.0.0
---
# YAML Master Agent
**⚡ This skill activates AUTOMATICALLY when you work with YAML files!**
## Automatic Trigger Conditions
This skill proactively activates when Claude detects:
1. **File Operations**: Reading, writing, or editing `.yaml` or `.yml` files
2. **Configuration Management**: Working with Ansible, Kubernetes, Docker Compose, GitHub Actions
3. **CI/CD Workflows**: GitLab CI, CircleCI, Travis CI, Azure Pipelines configurations
4. **Schema Validation**: Validating configuration files against schemas
5. **Format Conversion**: Converting between YAML, JSON, TOML, XML formats
6. **User Requests**: Explicit mentions of "yaml", "validate yaml", "fix yaml syntax", "convert yaml"
**No commands needed!** Just work with YAML files naturally, and this skill activates automatically.
---
## Core Capabilities
### 1. Intelligent YAML Validation
**What It Does**:
- Detects syntax errors (indentation, duplicate keys, invalid scalars)
- Validates against YAML 1.2 specification
- Identifies common anti-patterns (tabs vs spaces, anchors/aliases issues)
- Provides detailed error messages with line numbers and fix suggestions
**Example**:
```yaml
# ❌ INVALID YAML
services:
web:
image: nginx
ports: # Mixed tabs and spaces - ERROR!
- "80:80"
```
**Agent Action**: Automatically detects mixed indentation, suggests fix:
```yaml
# ✅ FIXED YAML
services:
web:
image: nginx
ports: # Consistent 2-space indentation
- "80:80"
```
### 2. Schema Inference & Generation
**What It Does**:
- Analyzes YAML structure and infers JSON Schema
- Generates OpenAPI/Swagger schemas from YAML
- Creates type definitions for TypeScript/Python from YAML configs
- Validates instances against inferred or provided schemas
**Example**:
```yaml
# Input YAML
user:
name: Jeremy
age: 35
roles:
- admin
- developer
```
**Agent Action**: Infers schema:
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" },
"roles": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["name", "age", "roles"]
}
}
}
```
### 3. Format Conversion (YAML ↔ JSON ↔ TOML ↔ XML)
**What It Does**:
- Bidirectional conversion between YAML, JSON, TOML, XML
- Preserves comments when possible (YAML ↔ TOML)
- Handles complex nested structures, arrays, anchors/aliases
- Validates converted output maintains semantic equivalence
**Example - YAML to JSON**:
```yaml
# config.yaml
database:
host: localhost
port: 5432
credentials: &creds
user: admin
pass: secret
```
**Agent Action**: Converts to JSON:
```json
{
"database": {
"host": "localhost",
"port": 5432,
"credentials": {
"user": "admin",
"pass": "secret"
}
}
}
```
### 4. Kubernetes Manifest Expertise
**What It Does**:
- Validates K8s manifests against API versions
- Suggests best practices (resource limits, labels, health checks)
- Detects security issues (privileged containers, root users)
- Generates complete manifests from minimal specs
**Example**:
```yaml
# Minimal input
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
```
**Agent Action**: Expands with best practices:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
version: "1.0"
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
version: "1.0"
spec:
containers:
- name: nginx
image: nginx:1.25-alpine
ports:
- containerPort: 80
name: http
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
securityContext:
runAsNonRoot: true
runAsUser: 1000
allowPrivilegeEscalation: false
```
### 5. Docker Compose Optimization
**What It Does**:
- Validates Docker Compose syntax (v2.x, v3.x)
- Suggests networking best practices
- Optimizes volume mounts and environment variables
- Detects security misconfigurations
**Example**:
```yaml
# ❌ SUBOPTIMAL
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: admin123 # Hardcoded secret!
```
**Agent Action**: Suggests secure alternative:
```yaml
# ✅ OPTIMIZED
version: '3.8'
services:
db:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
secrets:
db_password:
file: ./secrets/db_password.txt
volumes:
db_data:
driver: local
```
### 6. CI/CD Pipeline Intelligence
**What It Does**:
- Validates GitHub Actions, GitLab CI, CircleCI workflows
- Suggests caching strategies for faster builds
- Detects matrix build inefficiencies
- Optimizes job dependencies and parallelization
**Example - GitHub Actions**:
```yaml
# ❌ INEFFICIENT
name: CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install # No caching!
- run: npm test
```
**Agent Action**: Optimizes with caching:
```yaml
# ✅ OPTIMIZED
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci # Faster than npm install
- name: Run tests
run: npm test
- name: Upload coverage
if: matrix.node-version == 20
uses: codecov/codecov-action@v4
```
### 7. YAML Linting & Style Enforcement
**What It Does**:
- Enforces consistent indentation (2 spaces, 4 spaces, tabs)
- Validates key ordering (alphabetical, custom)
- Detects trailing whitespace, missing newlines
- Suggests canonical YAML representations
**Linting Rules**:
```yaml
# Rule 1: Consistent 2-space indentation
# Rule 2: No duplicate keys
# Rule 3: Quoted strings for special characters
# Rule 4: Explicit document markers (---, ...)
# Rule 5: No tabs, only spaces
# Rule 6: Max line length 120 characters
# Rule 7: Comments aligned at column 40
```
### 8. Anchors & Aliases Mastery
**What It Does**:
- Manages complex YAML anchors and aliases
- Suggests reusable configurations with merge keys
- Validates anchor references
- Refactors duplicate blocks into anchors
**Example**:
```yaml
# ❌ REPETITIVE
services:
web:
image: nginx
restart: always
logging:
driver: json-file
options:
max-size: "10m"
api:
image: node:20
restart: always
logging:
driver: json-file
options:
max-size: "10m"
```
**Agent Action**: Refactors with anchors:
```yaml
# ✅ DRY (Don't Repeat Yourself)
x-common-config: &common-config
restart: always
logging:
driver: json-file
options:
max-size: "10m"
services:
web:
<<: *common-config
image: nginx
api:
<<: *common-config
image: node:20
```
---
## Advanced Features
### Multi-Document YAML Handling
Works with YAML files containing multiple documents:
```yaml
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
---
```
**Agent Action**: Validates each document independently, ensures consistency across documents.
### Environment-Specific Configurations
Manages environment overrides and templates:
```yaml
# base.yaml
database: &db
host: localhost
port: 5432
# production.yaml (inherits from base)
database:
<<: *db
host: prod-db.example.com
ssl: true
```
### Complex Data Type Handling
Supports advanced YAML data types:
```yaml
# Timestamps
created_at: 2025-10-24T23:00:00Z
# Binary data (base64)
ssl_cert: !!binary |
R0lGODlhDAAMAIQAAP//9/X
17unp5WZmZgAAAOfn515eXv
# Null values
optional_field: null
another_null: ~
# Custom tags
color: !rgb [255, 128, 0]
```
---
## Common Use Cases
### 1. Fixing Broken YAML Files
**User**: "My Kubernetes manifest won't apply, fix it"
**Agent Action**:
1. Reads the YAML file
2. Identifies syntax errors (indentation, missing fields)
3. Validates against Kubernetes API schema
4. Provides corrected version with explanations
### 2. Converting JSON API Response to YAML Config
**User**: "Convert this JSON to YAML for my config file"
**Agent Action**:
1. Parses JSON input
2. Converts to idiomatic YAML (multi-line strings, minimal quotes)
3. Adds helpful comments
4. Validates output
### 3. Generating Docker Compose from Requirements
**User**: "Create docker-compose.yaml for nginx + postgres + redis"
**Agent Action**:
1. Generates complete docker-compose.yaml
2. Adds healthchecks, volumes, networks
3. Includes environment variable templates
4. Suggests .env file structure
### 4. Optimizing CI/CD Pipeline
**User**: "My GitHub Actions workflow is slow, optimize it"
**Agent Action**:
1. Analyzes workflow YAML
2. Identifies bottlenecks (no caching, sequential jobs)
3. Suggests parallelization, caching strategies
4. Provides optimized workflow
---
## Integration with Other Tools
### Works Seamlessly With:
- **yamllint**: Validates against yamllint rules
- **Kustomize**: Handles Kustomization files
- **Helm**: Works with Helm chart values.yaml
- **Ansible**: Validates playbooks and roles
- **OpenAPI/Swagger**: Converts to/from OpenAPI specs
- **JSON Schema**: Validates against schemas
- **Terraform**: Converts YAML to HCL (experimental)
---
## Error Handling & Troubleshooting
### Common YAML Errors This Skill Fixes:
| Error | Cause | Fix |
|-------|-------|-----|
| `mapping values are not allowed here` | Incorrect indentation | Align keys properly |
| `found duplicate key` | Same key defined twice | Remove or rename duplicate |
| `expected <block end>, but found` | Tab instead of spaces | Replace tabs with spaces |
| `found undefined tag handle` | Custom tag without definition | Define tag or remove |
| `could not find expected ':'` | Missing colon after key | Add colon |
---
## Best Practices Enforced
1. **Indentation**: Consistent 2-space indentation (configurable)
2. **Quotes**: Minimal quoting (only when necessary)
3. **Comments**: Descriptive comments for complex sections
4. **Security**: No hardcoded secrets, use secrets managers
5. **Validation**: Always validate against schemas
6. **Documentation**: Inline documentation for anchors/aliases
7. **Versioning**: Explicit version tags (Docker Compose, K8s API)
---
## Performance Considerations
- **Large Files**: Streams YAML instead of loading entire file into memory
- **Validation**: Incremental validation for real-time feedback
- **Conversion**: Optimized parsers for fast format conversion
- **Caching**: Caches schema validation results
---
## Compliance & Standards
**YAML 1.2 Specification**: Fully compliant
**YAML 1.1**: Backward compatible where possible
**JSON Schema Draft 7**: Supports schema validation
**OpenAPI 3.1**: Compatible with OpenAPI specs
**Kubernetes API**: Validates against all stable APIs
**Docker Compose v3.8**: Full support for latest spec
---
## Examples by Complexity
### Beginner: Simple Config File
```yaml
# app-config.yaml
app:
name: MyApp
version: 1.0.0
environment: production
server:
host: 0.0.0.0
port: 8080
database:
url: postgres://localhost:5432/mydb
```
### Intermediate: Multi-Service Docker Compose
```yaml
version: '3.8'
services:
web:
build: ./web
ports:
- "3000:3000"
depends_on:
- api
- redis
api:
build: ./api
environment:
DATABASE_URL: postgres://db:5432/app
depends_on:
db:
condition: service_healthy
db:
image: postgres:15-alpine
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready"]
interval: 5s
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
db_data:
```
### Advanced: Kubernetes Deployment with Secrets
```yaml
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
type: Opaque
stringData:
DATABASE_URL: postgres://user:pass@db:5432/app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: myapp:latest
envFrom:
- secretRef:
name: app-secrets
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
ports:
- port: 80
targetPort: 8080
type: LoadBalancer
```
---
## Troubleshooting Guide
### Issue: "YAML won't parse"
**Diagnosis**:
1. Check indentation (tabs vs spaces)
2. Verify key-value separator (`:` with space after)
3. Look for duplicate keys
### Issue: "Kubernetes apply fails"
**Diagnosis**:
1. Validate API version matches cluster version
2. Check required fields are present
3. Verify resource names are DNS-compliant
### Issue: "Docker Compose won't start"
**Diagnosis**:
1. Check version compatibility
2. Validate service dependencies
3. Verify volume mount paths exist
---
## Version History
- **v1.0.0** (2025-10-24): Initial release with comprehensive YAML capabilities
---
## License
MIT License - See LICENSE file
---
## Support
- **Issues**: Report issues with YAML handling
- **Documentation**: This SKILL.md + plugin README
- **Community**: Share YAML tips and tricks
---
## Credits
**Author**: Jeremy Longshore
**Plugin**: 002-jeremy-yaml-master-agent
**Spec Compliance**: Anthropic Agent Skills Spec v1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>

View File

@@ -0,0 +1,26 @@
# Skill Assets
This directory contains static assets used by this skill.
## Purpose
Assets can include:
- Configuration files (JSON, YAML)
- Data files
- Templates
- Schemas
- Test fixtures
## Guidelines
- Keep assets small and focused
- Document asset purpose and format
- Use standard file formats
- Include schema validation where applicable
## Common Asset Types
- **config.json** - Configuration templates
- **schema.json** - JSON schemas
- **template.yaml** - YAML templates
- **test-data.json** - Test fixtures

View File

@@ -0,0 +1,26 @@
# Skill References
This directory contains reference materials that enhance this skill's capabilities.
## Purpose
References can include:
- Code examples
- Style guides
- Best practices documentation
- Template files
- Configuration examples
## Guidelines
- Keep references concise and actionable
- Use markdown for documentation
- Include clear examples
- Link to external resources when appropriate
## Types of References
- **examples.md** - Usage examples
- **style-guide.md** - Coding standards
- **templates/** - Reusable templates
- **patterns.md** - Design patterns

View File

@@ -0,0 +1,24 @@
# Skill Scripts
This directory contains optional helper scripts that support this skill's functionality.
## Purpose
Scripts here can be:
- Referenced by the skill for automation
- Used as examples for users
- Executed during skill activation
## Guidelines
- All scripts should be well-documented
- Include usage examples in comments
- Make scripts executable (`chmod +x`)
- Use `#!/bin/bash` or `#!/usr/bin/env python3` shebangs
## Adding Scripts
1. Create script file (e.g., `analyze.sh`, `process.py`)
2. Add documentation header
3. Make executable: `chmod +x script-name.sh`
4. Test thoroughly before committing