# 2619 Datadog Skill Research 2026 01 28 7dbb15ea

> Datadog Skill Research

- Skill: `tools-only/2619-datadog-skill-research-2026-01-28-7dbb15ea` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/2619-datadog-skill-research-2026-01-28-7dbb15ea`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/2619-datadog-skill-research-2026-01-28-7dbb15ea/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tools-only/2619-datadog-skill-research-2026-01-28-7dbb15ea

---

# Datadog Skill Research

**Date:** 2026-01-28
**Purpose:** Comprehensive research to create a Datadog observability skill for the claude-mpm-skills repository

---

## Executive Summary

Datadog is a market-leading SaaS observability platform (founded 2010) recognized as a Leader in the [2025 Gartner Magic Quadrant for Observability Platforms](https://www.datadoghq.com/blog/datadog-observability-platforms-gartner-magic-quadrant-2025/). It provides unified monitoring across infrastructure, applications, logs, and user experience with 1,000+ integrations.

**Key Strengths:**
- Unified platform: metrics, traces, logs, RUM, synthetics in one place
- AI-powered features: anomaly detection, forecasting, root cause analysis
- Extensive integrations: 1,000+ technology partners (as of 2025)
- OpenTelemetry support: Vendor-neutral instrumentation compatibility
- Developer-friendly: Extensive SDKs for 8+ programming languages

---

## 1. Core Datadog Features

### 1.1 Application Performance Monitoring (APM)

**Description:** AI-powered, code-level distributed tracing from browser/mobile to backend and databases.

**Key Capabilities:**
- Automatic instrumentation for 176+ integrations across 8 languages
- Distributed tracing with context propagation
- Service maps and dependency visualization
- Code-level profiling (CPU, memory, locks, I/O)
- Database query performance monitoring (DBM)
- Error tracking with stack traces

**Supported Languages:**
| Language | Library | Installation |
|----------|---------|--------------|
| Python | `dd-trace-py` | `pip install ddtrace` |
| Node.js | `dd-trace-js` | `npm install dd-trace` |
| Go | `dd-trace-go` | `go get gopkg.in/DataDog/dd-trace-go.v1` |
| Java | `dd-trace-java` | Java agent JAR |
| Ruby | `dd-trace-rb` | `gem install ddtrace` |
| .NET | `dd-trace-dotnet` | NuGet package |
| PHP | `dd-trace-php` | PECL extension |
| C++/Rust | `dd-trace-cpp` | CMake/Cargo |

**Code Example - Python Instrumentation:**
```python
from ddtrace import tracer, patch_all

# Automatic instrumentation
patch_all()

# Manual span creation
with tracer.trace("custom.operation", service="my-service") as span:
    span.set_tag("custom.tag", "value")
    # Your code here
```

**Code Example - Node.js Instrumentation:**
```javascript
// Initialize at the top of your app
const tracer = require('dd-trace').init({
  service: 'my-service',
  env: 'production',
  version: '1.0.0',
});

// Custom spans
const span = tracer.startSpan('custom.operation');
span.setTag('custom.tag', 'value');
span.finish();
```

### 1.2 Infrastructure Monitoring

**Description:** Real-time visibility into servers, VMs, containers, cloud services, and networks.

**Key Capabilities:**
- Host-level metrics (CPU, memory, disk, network)
- Container monitoring (Docker, Kubernetes, ECS)
- Cloud integrations (AWS, Azure, GCP, 600+ services)
- Network performance monitoring
- Serverless function monitoring
- Live process monitoring

**Agent Installation (Docker):**
```bash
docker run -d --name dd-agent \
  -e DD_API_KEY=<YOUR_API_KEY> \
  -e DD_SITE="datadoghq.com" \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v /proc/:/host/proc/:ro \
  -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
  gcr.io/datadoghq/agent:7
```

**Kubernetes Installation (Helm):**
```bash
helm repo add datadog https://helm.datadoghq.com
helm install datadog-agent datadog/datadog \
  --set datadog.apiKey=<YOUR_API_KEY> \
  --set datadog.apm.enabled=true \
  --set datadog.logs.enabled=true
```

### 1.3 Log Management

**Description:** Centralized log collection, processing, and analysis with 15-month retention options.

**Key Capabilities:**
- Agent-based and agentless log collection
- Log processing pipelines with Grok parsing
- Log pattern recognition and clustering
- Log-to-trace correlation
- Log archives to S3/Azure Storage/GCS
- Log Rehydration for historical analysis

**Best Practices (from [Datadog docs](https://docs.datadoghq.com/logs/guide/best-practices-for-log-management/)):**
- Use at most 20 processors per pipeline
- Limit to 10 parsing rules per Grok processor
- Normalize to Standard Attributes (e.g., `network.client.ip`)
- Set daily quotas on indexes to control costs
- Keep individual logs under 25KB

**Pipeline Configuration Example:**
```yaml
# Grok parsing for NGINX logs
- type: grok-parser
  name: Parse NGINX access logs
  source: message
  rules:
    - rule: '%{_client_ip} - - \[%{_date_access}\] "%{_method} %{_url} HTTP/%{_version}" %{_status_code} %{_bytes_sent}'
      samples:
        - '192.168.1.1 - - [27/Jan/2026:10:00:00 +0000] "GET /api/users HTTP/1.1" 200 1234'
```

### 1.4 Synthetic Monitoring

**Description:** Proactive testing of APIs, browser flows, and mobile apps from global locations.

**Test Types:**
| Type | Use Case | Locations |
|------|----------|-----------|
| API Tests | HTTP, SSL, DNS, WebSocket, TCP, UDP | 29+ global |
| Browser Tests | Multi-step user journeys | Chrome/Edge |
| Mobile Tests | iOS/Android app testing | Various |

**API Test Example:**
```json
{
  "name": "Check API Health",
  "type": "api",
  "subtype": "http",
  "request": {
    "method": "GET",
    "url": "https://api.example.com/health"
  },
  "assertions": [
    {"type": "statusCode", "operator": "is", "target": 200},
    {"type": "responseTime", "operator": "lessThan", "target": 500}
  ],
  "locations": ["aws:us-east-1", "aws:eu-west-1"]
}
```

**Best Practices:**
- Tag tests for correlation, routing, and dashboards
- Reuse subtests for common steps (login flows)
- Set appropriate retry counts to avoid false alerts
- Monitor costs: 1 test x 29 locations x 1m interval = ~1.25M runs/month

### 1.5 Real User Monitoring (RUM)

**Description:** Frontend performance monitoring and user experience analytics.

**Key Capabilities:**
- Core Web Vitals (LCP, FID, CLS)
- Session replay with privacy controls
- Error tracking with source maps
- User journey analytics
- Frustration signals (rage clicks, dead clicks, error clicks)

**Browser SDK Installation:**
```javascript
import { datadogRum } from '@datadog/browser-rum';

datadogRum.init({
  applicationId: '<APPLICATION_ID>',
  clientToken: '<CLIENT_TOKEN>',
  site: 'datadoghq.com',
  service: 'my-web-app',
  env: 'production',
  version: '1.0.0',
  sessionSampleRate: 100,
  sessionReplaySampleRate: 20,
  trackUserInteractions: true,
  trackResources: true,
  trackLongTasks: true,
  defaultPrivacyLevel: 'mask-user-input',
});

datadogRum.startSessionReplayRecording();
```

### 1.6 Custom Metrics (DogStatsD)

**Description:** Submit custom metrics from applications via StatsD-compatible protocol.

**Metric Types:**
| Type | Description | Example |
|------|-------------|---------|
| COUNT | Incremental counter | Request count |
| GAUGE | Point-in-time value | Queue size |
| HISTOGRAM | Distribution of values | Response time |
| DISTRIBUTION | Global percentile aggregation | Latency |
| SET | Unique value count | Unique users |

**Python DogStatsD Example:**
```python
from datadog import DogStatsd

statsd = DogStatsd(host="localhost", port=8125)

# Count
statsd.increment('page.views', tags=['page:home'])

# Gauge
statsd.gauge('queue.size', 42, tags=['queue:orders'])

# Histogram
statsd.histogram('request.latency', 0.123, tags=['endpoint:/api/users'])

# Distribution
statsd.distribution('payment.amount', 99.99, tags=['currency:usd'])

# Set (unique count)
statsd.set('users.uniques', 'user123', tags=['source:web'])
```

**Naming Conventions:**
- Must start with a letter
- Only ASCII alphanumerics, underscores, periods
- Max 200 characters (prefer under 100)
- Case-sensitive

### 1.7 Alerting and Monitors

**Description:** Proactive alerting on metrics, logs, traces, and synthetic tests.

**Monitor Types:**
- Metric monitors (threshold, anomaly, forecast)
- Log monitors
- APM monitors (trace analytics)
- Synthetic monitors
- Composite monitors (multiple conditions)

**Anomaly Detection Best Practices:**
- Requires historical data (not for new metrics)
- Use "Basic" for clear trends, "Agile" for quick adaptation, "Robust" for outlier tolerance
- Set evaluation delay of 300+ seconds for cloud metrics
- Start with 1-hour timeframe, adjust based on noise

**Monitor Configuration Example:**
```json
{
  "name": "High Error Rate Alert",
  "type": "metric alert",
  "query": "avg(last_5m):sum:http.requests.errors{service:api-gateway}.as_rate() > 0.05",
  "message": "Error rate exceeds 5% on {{service.name}}\n\nRunbook: https://wiki/runbook/high-errors",
  "tags": ["team:platform", "severity:critical"],
  "options": {
    "thresholds": {
      "critical": 0.05,
      "warning": 0.02
    },
    "notify_no_data": true,
    "no_data_timeframe": 10
  }
}
```

### 1.8 Dashboards

**Description:** Real-time visualization with drag-and-drop widgets.

**Key Features:**
- Template variables for dynamic filtering
- 700+ integration dashboards out-of-the-box
- Grid-based responsive layout
- Widget groups for bulk editing
- Scheduled snapshots and reports

**Best Practices (from [Datadog blog](https://www.datadoghq.com/blog/datadog-dashboards/)):**
- Create separate dashboards for different use cases
- Use template variables for reusable views
- Group widgets by topic (latency, errors, throughput)
- Add annotations for context during incidents

---

## 2. Integration Patterns

### 2.1 Agent-Based Integration

**Architecture:**
```
Application → Datadog Agent → Datadog API
                   ↓
              DogStatsD (UDP 8125)
              Trace Agent (TCP 8126)
              Log Collector
```

**Agent Configuration (datadog.yaml):**
```yaml
api_key: <YOUR_API_KEY>
site: datadoghq.com

# APM
apm_config:
  enabled: true
  env: production

# Logs
logs_enabled: true
logs_config:
  container_collect_all: true

# DogStatsD
dogstatsd_non_local_traffic: true
dogstatsd_port: 8125

# Process monitoring
process_config:
  enabled: true
```

### 2.2 Library Integration (Auto-Instrumentation)

**Python Example:**
```python
# Option 1: Automatic patching
from ddtrace import patch_all
patch_all()

# Option 2: Selective patching
from ddtrace import patch
patch(requests=True, flask=True, sqlalchemy=True)

# Option 3: Environment variable
# DD_TRACE_ENABLED=true ddtrace-run python app.py
```

**Node.js Example:**
```javascript
// Must be first import
const tracer = require('dd-trace').init({
  logInjection: true,  // Inject trace IDs into logs
  runtimeMetrics: true,  // Collect runtime metrics
  profiling: true,  // Enable continuous profiler
});
```

### 2.3 OpenTelemetry Integration

Datadog supports [OpenTelemetry](https://docs.datadoghq.com/tracing/trace_collection/library_config/) for vendor-neutral instrumentation:

```python
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import BatchSpanProcessor

# Configure OTel to send to Datadog Agent
otlp_exporter = OTLPSpanExporter(
    endpoint="http://localhost:4317",
    insecure=True
)

trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(
    BatchSpanProcessor(otlp_exporter)
)

tracer = trace.get_tracer("my-service")
```

### 2.4 API Integration

**Datadog API Structure:**
- Base URL: `https://api.datadoghq.com/api/v1` or `/api/v2`
- Authentication: `DD-API-KEY` and `DD-APPLICATION-KEY` headers

**Python API Client:**
```python
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.metrics_api import MetricsApi

configuration = Configuration()
configuration.api_key['apiKeyAuth'] = '<API_KEY>'
configuration.api_key['appKeyAuth'] = '<APP_KEY>'

with ApiClient(configuration) as api_client:
    api_instance = MetricsApi(api_client)
    response = api_instance.query_metrics(
        from_time=int(time.time()) - 3600,
        to_time=int(time.time()),
        query="avg:system.cpu.user{*}"
    )
```

---

## 3. Best Practices

### 3.1 Tagging Strategy

**Why Tags Matter:**
- Enable filtering and aggregation
- Drive template variable dashboards
- Reduce custom metric cardinality
- Enable usage attribution for cost allocation

**Recommended Tags:**
| Tag | Purpose | Example |
|-----|---------|---------|
| `env` | Environment | `env:production` |
| `service` | Service name | `service:api-gateway` |
| `version` | Deployment version | `version:1.2.3` |
| `team` | Owning team | `team:platform` |
| `region` | Geographic region | `region:us-east-1` |

**Anti-Patterns (Avoid):**
- High-cardinality tags (user IDs, request IDs)
- Timestamps in tags
- Pod IDs as tags in Kubernetes
- Build numbers as tags

### 3.2 Instrumentation Strategy

**Start Simple:**
1. Install Agent with basic configuration
2. Enable automatic instrumentation
3. Verify data in Datadog UI
4. Add custom spans/metrics as needed

**Progressive Enhancement:**
```
Basic → APM tracing → Custom spans → Custom metrics → Profiling → RUM
```

**Key Instrumentation Points:**
- HTTP entry/exit points
- Database queries
- External service calls
- Message queue operations
- Cache operations
- Business-critical flows

### 3.3 Cost Optimization

**Primary Cost Drivers (from [Holori guide](https://holori.com/datadog-pricing-in-2025-the-complete-guide-to-cost-management-and-optimization/)):**
- Host-based pricing (Infrastructure, APM)
- Volume-based pricing (Logs, indexed spans)
- Custom metrics cardinality

**Optimization Strategies:**

1. **Metrics without Limits:**
   - Configure tag allowlists to control cardinality
   - Decouple ingestion from indexing costs

2. **Log Management:**
   - Set index exclusion filters for noisy logs
   - Use log archives for long-term storage
   - Set daily quotas per index

3. **APM Sampling:**
   - Configure ingestion controls for traces
   - Use retention filters for relevant traces only

4. **Custom Metrics:**
   - Avoid high-cardinality tags
   - Use rollups for historical data
   - Audit unused metrics regularly

5. **Committed Contracts:**
   - 20-50% savings with annual commitments

**Cost Monitoring:**
```python
# Usage Attribution via API
from datadog_api_client.v1.api.usage_metering_api import UsageMeteringApi

api = UsageMeteringApi(api_client)
usage = api.get_usage_summary(
    start_month="2026-01",
    end_month="2026-01"
)
```

### 3.4 Alert Hygiene

**Principles:**
- Alert on symptoms, not causes
- Tune evaluation windows (5m default, extend for cloud metrics)
- Use recovery thresholds to prevent flapping
- Include runbook links in alert messages
- Create downtimes for planned maintenance

**Alert Priority Levels:**
| Priority | Response Time | Examples |
|----------|---------------|----------|
| P1 | Immediate | Service down, data loss |
| P2 | 15 minutes | Degraded performance |
| P3 | 1 hour | Non-critical errors |
| P4 | Next day | Warning thresholds |

---

## 4. Comparison with Alternatives

### 4.1 Datadog vs OpenTelemetry + Prometheus + Grafana

| Aspect | Datadog | OTel + Prometheus + Grafana |
|--------|---------|------------------------------|
| **Type** | SaaS platform | Open-source stack |
| **Setup** | Managed, quick | Self-hosted, complex |
| **Cost** | Subscription-based | Infrastructure costs |
| **Vendor Lock-in** | Higher | None (open standards) |
| **Maintenance** | Zero | Significant |
| **Features** | All-in-one | Composable |
| **AI/ML** | Built-in anomaly detection | Manual or add-ons |
| **Scaling** | Automatic | Manual |

**Choose Datadog When:**
- Need unified platform with minimal setup
- Value speed over customization
- Have budget for SaaS pricing
- Want managed AI features

**Choose Open-Source Stack When:**
- Cost is primary concern
- Need maximum customization
- Have SRE expertise in-house
- Want to avoid vendor lock-in

### 4.2 Datadog vs New Relic

| Feature | Datadog | New Relic |
|---------|---------|-----------|
| **Pricing Model** | Per-host + volume | Per-user + ingest |
| **Free Tier** | 14-day trial | 100GB/month free |
| **Log Management** | Strong | Strong |
| **Kubernetes** | Excellent | Good |
| **Synthetics** | Comprehensive | Comprehensive |
| **Security** | CSM, SIEM | Vulnerability mgmt |

### 4.3 Key Differentiators

**Datadog Strengths:**
- 1,000+ integrations (largest ecosystem)
- Unified platform (single pane of glass)
- AI-powered insights (anomaly detection, forecasting)
- Strong Kubernetes/container support
- LLM Observability (2025 feature)

**Datadog Limitations:**
- Cost at scale (can become expensive)
- Proprietary agents (some lock-in)
- Learning curve for advanced features

---

## 5. Common Use Cases

### 5.1 Microservices Monitoring

**Setup:**
1. Deploy Datadog Agent as DaemonSet
2. Enable APM and log collection
3. Instrument services with tracing libraries
4. Create service-level dashboards

### 5.2 Cloud Cost Monitoring

**Datadog Cloud Cost Management:**
- Visualize cloud spend by tag
- Correlate costs with infrastructure metrics
- Set cost anomaly alerts
- Attribution reports by team/service

### 5.3 SLO Management

**Service Level Objectives:**
```json
{
  "type": "slo",
  "name": "API Availability SLO",
  "description": "99.9% availability for API endpoints",
  "monitor_ids": [12345678],
  "thresholds": [
    {"timeframe": "30d", "target": 99.9, "warning": 99.95}
  ],
  "tags": ["service:api-gateway", "team:platform"]
}
```

### 5.4 Security Monitoring

**Datadog Security Products:**
- Cloud Security Management (CSM)
- Cloud SIEM
- Application Security Management (ASM)
- Software Composition Analysis (SCA)

---

## 6. Recommended Skill Structure

### 6.1 Proposed Skill Layout

```
toolchains/platforms/observability/datadog/
├── SKILL.md                    # Entry point (~200 lines)
├── metadata.json               # Skill metadata
└── references/
    ├── agent-installation.md   # Agent setup for various platforms
    ├── apm-instrumentation.md  # APM setup per language
    ├── log-management.md       # Log pipelines and processing
    ├── custom-metrics.md       # DogStatsD and metrics patterns
    ├── alerting.md             # Monitors and alert best practices
    ├── dashboards.md           # Dashboard design patterns
    ├── cost-optimization.md    # Cost management strategies
    └── kubernetes.md           # K8s-specific patterns
```

### 6.2 Entry Point Structure (SKILL.md)

```markdown
---
name: datadog-observability
description: Full-stack observability with Datadog APM, logs, metrics, synthetics, and RUM
version: 1.0.0
category: platform
tags:
  - observability
  - monitoring
  - apm
  - logging
  - metrics
  - datadog
---

# Datadog Observability

## Summary
[Brief overview of Datadog capabilities]

## When to Use
[Activation conditions]

## Quick Start
[Agent installation + basic APM setup]

## Navigation
[Links to reference files]
```

### 6.3 Key Reference Files

**agent-installation.md:**
- Docker installation
- Kubernetes (Helm/Operator)
- Linux/Windows package installation
- Cloud-specific (EKS, GKE, AKS)

**apm-instrumentation.md:**
- Python (ddtrace)
- Node.js (dd-trace)
- Go (dd-trace-go)
- Java (dd-trace-java)
- OpenTelemetry integration

**log-management.md:**
- Agent log collection
- Pipeline configuration
- Grok parsing patterns
- Standard attributes
- Archive and rehydration

**custom-metrics.md:**
- DogStatsD setup
- Metric types and usage
- Tagging best practices
- Cardinality management

**alerting.md:**
- Monitor types
- Anomaly detection
- Composite monitors
- Downtime management

**cost-optimization.md:**
- Usage attribution
- Index quotas
- Metrics without Limits
- APM sampling

---

## 7. Gaps and High-Value Guidance Areas

### 7.1 Areas Needing Detailed Guidance

1. **Cost Management** - Most common pain point; detailed strategies needed
2. **Tag Cardinality** - Preventing cost explosion from high-cardinality tags
3. **OpenTelemetry Migration** - Transitioning from proprietary to OTel
4. **Kubernetes Patterns** - DaemonSet vs sidecar, Cluster Agent setup
5. **Log Processing** - Grok parsing for common log formats
6. **Cross-Service Correlation** - Trace-log-metric linking

### 7.2 Common Mistakes to Address

1. Using pod IDs as tags (creates millions of unique metrics)
2. Not setting log index quotas (unexpected bills)
3. Over-alerting (alert fatigue)
4. Missing service tagging (no correlation)
5. Not using sampling for high-volume traces

### 7.3 Frequently Asked Questions

1. "How do I reduce my Datadog bill?"
2. "How do I instrument a Python/Node.js/Go app?"
3. "How do I correlate logs with traces?"
4. "What's the difference between Datadog and OpenTelemetry?"
5. "How do I monitor Kubernetes with Datadog?"

---

## 8. Sources

### Official Documentation
- [Datadog APM Documentation](https://docs.datadoghq.com/tracing/)
- [Datadog Log Management Best Practices](https://docs.datadoghq.com/logs/guide/best-practices-for-log-management/)
- [DogStatsD Documentation](https://docs.datadoghq.com/developers/dogstatsd/)
- [Custom Metrics Billing](https://docs.datadoghq.com/account_management/billing/custom_metrics/)
- [Anomaly Detection Guide](https://docs.datadoghq.com/monitors/types/anomaly/)

### Industry Analyses
- [Datadog vs Prometheus Comparison (SigNoz)](https://signoz.io/blog/datadog-vs-prometheus/)
- [Grafana vs Datadog (Grafana)](https://grafana.com/compare/grafana-vs-datadog/)
- [Datadog Pricing Guide (Holori)](https://holori.com/datadog-pricing-in-2025-the-complete-guide-to-cost-management-and-optimization/)
- [Datadog Cost Optimization (CloudZero)](https://www.cloudzero.com/blog/datadog-cost-optimization/)

### Official Announcements
- [Datadog 2025 Gartner Magic Quadrant Recognition](https://www.datadoghq.com/blog/datadog-observability-platforms-gartner-magic-quadrant-2025/)
- [DASH 2025 Feature Announcements](https://www.datadoghq.com/blog/dash-2025-new-feature-roundup-keynote/)
- [1,000 Integrations Milestone](https://www.datadoghq.com/blog/1k-integrations-milestone/)

---

## 9. Next Steps

### Skill Creation Tasks

1. **Initialize skill structure:**
   ```bash
   python scripts/init_skill.py --path toolchains/platforms/observability/datadog
   ```

2. **Create entry point (SKILL.md):**
   - Summary, when to use, quick start
   - Navigation to references
   - ~200 lines

3. **Create reference files:**
   - agent-installation.md (Docker, K8s, bare metal)
   - apm-instrumentation.md (Python, Node.js, Go, Java)
   - log-management.md (pipelines, parsing, archives)
   - custom-metrics.md (DogStatsD patterns)
   - alerting.md (monitors, anomaly detection)
   - cost-optimization.md (detailed cost strategies)

4. **Validate and test:**
   ```bash
   python scripts/package_skill.py --validate toolchains/platforms/observability/datadog
   ```

5. **Deploy for testing:**
   ```bash
   ./scripts/flatten_skills.sh --force
   ```

---

**Research Complete:** 2026-01-28
**Researcher:** Claude Research Agent
**Status:** Ready for skill creation

