agentsys 5.3.4 → 5.3.5

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.
Files changed (74) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +8 -0
  4. package/bin/cli.js +40 -28
  5. package/lib/adapter-transforms.js +3 -3
  6. package/package.json +1 -1
  7. package/site/content.json +32 -8
  8. package/.cursor/commands/audit-project-agents.md +0 -454
  9. package/.cursor/commands/audit-project-github.md +0 -141
  10. package/.cursor/commands/audit-project.md +0 -330
  11. package/.cursor/commands/consult.md +0 -417
  12. package/.cursor/commands/debate.md +0 -381
  13. package/.cursor/commands/delivery-approval.md +0 -334
  14. package/.cursor/commands/deslop.md +0 -142
  15. package/.cursor/commands/drift-detect.md +0 -259
  16. package/.cursor/commands/enhance.md +0 -172
  17. package/.cursor/commands/learn.md +0 -165
  18. package/.cursor/commands/next-task.md +0 -519
  19. package/.cursor/commands/perf.md +0 -464
  20. package/.cursor/commands/repo-map.md +0 -124
  21. package/.cursor/commands/ship-ci-review-loop.md +0 -468
  22. package/.cursor/commands/ship-deployment.md +0 -348
  23. package/.cursor/commands/ship-error-handling.md +0 -265
  24. package/.cursor/commands/ship.md +0 -517
  25. package/.cursor/commands/sync-docs.md +0 -171
  26. package/.cursor/commands/web-ctl.md +0 -101
  27. package/.cursor/skills/consult/SKILL.md +0 -425
  28. package/.cursor/skills/debate/SKILL.md +0 -316
  29. package/.cursor/skills/deslop/SKILL.md +0 -204
  30. package/.cursor/skills/discover-tasks/SKILL.md +0 -297
  31. package/.cursor/skills/drift-analysis/SKILL.md +0 -324
  32. package/.cursor/skills/enhance-agent-prompts/SKILL.md +0 -277
  33. package/.cursor/skills/enhance-claude-memory/SKILL.md +0 -387
  34. package/.cursor/skills/enhance-cross-file/SKILL.md +0 -110
  35. package/.cursor/skills/enhance-docs/SKILL.md +0 -298
  36. package/.cursor/skills/enhance-hooks/SKILL.md +0 -554
  37. package/.cursor/skills/enhance-orchestrator/SKILL.md +0 -255
  38. package/.cursor/skills/enhance-plugins/SKILL.md +0 -319
  39. package/.cursor/skills/enhance-prompts/SKILL.md +0 -340
  40. package/.cursor/skills/enhance-skills/SKILL.md +0 -436
  41. package/.cursor/skills/learn/SKILL.md +0 -349
  42. package/.cursor/skills/orchestrate-review/SKILL.md +0 -260
  43. package/.cursor/skills/perf-analyzer/SKILL.md +0 -37
  44. package/.cursor/skills/perf-baseline-manager/SKILL.md +0 -30
  45. package/.cursor/skills/perf-benchmarker/SKILL.md +0 -52
  46. package/.cursor/skills/perf-code-paths/SKILL.md +0 -32
  47. package/.cursor/skills/perf-investigation-logger/SKILL.md +0 -41
  48. package/.cursor/skills/perf-profiler/SKILL.md +0 -42
  49. package/.cursor/skills/perf-theory-gatherer/SKILL.md +0 -35
  50. package/.cursor/skills/perf-theory-tester/SKILL.md +0 -36
  51. package/.cursor/skills/repo-mapping/SKILL.md +0 -83
  52. package/.cursor/skills/sync-docs/SKILL.md +0 -351
  53. package/.cursor/skills/validate-delivery/SKILL.md +0 -186
  54. package/.cursor/skills/web-auth/SKILL.md +0 -177
  55. package/.cursor/skills/web-browse/SKILL.md +0 -516
  56. package/.kiro/steering/audit-project-agents.md +0 -459
  57. package/.kiro/steering/audit-project-github.md +0 -146
  58. package/.kiro/steering/audit-project.md +0 -330
  59. package/.kiro/steering/consult.md +0 -422
  60. package/.kiro/steering/debate.md +0 -386
  61. package/.kiro/steering/delivery-approval.md +0 -339
  62. package/.kiro/steering/deslop.md +0 -149
  63. package/.kiro/steering/drift-detect.md +0 -264
  64. package/.kiro/steering/enhance.md +0 -177
  65. package/.kiro/steering/learn.md +0 -166
  66. package/.kiro/steering/next-task.md +0 -481
  67. package/.kiro/steering/perf.md +0 -469
  68. package/.kiro/steering/repo-map.md +0 -126
  69. package/.kiro/steering/ship-ci-review-loop.md +0 -473
  70. package/.kiro/steering/ship-deployment.md +0 -353
  71. package/.kiro/steering/ship-error-handling.md +0 -270
  72. package/.kiro/steering/ship.md +0 -522
  73. package/.kiro/steering/sync-docs.md +0 -178
  74. package/.kiro/steering/web-ctl.md +0 -106
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentsys",
3
3
  "description": "14 specialized plugins for AI workflow automation - task orchestration, PR workflow, slop detection, code review, drift detection, enhancement analysis, documentation sync, repo mapping, perf investigations, topic research, agent config linting, cross-tool AI consultation, and structured AI debate",
4
- "version": "5.3.4",
4
+ "version": "5.3.5",
5
5
  "owner": {
6
6
  "name": "Avi Fenesh",
7
7
  "url": "https://github.com/avifenesh"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentsys",
3
- "version": "5.3.4",
3
+ "version": "5.3.5",
4
4
  "description": "Professional-grade slash commands for Claude Code with cross-platform support",
5
5
  "keywords": [
6
6
  "workflow",
package/CHANGELOG.md CHANGED
@@ -7,6 +7,14 @@ All notable changes to this project will be documented in this file.
7
7
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
8
8
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
9
 
10
+ ## [5.3.5] - 2026-03-02
11
+
12
+ ### Fixed
13
+
14
+ - **Kiro commands install to ~/.kiro/prompts/** - Commands now install as prompts (invoked with `@name` in kiro-cli) instead of steering files. Legacy `~/.kiro/steering/` auto-cleaned on install.
15
+ - **Cursor installs globally to ~/.cursor/** - Previously project-scoped (`cwd/.cursor/`). Now global like all other platforms.
16
+ - **Agent resources updated** - Kiro agents reference `file://.kiro/prompts/**/*.md`.
17
+
10
18
  ## [5.3.4] - 2026-03-02
11
19
 
12
20
  ### Fixed
package/bin/cli.js CHANGED
@@ -946,9 +946,8 @@ function detectInstalledPlatforms() {
946
946
  const opencodeDir = getOpenCodeConfigDir();
947
947
  if (fs.existsSync(opencodeDir)) platforms.push('opencode');
948
948
  if (fs.existsSync(path.join(home, '.codex'))) platforms.push('codex');
949
- // Cursor rules are project-scoped; detect only if Cursor rules/commands/skills exist in CWD
950
- const cursorDir = path.join(process.cwd(), '.cursor');
951
- if (fs.existsSync(path.join(cursorDir, 'rules')) || fs.existsSync(path.join(cursorDir, 'commands')) || fs.existsSync(path.join(cursorDir, 'skills'))) platforms.push('cursor');
949
+ // Cursor: detect global ~/.cursor/ or project .cursor/
950
+ if (fs.existsSync(path.join(home, '.cursor')) || fs.existsSync(path.join(process.cwd(), '.cursor'))) platforms.push('cursor');
952
951
  // Kiro: detect global ~/.kiro/ or project .kiro/
953
952
  if (fs.existsSync(path.join(home, '.kiro')) || fs.existsSync(path.join(process.cwd(), '.kiro'))) platforms.push('kiro');
954
953
  return platforms;
@@ -1606,12 +1605,13 @@ function installForCodex(installDir, options = {}) {
1606
1605
  function installForCursor(installDir, options = {}) {
1607
1606
  console.log('\n[INSTALL] Installing for Cursor...\n');
1608
1607
  const { filter = null } = options;
1609
- const cwd = process.cwd();
1608
+ const home = process.env.HOME || process.env.USERPROFILE;
1610
1609
 
1611
- // Create target directories (all project-scoped)
1612
- const skillsDir = path.join(cwd, '.cursor', 'skills');
1613
- const commandsDir = path.join(cwd, '.cursor', 'commands');
1614
- const rulesDir = path.join(cwd, '.cursor', 'rules');
1610
+ // Install globally to ~/.cursor/ (same as other platforms)
1611
+ const cursorHome = path.join(home, '.cursor');
1612
+ const skillsDir = path.join(cursorHome, 'skills');
1613
+ const commandsDir = path.join(cursorHome, 'commands');
1614
+ const rulesDir = path.join(cursorHome, 'rules');
1615
1615
  fs.mkdirSync(skillsDir, { recursive: true });
1616
1616
  fs.mkdirSync(commandsDir, { recursive: true });
1617
1617
  fs.mkdirSync(rulesDir, { recursive: true });
@@ -1694,7 +1694,7 @@ function installForCursor(installDir, options = {}) {
1694
1694
  console.log(`\n[OK] Cursor installation complete!`);
1695
1695
  console.log(` Skills: ${skillCount} installed to ${skillsDir}`);
1696
1696
  console.log(` Commands: ${cmdCount} installed to ${commandsDir}`);
1697
- console.log(' All content is project-scoped and auto-loaded by Cursor.\n');
1697
+ console.log(` Global install: ${cursorHome}\n`);
1698
1698
  return true;
1699
1699
  }
1700
1700
 
@@ -1706,18 +1706,30 @@ function installForKiro(installDir, options = {}) {
1706
1706
  const home = process.env.HOME || process.env.USERPROFILE;
1707
1707
  const kiroHome = path.join(home, '.kiro');
1708
1708
  const skillsDir = path.join(kiroHome, 'skills');
1709
- const steeringDir = path.join(kiroHome, 'steering');
1709
+ const promptsDir = path.join(kiroHome, 'prompts');
1710
1710
  const agentsDir = path.join(kiroHome, 'agents');
1711
1711
  fs.mkdirSync(skillsDir, { recursive: true });
1712
- fs.mkdirSync(steeringDir, { recursive: true });
1712
+ fs.mkdirSync(promptsDir, { recursive: true });
1713
1713
  fs.mkdirSync(agentsDir, { recursive: true });
1714
1714
 
1715
- // Cleanup old agentsys steering files (only those matching known commands)
1715
+ // Clean up legacy agentsys files from steering dir (renamed to prompts).
1716
+ // Only remove files matching known plugin commands - preserve user steering files.
1717
+ const legacySteeringDir = path.join(kiroHome, 'steering');
1718
+ if (fs.existsSync(legacySteeringDir)) {
1719
+ const knownLegacy = new Set(steeringMappingsForCleanup.map(([name]) => `${name}.md`));
1720
+ for (const f of fs.readdirSync(legacySteeringDir).filter(f => f.endsWith('.md'))) {
1721
+ if (knownLegacy.has(f)) {
1722
+ fs.unlinkSync(path.join(legacySteeringDir, f));
1723
+ }
1724
+ }
1725
+ }
1726
+
1727
+ // Cleanup old agentsys prompt files (only those matching known commands)
1716
1728
  const steeringMappingsForCleanup = discovery.getKiroSteeringMappings(installDir);
1717
- const knownSteeringFiles = new Set(steeringMappingsForCleanup.map(([name]) => `${name}.md`));
1718
- for (const f of fs.readdirSync(steeringDir).filter(f => f.endsWith('.md'))) {
1719
- if (knownSteeringFiles.has(f)) {
1720
- fs.unlinkSync(path.join(steeringDir, f));
1729
+ const knownPromptFiles = new Set(steeringMappingsForCleanup.map(([name]) => `${name}.md`));
1730
+ for (const f of fs.readdirSync(promptsDir).filter(f => f.endsWith('.md'))) {
1731
+ if (knownPromptFiles.has(f)) {
1732
+ fs.unlinkSync(path.join(promptsDir, f));
1721
1733
  }
1722
1734
  }
1723
1735
 
@@ -1776,12 +1788,12 @@ function installForKiro(installDir, options = {}) {
1776
1788
  }
1777
1789
  }
1778
1790
 
1779
- // Install commands as steering files
1791
+ // Install commands as prompts (invoked with @ in kiro-cli)
1780
1792
  const steeringMappings = discovery.getKiroSteeringMappings(installDir);
1781
- let steeringCount = 0;
1782
- for (const [steeringName, plugin, sourceFile, description] of steeringMappings) {
1793
+ let promptCount = 0;
1794
+ for (const [promptName, plugin, sourceFile, description] of steeringMappings) {
1783
1795
  if (filter && filter.commands && filter.commands.length > 0) {
1784
- if (!filter.commands.includes(steeringName)) continue;
1796
+ if (!filter.commands.includes(promptName)) continue;
1785
1797
  }
1786
1798
  const srcPath = path.join(installDir, 'plugins', plugin, 'commands', sourceFile);
1787
1799
  if (!fs.existsSync(srcPath)) {
@@ -1791,11 +1803,11 @@ function installForKiro(installDir, options = {}) {
1791
1803
  let content = fs.readFileSync(srcPath, 'utf8');
1792
1804
  content = transforms.transformCommandForKiro(content, {
1793
1805
  pluginInstallPath: path.join(installDir, 'plugins', plugin),
1794
- name: steeringName,
1806
+ name: promptName,
1795
1807
  description
1796
1808
  });
1797
- fs.writeFileSync(path.join(steeringDir, `${steeringName}.md`), content);
1798
- steeringCount++;
1809
+ fs.writeFileSync(path.join(promptsDir, `${promptName}.md`), content);
1810
+ promptCount++;
1799
1811
  }
1800
1812
 
1801
1813
  // Install agents as JSON files
@@ -1845,7 +1857,7 @@ function installForKiro(installDir, options = {}) {
1845
1857
 
1846
1858
  console.log(`\n[OK] Kiro installation complete!`);
1847
1859
  console.log(` Skills: ${skillCount} installed to ${skillsDir}`);
1848
- console.log(` Steering: ${steeringCount} installed to ${steeringDir}`);
1860
+ console.log(` Prompts: ${promptCount} installed to ${promptsDir} (invoke with @name in kiro-cli)`);
1849
1861
  console.log(` Agents: ${agentCount} installed to ${agentsDir} (includes 2 combined reviewers)`);
1850
1862
  console.log(` Global install: ${kiroHome}\n`);
1851
1863
  return true;
@@ -1867,8 +1879,8 @@ function removeInstallation() {
1867
1879
  console.log(' - Claude: /plugin marketplace remove agentsys');
1868
1880
  console.log(' - OpenCode: Remove files under ~/.config/opencode/ (commands/*.md, agents/*.md, skills/*/SKILL.md) and ~/.config/opencode/plugins/agentsys.ts');
1869
1881
  console.log(' - Codex: Remove ~/.codex/skills/*/');
1870
- console.log(' - Cursor: Remove .cursor/skills/, .cursor/commands/, and .cursor/rules/agentsys-*.mdc from your project');
1871
- console.log(' - Kiro: Remove ~/.kiro/skills/, ~/.kiro/steering/, and ~/.kiro/agents/');
1882
+ console.log(' - Cursor: Remove ~/.cursor/skills/, ~/.cursor/commands/, and ~/.cursor/rules/agentsys-*.mdc');
1883
+ console.log(' - Kiro: Remove ~/.kiro/skills/, ~/.kiro/prompts/, and ~/.kiro/agents/');
1872
1884
  }
1873
1885
 
1874
1886
  function printSubcommandHelp(subcommand) {
@@ -2030,8 +2042,8 @@ Supported Platforms:
2030
2042
  claude - Claude Code (marketplace install or development mode)
2031
2043
  opencode - OpenCode (local commands + native plugin)
2032
2044
  codex - Codex CLI (local skills)
2033
- cursor - Cursor (project-scoped skills + commands)
2034
- kiro - Kiro (project-scoped steering + skills + agents)
2045
+ cursor - Cursor (global ~/.cursor/ skills + commands)
2046
+ kiro - Kiro (global ~/.kiro/ prompts + skills + agents)
2035
2047
 
2036
2048
  Install: npm install -g agentsys && agentsys
2037
2049
  Update: npm update -g agentsys && agentsys
@@ -454,7 +454,7 @@ function transformSkillForKiro(content, options) {
454
454
  }
455
455
 
456
456
  /**
457
- * Transform command content for Kiro steering files.
457
+ * Transform command content for Kiro prompt files.
458
458
  *
459
459
  * Strips existing frontmatter, prepends inclusion: manual frontmatter,
460
460
  * replaces PLUGIN_ROOT paths, removes require()/Task() calls, strips namespaces.
@@ -622,7 +622,7 @@ function transformAgentForKiro(content, options) {
622
622
  agent.tools = ['read'];
623
623
  }
624
624
 
625
- agent.resources = ['file://.kiro/steering/**/*.md'];
625
+ agent.resources = ['file://.kiro/prompts/**/*.md'];
626
626
 
627
627
  return JSON.stringify(agent, null, 2);
628
628
  }
@@ -646,7 +646,7 @@ function generateCombinedReviewerAgent(roles, name, description) {
646
646
  description,
647
647
  prompt: `You are a combined code reviewer covering multiple review passes in a single session.\n\n${sections}\n\nFor each file you review, check ALL of the above review dimensions. Return findings as a JSON array with objects containing: pass (which review), file, line, severity (critical/high/medium/low), description, suggestion.`,
648
648
  tools: ['read'],
649
- resources: ['file://.kiro/steering/**/*.md'],
649
+ resources: ['file://.kiro/prompts/**/*.md'],
650
650
  };
651
651
 
652
652
  return JSON.stringify(agent, null, 2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentsys",
3
- "version": "5.3.4",
3
+ "version": "5.3.5",
4
4
  "description": "A modular runtime and orchestration system for AI agents - works with Claude Code, OpenCode, and Codex CLI",
5
5
  "main": "lib/platform/detect-platform.js",
6
6
  "type": "commonjs",
package/site/content.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "agentsys",
4
- "description": "A modular runtime and orchestration system for AI agents. 12 plugins, 41 agents, 27 skills — structured pipelines for Claude Code, OpenCode, and Codex CLI.",
4
+ "description": "A modular runtime and orchestration system for AI agents. 14 plugins, 43 agents, 30 skills — structured pipelines for Claude Code, OpenCode, Codex CLI, Cursor, and Kiro.",
5
5
  "url": "https://agent-sh.github.io/agentsys",
6
6
  "repo": "https://github.com/agent-sh/agentsys",
7
7
  "npm": "https://www.npmjs.com/package/agentsys",
8
- "version": "5.3.4",
8
+ "version": "5.3.5",
9
9
  "author": "Avi Fenesh",
10
10
  "author_url": "https://github.com/avifenesh"
11
11
  },
@@ -43,12 +43,12 @@
43
43
  "suffix": ""
44
44
  },
45
45
  {
46
- "value": "3,357",
46
+ "value": "3,709",
47
47
  "label": "Tests",
48
48
  "suffix": ""
49
49
  },
50
50
  {
51
- "value": "3",
51
+ "value": "5",
52
52
  "label": "Platforms",
53
53
  "suffix": ""
54
54
  }
@@ -98,7 +98,7 @@
98
98
  {
99
99
  "name": "/agnix",
100
100
  "tagline": "Lint agent configs before they break",
101
- "description": "155 validation rules (57 auto-fixable) for Skills, Memory, Hooks, MCP, and Plugins across 10+ AI tools including Claude Code, Cursor, GitHub Copilot, Codex CLI, OpenCode, and Gemini CLI. SARIF output for GitHub Code Scanning.",
101
+ "description": "230+ validation rules (57 auto-fixable) for Skills, Memory, Hooks, MCP, and Plugins across 10+ AI tools including Claude Code, Cursor, Kiro, GitHub Copilot, Codex CLI, OpenCode, and Gemini CLI. SARIF output for GitHub Code Scanning.",
102
102
  "example": "/agnix --fix",
103
103
  "category": "linting"
104
104
  },
@@ -168,9 +168,23 @@
168
168
  {
169
169
  "name": "/consult",
170
170
  "tagline": "Get a second opinion from another AI tool",
171
- "description": "Cross-tool AI consultation. Ask Gemini, Codex, Claude, OpenCode, or Copilot for a second opinion on any question. Supports session continuations, context injection, and configurable thinking effort.",
171
+ "description": "Cross-tool AI consultation via ACP (Agent Client Protocol). Ask Gemini, Codex, Claude, OpenCode, Copilot, or Kiro for a second opinion. Supports ACP and CLI transports, session continuations, context injection, and user-extensible provider registry.",
172
172
  "example": "/consult \"Is this the right approach?\" --tool=gemini --effort=high",
173
173
  "category": "analysis"
174
+ },
175
+ {
176
+ "name": "/debate",
177
+ "tagline": "Structured adversarial debate between AI tools",
178
+ "description": "Multi-round structured debates between any two AI tools as proposer and challenger. Evidence-backed arguments, mandatory counterpoints, and a verdict from the orchestrator. Supports ACP transport for Kiro participation.",
179
+ "example": "/debate claude vs kiro about microservices vs monolith",
180
+ "category": "analysis"
181
+ },
182
+ {
183
+ "name": "/web-ctl",
184
+ "tagline": "Browser automation for AI agents",
185
+ "description": "Navigate, authenticate, and interact with web pages via headless Playwright. Persistent encrypted sessions, human-in-the-loop auth handoff with CAPTCHA detection, and anti-bot measures.",
186
+ "example": "/web-ctl browse https://example.com",
187
+ "category": "maintenance"
174
188
  }
175
189
  ],
176
190
  "philosophy": [
@@ -235,12 +249,22 @@
235
249
  "opencode": {
236
250
  "name": "OpenCode",
237
251
  "prefix": "/",
238
- "state_dir": ".opencode/"
252
+ "state_dir": "~/.config/opencode/"
239
253
  },
240
254
  "codex": {
241
255
  "name": "Codex CLI",
242
256
  "prefix": "$",
243
- "state_dir": ".codex/"
257
+ "state_dir": "~/.codex/"
258
+ },
259
+ "cursor": {
260
+ "name": "Cursor",
261
+ "prefix": "/",
262
+ "state_dir": ".cursor/"
263
+ },
264
+ "kiro": {
265
+ "name": "Kiro",
266
+ "prefix": "steering",
267
+ "state_dir": "~/.kiro/"
244
268
  }
245
269
  }
246
270
  },