Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
Complete implementation of enterprise design system validation: Phase 1 - @dss/rules npm package: - CLI with validate and init commands - 16 rules across 5 categories (colors, spacing, typography, components, a11y) - dss-ignore support (inline and next-line) - Break-glass [dss-skip] for emergency merges - CI workflow templates (Gitea, GitHub, GitLab) Phase 2 - Metrics dashboard: - FastAPI metrics API with SQLite storage - Portfolio-wide metrics aggregation - Project drill-down with file:line:column violations - Trend charts and history tracking Phase 3 - Local analysis cache: - LocalAnalysisCache for offline-capable validation - Mode detection (LOCAL/REMOTE/CI) - Stale cache warnings with recommendations Phase 4 - Project onboarding: - dss-init command for project setup - Creates ds.config.json, .dss/ folder structure - Updates .gitignore and package.json scripts - Optional CI workflow setup Architecture decisions: - No commit-back: CI uploads to dashboard, not git - Three-tier: Dashboard (read-only) → CI (authoritative) → Local (advisory) - Pull-based rules via npm for version control 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
119 lines
3.0 KiB
JSON
119 lines
3.0 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://dss.overbits.luz.uy/schemas/ds.config.schema.json",
|
|
"title": "DSS Project Configuration",
|
|
"description": "Configuration schema for DSS-enabled projects",
|
|
"type": "object",
|
|
"required": ["name", "rules"],
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Project name"
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"description": "Project version"
|
|
},
|
|
"rules": {
|
|
"type": "object",
|
|
"required": ["package"],
|
|
"properties": {
|
|
"package": {
|
|
"type": "string",
|
|
"description": "Rules package name (e.g., @dss/rules)"
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"description": "Semver version constraint"
|
|
},
|
|
"overrides": {
|
|
"type": "object",
|
|
"description": "Rule-specific overrides",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"severity": {
|
|
"enum": ["error", "warning", "info", "off"]
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"analysis": {
|
|
"type": "object",
|
|
"properties": {
|
|
"include": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "Glob patterns for files to analyze"
|
|
},
|
|
"exclude": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "Glob patterns for files to exclude"
|
|
},
|
|
"output": {
|
|
"type": "string",
|
|
"description": "Output path for analysis graph"
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"upload": {
|
|
"type": "boolean",
|
|
"description": "Whether to upload metrics to dashboard"
|
|
},
|
|
"dashboardUrl": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Dashboard API endpoint"
|
|
},
|
|
"projectId": {
|
|
"type": "string",
|
|
"description": "Project identifier in dashboard"
|
|
}
|
|
}
|
|
},
|
|
"ci": {
|
|
"type": "object",
|
|
"properties": {
|
|
"blocking": {
|
|
"type": "boolean",
|
|
"description": "Whether errors block the pipeline"
|
|
},
|
|
"skipPattern": {
|
|
"type": "string",
|
|
"description": "Pattern in commit message to skip validation"
|
|
},
|
|
"baselineBranch": {
|
|
"type": "string",
|
|
"description": "Branch to compare against for new violations"
|
|
}
|
|
}
|
|
},
|
|
"tokens": {
|
|
"type": "object",
|
|
"description": "Token configuration",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"description": "Path to token definitions"
|
|
},
|
|
"format": {
|
|
"enum": ["css", "scss", "json", "js"],
|
|
"description": "Token file format"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|