akili-specs 2.1.1 → 2.2.1
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/bin/akili.js +47 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,14 @@ The format is inspired by Keep a Changelog and the repository follows semantic v
|
|
|
10
10
|
|
|
11
11
|
- No unreleased changes yet.
|
|
12
12
|
|
|
13
|
+
## [2.2.1] - 2026-07-19
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- Updated `package.json` repository URLs to point to the new renamed GitHub repository `JuankCadavid/akili-specs`.
|
|
17
|
+
## [2.2.0] - 2026-07-19
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- **Legacy Cleanup:** The `akili install` and `akili update` commands now automatically detect and remove legacy `sdd-jc` files and directories (`commands/sdd-*.md` and the `sdd-jc/` template folder) to ensure a clean environment post-rebranding without duplicate slash commands.
|
|
13
21
|
## [2.1.1] - 2026-07-18
|
|
14
22
|
|
|
15
23
|
### Fixed
|
package/bin/akili.js
CHANGED
|
@@ -48,11 +48,13 @@ const TOOL_REGISTRY = {
|
|
|
48
48
|
commands: [path.join(rootPath, "commands")],
|
|
49
49
|
skills: path.join(rootPath, "skills"),
|
|
50
50
|
resources: path.join(rootPath, "akili"),
|
|
51
|
+
legacyResources: path.join(rootPath, "sdd-jc"),
|
|
51
52
|
}),
|
|
52
53
|
opencode: (rootPath) => ({
|
|
53
54
|
commands: [path.join(rootPath, "commands")],
|
|
54
55
|
skills: path.join(rootPath, "skills"),
|
|
55
56
|
resources: path.join(rootPath, "akili"),
|
|
57
|
+
legacyResources: path.join(rootPath, "sdd-jc"),
|
|
56
58
|
}),
|
|
57
59
|
antigravity: (rootPath) => ({
|
|
58
60
|
commands: [
|
|
@@ -62,6 +64,7 @@ const TOOL_REGISTRY = {
|
|
|
62
64
|
],
|
|
63
65
|
skills: path.join(rootPath, "config", "skills"),
|
|
64
66
|
resources: path.join(rootPath, "config", "akili"),
|
|
67
|
+
legacyResources: path.join(rootPath, "config", "sdd-jc"),
|
|
65
68
|
}),
|
|
66
69
|
};
|
|
67
70
|
|
|
@@ -280,6 +283,45 @@ function getToolRegistryInfo(tool, args) {
|
|
|
280
283
|
return { rootPath, paths: TOOL_REGISTRY[tool](rootPath) };
|
|
281
284
|
}
|
|
282
285
|
|
|
286
|
+
function cleanupLegacyFiles(tool, args) {
|
|
287
|
+
const { paths } = getToolRegistryInfo(tool, args);
|
|
288
|
+
let cleaned = 0;
|
|
289
|
+
|
|
290
|
+
if (shouldInclude("commands", args)) {
|
|
291
|
+
for (const cmdDir of paths.commands) {
|
|
292
|
+
if (fs.existsSync(cmdDir)) {
|
|
293
|
+
const files = fs.readdirSync(cmdDir);
|
|
294
|
+
for (const file of files) {
|
|
295
|
+
if (file.startsWith("sdd-") && file.endsWith(".md")) {
|
|
296
|
+
const filePath = path.join(cmdDir, file);
|
|
297
|
+
if (args.dryRun) {
|
|
298
|
+
console.log(` ${colors.red}would delete legacy file${colors.reset} ${filePath}`);
|
|
299
|
+
} else {
|
|
300
|
+
fs.rmSync(filePath, { force: true });
|
|
301
|
+
console.log(` ${colors.red}deleted legacy file${colors.reset} ${filePath}`);
|
|
302
|
+
}
|
|
303
|
+
cleaned++;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if (shouldInclude("resources", args)) {
|
|
311
|
+
if (paths.legacyResources && fs.existsSync(paths.legacyResources)) {
|
|
312
|
+
if (args.dryRun) {
|
|
313
|
+
console.log(` ${colors.red}would delete legacy directory${colors.reset} ${paths.legacyResources}`);
|
|
314
|
+
} else {
|
|
315
|
+
fs.rmSync(paths.legacyResources, { recursive: true, force: true });
|
|
316
|
+
console.log(` ${colors.red}deleted legacy directory${colors.reset} ${paths.legacyResources}`);
|
|
317
|
+
}
|
|
318
|
+
cleaned++;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
return cleaned;
|
|
323
|
+
}
|
|
324
|
+
|
|
283
325
|
function installTool(tool, args) {
|
|
284
326
|
const { rootPath, paths } = getToolRegistryInfo(tool, args);
|
|
285
327
|
|
|
@@ -288,6 +330,11 @@ function installTool(tool, args) {
|
|
|
288
330
|
|
|
289
331
|
console.log(`\n${colors.cyan}${tool.toUpperCase()} target: ${rootPath}${colors.reset}`);
|
|
290
332
|
|
|
333
|
+
const cleaned = cleanupLegacyFiles(tool, args);
|
|
334
|
+
if (cleaned > 0 && !args.dryRun) {
|
|
335
|
+
console.log(` ${colors.green}Legacy cleanup complete.${colors.reset}`);
|
|
336
|
+
}
|
|
337
|
+
|
|
291
338
|
if (shouldInclude("commands", args)) {
|
|
292
339
|
for (const targetCommands of paths.commands) {
|
|
293
340
|
const result = copyDirectoryContents(SOURCE_COMMANDS, targetCommands, args);
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "akili-specs",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Portable AKILI-SPECS methodology commands and skills for AI-assisted development.",
|
|
5
|
-
"homepage": "https://github.com/JuankCadavid/
|
|
5
|
+
"homepage": "https://github.com/JuankCadavid/akili-specs#readme",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/JuankCadavid/
|
|
8
|
+
"url": "git+https://github.com/JuankCadavid/akili-specs.git"
|
|
9
9
|
},
|
|
10
10
|
"bugs": {
|
|
11
|
-
"url": "https://github.com/JuankCadavid/
|
|
11
|
+
"url": "https://github.com/JuankCadavid/akili-specs/issues"
|
|
12
12
|
},
|
|
13
13
|
"bin": {
|
|
14
14
|
"akili": "bin/akili.js"
|