Config source alignment

Behavioral configuration must be documented and wired through the supported config system, with examples matching the actual runtime resolution. Apply these rules:

copy reviewer prompt

Prompt

Reviewer Prompt

Behavioral configuration must be documented and wired through the supported config system, with examples matching the actual runtime resolution.

Apply these rules: 1) Non-secret settings → config.yaml

  • Don’t introduce or document new ad-hoc non-secret env mechanisms (e.g., HERMES_*) unless there is an explicit, accepted config-system feature.
  • Place user-facing behavioral settings under ~/.hermes/config.yaml, namespaced by the owning feature/skill (e.g., kairos:, tts:, etc.).

2) .env is secrets-only

  • If a setting is not secret, document it in ~/.hermes/config.yaml.
  • Keep credentials (API keys, tokens) in .env / secret stores.

3) Docs must match real default resolution

  • If a doc/example claims a default backend, ensure it is true for the actual resolution logic (e.g., extraction vs search-only).
  • When an option explicitly replaces defaults (e.g., providing a list), document the complete default set and the replacement behavior.

4) Installation/runtime paths must be accurate

  • When referencing scripts or artifacts, use the post-install location or provide a configurable SKILL_DIR/path instead of repo-relative paths.

5) Avoid documenting unsupported keys until implemented

  • If code/feature flags exist in docs but are not implemented in main yet, gate or defer the documentation.

Example (~/.hermes/config.yaml):

# Non-secret behavior
kairos:
  enabled: true
  schedule: "weekly"

terminal:
  shell_init_files: []   # explicit list replaces OS defaults

Example (.env):

OPENAI_API_KEY=***
# secrets only

Source discussions