Files
cursor_gen/flutter-cursor-templates/generator/brief-schema.json
T
mansi.kansara 54c66efe9b chore: update README and CLI usage for cursor_gen, version bump to 1.0.1
- Changed CLI usage instructions from `dart run cursor_gen` to `cursor_gen` for global activation.
- Updated project-brief.yaml example and README to reflect new command usage.
- Added app_context section in project-brief.yaml for theme variants and RBAC roles.
- Fixed bundled template resolution for local and global installs to prevent 'Template not found' errors.
- Version bump to 1.0.1 with corresponding updates in CHANGELOG and pubspec.yaml.
2026-05-13 12:08:52 +05:30

168 lines
5.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.1"]
},
"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" } }
}
},
"design": {
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": ["figma_mcp", "figma_manual", "native_ref", "html_ref", "none"]
},
"figma_url": { "type": "string" }
}
},
"api_docs": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": ["openapi", "postman", "markdown", "none"]
},
"path": { "type": "string" }
}
},
"references": {
"type": "object",
"description": "Other repos or local paths agents should treat as product context",
"properties": {
"repos": {
"type": "array",
"items": { "type": "string" },
"description": "Git remote URLs (https or ssh)"
},
"local_paths": {
"type": "array",
"items": { "type": "string" },
"description": "Repo-relative paths (e.g. monorepo packages) or other local references"
}
}
},
"features": {
"type": "object",
"properties": {
"modules": { "type": "array", "items": { "type": "string" } },
"special": { "type": "array", "items": { "type": "string" } }
}
},
"app_context": {
"type": "object",
"description": "Theme targets and optional RBAC labels — mirrored to cursor-gen-metadata.json on generate",
"properties": {
"theme_variants": {
"type": "array",
"items": {
"type": "string",
"enum": ["light", "dark", "high_contrast"]
},
"description": "Supported theme tokens; omit or leave empty to default to light + dark in the loader"
},
"roles_enabled": {
"type": "boolean",
"default": false,
"description": "When true, list concrete roles in role_names"
},
"role_names": {
"type": "array",
"items": { "type": "string" },
"description": "Product role identifiers when roles_enabled is true"
}
}
},
"telemetry_opt_in": {
"type": "boolean",
"description": "Pillar 6: Opt-in local telemetry for rule trigger analytics",
"default": false
}
}
}