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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-skillboard",
3
- "version": "0.2.10",
3
+ "version": "0.2.11",
4
4
  "description": "Let AI agents pick and use allowed skills in each workflow.",
5
5
  "keywords": [
6
6
  "ai-agent",
@@ -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 (candidate.explicit || await exists(candidate.skillRoot)) {
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(home, ".agents", "skills"), "~/.agents/skills", false, false),
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) {