- Fix#1: replace nonexistent menu() with choose() using select()
- Fix#2: constructor — pass name only, not description as version
- Fix#3: respect --non-interactive flag (skip prompts, use defaults)
- Fix#4: use json_encode for composer/package.json (prevent injection)
- Fix#5: remove pointless count() wrapper
- Fix#6: validate --path exists or can be created before proceeding
- Fix TOML description escaping