agent-skillboard 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +2 -0
- package/docs/install.md +3 -0
- package/package.json +1 -1
- package/src/agent-skill-roots.mjs +9 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.2.11 — 2026-07-03
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Codex setup now creates and installs into `~/.agents/skills` when the user
|
|
10
|
+
already has a `~/.agents` home, even if `~/.agents/skills` did not exist yet
|
|
11
|
+
and `~/.codex/skills` was also detected.
|
|
12
|
+
|
|
5
13
|
## 0.2.10 — 2026-07-03
|
|
6
14
|
|
|
7
15
|
### Fixed
|
package/README.md
CHANGED
|
@@ -102,6 +102,8 @@ by that npm command.
|
|
|
102
102
|
The install-time setup writes a user-level `skillboard` guidance skill under
|
|
103
103
|
detected agent homes. For Codex, detection includes `CODEX_HOME/skills`,
|
|
104
104
|
`AGENTS_HOME/skills`, `~/.agents/skills`, and `~/.codex/skills`.
|
|
105
|
+
If `~/.agents` already exists, setup creates `~/.agents/skills` because that is
|
|
106
|
+
the shared Codex-visible skill tree in LazyCodex-style environments.
|
|
105
107
|
It does not create `skillboard.config.yaml`,
|
|
106
108
|
`.skillboard/`, `AGENTS.md`, or `CLAUDE.md` in projects.
|
|
107
109
|
No separate setup command is required after a normal global install.
|
package/docs/install.md
CHANGED
|
@@ -44,6 +44,9 @@ The install-time setup writes a user-level SkillBoard guidance skill under
|
|
|
44
44
|
detected agent homes such as `CODEX_HOME`, `AGENTS_HOME`, `CLAUDE_HOME`,
|
|
45
45
|
`OPENCODE_HOME`, and `HERMES_HOME`. Codex detection also checks
|
|
46
46
|
`~/.agents/skills` and `~/.codex/skills`.
|
|
47
|
+
If `~/.agents` exists but `~/.agents/skills` does not, setup creates the
|
|
48
|
+
`skills` directory and installs the guidance skill there so Codex profiles that
|
|
49
|
+
read the shared agent skill tree can see SkillBoard after restart.
|
|
47
50
|
No separate setup command is required after a normal global install.
|
|
48
51
|
|
|
49
52
|
Run `skillboard setup` later when you add another supported agent, enable a new
|
package/package.json
CHANGED
|
@@ -12,7 +12,11 @@ export async function detectedAgentSkillRoots(agent, home = homedir(), env = pro
|
|
|
12
12
|
const candidates = await agentSkillRootCandidates(agent, home, env);
|
|
13
13
|
const detected = [];
|
|
14
14
|
for (const candidate of candidates) {
|
|
15
|
-
if (
|
|
15
|
+
if (
|
|
16
|
+
candidate.explicit
|
|
17
|
+
|| await exists(candidate.skillRoot)
|
|
18
|
+
|| candidate.detectWhenExists !== undefined && await exists(candidate.detectWhenExists)
|
|
19
|
+
) {
|
|
16
20
|
detected.push(candidate);
|
|
17
21
|
}
|
|
18
22
|
}
|
|
@@ -41,10 +45,11 @@ export async function agentSkillRootCandidates(agent, home = homedir(), env = pr
|
|
|
41
45
|
const normalized = normalizeAgent(agent);
|
|
42
46
|
const xdgConfig = env.XDG_CONFIG_HOME ?? join(home, ".config");
|
|
43
47
|
if (normalized === "codex") {
|
|
48
|
+
const agentsHome = join(home, ".agents");
|
|
44
49
|
return uniqueCandidates([
|
|
45
50
|
env.CODEX_HOME === undefined ? null : candidate(join(env.CODEX_HOME, "skills"), "CODEX_HOME/skills", true, false),
|
|
46
51
|
env.AGENTS_HOME === undefined ? null : candidate(join(env.AGENTS_HOME, "skills"), "AGENTS_HOME/skills", true, false),
|
|
47
|
-
candidate(join(
|
|
52
|
+
candidate(join(agentsHome, "skills"), "~/.agents/skills", false, false, agentsHome),
|
|
48
53
|
candidate(join(home, ".codex", "skills"), "~/.codex/skills", false, true)
|
|
49
54
|
]);
|
|
50
55
|
}
|
|
@@ -79,8 +84,8 @@ function normalizeAgent(agent) {
|
|
|
79
84
|
return agent;
|
|
80
85
|
}
|
|
81
86
|
|
|
82
|
-
function candidate(skillRoot, source, explicit, fallback) {
|
|
83
|
-
return { skillRoot, source, explicit, fallback };
|
|
87
|
+
function candidate(skillRoot, source, explicit, fallback, detectWhenExists) {
|
|
88
|
+
return { skillRoot, source, explicit, fallback, detectWhenExists };
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
function fallbackCandidate(candidates) {
|