Git Utility Requirements Specification
======================================

1. Naming Conventions
---------------------
- Filenames use dot-segment format: git.util.sh, bundle.encode.sh
- No underscores in any filenames.
- Directories use lowercase with no underscores.
- Internal functions use CamelCase.
- Scripts must validate naming before execution.

2. Exit Behavior
----------------
- Menu exit keys must be: x or q.
- Numeric exit options are prohibited.
- Scripts must enforce this rule.

3. Directory Layout
-------------------
git/
  bin/            - executable scripts
  config/         - configuration files
  docs/           - documentation
  code/           - code samples
  arch/           - architecture notes
  data/chunks64/  - encoded bundles
  audit/          - audit and enforcement tools

4. Bundle Rules
---------------
- Bundles must be gzip + base64.
- Bundle names: docs.64, code.64, arch.64.
- Decoded files must match:
    docs/docs.txt
    code/code.txt
    arch/arch.txt

5. Metadata Rules
-----------------
- Metadata stored in git.utility.meta.
- Must include version, description, updated timestamp.

6. Audit Rules
--------------
- Naming audit must validate filenames.
- Menu audit must validate exit keys.
- Structure audit must validate directory layout.
- All audits must read rules from external files.

7. Reusability Rules
--------------------
- All audit tools must read rules from:
    config/rules.naming
    config/rules.menu
    config/rules.structure
- Rules files must be portable across projects.

End of Specification

