agentsys 5.7.0 → 5.8.1

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.
@@ -951,7 +951,8 @@ If you find any of these while working:
951
951
  - frontend-specialist, backend-specialist, devops-reviewer
952
952
 
953
953
  **Skills:** 23 - Count SKILL.md in `plugins/*/skills/*/SKILL.md`
954
- - next-task: 4 (orchestrate-review, discover-tasks, validate-delivery, update-docs)
954
+ - next-task: 1 (discover-tasks)
955
+ - prepare-delivery: 4 (prepare-delivery, check-test-coverage, orchestrate-review, validate-delivery)
955
956
  - enhance: 10 (orchestrator, reporter, agent-prompts, claude-memory, docs, plugins, prompts, hooks, skills)
956
957
  - perf: 8 (analyzer, baseline, benchmark, code-paths, investigation-logger, profile, theory, theory-tester)
957
958
  - drift-detect: 1 (drift-analysis)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentsys",
3
- "version": "5.7.0",
3
+ "version": "5.8.1",
4
4
  "description": "A modular runtime and orchestration system for AI agents - works with Claude Code, OpenCode, and Codex CLI",
5
5
  "main": "lib/platform/detect-platform.js",
6
6
  "type": "commonjs",
@@ -49,6 +49,8 @@ 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',
@@ -68,9 +70,11 @@ const CATEGORY_MAP = {
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: 'next-task', name: 'validate-delivery' },
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' },
@@ -111,6 +115,8 @@ const STATIC_SKILLS = [
111
115
  // Purpose mapping for architecture table
112
116
  const PURPOSE_MAP = {
113
117
  'next-task': 'Master workflow orchestration',
118
+ 'prepare-delivery': 'Pre-ship quality gates',
119
+ 'gate-and-ship': 'Quality gates then ship',
114
120
  'enhance': 'Code quality analyzers',
115
121
  'ship': 'PR creation and deployment',
116
122
  'perf': 'Performance investigation',
@@ -173,7 +179,8 @@ function generateCommandsTable(commands) {
173
179
 
174
180
  // Curated display order (featured commands first, then alphabetical)
175
181
  const COMMAND_ORDER = [
176
- 'next-task', 'agnix', 'ship', 'deslop', 'perf',
182
+ 'next-task', 'prepare-delivery', 'gate-and-ship',
183
+ 'agnix', 'ship', 'deslop', 'perf',
177
184
  'drift-detect', 'audit-project', 'enhance',
178
185
  'repo-intel', 'sync-docs', 'learn', 'consult',
179
186
  'debate', 'web-ctl', 'release', 'skillers',
@@ -183,7 +190,9 @@ function generateCommandsTable(commands) {
183
190
  // Command descriptions for the table (short, human-written summaries)
184
191
  const COMMAND_SUMMARIES = {
185
192
  'next-task': 'Task workflow: discovery, implementation, PR, merge',
186
- 'agnix': 'Lint agent configurations (342 rules)',
193
+ 'prepare-delivery': 'Pre-ship quality gates: deslop, review, validation, docs sync',
194
+ 'gate-and-ship': 'Quality gates then ship (/prepare-delivery + /ship)',
195
+ 'agnix': 'Lint agent configurations (385 rules)',
187
196
  'ship': 'PR creation, CI monitoring, merge',
188
197
  'deslop': 'Clean AI slop patterns',
189
198
  'perf': 'Performance investigation with baselines and profiling',
@@ -1,13 +1,19 @@
1
1
  agnix
2
2
  audit-project
3
+ can-i-help
3
4
  consult
4
5
  debate
5
6
  deslop
6
7
  drift-detect
7
8
  enhance
9
+ gate-and-ship
8
10
  learn
9
11
  next-task
12
+ onboard
10
13
  perf
11
- repo-map
14
+ prepare-delivery
15
+ repo-intel
12
16
  ship
17
+ skillers
13
18
  sync-docs
19
+ web-ctl
@@ -687,33 +687,14 @@
687
687
  * -------------------------------------------------------------------------- */
688
688
  .tabs[role="tablist"] {
689
689
  display: flex;
690
+ flex-wrap: wrap;
690
691
  gap: var(--space-1);
691
- overflow-x: auto;
692
- scrollbar-width: none;
693
- -webkit-overflow-scrolling: touch;
694
692
  padding-bottom: var(--space-4);
695
693
  border-bottom: 1px solid var(--color-border-subtle);
696
694
  margin-bottom: var(--space-6);
697
695
  position: relative;
698
696
  }
699
697
 
700
- .tabs[role="tablist"]::-webkit-scrollbar {
701
- display: none;
702
- }
703
-
704
- /* Right fade for scroll hint */
705
- .tabs[role="tablist"]::after {
706
- content: '';
707
- position: sticky;
708
- right: 0;
709
- top: 0;
710
- bottom: 0;
711
- width: 40px;
712
- flex-shrink: 0;
713
- background: linear-gradient(to right, transparent, var(--color-bg-base));
714
- pointer-events: none;
715
- }
716
-
717
698
  .tabs--small .tabs__tab {
718
699
  font-size: var(--text-sm);
719
700
  }
@@ -903,6 +884,76 @@
903
884
  color: var(--color-text-faint);
904
885
  }
905
886
 
887
+ /* --------------------------------------------------------------------------
888
+ * INLINE PIPELINE (inside command panels)
889
+ * -------------------------------------------------------------------------- */
890
+ .pipeline-inline {
891
+ margin-top: var(--space-6);
892
+ padding-top: var(--space-5);
893
+ border-top: 1px solid var(--color-border-subtle);
894
+ }
895
+
896
+ .pipeline-inline__label {
897
+ font-size: var(--text-xs);
898
+ font-weight: var(--font-semibold);
899
+ color: var(--color-text-muted);
900
+ text-transform: uppercase;
901
+ letter-spacing: var(--tracking-wider);
902
+ margin-bottom: var(--space-3);
903
+ }
904
+
905
+ .pipeline-inline__steps {
906
+ display: flex;
907
+ flex-wrap: wrap;
908
+ align-items: center;
909
+ gap: var(--space-2);
910
+ }
911
+
912
+ .pipeline-inline__step {
913
+ display: flex;
914
+ align-items: center;
915
+ gap: var(--space-2);
916
+ padding: var(--space-1) var(--space-3);
917
+ background: var(--color-bg-surface-2);
918
+ border: 1px solid var(--color-border-subtle);
919
+ border-radius: var(--radius-default);
920
+ cursor: default;
921
+ transition: border-color var(--duration-fast) var(--ease-out),
922
+ background var(--duration-fast) var(--ease-out);
923
+ }
924
+
925
+ .pipeline-inline__step:hover {
926
+ border-color: var(--color-border-default);
927
+ background: var(--color-bg-surface-3);
928
+ }
929
+
930
+ .pipeline-inline__num {
931
+ display: inline-flex;
932
+ align-items: center;
933
+ justify-content: center;
934
+ width: 18px;
935
+ height: 18px;
936
+ font-size: 10px;
937
+ font-weight: var(--font-semibold);
938
+ color: var(--color-accent-purple);
939
+ background: var(--color-accent-muted);
940
+ border-radius: var(--radius-full);
941
+ flex-shrink: 0;
942
+ }
943
+
944
+ .pipeline-inline__title {
945
+ font-size: var(--text-xs);
946
+ font-family: var(--font-mono);
947
+ color: var(--color-text-secondary);
948
+ white-space: nowrap;
949
+ }
950
+
951
+ .pipeline-inline__arrow {
952
+ color: var(--color-text-faint);
953
+ font-size: var(--text-sm);
954
+ flex-shrink: 0;
955
+ }
956
+
906
957
  /* --------------------------------------------------------------------------
907
958
  * SCROLL CUE
908
959
  * -------------------------------------------------------------------------- */
@@ -1025,6 +1076,7 @@
1025
1076
  @media (min-width: 768px) {
1026
1077
  .steps {
1027
1078
  flex-direction: row;
1079
+ flex-wrap: wrap;
1028
1080
  align-items: flex-start;
1029
1081
  justify-content: center;
1030
1082
  gap: var(--space-4);
@@ -580,11 +580,11 @@
580
580
  ]
581
581
  },
582
582
  1: {
583
- subtitle: '155 rules. 10+ AI tools. One command.',
583
+ subtitle: '385 rules. 10+ AI tools. One command.',
584
584
  steps: [
585
585
  { title: 'Discover configs', desc: 'Finds all agent configuration files: Skills, Hooks, MCP, Memory, and Plugins across your project.' },
586
- { title: 'Run 155 rules', desc: 'Validates against 155 rules across 10+ AI tools including Claude Code, Cursor, Copilot, Codex, and more.' },
587
- { title: 'Fix and report', desc: '57 rules are auto-fixable with --fix flag. Outputs SARIF for GitHub Code Scanning integration.' }
586
+ { title: 'Run 385 rules', desc: 'Validates against 385 rules across 10+ AI tools including Claude Code, Cursor, Copilot, Codex, and more.' },
587
+ { title: 'Fix and report', desc: '102 rules are auto-fixable with --fix flag. Outputs SARIF for GitHub Code Scanning integration.' }
588
588
  ]
589
589
  },
590
590
  2: {
@@ -636,11 +636,11 @@
636
636
  ]
637
637
  },
638
638
  8: {
639
- subtitle: 'AST-based. Cached. Always current.',
639
+ subtitle: 'Unified analysis. Cached. 24 query types.',
640
640
  steps: [
641
- { title: 'Parse with AST', desc: 'Uses ast-grep to extract every export, function, class, and import from your codebase.' },
642
- { title: 'Build the map', desc: 'Creates a cached JSON map of symbols and their relationships stored in the platform state directory.' },
643
- { title: 'Validate output', desc: 'The map-validator agent checks for obvious errors, missing data, and structural issues.' }
641
+ { title: 'Analyze repo', desc: 'Rust binary scans git history, file structure, and code patterns. Extracts hotspots, coupling, ownership, and conventions.' },
642
+ { title: 'Build cached map', desc: 'Creates repo-intel.json with symbols, imports, exports, and metadata in the platform state directory.' },
643
+ { title: 'Query on demand', desc: '24 query types: hotspots, bugspots, test-gaps, bus-factor, diff-risk, conventions, stale-docs, and more.' }
644
644
  ]
645
645
  },
646
646
  9: {
@@ -682,6 +682,54 @@
682
682
  { title: 'Authenticate', desc: 'Opens headed Chrome for human login (2FA, CAPTCHAs). Polls for success, then encrypts cookies for reuse.' },
683
683
  { title: 'Run headless', desc: 'Subsequent actions run headless using saved cookies. Snapshot-based element discovery with classified error codes.' }
684
684
  ]
685
+ },
686
+ 14: {
687
+ subtitle: 'Five quality gates. Zero shortcuts.',
688
+ steps: [
689
+ { title: 'Clean and lint', desc: 'Deslop + simplify + test-coverage run in parallel. Then agnix and /enhance lint any changed agent configs.' },
690
+ { title: 'Review and validate', desc: '4 core reviewers iterate until clean (max 5 rounds). Then delivery-validator checks tests, build, and requirements.' },
691
+ { title: 'Sync docs and ship', desc: 'Documentation synced with code changes. Ready for /ship or /gate-and-ship to create the PR.' }
692
+ ]
693
+ },
694
+ 15: {
695
+ subtitle: 'Quality gates then ship. One command.',
696
+ steps: [
697
+ { title: 'Run /prepare-delivery', desc: 'All five quality gates: deslop, config lint, review loop, delivery validation, and docs sync.' },
698
+ { title: 'Run /ship', desc: 'Commit, push, create PR, wait for auto-reviewers, address comments, monitor CI, merge.' },
699
+ { title: 'Done', desc: 'From code-complete to merged PR. If gates fail, ship does not run. Each piece also runs independently.' }
700
+ ]
701
+ },
702
+ 16: {
703
+ subtitle: 'Detect ecosystem. Tag. Publish.',
704
+ steps: [
705
+ { title: 'Discover release method', desc: 'Finds your release tool: semantic-release, release-it, goreleaser, cargo-release, or manual npm/cargo/go publish.' },
706
+ { title: 'Pre-release checks', desc: 'Runs tests, verifies build, checks repo-intel health (bus factor, AI ratio, bugspots). Bumps version.' },
707
+ { title: 'Tag and publish', desc: 'Creates git tag, publishes to registry (npm, crates.io, PyPI, etc.), creates GitHub release with notes.' }
708
+ ]
709
+ },
710
+ 17: {
711
+ subtitle: 'Transcripts in. Automation suggestions out.',
712
+ steps: [
713
+ { title: 'Read transcripts', desc: 'Reads saved sessions from Claude Code, Codex, and OpenCode. No hooks, no per-turn overhead.' },
714
+ { title: 'Cluster patterns', desc: 'Extracts observations, groups by theme, weights by frequency. Identifies repetitive workflows.' },
715
+ { title: 'Suggest automation', desc: 'Recommends skills, hooks, and agents that would automate the patterns found. Checks existing ecosystem first.' }
716
+ ]
717
+ },
718
+ 18: {
719
+ subtitle: 'Automated data collection. Interactive tour.',
720
+ steps: [
721
+ { title: 'Collect project data', desc: 'Scans package.json, git history, directory structure, key files, and conventions automatically.' },
722
+ { title: 'Generate overview', desc: 'Synthesizes a structured project summary: architecture, patterns, key files, and entry points.' },
723
+ { title: 'Interactive Q&A', desc: 'Answers questions about the codebase interactively. Identifies key files, conventions, and gotchas.' }
724
+ ]
725
+ },
726
+ 19: {
727
+ subtitle: 'Match skills to project needs.',
728
+ steps: [
729
+ { title: 'Analyze project', desc: 'Uses repo-intel to find test gaps, stale docs, open issues, bugspots, and areas with low bus factor.' },
730
+ { title: 'Match skills', desc: 'Asks about your experience and interests. Matches your skills to areas where you can make the most impact.' },
731
+ { title: 'Suggest tasks', desc: 'Presents ranked list of good-first tasks, documentation fixes, test gaps, and contribution opportunities.' }
732
+ ]
685
733
  }
686
734
  };
687
735
 
@@ -727,7 +775,8 @@
727
775
  num.textContent = i + 1;
728
776
  card.appendChild(num);
729
777
 
730
- card.appendChild(stepIconTemplates[i].content.cloneNode(true));
778
+ var tpl = stepIconTemplates[i % stepIconTemplates.length];
779
+ if (tpl) card.appendChild(tpl.content.cloneNode(true));
731
780
 
732
781
  var title = document.createElement('h3');
733
782
  title.className = 'steps__card-title';
@@ -788,6 +837,52 @@
788
837
  updateHowItWorks(e.detail.index);
789
838
  });
790
839
  }
840
+
841
+ // Inject inline pipeline steps into each command panel so users see them without scrolling
842
+ var commandPanels = document.querySelectorAll('.commands .tabs__panel');
843
+ commandPanels.forEach(function (panel, idx) {
844
+ var data = howItWorksData[idx];
845
+ if (!data || !data.steps) return;
846
+
847
+ var pipeline = document.createElement('div');
848
+ pipeline.className = 'pipeline-inline';
849
+
850
+ var label = document.createElement('p');
851
+ label.className = 'pipeline-inline__label';
852
+ label.textContent = 'How it works';
853
+ pipeline.appendChild(label);
854
+
855
+ var stepsRow = document.createElement('div');
856
+ stepsRow.className = 'pipeline-inline__steps';
857
+
858
+ data.steps.forEach(function (step, i) {
859
+ if (i > 0) {
860
+ var arrow = document.createElement('span');
861
+ arrow.className = 'pipeline-inline__arrow';
862
+ arrow.setAttribute('aria-hidden', 'true');
863
+ arrow.textContent = '\u2192';
864
+ stepsRow.appendChild(arrow);
865
+ }
866
+ var stepEl = document.createElement('div');
867
+ stepEl.className = 'pipeline-inline__step';
868
+ stepEl.setAttribute('title', step.desc);
869
+
870
+ var num = document.createElement('span');
871
+ num.className = 'pipeline-inline__num';
872
+ num.textContent = i + 1;
873
+ stepEl.appendChild(num);
874
+
875
+ var title = document.createElement('span');
876
+ title.className = 'pipeline-inline__title';
877
+ title.textContent = step.title;
878
+ stepEl.appendChild(title);
879
+
880
+ stepsRow.appendChild(stepEl);
881
+ });
882
+
883
+ pipeline.appendChild(stepsRow);
884
+ panel.appendChild(pipeline);
885
+ });
791
886
  }
792
887
 
793
888
  // ========================================================================
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, 38 agents, 39 skills - structured pipelines for Claude Code, OpenCode, and Codex CLI.",
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.7.0",
8
+ "version": "5.8.1",
9
9
  "author": "Avi Fenesh",
10
10
  "author_url": "https://github.com/avifenesh"
11
11
  },
@@ -33,7 +33,7 @@
33
33
  "suffix": ""
34
34
  },
35
35
  {
36
- "value": "38",
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,575",
46
+ "value": "3,750",
47
47
  "label": "Tests",
48
48
  "suffix": ""
49
49
  },
@@ -95,10 +95,24 @@
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",
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.",
115
+ "description": "385 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
116
  "example": "/agnix --fix",
103
117
  "category": "linting"
104
118
  },
@@ -283,6 +297,16 @@
283
297
  "name": "Codex CLI",
284
298
  "prefix": "$",
285
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/"
286
310
  }
287
311
  }
288
312
  },
@@ -393,7 +417,7 @@
393
417
  "highlights": [
394
418
  "New /onboard plugin - codebase orientation in 3 minutes, 74% token savings, validated on 100 repos",
395
419
  "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",
420
+ "New /repo-intel plugin (originally /git-map) - 21 git history queries backed by Rust binary",
397
421
  "15 plugin READMEs written or upgraded, agent-analyzer v0.2.0 query tuning"
398
422
  ]
399
423
  },
@@ -403,7 +427,7 @@
403
427
  "highlights": [
404
428
  "Agent-analyzer Phase 1 - git intelligence with 21 queries",
405
429
  "Repo-intel integration across 11 plugins",
406
- "agnix v0.16.0 - 342 validation rules"
430
+ "agnix v0.16.0 - 385 validation rules"
407
431
  ]
408
432
  },
409
433
  {
@@ -481,7 +505,7 @@
481
505
  ],
482
506
  "research": {
483
507
  "knowledge_base": "8,000 lines of curated documentation from Anthropic, OpenAI, Google, and Microsoft",
484
- "testing": "3,575 tests passing",
508
+ "testing": "3,750 tests passing",
485
509
  "drift_detect_repos": "1,000+ repositories validated",
486
510
  "token_reduction": "77% fewer tokens for drift-detect vs multi-agent approaches"
487
511
  },