PUP-581: Split code-puppy-agent skill into topic reference docs, add namespace_skill_search coverage - #714
Merged
mpfaffenberger merged 1 commit intoAug 11, 2026
Conversation
SKILL.md had grown to 632 lines as a single monolithic file, over the project's own 600-line cap, and didn't cover the new namespace_skill_search plugin. Split into an index (SKILL.md) plus six topic reference files that the model reads on demand via read_file: - AGENTS_AND_TOOLS.md - PLUGINS_AND_CALLBACKS.md - MODELS_AND_MCP.md - SESSIONS_AND_HISTORY.md - SKILLS_SYSTEM.md - SYSTEM_PROMPT_CONFIG_AND_I18N.md Activating the skill now costs ~8KB instead of ~24KB. Content also updated to document skill namespaces (namespace_skill_search plugin), two hook-system gotchas discovered while building it (get_model_system_prompt is last-write-wins, not additive like load_prompt; avoid real work at plugin import time, use the startup callback instead), and the fact that plugin-registered skills (skill_md_path) don't auto-surface sibling files via activate_skill's resources field the way filesystem skills do. Bumped skill version 1.1 -> 2.0 and added a namespaces tag.
mpfaffenberger
approved these changes
Aug 11, 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.
Jira: PUP-581
What
Splits the monolithic
code-puppy-agentskill'sSKILL.md(632 lines,~24KB) into an index file plus six topic-specific reference files that
the model reads on demand via
read_file. Also updates the skill'scontent to document the new
namespace_skill_searchplugin (#713) andtwo hook-system gotchas discovered while building it.
Why
SKILL.mdwas already over the project's own 600-line file capbefore this PR touched it.
namespace_skill_searchat all (skill namespaces,the
browse_skill_namespacetool, theget_model_system_promptlast-write-wins gotcha, the import-time-vs-
startup-callback gotcha).the common case instead of ~24KB (everything), with topic detail
available on demand for whichever question is actually being asked.
Files
SKILL.md-- trimmed to: architecture diagram, a reference map table,condensed dev conventions, and the quick file-map table.
AGENTS_AND_TOOLS.md,PLUGINS_AND_CALLBACKS.md,MODELS_AND_MCP.md,SESSIONS_AND_HISTORY.md,SKILLS_SYSTEM.md,SYSTEM_PROMPT_CONFIG_AND_I18N.md-- one topic each.register_callbacks.pydocstring updated to explain the split and areal gotcha it documents: plugin-registered skills (
skill_md_path)don't auto-surface sibling files through
activate_skill'sresourcesfield the way a real filesystem skill directory does, sothe reference files are linked by plain repo path in
SKILL.md'sprose instead.
Known tradeoffs (raised and accepted before merging, not discovered after)
read_fileround-trips instead of oneactivate_skillcall.right reference file -- nothing enforces that; a weaker model could
answer shallowly from the index alone instead of fetching detail.
SKILL.md, not validated byany test -- a future rename would silently break a pointer.
optional cleanup justified by analogy to
namespace_skill_search'sreasoning (smaller context on demand beats one big flat block), not a
proven fix for an observed problem -- nobody had reported the skill
as too expensive to activate before this PR.
worktrees) now have more files to keep in sync if anyone syncs them.
Testing
(
tests/plugins/test_agent_skills*.py,test_plugins_init*.py,test_plugin_meta.py,test_builtin_plugin_lock.py).ruff check/ruff format --checkclean on the plugin directory.parse_skill_metadata()parses the new frontmatter (skillversion bumped 1.1 -> 2.0) without error.
a skill's documentation, not new executable behavior.
Related
Builds on #713 (
namespace_skill_searchplugin) -- that PR documentsthe feature from the user-facing "how do I use it" angle in
docs/AGENT_SKILLS.md; this PR documents it from the "how does CodePuppy work internally" self-awareness angle covered by this skill.