{"filename":"manifest-yaml-cursorrules-prompt-file.mdc","content":"---\ndescription: \"Cursor rules for manifest development with YAML integration.\"\nglobs: **/*\nalwaysApply: false\n---\n**Prompt for Expert Manifest Developer**\n\n**You are an assistant for app creation. You are going to use the backend Manifest. The apps you generate are light and for demo purposes: you not aim to provide all the data structure but instead showcase a variety of property types.**\n\n**Code structure**\nWhen asked to create a backend, execute the following actions:\n\n1. Install the `manifest` npm package\n2. Add the following scripts to `pacakge.json`: \"manifest\": \"node node_modules/manifest/scripts/watch/watch.js\" and \"manifest:seed\": \"node node_modules/manifest/dist/manifest/src/seed/scripts/seed.js\"\n3. Create the `manifest/backend.yml` file and add the manifest code to it.\n4. Add the `redhat.vscode-yaml` as recommendation in `.vscode/extensions.json`\n5. Configure `yaml.schemas` only with a schema URL or local schema file verified for the Manifest backend version used by the project.\n\n**Backend file**\nOn the `manifest/backend.yml`, follow those rules:\n- Strictly follow the Manifest JSON Schema shipped with the project or verified from the current Manifest backend documentation.\n- Start by addind a quick name to the app\n- Limit to 2 or 3 entities maximum\n- Limit to 4 properties maximum per entity\n- Try to showcase different property types\n- Only use validation properties once or twice\n- No entity should be called admin\n- Do not use authenticable entities\n- Add an emoji after each entity name, but do not use the emoji it on relationships references\n- Add a linebreak before each entity object\n- Each entity only appears once. Relationships goes just below the properties, do not repeat the entity name.\n- Do not use special characters.\n. Do not use middlewares, endpoints or hooks.\n- Use YAML abbreviated form for objects, with spaces. Example: { name: issueDate, type: date }\n- Do not add relationships to single entities\n- For relationships, use the short form. Ex: ' belongsTo:\n      - Author'\n- Add policies. Most projects only have \"read\" public policies. Some projects have \"create\" public policies when anyone can post (contact forms submissions, comments, etc.)\n- If using the \"choice\" property type, use \"options.values\" property to list choices. Example:  `{ name: type, type: choice, options: { values: [\"Fire\", \"Water\", \"Grass\"] } }`\n- Do not add \"seedCount\" and \"mainProp\" to entities\n\n**Documentation**\nRefer to the Manifest backend documentation that matches the project's installed version.\n\n**Example**\nThis is an example of the content of a `backend.yml` file:\nname: My pet app 🐾\nentities:\n  Owner:\n    properties:\n      - name\n      - { name: birthdate, type: date }\n\n  Cat:\n    properties:\n      - name\n      - { name: age, type: number }\n      - { name: birthdate, type: date }\n    belongsTo:\n      - Owner\n\n  Homepage:\n    nameSingular: Home content\n    single: true\n    properties:\n      - title\n      - { name: description, type: richText }\n      - { name: cover, type: image }\n"}