List codeaf in npx skills (vercel-labs/skills) once #1277 ships
メンテナーはふだん 1 日以内に返信
@AbirAbbas がすでに取り組んでいます。
2026年9月23日 から。
評価
この issue はまだ評価されていません。
説明
What is asked
Get codeaf listed in npx skills, the CLI that installs Agent Skills (SKILL.md folders) into 78 coding agents. The upstream change is small: one entry in src/agents.ts, 'codeaf' in the AgentType union in src/types.ts, then their validate-agents.ts and sync-agents.ts scripts (which regenerate the README table and the package keywords).
Blocked on #1277 reaching a release
A listing claims that codeaf picks up what npx skills installs. On dev, and in every released build (v0.4.1 and earlier), that is false: nothing in internal/session reads a SKILL.md.
The reader is #1277 (Santosh). It is on santos/dev2: #1365 and #1382 merged there, and #1396 is open. internal/skills scans .codeaf/skills, .agents/skills, .claude/skills, .codex/skills, .cursor/skills and .gemini/skills in both the project and the home directory. That covers both places npx skills writes for an agent like codeaf:
- a project install:
<project>/.agents/skills/<name> - a global install:
~/.agents/skills/<name>
For an agent whose project folder is .agents/skills ("universal" upstream), installer.ts writes global installs to the shared ~/.agents/skills and never links them into the agent's own globalSkillsDir.
So this issue does not build a loader. It opens the upstream pull request once #1277 is on dev and in a release.
The entry, and why its global folder is ~/.agents/skills
// src/agents.ts, beside the other *Home constants
const codeafHome = process.env.CODEAF_HOME?.trim() || join(home, '.codeaf');
codeaf: {
name: 'codeaf',
displayName: 'codeaf',
skillsDir: '.agents/skills',
globalSkillsDir: join(home, '.agents/skills'),
detectInstalled: async () => existsSync(codeafHome),
},
The first draft had globalSkillsDir: join(codeafHome, 'skills'), which is codeaf's own skills folder in #1277. Two reasons to declare ~/.agents/skills instead:
- It is where a global install actually goes. The README table and
skills list -gwould otherwise show~/.codeaf/skills/, a foldernpx skillsnever writes to for codeaf. npx skills remove -gdeletes inside the declared folder without checking it. For every agent it targets,remove.tsrunsrm -rf <globalSkillsDir>/<name>without checking that the path is a skill. With no-a, it targets every agent in its table, installed or not.~/.codeaf/skillsis also the resident's promoted-commands shelf (store.SkillsRoot), andinternal/execputs itsbin/onPATH. So once codeaf is listed with that folder, anyone removing a skill namedbin, or one that shares a name with a promoted command, deletes that folder under~/.codeaf, even if they installed the skill for a different agent. Declaring~/.agents/skillskeepsnpx skillsout of~/.codeafentirely. Cline and Dexto declare the same folder.
skills add -g -a codeaf then shows ~/.agents/skills, and #1277's scan reads it.
Acceptance, end to end, on a codeaf release that carries #1277
- In a project,
npx skills add <a public skill repo> -a codeaf -ywrites.agents/skills/<name>/SKILL.md. Thencodeafin that project offers the skill: it is in the/skillpicker, and a turn can use it. - The same works with
-g: the skill lands in~/.agents/skills/<name>, and codeaf opened in any folder offers it. - Neither install nor
npx skills remove -gtouches anything under~/.codeaf. - Upstream's own gates are green:
validate-agents.ts,sync-agents.ts(README table, agent count, discovery paths, package keyword),pnpm format:check,pnpm type-checkandpnpm test.
Notes
- Upstream has about 83 "add agent" pull requests open. The ones that merged recently (fx, Sarvam Code, Posit Assistant) took days to weeks, so the pull request can be opened as soon as the release exists.
skills use <pkg>@<skill>launches onlyclaude,codexandsarvam-code(USE_AGENT_CONFIGSinsrc/use.ts). codeaf can be added there later, once a skill prompt can be handed tocodeafon its command line the same way.
- 主要言語
- Go
- スター
- 115
- フォーク
- 14
- 平均マージ
- 9時間 37分
- マージ済み PR(30日)
- 755
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Agent-Field/CodeAF のほかの issue
-
area:chat bug sev:papercut
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Agent-Field/CodeAF#1592 ·
メンテナーはふだん 1 日以内に返信
-
area:headless bug sev:critical
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Agent-Field/CodeAF#1566 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
area:chat feature
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Agent-Field/CodeAF#1510 ·
メンテナーはふだん 1 日以内に返信
-
area:tests bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Agent-Field/CodeAF#1489 ·
メンテナーはふだん 1 日以内に返信
-
area:chat bug good first issue sev:papercut
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Agent-Field/CodeAF#1470 ·
メンテナーはふだん 1 日以内に返信
Agent-Field/CodeAF の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
rossoctl/context-guru#346 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
prime-radiant-inc/evener#2883 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
gravitational/teleport#69805 ·
メンテナーはふだん 11 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
Under Poisson sampling, the `PLDAccountant` composes the inner event both before and after samplingオープン
難易度 2/5 半日 初心者へのやさしさ 78/100
google/differential-privacy#496 ·