Support disable-model-invocation in skill frontmatter - #592
Merged
alejandro-ao merged 3 commits intoAug 17, 2026
Conversation
Contributor
Author
|
Note on the related PR #309 PR #309 came first and adds the same feature. Credit goes to @pedrobruning for the initial implementation. That PR did not get a review, and it looks stale. This PR includes the same core changes. It also includes items that PR #309 does not have:
If the maintainers prefer to continue with PR #309, that is not a problem. The reload fix is small. I can supply it there as a review comment instead. |
rian-dolphin
force-pushed
the
skill-disable-model-invocation
branch
from
August 17, 2026 08:40
917e572 to
23c60a0
Compare
Skills with disable-model-invocation: true in SKILL.md frontmatter are excluded from the system prompt's <available_skills> block, so the model cannot invoke them on its own. They stay loaded and remain available via explicit /skill:<name> invocation, the /skills picker, and autocomplete. Ports Pi's disableModelInvocation behavior. Reload signatures include the new flag so toggling it in frontmatter triggers a system prompt rebuild.
rian-dolphin
force-pushed
the
skill-disable-model-invocation
branch
from
August 17, 2026 15:01
23c60a0 to
4bd6d73
Compare
alejandro-ao
approved these changes
Aug 17, 2026
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.
Summary
Add support for
disable-model-invocation: trueinSKILL.mdfrontmatter. This behavior matches Pi'sdisableModelInvocationoption.Tau excludes a skill with this flag from the system prompt. The model cannot see the skill or invoke it by itself. The skill stays loaded, and the user can still access it through:
/skill:<name>invocation/skillspickerThis option is useful for workflows that the user must start. Examples include report generators and release checklists.
Implementation
disable_model_invocation: bool = FalsetoSkill.SKILL.md.truewithout regard to letter case. Treat all other values as false. This behavior matches Pi's strict boolean check without a YAML dependency.format_skills_for_promptandbuild_skill_index.•) for model-visible skills and a hollow bullet (◦) for user-only skills in the sidebar.Testing
uv run pytest tests/test_tui_app.py— 368 passed.uv run pytest tests/test_skills.py tests/test_system_prompt.py— 29 passed.uv run ruff check src/tau_coding/tui/widgets.py tests/test_tui_app.py— passed.uv run ruff format --check src/tau_coding/tui/widgets.py tests/test_tui_app.py— passed.Tests cover:
Documentation
website/content/guides/skills-and-prompts.mdwith user-only skill instructions.src/tau_coding/data/docs/skills.mdwith the frontmatter option.website/content/guides/tui.mdwith the sidebar bullet meanings.Relationship to #309
PR #309 by @pedrobruning proposed the same core feature first and deserves credit for the initial implementation. It appears stale, with no review since July. This PR also adds the reload signature fix, packaged documentation, parser edge-case tests, sidebar token refresh, and sidebar visibility indicators.