fix(skills): track orphaned file_write.py + sync FEATURES.md count 74→75#37
Merged
fix(skills): track orphaned file_write.py + sync FEATURES.md count 74→75#37
Conversation
skills/file_write.py existed in the working tree but was never committed. The skill is real: 259 lines, full metadata (SKILL_NAME, SKILL_TRIGGERS, SKILL_DESCRIPTION, SKILL_MCP_EXPOSE=True), purpose-built for HTTP MCP callers with path-safety guards (blocks /System, /etc, .ssh, credential patterns) and per-write audit log at ~/.codec/file_write.log. The SkillRegistry already loads it correctly; tests in test_agent_runner.py already reference it as a granted skill name. Discovered during a numerical-truth audit: git ls-files counted 74 .py skills, filesystem had 75. FEATURES.md was inconsistent — file_write was already listed in the System Control category row (line 204) but the count beside the row said (10), not (11), confirming the prior add was half-finished. Changes: - Track skills/file_write.py - FEATURES.md line 185: 74 skills → 75 skills - FEATURES.md line 196: ### 74 Built-in Skills → ### 75 Built-in Skills - FEATURES.md line 204: System Control (10) → (11) - FEATURES.md line 507: 74 skills → 75 skills Line 3 header (73 skills) and other section/total inconsistencies are out of scope here — handled separately by the parent numerical audit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Owner
Author
|
Rebased onto main and resolved the FEATURES.md conflict. Bumped totals to keep both docs aligned now that file_write.py is tracked:
Both files now agree on a single fact set. Merge should be clean. |
95a226a to
1c4a132
Compare
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
skills/file_write.py— existed in the working tree but was never committed (orphaned since Apr 17). The file is a real, working skill (259 lines, full metadata, SkillRegistry loads it, tests intest_agent_runner.pyalready reference it as a grantable skill).(10)→(11)(file_write was already listed in that row, just uncounted).Context
Discovered during a parent numerical-truth audit between README.md and FEATURES.md:
git ls-files skills/*.py | grep -v __init__ | wc -lreturned 74 whilels skills/*.pyreturned 75. The orphan wasskills/file_write.py.The skill is purpose-built for remote callers over HTTP MCP, with stronger safety than the built-in agent tool of the same name in
codec_agents.py:/System,/etc,/usr,/Library,/var,/private,/dev,/Volumes).ssh,.env,id_rsa,keychain,api_key, etc.).pem,.key,.p12)realpath(defeats symlink traversal)~/.codec/file_write.log(JSON-lines)SkillRegistry.scan()discovers it correctly;SKILL_MCP_EXPOSE=Truemakes it available over MCP. Same skill name as the built-in agent tool but the runtime resolution paths are independent (built-in tool used inside crews, skill used over MCP / chat / voice dispatch).Out of scope
FEATURES.mdline 3 header still says "73 skills" — left untouched per the parent audit's domain.Test plan
git ls-files skills/*.py | grep -v __init__ | wc -l→ 75 (matches filesystem)skills.file_writefrom elsewhere (only string references via skill name)🤖 Generated with Claude Code