claw-code/.guardrails/examples/go/admin-ui
Claude 2d62b470f6 fix(tui): add guardrails as files instead of submodule
Embedded repo was committed as submodule (160000). Now includes all
guardrails files directly for full in-repo reference.

Authored by TheArchitectit
2026-06-11 18:29:45 -05:00
..
README.md fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00
economy-monitor.go fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00
metrics-dashboard.go fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00
websocket-events.go fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00

README.md

Go Admin UI - Game Backend Interfaces

Production-ready admin panels, metrics dashboards, and WebSocket event streaming for game backends.

Last Updated: 2026-03-14 Go Version: 1.22+ Stack: Go + Gorilla Mux + WebSocket + Grafana


Purpose

This example demonstrates building production-ready game backend admin interfaces with:

  • Economy Monitoring - Resource faucet/sink tracking, inflation detection
  • Metrics Dashboards - Real-time Grafana integration, Prometheus metrics
  • WebSocket Event Streaming - Game event broadcasting, player action tracking
  • Systemic Consistency - Game state validation, economy balance rules
  • Accessibility Patterns - ARIA labels, keyboard navigation, screen reader support

2026 Best Practices

Economy Monitoring Patterns

Pattern Use Case Implementation
Faucet Tracking Resource generation Track gold/xp sources, validate caps
Sink Monitoring Resource consumption Track spending, detect leaks
Balance Detection Economy health Ratio analysis, trend alerts
Inflation Alerts Price drift Moving average, threshold alerts
Audit Logging Compliance All transactions logged with sequence

Grafana Integration Patterns

Pattern Metric Type Dashboard
Counter Total events Event rate over time
Gauge Current state Player HP/MP, economy balance
Histogram Distribution Action completion times
Summary Aggregates Economy metrics by region

WebSocket Event Streaming

// WebSocket event structure for game streaming
type GameEvent struct {
    Type      string      `json:"type"`      // "PLAYER_ACTION", "ECONOMY_UPDATE"
    Payload   interface{} `json:"payload"`   // Event data
    Sequence  uint64      `json:"sequence"`  // Eventual consistency
    Timestamp time.Time   `json:"timestamp"` // Server authority
    Source    string      `json:"source"`    // "server" for authority
}

Accessibility (A11Y) Requirements

Requirement Pattern WCAG Level
ARIA Live Regions aria-live="polite" on updates AA
Keyboard Navigation Standard <form> + <button> A
Focus Management tabindex="-1" + HTMX focus AA
Screen Reader Labels aria-label on all interactive A

Systemic Consistency Rulesets

ECONOMY CONSISTENCY RULES:

1. **FAUCET CAPS**
   - All resource generation has hard caps
   - Daily/weekly faucet limits enforced
   - Inflation detection triggers alerts

2. **Sink VALIDATION**
   - All consumption tracked with audit log
   - Sink rate matches faucet rate (balanced economy)
   - Negative sink rates rejected

3. **SERVER AUTHORITY**
   - Economy state computed server-side
   - Client displays only, never computes
   - All mutations validated against rules

4. **EVENTUAL CONSISTENCY**
   - Events streamed with sequence numbers
   - Conflicts resolved via server timestamp
   - WebSocket reconnects re-sync from sequence

Running the Example

cd examples/go/admin-ui
go mod init admin-ui
go get github.com/gorilla/mux
go get github.com/gorilla/websocket
go get github.com/prometheus/client_golang/prometheus
go run economy-monitor.go metrics-dashboard.go websocket-events.go

Access the admin UI at http://localhost:8080/admin


File Structure

File Purpose Key Patterns
economy-monitor.go Faucet/sink monitoring, balance detection Economy rules, audit logging
metrics-dashboard.go Grafana/Prometheus integration Counter, gauge, histogram
websocket-events.go Real-time game event streaming WebSocket, SSE, sequence

Architecture

+------------------+     +------------------+     +------------------+
|   Browser        |     |   Go Server      |     |   Grafana        |
|   (Admin UI)     |     |   (1.22+)        |     |   (Metrics)      |
+------------------+     +------------------+     +------------------+
        |                        |                        |
        | GET /admin            |                        |
        |-----------------------|                        |
        |                        |                        |
        | Economy data          | Query economy state    |
        |-----------------------|------------------------|
        |                        |                        |
        | WebSocket events      | Push to Grafana        |
        |-----------------------|------------------------|
        |                        |                        |
        | Prometheus scrape     | Expose /metrics        |
        |-----------------------|------------------------|
        |                        |                        |
        |                       | Prom GaugeVec          |
        |                       |------------------------|
        |                       |                        |
        |                       | Grafana Dashboard      |
        |                       |------------------------|

Guardrails Compliance

Rule Implementation
PRODUCTION FIRST Economy logic before UI
SERVER AUTHORITY All economy state server-side
ACCESSIBILITY ARIA labels, keyboard nav
AUDIT LOGGING All economy transactions logged
RATE LIMITING Per-session request limits


Authored by: Claude Code (Anthropic) Document Owner: Project Maintainers Review Cycle: Monthly