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/README.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
21
|
<p align="center">
|
|
22
|
-
<b>19 plugins ·
|
|
22
|
+
<b>19 plugins · 47 agents · 40 skills (across all repos) · 30k lines of lib code · 3,583 tests · 5 platforms</b><br>
|
|
23
23
|
<em>Plugins distributed as standalone repos under <a href="https://github.com/agent-sh">agent-sh</a> org — agentsys is the marketplace & installer</em>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
@@ -45,7 +45,7 @@ AI models can write code. That's not the hard part anymore. The hard part is eve
|
|
|
45
45
|
|
|
46
46
|
## What This Is
|
|
47
47
|
|
|
48
|
-
An agent orchestration system — 19 plugins,
|
|
48
|
+
An agent orchestration system — 19 plugins, 47 agents, and 40 skills that compose into structured pipelines for software development. Each plugin lives in its own standalone repo under the [agent-sh](https://github.com/agent-sh) org. agentsys is the marketplace and installer that ties them together.
|
|
49
49
|
|
|
50
50
|
Each agent has a single responsibility, a specific model assignment, and defined inputs/outputs. Pipelines enforce phase gates so agents can't skip steps. State persists across sessions so work survives interruptions.
|
|
51
51
|
|
|
@@ -73,12 +73,51 @@ This came from testing on 1,000+ repositories.
|
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
76
|
+
## Benchmarks
|
|
77
|
+
|
|
78
|
+
Structured prompts and enriched context do more for output quality than model tier. Benchmarked March 2026 on real tasks (`/can-i-help` and `/onboard` against [glide-mq](https://github.com/avifenesh/glide-mq)), measured with `claude -p --output-format json`. Models: Claude Opus 4 and Claude Sonnet 4.
|
|
79
|
+
|
|
80
|
+
### Sonnet + AgentSys vs raw Opus
|
|
81
|
+
|
|
82
|
+
Same task, same repo, same prompt ("I want to improve docs"):
|
|
83
|
+
|
|
84
|
+
| Configuration | Cost | Output tokens | Result quality |
|
|
85
|
+
|---------------|------|---------------|----------------|
|
|
86
|
+
| Opus, no agentsys | $1.10 | 2,841 | Generic recommendations, no project-specific context |
|
|
87
|
+
| Opus + agentsys | $1.95 | 5,879 | Specific recommendations with effort estimates, convention awareness, breaking change detection |
|
|
88
|
+
| **Sonnet + agentsys** | **$0.66** | **6,084** | **Comparable to Opus + agentsys: specific, actionable, project-aware** |
|
|
89
|
+
|
|
90
|
+
Sonnet + agentsys produced more output with higher specificity than raw Opus - at 40% lower cost.
|
|
91
|
+
|
|
92
|
+
### With agentsys, model tier matters less
|
|
93
|
+
|
|
94
|
+
Once the pipeline provides structured prompts, enriched repo-intel data, and phase-gated workflows, the model does less heavy lifting. The gap between Sonnet and Opus narrows:
|
|
95
|
+
|
|
96
|
+
| Plugin | Opus | Sonnet | Savings |
|
|
97
|
+
|--------|------|--------|---------|
|
|
98
|
+
| /onboard | $1.10 | $0.30 | 73% |
|
|
99
|
+
| /can-i-help | $1.34 | $0.23 | 83% |
|
|
100
|
+
|
|
101
|
+
Both models reached the same outcome quality - Sonnet just costs less to get there. The structured pipeline captures most of the gains that would otherwise require a more expensive model.
|
|
102
|
+
|
|
103
|
+
### What this means
|
|
104
|
+
|
|
105
|
+
| Scenario | Model cost | Quality |
|
|
106
|
+
|----------|-----------|---------|
|
|
107
|
+
| Without agentsys | Need Opus for good results | Depends on model capability |
|
|
108
|
+
| **With agentsys** | **Sonnet is sufficient** | **Pipeline handles the structure, model handles judgment** |
|
|
109
|
+
|
|
110
|
+
The investment shifts from model spend to pipeline design. Better prompts, richer context, enforced phases - these compound in ways that model upgrades alone don't.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
76
114
|
## Commands
|
|
77
115
|
|
|
78
|
-
<!-- GEN:START:readme-commands -->
|
|
79
116
|
| Command | What it does |
|
|
80
117
|
|---------|--------------|
|
|
81
118
|
| [`/next-task`](#next-task) | Task workflow: discovery, implementation, PR, merge |
|
|
119
|
+
| [`/prepare-delivery`](#prepare-delivery) | Pre-ship quality gates: deslop, review, validation, docs sync |
|
|
120
|
+
| [`/gate-and-ship`](#gate-and-ship) | Quality gates then ship (/prepare-delivery + /ship) |
|
|
82
121
|
| [`/agnix`](#agnix) | Lint agent configurations (342 rules) |
|
|
83
122
|
| [`/ship`](#ship) | PR creation, CI monitoring, merge |
|
|
84
123
|
| [`/deslop`](#deslop) | Clean AI slop patterns |
|
|
@@ -86,7 +125,7 @@ This came from testing on 1,000+ repositories.
|
|
|
86
125
|
| [`/drift-detect`](#drift-detect) | Compare plan vs implementation |
|
|
87
126
|
| [`/audit-project`](#audit-project) | Multi-agent iterative code review |
|
|
88
127
|
| [`/enhance`](#enhance) | Plugin, agent, and prompt analyzers |
|
|
89
|
-
| [`/repo-
|
|
128
|
+
| [`/repo-intel`](#repo-intel) | Unified static analysis - git history, AST symbols, project metadata |
|
|
90
129
|
| [`/sync-docs`](#sync-docs) | Sync documentation with code changes |
|
|
91
130
|
| [`/learn`](#learn) | Research topics, create learning guides |
|
|
92
131
|
| [`/consult`](#consult) | Cross-tool AI consultation |
|
|
@@ -94,10 +133,8 @@ This came from testing on 1,000+ repositories.
|
|
|
94
133
|
| [`/web-ctl`](#web-ctl) | Browser automation for AI agents |
|
|
95
134
|
| [`/release`](#release) | Versioned release with ecosystem detection |
|
|
96
135
|
| [`/skillers`](#skillers) | Workflow pattern learning and automation |
|
|
97
|
-
| [`/git-map`](#git-map) | Git history analysis: hotspots, coupling, ownership, bus factor |
|
|
98
136
|
| [`/onboard`](#onboard) | Codebase orientation for newcomers |
|
|
99
137
|
| [`/can-i-help`](#can-i-help) | Match contributor skills to project needs |
|
|
100
|
-
<!-- GEN:END:readme-commands -->
|
|
101
138
|
|
|
102
139
|
Each command works standalone. Together, they compose into end-to-end pipelines.
|
|
103
140
|
|
|
@@ -105,12 +142,12 @@ Each command works standalone. Together, they compose into end-to-end pipelines.
|
|
|
105
142
|
|
|
106
143
|
## Skills
|
|
107
144
|
|
|
108
|
-
|
|
109
|
-
39 skills included across the plugins:
|
|
145
|
+
40 skills included across the plugins:
|
|
110
146
|
|
|
111
147
|
| Category | Skills |
|
|
112
148
|
|----------|--------|
|
|
113
|
-
| **Workflow** | `discover-tasks`, `orchestrate-review`, `validate-delivery` |
|
|
149
|
+
| **Workflow** | `discover-tasks`, `prepare-delivery`, `check-test-coverage`, `orchestrate-review`, `validate-delivery` |
|
|
150
|
+
| **Message Queues** | `glide-mq-migrate-bee`, `glide-mq-migrate-bullmq`, `glide-mq` |
|
|
114
151
|
| **Enhancement** | `enhance-agent-prompts`, `enhance-claude-memory`, `enhance-cross-file`, `enhance-docs`, `enhance-hooks`, `enhance-orchestrator`, `enhance-plugins`, `enhance-prompts`, `enhance-skills` |
|
|
115
152
|
| **Performance** | `baseline`, `benchmark`, `code-paths`, `investigation-logger`, `perf-analyzer`, `profile`, `theory-gatherer`, `theory-tester` |
|
|
116
153
|
| **Cleanup** | `deslop`, `sync-docs` |
|
|
@@ -119,9 +156,7 @@ Each command works standalone. Together, they compose into end-to-end pipelines.
|
|
|
119
156
|
| **Onboarding** | `can-i-help`, `onboard` |
|
|
120
157
|
| **Web** | `web-auth`, `web-browse` |
|
|
121
158
|
| **Release** | `release` |
|
|
122
|
-
| **Analysis** | `drift-analysis`, `
|
|
123
|
-
| **Other** | `glide-mq-migrate-bee`, `glide-mq-migrate-bullmq`, `glide-mq` |
|
|
124
|
-
<!-- GEN:END:readme-skills -->
|
|
159
|
+
| **Analysis** | `drift-analysis`, `repo-intel` |
|
|
125
160
|
|
|
126
161
|
**External skill plugins** (standalone repos, installed separately):
|
|
127
162
|
|
|
@@ -138,8 +173,10 @@ Skills are the reusable implementation units. Agents invoke skills; commands orc
|
|
|
138
173
|
| Section | What's there |
|
|
139
174
|
|---------|--------------|
|
|
140
175
|
| [The Approach](#the-approach) | Why it's built this way |
|
|
141
|
-
| [
|
|
142
|
-
| [
|
|
176
|
+
| [Benchmarks](#benchmarks) | Sonnet + agentsys vs raw Opus |
|
|
177
|
+
| [Commands](#commands) | All 20 commands overview |
|
|
178
|
+
| [Skills](#skills) | 40 skills across plugins |
|
|
179
|
+
| [Skill-Only Plugins](#skill-only-plugins) | glide-mq and other non-command plugins |
|
|
143
180
|
| [Command Details](#command-details) | Deep dive into each command |
|
|
144
181
|
| [How Commands Work Together](#how-commands-work-together) | Standalone vs integrated |
|
|
145
182
|
| [Design Philosophy](#design-philosophy) | The thinking behind the architecture |
|
|
@@ -149,6 +186,26 @@ Skills are the reusable implementation units. Agents invoke skills; commands orc
|
|
|
149
186
|
|
|
150
187
|
---
|
|
151
188
|
|
|
189
|
+
## Skill-Only Plugins
|
|
190
|
+
|
|
191
|
+
Plugins that provide skills without a `/` command. Installed alongside agentsys; skills become available to all agents.
|
|
192
|
+
|
|
193
|
+
### glide-mq
|
|
194
|
+
|
|
195
|
+
Build message queues, background jobs, and workflow orchestration with [glide-mq](https://github.com/avifenesh/glide-mq) - high-performance Node.js queue on Valkey/Redis.
|
|
196
|
+
|
|
197
|
+
| Skill | What it does |
|
|
198
|
+
|-------|--------------|
|
|
199
|
+
| `glide-mq` | Greenfield queue development - queues, workers, ordering, rate limiting, flows, broadcast, step jobs |
|
|
200
|
+
| `glide-mq-migrate-bullmq` | Migrate from BullMQ to glide-mq - API mapping, breaking changes, feature comparison |
|
|
201
|
+
| `glide-mq-migrate-bee` | Migrate from Bee-Queue to glide-mq - API mapping, pattern conversion |
|
|
202
|
+
|
|
203
|
+
Key features: per-key ordering, group concurrency, runtime group rate limiting (`job.rateLimitGroup()`), token bucket, DAG workflows, broadcast pub/sub, step jobs, deduplication, serverless producers.
|
|
204
|
+
|
|
205
|
+
[Skill plugin →](https://github.com/agent-sh/glidemq) | [glide-mq docs →](https://avifenesh.github.io/glide-mq.dev/) | [npm →](https://www.npmjs.com/package/glide-mq)
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
152
209
|
## Command Details
|
|
153
210
|
|
|
154
211
|
### /next-task
|
|
@@ -164,7 +221,7 @@ Skills are the reusable implementation units. Agents invoke skills; commands orc
|
|
|
164
221
|
5. **Planning** - Designs implementation approach
|
|
165
222
|
6. **User Approval** - You review and approve the plan (last human interaction)
|
|
166
223
|
7. **Implementation** - Executes the plan
|
|
167
|
-
8. **Pre-Review** - Runs [deslop](#deslop)-agent and test-coverage-checker
|
|
224
|
+
8. **Pre-Review** - Runs [deslop](#deslop)-agent and prepare-delivery:test-coverage-checker
|
|
168
225
|
9. **Review Loop** - Multi-agent review iterates until clean
|
|
169
226
|
10. **Delivery Validation** - Verifies tests pass, build passes, requirements met
|
|
170
227
|
11. **Docs Update** - Updates CHANGELOG and related documentation
|
|
@@ -181,8 +238,8 @@ Phase 9 uses the `orchestrate-review` skill to spawn parallel reviewers (code qu
|
|
|
181
238
|
| exploration-agent | sonnet | Deep codebase analysis before planning |
|
|
182
239
|
| planning-agent | opus | Designs step-by-step implementation plan |
|
|
183
240
|
| implementation-agent | opus | Writes the actual code |
|
|
184
|
-
| test-coverage-checker | sonnet | Validates tests exist and are meaningful |
|
|
185
|
-
| delivery-validator | sonnet | Final checks before shipping |
|
|
241
|
+
| prepare-delivery:test-coverage-checker | sonnet | Validates tests exist and are meaningful |
|
|
242
|
+
| prepare-delivery:delivery-validator | sonnet | Final checks before shipping |
|
|
186
243
|
| ci-monitor | haiku | Watches CI status |
|
|
187
244
|
| ci-fixer | sonnet | Fixes CI failures and review comments |
|
|
188
245
|
| simple-fixer | haiku | Executes mechanical edits |
|
|
@@ -206,6 +263,49 @@ Phase 9 uses the `orchestrate-review` skill to spawn parallel reviewers (code qu
|
|
|
206
263
|
|
|
207
264
|
---
|
|
208
265
|
|
|
266
|
+
### /prepare-delivery
|
|
267
|
+
|
|
268
|
+
**Purpose:** Run all pre-ship quality gates without shipping. Use after completing implementation manually or outside `/next-task`.
|
|
269
|
+
|
|
270
|
+
**What it runs (in order):**
|
|
271
|
+
|
|
272
|
+
1. **Pre-review gates** (parallel) - deslop + /simplify + prepare-delivery:test-coverage-checker
|
|
273
|
+
2. **Config lint** (conditional) - agnix + /enhance when changes touch agent/skill/plugin files
|
|
274
|
+
3. **Review loop** - 4 core reviewers + conditional specialists, max 5 iterations
|
|
275
|
+
4. **Delivery validation** - tests pass, build passes, requirements met
|
|
276
|
+
5. **Docs sync** - sync-docs agent updates documentation
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
/prepare-delivery # Run all quality gates
|
|
280
|
+
/prepare-delivery --skip-review # Skip review loop
|
|
281
|
+
/prepare-delivery --skip-docs # Skip docs sync
|
|
282
|
+
/prepare-delivery --base=develop # Against a specific base branch
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Does NOT create PRs or push - use `/ship` or `/gate-and-ship` after.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
### /gate-and-ship
|
|
290
|
+
|
|
291
|
+
**Purpose:** Quality gates then ship in one command. Chains `/prepare-delivery` then `/ship`.
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
/gate-and-ship # Full: quality gates + ship
|
|
295
|
+
/gate-and-ship --skip-review # Skip review, still ship
|
|
296
|
+
/gate-and-ship --base=develop # Against a specific base branch
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Composability:**
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
/gate-and-ship = /prepare-delivery + /ship
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Each piece runs independently - use `/prepare-delivery` alone to review before deciding to ship, or `/ship` alone if already validated.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
209
309
|
### /agnix
|
|
210
310
|
|
|
211
311
|
**Purpose:** Lint agent configurations before they break your workflow. The first dedicated linter for AI agent configs.
|
|
@@ -399,7 +499,7 @@ Three phases run in sequence:
|
|
|
399
499
|
3. **Breaking Point** - Binary search to find failure threshold
|
|
400
500
|
4. **Constraints** - CPU/memory limits, measure delta vs baseline
|
|
401
501
|
5. **Hypotheses** - Generate up to 5 hypotheses with evidence and confidence
|
|
402
|
-
6. **Code Paths** - Use repo-
|
|
502
|
+
6. **Code Paths** - Use repo-intel to identify entrypoints and hot files
|
|
403
503
|
7. **Profiling** - Language-specific tools (--cpu-prof, JFR, cProfile, pprof)
|
|
404
504
|
8. **Optimization** - One change per experiment, 2+ validation passes
|
|
405
505
|
9. **Decision** - Continue or stop based on measurable improvement
|
|
@@ -546,30 +646,33 @@ Findings are collected and categorized by severity (critical/high/medium/low). A
|
|
|
546
646
|
|
|
547
647
|
---
|
|
548
648
|
|
|
549
|
-
### /repo-
|
|
649
|
+
### /repo-intel
|
|
550
650
|
|
|
551
|
-
**Purpose:**
|
|
651
|
+
**Purpose:** Unified static analysis - git history, AST symbols, and project metadata in one plugin.
|
|
552
652
|
|
|
553
|
-
**What it
|
|
653
|
+
**What it provides:**
|
|
554
654
|
|
|
555
|
-
-
|
|
556
|
-
-
|
|
655
|
+
- Git history intelligence: hotspots, coupling, ownership, bus factor, bugspots, AI detection
|
|
656
|
+
- AST symbol mapping: exports, functions, classes, imports
|
|
657
|
+
- Project metadata and health metrics
|
|
557
658
|
|
|
558
|
-
Output is cached at `{state-dir}/repo-
|
|
659
|
+
Output is cached at `{state-dir}/repo-intel.json` and `{state-dir}/repo-map.json`.
|
|
559
660
|
|
|
560
661
|
**Why it matters:**
|
|
561
662
|
|
|
562
|
-
Tools like `/drift-detect
|
|
663
|
+
Tools like `/drift-detect`, `/onboard`, `/can-i-help`, and planners consume this data instead of re-scanning the repo every time. 9 plugins use repo-intel data automatically.
|
|
563
664
|
|
|
564
665
|
**Usage:**
|
|
565
666
|
|
|
566
667
|
```bash
|
|
567
|
-
/repo-
|
|
568
|
-
/repo-
|
|
569
|
-
/repo-
|
|
668
|
+
/repo-intel init # First-time scan
|
|
669
|
+
/repo-intel update # Incremental update
|
|
670
|
+
/repo-intel query hotspots # Most active files
|
|
671
|
+
/repo-intel query ownership src/ # Who owns a path
|
|
672
|
+
/repo-intel query bus-factor # Knowledge risk
|
|
570
673
|
```
|
|
571
674
|
|
|
572
|
-
|
|
675
|
+
Backed by [agent-analyzer](https://github.com/agent-sh/agent-analyzer) Rust binary.
|
|
573
676
|
|
|
574
677
|
---
|
|
575
678
|
|
|
@@ -848,44 +951,6 @@ No per-turn overhead - it reads transcripts that Claude Code already saves.
|
|
|
848
951
|
|
|
849
952
|
---
|
|
850
953
|
|
|
851
|
-
### /git-map
|
|
852
|
-
|
|
853
|
-
**Purpose:** Analyze git history to surface hotspots, coupling, ownership, bus factor, bugspots, area health, and AI attribution.
|
|
854
|
-
|
|
855
|
-
**How it works:**
|
|
856
|
-
|
|
857
|
-
The plugin wraps the [agent-analyzer](https://github.com/agent-sh/agent-analyzer) Rust binary. Run `init` once to scan git history and cache the result as `repo-intel.json`. Then run queries instantly.
|
|
858
|
-
|
|
859
|
-
**20 query types:**
|
|
860
|
-
|
|
861
|
-
| Category | Queries |
|
|
862
|
-
|----------|---------|
|
|
863
|
-
| Activity | `hotspots`, `coldspots`, `file-history` |
|
|
864
|
-
| Quality | `bugspots`, `test-gaps`, `diff-risk` |
|
|
865
|
-
| People | `ownership`, `contributors`, `bus-factor` |
|
|
866
|
-
| Coupling | `coupling` |
|
|
867
|
-
| Standards | `norms`, `conventions` |
|
|
868
|
-
| Health | `areas`, `health`, `release-info` |
|
|
869
|
-
| AI | `ai-ratio`, `recent-ai` |
|
|
870
|
-
| Guidance | `onboard`, `can-i-help` |
|
|
871
|
-
| Docs | `doc-drift` |
|
|
872
|
-
|
|
873
|
-
**9 plugins consume git-map data automatically** - deslop, sync-docs, drift-detect, audit-project, next-task, enhance, ship, onboard, can-i-help.
|
|
874
|
-
|
|
875
|
-
**Usage:**
|
|
876
|
-
|
|
877
|
-
```bash
|
|
878
|
-
/git-map init # First-time scan
|
|
879
|
-
/git-map update # Add new commits
|
|
880
|
-
/git-map query hotspots # Most active files
|
|
881
|
-
/git-map query ownership src/ # Who owns a path
|
|
882
|
-
/git-map query bus-factor # Knowledge risk
|
|
883
|
-
```
|
|
884
|
-
|
|
885
|
-
[Full query reference →](https://github.com/agent-sh/git-map)
|
|
886
|
-
|
|
887
|
-
---
|
|
888
|
-
|
|
889
954
|
### /onboard
|
|
890
955
|
|
|
891
956
|
**Purpose:** Get oriented in any codebase in under 3 minutes.
|
|
@@ -904,7 +969,7 @@ The plugin wraps the [agent-analyzer](https://github.com/agent-sh/agent-analyzer
|
|
|
904
969
|
|-------|------|------|
|
|
905
970
|
| quick | ~2s | Manifest + README + structure |
|
|
906
971
|
| normal | ~5s | + CLAUDE.md/AGENTS.md + CI + repo-intel |
|
|
907
|
-
| deep | ~15s | + repo-
|
|
972
|
+
| deep | ~15s | + repo-intel AST symbols |
|
|
908
973
|
|
|
909
974
|
**Supported manifests:** package.json, Cargo.toml, go.mod, pyproject.toml, deno.json, CMakeLists.txt, meson.build, setup.py, pom.xml, build.gradle. Detects monorepos (npm/pnpm/lerna/Cargo workspaces, Python libs/, Deno workspaces).
|
|
910
975
|
|
|
@@ -956,28 +1021,6 @@ The plugin wraps the [agent-analyzer](https://github.com/agent-sh/agent-analyzer
|
|
|
956
1021
|
|
|
957
1022
|
---
|
|
958
1023
|
|
|
959
|
-
## Skill-Only Plugins
|
|
960
|
-
|
|
961
|
-
Plugins that provide skills without a `/` command. Installed alongside agentsys; skills become available to all agents.
|
|
962
|
-
|
|
963
|
-
### glide-mq
|
|
964
|
-
|
|
965
|
-
**Purpose:** Build message queues, background jobs, and workflow orchestration with [glide-mq](https://github.com/avifenesh/glide-mq) - high-performance Node.js queue on Valkey/Redis.
|
|
966
|
-
|
|
967
|
-
**Skills:**
|
|
968
|
-
|
|
969
|
-
| Skill | What it does |
|
|
970
|
-
|-------|--------------|
|
|
971
|
-
| `glide-mq` | Greenfield queue development - queues, workers, ordering, rate limiting, flows, broadcast, step jobs |
|
|
972
|
-
| `glide-mq-migrate-bullmq` | Migrate from BullMQ to glide-mq - API mapping, breaking changes, feature comparison |
|
|
973
|
-
| `glide-mq-migrate-bee` | Migrate from Bee-Queue to glide-mq - API mapping, pattern conversion |
|
|
974
|
-
|
|
975
|
-
**Key features covered:** per-key ordering, group concurrency, runtime group rate limiting (`job.rateLimitGroup()`), token bucket, DAG workflows, broadcast pub/sub, step jobs, deduplication, serverless producers.
|
|
976
|
-
|
|
977
|
-
[Full documentation →](https://github.com/agent-sh/glidemq) | [glide-mq docs →](https://avifenesh.github.io/glide-mq.dev/)
|
|
978
|
-
|
|
979
|
-
---
|
|
980
|
-
|
|
981
1024
|
## How Commands Work Together
|
|
982
1025
|
|
|
983
1026
|
**Standalone use:**
|
|
@@ -985,11 +1028,22 @@ Plugins that provide skills without a `/` command. Installed alongside agentsys;
|
|
|
985
1028
|
```bash
|
|
986
1029
|
/deslop apply # Just clean up your code
|
|
987
1030
|
/sync-docs # Just check if docs need updates
|
|
1031
|
+
/prepare-delivery # Run all quality gates (no ship)
|
|
988
1032
|
/ship # Just ship this branch
|
|
1033
|
+
/gate-and-ship # Quality gates + ship in one command
|
|
989
1034
|
/audit-project # Just review the codebase
|
|
990
1035
|
```
|
|
991
1036
|
|
|
992
|
-
**
|
|
1037
|
+
**Composable delivery chain:**
|
|
1038
|
+
|
|
1039
|
+
```
|
|
1040
|
+
/prepare-delivery = quality gates only (deslop, review, validation, docs)
|
|
1041
|
+
/ship = PR + CI + merge only
|
|
1042
|
+
/gate-and-ship = /prepare-delivery + /ship
|
|
1043
|
+
/next-task = full workflow (discovery → implementation → /prepare-delivery → /ship)
|
|
1044
|
+
```
|
|
1045
|
+
|
|
1046
|
+
**Full integrated workflow:**
|
|
993
1047
|
|
|
994
1048
|
When you run [`/next-task`](#next-task), it orchestrates everything:
|
|
995
1049
|
|
|
@@ -998,15 +1052,15 @@ When you run [`/next-task`](#next-task), it orchestrates everything:
|
|
|
998
1052
|
↓
|
|
999
1053
|
implementation-agent writes code
|
|
1000
1054
|
↓
|
|
1001
|
-
deslop-agent
|
|
1055
|
+
deslop-agent + prepare-delivery:test-coverage-checker + /simplify (parallel)
|
|
1002
1056
|
↓
|
|
1003
|
-
|
|
1057
|
+
review loop iterates until approved
|
|
1004
1058
|
↓
|
|
1005
|
-
delivery-validator checks requirements
|
|
1059
|
+
prepare-delivery:delivery-validator checks requirements
|
|
1006
1060
|
↓
|
|
1007
1061
|
sync-docs-agent syncs documentation
|
|
1008
1062
|
↓
|
|
1009
|
-
|
|
1063
|
+
/ship creates PR → monitors CI → merges
|
|
1010
1064
|
```
|
|
1011
1065
|
|
|
1012
1066
|
The workflow tracks state so you can resume from any point.
|
|
@@ -1154,8 +1208,8 @@ agentsys --development # Dev mode (bypasses marketplace)
|
|
|
1154
1208
|
**For GitLab workflows:**
|
|
1155
1209
|
- GitLab CLI (`glab`) authenticated
|
|
1156
1210
|
|
|
1157
|
-
**For /repo-
|
|
1158
|
-
-
|
|
1211
|
+
**For /repo-intel:**
|
|
1212
|
+
- agent-analyzer (installed automatically via npm)
|
|
1159
1213
|
|
|
1160
1214
|
**For /agnix:**
|
|
1161
1215
|
- [agnix CLI](https://github.com/agent-sh/agnix) installed (`npm install -g agnix`, `cargo install agnix-cli`, or `brew install agnix`)
|
|
@@ -1181,7 +1235,7 @@ The system is built on research, not guesswork.
|
|
|
1181
1235
|
- Instruction following reliability
|
|
1182
1236
|
|
|
1183
1237
|
**Testing:**
|
|
1184
|
-
- 3,
|
|
1238
|
+
- 3,583 tests passing
|
|
1185
1239
|
- Drift-detect validated on 1,000+ repositories
|
|
1186
1240
|
- E2E workflow testing across all commands
|
|
1187
1241
|
- Cross-platform validation (Claude Code, OpenCode, Codex CLI, Cursor, Kiro)
|
package/lib/binary/version.js
CHANGED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Convert agent-analyzer repo-intel.json format to repo-map.json format.
|
|
5
|
+
*
|
|
6
|
+
* agent-analyzer outputs: { symbols: { [filePath]: { exports, imports, definitions } } }
|
|
7
|
+
* repo-map expects: { files: { [filePath]: { language, symbols, imports } } }
|
|
8
|
+
*
|
|
9
|
+
* @module lib/repo-map/converter
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const path = require('path');
|
|
13
|
+
|
|
14
|
+
const LANGUAGE_BY_EXTENSION = {
|
|
15
|
+
'.js': 'javascript', '.jsx': 'javascript', '.mjs': 'javascript', '.cjs': 'javascript',
|
|
16
|
+
'.ts': 'typescript', '.tsx': 'typescript', '.mts': 'typescript', '.cts': 'typescript',
|
|
17
|
+
'.py': 'python', '.pyw': 'python',
|
|
18
|
+
'.rs': 'rust',
|
|
19
|
+
'.go': 'go',
|
|
20
|
+
'.java': 'java'
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// SymbolKind values from agent-analyzer (kebab-case serialized)
|
|
24
|
+
const CLASS_KINDS = new Set(['class', 'struct', 'interface', 'enum', 'impl']);
|
|
25
|
+
const TYPE_KINDS = new Set(['trait', 'type-alias']);
|
|
26
|
+
const FUNCTION_LIKE_KINDS = new Set(['method', 'arrow', 'closure']);
|
|
27
|
+
const CONSTANT_KINDS = new Set(['constant', 'variable', 'const', 'field', 'property']);
|
|
28
|
+
|
|
29
|
+
function detectLanguage(filePath) {
|
|
30
|
+
return LANGUAGE_BY_EXTENSION[path.extname(filePath).toLowerCase()] || 'unknown';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function detectLanguagesFromFiles(filePaths) {
|
|
34
|
+
const langs = new Set();
|
|
35
|
+
for (const fp of filePaths) {
|
|
36
|
+
const lang = detectLanguage(fp);
|
|
37
|
+
if (lang !== 'unknown') langs.add(lang);
|
|
38
|
+
}
|
|
39
|
+
return Array.from(langs);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Convert a single file's symbols from repo-intel format to repo-map format.
|
|
44
|
+
* @param {string} filePath
|
|
45
|
+
* @param {Object} fileSym - { exports, imports, definitions }
|
|
46
|
+
* @returns {Object} repo-map file entry
|
|
47
|
+
*/
|
|
48
|
+
function convertFile(filePath, fileSym) {
|
|
49
|
+
const exportNames = new Set((fileSym.exports || []).map(e => e.name));
|
|
50
|
+
|
|
51
|
+
const exports = (fileSym.exports || []).map(e => ({
|
|
52
|
+
name: e.name,
|
|
53
|
+
kind: e.kind,
|
|
54
|
+
line: e.line
|
|
55
|
+
}));
|
|
56
|
+
|
|
57
|
+
const functions = [];
|
|
58
|
+
const classes = [];
|
|
59
|
+
const types = [];
|
|
60
|
+
const constants = [];
|
|
61
|
+
|
|
62
|
+
for (const def of fileSym.definitions || []) {
|
|
63
|
+
const entry = {
|
|
64
|
+
name: def.name,
|
|
65
|
+
kind: def.kind,
|
|
66
|
+
line: def.line,
|
|
67
|
+
exported: exportNames.has(def.name)
|
|
68
|
+
};
|
|
69
|
+
if (def.kind === 'function' || FUNCTION_LIKE_KINDS.has(def.kind)) {
|
|
70
|
+
functions.push(entry);
|
|
71
|
+
} else if (CLASS_KINDS.has(def.kind)) {
|
|
72
|
+
classes.push(entry);
|
|
73
|
+
} else if (TYPE_KINDS.has(def.kind)) {
|
|
74
|
+
types.push(entry);
|
|
75
|
+
} else if (CONSTANT_KINDS.has(def.kind)) {
|
|
76
|
+
constants.push(entry);
|
|
77
|
+
} else {
|
|
78
|
+
// Unknown kind - default to constants for backward compat
|
|
79
|
+
constants.push(entry);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// agent-analyzer imports: [{ from, names }] → repo-map imports: [{ source, kind, names }]
|
|
84
|
+
const imports = (fileSym.imports || []).map(imp => ({
|
|
85
|
+
source: imp.from,
|
|
86
|
+
kind: 'import',
|
|
87
|
+
names: imp.names || []
|
|
88
|
+
}));
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
language: detectLanguage(filePath),
|
|
92
|
+
symbols: { exports, functions, classes, types, constants },
|
|
93
|
+
imports
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Convert a full repo-intel data object to repo-map format.
|
|
99
|
+
* @param {Object} intel - RepoIntelData from agent-analyzer
|
|
100
|
+
* @returns {Object} repo-map.json compatible object
|
|
101
|
+
*/
|
|
102
|
+
function convertIntelToRepoMap(intel) {
|
|
103
|
+
const files = {};
|
|
104
|
+
let totalSymbols = 0;
|
|
105
|
+
let totalImports = 0;
|
|
106
|
+
|
|
107
|
+
for (const [filePath, fileSym] of Object.entries(intel.symbols || {})) {
|
|
108
|
+
files[filePath] = convertFile(filePath, fileSym);
|
|
109
|
+
const s = files[filePath].symbols;
|
|
110
|
+
totalSymbols += s.functions.length + s.classes.length +
|
|
111
|
+
s.types.length + s.constants.length;
|
|
112
|
+
totalImports += files[filePath].imports.length;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
version: '2.0',
|
|
117
|
+
generated: intel.generated || new Date().toISOString(),
|
|
118
|
+
git: intel.git ? { commit: intel.git.analyzedUpTo } : undefined,
|
|
119
|
+
project: { languages: detectLanguagesFromFiles(Object.keys(files)) },
|
|
120
|
+
stats: {
|
|
121
|
+
totalFiles: Object.keys(files).length,
|
|
122
|
+
totalSymbols,
|
|
123
|
+
totalImports,
|
|
124
|
+
errors: []
|
|
125
|
+
},
|
|
126
|
+
files
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
module.exports = { convertIntelToRepoMap, convertFile, detectLanguage };
|