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 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.1.1",
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/sdd-jc-methodology#readme",
5
+ "homepage": "https://github.com/JuankCadavid/akili-specs#readme",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/JuankCadavid/sdd-jc-methodology.git"
8
+ "url": "git+https://github.com/JuankCadavid/akili-specs.git"
9
9
  },
10
10
  "bugs": {
11
- "url": "https://github.com/JuankCadavid/sdd-jc-methodology/issues"
11
+ "url": "https://github.com/JuankCadavid/akili-specs/issues"
12
12
  },
13
13
  "bin": {
14
14
  "akili": "bin/akili.js"