This repository is a Bashly-based CLI. Prefer working from the source partials in src/ and regenerate artifacts as needed.
- Do not use the generated
./alfexecutable as the primary code-reading target. - Treat
./alfas a generated artifact for verification only. - Read and edit:
src/bashly.ymlsrc/initialize.shsrc/commands/*.shsrc/lib/*.shsettings.yml
op.confis the repo-local source of truth for common helper commands such as testing, ShellCheck, formatting, generation, and docs tasks.- Prefer the
op.confentries when looking up or running standard project workflows.
- Only inspect
./alfwhen you need to verify generated output, trace a generation issue, or confirm the final emitted behavior. - Do not base architectural conclusions or refactoring plans on
./alfwhen the equivalent source exists undersrc/.
The repository uses Bats as the primary test framework.
For Bats tests, prefer this split:
- Use checked-in fixtures when the unit's job is to interpret files, parse config, or derive behavior from prepared filesystem state.
- Use stubs when the unit's job is orchestration.
- In stub-driven unit tests, it is acceptable to create the smallest transient prerequisite inline when it is only a mechanical precondition (for example, an empty file required to satisfy an existence check).
- Keep command adapter tests tiny and structural.
- Keep integration tests sparse and focused on top-level CLI wiring, not behavior that is already covered at the unit level.
- This project is being prepared for a
1.0.0release and semver commitment. - Prefer deterministic, local, hermetic tests over live network access.
- Treat installer flows as release/integration verification, not unit coverage.