agentsys 5.6.4 → 5.8.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 +30 -19
- 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 +10 -8
- package/CHANGELOG.md +37 -0
- package/README.md +152 -98
- 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 +7 -6
- package/package.json +3 -3
- package/scripts/fix-graduated-repos.js +2 -2
- package/scripts/generate-docs.js +22 -16
- package/scripts/graduate-plugin.js +1 -1
- package/scripts/plugins.txt +7 -1
- package/scripts/preflight.js +4 -4
- package/scripts/validate-cross-platform-docs.js +2 -2
- package/site/content.json +40 -23
- package/site/index.html +44 -12
- package/site/ux-spec.md +6 -6
- 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
|
@@ -49,10 +49,12 @@ const CATEGORY_MAP = {
|
|
|
49
49
|
'perf': 'Performance',
|
|
50
50
|
'enhance': 'Enhancement',
|
|
51
51
|
'next-task': 'Workflow',
|
|
52
|
+
'prepare-delivery': 'Workflow',
|
|
53
|
+
'gate-and-ship': 'Workflow',
|
|
52
54
|
'deslop': 'Cleanup',
|
|
53
55
|
'sync-docs': 'Cleanup',
|
|
54
56
|
'drift-detect': 'Analysis',
|
|
55
|
-
'repo-
|
|
57
|
+
'repo-intel': 'Analysis',
|
|
56
58
|
'learn': 'AI Collaboration',
|
|
57
59
|
'agnix': 'Linting',
|
|
58
60
|
'consult': 'AI Collaboration',
|
|
@@ -60,17 +62,19 @@ const CATEGORY_MAP = {
|
|
|
60
62
|
'skillers': 'AI Collaboration',
|
|
61
63
|
'web-ctl': 'Web',
|
|
62
64
|
'ship': 'Release',
|
|
63
|
-
'git-map': 'Analysis',
|
|
64
65
|
'onboard': 'Onboarding',
|
|
65
66
|
'can-i-help': 'Onboarding',
|
|
66
|
-
'audit-project': 'Code Review'
|
|
67
|
+
'audit-project': 'Code Review',
|
|
68
|
+
'glidemq': 'Message Queues'
|
|
67
69
|
};
|
|
68
70
|
|
|
69
71
|
// Static skill definitions for cross-repo plugins (not discoverable locally)
|
|
70
72
|
const STATIC_SKILLS = [
|
|
71
|
-
{ plugin: 'next-task', name: 'orchestrate-review' },
|
|
72
73
|
{ plugin: 'next-task', name: 'discover-tasks' },
|
|
73
|
-
{ plugin: '
|
|
74
|
+
{ plugin: 'prepare-delivery', name: 'prepare-delivery' },
|
|
75
|
+
{ plugin: 'prepare-delivery', name: 'check-test-coverage' },
|
|
76
|
+
{ plugin: 'prepare-delivery', name: 'orchestrate-review' },
|
|
77
|
+
{ plugin: 'prepare-delivery', name: 'validate-delivery' },
|
|
74
78
|
{ plugin: 'enhance', name: 'enhance-orchestrator' },
|
|
75
79
|
{ plugin: 'enhance', name: 'enhance-plugins' },
|
|
76
80
|
{ plugin: 'enhance', name: 'enhance-agent-prompts' },
|
|
@@ -91,7 +95,7 @@ const STATIC_SKILLS = [
|
|
|
91
95
|
{ plugin: 'deslop', name: 'deslop' },
|
|
92
96
|
{ plugin: 'sync-docs', name: 'sync-docs' },
|
|
93
97
|
{ plugin: 'drift-detect', name: 'drift-analysis' },
|
|
94
|
-
{ plugin: 'repo-
|
|
98
|
+
{ plugin: 'repo-intel', name: 'repo-intel' },
|
|
95
99
|
{ plugin: 'consult', name: 'consult' },
|
|
96
100
|
{ plugin: 'debate', name: 'debate' },
|
|
97
101
|
{ plugin: 'learn', name: 'learn' },
|
|
@@ -100,7 +104,6 @@ const STATIC_SKILLS = [
|
|
|
100
104
|
{ plugin: 'ship', name: 'release' },
|
|
101
105
|
{ plugin: 'skillers', name: 'skillers-compact' },
|
|
102
106
|
{ plugin: 'skillers', name: 'recommend' },
|
|
103
|
-
{ plugin: 'git-map', name: 'git-mapping' },
|
|
104
107
|
{ plugin: 'onboard', name: 'onboard' },
|
|
105
108
|
{ plugin: 'can-i-help', name: 'can-i-help' },
|
|
106
109
|
{ plugin: 'audit-project', name: 'audit-project' },
|
|
@@ -112,13 +115,15 @@ const STATIC_SKILLS = [
|
|
|
112
115
|
// Purpose mapping for architecture table
|
|
113
116
|
const PURPOSE_MAP = {
|
|
114
117
|
'next-task': 'Master workflow orchestration',
|
|
118
|
+
'prepare-delivery': 'Pre-ship quality gates',
|
|
119
|
+
'gate-and-ship': 'Quality gates then ship',
|
|
115
120
|
'enhance': 'Code quality analyzers',
|
|
116
121
|
'ship': 'PR creation and deployment',
|
|
117
122
|
'perf': 'Performance investigation',
|
|
118
123
|
'audit-project': 'Multi-agent code review',
|
|
119
124
|
'deslop': 'AI slop cleanup',
|
|
120
125
|
'drift-detect': 'Plan drift detection',
|
|
121
|
-
'repo-
|
|
126
|
+
'repo-intel': 'Unified static analysis',
|
|
122
127
|
'sync-docs': 'Documentation sync',
|
|
123
128
|
'learn': 'Topic research and learning guides',
|
|
124
129
|
'agnix': 'Agent config linting',
|
|
@@ -126,7 +131,6 @@ const PURPOSE_MAP = {
|
|
|
126
131
|
'debate': 'Multi-perspective debate analysis',
|
|
127
132
|
'web-ctl': 'Browser automation for AI agents',
|
|
128
133
|
'skillers': 'Workflow pattern learning',
|
|
129
|
-
'git-map': 'Git history analysis',
|
|
130
134
|
'onboard': 'Codebase onboarding',
|
|
131
135
|
'can-i-help': 'Contributor guidance'
|
|
132
136
|
};
|
|
@@ -175,16 +179,19 @@ function generateCommandsTable(commands) {
|
|
|
175
179
|
|
|
176
180
|
// Curated display order (featured commands first, then alphabetical)
|
|
177
181
|
const COMMAND_ORDER = [
|
|
178
|
-
'next-task', '
|
|
182
|
+
'next-task', 'prepare-delivery', 'gate-and-ship',
|
|
183
|
+
'agnix', 'ship', 'deslop', 'perf',
|
|
179
184
|
'drift-detect', 'audit-project', 'enhance',
|
|
180
|
-
'repo-
|
|
185
|
+
'repo-intel', 'sync-docs', 'learn', 'consult',
|
|
181
186
|
'debate', 'web-ctl', 'release', 'skillers',
|
|
182
|
-
'
|
|
187
|
+
'onboard', 'can-i-help'
|
|
183
188
|
];
|
|
184
189
|
|
|
185
190
|
// Command descriptions for the table (short, human-written summaries)
|
|
186
191
|
const COMMAND_SUMMARIES = {
|
|
187
192
|
'next-task': 'Task workflow: discovery, implementation, PR, merge',
|
|
193
|
+
'prepare-delivery': 'Pre-ship quality gates: deslop, review, validation, docs sync',
|
|
194
|
+
'gate-and-ship': 'Quality gates then ship (/prepare-delivery + /ship)',
|
|
188
195
|
'agnix': 'Lint agent configurations (342 rules)',
|
|
189
196
|
'ship': 'PR creation, CI monitoring, merge',
|
|
190
197
|
'deslop': 'Clean AI slop patterns',
|
|
@@ -192,7 +199,7 @@ function generateCommandsTable(commands) {
|
|
|
192
199
|
'drift-detect': 'Compare plan vs implementation',
|
|
193
200
|
'audit-project': 'Multi-agent iterative code review',
|
|
194
201
|
'enhance': 'Plugin, agent, and prompt analyzers',
|
|
195
|
-
'repo-
|
|
202
|
+
'repo-intel': 'Unified static analysis - git history, AST symbols, project metadata',
|
|
196
203
|
'sync-docs': 'Sync documentation with code changes',
|
|
197
204
|
'learn': 'Research topics, create learning guides',
|
|
198
205
|
'consult': 'Cross-tool AI consultation',
|
|
@@ -200,7 +207,6 @@ function generateCommandsTable(commands) {
|
|
|
200
207
|
'web-ctl': 'Browser automation for AI agents',
|
|
201
208
|
'release': 'Versioned release with ecosystem detection',
|
|
202
209
|
'skillers': 'Workflow pattern learning and automation',
|
|
203
|
-
'git-map': 'Git history analysis: hotspots, coupling, ownership, bus factor',
|
|
204
210
|
'onboard': 'Codebase orientation for newcomers',
|
|
205
211
|
'can-i-help': 'Match contributor skills to project needs'
|
|
206
212
|
};
|
|
@@ -258,7 +264,7 @@ function generateSkillsTable(skills) {
|
|
|
258
264
|
|
|
259
265
|
// Defined category order
|
|
260
266
|
const categoryOrder = [
|
|
261
|
-
'Workflow', 'Enhancement', 'Performance', 'Cleanup',
|
|
267
|
+
'Workflow', 'Message Queues', 'Enhancement', 'Performance', 'Cleanup',
|
|
262
268
|
'Code Review', 'AI Collaboration', 'Onboarding',
|
|
263
269
|
'Web', 'Release', 'Analysis', 'Linting', 'Other'
|
|
264
270
|
];
|
|
@@ -391,7 +397,7 @@ function generateAgentCounts(agents, plugins) {
|
|
|
391
397
|
*/
|
|
392
398
|
// Static counts for cross-repo plugins not discoverable locally
|
|
393
399
|
const STATIC_PLUGIN_COUNT = 19;
|
|
394
|
-
const STATIC_AGENT_COUNT =
|
|
400
|
+
const STATIC_AGENT_COUNT = 47;
|
|
395
401
|
|
|
396
402
|
function updateSiteContent(plugins, agents, skills) {
|
|
397
403
|
const contentPath = path.join(ROOT_DIR, 'site', 'content.json');
|
|
@@ -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/plugins.txt
CHANGED
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',
|
|
@@ -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,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
3
|
"title": "agentsys",
|
|
4
|
-
"description": "A modular runtime and orchestration system for AI agents. 19 plugins,
|
|
4
|
+
"description": "A modular runtime and orchestration system for AI agents. 19 plugins, 47 agents, 40 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.
|
|
8
|
+
"version": "5.8.0",
|
|
9
9
|
"author": "Avi Fenesh",
|
|
10
10
|
"author_url": "https://github.com/avifenesh"
|
|
11
11
|
},
|
|
@@ -28,12 +28,12 @@
|
|
|
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": "40",
|
|
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,445",
|
|
47
47
|
"label": "Tests",
|
|
48
48
|
"suffix": ""
|
|
49
49
|
},
|
|
@@ -95,6 +95,20 @@
|
|
|
95
95
|
"example": "/next-task",
|
|
96
96
|
"category": "workflow"
|
|
97
97
|
},
|
|
98
|
+
{
|
|
99
|
+
"name": "/prepare-delivery",
|
|
100
|
+
"tagline": "Pre-ship quality gates",
|
|
101
|
+
"description": "Pre-ship quality gates: deslop, simplify, review loop, delivery validation, docs sync",
|
|
102
|
+
"example": "/prepare-delivery",
|
|
103
|
+
"category": "workflow"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "/gate-and-ship",
|
|
107
|
+
"tagline": "Quality gates then ship",
|
|
108
|
+
"description": "Quality gates then ship - chains /prepare-delivery then /ship",
|
|
109
|
+
"example": "/gate-and-ship",
|
|
110
|
+
"category": "workflow"
|
|
111
|
+
},
|
|
98
112
|
{
|
|
99
113
|
"name": "/agnix",
|
|
100
114
|
"tagline": "Lint agent configs before they break",
|
|
@@ -145,11 +159,11 @@
|
|
|
145
159
|
"category": "analysis"
|
|
146
160
|
},
|
|
147
161
|
{
|
|
148
|
-
"name": "/repo-
|
|
149
|
-
"tagline": "
|
|
150
|
-
"description": "
|
|
151
|
-
"example": "/repo-
|
|
152
|
-
"category": "
|
|
162
|
+
"name": "/repo-intel",
|
|
163
|
+
"tagline": "Unified static analysis for AI agents",
|
|
164
|
+
"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.",
|
|
165
|
+
"example": "/repo-intel init",
|
|
166
|
+
"category": "analysis"
|
|
153
167
|
},
|
|
154
168
|
{
|
|
155
169
|
"name": "/sync-docs",
|
|
@@ -200,13 +214,6 @@
|
|
|
200
214
|
"example": "/skillers compact",
|
|
201
215
|
"category": "learning"
|
|
202
216
|
},
|
|
203
|
-
{
|
|
204
|
-
"name": "/git-map",
|
|
205
|
-
"tagline": "Git history intelligence for AI agents",
|
|
206
|
-
"description": "21 queries backed by a Rust binary: hotspots, coupling, ownership, bus factor, bugspots, area health, AI detection, test gaps, doc drift, and more. Cached, incrementally updatable. 9 plugins consume the data automatically.",
|
|
207
|
-
"example": "/git-map query hotspots",
|
|
208
|
-
"category": "analysis"
|
|
209
|
-
},
|
|
210
217
|
{
|
|
211
218
|
"name": "/onboard",
|
|
212
219
|
"tagline": "Oriented in any codebase in 3 minutes",
|
|
@@ -290,6 +297,16 @@
|
|
|
290
297
|
"name": "Codex CLI",
|
|
291
298
|
"prefix": "$",
|
|
292
299
|
"state_dir": "~/.codex/"
|
|
300
|
+
},
|
|
301
|
+
"cursor": {
|
|
302
|
+
"name": "Cursor",
|
|
303
|
+
"prefix": "/",
|
|
304
|
+
"state_dir": ".cursor/"
|
|
305
|
+
},
|
|
306
|
+
"kiro": {
|
|
307
|
+
"name": "Kiro",
|
|
308
|
+
"prefix": "/",
|
|
309
|
+
"state_dir": ".kiro/"
|
|
293
310
|
}
|
|
294
311
|
}
|
|
295
312
|
},
|
|
@@ -356,8 +373,8 @@
|
|
|
356
373
|
}
|
|
357
374
|
],
|
|
358
375
|
"agents": {
|
|
359
|
-
"total":
|
|
360
|
-
"file_based":
|
|
376
|
+
"total": 47,
|
|
377
|
+
"file_based": 37,
|
|
361
378
|
"role_based": 10,
|
|
362
379
|
"by_model": [
|
|
363
380
|
{
|
|
@@ -400,7 +417,7 @@
|
|
|
400
417
|
"highlights": [
|
|
401
418
|
"New /onboard plugin - codebase orientation in 3 minutes, 74% token savings, validated on 100 repos",
|
|
402
419
|
"New /can-i-help plugin - contributor guidance with 5 data-backed signals",
|
|
403
|
-
"New /
|
|
420
|
+
"New /repo-intel plugin (originally /git-map) - 21 git history queries backed by Rust binary",
|
|
404
421
|
"15 plugin READMEs written or upgraded, agent-analyzer v0.2.0 query tuning"
|
|
405
422
|
]
|
|
406
423
|
},
|
|
@@ -449,8 +466,8 @@
|
|
|
449
466
|
"description": "For PR operations and issue discovery"
|
|
450
467
|
},
|
|
451
468
|
{
|
|
452
|
-
"name": "
|
|
453
|
-
"description": "For /repo-
|
|
469
|
+
"name": "agent-analyzer",
|
|
470
|
+
"description": "For /repo-intel static analysis (installed automatically)"
|
|
454
471
|
}
|
|
455
472
|
],
|
|
456
473
|
"optional": [
|
|
@@ -488,7 +505,7 @@
|
|
|
488
505
|
],
|
|
489
506
|
"research": {
|
|
490
507
|
"knowledge_base": "8,000 lines of curated documentation from Anthropic, OpenAI, Google, and Microsoft",
|
|
491
|
-
"testing": "3,
|
|
508
|
+
"testing": "3,445 tests passing",
|
|
492
509
|
"drift_detect_repos": "1,000+ repositories validated",
|
|
493
510
|
"token_reduction": "77% fewer tokens for drift-detect vs multi-agent approaches"
|
|
494
511
|
},
|
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
|
@@ -94,7 +94,7 @@ Scroll order with rationale for each section. All sections are full-width, alter
|
|
|
94
94
|
- **Single column on mobile:** Text above, terminal below. Stack with 48px gap.
|
|
95
95
|
|
|
96
96
|
### Left Column Content
|
|
97
|
-
1. **Badge** (top, above title): Small pill showing version or "
|
|
97
|
+
1. **Badge** (top, above title): Small pill showing version or "19 plugins . 47 agents . 40 skills"
|
|
98
98
|
- Background: `rgba(99, 102, 241, 0.12)`, border: `1px solid rgba(99, 102, 241, 0.25)`, border-radius: 9999px
|
|
99
99
|
- Font: 13px, font-weight 500, primary accent color
|
|
100
100
|
- Padding: 4px 14px
|
|
@@ -104,7 +104,7 @@ Scroll order with rationale for each section. All sections are full-width, alter
|
|
|
104
104
|
- Color: white
|
|
105
105
|
- "entire dev workflow" portion highlighted with a subtle gradient text (primary-to-secondary accent via `background-clip: text`)
|
|
106
106
|
|
|
107
|
-
3. **Subtitle:** "
|
|
107
|
+
3. **Subtitle:** "19 plugins, 47 agents, 40 skills. From task selection to merged PR. Works with Claude Code, OpenCode, Codex CLI, Cursor, and Kiro."
|
|
108
108
|
- Font: 18px on desktop, 16px on mobile, font-weight 400, line-height 1.6
|
|
109
109
|
- Color: `rgba(255, 255, 255, 0.6)`
|
|
110
110
|
- Max-width: 520px
|
|
@@ -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
|
|
|
@@ -650,13 +650,13 @@ This disables:
|
|
|
650
650
|
### Head Content
|
|
651
651
|
```html
|
|
652
652
|
<title>AgentSys - Agent Runtime & Orchestration System</title>
|
|
653
|
-
<meta name="description" content="A modular runtime and orchestration system for AI agents.
|
|
653
|
+
<meta name="description" content="A modular runtime and orchestration system for AI agents. 19 plugins, 47 agents, 40 skills — structured pipelines for Claude Code, OpenCode, Codex CLI, Cursor, and Kiro.">
|
|
654
654
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
655
655
|
<meta name="theme-color" content="#0a0a0f">
|
|
656
656
|
|
|
657
657
|
<!-- Open Graph -->
|
|
658
658
|
<meta property="og:title" content="AgentSys">
|
|
659
|
-
<meta property="og:description" content="AI workflow automation.
|
|
659
|
+
<meta property="og:description" content="AI workflow automation. 19 plugins, 47 agents, 40 skills. Task to merged PR.">
|
|
660
660
|
<meta property="og:image" content="https://agent-sh.github.io/agentsys/assets/og-image.png">
|
|
661
661
|
<meta property="og:url" content="https://agent-sh.github.io/agentsys/">
|
|
662
662
|
<meta property="og:type" content="website">
|
|
@@ -664,7 +664,7 @@ This disables:
|
|
|
664
664
|
<!-- Twitter Card -->
|
|
665
665
|
<meta name="twitter:card" content="summary_large_image">
|
|
666
666
|
<meta name="twitter:title" content="AgentSys">
|
|
667
|
-
<meta name="twitter:description" content="AI workflow automation.
|
|
667
|
+
<meta name="twitter:description" content="AI workflow automation. 19 plugins, 47 agents, 40 skills.">
|
|
668
668
|
<meta name="twitter:image" content="https://agent-sh.github.io/agentsys/assets/og-image.png">
|
|
669
669
|
```
|
|
670
670
|
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: repo-mapping
|
|
3
|
-
description: "Use when user asks to \"create repo map\", \"generate repo map\", \"update repo map\", \"repo map status\", or \"map symbols/imports\". Builds and validates an AST-based repo map using ast-grep."
|
|
4
|
-
argument-hint: "[action] [--force]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Repo Mapping Skill
|
|
8
|
-
|
|
9
|
-
Build and maintain a cached AST-based map of repository symbols and imports using ast-grep.
|
|
10
|
-
|
|
11
|
-
## Parse Arguments
|
|
12
|
-
|
|
13
|
-
```javascript
|
|
14
|
-
const args = '$ARGUMENTS'.split(' ').filter(Boolean);
|
|
15
|
-
const action = args.find(a => !a.startsWith('--')) || 'status';
|
|
16
|
-
const force = args.includes('--force');
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Primary Responsibilities
|
|
20
|
-
|
|
21
|
-
1. **Generate map** on demand (`/repo-map init`)
|
|
22
|
-
2. **Update map** incrementally (`/repo-map update`)
|
|
23
|
-
3. **Check status** and staleness (`/repo-map status`)
|
|
24
|
-
4. **Validate output** with the map-validator agent
|
|
25
|
-
|
|
26
|
-
## Core Data Contract
|
|
27
|
-
|
|
28
|
-
Repo map is stored in the platform state directory:
|
|
29
|
-
|
|
30
|
-
- Claude Code: `.claude/repo-map.json`
|
|
31
|
-
- OpenCode: `.opencode/repo-map.json`
|
|
32
|
-
- Codex CLI: `.codex/repo-map.json`
|
|
33
|
-
|
|
34
|
-
Minimal structure:
|
|
35
|
-
|
|
36
|
-
```json
|
|
37
|
-
{
|
|
38
|
-
"version": "1.0.0",
|
|
39
|
-
"generated": "2026-01-25T12:00:00Z",
|
|
40
|
-
"updated": "2026-01-25T12:05:00Z",
|
|
41
|
-
"git": { "commit": "abc123", "branch": "main" },
|
|
42
|
-
"project": { "languages": ["typescript", "python"] },
|
|
43
|
-
"stats": { "totalFiles": 142, "totalSymbols": 847 },
|
|
44
|
-
"files": {
|
|
45
|
-
"src/auth/login.ts": {
|
|
46
|
-
"hash": "deadbeef1234abcd",
|
|
47
|
-
"language": "typescript",
|
|
48
|
-
"symbols": { "exports": [], "functions": [], "classes": [] },
|
|
49
|
-
"imports": [ { "source": "./utils", "kind": "named" } ]
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Behavior Rules
|
|
56
|
-
|
|
57
|
-
- **Never** run ast-grep without user approval if it is not installed
|
|
58
|
-
- **Never** install dependencies without explicit user consent
|
|
59
|
-
- **Always** validate map output with `map-validator` after init/update
|
|
60
|
-
- **Prefer** incremental update unless map is stale or history rewritten
|
|
61
|
-
|
|
62
|
-
## When to Suggest Repo Map
|
|
63
|
-
|
|
64
|
-
If a user asks for drift detection, documentation alignment, or repo analysis and repo-map is missing:
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
Repo map not found. For better analysis, run:
|
|
68
|
-
/repo-map init
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Staleness Signals
|
|
72
|
-
|
|
73
|
-
- Map commit not found (rebased)
|
|
74
|
-
- Branch changed
|
|
75
|
-
- Git hooks marked stale
|
|
76
|
-
- Commits behind HEAD
|
|
77
|
-
|
|
78
|
-
## Output Expectations
|
|
79
|
-
|
|
80
|
-
Keep outputs concise:
|
|
81
|
-
|
|
82
|
-
- **init/update**: file count, symbol count, commit, warnings
|
|
83
|
-
- **status**: staleness, commits behind, last updated
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
async function runWithConcurrency(items, limit, worker) {
|
|
4
|
-
if (!Array.isArray(items) || items.length === 0) {
|
|
5
|
-
return [];
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const maxConcurrency = Math.max(1, Math.min(items.length, Math.floor(limit) || 1));
|
|
9
|
-
const results = new Array(items.length);
|
|
10
|
-
let cursor = 0;
|
|
11
|
-
|
|
12
|
-
async function runWorker() {
|
|
13
|
-
while (true) {
|
|
14
|
-
const index = cursor;
|
|
15
|
-
cursor += 1;
|
|
16
|
-
if (index >= items.length) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
results[index] = await worker(items[index], index);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
await Promise.all(Array.from({ length: maxConcurrency }, () => runWorker()));
|
|
24
|
-
return results;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
module.exports = {
|
|
28
|
-
runWithConcurrency
|
|
29
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Go query patterns for ast-grep
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
'use strict';
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
8
|
-
exports: [],
|
|
9
|
-
functions: [
|
|
10
|
-
{ pattern: 'func $NAME($$$) { $$$ }', nameVar: 'NAME' },
|
|
11
|
-
{ pattern: 'func ($$$) $NAME($$$) { $$$ }', nameVar: 'NAME' }
|
|
12
|
-
],
|
|
13
|
-
classes: [],
|
|
14
|
-
types: [
|
|
15
|
-
{ pattern: 'type $NAME struct { $$$ }', nameVar: 'NAME' },
|
|
16
|
-
{ pattern: 'type $NAME interface { $$$ }', nameVar: 'NAME' },
|
|
17
|
-
{ pattern: 'type $NAME = $$$', nameVar: 'NAME' }
|
|
18
|
-
],
|
|
19
|
-
constants: [
|
|
20
|
-
{ pattern: 'const $NAME = $$$', nameVar: 'NAME' },
|
|
21
|
-
{ pattern: 'const $NAME $TYPE = $$$', nameVar: 'NAME' }
|
|
22
|
-
],
|
|
23
|
-
imports: [
|
|
24
|
-
{ pattern: 'import $SOURCE', sourceVar: 'SOURCE', kind: 'import' },
|
|
25
|
-
{ pattern: 'import $NAME $SOURCE', sourceVar: 'SOURCE', kind: 'import' }
|
|
26
|
-
]
|
|
27
|
-
};
|