Files
company-haness/.claude/schemas/workload-profile.artifact.schema.json
T

51 lines
2.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["surfaces", "risk", "required-capabilities"],
"properties": {
"surfaces": {
"type": "object",
"required": ["ui", "public-api", "persistence", "infrastructure"],
"properties": {
"ui": {"type": "boolean"}, "public-api": {"type": "boolean"},
"persistence": {"type": "boolean"}, "infrastructure": {"type": "boolean"}
}
},
"risk": {
"type": "object",
"required": ["security-bearing", "data-migration", "external-side-effect", "risk-level", "reversibility", "blast-radius", "privacy", "regulatory", "slo-impact"],
"properties": {
"security-bearing": {"type": "boolean"}, "data-migration": {"type": "boolean"},
"external-side-effect": {"type": "boolean"},
"risk-level": {"enum": ["Low", "Med", "High", "Critical"]},
"reversibility": {"enum": ["two-way-door", "one-way-door"]},
"blast-radius": {"enum": ["single-role", "cross-team", "production-customer-revenue"]},
"privacy": {"type": "boolean"}, "regulatory": {"type": "boolean"},
"slo-impact": {"type": "boolean"}, "pii": {"type": "boolean"},
"data-residency": {"type": "boolean"}, "customer-impact": {"type": "boolean"},
"revenue-impact": {"type": "boolean"}
}
},
"required-capabilities": {"type": "array", "minItems": 1, "items": {"type": "string"}},
"surface-archetype": {
"enum": ["internal-tool", "public-website", "product-application", "interactive-learning", "developer-platform", "commerce", "content-publication", "hybrid"],
"description": "UI 경험의 구조적 유형. public-website와 interactive-learning은 experience-foundation 선행 게이트를 강제한다."
},
"experience-change": {
"enum": ["none", "incremental", "new-product", "major-redesign"],
"description": "new-product 또는 major-redesign는 experience-foundation 선행 게이트를 강제한다."
},
"product-feature": {"type": "boolean"},
"context-scope": {
"enum": ["project", "company"],
"description": "project permits scoped delivery against an existing repository without asserting company facts; company requires provisional/operating company context."
}
},
"allOf": [
{
"if": {"properties": {"context-scope": {"const": "project"}}, "required": ["context-scope"]},
"then": {"properties": {"product-feature": {"const": true}}, "required": ["product-feature"]}
}
]
}