agentsys 5.0.0 → 5.0.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.
- package/.claude-plugin/marketplace.json +13 -13
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +14 -2
- package/adapters/README.md +1 -1
- package/adapters/codex/skills/next-task/SKILL.md +8 -8
- package/adapters/opencode/agents/delivery-validator.md +1 -1
- package/adapters/opencode/agents/implementation-agent.md +1 -1
- package/adapters/opencode/agents/worktree-manager.md +3 -3
- package/adapters/opencode/commands/next-task.md +7 -7
- package/adapters/opencode/skills/agnix/SKILL.md +1 -1
- package/adapters/opencode/skills/consult/SKILL.md +1 -1
- package/adapters/opencode/skills/deslop/SKILL.md +1 -1
- package/adapters/opencode/skills/discover-tasks/SKILL.md +2 -2
- package/adapters/opencode/skills/drift-analysis/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-agent-prompts/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-claude-memory/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-cross-file/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-docs/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-hooks/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-orchestrator/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-plugins/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-prompts/SKILL.md +1 -1
- package/adapters/opencode/skills/enhance-skills/SKILL.md +1 -1
- package/adapters/opencode/skills/learn/SKILL.md +1 -1
- package/adapters/opencode/skills/orchestrate-review/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-analyzer/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-baseline-manager/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-benchmarker/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-code-paths/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-investigation-logger/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-profiler/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-theory-gatherer/SKILL.md +1 -1
- package/adapters/opencode/skills/perf-theory-tester/SKILL.md +1 -1
- package/adapters/opencode/skills/sync-docs/SKILL.md +1 -1
- package/adapters/opencode/skills/validate-delivery/SKILL.md +2 -2
- package/bin/cli.js +17 -2
- package/package.json +2 -1
- package/plugins/agnix/.claude-plugin/plugin.json +1 -1
- package/plugins/agnix/skills/agnix/SKILL.md +1 -1
- package/plugins/audit-project/.claude-plugin/plugin.json +1 -1
- package/plugins/consult/.claude-plugin/plugin.json +1 -1
- package/plugins/consult/skills/consult/SKILL.md +1 -1
- package/plugins/deslop/.claude-plugin/plugin.json +1 -1
- package/plugins/deslop/skills/deslop/SKILL.md +1 -1
- package/plugins/drift-detect/.claude-plugin/plugin.json +1 -1
- package/plugins/drift-detect/skills/drift-analysis/SKILL.md +1 -1
- package/plugins/enhance/.claude-plugin/plugin.json +1 -1
- package/plugins/enhance/skills/enhance-agent-prompts/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-claude-memory/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-cross-file/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-docs/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-hooks/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-orchestrator/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-plugins/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-prompts/SKILL.md +1 -1
- package/plugins/enhance/skills/enhance-skills/SKILL.md +1 -1
- package/plugins/learn/.claude-plugin/plugin.json +1 -1
- package/plugins/learn/skills/learn/SKILL.md +1 -1
- package/plugins/next-task/.claude-plugin/plugin.json +1 -1
- package/plugins/next-task/agents/delivery-validator.md +1 -1
- package/plugins/next-task/agents/implementation-agent.md +2 -2
- package/plugins/next-task/agents/worktree-manager.md +3 -3
- package/plugins/next-task/commands/next-task.md +8 -8
- package/plugins/next-task/hooks/hooks.json +1 -1
- package/plugins/next-task/skills/discover-tasks/SKILL.md +2 -2
- package/plugins/next-task/skills/orchestrate-review/SKILL.md +1 -1
- package/plugins/next-task/skills/validate-delivery/SKILL.md +2 -2
- package/plugins/perf/.claude-plugin/plugin.json +1 -1
- package/plugins/perf/skills/perf-analyzer/SKILL.md +1 -1
- package/plugins/perf/skills/perf-baseline-manager/SKILL.md +1 -1
- package/plugins/perf/skills/perf-benchmarker/SKILL.md +1 -1
- package/plugins/perf/skills/perf-code-paths/SKILL.md +1 -1
- package/plugins/perf/skills/perf-investigation-logger/SKILL.md +1 -1
- package/plugins/perf/skills/perf-profiler/SKILL.md +1 -1
- package/plugins/perf/skills/perf-theory-gatherer/SKILL.md +1 -1
- package/plugins/perf/skills/perf-theory-tester/SKILL.md +1 -1
- package/plugins/repo-map/.claude-plugin/plugin.json +1 -1
- package/plugins/ship/.claude-plugin/plugin.json +1 -1
- package/plugins/sync-docs/.claude-plugin/plugin.json +1 -1
- package/plugins/sync-docs/skills/sync-docs/SKILL.md +1 -1
- package/scripts/bump-version.js +4 -1
- package/scripts/dev-install.js +9 -0
- package/scripts/validate-opencode-install.js +17 -4
- package/site/content.json +1 -1
- package/site/index.html +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agnix
|
|
3
3
|
description: "Use when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP'. Validates agent configuration files against 155 rules across 10+ AI tools."
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
argument-hint: "[path] [--fix] [--strict] [--target=claude-code|cursor|codex]"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: consult
|
|
3
3
|
description: "Cross-tool AI consultation. Use when user asks to 'consult gemini', 'ask codex', 'get second opinion', 'cross-check with claude', 'consult another AI', 'ask opencode', 'copilot opinion', or wants a second opinion from a different AI tool."
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
argument-hint: "[question] [--tool] [--effort] [--model] [--context] [--continue]"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: deslop
|
|
3
3
|
description: "Use when user wants to clean AI slop from code. Use for cleanup, remove debug statements, find ghost code, repo hygiene."
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
argument-hint: "[report|apply] [--scope=all|diff|path] [--thoroughness=quick|normal|deep]"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drift-detect",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "Deep repository analysis to realign project plans with actual code reality - discovers drift, gaps, and produces prioritized reconstruction plans",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Avi Fenesh",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: drift-analysis
|
|
3
3
|
description: Use when the user asks about plan drift, reality check, comparing docs to code, project state analysis, roadmap alignment, implementation gaps, or needs guidance on identifying discrepancies between documented plans and actual implementation state.
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Drift Analysis
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: learn
|
|
3
3
|
description: "Research any topic online and create learning guides. Use when user asks to 'learn about', 'research topic', 'create learning guide', 'build knowledge base', or 'study subject'."
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
argument-hint: "[topic] [--depth=brief|medium|deep]"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -395,7 +395,7 @@ implementation-agent (YOU ARE HERE)
|
|
|
395
395
|
↓
|
|
396
396
|
sync-docs:sync-docs-agent
|
|
397
397
|
↓
|
|
398
|
-
|
|
398
|
+
ship:ship command (creates PR)
|
|
399
399
|
```
|
|
400
400
|
|
|
401
401
|
### Required Handoff
|
|
@@ -438,7 +438,7 @@ ${gitLog}
|
|
|
438
438
|
→ Phase 9 review loop
|
|
439
439
|
→ delivery-validator
|
|
440
440
|
→ sync-docs:sync-docs-agent
|
|
441
|
-
→
|
|
441
|
+
→ ship:ship
|
|
442
442
|
```
|
|
443
443
|
|
|
444
444
|
## Quality Checklist
|
|
@@ -203,12 +203,12 @@ Report: branch name, worktree path, base commit. Confirm PWD anchored to worktre
|
|
|
203
203
|
| Component | Creates | Cleans Up |
|
|
204
204
|
|-----------|---------|-----------|
|
|
205
205
|
| worktree-manager | worktrees, tasks.json entries, workflow-status.json | Nothing |
|
|
206
|
-
|
|
|
206
|
+
| ship:ship | - | worktrees (after merge), tasks.json entries |
|
|
207
207
|
| --abort | - | worktrees, tasks.json entries |
|
|
208
208
|
|
|
209
209
|
**Agents MUST NOT**: clean up worktrees, remove tasks from registry, or delete branches.
|
|
210
210
|
|
|
211
|
-
## Cleanup Reference (for
|
|
211
|
+
## Cleanup Reference (for ship:ship and --abort)
|
|
212
212
|
|
|
213
213
|
```bash
|
|
214
214
|
cleanup_worktree() {
|
|
@@ -240,7 +240,7 @@ On failure: remove partial worktree, prune refs, update state with `failPhase()`
|
|
|
240
240
|
|
|
241
241
|
## Constraints
|
|
242
242
|
|
|
243
|
-
- Only create worktrees - never delete them (cleanup is handled by
|
|
243
|
+
- Only create worktrees - never delete them (cleanup is handled by ship:ship or --abort)
|
|
244
244
|
- Do not remove tasks from tasks.json registry
|
|
245
245
|
- Do not delete branches
|
|
246
246
|
- Do not modify files in the main repository after switching to worktree
|
|
@@ -55,7 +55,7 @@ This workflow exists because each step serves a purpose. Taking shortcuts defeat
|
|
|
55
55
|
9. Review Loop
|
|
56
56
|
10. Delivery Validation
|
|
57
57
|
11. Docs Update
|
|
58
|
-
12.
|
|
58
|
+
12. `ship:ship`
|
|
59
59
|
|
|
60
60
|
**Human interaction points (ONLY THESE):**
|
|
61
61
|
1. Policy selection via checkboxes
|
|
@@ -74,10 +74,10 @@ Each phase must complete before the next starts:
|
|
|
74
74
|
| Review Loop | Must approve (no open issues or override) |
|
|
75
75
|
| Delivery | Tests pass, build passes |
|
|
76
76
|
| Docs | Documentation updated |
|
|
77
|
-
| Ship | Explicit
|
|
77
|
+
| Ship | Explicit `ship:ship` invocation (plugin command) |
|
|
78
78
|
|
|
79
79
|
**Forbidden actions for agents:**
|
|
80
|
-
- No agent may create PRs or push to remote (only
|
|
80
|
+
- No agent may create PRs or push to remote (only ship:ship)
|
|
81
81
|
- No agent may skip Phase 9, delivery-validator, or docs update
|
|
82
82
|
</workflow-gates>
|
|
83
83
|
|
|
@@ -504,17 +504,17 @@ workflowState.completePhase({ docsUpdated: true, fixesApplied: result.fixes?.len
|
|
|
504
504
|
</phase-11>
|
|
505
505
|
|
|
506
506
|
<phase-12>
|
|
507
|
-
## Phase 12: Handoff to
|
|
507
|
+
## Phase 12: Handoff to ship:ship
|
|
508
508
|
|
|
509
|
-
After docs update (sync-docs-agent) completes, invoke
|
|
509
|
+
After docs update (sync-docs-agent) completes, invoke `ship:ship` explicitly:
|
|
510
510
|
|
|
511
511
|
```javascript
|
|
512
|
-
console.log(`Task #${state.task.id} passed all validation. Invoking
|
|
512
|
+
console.log(`Task #${state.task.id} passed all validation. Invoking ship:ship...`);
|
|
513
513
|
const stateDir = workflowState.getStateDir(); // Returns platform-aware state directory
|
|
514
514
|
await Task({ subagent_type: "ship:ship", prompt: `Ship the task. State file: ${stateDir}/flow.json` });
|
|
515
515
|
```
|
|
516
516
|
|
|
517
|
-
|
|
517
|
+
**ship:ship responsibilities:**
|
|
518
518
|
- Create PR, push branch
|
|
519
519
|
- Monitor CI and review comments
|
|
520
520
|
- Merge when approved
|
|
@@ -542,6 +542,6 @@ try {
|
|
|
542
542
|
- Sonnet for validation tasks (review, delivery)
|
|
543
543
|
- Haiku for simple tasks (worktree)
|
|
544
544
|
- Fully autonomous after plan approval
|
|
545
|
-
- Explicit
|
|
545
|
+
- Explicit ship:ship handoff for PR workflow
|
|
546
546
|
|
|
547
547
|
Begin workflow now.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"hooks": [
|
|
6
6
|
{
|
|
7
7
|
"type": "prompt",
|
|
8
|
-
|
|
8
|
+
"prompt": "<subagent-stop-hook>\n## Workflow Enforcement - SubagentStop Hook\n\nA subagent has completed. Determine and execute the next workflow phase.\n\n<verification-gates>\n### Verification Gates\n\nBefore proceeding to any next phase, verify the required previous steps completed.\n\n---\n\n## Gate 1: Before Exploration (Phase 4)\n\n**Required**: Worktree must have been created via `next-task:worktree-manager` agent.\n\n```javascript\nconst state = workflowState.readState();\nif (!state.worktree || !state.worktree.path) {\n console.error('[BLOCKED] Cannot proceed to exploration - worktree not created');\n return { blocked: true, reason: 'worktree-missing' };\n}\nconsole.log(`[VERIFIED] Worktree exists: ${state.worktree.path}`);\n```\n\n**Forbidden**:\n- Using `git checkout -b` directly\n- Using `git branch` directly\n- Proceeding to exploration without worktree verification\n\n---\n\n## Gate 2: Before Delivery Validation (Phase 10)\n\n**Required**: Review loop must have run with proper iterations.\n\n```javascript\nconst state = workflowState.readState();\nconst reviewResult = state.phases?.reviewLoop;\nif (!reviewResult || reviewResult.iterations < 1) {\n console.error('[BLOCKED] Review loop must run at least 1 iteration');\n return { blocked: true, reason: 'review-iterations-zero' };\n}\nif (!reviewResult.approved && !reviewResult.orchestratorOverride) {\n console.error('[BLOCKED] Review not approved');\n return { blocked: true, reason: 'review-not-approved' };\n}\nconsole.log(`[VERIFIED] Review: ${reviewResult.iterations} iterations`);\n```\n\n**Forbidden**:\n- Skipping to delivery without running review loop\n- Running review with 0 iterations\n\n---\n\n## Gate 3: Before ship:ship Merge\n\n**Required**: All PR comments must be addressed.\n\nEnforced in ship:ship command:\n1. Phase 4 CI & Review Monitor Loop must run\n2. 3-minute wait for auto-reviewers must complete\n3. All comments must be addressed before merge\n</verification-gates>\n\n---\n\n<decision-tree>\n### Decision Tree\n\n1. **worktree-manager completed**: Verify worktree path, then run exploration-agent\n2. **implementation-agent completed**: Run deslop:deslop-agent + test-coverage-checker (parallel)\n3. **pre-review gates completed**: Run review loop (min 1 iteration), then delivery-validator\n4. **delivery-validator completed**: If approved, run sync-docs:sync-docs-agent. If not, return to implementation.\n5. **sync-docs:sync-docs-agent completed**: Invoke ship:ship command\n</decision-tree>\n\n---\n\n<enforcement>\n### Enforcement\n\nEvery step exists for a reason. Taking shortcuts defeats the purpose of automation.\n\n- Do not skip worktree-manager (enables parallel task isolation)\n- Do not skip review iterations (catches bugs humans miss)\n- Do not skip 3-minute wait in ship:ship (auto-reviewers need time)\n- Do not skip addressing PR comments (blocks merge)\n\nIf you think a step is unnecessary, you are wrong.\n</enforcement>\n\n---\n\n<workflow-sequence>\n### Workflow Sequence\n\n1. task-discoverer\n2. [GATE] worktree-manager (must use agent)\n3. [VERIFY] worktree exists\n4. exploration-agent\n5. planning-agent\n6. implementation-agent\n7. pre-review gates (deslop + test-coverage)\n8. review loop (1+ iterations)\n9. [GATE] delivery-validator\n10. sync-docs:sync-docs-agent\n11. ship:ship command (must run Phase 4 loop)\n</workflow-sequence>\n\nReturn: {\"ok\": true, \"nextPhase\": \"<phase-name>\", \"verified\": [\"<gate-name>\"]}\n</subagent-stop-hook>"
|
|
9
9
|
}
|
|
10
10
|
]
|
|
11
11
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: discover-tasks
|
|
3
|
-
description: "Use when
|
|
4
|
-
version: 5.0.
|
|
3
|
+
description: "Use when user asks to \"discover tasks\", \"find next task\", or \"prioritize issues\". Discovers and ranks tasks from GitHub, GitLab, local files, and custom sources."
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# discover-tasks
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orchestrate-review
|
|
3
|
-
description: "Use when user asks to \"deep review the code\", \"thorough code review\", \"multi-pass review\", or when orchestrating Phase 9 review loop. Provides review pass definitions (code quality, security, performance, test coverage
|
|
3
|
+
description: "Use when user asks to \"deep review the code\", \"thorough code review\", \"multi-pass review\", or when orchestrating the Phase 9 review loop. Provides review pass definitions (code quality, security, performance, test coverage), signal detection patterns, and iteration algorithms."
|
|
4
4
|
metadata:
|
|
5
5
|
short-description: "Multi-pass code review orchestration"
|
|
6
6
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: validate-delivery
|
|
3
|
-
description: "Use when
|
|
4
|
-
version: 5.0.
|
|
3
|
+
description: "Use when user asks to \"validate delivery\", \"check readiness\", or \"verify completion\". Runs tests, build, and requirement checks with pass/fail instructions."
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# validate-delivery
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: perf-benchmarker
|
|
3
3
|
description: "Use when running performance benchmarks, establishing baselines, or validating regressions with sequential runs. Enforces 60s minimum runs (30s only for binary search) and no parallel benchmarks."
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
argument-hint: "[command] [duration]"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sync-docs
|
|
3
3
|
description: "Sync documentation with code. Use when user asks to update docs, check docs, fix stale documentation, update changelog, or after code changes."
|
|
4
|
-
version: 5.0.
|
|
4
|
+
version: 5.0.1
|
|
5
5
|
argument-hint: "[report|apply] [--scope=all|recent|before-pr] [--include-undocumented]"
|
|
6
6
|
allowed-tools: Bash(git:*), Read, Grep, Glob
|
|
7
7
|
---
|
package/scripts/bump-version.js
CHANGED
|
@@ -63,7 +63,10 @@ Files updated (via npm version + stamp-version.js):
|
|
|
63
63
|
// npm version updates package.json + package-lock.json, then triggers
|
|
64
64
|
// the "version" lifecycle script which runs stamp-version.js.
|
|
65
65
|
// Version is validated by VERSION_PATTERN above (safe for shell use).
|
|
66
|
-
|
|
66
|
+
// On Windows, execFileSync does not resolve npm.cmd via PATHEXT.
|
|
67
|
+
// Prefer the explicit .cmd suffix when running on win32.
|
|
68
|
+
const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
69
|
+
execFileSync(npmCommand, ['version', newVersion, '--no-git-tag-version'], {
|
|
67
70
|
cwd: path.join(__dirname, '..'),
|
|
68
71
|
stdio: 'inherit'
|
|
69
72
|
});
|
package/scripts/dev-install.js
CHANGED
|
@@ -128,6 +128,15 @@ function cleanAll() {
|
|
|
128
128
|
removedCount++;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
+
// Remove legacy agent files from pre-rename installs
|
|
132
|
+
const legacyAgentFiles = ['review.md', 'ship.md', 'workflow.md'];
|
|
133
|
+
for (const legacyFile of legacyAgentFiles) {
|
|
134
|
+
const legacyPath = path.join(opencodeAgentsDir, legacyFile);
|
|
135
|
+
if (fs.existsSync(legacyPath)) {
|
|
136
|
+
fs.unlinkSync(legacyPath);
|
|
137
|
+
removedCount++;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
131
140
|
if (removedCount > 0) {
|
|
132
141
|
log(` Removed ${removedCount} OpenCode agents`);
|
|
133
142
|
}
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
const fs = require('fs');
|
|
14
14
|
const path = require('path');
|
|
15
|
+
const discovery = require('../lib/discovery');
|
|
16
|
+
|
|
17
|
+
const ROOT_DIR = path.join(__dirname, '..');
|
|
15
18
|
|
|
16
19
|
const home = process.env.HOME || process.env.USERPROFILE;
|
|
17
20
|
|
|
@@ -29,6 +32,10 @@ function getOpenCodeConfigDir() {
|
|
|
29
32
|
|
|
30
33
|
const OPENCODE_DIR = getOpenCodeConfigDir();
|
|
31
34
|
|
|
35
|
+
const AGENT_FILES = new Set(discovery.discoverAgents(ROOT_DIR).map(agent => agent.file));
|
|
36
|
+
const COMMAND_FILES = new Set(discovery.getCommandMappings(ROOT_DIR).map(([target]) => target));
|
|
37
|
+
const SKILL_DIRS = new Set(discovery.discoverSkills(ROOT_DIR).map(skill => skill.dir));
|
|
38
|
+
|
|
32
39
|
const issues = [];
|
|
33
40
|
|
|
34
41
|
function checkFile(filePath, checks) {
|
|
@@ -87,7 +94,7 @@ const REQUIRED_PATTERNS = {
|
|
|
87
94
|
]
|
|
88
95
|
};
|
|
89
96
|
|
|
90
|
-
function validateDirectory(dir, type) {
|
|
97
|
+
function validateDirectory(dir, type, allowlist) {
|
|
91
98
|
if (!fs.existsSync(dir)) {
|
|
92
99
|
console.log(`[SKIP] ${type} directory not found: ${dir}`);
|
|
93
100
|
return;
|
|
@@ -99,10 +106,16 @@ function validateDirectory(dir, type) {
|
|
|
99
106
|
for (const file of files) {
|
|
100
107
|
let filePath;
|
|
101
108
|
if (file.isDirectory()) {
|
|
109
|
+
if (allowlist && !allowlist.has(file.name)) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
102
112
|
// For skills, check SKILL.md inside directory
|
|
103
113
|
filePath = path.join(dir, file.name, 'SKILL.md');
|
|
104
114
|
if (!fs.existsSync(filePath)) continue;
|
|
105
115
|
} else if (file.name.endsWith('.md')) {
|
|
116
|
+
if (allowlist && !allowlist.has(file.name)) {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
106
119
|
filePath = path.join(dir, file.name);
|
|
107
120
|
} else {
|
|
108
121
|
continue;
|
|
@@ -137,9 +150,9 @@ function main() {
|
|
|
137
150
|
|
|
138
151
|
// Validate each type
|
|
139
152
|
// OpenCode expects commands directly in commands/, not a subdirectory
|
|
140
|
-
validateDirectory(path.join(OPENCODE_DIR, 'commands'), 'commands');
|
|
141
|
-
validateDirectory(path.join(OPENCODE_DIR, 'agents'), 'agents');
|
|
142
|
-
validateDirectory(path.join(OPENCODE_DIR, 'skills'), 'skills');
|
|
153
|
+
validateDirectory(path.join(OPENCODE_DIR, 'commands'), 'commands', COMMAND_FILES);
|
|
154
|
+
validateDirectory(path.join(OPENCODE_DIR, 'agents'), 'agents', AGENT_FILES);
|
|
155
|
+
validateDirectory(path.join(OPENCODE_DIR, 'skills'), 'skills', SKILL_DIRS);
|
|
143
156
|
|
|
144
157
|
// Report results
|
|
145
158
|
console.log('\n--- Results ---\n');
|
package/site/content.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "https://avifenesh.github.io/agentsys",
|
|
6
6
|
"repo": "https://github.com/avifenesh/agentsys",
|
|
7
7
|
"npm": "https://www.npmjs.com/package/agentsys",
|
|
8
|
-
"version": "5.0.
|
|
8
|
+
"version": "5.0.1",
|
|
9
9
|
"author": "Avi Fenesh",
|
|
10
10
|
"author_url": "https://github.com/avifenesh"
|
|
11
11
|
},
|
package/site/index.html
CHANGED
|
@@ -689,7 +689,7 @@ npm install">
|
|
|
689
689
|
<a href="https://github.com/avifenesh/agentsys/discussions" target="_blank" rel="noopener noreferrer">Discussions</a>
|
|
690
690
|
</div>
|
|
691
691
|
<div class="footer__meta">
|
|
692
|
-
<span class="footer__version" id="site-version">
|
|
692
|
+
<span class="footer__version" id="site-version">v5.0.0</span>
|
|
693
693
|
<span class="footer__author">Made by <a href="https://github.com/avifenesh" target="_blank" rel="noopener noreferrer">Avi Fenesh</a></span>
|
|
694
694
|
</div>
|
|
695
695
|
</div>
|