/agnix 需另行安装 agnix CLI;/foreman 需 Node.js 22+、已认证的 gh 和 PATH 中的 waitfor;deslop 依赖的 agent-analyzer 首次使用时才自动下载

agentsys
agent-shMIT活跃维护一套面向 Claude Code、Cursor 等 AI 编程助手的插件与智能体集合,把写代码之外的评审、自动化等开发流程也交给 AI 接管。
AI writes code. This automates everything else · 24 plugins · 49 agents · 44 skills · for Claude Code, OpenCode, Codex, Cursor, Kiro.
npm install -g agentsys && agentsysREADME 未说明,未提及 GPU 或显存要求;仅要求 Git 与 Node.js 18+,/foreman 需 Node.js 22+
为 AI 编程代理提供模块化运行时与编排系统,把分支管理、代码审查、CI、PR 评论等周边流程自动化
一套面向 Claude Code、Cursor 等 AI 编程助手的插件与智能体集合,把写代码之外的评审、自动化等开发流程也交给 AI 接管。
核心能力
- 用插件、代理、技能三层组合成带阶段门禁的结构化流水线
- 状态跨会话持久化,任务中断后可继续
- 检测用正则与 AST 静态分析,判断才调用 LLM 以省 token
- 按 HIGH/MEDIUM/LOW 三级确定性标注发现结果
- 提供 /foreman 等命令直接处理 GitHub issue 队列
容易踩的坑
- v6.1.1最新正式版2026-10-06 · 2026-10-06 02:15 UTC
Changed
AGENTS.mdsays every change reaches main through a PR, with no exception for small fixes or hotfixes, and drops the 30-minute wait on Copilot, Claude, Gemini and Codex reviews. A PR gets a self-review (a fresh-context subagent reviews the diff and posts it as a PR comment), revuto and CI comments and failures are addressed, and when revuto is capped or down the self-review is enough and the PR body says so.agent-docs/release.md,checklists/release.mdand thebump-versionnext steps merge the release commit through a PR and push only the tag, notmainor--tags(#423).
Fixed
- OpenCode, Codex, Cursor and Kiro installs get onboard and can-i-help. Neither ships a
.claude-plugin/plugin.jsonat its pinned commit, and plugin discovery lists only directories with a plugin.json, so the installer fetched both plugins and installed nothing from them. Claude Code installs such a plugin from its marketplace entry and loadscommands/,agents/andskills/from the plugin root; the installer now does the same. A fetched plugin without a plugin.json gets one in~/.agentsys/plugins/<name>/made from its marketplace entry (name, version, description), and a cache from an earlier version gets it without a new download. onboard and can-i-help now install their command, agent and skill (#422). - The installer fetches a
git-subdirsource (urlpluspath, Claude Code's source for a plugin in a repo folder) as that folder, pinned byshaorcommitlike aurlsource, and records the folder in the cache's.path. Before, itspathmade the installer treat it as a local plugin and fetch nothing. Apathwith.., an absolute path, a folder missing at the pin and a symlinked folder that leads out of the archive are errors (#422). - agnix installs its
/agnixcommand, agnix-agent andagnixskill on every platform. Its marketplace entry was aurlsource for the whole repo, and the plugin lives in the repo'splugin/folder, so Claude Code installed only the repo rootskills/agnixskill, and OpenCode, Codex, Cursor and Kiro installed nothing. The entry is now agit-subdirsource forplugin/at the same commit (ed9e01e, agnix 0.56.5). A scratchclaude plugin install agnix@agentsys(Claude Code 2.1.290) installs the folder at the pinned commit with the command, the agent and the skill; the npm installer gives OpenCode the command, agent and skill, Kiro the prompt, agent and skill, Cursor the command and skill, and Codex the command as$agnix(the skill shares its name, so it is left out, as for deslop and consult).scripts/pin-marketplace.jspinsgit-subdirentries as well asurlones and keeps theirpath, and the marketplace tests check the commit,shaand folder of everygit-subdirentry. The agent count is 50 (40 file-based), with agnix-agent indocs/reference/AGENTS.md(#422).
- v6.1.02026-10-06 · 2026-10-06 01:33 UTC
查看更新说明
Changed
- The
claude.ymlandclaude-code-review.ymlworkflows runclaude-code-actionv1.0.232 withclaude_args: --model claude-opus-5-5. The oldmodel:input is not an input of the action at v1.0.70 or later, so theclaude-opus-4-5-20251101pin never took effect. - The README consult table names the current model families: Claude
claude-haiku-4-5/claude-sonnet-5/claude-opus-5-5(plusclaude-fable-5-1for explicit--model), Codexgpt-6-solfor low and medium effort andgpt-6-astrafor high and max. - Agent model tables in
AGENTS.mdanddocs/reference/AGENTS.mdshow what each family alias resolves to. banthismarketplace pin moves from 0.3.1 to 0.6.0: a section that lost its end marker is repaired in place, the written preamble has no em dash, and ban triggers fire only on an explicit user ask (0.4.0, banthis#3); the command and skill are rewritten for current models (0.5.0, banthis#4); the preamble puts the user's current request above the stored rules, and the agent writes a rule only after the user confirms its wording (0.6.0, banthis#6).- Instruction files rewritten for current models:
AGENTS.md,docs/reference/AGENTS.mdand themaintain-cross-platformmeta skill say each rule once, with its reason and without caps, and match the current code and the pinned plugins. The agent reference now lists all 39 file-based agents from the pinnedagents/*.md(it missed the two repo-intel enrich agents, listed anagnix-agentthat does not exist, and described ci-monitor as an unbounded 15-second poll; it waits ongh pr checks --watchwith a 30-minute bound). agent-docs/workflow.mdanddocs/workflows/NEXT-TASK.mdmatch the pinned next-task agents: exploration-agent runs on sonnet, planning-agent and implementation-agent inherit the session model, and the review loop is sized to the diff (one reviewer, up to 4 for large or risky diffs, at most 3 rounds) instead of always spawning 4 reviewers through orchestrate-review. They also count the agents /next-task actually runs (10, plus 1 to 4 review subagents), describe the stopping points, the read-only deslop and sync-docs agents whose fixes simple-fixer applies (sync-docs does not invoke/ship), the orchestrator owning the task registry and flow state,--abortremoving a clean worktree, and ci-monitor and ci-fixer as the pinned agents behave: ci-monitor waits ongh pr checks --watchfor at most 30 minutes and is not spawned by /next-task or /ship, ci-fixer makes one minimal fix and leaves replies and thread resolution to its caller.docs/INSTALLATION.mdanddocs/CROSS_PLATFORM.mddescribe the Kiro install the CLI performs: global~/.kiro/, commands as prompts in~/.kiro/prompts/, whole skill directories. They,docs/ARCHITECTURE.md, the Codex and OpenCode references and the cross-platform checklist also describe whole skill directories on the other platforms, Codex plugin skills, and Cursor's global~/.cursor/install.docs/workflows/SHIP.mdand the README/shipsection match the pinned ship plugin. CI waits ongh pr checks --watch, not a 15-second poll. There is no fixed 3-minute reviewer wait orSHIP_INITIAL_WAIT:/shipwaits only for a review bot that recent PRs show posting without a check run, for its review of the current commit, at most 15 minutes per wait. The review loop stops after 5 rounds, not 10; feedback is fixed or answered on its merits instead of sorted into five categories; production rolls back withgit revert, notgit reset --hardand a force push;SHIP_DEBUGis gone; and/next-taskcalls/ship, not sync-docs-agent.- Marketplace pins move to each plugin's current
main: next-task 1.3.0, prepare-delivery 0.3.0, ship 1.3.0, audit-project 1.3.0, perf 1.2.0, drift-detect 5.4.0, sync-docs 1.2.0, skill-curator 1.2.0, repo-intel 0.5.0, debate 1.2.0, deslop 1.3.0, learn 1.3.0, consult 1.2.0, enhance 1.2.0 and agnix 0.56.5. zig-lsp's entry declares 0.1.1, the version its pinne
- The
- v6.0.22026-08-28 · 2026-08-28 23:02 UTC
查看更新说明
Added
- CI runs the jest suite on
windows-latestas well as Linux, withfail-fastdisabled so a Windows-only failure does not hide the Linux result (#392). The Windows-specific paths in this repo -where.exeexecutable resolution, PATHEXT-aware lookups, and thecmd.exerouting.cmdshims have needed since the CVE-2024-27980 fix - had never been exercised by CI: every regression in them so far was found by a user on Windows or by reading the code, which is why one defect class took three PRs to close. - Dependabot configuration: weekly npm checks with minor and patch updates grouped into one PR (#385).
Changed
jest29.7.0 -> 30.4.2 (#387). Jest 30 treats--testPathPatternas a fatal deprecation, so the targeted-test commands in the checklists now pass--testPathPatterns.
Removed
- Deleted
adapters/codex/install.shandadapters/opencode/install.sh(#395). Both sourced every command and skill fromplugins/, a tree removed when plugins moved to standalone repos, so each mapping took the "skipped" branch and the scripts installed nothing while still printing[OK] Installation complete!and listing skills they had not written. They were not inert: before copying, theyrm -rf'd five skill directories and~/.codex/prompts, so running one deleted a working install and reported success.agentsys --tool codex/agentsys --tool opencode(bin/cli.js) is the supported install path, withscripts/dev-install.jscovering dev installs, and the adapter READMEs, the OpenCode plugin checklist, and themaintain-cross-platformskill no longer point at the scripts.
Security
- Claude plugin marketplace/install/update/uninstall in
bin/cli.jsnow spawn viaexecFileSyncwith an argv array, so no plugin ID reaches a shell (#388). - Lockfile bump closing GHSA-5p4m-2wfm-xmqj in
js-yaml, together with the remaining audit-fixable high-severity advisories (#386). Transitive dev dependencies; no manifest range changed. - Lockfile bump taking
brace-expansionto 1.1.16, closing its high-severity ReDoS advisory (#383). Transitive dev dependency; no manifest range changed.
Fixed
- Windows: the Claude Code executable is now resolved from
where.exeinstead of assuming the npm shim.execFileSyncdoes not apply PATHEXT, and the previous hardcodedclaude.cmddid not exist for native-installer users who haveclaude.exe- those calls raisedENOENT, the error was swallowed, and the CLI reported success while installing nothing. A directly launchableclaude.exeis preferred over a batch shim regardless of PATH order. - Windows: an npm-global
claude.cmdshim is launched throughcmd.exerather than handed toexecFileSync, which fails withEINVAL- Node'ssrchas disallowed direct.bat/.cmdspawning since the CVE-2024-27980 fix in 18.20.2 / 20.12.2 / 21.7.3. Arguments are rejected unless they are free of whitespace and shell metacharacters, so the extra hop cannot reintroduce the injection surface #388 closed. agentsys installno longer reports[OK] Installed ... successfullywhen Claude Code rejected a plugin. It names the plugins that failed, with the errno when the shim could not be spawned at all, and how to retry. The same now applies when theclaudeCLI is not on PATH at all (~/.claudealone was enough to mark the platform as installed) and when a dependency id would be rejected. Such a plugin is also no longer recorded againstclaudeininstalled.json-agentsys listandagentsys removeread those platforms back - though a registration recorded by an earlier successful install is preserved, since a failed re-install is not evidence the first one never landed. The process now exits non-zero, matching the--toolpath soagentsys install x && ...stops.- Windows:
agentsys-dev test,agentsys-dev bump,runBenchmark, andrunProfilingall handed a.cmdshim straight tospawnSync/execFileSync, which fails withEINVALfor the same reason
- CI runs the jest suite on
- v6.0.12026-07-22 · 2026-07-22 13:13 UTC
查看更新说明
Security
- Removed the unused production
js-yamldependency, eliminating exposure to GHSA-52cp-r559-cp3m (quadratic CPU consumption through YAML merge-key chains) (#381).
Fixed
- Restored Cursor and Kiro installation after a core sync removed adapter discovery and transformation functions still called by
agentsys --tool cursorandagentsys --tool kiro(#380, #381). - Scoped Jest worktree ignore patterns to the repository root so tests run when AgentSys itself is checked out under a
worktreesdirectory (#381).
Tests
- Added isolated-home installer regression coverage for Cursor commands/skills and Kiro prompts/skills/agents (#381).
- Removed the unused production
- v6.0.02026-05-29 · 2026-05-29 12:59 UTC
查看更新说明
Removed
- BREAKING: Dropped the
axiomandweb-ctlplugins from the marketplace (#365). Both repositories were retired; their marketplace entries,plugins.txtrows,.kiromirrors (web-auth,web-browse,web-session), and all site/docs references were scrubbed. Installable plugin count is now 24 (was 26). Users who previously installedaxiomorweb-ctlfrom the marketplace must remove them; they will no longer resolve.
Added
- Unified
repo-intelcore library synced from agent-core (#373). The vendoredlib/repo-intel/now exposes a single surface that folds the formerrepo-maplifecycle and the embedder into one module:init/update/status/load/loadRaw/exists, typedqueries.*, LLM-augmentation write-path (applyDescriptors/applySummary), and an opt-inembedsubmodule (orchestrator, preference, binary resolver) for semantic search and duplicate detection.lib/repo-mapremains as a deprecated compatibility shim.lib/index.jsnow exportsrepoIntelalongsiderepoMap.
Fixed
skill-patternsside_effect_without_disablenow accepts both the YAML booleantrueand the quoted string"true"fordisable-model-invocation, so a frontmatter value of"true"is no longer wrongly re-flagged.- Bounded 19 polynomial-ReDoS regexes and closed 2 prototype-pollution sinks across the synced
collectors/enhancelib (match semantics preserved; verified by equivalence testing). - Removed the stale
aiRatioquery test - the analyzer dropped AI-authorship attribution and the query no longer exists (#372).
- BREAKING: Dropped the
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
AI models can write code. That's not the hard part anymore. The hard part is everything around it - branch management, code review, artifact cleanup, CI, PR comments. AgentSys is the runtime that orchestrates agents to handle all of it - structured pipelines, gated phases, specialized agents, and persistent state that survives session boundaries.
Building custom skills, agents, hooks, or MCP tools? agnix is the CLI + LSP linter that catches config errors before they fail silently - real-time IDE validation, auto suggestions, auto-fix, and 757 rules for Claude Code, Codex, OpenCode, Cursor, Kiro, Copilot, Gemini CLI, Cline, Windsurf, Roo Code, Amp, and more.
What's New in 6.1.1
- OpenCode, Codex, Cursor and Kiro installs get the plugins that ship no
.claude-plugin/plugin.jsonat their pin. The installer fetched such a plugin and installed nothing from it. It now makes one from the marketplace entry, as Claude Code does. - agnix installs its
/agnixcommand, agent and skill on every platform. Claude Code installed only its skill before, and the other platforms nothing. The marketplace entry is now agit-subdirsource for the plugin'splugin/folder. - The installer fetches a
git-subdirsource as that folder, pinned byshaorcommit. - Contributor docs: every change reaches main through a PR, and a release commit merges through a PR with only the tag pushed.
What This Is
An agent orchestration system - 11 plugins, 5 agents, and 14 skills that compose into structured pipelines for software development. Each plugin lives in its own standalone repo under the agent-sh org. agentsys is the marketplace and installer that ties them together.
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.
The system runs on Claude Code, OpenCode, Codex CLI, Cursor, and Kiro. Install via the marketplace or the npm installer, and the plugins are fetched automatically from their repos.
The Approach
Code does code work. AI does AI work.
- Detection: regex, AST analysis, static analysis - fast, deterministic, no tokens wasted
- Judgment: LLM calls for synthesis, planning, review - where reasoning matters
- Result: certainty-graded findings throughout
Certainty levels exist because not all findings are equal:
| Level | Meaning | Action |
|---|---|---|
| HIGH | Definitely a problem | Safe to auto-fix |
| MEDIUM | Probably a problem | Needs context |
| LOW | Might be a problem | Needs human judgment |
This came from testing on 1,000+ repositories.
Commands
| Command | What it does |
|---|---|
/foreman | Work the GitHub issue queue with native subagents, from pick to land |
/banthis | Durable negative memory: persist banned agent behaviors |
/agnix | Lint agent configurations (757 rules) |
/deslop | Clean AI slop patterns |
/learn | Research topics, create learning guides |
/skillers | Workflow pattern learning and automation |
/skill-curator | Create and improve reliable SKILL.md files |
/system-prompt-curator | Create and improve autonomous agent system prompts |
Each command works standalone. Together, they compose into end-to-end pipelines.
Skills
14 skills included across the plugins:
| Category | Skills |
|---|---|
| Workflow | foreman |
| Message Queues | glide-mq-migrate-bee, glide-mq-migrate-bullmq, glide-mq |
| Enhancement | skill-curator, system-prompt-curator |
| Cleanup | deslop |
| AI Collaboration | learn, recommend, skillers-compact |
| Memory | banthis |
| Linting | agnix |
| Languages | ada-spark, mojo |
External skill plugins (standalone repos, installed separately):
| Category | Skills | Plugin |
|---|---|---|
| Message Queues | glide-mq, glide-mq-migrate-bullmq, glide-mq-migrate-bee | agent-sh/glidemq |
Skills are the reusable implementation units. Agents invoke skills; commands orchestrate agents. When you install a plugin, its skills become available to all agents in that session.
Quick Navigation
| Section | What's there |
|---|---|
| The Approach | Why it's built this way |
| Commands | Overview of every command |
| Skills | 14 skills across plugins |
| Skill-Only Plugins | glide-mq and other non-command plugins |
| Command Details | Deep dive into each command |
| How Commands Work Together | Standalone vs integrated |
| Design Philosophy | The thinking behind the architecture |
| Installation | Get started |
| Research & Testing | What went into building this |
| Documentation | Links to detailed docs |
Skill-Only Plugins
Plugins without a / command. The marketplace ones install with agentsys; glide-mq installs from its own repo.
| Plugin | What it does |
|---|---|
| mojo | mojo skill: current Mojo syntax, ownership, SIMD and GPU kernels, Python interop |
| ada-spark | ada-spark skill: Ada 2022 and SPARK contracts, proof, Alire and GNAT tooling |
| zig-lsp | Zig language server for Claude Code via ZLS (no skill). Needs zls on PATH |
glide-mq
Build message queues, background jobs, and workflow orchestration with glide-mq - high-performance Node.js queue on Valkey/Redis. Not in the agentsys marketplace: install its skills from agent-sh/glidemq.
| Skill | What it does |
|---|---|
glide-mq | Greenfield queue development - queues, workers, ordering, rate limiting, flows, broadcast, step jobs |
glide-mq-migrate-bullmq | Migrate from BullMQ to glide-mq - API mapping, breaking changes, feature comparison |
glide-mq-migrate-bee | Migrate from Bee-Queue to glide-mq - API mapping, pattern conversion |
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.
Skill plugin → | glide-mq docs → | npm →
Command Details
/foreman
Purpose: Work a repo's GitHub issues as a task queue. One main session picks the next ready issue, claims it, and hands it to a worktree subagent. Revuto reviews the PR, and foreman lands it at the exact head it checked. It replaces next-task and tower-crane.
There is no daemon and no state store. Labels, assignees and comments on GitHub are the state, and every command reads GitHub live, so several sessions can share one queue.
The loop:
- Capacity, pick, claim - checks load, CPU pressure and memory, takes the next ready issue (urgent first, then oldest, open dependencies skipped) and claims it
- Brief and spawn - one worktree subagent per issue from its brief, in parallel up to
agents_max - Review - reads Revuto's findings; every real finding gets fixed, a wrong one gets a reply. When Revuto is capped or down, the session reviews the diff itself and records it
- Land - every check green at the head, no unaddressed finding, the repo's own land command, then a squash merge pinned to that head and the issue closed
/foreman # Run the queue until nothing is ready
/foreman status # Counts by label, claims and capacity
/foreman stats # Revuto caps, self-reviews, manual review requests
/foreman 123 # Work issue #123 only, from claim to land
Config: optional .foreman.json in the repo root: label names, agents_max, load and memory holds, the check and land commands, required checks, Revuto round cap, forbidden words for posted comments.
Requires: Node 22+, gh (logged in), git and waitfor. run-long needs systemd user units (Linux).
Skill: foreman (no agents: workers are native worktree subagents)
Full workflow documentation → · Repo →
/banthis
Purpose: Durable negative memory for repeated agent mistakes. Turn a user's "stop doing this" correction into a persistent rule in CLAUDE.md or AGENTS.md.
banthis is a tiny standalone CLI plus skill. It maintains a managed banned-behaviors section, supports project or global targets, and includes an init meta-rule so agents learn when to invoke it automatically.
What it does:
| Command | Use |
|---|---|
banthis add "<title>" "<rule>" | Add or update a banned behavior |
banthis list | List current bans |
banthis show | Print the managed section |
banthis remove "<title>" | Remove a ban |
banthis init | Install the meta-rule that teaches agents to call banthis |
Usage:
/banthis "stop ending with vague optional follow-up offers"
banthis add "No vague endings" "Do not end with vague optional follow-up offers."
banthis init --file AGENTS.md
/agnix
Purpose: Lint agent configurations before they break your workflow. The first dedicated linter for AI agent configs.
agnix is a standalone open-source project that provides the validation engine. This plugin integrates it into your workflow.
The problem it solves:
Agent configurations are code. They affect behavior, security, and reliability. But unlike application code, they have no linting. You find out your SKILL.md is malformed when the agent fails. You discover your hooks have security issues when they're exploited. You realize your CLAUDE.md has conflicting rules when the AI behaves unexpectedly.
agnix catches these issues before they cause problems.
What it validates:
| Category | What It Checks |
|---|---|
| Structure | Required fields, valid YAML/JSON, proper frontmatter |
| Security | Prompt injection vectors, overpermissive tools, exposed secrets |
| Consistency | Conflicting rules, duplicate definitions, broken references |
| Best Practices | Tool restrictions, model selection, trigger phrase quality |
| Cross-Platform | Compatibility across Claude Code, Codex, OpenCode, Cursor, Kiro, Copilot, Gemini CLI, Cline, Windsurf, Roo Code, Amp, and more |
757 validation rules derived from:
- Official tool specifications (Claude Code, Codex CLI, OpenCode, Cursor, Kiro, GitHub Copilot, Gemini CLI, Cline, Windsurf, Roo Code, Amp, and more)
- Research papers on agent reliability and prompt injection
- Real-world testing across 500+ repositories
- Community-reported issues and edge cases
Supported files:
| File Type | Examples |
|---|---|
| Skills | SKILL.md, */SKILL.md |
| Memory | CLAUDE.md, AGENTS.md, .github/CLAUDE.md |
| Hooks | .claude/settings.json, hooks configuration |
| MCP | *.mcp.json, MCP server configs |
| Cursor | .cursor/rules/*.mdc, .cursorrules |
| Copilot | .github/copilot-instructions.md |
| Kiro | .kiro/steering/**/*.md, .kiro/agents/*.json, .kiro/hooks/*.kiro.hook, POWER.md |
| Windsurf | .windsurf/rules/**/*.md, .windsurf/workflows/**/*.md, .windsurfrules |
| Roo Code | .roo/rules/*.md, .roo/rules-{mode}/*.md, .roomodes, .rooignore, .roorules |
| Gemini CLI | GEMINI.md, .gemini/settings.json, gemini-extension.json |
| OpenCode | opencode.json |
| Amp | .agents/checks/**/*.md, .amp/settings.json |
CI/CD Integration:
agnix outputs SARIF format for GitHub Code Scanning. Add it to your workflow:
- name: Lint agent configs
run: agnix --format sarif > results.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
Usage:
/agnix # Validate current project
/agnix --fix # Auto-fix fixable issues
/agnix --strict # Treat warnings as errors
/agnix --target claude-code # Only Claude Code rules
/agnix --format sarif # Output for GitHub Code Scanning
Agent: agnix-agent (sonnet model)
External tool: Requires agnix CLI
npm install -g agnix # Install via npm
# or
cargo install agnix-cli # Install via Cargo
# or
brew tap agent-sh/agnix && brew install agnix # Install via Homebrew
Why use agnix:
- Catch config errors before they cause agent failures
- Enforce security best practices across your team
- Maintain consistency as your agent configs grow
- Integrate validation into CI/CD pipelines
- Support multiple AI tools from one linter
/deslop
Purpose: Finds AI slop - debug statements, placeholder text, verbose comments, TODOs - and removes it.
How detection works:
Three phases run in sequence:
-
Phase 1: Regex Patterns (HIGH certainty)
console.log,print(),dbg!(),println!()// TODO,// FIXME,// HACK- Empty catch blocks, disabled linters
- Hardcoded secrets (API keys, tokens)
-
Phase 2: Multi-Pass Analyzers (MEDIUM certainty)
- Doc-to-code ratio (excessive comments)
- Verbosity ratio (AI preambles)
- Over-engineering patterns
- Buzzword inflation
- Dead code detection
- Stub functions
-
Phase 3: CLI Tools (LOW certainty, optional)
- jscpd, madge, escomplex (JS/TS)
- pylint, radon (Python)
- golangci-lint (Go)
- clippy (Rust)
Languages supported: JavaScript/TypeScript, Python, Rust, Go, Java
Usage:
/deslop # Report only (safe)
/deslop apply # Fix HIGH certainty issues
/deslop apply src/ # Fix issues in src/ only
Thoroughness levels:
quick- Phase 1 only (fastest)normal- Phase 1 + Phase 2 (default)deep- All phases if tools available
/learn
Purpose: Research any topic online and create a comprehensive learning guide with RAG-optimized indexes.
What it does:
- Progressive Discovery - Uses funnel approach (broad → specific → deep) to find quality sources
- Quality Scoring - Scores sources by authority, recency, depth, examples, uniqueness
- Just-In-Time Extraction - Fetches only high-scoring sources to save tokens
- Synthesis - Creates structured learning guide with examples and best practices
- RAG Index - Updates the
agent-knowledge/AGENTS.mdmaster index for future lookups
Depth levels:
| Depth | Sources | Use Case |
|---|---|---|
| brief | 10 | Quick overview |
| medium | 20 | Default, balanced |
| deep | 40 | Comprehensive |
Output structure:
agent-knowledge/
AGENTS.md # Master index (updated each run)
recursion.md # Topic-specific guide
resources/
recursion-sources.json # Source metadata with quality scores
Usage:
/learn recursion # Default (20 sources)
/learn react hooks --depth=deep # Comprehensive (40 sources)
/learn kubernetes --depth=brief # Quick overview (10 sources)
A CLAUDE.md mirror of the index is written only with --legacy-claude-index.
Agent: learn-agent (sonnet model)
/skillers
Learn from your workflow patterns and suggest automations
/skillers show # Display current config and knowledge stats
/skillers compact # Analyze recent transcripts, extract patterns
/skillers compact --days=14 # Analyze older transcripts
/skillers recommend # Get automation suggestions from accumulated knowledge
Reads your Claude Code, Codex and OpenCode transcripts, identifies recurring patterns (pain points, repeated workflows, wishes), clusters them into weighted themes, and suggests skills, hooks, or agents to automate them.
No per-turn overhead - it reads transcripts your tools already save.
Agents: skillers-compactor (sonnet), skillers-recommender (opus)
Skills: skillers-compact, recommend
/skill-curator
Create and improve reliable
SKILL.mdfiles
/skill-curator "create a skill for reviewing background jobs"
/skill-curator --improve path/to/SKILL.md --category review
The skill curator focuses on trigger quality, clear scope, router patterns, concrete Skip unless: gates, token budgets, and agnix-ready structure across Claude Code, Codex, OpenCode, Cursor, Kiro, and similar tools.
Skill: skill-curator
/system-prompt-curator
Create and improve autonomous coding-agent system prompts
/system-prompt-curator "GitHub issue resolver"
/system-prompt-curator --improve path/to/prompt.md --for-orchestrator
The system prompt curator rewrites prompts around task-matched identity, phased workflow, explicit tools, evidence-based completion criteria, and realistic error recovery examples. It separates prompt guidance from harness-level checks that belong in code.
Skill: system-prompt-curator
How Commands Work Together
Standalone use:
/deslop apply # Just clean up your code
/agnix # Just lint your agent configs
/foreman # Work the issue queue, one worktree agent per issue
/learn react hooks # Just research a topic
Together:
/foreman picks an issue and hands it to a worktree worker. The worker can run /deslop on its diff and /agnix on any agent config it touched before it reports back. foreman then reads Revuto's findings and lands the PR only when every check is green at the head it checked.
Design Philosophy
The Actual Problem
Frontier models write good code. That's solved. What's not solved:
- Context management - Models forget what they're doing mid-session
- Compaction amnesia - Long sessions get summarized, losing critical state
- Task drift - Without structure, agents wander from the actual goal
- Skipped steps - Agents skip reviews, tests, or cleanup when not enforced
- Token waste - Using LLM calls for work that static analysis can do faster
- Babysitting - Manually orchestrating each phase of development
- Repetitive requests - Asking for the same workflow every single session
How This Addresses It
1. One agent, one job, done extremely well
Same principle as good code: single responsibility. The deslop-agent cleans. The learn-agent researches. The agnix-agent lints agent configs. No agent tries to do everything. Specialized agents, each with narrow scope and clear success criteria.
2. Pipeline with gates, not a monolith
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 literally cannot skip phases.
3. Tools do tool work, agents do agent work
If static analysis, regex, or a shell command can do it, don't ask an LLM. Pattern detection uses pre-indexed regex. File discovery uses glob. Platform detection uses file existence checks. The LLM only handles what requires judgment.
4. Agents don't need to know how tools work
The slop detector returns findings with certainty levels. The agent doesn't need to understand the three-phase pipeline, the regex patterns, or the analyzer heuristics. Good tool design means the consumer doesn't need implementation details.
5. Build tools where tools don't exist
Many tasks lack existing tools. Multi-pass analyzers for slop detection. A rule engine for agent configs. The result: agents receive structured data, not raw problems to figure out.
6. Research-backed prompt engineering
Documented techniques that measurably improve results:
- Progressive disclosure - Agents see only what's needed for the current step
- Structured output - JSON between delimiters, XML tags for sections
- Explicit constraints - What agents MUST NOT do matters as much as what they do
- Few-shot examples - Where patterns aren't obvious
- Tool calling over generation - Let the model use tools rather than generate tool-like output
7. Validate plan and results, not every step
Approve the plan. See the results. The middle is automated. /foreman picks, briefs, reads the review and lands without a prompt at each step.
8. Right model for the task
Match model capability to task complexity:
- opus - Planning, implementation, review orchestration
- sonnet - Pattern matching, validation, discovery
- haiku - Git operations, file moves, CI polling
Quality compounds. Poor exploration → poor plan → poor implementation → review cycles. Early phases deserve the best model.
9. Persistent state survives sessions
State files track the workflow phase. Sessions can die and resume. Multiple sessions run in parallel in separate worktrees.
10. Delegate everything automatable
Agents don't just write code. They:
- Clean their own output (deslop-agent)
- Work the issue queue from pick to land (/foreman)
- Lint their own configs (/agnix)
- Research what they need to know (/learn)
If it can be specified, it can be delegated.
11. Orchestrator stays high-level
The main workflow orchestrator doesn't read files, search code, or write implementations. It launches specialized agents and receives their outputs. Keeps the orchestrator's context window available for coordination rather than filled with file contents.
12. Composable, not monolithic
Every command works standalone. /deslop cleans code without needing /foreman. /agnix lints configs without needing the full workflow. Pieces compose together, but each piece is useful on its own.
What This Gets You
- Run multiple sessions - Different tasks in different worktrees, no interference
- Fast iteration - Approve plan, check results, repeat
- Stay in the interesting parts - Policy decisions, architecture choices, edge cases
- Minimal review burden - Most issues caught and fixed before you see the output
- No repetitive requests - The workflow you want, without asking each time
- Scale horizontally - More sessions, more tasks, same oversight level
Installation
Claude Code (Recommended way)
/plugin marketplace add agent-sh/agentsys
/plugin install foreman@agentsys
All Platforms (npm)
npm install -g agentsys && agentsys
Interactive installer for Claude Code, OpenCode, Codex CLI, Cursor, and Kiro.
# Non-interactive install
agentsys --tool claude # Single tool
agentsys --tool cursor # Cursor (~/.cursor: skills, commands, rules)
agentsys --tool kiro # Kiro (~/.kiro: prompts, skills, agents)
agentsys --tools "claude,opencode" # Multiple tools
agentsys --development # Dev mode (bypasses marketplace)
agentsys install deslop # One plugin, or plugin:component for one agent, skill or command
Requirements
Required:
- Git
- Node.js 18+
For GitHub workflows:
- GitHub CLI (
gh) authenticated
For GitLab workflows:
- GitLab CLI (
glab) authenticated
For repo-intel data (read by deslop):
- agent-analyzer, downloaded automatically on first use
For /foreman:
- Node.js 22+,
ghauthenticated, andwaitforonPATH
For /agnix:
- agnix CLI installed (
npm install -g agnix,cargo install agnix-cli, orbrew tap agent-sh/agnix && brew install agnix)
Local diagnostics (optional):
npm run detect # Platform detection (CI, deploy, project type)
npm run verify # Tool availability + versions
Research & Testing
The system is built on research, not guesswork.
Knowledge base (agent-docs/): 8,000 lines of curated documentation from Anthropic, OpenAI, Google, and Microsoft covering:
- Agent architecture and design patterns
- Prompt engineering techniques
- Function calling and tool use
- Context efficiency and token optimization
- Multi-agent systems and orchestration
- Instruction following reliability
Testing:
- Jest suite runs on Linux and Windows in CI
- Cross-platform validation (Claude Code, OpenCode, Codex CLI, Cursor, Kiro)
Methodology:
- Certainty levels derived from pattern analysis across repositories
Documentation
| Topic | Link |
|---|---|
| Installation | docs/INSTALLATION.md |
| Cross-Platform Setup | docs/CROSS_PLATFORM.md |
| Usage Examples | docs/USAGE.md |
| Architecture | docs/ARCHITECTURE.md |
Workflow Deep-Dives
| Workflow | Link |
|---|---|
| /foreman Flow | docs/workflows/FOREMAN.md |
Reference
| Topic | Link |
|---|---|
| Slop Patterns | docs/reference/SLOP-PATTERNS.md |
| Agent Reference | docs/reference/AGENTS.md |
Support
- Issues: github.com/agent-sh/agentsys/issues
- Discussions: github.com/agent-sh/agentsys/discussions
MIT License | Made by Avi Fenesh
Contributor instructions
Repository instructions live in AGENTS.md. Claude Code v2.1.281 or later supports
native loading across supported providers. If an ancestor instruction file masks
AGENTS.md, select claude-md-and-agents-md in user-level Project instructions.
The platform helpers retain support for analyzing older instruction layouts;
they do not control the native CLI loader.
See Claude Code instruction loading.