@maccesar/aiskills 1.11.0 → 1.12.0

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/README.md CHANGED
@@ -40,7 +40,7 @@ claude # or gemini, or codex
40
40
 
41
41
  Installed files:
42
42
  - All skills to `~/.agents/skills/`
43
- - Platform symlinks in `~/.claude/skills/`, `~/.gemini/skills/`, or `~/.codex/skills/`
43
+ - Platform symlinks in `~/.claude/skills/` and `~/.gemini/skills/` (Codex CLI auto-discovers from `~/.agents/skills/` — no symlink needed)
44
44
 
45
45
  ### Which option should I use?
46
46
 
@@ -59,7 +59,7 @@ Installed files:
59
59
  | --------------------------------------------------------- | --------- | ------------------- |
60
60
  | [Claude Code](https://claude.ai/claude-code) | Supported | `~/.claude/skills/` |
61
61
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Supported | `~/.gemini/skills/` |
62
- | [Codex CLI](https://developers.openai.com/codex/cli/) | Supported | `~/.codex/skills/` |
62
+ | [Codex CLI](https://developers.openai.com/codex/cli/) | Supported | `~/.agents/skills/` (auto-discovered) |
63
63
 
64
64
  All three platforms use the same Agent Skills format: a `SKILL.md` file with YAML frontmatter that tells the assistant when to use the skill and what to do.
65
65
 
package/lib/cleanup.js CHANGED
@@ -9,6 +9,7 @@ import {
9
9
  LEGACY_COMMANDS,
10
10
  getAgentsSkillsDir,
11
11
  getClaudeCommandsDir,
12
+ getCodexSkillsDir,
12
13
  } from './config.js';
13
14
  import { detectPlatforms } from './platform.js';
14
15
  import { existsSync, lstatSync, rmSync } from 'fs';
@@ -53,6 +54,14 @@ export function removeLegacySkillSymlinks(platformSkillsDir) {
53
54
  return removeSkillSymlinks(platformSkillsDir, { legacyOnly: true });
54
55
  }
55
56
 
57
+ // Codex reads skills from the canonical ~/.agents/skills/, so any aiskills-managed
58
+ // symlinks at ~/.codex/skills/ from earlier versions are redundant and should be
59
+ // cleaned up. Targets both active and legacy skill names.
60
+ export function removeCodexRedundantSymlinks(baseDir) {
61
+ const codexSkillsDir = getCodexSkillsDir(baseDir);
62
+ return removeSkillSymlinks(codexSkillsDir);
63
+ }
64
+
56
65
  export function removeSkills(baseDir, options = {}) {
57
66
  const skillsDir = getAgentsSkillsDir(baseDir);
58
67
  const skillList = getSkillList(options);
@@ -74,6 +83,8 @@ export function cleanupLegacyArtifacts(baseDir) {
74
83
  removeLegacySkillSymlinks(platform.skillsDir);
75
84
  }
76
85
 
86
+ removeCodexRedundantSymlinks(baseDir);
87
+
77
88
  if (baseDir) {
78
89
  removeSkills(undefined, { legacyOnly: true });
79
90
  removeCommands(undefined, { legacyOnly: true });
@@ -81,6 +92,7 @@ export function cleanupLegacyArtifacts(baseDir) {
81
92
  for (const platform of globalPlatforms) {
82
93
  removeLegacySkillSymlinks(platform.skillsDir);
83
94
  }
95
+ removeCodexRedundantSymlinks(undefined);
84
96
  }
85
97
  }
86
98
 
@@ -89,6 +101,7 @@ export default {
89
101
  getCommandList,
90
102
  removeSkillSymlinks,
91
103
  removeLegacySkillSymlinks,
104
+ removeCodexRedundantSymlinks,
92
105
  removeSkills,
93
106
  removeCommands,
94
107
  cleanupLegacyArtifacts,
@@ -86,7 +86,8 @@ export async function skillsCommand(options) {
86
86
 
87
87
  if (detectedPlatforms.length === 0 && !options.path && !isLocal) {
88
88
  console.log(chalk.yellow('No AI coding assistants detected globally.'));
89
- console.log('Install one of: Claude Code, Gemini CLI, or Codex CLI');
89
+ console.log('Install one of: Claude Code or Gemini CLI.');
90
+ console.log('(Codex CLI is supported via the canonical ~/.agents/skills/ — no platform-specific symlink needed.)');
90
91
  console.log('Or use: aiskills install --local');
91
92
  process.exit(1);
92
93
  }
package/lib/config.js CHANGED
@@ -68,12 +68,9 @@ export const getPlatforms = (baseDir = os.homedir()) => [
68
68
  skillsDir: getGeminiSkillsDir(baseDir),
69
69
  configDir: path.join(baseDir, '.gemini'),
70
70
  },
71
- {
72
- name: 'codex',
73
- displayName: 'Codex CLI',
74
- skillsDir: getCodexSkillsDir(baseDir),
75
- configDir: path.join(baseDir, '.codex'),
76
- },
71
+ // Codex CLI is intentionally omitted: it auto-discovers skills from the
72
+ // canonical ~/.agents/skills/ per the agentskills.io standard, so a
73
+ // platform-specific symlink at ~/.codex/skills/ would be redundant.
77
74
  ];
78
75
 
79
76
  // API configuration
package/lib/platform.js CHANGED
@@ -26,7 +26,7 @@ export function detectPlatforms(baseDir) {
26
26
 
27
27
  /**
28
28
  * Get platform by name
29
- * @param {string} name - Platform name (claude, gemini, codex)
29
+ * @param {string} name - Platform name (claude, gemini)
30
30
  * @param {string} baseDir - Optional base directory
31
31
  * @returns {Object|null} Platform object or null
32
32
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maccesar/aiskills",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "AI coding assistant skills for Claude Code, Gemini CLI, and Codex CLI",
5
5
  "type": "module",
6
6
  "bin": {