agentsys 5.5.0 → 5.7.0
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 +6 -17
- package/.claude-plugin/plugin.json +1 -1
- package/.kiro/agents/exploration-agent.json +1 -1
- package/.kiro/agents/implementation-agent.json +1 -1
- package/.kiro/agents/map-validator.json +2 -2
- package/.kiro/agents/perf-orchestrator.json +1 -1
- package/.kiro/agents/planning-agent.json +1 -1
- package/.kiro/skills/perf-code-paths/SKILL.md +1 -1
- package/.kiro/skills/perf-theory-gatherer/SKILL.md +1 -1
- package/.kiro/skills/repo-intel/SKILL.md +63 -0
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +31 -0
- package/README.md +95 -68
- package/lib/binary/version.js +1 -1
- package/lib/repo-map/converter.js +130 -0
- package/lib/repo-map/index.js +117 -74
- package/lib/repo-map/installer.js +38 -172
- package/lib/repo-map/updater.js +16 -474
- package/meta/skills/maintain-cross-platform/SKILL.md +5 -5
- package/package.json +3 -3
- package/scripts/fix-graduated-repos.js +2 -2
- package/scripts/generate-docs.js +39 -20
- package/scripts/graduate-plugin.js +1 -1
- package/scripts/preflight.js +4 -4
- package/scripts/validate-counts.js +1 -1
- package/scripts/validate-cross-platform-docs.js +2 -2
- package/site/content.json +76 -58
- package/site/index.html +44 -12
- package/site/ux-spec.md +1 -1
- package/.kiro/skills/repo-mapping/SKILL.md +0 -83
- package/lib/repo-map/concurrency.js +0 -29
- package/lib/repo-map/queries/go.js +0 -27
- package/lib/repo-map/queries/index.js +0 -100
- package/lib/repo-map/queries/java.js +0 -38
- package/lib/repo-map/queries/javascript.js +0 -55
- package/lib/repo-map/queries/python.js +0 -24
- package/lib/repo-map/queries/rust.js +0 -73
- package/lib/repo-map/queries/typescript.js +0 -38
- package/lib/repo-map/runner.js +0 -1364
- package/lib/repo-map/usage-analyzer.js +0 -407
package/scripts/generate-docs.js
CHANGED
|
@@ -52,7 +52,7 @@ const CATEGORY_MAP = {
|
|
|
52
52
|
'deslop': 'Cleanup',
|
|
53
53
|
'sync-docs': 'Cleanup',
|
|
54
54
|
'drift-detect': 'Analysis',
|
|
55
|
-
'repo-
|
|
55
|
+
'repo-intel': 'Analysis',
|
|
56
56
|
'learn': 'AI Collaboration',
|
|
57
57
|
'agnix': 'Linting',
|
|
58
58
|
'consult': 'AI Collaboration',
|
|
@@ -60,10 +60,10 @@ const CATEGORY_MAP = {
|
|
|
60
60
|
'skillers': 'AI Collaboration',
|
|
61
61
|
'web-ctl': 'Web',
|
|
62
62
|
'ship': 'Release',
|
|
63
|
-
'git-map': 'Analysis',
|
|
64
63
|
'onboard': 'Onboarding',
|
|
65
64
|
'can-i-help': 'Onboarding',
|
|
66
|
-
'audit-project': 'Code Review'
|
|
65
|
+
'audit-project': 'Code Review',
|
|
66
|
+
'glidemq': 'Message Queues'
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
// Static skill definitions for cross-repo plugins (not discoverable locally)
|
|
@@ -91,7 +91,7 @@ const STATIC_SKILLS = [
|
|
|
91
91
|
{ plugin: 'deslop', name: 'deslop' },
|
|
92
92
|
{ plugin: 'sync-docs', name: 'sync-docs' },
|
|
93
93
|
{ plugin: 'drift-detect', name: 'drift-analysis' },
|
|
94
|
-
{ plugin: 'repo-
|
|
94
|
+
{ plugin: 'repo-intel', name: 'repo-intel' },
|
|
95
95
|
{ plugin: 'consult', name: 'consult' },
|
|
96
96
|
{ plugin: 'debate', name: 'debate' },
|
|
97
97
|
{ plugin: 'learn', name: 'learn' },
|
|
@@ -100,10 +100,12 @@ const STATIC_SKILLS = [
|
|
|
100
100
|
{ plugin: 'ship', name: 'release' },
|
|
101
101
|
{ plugin: 'skillers', name: 'skillers-compact' },
|
|
102
102
|
{ plugin: 'skillers', name: 'recommend' },
|
|
103
|
-
{ plugin: 'git-map', name: 'git-mapping' },
|
|
104
103
|
{ plugin: 'onboard', name: 'onboard' },
|
|
105
104
|
{ plugin: 'can-i-help', name: 'can-i-help' },
|
|
106
|
-
{ plugin: 'audit-project', name: 'audit-project' }
|
|
105
|
+
{ plugin: 'audit-project', name: 'audit-project' },
|
|
106
|
+
{ plugin: 'glidemq', name: 'glide-mq' },
|
|
107
|
+
{ plugin: 'glidemq', name: 'glide-mq-migrate-bullmq' },
|
|
108
|
+
{ plugin: 'glidemq', name: 'glide-mq-migrate-bee' }
|
|
107
109
|
];
|
|
108
110
|
|
|
109
111
|
// Purpose mapping for architecture table
|
|
@@ -115,7 +117,7 @@ const PURPOSE_MAP = {
|
|
|
115
117
|
'audit-project': 'Multi-agent code review',
|
|
116
118
|
'deslop': 'AI slop cleanup',
|
|
117
119
|
'drift-detect': 'Plan drift detection',
|
|
118
|
-
'repo-
|
|
120
|
+
'repo-intel': 'Unified static analysis',
|
|
119
121
|
'sync-docs': 'Documentation sync',
|
|
120
122
|
'learn': 'Topic research and learning guides',
|
|
121
123
|
'agnix': 'Agent config linting',
|
|
@@ -123,7 +125,6 @@ const PURPOSE_MAP = {
|
|
|
123
125
|
'debate': 'Multi-perspective debate analysis',
|
|
124
126
|
'web-ctl': 'Browser automation for AI agents',
|
|
125
127
|
'skillers': 'Workflow pattern learning',
|
|
126
|
-
'git-map': 'Git history analysis',
|
|
127
128
|
'onboard': 'Codebase onboarding',
|
|
128
129
|
'can-i-help': 'Contributor guidance'
|
|
129
130
|
};
|
|
@@ -174,9 +175,9 @@ function generateCommandsTable(commands) {
|
|
|
174
175
|
const COMMAND_ORDER = [
|
|
175
176
|
'next-task', 'agnix', 'ship', 'deslop', 'perf',
|
|
176
177
|
'drift-detect', 'audit-project', 'enhance',
|
|
177
|
-
'repo-
|
|
178
|
+
'repo-intel', 'sync-docs', 'learn', 'consult',
|
|
178
179
|
'debate', 'web-ctl', 'release', 'skillers',
|
|
179
|
-
'
|
|
180
|
+
'onboard', 'can-i-help'
|
|
180
181
|
];
|
|
181
182
|
|
|
182
183
|
// Command descriptions for the table (short, human-written summaries)
|
|
@@ -189,7 +190,7 @@ function generateCommandsTable(commands) {
|
|
|
189
190
|
'drift-detect': 'Compare plan vs implementation',
|
|
190
191
|
'audit-project': 'Multi-agent iterative code review',
|
|
191
192
|
'enhance': 'Plugin, agent, and prompt analyzers',
|
|
192
|
-
'repo-
|
|
193
|
+
'repo-intel': 'Unified static analysis - git history, AST symbols, project metadata',
|
|
193
194
|
'sync-docs': 'Sync documentation with code changes',
|
|
194
195
|
'learn': 'Research topics, create learning guides',
|
|
195
196
|
'consult': 'Cross-tool AI consultation',
|
|
@@ -197,7 +198,6 @@ function generateCommandsTable(commands) {
|
|
|
197
198
|
'web-ctl': 'Browser automation for AI agents',
|
|
198
199
|
'release': 'Versioned release with ecosystem detection',
|
|
199
200
|
'skillers': 'Workflow pattern learning and automation',
|
|
200
|
-
'git-map': 'Git history analysis: hotspots, coupling, ownership, bus factor',
|
|
201
201
|
'onboard': 'Codebase orientation for newcomers',
|
|
202
202
|
'can-i-help': 'Match contributor skills to project needs'
|
|
203
203
|
};
|
|
@@ -255,7 +255,7 @@ function generateSkillsTable(skills) {
|
|
|
255
255
|
|
|
256
256
|
// Defined category order
|
|
257
257
|
const categoryOrder = [
|
|
258
|
-
'Workflow', 'Enhancement', 'Performance', 'Cleanup',
|
|
258
|
+
'Workflow', 'Message Queues', 'Enhancement', 'Performance', 'Cleanup',
|
|
259
259
|
'Code Review', 'AI Collaboration', 'Onboarding',
|
|
260
260
|
'Web', 'Release', 'Analysis', 'Linting', 'Other'
|
|
261
261
|
];
|
|
@@ -386,26 +386,43 @@ function generateAgentCounts(agents, plugins) {
|
|
|
386
386
|
/**
|
|
387
387
|
* Update counts in site/content.json programmatically.
|
|
388
388
|
*/
|
|
389
|
+
// Static counts for cross-repo plugins not discoverable locally
|
|
390
|
+
const STATIC_PLUGIN_COUNT = 19;
|
|
391
|
+
const STATIC_AGENT_COUNT = 47;
|
|
392
|
+
|
|
389
393
|
function updateSiteContent(plugins, agents, skills) {
|
|
390
394
|
const contentPath = path.join(ROOT_DIR, 'site', 'content.json');
|
|
391
395
|
if (!fs.existsSync(contentPath)) return null;
|
|
392
396
|
|
|
393
397
|
const content = JSON.parse(fs.readFileSync(contentPath, 'utf8'));
|
|
394
|
-
|
|
398
|
+
|
|
399
|
+
// Sync meta.version from package.json
|
|
400
|
+
const pkgPath = path.join(ROOT_DIR, 'package.json');
|
|
401
|
+
if (fs.existsSync(pkgPath)) {
|
|
402
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
403
|
+
if (content.meta && pkg.version) {
|
|
404
|
+
content.meta.version = pkg.version;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Use static counts as fallback (cross-repo plugins not discoverable locally)
|
|
409
|
+
const effectivePlugins = plugins.length > 0 ? plugins.length : STATIC_PLUGIN_COUNT;
|
|
410
|
+
const effectiveAgents = agents.length > 0 ? agents.length + ROLE_BASED_AGENT_COUNT : STATIC_AGENT_COUNT;
|
|
411
|
+
const effectiveSkills = skills.length > 0 ? skills.length : STATIC_SKILLS.length;
|
|
395
412
|
|
|
396
413
|
// Update stats array
|
|
397
414
|
if (content.stats && Array.isArray(content.stats)) {
|
|
398
415
|
for (const stat of content.stats) {
|
|
399
|
-
if (stat.label === 'Plugins') stat.value = String(
|
|
400
|
-
if (stat.label === 'Agents') stat.value = String(
|
|
401
|
-
if (stat.label === 'Skills') stat.value = String(
|
|
416
|
+
if (stat.label === 'Plugins') stat.value = String(effectivePlugins);
|
|
417
|
+
if (stat.label === 'Agents') stat.value = String(effectiveAgents);
|
|
418
|
+
if (stat.label === 'Skills') stat.value = String(effectiveSkills);
|
|
402
419
|
}
|
|
403
420
|
}
|
|
404
421
|
|
|
405
422
|
// Update agents section
|
|
406
423
|
if (content.agents) {
|
|
407
|
-
content.agents.total =
|
|
408
|
-
content.agents.file_based =
|
|
424
|
+
content.agents.total = effectiveAgents;
|
|
425
|
+
content.agents.file_based = effectiveAgents - ROLE_BASED_AGENT_COUNT;
|
|
409
426
|
content.agents.role_based = ROLE_BASED_AGENT_COUNT;
|
|
410
427
|
}
|
|
411
428
|
|
|
@@ -625,5 +642,7 @@ module.exports = {
|
|
|
625
642
|
CATEGORY_MAP,
|
|
626
643
|
PURPOSE_MAP,
|
|
627
644
|
ROLE_BASED_AGENT_COUNT,
|
|
628
|
-
STATIC_SKILLS
|
|
645
|
+
STATIC_SKILLS,
|
|
646
|
+
STATIC_PLUGIN_COUNT,
|
|
647
|
+
STATIC_AGENT_COUNT
|
|
629
648
|
};
|
|
@@ -25,7 +25,7 @@ const TODAY = new Date().toISOString().slice(0, 10);
|
|
|
25
25
|
|
|
26
26
|
const PLUGINS = [
|
|
27
27
|
'next-task', 'ship', 'enhance', 'deslop', 'learn', 'consult',
|
|
28
|
-
'debate', 'drift-detect', 'repo-
|
|
28
|
+
'debate', 'drift-detect', 'repo-intel', 'sync-docs', 'audit-project',
|
|
29
29
|
'perf', 'agnix'
|
|
30
30
|
];
|
|
31
31
|
|
package/scripts/preflight.js
CHANGED
|
@@ -39,7 +39,7 @@ const CHECKLIST_PATTERNS = {
|
|
|
39
39
|
'new-skill': ['plugins/*/skills/'],
|
|
40
40
|
'new-lib-module': ['lib/'],
|
|
41
41
|
'release': ['package.json'],
|
|
42
|
-
'repo-
|
|
42
|
+
'repo-intel': ['plugins/repo-intel/', 'lib/repo-map/'],
|
|
43
43
|
'opencode-plugin': ['adapters/opencode-plugin/'],
|
|
44
44
|
'cross-platform': [] // triggered when any plugin/ or lib/ file changes
|
|
45
45
|
};
|
|
@@ -68,9 +68,9 @@ const MANUAL_CHECKS = {
|
|
|
68
68
|
'Test on Claude Code, OpenCode, and Codex CLI',
|
|
69
69
|
'Create git tag and push'
|
|
70
70
|
],
|
|
71
|
-
'repo-
|
|
72
|
-
'Verify
|
|
73
|
-
'Test repo-
|
|
71
|
+
'repo-intel': [
|
|
72
|
+
'Verify agent-analyzer binary is available',
|
|
73
|
+
'Test repo-intel update with added/modified/deleted files'
|
|
74
74
|
],
|
|
75
75
|
'opencode-plugin': [
|
|
76
76
|
'Test plugin with OpenCode locally',
|
|
@@ -241,7 +241,7 @@ function formatCountMismatch(file, metric, expected, actual) {
|
|
|
241
241
|
*/
|
|
242
242
|
function runValidation() {
|
|
243
243
|
// When plugins/ doesn't exist, counts are not meaningful — return ok
|
|
244
|
-
if (!fs.existsSync(path.join(REPO_ROOT, 'plugins'))) {
|
|
244
|
+
if (!fs.existsSync(path.join(REPO_ROOT, 'plugins')) || fs.readdirSync(path.join(REPO_ROOT, 'plugins')).filter(f => fs.statSync(path.join(REPO_ROOT, 'plugins', f)).isDirectory()).length === 0) {
|
|
245
245
|
return {
|
|
246
246
|
status: 'ok',
|
|
247
247
|
message: 'plugins/ not present (extracted to standalone repos)',
|
|
@@ -72,7 +72,7 @@ const REQUIRED_FEATURES = [
|
|
|
72
72
|
'/enhance',
|
|
73
73
|
'/audit-project',
|
|
74
74
|
'/drift-detect',
|
|
75
|
-
'/repo-
|
|
75
|
+
'/repo-intel',
|
|
76
76
|
'/perf',
|
|
77
77
|
'/sync-docs'
|
|
78
78
|
];
|
|
@@ -110,7 +110,7 @@ function validateCommandPrefixes() {
|
|
|
110
110
|
|
|
111
111
|
// Check for wrong prefix usage
|
|
112
112
|
const wrongPrefix = platform === 'codex' ? '/' : '$';
|
|
113
|
-
const commandPattern = new RegExp(`${wrongPrefix}(next-task|ship|deslop|enhance|audit-project|drift-detect|repo-
|
|
113
|
+
const commandPattern = new RegExp(`${wrongPrefix}(next-task|ship|deslop|enhance|audit-project|drift-detect|repo-intel|perf|sync-docs)`, 'g');
|
|
114
114
|
|
|
115
115
|
const matches = content.match(commandPattern);
|
|
116
116
|
if (matches && matches.length > 0) {
|
package/site/content.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
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. 19 plugins, 38 agents, 39 skills - structured pipelines for Claude Code, OpenCode, and Codex CLI.",
|
|
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.
|
|
8
|
+
"version": "5.7.0",
|
|
9
9
|
"author": "Avi Fenesh",
|
|
10
10
|
"author_url": "https://github.com/avifenesh"
|
|
11
11
|
},
|
|
12
12
|
"hero": {
|
|
13
13
|
"title": "A modular runtime and orchestration system for AI agents",
|
|
14
|
-
"subtitle": "AI models can write code. That's not the hard part anymore. The hard part is everything around it
|
|
14
|
+
"subtitle": "AI models can write code. That's not the hard part anymore. The hard part is everything around it - task selection, branch management, code review, artifact cleanup, CI, deployment. AgentSys is the runtime that orchestrates agents to handle all of it.",
|
|
15
15
|
"cta_primary": {
|
|
16
16
|
"text": "Get Started",
|
|
17
17
|
"url": "#installation"
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
},
|
|
24
24
|
"stats": [
|
|
25
25
|
{
|
|
26
|
-
"value": "
|
|
26
|
+
"value": "19",
|
|
27
27
|
"label": "Plugins",
|
|
28
28
|
"suffix": ""
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
"value": "
|
|
31
|
+
"value": "47",
|
|
32
32
|
"label": "Agents",
|
|
33
33
|
"suffix": ""
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
|
-
"value": "
|
|
36
|
+
"value": "38",
|
|
37
37
|
"label": "Skills",
|
|
38
38
|
"suffix": ""
|
|
39
39
|
},
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"suffix": ""
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"value": "3,
|
|
46
|
+
"value": "3,575",
|
|
47
47
|
"label": "Tests",
|
|
48
48
|
"suffix": ""
|
|
49
49
|
},
|
|
@@ -57,18 +57,18 @@
|
|
|
57
57
|
"title": "The bottleneck isn't code generation",
|
|
58
58
|
"description": "Frontier models write good code. That's solved. What's not solved is context management, compaction amnesia, task drift, skipped steps, token waste, babysitting, and repetitive requests. You shouldn't have to orchestrate each phase manually, every single session.",
|
|
59
59
|
"points": [
|
|
60
|
-
"Context management
|
|
61
|
-
"Compaction amnesia
|
|
62
|
-
"Task drift
|
|
63
|
-
"Skipped steps
|
|
64
|
-
"Token waste
|
|
65
|
-
"Babysitting
|
|
66
|
-
"Repetitive requests
|
|
60
|
+
"Context management - models forget what they're doing mid-session",
|
|
61
|
+
"Compaction amnesia - long sessions get summarized, losing critical state",
|
|
62
|
+
"Task drift - without structure, agents wander from the actual goal",
|
|
63
|
+
"Skipped steps - agents skip reviews, tests, or cleanup when not enforced",
|
|
64
|
+
"Token waste - using LLM calls for work that static analysis can do faster",
|
|
65
|
+
"Babysitting - manually orchestrating each phase of development",
|
|
66
|
+
"Repetitive requests - asking for the same workflow every single session"
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"approach": {
|
|
70
70
|
"title": "Code does code work. AI does AI work.",
|
|
71
|
-
"description": "Detection uses regex, AST analysis, and static analysis
|
|
71
|
+
"description": "Detection uses regex, AST analysis, and static analysis - fast, deterministic, no tokens wasted. Judgment uses LLM calls for synthesis, planning, and review - where reasoning matters. Result: 77% fewer tokens for drift-detect vs multi-agent approaches.",
|
|
72
72
|
"certainty_levels": [
|
|
73
73
|
{
|
|
74
74
|
"level": "HIGH",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
{
|
|
99
99
|
"name": "/agnix",
|
|
100
100
|
"tagline": "Lint agent configs before they break",
|
|
101
|
-
"description": "
|
|
101
|
+
"description": "342 validation rules (102 auto-fixable) for Skills, Memory, Hooks, MCP, and Plugins across 10+ AI tools including Claude Code, Cursor, GitHub Copilot, Codex CLI, OpenCode, Gemini CLI, Cline, Windsurf, Roo Code, and Amp. SARIF output for GitHub Code Scanning.",
|
|
102
102
|
"example": "/agnix --fix",
|
|
103
103
|
"category": "linting"
|
|
104
104
|
},
|
|
@@ -145,11 +145,11 @@
|
|
|
145
145
|
"category": "analysis"
|
|
146
146
|
},
|
|
147
147
|
{
|
|
148
|
-
"name": "/repo-
|
|
149
|
-
"tagline": "
|
|
150
|
-
"description": "
|
|
151
|
-
"example": "/repo-
|
|
152
|
-
"category": "
|
|
148
|
+
"name": "/repo-intel",
|
|
149
|
+
"tagline": "Unified static analysis for AI agents",
|
|
150
|
+
"description": "Git history intelligence, AST symbol mapping, and project metadata in one plugin. 20 query types backed by a Rust binary. 9 plugins consume the data automatically.",
|
|
151
|
+
"example": "/repo-intel init",
|
|
152
|
+
"category": "analysis"
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"name": "/sync-docs",
|
|
@@ -185,6 +185,34 @@
|
|
|
185
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
186
|
"example": "/web-ctl browse https://example.com",
|
|
187
187
|
"category": "maintenance"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "/release",
|
|
191
|
+
"tagline": "Versioned release with ecosystem detection",
|
|
192
|
+
"description": "Discovers how your repo releases before executing. Checks for semantic-release, release-it, goreleaser, changesets, cargo-release, then falls back to generic tag-and-publish. Supports 12+ ecosystems.",
|
|
193
|
+
"example": "/release minor",
|
|
194
|
+
"category": "workflow"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "/skillers",
|
|
198
|
+
"tagline": "Learn from your workflow patterns",
|
|
199
|
+
"description": "Reads Claude Code conversation transcripts, identifies recurring patterns, clusters them into weighted themes, and suggests skills, hooks, or agents to automate them. No per-turn overhead.",
|
|
200
|
+
"example": "/skillers compact",
|
|
201
|
+
"category": "learning"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"name": "/onboard",
|
|
205
|
+
"tagline": "Oriented in any codebase in 3 minutes",
|
|
206
|
+
"description": "Pure JS collector pre-structures project data (68ms median, 74% token savings vs manual), then Opus synthesizes a guided tour. Validated on 100 repos across 8 languages. Supports 12 manifest types and monorepo detection.",
|
|
207
|
+
"example": "/onboard",
|
|
208
|
+
"category": "learning"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "/can-i-help",
|
|
212
|
+
"tagline": "Match contributor skills to project needs",
|
|
213
|
+
"description": "Collects 5 contributor signals (good-first areas, test gaps, doc drift, bugspots, open issues), asks about developer background, then recommends specific areas with concrete first steps.",
|
|
214
|
+
"example": "/can-i-help",
|
|
215
|
+
"category": "learning"
|
|
188
216
|
}
|
|
189
217
|
],
|
|
190
218
|
"philosophy": [
|
|
@@ -194,7 +222,7 @@
|
|
|
194
222
|
},
|
|
195
223
|
{
|
|
196
224
|
"title": "Pipeline with gates, not a monolith",
|
|
197
|
-
"description": "Same principle as DevOps. Each step must pass before the next begins. Can't push before review. Can't merge before CI passes. Hooks enforce this
|
|
225
|
+
"description": "Same principle as DevOps. Each step must pass before the next begins. Can't push before review. Can't merge before CI passes. Hooks enforce this - agents cannot skip phases."
|
|
198
226
|
},
|
|
199
227
|
{
|
|
200
228
|
"title": "Tools do tool work, agents do agent work",
|
|
@@ -202,7 +230,7 @@
|
|
|
202
230
|
},
|
|
203
231
|
{
|
|
204
232
|
"title": "Right model for the task",
|
|
205
|
-
"description": "Opus for complex reasoning and analysis. Sonnet for pattern matching and validation. Haiku for mechanical execution. Quality compounds
|
|
233
|
+
"description": "Opus for complex reasoning and analysis. Sonnet for pattern matching and validation. Haiku for mechanical execution. Quality compounds - early phases deserve the best model."
|
|
206
234
|
},
|
|
207
235
|
{
|
|
208
236
|
"title": "Validate plan and results, not every step",
|
|
@@ -255,16 +283,6 @@
|
|
|
255
283
|
"name": "Codex CLI",
|
|
256
284
|
"prefix": "$",
|
|
257
285
|
"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/"
|
|
268
286
|
}
|
|
269
287
|
}
|
|
270
288
|
},
|
|
@@ -277,7 +295,7 @@
|
|
|
277
295
|
{
|
|
278
296
|
"step": 2,
|
|
279
297
|
"name": "Task Discovery",
|
|
280
|
-
"description": "Shows top 5 prioritized tasks
|
|
298
|
+
"description": "Shows top 5 prioritized tasks - you pick one"
|
|
281
299
|
},
|
|
282
300
|
{
|
|
283
301
|
"step": 3,
|
|
@@ -331,8 +349,8 @@
|
|
|
331
349
|
}
|
|
332
350
|
],
|
|
333
351
|
"agents": {
|
|
334
|
-
"total":
|
|
335
|
-
"file_based":
|
|
352
|
+
"total": 47,
|
|
353
|
+
"file_based": 37,
|
|
336
354
|
"role_based": 10,
|
|
337
355
|
"by_model": [
|
|
338
356
|
{
|
|
@@ -370,21 +388,30 @@
|
|
|
370
388
|
},
|
|
371
389
|
"recent_releases": [
|
|
372
390
|
{
|
|
373
|
-
"version": "5.
|
|
374
|
-
"date": "2026-03-
|
|
391
|
+
"version": "5.6.0",
|
|
392
|
+
"date": "2026-03-16",
|
|
393
|
+
"highlights": [
|
|
394
|
+
"New /onboard plugin - codebase orientation in 3 minutes, 74% token savings, validated on 100 repos",
|
|
395
|
+
"New /can-i-help plugin - contributor guidance with 5 data-backed signals",
|
|
396
|
+
"New /git-map plugin - 21 git history queries backed by Rust binary",
|
|
397
|
+
"15 plugin READMEs written or upgraded, agent-analyzer v0.2.0 query tuning"
|
|
398
|
+
]
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"version": "5.4.0",
|
|
402
|
+
"date": "2026-03-10",
|
|
375
403
|
"highlights": [
|
|
376
|
-
"
|
|
377
|
-
"
|
|
378
|
-
"
|
|
379
|
-
"Cursor global install to ~/.cursor/"
|
|
404
|
+
"Agent-analyzer Phase 1 - git intelligence with 21 queries",
|
|
405
|
+
"Repo-intel integration across 11 plugins",
|
|
406
|
+
"agnix v0.16.0 - 342 validation rules"
|
|
380
407
|
]
|
|
381
408
|
},
|
|
382
409
|
{
|
|
383
410
|
"version": "5.2.0",
|
|
384
411
|
"date": "2026-02-28",
|
|
385
412
|
"highlights": [
|
|
386
|
-
"New /consult plugin
|
|
387
|
-
"New /debate plugin
|
|
413
|
+
"New /consult plugin - cross-tool AI consultation",
|
|
414
|
+
"New /debate plugin - structured adversarial debates between AI tools",
|
|
388
415
|
"User-extensible provider registry for 6 AI tools"
|
|
389
416
|
]
|
|
390
417
|
},
|
|
@@ -392,18 +419,9 @@
|
|
|
392
419
|
"version": "5.0.0",
|
|
393
420
|
"date": "2026-02-20",
|
|
394
421
|
"highlights": [
|
|
395
|
-
"New /web-ctl plugin
|
|
422
|
+
"New /web-ctl plugin - browser automation with encrypted session persistence",
|
|
396
423
|
"Human-in-the-loop auth handoff with CAPTCHA detection",
|
|
397
|
-
"
|
|
398
|
-
]
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
"version": "4.1.0",
|
|
402
|
-
"date": "2026-02-05",
|
|
403
|
-
"highlights": [
|
|
404
|
-
"New /agnix plugin -- lint agent configurations with 230+ validation rules",
|
|
405
|
-
"SARIF output for GitHub Code Scanning integration",
|
|
406
|
-
"Cross-platform validation for 10+ AI tools"
|
|
424
|
+
"Multi-platform support: Claude Code, OpenCode, Codex CLI"
|
|
407
425
|
]
|
|
408
426
|
}
|
|
409
427
|
],
|
|
@@ -424,8 +442,8 @@
|
|
|
424
442
|
"description": "For PR operations and issue discovery"
|
|
425
443
|
},
|
|
426
444
|
{
|
|
427
|
-
"name": "
|
|
428
|
-
"description": "For /repo-
|
|
445
|
+
"name": "agent-analyzer",
|
|
446
|
+
"description": "For /repo-intel static analysis (installed automatically)"
|
|
429
447
|
}
|
|
430
448
|
],
|
|
431
449
|
"optional": [
|
|
@@ -463,7 +481,7 @@
|
|
|
463
481
|
],
|
|
464
482
|
"research": {
|
|
465
483
|
"knowledge_base": "8,000 lines of curated documentation from Anthropic, OpenAI, Google, and Microsoft",
|
|
466
|
-
"testing": "3,
|
|
484
|
+
"testing": "3,575 tests passing",
|
|
467
485
|
"drift_detect_repos": "1,000+ repositories validated",
|
|
468
486
|
"token_reduction": "77% fewer tokens for drift-detect vs multi-agent approaches"
|
|
469
487
|
},
|
package/site/index.html
CHANGED
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-5" id="tab-5" tabindex="-1" data-index="5">/drift-detect</button>
|
|
193
193
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-6" id="tab-6" tabindex="-1" data-index="6">/audit-project</button>
|
|
194
194
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-7" id="tab-7" tabindex="-1" data-index="7">/enhance</button>
|
|
195
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-8" id="tab-8" tabindex="-1" data-index="8">/repo-
|
|
195
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-8" id="tab-8" tabindex="-1" data-index="8">/repo-intel</button>
|
|
196
196
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-9" id="tab-9" tabindex="-1" data-index="9">/sync-docs</button>
|
|
197
197
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-10" id="tab-10" tabindex="-1" data-index="10">/learn</button>
|
|
198
198
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-11" id="tab-11" tabindex="-1" data-index="11">/consult</button>
|
|
@@ -354,21 +354,21 @@
|
|
|
354
354
|
</div>
|
|
355
355
|
|
|
356
356
|
<div class="tabs__panel" role="tabpanel" id="tab-panel-8" aria-labelledby="tab-8" hidden>
|
|
357
|
-
<h3 class="tabs__panel-name">/repo-
|
|
358
|
-
<p class="tabs__panel-tagline">
|
|
357
|
+
<h3 class="tabs__panel-name">/repo-intel</h3>
|
|
358
|
+
<p class="tabs__panel-tagline">Unified static analysis for AI agents</p>
|
|
359
359
|
<ul class="tabs__panel-features">
|
|
360
|
-
<li>
|
|
361
|
-
<li>
|
|
362
|
-
<li>
|
|
363
|
-
<li>Incremental updates
|
|
360
|
+
<li>Git history intelligence: hotspots, coupling, ownership, bus factor</li>
|
|
361
|
+
<li>AST symbols: exports, functions, classes, imports</li>
|
|
362
|
+
<li>9 plugins consume repo-intel data automatically</li>
|
|
363
|
+
<li>Incremental updates, 20 query types</li>
|
|
364
364
|
</ul>
|
|
365
365
|
<div class="code-block">
|
|
366
|
-
<button class="code-block__copy" aria-label="Copy code to clipboard" data-code="/repo-
|
|
367
|
-
/repo-
|
|
366
|
+
<button class="code-block__copy" aria-label="Copy code to clipboard" data-code="/repo-intel init # First-time scan
|
|
367
|
+
/repo-intel query hotspots # Most active files">
|
|
368
368
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"/></svg>
|
|
369
369
|
</button>
|
|
370
|
-
<pre><code><span class="code-prompt">$</span> /repo-
|
|
371
|
-
<span class="code-prompt">$</span> /repo-
|
|
370
|
+
<pre><code><span class="code-prompt">$</span> /repo-intel init <span class="code-comment"># First-time scan</span>
|
|
371
|
+
<span class="code-prompt">$</span> /repo-intel query hotspots <span class="code-comment"># Most active files</span></code></pre>
|
|
372
372
|
</div>
|
|
373
373
|
</div>
|
|
374
374
|
|
|
@@ -556,6 +556,38 @@
|
|
|
556
556
|
</div>
|
|
557
557
|
</section>
|
|
558
558
|
|
|
559
|
+
<!-- ===== BENCHMARKS ===== -->
|
|
560
|
+
<section class="philosophy" id="benchmarks" aria-labelledby="bench-title">
|
|
561
|
+
<div class="philosophy__inner">
|
|
562
|
+
<h2 class="philosophy__title anim-fade-up" id="bench-title">Benchmarks</h2>
|
|
563
|
+
<p class="philosophy__subtitle anim-fade-up" data-delay="100">Structured prompts and enriched context do more for output quality than model tier.</p>
|
|
564
|
+
|
|
565
|
+
<div class="philosophy__grid">
|
|
566
|
+
<div class="philosophy__card anim-fade-up" data-delay="0">
|
|
567
|
+
<div class="philosophy__card-icon">
|
|
568
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="12" y1="20" x2="12" y2="10"/><line x1="18" y1="20" x2="18" y2="4"/><line x1="6" y1="20" x2="6" y2="16"/></svg>
|
|
569
|
+
</div>
|
|
570
|
+
<h3 class="philosophy__card-title">Sonnet + AgentSys beats raw Opus</h3>
|
|
571
|
+
<p class="philosophy__card-desc">Sonnet + agentsys: <span class="text-accent">$0.66</span>, 6,084 tokens, specific recommendations. Raw Opus: $1.10, 2,841 tokens, generic output. <span class="text-accent">40% cheaper, 2x more output.</span></p>
|
|
572
|
+
</div>
|
|
573
|
+
<div class="philosophy__card anim-fade-up" data-delay="100">
|
|
574
|
+
<div class="philosophy__card-icon">
|
|
575
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
|
|
576
|
+
</div>
|
|
577
|
+
<h3 class="philosophy__card-title">Model tier matters less</h3>
|
|
578
|
+
<p class="philosophy__card-desc">With agentsys, Sonnet matches Opus quality. Pipeline structure captures the gains. <span class="text-accent">73-83% cost reduction</span> with equivalent outcomes.</p>
|
|
579
|
+
</div>
|
|
580
|
+
<div class="philosophy__card anim-fade-up" data-delay="200">
|
|
581
|
+
<div class="philosophy__card-icon">
|
|
582
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
|
|
583
|
+
</div>
|
|
584
|
+
<h3 class="philosophy__card-title">Invest in pipeline, not model spend</h3>
|
|
585
|
+
<p class="philosophy__card-desc">Better prompts, richer context, enforced phases - these compound in ways that model upgrades alone don't. Tested on real tasks against <a href="https://github.com/avifenesh/glide-mq" class="text-accent">glide-mq</a>.</p>
|
|
586
|
+
</div>
|
|
587
|
+
</div>
|
|
588
|
+
</div>
|
|
589
|
+
</section>
|
|
590
|
+
|
|
559
591
|
<!-- ===== AGENTS & SKILLS ===== -->
|
|
560
592
|
<section class="agents-skills" id="agents-skills" aria-labelledby="as-title">
|
|
561
593
|
<div class="agents-skills__inner">
|
|
@@ -681,7 +713,7 @@
|
|
|
681
713
|
<div class="skill-group__items">
|
|
682
714
|
<span class="skill-card">deslop</span>
|
|
683
715
|
<span class="skill-card">drift-analysis</span>
|
|
684
|
-
<span class="skill-card">repo-
|
|
716
|
+
<span class="skill-card">repo-intel</span>
|
|
685
717
|
<span class="skill-card">sync-docs</span>
|
|
686
718
|
<span class="skill-card">learn-topic</span>
|
|
687
719
|
<span class="skill-card">agnix-lint</span>
|
package/site/ux-spec.md
CHANGED
|
@@ -265,7 +265,7 @@ Done. Task to merged PR in 12 minutes.
|
|
|
265
265
|
- On mobile: naturally scrollable, slight gradient fade on right edge to indicate scrollability (20px gradient from transparent to section background)
|
|
266
266
|
|
|
267
267
|
### Tab Order
|
|
268
|
-
`/next-task`, `/ship`, `/deslop`, `/perf`, `/drift-detect`, `/audit-project`, `/enhance`, `/repo-
|
|
268
|
+
`/next-task`, `/ship`, `/deslop`, `/perf`, `/drift-detect`, `/audit-project`, `/enhance`, `/repo-intel`, `/sync-docs`, `/learn`, `/agnix`
|
|
269
269
|
|
|
270
270
|
(Most impactful first: the full workflow command, then the shipper, then individual tools)
|
|
271
271
|
|