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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +8 -0
- package/bin/cli.js +40 -28
- package/lib/adapter-transforms.js +3 -3
- package/package.json +1 -1
- package/site/content.json +32 -8
- package/.cursor/commands/audit-project-agents.md +0 -454
- package/.cursor/commands/audit-project-github.md +0 -141
- package/.cursor/commands/audit-project.md +0 -330
- package/.cursor/commands/consult.md +0 -417
- package/.cursor/commands/debate.md +0 -381
- package/.cursor/commands/delivery-approval.md +0 -334
- package/.cursor/commands/deslop.md +0 -142
- package/.cursor/commands/drift-detect.md +0 -259
- package/.cursor/commands/enhance.md +0 -172
- package/.cursor/commands/learn.md +0 -165
- package/.cursor/commands/next-task.md +0 -519
- package/.cursor/commands/perf.md +0 -464
- package/.cursor/commands/repo-map.md +0 -124
- package/.cursor/commands/ship-ci-review-loop.md +0 -468
- package/.cursor/commands/ship-deployment.md +0 -348
- package/.cursor/commands/ship-error-handling.md +0 -265
- package/.cursor/commands/ship.md +0 -517
- package/.cursor/commands/sync-docs.md +0 -171
- package/.cursor/commands/web-ctl.md +0 -101
- package/.cursor/skills/consult/SKILL.md +0 -425
- package/.cursor/skills/debate/SKILL.md +0 -316
- package/.cursor/skills/deslop/SKILL.md +0 -204
- package/.cursor/skills/discover-tasks/SKILL.md +0 -297
- package/.cursor/skills/drift-analysis/SKILL.md +0 -324
- package/.cursor/skills/enhance-agent-prompts/SKILL.md +0 -277
- package/.cursor/skills/enhance-claude-memory/SKILL.md +0 -387
- package/.cursor/skills/enhance-cross-file/SKILL.md +0 -110
- package/.cursor/skills/enhance-docs/SKILL.md +0 -298
- package/.cursor/skills/enhance-hooks/SKILL.md +0 -554
- package/.cursor/skills/enhance-orchestrator/SKILL.md +0 -255
- package/.cursor/skills/enhance-plugins/SKILL.md +0 -319
- package/.cursor/skills/enhance-prompts/SKILL.md +0 -340
- package/.cursor/skills/enhance-skills/SKILL.md +0 -436
- package/.cursor/skills/learn/SKILL.md +0 -349
- package/.cursor/skills/orchestrate-review/SKILL.md +0 -260
- package/.cursor/skills/perf-analyzer/SKILL.md +0 -37
- package/.cursor/skills/perf-baseline-manager/SKILL.md +0 -30
- package/.cursor/skills/perf-benchmarker/SKILL.md +0 -52
- package/.cursor/skills/perf-code-paths/SKILL.md +0 -32
- package/.cursor/skills/perf-investigation-logger/SKILL.md +0 -41
- package/.cursor/skills/perf-profiler/SKILL.md +0 -42
- package/.cursor/skills/perf-theory-gatherer/SKILL.md +0 -35
- package/.cursor/skills/perf-theory-tester/SKILL.md +0 -36
- package/.cursor/skills/repo-mapping/SKILL.md +0 -83
- package/.cursor/skills/sync-docs/SKILL.md +0 -351
- package/.cursor/skills/validate-delivery/SKILL.md +0 -186
- package/.cursor/skills/web-auth/SKILL.md +0 -177
- package/.cursor/skills/web-browse/SKILL.md +0 -516
- package/.kiro/steering/audit-project-agents.md +0 -459
- package/.kiro/steering/audit-project-github.md +0 -146
- package/.kiro/steering/audit-project.md +0 -330
- package/.kiro/steering/consult.md +0 -422
- package/.kiro/steering/debate.md +0 -386
- package/.kiro/steering/delivery-approval.md +0 -339
- package/.kiro/steering/deslop.md +0 -149
- package/.kiro/steering/drift-detect.md +0 -264
- package/.kiro/steering/enhance.md +0 -177
- package/.kiro/steering/learn.md +0 -166
- package/.kiro/steering/next-task.md +0 -481
- package/.kiro/steering/perf.md +0 -469
- package/.kiro/steering/repo-map.md +0 -126
- package/.kiro/steering/ship-ci-review-loop.md +0 -473
- package/.kiro/steering/ship-deployment.md +0 -353
- package/.kiro/steering/ship-error-handling.md +0 -270
- package/.kiro/steering/ship.md +0 -522
- package/.kiro/steering/sync-docs.md +0 -178
- 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
|
+
"version": "5.3.5",
|
|
5
5
|
"owner": {
|
|
6
6
|
"name": "Avi Fenesh",
|
|
7
7
|
"url": "https://github.com/avifenesh"
|
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
|
|
950
|
-
|
|
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
|
|
1608
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
1610
1609
|
|
|
1611
|
-
//
|
|
1612
|
-
const
|
|
1613
|
-
const
|
|
1614
|
-
const
|
|
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(
|
|
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
|
|
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(
|
|
1712
|
+
fs.mkdirSync(promptsDir, { recursive: true });
|
|
1713
1713
|
fs.mkdirSync(agentsDir, { recursive: true });
|
|
1714
1714
|
|
|
1715
|
-
//
|
|
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
|
|
1718
|
-
for (const f of fs.readdirSync(
|
|
1719
|
-
if (
|
|
1720
|
-
fs.unlinkSync(path.join(
|
|
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
|
|
1791
|
+
// Install commands as prompts (invoked with @ in kiro-cli)
|
|
1780
1792
|
const steeringMappings = discovery.getKiroSteeringMappings(installDir);
|
|
1781
|
-
let
|
|
1782
|
-
for (const [
|
|
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(
|
|
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:
|
|
1806
|
+
name: promptName,
|
|
1795
1807
|
description
|
|
1796
1808
|
});
|
|
1797
|
-
fs.writeFileSync(path.join(
|
|
1798
|
-
|
|
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(`
|
|
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
|
|
1871
|
-
console.log(' - Kiro: Remove ~/.kiro/skills/, ~/.kiro/
|
|
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 (
|
|
2034
|
-
kiro - Kiro (
|
|
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
|
|
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/
|
|
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/
|
|
649
|
+
resources: ['file://.kiro/prompts/**/*.md'],
|
|
650
650
|
};
|
|
651
651
|
|
|
652
652
|
return JSON.stringify(agent, null, 2);
|
package/package.json
CHANGED
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.
|
|
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.
|
|
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,
|
|
46
|
+
"value": "3,709",
|
|
47
47
|
"label": "Tests",
|
|
48
48
|
"suffix": ""
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
"value": "
|
|
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": "
|
|
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
|
|
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": "
|
|
252
|
+
"state_dir": "~/.config/opencode/"
|
|
239
253
|
},
|
|
240
254
|
"codex": {
|
|
241
255
|
"name": "Codex CLI",
|
|
242
256
|
"prefix": "$",
|
|
243
|
-
"state_dir": "
|
|
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
|
},
|