Profiles Development
- Profiles live in
profiles/<id>.profile.shand contain onlyPROFILE_variables (no commands or control structures). - Keep public web root as
publicfor all profiles. - Validate files with
validate_profile_fileand load viaload_profile. - Adding a profile must not require changes to existing commands; menu/profile selection reads the registry dynamically.
- Update
docs/architecture/profiles.mdanddocs/architecture/profiles-spec.mdwhen adding/changing profile fields. - Before committing, run
simai-admin.sh profile validate(or--id <id>) to lint profiles.
Profile file restrictions
- Profiles are sourced as data: no variable expansion or command substitution is allowed.
- Forbidden substrings:
$,$(, backticks,<(,>(,|,;,&,>,<. - Allowed lines: empty, comments, or
PROFILE_*=assignments (arrays/scalars).