The "Auxiliary Tasks (CONSISTENCY RULE)" header in hermes-config-template.prose.md claimed all auxiliary services must use an identical model (gpu-vision) and that syslog-auto must never be used for auxiliary tasks. Both are false for compression, which the enforcement script audit-hermes-config.py (and Rule 7/Rule 8 in the same file) require to be syslog-auto. An agent configuring from the template produced a config the audit then FAILED.
Context-heavy auxiliary (compression) -> syslog-auto (weighted pool) — deliberate per the existing 2026-07-23 OPERATIONAL DECISION in Rule 7 (summarization runs against long histories and must use the pool).
Removed the absolute sentence "Do NOT use syslog-auto for auxiliary tasks — it routes to the primary GPU." (false for compression; the source of the contradiction).
Stated plainly that gpu-dense + strix-moe are the reasoning hosts and auxiliary work should not be pinned to them.
Added an UPDATED 2026-09-27 note in the frontmatter.
audit-hermes-config.py is the enforcement contract and is unchanged; the prose now matches it line-for-line on vision / web_extract / compression. No live gpu-light reference remains.
============================== 14 passed in 0.62s ============================== # exit 0
audit-hermes-config.py on the template's stated policy
✅ [Rule 7] compression.model must be syslog-auto (got 'syslog-auto')
✅ [Rule 7] auxiliary.compression.model must be syslog-auto (got 'syslog-auto')
✅ [Rule 8] auxiliary.vision.model must be gpu-vision (got 'gpu-vision')
✅ [Rule 8] auxiliary.web_extract.model must be gpu-vision (got 'gpu-vision')
RESULT: PASS — all contract rules satisfied # exit 0
## Summary
The "Auxiliary Tasks (CONSISTENCY RULE)" header in `hermes-config-template.prose.md` claimed **all** auxiliary services must use an identical model (`gpu-vision`) and that `syslog-auto` must **never** be used for auxiliary tasks. Both are false for compression, which the enforcement script `audit-hermes-config.py` (and Rule 7/Rule 8 in the same file) require to be `syslog-auto`. An agent configuring from the template produced a config the audit then FAILED.
## Changes (prose only — script unchanged)
- Split auxiliary into two explicit classes:
- **Light auxiliary** (vision, web_extract/browsing) -> `gpu-vision` (RTX 5070) — keeps the reasoning hosts free.
- **Context-heavy auxiliary** (compression) -> `syslog-auto` (weighted pool) — deliberate per the existing **2026-07-23 OPERATIONAL DECISION in Rule 7** (summarization runs against long histories and must use the pool).
- Removed the absolute sentence "Do NOT use syslog-auto for auxiliary tasks — it routes to the primary GPU." (false for compression; the source of the contradiction).
- Stated plainly that `gpu-dense` + `strix-moe` are the reasoning hosts and auxiliary work should not be pinned to them.
- Added an `UPDATED 2026-09-27` note in the frontmatter.
`audit-hermes-config.py` is the enforcement contract and is **unchanged**; the prose now matches it line-for-line on vision / web_extract / compression. No live `gpu-light` reference remains.
## Raw check output
### prose-lint.sh
```
LINT PASSED (21 warning(s)) # exit 0 — all 21 warnings pre-existing, none in hermes-config-template.prose.md
secret scan clean (tree; 34 allowlisted exception(s), 22 inert value(s) ignored)
```
### scripts/secret-scan.sh
```
── secret scan (tree): 100 files under /root/abiba-workspace/projects/prose-contracts ──
✅ secret scan clean (tree; 34 allowlisted exception(s), 22 inert value(s) ignored) # exit 0
```
### tests/test_audit_hermes_config_alias.py
```
============================== 14 passed in 0.62s ============================== # exit 0
```
### audit-hermes-config.py on the template's stated policy
```
✅ [Rule 7] compression.model must be syslog-auto (got 'syslog-auto')
✅ [Rule 7] auxiliary.compression.model must be syslog-auto (got 'syslog-auto')
✅ [Rule 8] auxiliary.vision.model must be gpu-vision (got 'gpu-vision')
✅ [Rule 8] auxiliary.web_extract.model must be gpu-vision (got 'gpu-vision')
RESULT: PASS — all contract rules satisfied # exit 0
```
The 'Auxiliary Tasks (CONSISTENCY RULE)' header claimed ALL auxiliary
services must use an identical model (gpu-vision) and that syslog-auto
must never be used for auxiliary tasks. Both are false for compression,
which the script (and Rule 7/8) require to be syslog-auto. An agent
following the template produced a config the audit then failed.
- Split auxiliary into two classes: light (vision, web_extract/browsing)
-> gpu-vision (RTX 5070); context-heavy (compression) -> syslog-auto,
citing the existing 2026-07-23 OPERATIONAL DECISION in Rule 7.
- Remove the absolute 'Do NOT use syslog-auto for auxiliary tasks' line.
- State gpu-dense + strix-moe are the reasoning hosts; do not pin aux to them.
- Note the change in the frontmatter UPDATED log.
audit-hermes-config.py unchanged (it is the enforcement contract); prose
now matches it line-for-line on vision/web_extract/compression.
Verified: prose-lint.sh PASS, secret-scan.sh clean, 14/14 tests in
tests/test_audit_hermes_config_alias.py pass, audit PASSES on the
template's stated policy.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The "Auxiliary Tasks (CONSISTENCY RULE)" header in
hermes-config-template.prose.mdclaimed all auxiliary services must use an identical model (gpu-vision) and thatsyslog-automust never be used for auxiliary tasks. Both are false for compression, which the enforcement scriptaudit-hermes-config.py(and Rule 7/Rule 8 in the same file) require to besyslog-auto. An agent configuring from the template produced a config the audit then FAILED.Changes (prose only — script unchanged)
gpu-vision(RTX 5070) — keeps the reasoning hosts free.syslog-auto(weighted pool) — deliberate per the existing 2026-07-23 OPERATIONAL DECISION in Rule 7 (summarization runs against long histories and must use the pool).gpu-dense+strix-moeare the reasoning hosts and auxiliary work should not be pinned to them.UPDATED 2026-09-27note in the frontmatter.audit-hermes-config.pyis the enforcement contract and is unchanged; the prose now matches it line-for-line on vision / web_extract / compression. No livegpu-lightreference remains.Raw check output
prose-lint.sh
scripts/secret-scan.sh
tests/test_audit_hermes_config_alias.py
audit-hermes-config.py on the template's stated policy