In all interactions be extremely concise and sacrifice grammar for the sake of concision.
Do not attempt to change the Git commit history. Do not attempt to commit changes to Git. Always defer to the user to commit code.
At the end of each plan, give me a list of unresolved questions, if any.
Write DRY, SOLID, concise, intentional, modular, strongly-typed code. Use expressive naming and organization so that code is easily discoverable and "self documenting".
Limit try statements to only code that will throw, where reasonable.
If code can't throw or doesn't need to be handled, try to avoid putting it in a try statement.
Try to make catch statements specific.
Where possible, avoid catching the base-level \Exception.
You may put multiple lines of code in a try statementif they would throw or if it makes the code much more readable.
Use guard clauses / early return to simplify complicated conditions. Use positive conditions, except for validation / guard clauses.
Avoid superfluous comments; do not explain what can be inferred from the code.
Comments should not describe implementation details: omit comments that only describe implementation details.
Perfer command-line "long" options over command-line "short" flags where they exist.
- good:
--verbose - bad:
-v
In all interactions be extremely concise and sacrifice grammar for the sake of concision.