You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Skills 1/6: discover skill folders from every harness into one catalog #1403
Step 1 of #1277. It lands in the single pull request for #1277 (branch feat/1277-skills), as its first commit.
What
internal/skills scans the skill folders other harnesses already use and returns one catalog. It reads them in place and never copies them.
Eight folders, first under the project (the git root of where codeaf was opened, else the folder itself), then under the home directory: .codeaf/skills, .agents/skills, .claude/skills, .codex/skills, .cursor/skills, .gemini/skills, .opencode/skills, .goose/skills.
After those, within each scope: the skills of installed and enabled Claude Code plugins, then Codex's bundled skills (.codex/skills/.system).
A skill is a direct child folder holding SKILL.md. A link to a folder counts. Nothing is walked deeper, so the resident's promoted commands in ~/.codeaf/skills (no SKILL.md) are not seen.
First seen wins a name. Every loser stays in the result marked shadowed, so "why is my skill not used" has an answer.
Frontmatter is read leniently, per the agentskills.io client guide. A bad name or a name that differs from its folder loads with a warning. A missing name or description, or YAML that won't parse, is skipped with the reason. An unquoted description containing a colon is repaired.
Each skill carries its size (the bytes of every file in its folder).
Acceptance
The package is pure, so its tests run against fixture trees under testdata/:
precedence across scopes and folders
each skip and warning case
links, including dangling ones
plugin skills and Codex's bundled ones
the OpenCode and Goose folders
go test ./internal/skills is green.
Carried over from #1396 (Santosh), with the two folders the plan adds.
Implemented on dev@3ba1d8f76 through the discovery work incorporated in #1410 and the additional OpenCode/Goose roots in #1691.
Discovery reads the eight project/home roots, enabled Claude Code plugins and Codex bundled skills, preserves shadowed entries and warnings, follows supported links, and reports folder sizes. OpenCode and Goose home configuration roots are covered as well.
Reran the full internal/skills suite: passed, including scope/root precedence, malformed-frontmatter cases, linked and unsafe files, plugins, Codex system skills, and OpenCode/Goose fixtures. This closes discovery step 1 only; the broader requirements in #1277 and steps #1404–#1408 are not claimed complete.
Activity
santoshkumarradha commentedon Oct 25, 2026
Implemented on
dev@3ba1d8f76through the discovery work incorporated in #1410 and the additional OpenCode/Goose roots in #1691.Discovery reads the eight project/home roots, enabled Claude Code plugins and Codex bundled skills, preserves shadowed entries and warnings, follows supported links, and reports folder sizes. OpenCode and Goose home configuration roots are covered as well.
Reran the full
internal/skillssuite: passed, including scope/root precedence, malformed-frontmatter cases, linked and unsafe files, plugins, Codex system skills, and OpenCode/Goose fixtures. This closes discovery step 1 only; the broader requirements in #1277 and steps #1404–#1408 are not claimed complete.