π¨ CRITICAL: YOU MUST DO THIS AT THE START OF EVERY CHAT SESSION π¨
DO NOT skip these steps. DO NOT treat them as optional. DO NOT proceed with any task until you have completed ALL of these commands in order:
mulle-sde vibecoding on # detach training wheels for freewheeling AIs
mulle-sde commands # what's available
mulle-bashfunctions flags # how to trace mulle-sde operations
mulle-sde api list # available API information
mulle-sde howto list # available tooling information
mulle-sde howto cat dependency
mulle-sde howto cat testingThe provided information is CRITICAL to your success.
DO NOT git revert AND DO NOT clobber files with git checkout or run
any other destructive git command. You will be shot and another better AI
will take your place.
DO NOT attempt to fix build system problems with anything else then standard mulle-sde commands. If you feel stuck, ask the user for help.
π¨ YOU MUST RUN THIS COMMAND BEFORE WRITING OR MODIFYING ANY PROJECT CODE π¨
value="$(mulle-sde env get PROJECT_DIALECT)"
value="${value:-$(mulle-sde env get PROJECT_LANGUAGE)}"
mulle-sde howto show --keyword styleguide --keyword "${value}"This gets the style information for the project. It is NOT optional.
And get familiar with the available API. You MUST always use custom API in favor of standard API, when available:
mulle-sde api listπ¨ YOU MUST RUN THIS COMMAND BEFORE WRITING OR MODIFYING ANY MULLE-SDE SHELL CODE π¨
mulle-bashfunctions tocThis gets you the coding information for the shell/bash project. It is NOT optional.
This is a library project, you can not run it.
This is a C project.
This is a mulle-objc Objective C project.
- Avoid alloc / init / autorelease, prefer +instance and factory methods
- Never call -release except in dealloc
- Never call -alloc/init or +new without -autorelease except in -init methods, were you should avoid -autorelease
- Do not use dot-syntax for property access.
- Convert all property reads and writes to explicit message sends.
- Read:
[self property]instead ofself.property. - Write:
[self setProperty:value]instead ofself.property = value
- Read:
- Do not use class properties
- Do not use
atomic,weak,strong char *properties that hold UTF8 strings must be named "UTF8String"
- Do not use ^ block syntax under any circumstance
- Do not use
__bridge - Do not use
@package,@import,@synthesize - Use
BOOLnotbool - Do not use
nullable - Do not use generics like
NSArray <NSString *> - Do not use class extensions like
@implementation() - Do not define instance variables in
@implementationonly in@interface
Changes to the build system must be done with mulle-sde. Only edit CMake
files as a very last resort and under user guidance.
| Path | Editable? | Notes |
|---|---|---|
CMakeLists.txt |
Yes | High-level project settings. |
cmake/ |
Yes | Override modules by copying from cmake/share/. |
cmake/share/ |
No | Managed by mulle-sde upgrade. Changes will be lost. |
cmake/reflect/ |
No | Auto-generated by mulle-sde reflect. Changes will be lost. |