Build dashclaw
Contribute to the DashClaw codebase — architecture, scaffolding, tests, CIFrom its SKILL.md
npx -y skills add ucsandman/dashclaw-skills --skill build-dashclawAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.3 KB, as published. Nobody here has run it
Build DashClaw
Guide for contributing to the DashClaw codebase. Covers architecture, adding new capabilities, testing, and CI.
Architecture Overview
DashClaw is organized into 3 tiers:
Tier 1: Core Runtime (app/api/)
7 mandatory endpoints that define DashClaw's governance category:
| Route | Method | Purpose |
|---|---|---|
/api/guard | POST | Policy evaluation — "can I do this?" |
/api/actions | POST, PATCH, GET | Action lifecycle recording |
/api/approvals | POST | Human approval decisions |
/api/assumptions | POST, GET | Reasoning integrity tracking |
/api/signals | GET | Real-time anomaly detection |
/api/policies | GET, POST | Guard policy management |
/api/health | GET | System readiness |
The 7-route boundary is CI-enforced. Adding a new core route requires justification.
Tier 2: Extensions (app/(extensions)/)
Modular operational intelligence:
- Compliance, Drift, Evaluations, Scoring, Prompts, Webhooks, Learning
Tier 3: Archived (app/api/_archive/)
Legacy features from the "Agent Platform" era. Physically isolated.
Tech Stack
| Layer | Technology |
|---|---|
| Runtime | Node.js 20+ |
| Framework | Next.js 16 (App Router) |
| Database | Postgres (Neon recommended) |
| ORM | Drizzle ORM |
| Auth | NextAuth.js v4 |
| UI | React 18, Tailwind CSS 3 |
| Testing | Vitest + jsdom |
| Package Manager | npm |
Key Conventions
TEXT Primary Keys
All IDs are TEXT with crypto-random prefixed values:
import { randomBytes } from 'crypto';
const id = `act_${randomBytes(16).toString('hex')}`;
ID prefixes: ar_ (actions), oc_live_/oc_test_ (API keys), sp_ (scoring profiles), pt_ (prompt templates), etc.
Repository Pattern
No direct SQL in route handlers. All data access goes through repository modules:
app/lib/repositories/*.repository.js
Route handlers import from repositories, never inline SQL.
Auth Chain
Request → Strip client org headers → Rate limit → Route matching
→ Public routes: pass through
→ Protected routes: x-api-key (fast path: timing-safe compare)
→ Inject org context from resolved key
12-Step Scaffold for New Capabilities
When adding a new feature to DashClaw:
- Migration — Add table with TEXT PKs and crypto-random IDs
- Repository — Create
app/lib/repositories/<name>.repository.js(all SQL here) - Lib module — Create
app/lib/<name>.js(business logic) - Route handler — Create
app/api/<name>/route.js(imports from repository) - Demo fixtures — Add fixture data if the feature needs demo mode support
- Demo middleware — Wire fixtures into demo mode if needed
- Node SDK method — Add to
sdk/dashclaw.js(camelCase) - Python SDK method — Add to
sdk-python/dashclaw/client.py(snake_case) - Docs page — Create dashboard page or update existing docs
- Node README — Add method to SDK README
- Python README — Add method to Python SDK README
- Parity matrix — Update
docs/sdk-parity.mdwith new method counts
Legacy SDK Promotion
The v1 SDK has 187 methods across 31 categories. When promoting to v2:
High priority (core governance):
registerOpenLoop()+resolveOpenLoop()— Decision integrityevents()— Real-time SSE eventsheartbeat()+startHeartbeat()— Agent telemetry
Medium priority (analytics):
getRecommendations()+recommendAction()— Adaptive learninggetLearningVelocity()+getLearningCurves()— Learning analyticsgetSignals()— Decision integrity signals
See knowledge/legacy-sdk-reference.md for the full inventory with all method signatures.
Testing
# Run all tests (watch mode)
npm run test
# Run tests once (CI mode)
npm run test -- --run
# Run specific test file
npx vitest run app/lib/__tests__/guard.test.js
Tests live alongside their modules or in __tests__/ directories.
CI Checks
Three mandatory CI checks:
# 1. Governance boundary — enforces 7-route API limit
npm run governance:boundary:check
# 2. OpenAPI contract — detects API drift
npm run openapi:check
# 3. Tests
npm run test -- --run
All three must pass before merge.
Key Files for Contributors
| File | What to Read |
|---|---|
PROJECT_DETAILS.md | Canonical system map (source of truth) |
CLAUDE.md | Contributing conventions |
app/lib/guard.js | Risk scoring engine |
app/lib/signals.js | Anomaly detection logic |
sdk/dashclaw.js | V2 SDK implementation |
sdk/legacy/dashclaw-v1.js | V1 SDK (187 methods) |
schema/schema.js | Database schema (Drizzle) |
middleware.js | Auth chain |
docs/sdk-parity.md | SDK method parity matrix |
Contributing Workflow
- Read
PROJECT_DETAILS.mdandCLAUDE.md - Understand the 3-tier boundary (core vs extension vs archived)
- Follow the 12-step scaffold if adding a new capability
- Match existing patterns (repository pattern, TEXT PKs, etc.)
- Run all three CI checks locally before committing
- Keep SDK parity: if you add a Node method, add the Python equivalent