원클릭으로
rounds-daemon
Start the rounds daemon with telemetry polling and diagnosis
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Start the rounds daemon with telemetry polling and diagnosis
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Assess telemetry data — identifies distinct transaction types from an explore query and launches sub-agents to analyze each for instrumentation quality, code efficiency, usage correctness, and skill improvement opportunities
Print available rounds skills, project directory layout, and a brief overview of what rounds does
Exploratory querying of telemetry data — search logs by keyword/metadata, search spans by metadata, and build full transaction trees from trace IDs using the rounds adapter interfaces
Get full details for a single rounds error signature including diagnosis, recent events, and related signatures
Investigate a distributed trace by ID — fetches the full trace, reads source files, and explains the end-to-end code flow
List error signatures in the rounds database, optionally filtered by status
| name | rounds-daemon |
| description | Start the rounds daemon with telemetry polling and diagnosis |
| user_invocable | true |
| args | ["--config path"] |
| generated | true |
| generation_timestamp | "2026-02-13T22:11:25.960Z" |
| generation_version | 2.0 |
| source_project | rounds |
| source_codebase_hash | a44338f108beaf54 |
Quick-reference skill for starting the rounds continuous error diagnosis daemon with telemetry polling and automated diagnosis.
/rounds-daemon [--config path]
Starts the rounds daemon in daemon mode, which:
This is the primary run mode for production deployment of the rounds system, implementing the full error diagnosis pipeline described in the hexagonal architecture.
Entry Point: rounds/main.py (composition root)
Command:
cd /home/austinsand/workspace/orchestrator/rounds
RUN_MODE=daemon python -m rounds.main
With Custom Configuration:
# Export environment variables from custom config
export $(cat /path/to/custom.env | xargs)
RUN_MODE=daemon python -m rounds.main
Key Components Activated:
rounds/main.py): Wires all adapters and servicesrounds/core/poll_service.py): Orchestrates polling looprounds/adapters/telemetry/): Queries configured backendrounds/core/fingerprint.py): Generates signaturesrounds/core/investigator.py): Orchestrates diagnosisrounds/adapters/store/sqlite.py): Persists signaturesrounds/adapters/diagnosis/claude_code.py): LLM analysisrounds/adapters/notification/): Reports findingsEnvironment Variables (from rounds/config.py):
Core settings:
RUN_MODE=daemon (required)TELEMETRY_BACKEND=signoz|jaeger|grafana_stackSTORE_BACKEND=sqlite (default)DIAGNOSIS_BACKEND=claude_code (default)NOTIFICATION_BACKEND=stdout|markdown|github_issuePolling configuration:
POLL_INTERVAL_SECONDS=60 (default)ERROR_LOOKBACK_MINUTES=5 (default)POLL_BATCH_SIZE=100 (default)Budget controls:
CLAUDE_CODE_BUDGET_USD=5.00 (per-diagnosis limit)DAILY_BUDGET_LIMIT=100.00 (daily spending cap)Backend-specific:
SIGNOZ_API_URL, SIGNOZ_API_KEYJAEGER_API_URLGRAFANA_STACK_URL, GRAFANA_API_KEYSTORE_SQLITE_PATH=./signatures.dbNOTIFICATION_OUTPUT_DIR=./diagnosesGITHUB_TOKEN, GITHUB_REPO# Set up environment
export TELEMETRY_BACKEND=signoz
export SIGNOZ_API_URL=https://signoz.example.com
export SIGNOZ_API_KEY=your-api-key-here
export POLL_INTERVAL_SECONDS=30
export NOTIFICATION_BACKEND=markdown
export NOTIFICATION_OUTPUT_DIR=/var/log/rounds/diagnoses
# Start daemon
cd /home/austinsand/workspace/orchestrator/rounds
RUN_MODE=daemon python -m rounds.main
Expected behavior:
./signatures.db/var/log/rounds/diagnoses/# Set up environment
export TELEMETRY_BACKEND=jaeger
export JAEGER_API_URL=http://localhost:16686
export NOTIFICATION_BACKEND=github_issue
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxx
export GITHUB_REPO=myorg/myapp
export DAILY_BUDGET_LIMIT=50.00
# Start daemon
cd /home/austinsand/workspace/orchestrator/rounds
RUN_MODE=daemon python -m rounds.main
Expected behavior:
myorg/myapp# Minimal config for local development
export TELEMETRY_BACKEND=signoz
export SIGNOZ_API_URL=http://localhost:3301
export NOTIFICATION_BACKEND=stdout
export POLL_INTERVAL_SECONDS=10
export ERROR_LOOKBACK_MINUTES=1
# Start daemon
cd /home/austinsand/workspace/orchestrator/rounds
RUN_MODE=daemon python -m rounds.main
Expected behavior:
# Create .env file
cat > /tmp/rounds.env << EOF
RUN_MODE=daemon
TELEMETRY_BACKEND=grafana_stack
GRAFANA_STACK_URL=https://grafana.example.com
GRAFANA_API_KEY=eyJrIjoiXXXXXX
POLL_INTERVAL_SECONDS=120
STORE_SQLITE_PATH=/var/lib/rounds/signatures.db
NOTIFICATION_BACKEND=markdown
NOTIFICATION_OUTPUT_DIR=/var/log/rounds
DAILY_BUDGET_LIMIT=200.00
EOF
# Load and run
export $(cat /tmp/rounds.env | xargs)
cd /home/austinsand/workspace/orchestrator/rounds
python -m rounds.main
Systemd Service Example:
[Unit]
Description=Rounds Error Diagnosis Daemon
After=network.target
[Service]
Type=simple
User=rounds
WorkingDirectory=/home/austinsand/workspace/orchestrator/rounds
EnvironmentFile=/etc/rounds/daemon.env
ExecStart=/usr/bin/python3 -m rounds.main
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Docker Compose Example:
services:
rounds-daemon:
build: /home/austinsand/workspace/orchestrator/rounds
environment:
- RUN_MODE=daemon
- TELEMETRY_BACKEND=signoz
- SIGNOZ_API_URL=${SIGNOZ_API_URL}
- SIGNOZ_API_KEY=${SIGNOZ_API_KEY}
volumes:
- ./data/signatures.db:/app/signatures.db
- ./data/diagnoses:/app/diagnoses
restart: unless-stopped
Check daemon status:
# View recent poll cycles
tail -f /var/log/rounds/daemon.log | grep "poll_service"
# Monitor signature growth
sqlite3 signatures.db "SELECT COUNT(*) FROM signatures"
# Check daily budget usage
grep "budget" /var/log/rounds/daemon.log | tail -20
Daemon won't start:
RUN_MODE=daemon is setcurl $SIGNOZ_API_URL/api/v1/versiontouch $STORE_SQLITE_PATHNo diagnoses generated:
High costs:
POLL_BATCH_SIZE to diagnose fewer errors per cyclePOLL_INTERVAL_SECONDS to poll less frequentlyDAILY_BUDGET_LIMIT for tighter cost control/rounds-test - Run pytest test suite/rounds-check - Run mypy + ruff checks/rounds-architecture - Display architecture overviewThis skill was automatically generated from the rounds project architecture.