{"owner":"emilk","repo":"egui","hasSkills":true,"totalSkillsCount":2,"totalTokensCount":1257,"categories":["project-spec","cursor-rule"],"hasMcp":false,"mcpConfig":null,"found":["ARCHITECTURE.md",".cursorrules (code-guidelines-cursorrules-prompt-file.mdc)"],"skills":{"ARCHITECTURE.md":"# Architecture\nThis document describes how the crates that make up egui are all connected.\n\nAlso see [`CONTRIBUTING.md`](CONTRIBUTING.md) for what to do before opening a PR.\n\n\n## Crate overview\nThe crates in this repository are: `egui, emath, epaint, epaint_default_fonts, egui_extras, egui-winit, egui_glow, egui-wgpu, egui_demo_lib, egui_demo_app`.\n\n### `egui`: The main GUI library.\nExample code: `if ui.button(\"Click me\").clicked() { … }`\nThis is the crate where the bulk of the code is at. `egui` depends only on `emath` and `epaint`.\n\n### `emath`: minimal 2D math library\nExamples: `Vec2, Pos2, Rect, lerp, remap`\n\n### `epaint`\n2d shapes and text that can be turned into textured triangles.\n\nExample: `Shape::Circle { center, radius, fill, stroke }`\n\nDepends on `emath`. Also depends on `epaint_default_fonts` when the `default_fonts` feature is enabled.\n\n### `epaint_default_fonts`\nEmbedded fonts (using `include_bytes!()`) for use by `epaint` in selecting defaults.\n\nSince the font files themselves are licensed differently from the `epaint` source code, this simplifies licenses for callers who disable the default fonts.\n\n### `egui_extras`\nThis adds additional features on top of `egui`.\n\n### `egui-winit`\nThis crates provides bindings between [`egui`](https://github.com/emilk/egui) and [winit](https://crates.io/crates/winit).\n\nThe library translates winit events to egui, handled copy/paste, updates the cursor, open links clicked in egui, etc.\n\n### `egui_glow`\nPuts an egui app inside a native window on your laptop. Paints the triangles that egui outputs using [glow](https://github.com/grovesNL/glow).\n\n### `egui-wgpu`\nPaints the triangles that egui outputs using [wgpu](https://github.com/grovesNL/wgpu).\n\n### `eframe`\n`eframe` is the official `egui` framework, built so you can compile the same app for either web or native.\n\nThe demo that you can see at <https://www.egui.rs> is using `eframe` to host the `egui`. The demo code is found in:\n\n### `egui_demo_lib`\nDepends on `egui`.\nThis contains a bunch of uses of `egui` and looks like the ui code you would write for an `egui` app.\n\n### `egui_demo_app`\nThin wrapper around `egui_demo_lib` so we can compile it to a web site or a native app executable.\nDepends on `egui_demo_lib` + `eframe`.\n\n### `egui_kittest`\nA test harness for egui based on [kittest](https://github.com/rerun-io/kittest) and [AccessKit](https://github.com/AccessKit/accesskit/).\n\n### Other integrations\n\nThere are also many great integrations for game engines such as `bevy` and `miniquad` which you can find at <https://github.com/emilk/egui#integrations>.\n",".cursorrules (code-guidelines-cursorrules-prompt-file.mdc)":"---\ndescription: \"Cursor rules for code development with guidelines integration.\"\nglobs: **/*\nalwaysApply: false\n---\n1. **Verify Information**: Always verify information before presenting it. Do not make assumptions or speculate without clear evidence.\n\n2. **File-by-File Changes**: Make changes file by file and give me a chance to spot mistakes.\n\n3. **No Apologies**: Never use apologies.\n\n4. **No Understanding Feedback**: Avoid giving feedback about understanding in comments or documentation.\n\n5. **No Whitespace Suggestions**: Don't suggest whitespace changes.\n\n6. **No Summaries**: Don't summarize changes made.\n\n7. **No Inventions**: Don't invent changes other than what's explicitly requested.\n\n8. **No Unnecessary Confirmations**: Don't ask for confirmation of information already provided in the context.\n\n9. **Preserve Existing Code**: Don't remove unrelated code or functionalities. Pay attention to preserving existing structures.\n\n10. **Single Chunk Edits**: Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file.\n\n11. **No Implementation Checks**: Don't ask the user to verify implementations that are visible in the provided context.\n\n12. **No Unnecessary Updates**: Don't suggest updates or changes to files when there are no actual modifications needed.\n\n13. **Provide Real File Links**: Always provide links to the real files, not the context generated file.\n\n14. **No Current Implementation**: Don't show or discuss the current implementation unless specifically requested.\n\n15. **Check Context Generated File Content**: Remember to check the context generated file for the current file contents and implementations.\n\n16. **Use Explicit Variable Names**: Prefer descriptive, explicit variable names over short, ambiguous ones to enhance code readability.\n\n17. **Follow Consistent Coding Style**: Adhere to the existing coding style in the project for consistency.\n\n18. **Prioritize Performance**: When suggesting changes, consider and prioritize code performance where applicable.\n\n19. **Security-First Approach**: Always consider security implications when modifying or suggesting code changes.\n\n20. **Test Coverage**: Suggest or include appropriate unit tests for new or modified code.\n\n21. **Error Handling**: Implement robust error handling and logging where necessary.\n\n22. **Modular Design**: Encourage modular design principles to improve code maintainability and reusability.\n\n23. **Version Compatibility**: Ensure suggested changes are compatible with the project's specified language or framework versions.\n\n24. **Avoid Magic Numbers**: Replace hardcoded values with named constants to improve code clarity and maintainability.\n\n25. **Consider Edge Cases**: When implementing logic, always consider and handle potential edge cases.\n\n26. **Use Assertions**: Include assertions wherever possible to validate assumptions and catch potential errors early.\n"},"files":{"ARCHITECTURE.md":"# Architecture\nThis document describes how the crates that make up egui are all connected.\n\nAlso see [`CONTRIBUTING.md`](CONTRIBUTING.md) for what to do before opening a PR.\n\n\n## Crate overview\nThe crates in this repository are: `egui, emath, epaint, epaint_default_fonts, egui_extras, egui-winit, egui_glow, egui-wgpu, egui_demo_lib, egui_demo_app`.\n\n### `egui`: The main GUI library.\nExample code: `if ui.button(\"Click me\").clicked() { … }`\nThis is the crate where the bulk of the code is at. `egui` depends only on `emath` and `epaint`.\n\n### `emath`: minimal 2D math library\nExamples: `Vec2, Pos2, Rect, lerp, remap`\n\n### `epaint`\n2d shapes and text that can be turned into textured triangles.\n\nExample: `Shape::Circle { center, radius, fill, stroke }`\n\nDepends on `emath`. Also depends on `epaint_default_fonts` when the `default_fonts` feature is enabled.\n\n### `epaint_default_fonts`\nEmbedded fonts (using `include_bytes!()`) for use by `epaint` in selecting defaults.\n\nSince the font files themselves are licensed differently from the `epaint` source code, this simplifies licenses for callers who disable the default fonts.\n\n### `egui_extras`\nThis adds additional features on top of `egui`.\n\n### `egui-winit`\nThis crates provides bindings between [`egui`](https://github.com/emilk/egui) and [winit](https://crates.io/crates/winit).\n\nThe library translates winit events to egui, handled copy/paste, updates the cursor, open links clicked in egui, etc.\n\n### `egui_glow`\nPuts an egui app inside a native window on your laptop. Paints the triangles that egui outputs using [glow](https://github.com/grovesNL/glow).\n\n### `egui-wgpu`\nPaints the triangles that egui outputs using [wgpu](https://github.com/grovesNL/wgpu).\n\n### `eframe`\n`eframe` is the official `egui` framework, built so you can compile the same app for either web or native.\n\nThe demo that you can see at <https://www.egui.rs> is using `eframe` to host the `egui`. The demo code is found in:\n\n### `egui_demo_lib`\nDepends on `egui`.\nThis contains a bunch of uses of `egui` and looks like the ui code you would write for an `egui` app.\n\n### `egui_demo_app`\nThin wrapper around `egui_demo_lib` so we can compile it to a web site or a native app executable.\nDepends on `egui_demo_lib` + `eframe`.\n\n### `egui_kittest`\nA test harness for egui based on [kittest](https://github.com/rerun-io/kittest) and [AccessKit](https://github.com/AccessKit/accesskit/).\n\n### Other integrations\n\nThere are also many great integrations for game engines such as `bevy` and `miniquad` which you can find at <https://github.com/emilk/egui#integrations>.\n",".cursorrules (code-guidelines-cursorrules-prompt-file.mdc)":"---\ndescription: \"Cursor rules for code development with guidelines integration.\"\nglobs: **/*\nalwaysApply: false\n---\n1. **Verify Information**: Always verify information before presenting it. Do not make assumptions or speculate without clear evidence.\n\n2. **File-by-File Changes**: Make changes file by file and give me a chance to spot mistakes.\n\n3. **No Apologies**: Never use apologies.\n\n4. **No Understanding Feedback**: Avoid giving feedback about understanding in comments or documentation.\n\n5. **No Whitespace Suggestions**: Don't suggest whitespace changes.\n\n6. **No Summaries**: Don't summarize changes made.\n\n7. **No Inventions**: Don't invent changes other than what's explicitly requested.\n\n8. **No Unnecessary Confirmations**: Don't ask for confirmation of information already provided in the context.\n\n9. **Preserve Existing Code**: Don't remove unrelated code or functionalities. Pay attention to preserving existing structures.\n\n10. **Single Chunk Edits**: Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file.\n\n11. **No Implementation Checks**: Don't ask the user to verify implementations that are visible in the provided context.\n\n12. **No Unnecessary Updates**: Don't suggest updates or changes to files when there are no actual modifications needed.\n\n13. **Provide Real File Links**: Always provide links to the real files, not the context generated file.\n\n14. **No Current Implementation**: Don't show or discuss the current implementation unless specifically requested.\n\n15. **Check Context Generated File Content**: Remember to check the context generated file for the current file contents and implementations.\n\n16. **Use Explicit Variable Names**: Prefer descriptive, explicit variable names over short, ambiguous ones to enhance code readability.\n\n17. **Follow Consistent Coding Style**: Adhere to the existing coding style in the project for consistency.\n\n18. **Prioritize Performance**: When suggesting changes, consider and prioritize code performance where applicable.\n\n19. **Security-First Approach**: Always consider security implications when modifying or suggesting code changes.\n\n20. **Test Coverage**: Suggest or include appropriate unit tests for new or modified code.\n\n21. **Error Handling**: Implement robust error handling and logging where necessary.\n\n22. **Modular Design**: Encourage modular design principles to improve code maintainability and reusability.\n\n23. **Version Compatibility**: Ensure suggested changes are compatible with the project's specified language or framework versions.\n\n24. **Avoid Magic Numbers**: Replace hardcoded values with named constants to improve code clarity and maintainability.\n\n25. **Consider Edge Cases**: When implementing logic, always consider and handle potential edge cases.\n\n26. **Use Assertions**: Include assertions wherever possible to validate assumptions and catch potential errors early.\n"},"items":[{"name":"ARCHITECTURE.md","path":"ARCHITECTURE.md","rawUrl":"https://raw.githubusercontent.com/emilk/egui/HEAD/ARCHITECTURE.md","title":"System Architecture & Module Boundaries","category":"project-spec","format":"markdown","content":"# Architecture\nThis document describes how the crates that make up egui are all connected.\n\nAlso see [`CONTRIBUTING.md`](CONTRIBUTING.md) for what to do before opening a PR.\n\n\n## Crate overview\nThe crates in this repository are: `egui, emath, epaint, epaint_default_fonts, egui_extras, egui-winit, egui_glow, egui-wgpu, egui_demo_lib, egui_demo_app`.\n\n### `egui`: The main GUI library.\nExample code: `if ui.button(\"Click me\").clicked() { … }`\nThis is the crate where the bulk of the code is at. `egui` depends only on `emath` and `epaint`.\n\n### `emath`: minimal 2D math library\nExamples: `Vec2, Pos2, Rect, lerp, remap`\n\n### `epaint`\n2d shapes and text that can be turned into textured triangles.\n\nExample: `Shape::Circle { center, radius, fill, stroke }`\n\nDepends on `emath`. Also depends on `epaint_default_fonts` when the `default_fonts` feature is enabled.\n\n### `epaint_default_fonts`\nEmbedded fonts (using `include_bytes!()`) for use by `epaint` in selecting defaults.\n\nSince the font files themselves are licensed differently from the `epaint` source code, this simplifies licenses for callers who disable the default fonts.\n\n### `egui_extras`\nThis adds additional features on top of `egui`.\n\n### `egui-winit`\nThis crates provides bindings between [`egui`](https://github.com/emilk/egui) and [winit](https://crates.io/crates/winit).\n\nThe library translates winit events to egui, handled copy/paste, updates the cursor, open links clicked in egui, etc.\n\n### `egui_glow`\nPuts an egui app inside a native window on your laptop. Paints the triangles that egui outputs using [glow](https://github.com/grovesNL/glow).\n\n### `egui-wgpu`\nPaints the triangles that egui outputs using [wgpu](https://github.com/grovesNL/wgpu).\n\n### `eframe`\n`eframe` is the official `egui` framework, built so you can compile the same app for either web or native.\n\nThe demo that you can see at <https://www.egui.rs> is using `eframe` to host the `egui`. The demo code is found in:\n\n### `egui_demo_lib`\nDepends on `egui`.\nThis contains a bunch of uses of `egui` and looks like the ui code you would write for an `egui` app.\n\n### `egui_demo_app`\nThin wrapper around `egui_demo_lib` so we can compile it to a web site or a native app executable.\nDepends on `egui_demo_lib` + `eframe`.\n\n### `egui_kittest`\nA test harness for egui based on [kittest](https://github.com/rerun-io/kittest) and [AccessKit](https://github.com/AccessKit/accesskit/).\n\n### Other integrations\n\nThere are also many great integrations for game engines such as `bevy` and `miniquad` which you can find at <https://github.com/emilk/egui#integrations>.\n","isInternal":false,"tokens":710,"sizeBytes":2600},{"name":".cursorrules","path":".cursorrules (code-guidelines-cursorrules-prompt-file.mdc)","rawUrl":"https://raw.githubusercontent.com/PatrickJS/awesome-cursorrules/main/rules/code-guidelines-cursorrules-prompt-file.mdc","title":"Awesome Cursorrules: code guidelines","category":"cursor-rule","format":"markdown","content":"---\ndescription: \"Cursor rules for code development with guidelines integration.\"\nglobs: **/*\nalwaysApply: false\n---\n1. **Verify Information**: Always verify information before presenting it. Do not make assumptions or speculate without clear evidence.\n\n2. **File-by-File Changes**: Make changes file by file and give me a chance to spot mistakes.\n\n3. **No Apologies**: Never use apologies.\n\n4. **No Understanding Feedback**: Avoid giving feedback about understanding in comments or documentation.\n\n5. **No Whitespace Suggestions**: Don't suggest whitespace changes.\n\n6. **No Summaries**: Don't summarize changes made.\n\n7. **No Inventions**: Don't invent changes other than what's explicitly requested.\n\n8. **No Unnecessary Confirmations**: Don't ask for confirmation of information already provided in the context.\n\n9. **Preserve Existing Code**: Don't remove unrelated code or functionalities. Pay attention to preserving existing structures.\n\n10. **Single Chunk Edits**: Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file.\n\n11. **No Implementation Checks**: Don't ask the user to verify implementations that are visible in the provided context.\n\n12. **No Unnecessary Updates**: Don't suggest updates or changes to files when there are no actual modifications needed.\n\n13. **Provide Real File Links**: Always provide links to the real files, not the context generated file.\n\n14. **No Current Implementation**: Don't show or discuss the current implementation unless specifically requested.\n\n15. **Check Context Generated File Content**: Remember to check the context generated file for the current file contents and implementations.\n\n16. **Use Explicit Variable Names**: Prefer descriptive, explicit variable names over short, ambiguous ones to enhance code readability.\n\n17. **Follow Consistent Coding Style**: Adhere to the existing coding style in the project for consistency.\n\n18. **Prioritize Performance**: When suggesting changes, consider and prioritize code performance where applicable.\n\n19. **Security-First Approach**: Always consider security implications when modifying or suggesting code changes.\n\n20. **Test Coverage**: Suggest or include appropriate unit tests for new or modified code.\n\n21. **Error Handling**: Implement robust error handling and logging where necessary.\n\n22. **Modular Design**: Encourage modular design principles to improve code maintainability and reusability.\n\n23. **Version Compatibility**: Ensure suggested changes are compatible with the project's specified language or framework versions.\n\n24. **Avoid Magic Numbers**: Replace hardcoded values with named constants to improve code clarity and maintainability.\n\n25. **Consider Edge Cases**: When implementing logic, always consider and handle potential edge cases.\n\n26. **Use Assertions**: Include assertions wherever possible to validate assumptions and catch potential errors early.\n","tokens":547,"sizeBytes":2937}],"systemPromptSnippet":"<yakaai_skills repo=\"emilk/egui\">\n<!-- File: ARCHITECTURE.md (Tokens: ~710 | Category: project-spec) -->\n# Architecture\nThis document describes how the crates that make up egui are all connected.\n\nAlso see [`CONTRIBUTING.md`](CONTRIBUTING.md) for what to do before opening a PR.\n\n\n## Crate overview\nThe crates in this repository are: `egui, emath, epaint, epaint_default_fonts, egui_extras, egui-winit, egui_glow, egui-wgpu, egui_demo_lib, egui_demo_app`.\n\n### `egui`: The main GUI library.\nExample code: `if ui.button(\"Click me\").clicked() { … }`\nThis is the crate where the bulk of the code is at. `egui` depends only on `emath` and `epaint`.\n\n### `emath`: minimal 2D math library\nExamples: `Vec2, Pos2, Rect, lerp, remap`\n\n### `epaint`\n2d shapes and text that can be turned into textured triangles.\n\nExample: `Shape::Circle { center, radius, fill, stroke }`\n\nDepends on `emath`. Also depends on `epaint_default_fonts` when the `default_fonts` feature is enabled.\n\n### `epaint_default_fonts`\nEmbedded fonts (using `include_bytes!()`) for use by `epaint` in selecting defaults.\n\nSince the font files themselves are licensed differently from the `epaint` source code, this simplifies licenses for callers who disable the default fonts.\n\n### `egui_extras`\nThis adds additional features on top of `egui`.\n\n### `egui-winit`\nThis crates provides bindings between [`egui`](https://github.com/emilk/egui) and [winit](https://crates.io/crates/winit).\n\nThe library translates winit events to egui, handled copy/paste, updates the cursor, open links clicked in egui, etc.\n\n### `egui_glow`\nPuts an egui app inside a native window on your laptop. Paints the triangles that egui outputs using [glow](https://github.com/grovesNL/glow).\n\n### `egui-wgpu`\nPaints the triangles that egui outputs using [wgpu](https://github.com/grovesNL/wgpu).\n\n### `eframe`\n`eframe` is the official `egui` framework, built so you can compile the same app for either web or native.\n\nThe demo that you can see at <https://www.egui.rs> is using `eframe` to host the `egui`. The demo code is found in:\n\n### `egui_demo_lib`\nDepends on `egui`.\nThis contains a bunch of uses of `egui` and looks like the ui code you would write for an `egui` app.\n\n### `egui_demo_app`\nThin wrapper around `egui_demo_lib` so we can compile it to a web site or a native app executable.\nDepends on `egui_demo_lib` + `eframe`.\n\n### `egui_kittest`\nA test harness for egui based on [kittest](https://github.com/rerun-io/kittest) and [AccessKit](https://github.com/AccessKit/accesskit/).\n\n### Other integrations\n\nThere are also many great integrations for game engines such as `bevy` and `miniquad` which you can find at <https://github.com/emilk/egui#integrations>.\n\n<!-- File: .cursorrules (code-guidelines-cursorrules-prompt-file.mdc) (Tokens: ~547 | Category: cursor-rule) -->\n---\ndescription: \"Cursor rules for code development with guidelines integration.\"\nglobs: **/*\nalwaysApply: false\n---\n1. **Verify Information**: Always verify information before presenting it. Do not make assumptions or speculate without clear evidence.\n\n2. **File-by-File Changes**: Make changes file by file and give me a chance to spot mistakes.\n\n3. **No Apologies**: Never use apologies.\n\n4. **No Understanding Feedback**: Avoid giving feedback about understanding in comments or documentation.\n\n5. **No Whitespace Suggestions**: Don't suggest whitespace changes.\n\n6. **No Summaries**: Don't summarize changes made.\n\n7. **No Inventions**: Don't invent changes other than what's explicitly requested.\n\n8. **No Unnecessary Confirmations**: Don't ask for confirmation of information already provided in the context.\n\n9. **Preserve Existing Code**: Don't remove unrelated code or functionalities. Pay attention to preserving existing structures.\n\n10. **Single Chunk Edits**: Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file.\n\n11. **No Implementation Checks**: Don't ask the user to verify implementations that are visible in the provided context.\n\n12. **No Unnecessary Updates**: Don't suggest updates or changes to files when there are no actual modifications needed.\n\n13. **Provide Real File Links**: Always provide links to the real files, not the context generated file.\n\n14. **No Current Implementation**: Don't show or discuss the current implementation unless specifically requested.\n\n15. **Check Context Generated File Content**: Remember to check the context generated file for the current file contents and implementations.\n\n16. **Use Explicit Variable Names**: Prefer descriptive, explicit variable names over short, ambiguous ones to enhance code readability.\n\n17. **Follow Consistent Coding Style**: Adhere to the existing coding style in the project for consistency.\n\n18. **Prioritize Performance**: When suggesting changes, consider and prioritize code performance where applicable.\n\n19. **Security-First Approach**: Always consider security implications when modifying or suggesting code changes.\n\n20. **Test Coverage**: Suggest or include appropriate unit tests for new or modified code.\n\n21. **Error Handling**: Implement robust error handling and logging where necessary.\n\n22. **Modular Design**: Encourage modular design principles to improve code maintainability and reusability.\n\n23. **Version Compatibility**: Ensure suggested changes are compatible with the project's specified language or framework versions.\n\n24. **Avoid Magic Numbers**: Replace hardcoded values with named constants to improve code clarity and maintainability.\n\n25. **Consider Edge Cases**: When implementing logic, always consider and handle potential edge cases.\n\n26. **Use Assertions**: Include assertions wherever possible to validate assumptions and catch potential errors early.\n</yakaai_skills>"}