aicoding-rules 0.3.0 → 0.3.2
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 +37 -1
- package/package.json +1 -1
- package/src/download.js +4 -1
- package/src/interactive.js +7 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# aicoding-rules
|
|
2
2
|
|
|
3
|
-
A CLI tool to download and install AI coding rules for various AI assistants.
|
|
3
|
+
A CLI tool to download and install AI coding rules and skills for various AI assistants.
|
|
4
4
|
|
|
5
5
|
## Supported Tools
|
|
6
6
|
|
|
@@ -58,6 +58,20 @@ Install all rules at once:
|
|
|
58
58
|
npx aicoding-rules all
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
### Skills
|
|
62
|
+
|
|
63
|
+
Install AI coding skills with interactive selection:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npx aicoding-rules skills
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Use `--replace` flag to remove and reinstall existing skill folders:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx aicoding-rules skills --replace
|
|
73
|
+
```
|
|
74
|
+
|
|
61
75
|
## Authentication
|
|
62
76
|
|
|
63
77
|
The tool uses Plus4U OIDC authentication. On first run, a browser window will open for you to log in. The authentication token is cached for the session.
|
|
@@ -93,3 +107,25 @@ Rules are extracted to the current working directory. Run the command from the r
|
|
|
93
107
|
|
|
94
108
|
- Node.js >= 18.0.0
|
|
95
109
|
- Plus4U account with access to the rules repository
|
|
110
|
+
|
|
111
|
+
## Changelog
|
|
112
|
+
|
|
113
|
+
### 0.3.0 (2026-01-29)
|
|
114
|
+
|
|
115
|
+
- Added `--replace` option for skills command to completely remove and reinstall existing skill folders before extracting
|
|
116
|
+
- Improved extraction logic to detect top-level folders in zip archives
|
|
117
|
+
|
|
118
|
+
### 0.2.0 (2026-01-27)
|
|
119
|
+
|
|
120
|
+
- Added skills support with interactive selection
|
|
121
|
+
- New `skills` command for downloading AI coding skills
|
|
122
|
+
- Skills can be installed to custom target directories
|
|
123
|
+
|
|
124
|
+
### 0.1.0 (2026-01-09)
|
|
125
|
+
|
|
126
|
+
- Initial release
|
|
127
|
+
- Support for Cursor, Claude, Antigravity, and Copilot rules
|
|
128
|
+
- Interactive mode with checkbox selection
|
|
129
|
+
- Direct commands for individual rule installation
|
|
130
|
+
- Plus4U OIDC authentication
|
|
131
|
+
- Custom configuration via `~/.aicoding-rules.json`
|
package/package.json
CHANGED
package/src/download.js
CHANGED
|
@@ -5,6 +5,9 @@ import { getAuthenticatedClient } from "./auth.js";
|
|
|
5
5
|
|
|
6
6
|
const OVERWRITE_FILES = true;
|
|
7
7
|
|
|
8
|
+
// Folders that should never be replaced by --replace option
|
|
9
|
+
const PROTECTED_FOLDERS = ["personal"];
|
|
10
|
+
|
|
8
11
|
function getZipTopLevelNames(zip) {
|
|
9
12
|
const entries = zip.getEntries();
|
|
10
13
|
const topLevel = new Set();
|
|
@@ -13,7 +16,7 @@ function getZipTopLevelNames(zip) {
|
|
|
13
16
|
if (!name) continue;
|
|
14
17
|
|
|
15
18
|
const firstSegment = name.split("/")[0];
|
|
16
|
-
if (firstSegment && firstSegment !== ".") {
|
|
19
|
+
if (firstSegment && firstSegment !== "." && !PROTECTED_FOLDERS.includes(firstSegment)) {
|
|
17
20
|
topLevel.add(firstSegment);
|
|
18
21
|
}
|
|
19
22
|
}
|
package/src/interactive.js
CHANGED
|
@@ -71,8 +71,10 @@ export async function selectSkillsLocation() {
|
|
|
71
71
|
choices: [
|
|
72
72
|
{ name: "~/.claude/skills (Claude global skills)", value: "claude-global" },
|
|
73
73
|
{ name: "~/.cursor/skills (Cursor global skills)", value: "cursor-global" },
|
|
74
|
+
{ name: "~/.codex/skills (Codex global skills)", value: "codex-global" },
|
|
74
75
|
{ name: "Current directory - .claude/skills", value: "claude-local" },
|
|
75
|
-
{ name: "Current directory - .cursor/skills", value: "cursor-local" }
|
|
76
|
+
{ name: "Current directory - .cursor/skills", value: "cursor-local" },
|
|
77
|
+
{ name: "Current directory - .codex/skills", value: "codex-local" }
|
|
76
78
|
]
|
|
77
79
|
}
|
|
78
80
|
]);
|
|
@@ -89,10 +91,14 @@ function resolveSkillsPath(location) {
|
|
|
89
91
|
return join(home, ".claude", "skills");
|
|
90
92
|
case "cursor-global":
|
|
91
93
|
return join(home, ".cursor", "skills");
|
|
94
|
+
case "codex-global":
|
|
95
|
+
return join(home, ".codex", "skills");
|
|
92
96
|
case "claude-local":
|
|
93
97
|
return join(cwd, ".claude", "skills");
|
|
94
98
|
case "cursor-local":
|
|
95
99
|
return join(cwd, ".cursor", "skills");
|
|
100
|
+
case "codex-local":
|
|
101
|
+
return join(cwd, ".codex", "skills");
|
|
96
102
|
default:
|
|
97
103
|
return cwd;
|
|
98
104
|
}
|