fix(agent): demote non-coding skill categories to names-only — never hide skills - #44342
Merged
Conversation
Contributor
🔎 Lint report:
|
OutThisLife
force-pushed
the
bb/posture-skill-gate
branch
from
June 11, 2026 15:09
01e8357 to
c8f4adc
Compare
…hide skills
Real-world failure with the original index pruning: under the default auto
posture, an agent-created ops skill in a demoted category vanished from the
prompt's skill index mid-project, and the agent silently fell back to a
stale sibling skill instead. The "discovery-only" premise didn't hold —
models do not reach for skills_list to rediscover what the index stops
showing them, and agent-created skills are the model's accumulated project
memory (runbooks, pitfalls, operating rules).
Gating pruning behind the opt-in focus mode was the wrong fix too: users
opening a worktree don't know the config exists, so the index-noise win
would effectively never ship.
Instead, the coding posture now DEMOTES non-coding categories rather than
hiding them: each demoted category renders as a single names-only line
("gaming [names only]: allthemons10-ops, mc-backup") with a footer note
explaining the omitted descriptions. Every skill name stays in the prompt,
so memory-anchored recall ("load <name>") keeps working in every mode,
while the description noise is still cut. Applies in auto/on/focus alike;
the general posture demotes nothing. Deny-list semantics unchanged —
unknown/custom categories and coding-adjacent ones keep full entries.
API renamed to match the honest semantics: hidden_skill_categories →
compact_skill_categories, build_skills_system_prompt(hidden_categories=) →
compact_categories=.
OutThisLife
force-pushed
the
bb/posture-skill-gate
branch
from
June 11, 2026 15:15
c8f4adc to
9f3d34e
Compare
This was referenced Jun 11, 2026
Closed
teknium1
added a commit
that referenced
this pull request
Jun 11, 2026
…44387) The coding posture's names-only demotion of non-coding skill categories (#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
alt-glitch
pushed a commit
that referenced
this pull request
Jun 14, 2026
…hide skills (#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
alt-glitch
pushed a commit
that referenced
this pull request
Jun 14, 2026
…44387) The coding posture's names-only demotion of non-coding skill categories (#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
AIalliAI
pushed a commit
to AIalliAI/Hermes
that referenced
this pull request
Jun 14, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
AIalliAI
pushed a commit
to AIalliAI/Hermes
that referenced
this pull request
Jun 14, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
T02200059
pushed a commit
to T02200059/hermes-agent
that referenced
this pull request
Jun 18, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
T02200059
pushed a commit
to T02200059/hermes-agent
that referenced
this pull request
Jun 18, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 2, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 2, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
9 tasks
santhreal
pushed a commit
to santhreal/hermes-agent
that referenced
this pull request
Jul 13, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
santhreal
pushed a commit
to santhreal/hermes-agent
that referenced
this pull request
Jul 13, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
donbowman
pushed a commit
to donbowman/hermes-agent
that referenced
this pull request
Jul 13, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
donbowman
pushed a commit
to donbowman/hermes-agent
that referenced
this pull request
Jul 13, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
Gravezzz
pushed a commit
to Gravezzz/hermes-agent
that referenced
this pull request
Jul 21, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
Gravezzz
pushed a commit
to Gravezzz/hermes-agent
that referenced
this pull request
Jul 21, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
1 task
leewenjie
pushed a commit
to leewenjie/hermes-agent
that referenced
this pull request
Aug 7, 2026
…hide skills (NousResearch#44342) Real-world failure with the original index pruning: under the default auto posture, an agent-created ops skill in a demoted category vanished from the prompt's skill index mid-project, and the agent silently fell back to a stale sibling skill instead. The "discovery-only" premise didn't hold — models do not reach for skills_list to rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, pitfalls, operating rules). Gating pruning behind the opt-in focus mode was the wrong fix too: users opening a worktree don't know the config exists, so the index-noise win would effectively never ship. Instead, the coding posture now DEMOTES non-coding categories rather than hiding them: each demoted category renders as a single names-only line ("gaming [names only]: allthemons10-ops, mc-backup") with a footer note explaining the omitted descriptions. Every skill name stays in the prompt, so memory-anchored recall ("load <name>") keeps working in every mode, while the description noise is still cut. Applies in auto/on/focus alike; the general posture demotes nothing. Deny-list semantics unchanged — unknown/custom categories and coding-adjacent ones keep full entries. API renamed to match the honest semantics: hidden_skill_categories → compact_skill_categories, build_skills_system_prompt(hidden_categories=) → compact_categories=.
leewenjie
pushed a commit
to leewenjie/hermes-agent
that referenced
this pull request
Aug 7, 2026
…ousResearch#44387) The coding posture's names-only demotion of non-coding skill categories (NousResearch#44342) applied under the default auto mode, silently changing the skill index for every user in a git repo. Index changes must be opt-in: demotion now only fires under agent.coding_context=focus, alongside the toolset collapse. auto/on leave the skill index untouched; focus semantics are unchanged (demoted, never hidden; deny-list keeps coding-adjacent and custom categories at full entries).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The coding posture (#43316) pruned non-coding skill categories from the system prompt's skill index under the default
automode. The pruning was "discovery-only" in theory —skills_liststill returned everything — but that premise failed in practice: models don't reach forskills_listto rediscover what the index stops showing them, and agent-created skills are the model's accumulated project memory (runbooks, learned pitfalls, operating rules). A skill in a pruned category silently vanished mid-project and the agent fell back to a stale sibling skill, with nothing telling the user why.An earlier revision of this PR gated pruning behind the opt-in
focusmode. That was the wrong fix in the other direction: someone opening a worktree doesn't knowagent.coding_contextexists, so the index-noise reduction would effectively never apply for anyone.Fix: demote, don't hide
Non-coding categories are now demoted to names-only in the index, in every coding mode (
auto/on/focus):<name>") works in all modes — nothing can silently vanish.github,devops,data-science,research, …) keep full entries; the general (non-coding) posture demotes nothing.API
Renamed to match the honest semantics:
RuntimeMode.hidden_skill_categories()→compact_skill_categories()coding_hidden_skill_categories()→coding_compact_skill_categories()build_skills_system_prompt(hidden_categories=…)→compact_categories=…Tests
test_skill_demotion_scoped_to_coding_posture— demotion applies inauto/on/focus, never in the general posture; coding-adjacent categories exempt.test_compact_categories_demoted_to_names_only— demoted skill names visible, descriptions dropped, footer note present.test_compact_categories_demote_nested_and_miss_cache_separately— nested categories demote via their parent; compacted and full renders don't share a cache entry.tests/agent/test_coding_context.py+tests/agent/test_prompt_builder.py: 177 passed.