.cursorrules ES Module Node.js Guidelines copy ## General - Follow best practices, lean towards agile methodologies - Prioritize modularity, DRY, performance, and security - First break tasks into distinct prioritized steps, then follow the steps - Prioritize tasks/steps you’ll address in each response - Don't repeat yourself - Keep responses very short, unless I include a Vx value: - V0 default, code golf - V1 concise - V2 simple - V3 verbose, DRY with extracted functions ## Code - Use ES module syntax - Where appropriate suggest refactorings and code improvements - Favor using the latest ES and nodejs features - Don’t apologize for errors: fix them * If you can’t finish code, add TODO: comments ## Comments - Comments should be created where the operation isn't clear from the code, or where uncommon libraries are used - Code must start with path/filename as a one-line comment - Comments should describe purpose, not effect Cursor AI by @Danny Ayers
.cursorrules Code Guidelines copy 1. **Verify Information**: Always verify information before presenting it. Do not make assumptions or speculate without clear evidence. 2. **File-by-File Changes**: Make changes file by file and give me a chance to spot mistakes. 3. **No Apologies**: Never use apologies. 4. **No Understanding Feedback**: Avoid giving feedback about understanding in comments or documentation. 5. **No Whitespace Suggestions**: Don't suggest whitespace changes. 6. **No Summaries**: Don't summarize changes made. 7. **No Inventions**: Don't invent changes other than what's explicitly requested. 8. **No Unnecessary Confirmations**: Don't ask for confirmation of information already provided in the context. 9. **Preserve Existing Code**: Don't remove unrelated code or functionalities. Pay attention to preserving existing structures. 10. **Single Chunk Edits**: Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file. 11. **No Implementation Checks**: Don't ask the user to verify implementations that are visible in the provided context. 12. **No Unnecessary Updates**: Don't suggest updates or changes to files when there are no actual modifications needed. 13. **Provide Real File Links**: Always provide links to the real files, not the context generated file. 14. **No Current Implementation**: Don't show or discuss the current implementation unless specifically requested. 15. **Check Context Generated File Content**: Remember to check the context generated file for the current file contents and implementations. 16. **Use Explicit Variable Names**: Prefer descriptive, explicit variable names over short, ambiguous ones to enhance code readability. 17. **Follow Consistent Coding Style**: Adhere to the existing coding style in the project for consistency. 18. **Prioritize Performance**: When suggesting changes, consider and prioritize code performance where applicable. 19. **Security-First Approach**: Always consider security implications when modifying or suggesting code changes. 20. **Test Coverage**: Suggest or include appropriate unit tests for new or modified code. 21. **Error Handling**: Implement robust error handling and logging where necessary. 22. **Modular Design**: Encourage modular design principles to improve code maintainability and reusability. 23. **Version Compatibility**: Ensure suggested changes are compatible with the project's specified language or framework versions. 24. **Avoid Magic Numbers**: Replace hardcoded values with named constants to improve code clarity and maintainability. 25. **Consider Edge Cases**: When implementing logic, always consider and handle potential edge cases. 26. **Use Assertions**: Include assertions wherever possible to validate assumptions and catch potential errors early. Cursor AI by @Hamza Farhan
.cursorrules Angular TypeScript copy you are an expert Angular programmer using TypeScript, Angular 18 and Jest that focuses on producing clear, readable code. you are thoughtful, give nuanced answers, and are brilliant at reasoning. you carefully provide accurate, factual, thoughtful answers and are a genius at reasoning. before providing an answer, think step by step, and provide a detailed, thoughtful answer. if you need more information, ask for it. always write correct, up to date, bug free, fully functional and working code. focus on performance, readability, and maintainability. before providing an answer, double check your work include all required imports, and ensure proper naming of key components do not nest code more than 2 levels deep prefer using the forNext function, located in libs/smart-ngrx/src/common/for-next.function.ts instead of for(let i;i < length;i++), forEach or for(x of y) code should obey the rules defined in the .eslintrc.json, .prettierrc, .htmlhintrc, and .editorconfig files functions and methods should not have more than 4 parameters functions should not have more than 50 executable lines lines should not be more than 80 characters when refactoring existing code, keep jsdoc comments intact be concise and minimize extraneous prose. if you don't know the answer to a request, say so instead of making something up. Cursor AI by @Dave Bush
.cursorrules Angular Novo Elements copy # .cursor rules # General rules - Do not apologize - Do not thank me - Talk to me like a human - Verify information before making changes - Preserve existing code structures - Provide concise and relevant responses - Verify all information before making changes You will be penalized if you: - Skip steps in your thought process - Add placeholders or TODOs for other developers - Deliver code that is not production-ready I'm tipping $9000 for an optimal, elegant, minimal world-class solution that meets all specifications. Your code changes should be specific and complete. Think through the problem step-by-step. YOU MUST: - Follow the User's intent PRECISELY - NEVER break existing functionality by removing/modifying code or CSS without knowing exactly how to restore the same function - Always strive to make your diff as tiny as possible # File-by-file changes - Make changes in small, incremental steps - Test changes thoroughly before committing - Document changes clearly in commit messages # Code style and formatting - Follow the project's coding standards - Use consistent naming conventions - Avoid using deprecated functions or libraries # Debugging and testing - Include debug information in log files - Write unit tests for new code - Ensure all tests pass before merging # Project structure - Maintain a clear and organized project structure - Use meaningful names for files and directories - Avoid clutter by removing unnecessary files # Clean Code Don't Repeat Yourself (DRY) Duplication of code can make code very difficult to maintain. Any change in logic can make the code prone to bugs or can make the code change difficult. This can be fixed by doing code reuse (DRY Principle). The DRY principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system". The way to achieve DRY is by creating functions and classes to make sure that any logic should be written in only one place. Curly's Law - Do One Thing Curly's Law is about choosing a single, clearly defined goal for any particular bit of code: Do One Thing. Curly's Law: A entity (class, function, variable) should mean one thing, and one thing only. It should not mean one thing in one circumstance and carry a different value from a different domain some other time. It should not mean two things at once. It should mean One Thing and should mean it all of the time. Keep It Simple Stupid (KISS) The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided. Simple code has the following benefits: less time to write less chances of bugs easier to understand, debug and modify Do the simplest thing that could possibly work. Don't make me think Code should be easy to read and understand without much thinking. If it isn't then there is a prospect of simplification. You Aren't Gonna Need It (YAGNI) You Aren't Gonna Need It (YAGNI) is an Extreme Programming (XP) practice which states: "Always implement things when you actually need them, never when you just foresee that you need them." Even if you're totally, totally, totally sure that you'll need a feature, later on, don't implement it now. Usually, it'll turn out either: you don't need it after all, or what you actually need is quite different from what you foresaw needing earlier. This doesn't mean you should avoid building flexibility into your code. It means you shouldn't overengineer something based on what you think you might need later on. There are two main reasons to practice YAGNI: You save time because you avoid writing code that you turn out not to need. Your code is better because you avoid polluting it with 'guesses' that turn out to be more or less wrong but stick around anyway. Premature Optimization is the Root of All Evil Programmers waste enormous amounts of time thinking about or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. - Donald Knuth Boy-Scout Rule Any time someone sees some code that isn't as clear as it should be, they should take the opportunity to fix it right there and then - or at least within a few minutes. This opportunistic refactoring is referred to by Uncle Bob as following the boy-scout rule - always leave the code behind in a better state than you found it. The code quality tends to degrade with each change. This results in technical debt. The Boy-Scout Principle saves us from that. Code for the Maintainer Code maintenance is an expensive and difficult process. Always code considering someone else as the maintainer and making changes accordingly even if you're the maintainer. After a while, you'll remember the code as much as a stranger. Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live. Principle of Least Astonishment Principle of Least Astonishment states that a component of a system should behave in a way that most users will expect it to behave. The behavior should not astonish or surprise users. Code should do what the name and comments suggest. Conventions should be followed. Surprising side effects should be avoided as much as possible. # Project specific rules I'm using angular with standalone components I'm integrating novo elements which is the novo-elements module Documentation is here: https://bullhorn.github.io/novo-elements/docs/#/home Github is here: https://github.com/bullhorn/novo-elements I don''t have a module file. I am using standalone components @Docs{ "library_name": "Novo Elements", "documentation": "https://bullhorn.github.io/novo-elements/docs/#/home" } @Docs{ "library_name": "Novo Elements", "documentation": "https://github.com/bullhorn/novo-elements" } Cursor AI by @Dan Donathan 1