101 lines
3.3 KiB
JSON
101 lines
3.3 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://github.com/company/flutter-cursor-templates/brief-schema.json",
|
|
"title": "project-brief.yaml",
|
|
"description": "Schema for Flutter cursor_gen project brief — provides IDE autocomplete",
|
|
"type": "object",
|
|
"properties": {
|
|
"cursor_templates_version": {
|
|
"type": "string",
|
|
"description": "Pillar 1: Pin to template version for reproducibility",
|
|
"examples": ["1.0.0"]
|
|
},
|
|
"project": {
|
|
"type": "object",
|
|
"required": ["name", "package"],
|
|
"properties": {
|
|
"name": { "type": "string", "description": "App display name" },
|
|
"package": { "type": "string", "description": "Dart package ID (e.g. com.company.appname)" },
|
|
"description": { "type": "string" },
|
|
"scale": { "type": "string", "enum": ["small", "medium", "large"] }
|
|
}
|
|
},
|
|
"stack": {
|
|
"type": "object",
|
|
"properties": {
|
|
"state_management": {
|
|
"type": "string",
|
|
"enum": ["bloc", "riverpod", "getx", "hooks_riverpod"],
|
|
"description": "Primary state management solution"
|
|
},
|
|
"routing": {
|
|
"type": "string",
|
|
"enum": ["gorouter", "getx_nav", "auto_route"]
|
|
},
|
|
"architecture": {
|
|
"type": "string",
|
|
"enum": ["clean", "feature_first", "mvvm", "mvc", "layered"]
|
|
},
|
|
"backend": {
|
|
"type": "string",
|
|
"description": "Single backend or combined with +: firebase, supabase, rest, firebase+rest",
|
|
"examples": ["firebase", "supabase", "rest", "firebase+rest", "supabase+rest"]
|
|
},
|
|
"auth": {
|
|
"type": "string",
|
|
"enum": ["firebase_auth", "supabase_auth", "jwt_rest", "oauth2", "none"]
|
|
},
|
|
"platforms": {
|
|
"type": "array",
|
|
"items": { "type": "string", "enum": ["ios", "android", "web", "desktop"] },
|
|
"description": "Pillar 4: Target platforms — affects generated rules"
|
|
},
|
|
"codegen": {
|
|
"type": "array",
|
|
"items": { "type": "string", "enum": ["freezed", "json_serializable", "injectable", "retrofit"] },
|
|
"description": "Pillar 4: Code generation tools — affects generated rules"
|
|
}
|
|
}
|
|
},
|
|
"environments": {
|
|
"type": "object",
|
|
"properties": {
|
|
"flavors": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"examples": [["dev", "staging", "prod"]]
|
|
},
|
|
"cicd": {
|
|
"type": "string",
|
|
"enum": ["codemagic", "github_actions", "fastlane", "none"]
|
|
}
|
|
}
|
|
},
|
|
"testing": {
|
|
"type": "object",
|
|
"properties": {
|
|
"depth": {
|
|
"type": "string",
|
|
"enum": ["unit_widget", "integration", "e2e", "full"]
|
|
},
|
|
"e2e_tool": {
|
|
"type": "string",
|
|
"enum": ["patrol", "maestro"]
|
|
}
|
|
}
|
|
},
|
|
"localization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": { "type": "boolean" },
|
|
"locales": { "type": "array", "items": { "type": "string" } }
|
|
}
|
|
},
|
|
"telemetry_opt_in": {
|
|
"type": "boolean",
|
|
"description": "Pillar 6: Opt-in local telemetry for rule trigger analytics",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|