synapse-hub 2.4.0 → 2.4.2
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/.agents/agents/orchestrator.md +3 -0
- package/.agents/agents/pom-crafter.md +3 -0
- package/.agents/agents/quality-gatekeeper.md +1 -0
- package/.agents/agents/test-runner.md +1 -0
- package/.agents/rules/graphify.md +14 -14
- package/.agents/rules/mandatory-playwright-live.md +29 -29
- package/.agents/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -614
- package/.agents/skills/clean-pom-crafter/examples/standard_test_case.groovy +28 -28
- package/.agents/skills/clean-pom-crafter/references/pom_patterns.groovy +138 -138
- package/.agents/skills/e2e-testing-patterns/resources/implementation-playbook.md +522 -522
- package/.agents/skills/failure-autopsy-and-healing/references/healing_matrix.md +64 -64
- package/.agents/skills/failure-autopsy-and-healing/references/qa_investigation_protocol.md +56 -56
- package/.agents/skills/failure-autopsy-and-healing/scripts/triage_failures.sh +98 -98
- package/.agents/skills/katalon-cli-runner/references/groovy-patterns.md +209 -209
- package/.agents/skills/katalon-cli-runner/references/katalon-api.md +155 -155
- package/.agents/skills/katalon-cli-runner/references/runner_commands.md +67 -67
- package/.agents/skills/playwright-live-interaction/references/advanced_superpowers.md +160 -160
- package/.agents/skills/playwright-live-interaction/references/compact_accessibility_snapshots.md +75 -75
- package/.agents/skills/playwright-live-interaction/references/recipes.md +388 -388
- package/.agents/skills/playwright-live-interaction/references/swarm_orchestration.md +134 -134
- package/.agents/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -541
- package/.agents/templates/completion_report.md +57 -57
- package/.agents/workflows/graphify.md +10 -10
- package/.cursor/rules/language.mdc +7 -7
- package/README.en.md +9 -3
- package/README.md +9 -3
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-06_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-07_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-08_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-09_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/api_contract_drift/qa-challenge-10_api_contract_drift.json +21 -21
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-21_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-22_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-23_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-24_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/fake_pass_tautology/qa-challenge-25_fake_pass_tautology.json +20 -20
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-01_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-02_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-03_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-04_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/locator_drift/qa-challenge-05_locator_drift.json +22 -22
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-16_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-17_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-18_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-19_stale_and_mutation.json +21 -21
- package/benchmarks/qa_eval/dataset/stale_and_mutation/qa-challenge-20_stale_and_mutation.json +22 -22
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-11_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-12_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-13_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-14_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/dataset/timing_and_race/qa-challenge-15_timing_and_race.json +21 -21
- package/benchmarks/qa_eval/reports/BENCHMARK_REPORT.md +94 -69
- package/benchmarks/qa_eval/reports/eval_results.json +460 -104
- package/bin/agent-qa.js +6 -1
- package/docs/ARCHITECTURE.md +13 -2
- package/package.json +6 -6
- package/scripts/install.ps1 +112 -112
- package/scripts/install_global_plugin.ps1 +1 -1
- package/scripts/install_global_plugin.sh +1 -1
- package/scripts/lint_skills.ps1 +57 -57
- package/skills_manifest.json +1 -1
- package/synapse.config.json +1 -1
- package/tools/TOOLS_RUNBOOK.md +6 -1
- package/tools/__init__.py +1 -1
- package/tools/agent_canary.py +501 -501
- package/tools/api_fuzzer.py +11 -2
- package/tools/browser_helpers.js +2 -2
- package/tools/bump_version.py +8 -0
- package/tools/check_version_sync.py +18 -0
- package/tools/cli.py +210 -48
- package/tools/count_tokens.py +4 -4
- package/tools/dashboard_generator.py +10 -10
- package/tools/e2e_flow_prober.sh +0 -0
- package/tools/generate_allure_report.sh +0 -0
- package/tools/generate_test_reports.sh +0 -0
- package/tools/mcp_excel_server.py +3 -1
- package/tools/mcp_excel_server.sh +0 -0
- package/tools/mcp_server.py +1 -1
- package/tools/micro_mutator.py +4 -2
- package/tools/pinpoint_failure.py +88 -88
- package/tools/setup_project.py +1 -1
- package/tools/skillspector.py +31 -0
- package/tools/update_sentinel.py +3 -3
- package/tools/verify_all.py +16 -6
- package/tools/verify_all.sh +0 -0
- package/tools/visual_som_helper.py +14 -3
- package/tools/welcome_page.py +1 -1
- package/benchmarks/qa_eval/reports/AB_METHODOLOGY_REPORT.md +0 -83
package/scripts/install.ps1
CHANGED
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
<#
|
|
2
|
-
.SYNOPSIS
|
|
3
|
-
One-click setup and dependency bootstrap script for Enterprise Agent-Skills Hub.
|
|
4
|
-
.DESCRIPTION
|
|
5
|
-
Detects and installs Python, Node.js, Playwright, sets up a clean virtual environment,
|
|
6
|
-
installs requirements.txt, and verifies the full
|
|
7
|
-
#>
|
|
8
|
-
|
|
9
|
-
[CmdletBinding()]
|
|
10
|
-
param(
|
|
11
|
-
[switch]$ForceInstall = $false
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
15
|
-
Write-Host " Enterprise Agent-Skills Hub: Automated Bootstrap Setup " -ForegroundColor Cyan
|
|
16
|
-
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
17
|
-
|
|
18
|
-
$repoRoot = Split-Path -Parent $PSScriptRoot
|
|
19
|
-
Set-Location $repoRoot
|
|
20
|
-
|
|
21
|
-
# 1. Verify / Install Python
|
|
22
|
-
Write-Host "`n[1/5] Checking Python 3 Runtime..." -ForegroundColor Yellow
|
|
23
|
-
$py = $null
|
|
24
|
-
foreach ($cmd in @("python", "python3", "py")) {
|
|
25
|
-
try {
|
|
26
|
-
$v = & $cmd --version 2>&1
|
|
27
|
-
if ($LASTEXITCODE -eq 0 -and $v -match "Python\s+3\.(1[0-9]|[2-9][0-9])") {
|
|
28
|
-
$py = $cmd
|
|
29
|
-
Write-Host " [OK] Found Python: $v" -ForegroundColor Green
|
|
30
|
-
break
|
|
31
|
-
}
|
|
32
|
-
} catch { }
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (-not $py) {
|
|
36
|
-
Write-Host " [WARN] Python 3.10+ not found in PATH." -ForegroundColor Yellow
|
|
37
|
-
Write-Host " Attempting automated installation via winget..." -ForegroundColor Cyan
|
|
38
|
-
try {
|
|
39
|
-
winget install -e --id Python.Python.3.11 --accept-source-agreements --accept-package-agreements --scope currentUser
|
|
40
|
-
Write-Host " [OK] Python 3.11 installed. Please restart your shell if PATH is not updated." -ForegroundColor Green
|
|
41
|
-
} catch {
|
|
42
|
-
Write-Host " [FAIL] Could not auto-install Python. Please install from https://python.org" -ForegroundColor Red
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
# 2. Virtual Environment Setup
|
|
47
|
-
Write-Host "`n[2/5] Setting up Virtual Environment (.venv)..." -ForegroundColor Yellow
|
|
48
|
-
$venvDir = Join-Path $repoRoot ".venv"
|
|
49
|
-
if (-not (Test-Path $venvDir) -and $py) {
|
|
50
|
-
Write-Host " Creating virtual environment at $venvDir..." -ForegroundColor Cyan
|
|
51
|
-
& $py -m venv $venvDir
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
$venvPython = if ($IsWindows -or $env:OS -match "Windows") {
|
|
55
|
-
Join-Path $venvDir "Scripts\python.exe"
|
|
56
|
-
} else {
|
|
57
|
-
Join-Path $venvDir "bin/python"
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
# 3. Pip Dependencies
|
|
61
|
-
Write-Host "`n[3/5] Installing Core Python Dependencies..." -ForegroundColor Yellow
|
|
62
|
-
$reqFile = Join-Path $repoRoot "requirements.txt"
|
|
63
|
-
if (Test-Path $venvPython) {
|
|
64
|
-
Write-Host " Upgrading pip & wheel..." -ForegroundColor Cyan
|
|
65
|
-
& $venvPython -m pip install --upgrade pip setuptools wheel --quiet
|
|
66
|
-
if (Test-Path $reqFile) {
|
|
67
|
-
Write-Host " Installing requirements from requirements.txt..." -ForegroundColor Cyan
|
|
68
|
-
& $venvPython -m pip install -r $reqFile --quiet
|
|
69
|
-
Write-Host " [OK] Dependencies installed in .venv" -ForegroundColor Green
|
|
70
|
-
}
|
|
71
|
-
} elseif ($py) {
|
|
72
|
-
Write-Host " Installing requirements using system $py..." -ForegroundColor Cyan
|
|
73
|
-
& $py -m pip install -r $reqFile --quiet
|
|
74
|
-
} else {
|
|
75
|
-
Write-Host " [SKIP] Skipping pip install: Python runtime not yet active." -ForegroundColor Yellow
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
# 4. Check Node.js / Playwright
|
|
79
|
-
Write-Host "`n[4/5] Checking Node.js & Playwright CLI..." -ForegroundColor Yellow
|
|
80
|
-
try {
|
|
81
|
-
$nodeVer = & node --version 2>&1
|
|
82
|
-
Write-Host " [OK] Found Node.js: $nodeVer" -ForegroundColor Green
|
|
83
|
-
} catch {
|
|
84
|
-
Write-Host " [INFO] Node.js not detected. Optional for standalone Python tools, required for Playwright MCP." -ForegroundColor Gray
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
# 5. Run Quality Gate Linting
|
|
88
|
-
Write-Host "`n[5/6] Running Quality Gate & Skill Integrity Verification..." -ForegroundColor Yellow
|
|
89
|
-
$linter = Join-Path $repoRoot "scripts\lint_skills.ps1"
|
|
90
|
-
if (Test-Path $linter) {
|
|
91
|
-
& powershell -ExecutionPolicy Bypass -File $linter
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
# 6. Initialize SQLite Central Agent Memory
|
|
95
|
-
Write-Host "`n[6/6] Initializing Global Central Agent Memory (~/.agent_memory/global_cache.db)..." -ForegroundColor Yellow
|
|
96
|
-
$cacheTool = Join-Path $repoRoot "tools\cache_resolver.py"
|
|
97
|
-
if (Test-Path $cacheTool) {
|
|
98
|
-
try {
|
|
99
|
-
if (Test-Path $venvPython) {
|
|
100
|
-
& $venvPython $cacheTool init
|
|
101
|
-
} elseif ($py) {
|
|
102
|
-
& $py $cacheTool init
|
|
103
|
-
}
|
|
104
|
-
Write-Host " [OK] Central Agent Memory initialized and seeded." -ForegroundColor Green
|
|
105
|
-
} catch {
|
|
106
|
-
Write-Host " [WARN] Could not initialize ~/.agent_memory/global_cache.db: $_" -ForegroundColor Yellow
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
Write-Host "`n==========================================================" -ForegroundColor Cyan
|
|
111
|
-
Write-Host " Bootstrap Complete! Hub is ready for Multi-Agent Swarm. " -ForegroundColor Green
|
|
112
|
-
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS
|
|
3
|
+
One-click setup and dependency bootstrap script for Enterprise Agent-Skills Hub.
|
|
4
|
+
.DESCRIPTION
|
|
5
|
+
Detects and installs Python, Node.js, Playwright, sets up a clean virtual environment,
|
|
6
|
+
installs requirements.txt, and verifies the full 38-skill catalog.
|
|
7
|
+
#>
|
|
8
|
+
|
|
9
|
+
[CmdletBinding()]
|
|
10
|
+
param(
|
|
11
|
+
[switch]$ForceInstall = $false
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
15
|
+
Write-Host " Enterprise Agent-Skills Hub: Automated Bootstrap Setup " -ForegroundColor Cyan
|
|
16
|
+
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
17
|
+
|
|
18
|
+
$repoRoot = Split-Path -Parent $PSScriptRoot
|
|
19
|
+
Set-Location $repoRoot
|
|
20
|
+
|
|
21
|
+
# 1. Verify / Install Python
|
|
22
|
+
Write-Host "`n[1/5] Checking Python 3 Runtime..." -ForegroundColor Yellow
|
|
23
|
+
$py = $null
|
|
24
|
+
foreach ($cmd in @("python", "python3", "py")) {
|
|
25
|
+
try {
|
|
26
|
+
$v = & $cmd --version 2>&1
|
|
27
|
+
if ($LASTEXITCODE -eq 0 -and $v -match "Python\s+3\.(1[0-9]|[2-9][0-9])") {
|
|
28
|
+
$py = $cmd
|
|
29
|
+
Write-Host " [OK] Found Python: $v" -ForegroundColor Green
|
|
30
|
+
break
|
|
31
|
+
}
|
|
32
|
+
} catch { }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (-not $py) {
|
|
36
|
+
Write-Host " [WARN] Python 3.10+ not found in PATH." -ForegroundColor Yellow
|
|
37
|
+
Write-Host " Attempting automated installation via winget..." -ForegroundColor Cyan
|
|
38
|
+
try {
|
|
39
|
+
winget install -e --id Python.Python.3.11 --accept-source-agreements --accept-package-agreements --scope currentUser
|
|
40
|
+
Write-Host " [OK] Python 3.11 installed. Please restart your shell if PATH is not updated." -ForegroundColor Green
|
|
41
|
+
} catch {
|
|
42
|
+
Write-Host " [FAIL] Could not auto-install Python. Please install from https://python.org" -ForegroundColor Red
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
# 2. Virtual Environment Setup
|
|
47
|
+
Write-Host "`n[2/5] Setting up Virtual Environment (.venv)..." -ForegroundColor Yellow
|
|
48
|
+
$venvDir = Join-Path $repoRoot ".venv"
|
|
49
|
+
if (-not (Test-Path $venvDir) -and $py) {
|
|
50
|
+
Write-Host " Creating virtual environment at $venvDir..." -ForegroundColor Cyan
|
|
51
|
+
& $py -m venv $venvDir
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
$venvPython = if ($IsWindows -or $env:OS -match "Windows") {
|
|
55
|
+
Join-Path $venvDir "Scripts\python.exe"
|
|
56
|
+
} else {
|
|
57
|
+
Join-Path $venvDir "bin/python"
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# 3. Pip Dependencies
|
|
61
|
+
Write-Host "`n[3/5] Installing Core Python Dependencies..." -ForegroundColor Yellow
|
|
62
|
+
$reqFile = Join-Path $repoRoot "requirements.txt"
|
|
63
|
+
if (Test-Path $venvPython) {
|
|
64
|
+
Write-Host " Upgrading pip & wheel..." -ForegroundColor Cyan
|
|
65
|
+
& $venvPython -m pip install --upgrade pip setuptools wheel --quiet
|
|
66
|
+
if (Test-Path $reqFile) {
|
|
67
|
+
Write-Host " Installing requirements from requirements.txt..." -ForegroundColor Cyan
|
|
68
|
+
& $venvPython -m pip install -r $reqFile --quiet
|
|
69
|
+
Write-Host " [OK] Dependencies installed in .venv" -ForegroundColor Green
|
|
70
|
+
}
|
|
71
|
+
} elseif ($py) {
|
|
72
|
+
Write-Host " Installing requirements using system $py..." -ForegroundColor Cyan
|
|
73
|
+
& $py -m pip install -r $reqFile --quiet
|
|
74
|
+
} else {
|
|
75
|
+
Write-Host " [SKIP] Skipping pip install: Python runtime not yet active." -ForegroundColor Yellow
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
# 4. Check Node.js / Playwright
|
|
79
|
+
Write-Host "`n[4/5] Checking Node.js & Playwright CLI..." -ForegroundColor Yellow
|
|
80
|
+
try {
|
|
81
|
+
$nodeVer = & node --version 2>&1
|
|
82
|
+
Write-Host " [OK] Found Node.js: $nodeVer" -ForegroundColor Green
|
|
83
|
+
} catch {
|
|
84
|
+
Write-Host " [INFO] Node.js not detected. Optional for standalone Python tools, required for Playwright MCP." -ForegroundColor Gray
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
# 5. Run Quality Gate Linting
|
|
88
|
+
Write-Host "`n[5/6] Running Quality Gate & Skill Integrity Verification..." -ForegroundColor Yellow
|
|
89
|
+
$linter = Join-Path $repoRoot "scripts\lint_skills.ps1"
|
|
90
|
+
if (Test-Path $linter) {
|
|
91
|
+
& powershell -ExecutionPolicy Bypass -File $linter
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
# 6. Initialize SQLite Central Agent Memory
|
|
95
|
+
Write-Host "`n[6/6] Initializing Global Central Agent Memory (~/.agent_memory/global_cache.db)..." -ForegroundColor Yellow
|
|
96
|
+
$cacheTool = Join-Path $repoRoot "tools\cache_resolver.py"
|
|
97
|
+
if (Test-Path $cacheTool) {
|
|
98
|
+
try {
|
|
99
|
+
if (Test-Path $venvPython) {
|
|
100
|
+
& $venvPython $cacheTool init
|
|
101
|
+
} elseif ($py) {
|
|
102
|
+
& $py $cacheTool init
|
|
103
|
+
}
|
|
104
|
+
Write-Host " [OK] Central Agent Memory initialized and seeded." -ForegroundColor Green
|
|
105
|
+
} catch {
|
|
106
|
+
Write-Host " [WARN] Could not initialize ~/.agent_memory/global_cache.db: $_" -ForegroundColor Yellow
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
Write-Host "`n==========================================================" -ForegroundColor Cyan
|
|
111
|
+
Write-Host " Bootstrap Complete! Hub is ready for Multi-Agent Swarm. " -ForegroundColor Green
|
|
112
|
+
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Enterprise Synapse-Hub Global Antigravity Plugin Installer (Windows)
|
|
2
2
|
# ======================================================================
|
|
3
3
|
# Mounts Synapse-Hub directly into Google Antigravity's Global Plugin Directory.
|
|
4
|
-
# Once installed, all
|
|
4
|
+
# Once installed, all 38 skills and 6 subagents are active across all projects automatically.
|
|
5
5
|
|
|
6
6
|
[CmdletBinding()]
|
|
7
7
|
param()
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Enterprise Synapse-Hub Global Antigravity Plugin Installer (macOS / Linux)
|
|
3
3
|
# ======================================================================
|
|
4
4
|
# Mounts Synapse-Hub directly into Google Antigravity's Global Plugin Directory.
|
|
5
|
-
# Once installed, all
|
|
5
|
+
# Once installed, all 38 skills and 6 subagents are active across all projects automatically.
|
|
6
6
|
|
|
7
7
|
set -e
|
|
8
8
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
package/scripts/lint_skills.ps1
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
<#
|
|
2
|
-
.SYNOPSIS
|
|
3
|
-
Automated validation test for all skills in Agent-Skills Hub.
|
|
4
|
-
.DESCRIPTION
|
|
5
|
-
Checks presence of SKILL.md, valid frontmatter (name, description), and verifies skills_manifest.json.
|
|
6
|
-
#>
|
|
7
|
-
|
|
8
|
-
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
9
|
-
Write-Host " Agent-Skills Quality & Integrity Linter " -ForegroundColor Cyan
|
|
10
|
-
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
11
|
-
|
|
12
|
-
$skillsDir = Join-Path $PSScriptRoot "..\.agents\skills"
|
|
13
|
-
$manifestPath = Join-Path $PSScriptRoot "..\skills_manifest.json"
|
|
14
|
-
|
|
15
|
-
$passed = 0
|
|
16
|
-
$failed = 0
|
|
17
|
-
|
|
18
|
-
if (-not (Test-Path $manifestPath)) {
|
|
19
|
-
Write-Host "[FAIL] Missing skills_manifest.json!" -ForegroundColor Red
|
|
20
|
-
exit 1
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
$manifest = Get-Content $manifestPath -Raw | ConvertFrom-Json
|
|
24
|
-
Write-Host "[INFO] Manifest loaded: $($manifest.totalSkills) declared skills." -ForegroundColor Gray
|
|
25
|
-
|
|
26
|
-
$skillDirs = Get-ChildItem -Path $skillsDir -Directory
|
|
27
|
-
|
|
28
|
-
foreach ($dir in $skillDirs) {
|
|
29
|
-
$skillMd = Join-Path $dir.FullName "SKILL.md"
|
|
30
|
-
if (-not (Test-Path $skillMd)) {
|
|
31
|
-
Write-Host "[FAIL] $($dir.Name): Missing SKILL.md" -ForegroundColor Red
|
|
32
|
-
$failed++
|
|
33
|
-
continue
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
$content = Get-Content $skillMd -Raw
|
|
37
|
-
$hasName = $content -match "name:\s*[\w\-\s]+"
|
|
38
|
-
$hasDesc = $content -match "description:\s*.+"
|
|
39
|
-
|
|
40
|
-
if ($hasName -and $hasDesc) {
|
|
41
|
-
Write-Host "[PASS] $($dir.Name) - Valid Frontmatter" -ForegroundColor Green
|
|
42
|
-
$passed++
|
|
43
|
-
} else {
|
|
44
|
-
Write-Host "[FAIL] $($dir.Name) - Invalid or missing YAML frontmatter" -ForegroundColor Red
|
|
45
|
-
$failed++
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
Write-Host "----------------------------------------------------------" -ForegroundColor Cyan
|
|
50
|
-
Write-Host "Verification Results: $passed Passed, $failed Failed." -ForegroundColor $(if ($failed -eq 0) { "Green" } else { "Red" })
|
|
51
|
-
Write-Host "----------------------------------------------------------" -ForegroundColor Cyan
|
|
52
|
-
|
|
53
|
-
if ($failed -gt 0) {
|
|
54
|
-
exit 1
|
|
55
|
-
} else {
|
|
56
|
-
exit 0
|
|
57
|
-
}
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS
|
|
3
|
+
Automated validation test for all skills in Agent-Skills Hub.
|
|
4
|
+
.DESCRIPTION
|
|
5
|
+
Checks presence of SKILL.md, valid frontmatter (name, description), and verifies skills_manifest.json.
|
|
6
|
+
#>
|
|
7
|
+
|
|
8
|
+
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
9
|
+
Write-Host " Agent-Skills Quality & Integrity Linter " -ForegroundColor Cyan
|
|
10
|
+
Write-Host "==========================================================" -ForegroundColor Cyan
|
|
11
|
+
|
|
12
|
+
$skillsDir = Join-Path $PSScriptRoot "..\.agents\skills"
|
|
13
|
+
$manifestPath = Join-Path $PSScriptRoot "..\skills_manifest.json"
|
|
14
|
+
|
|
15
|
+
$passed = 0
|
|
16
|
+
$failed = 0
|
|
17
|
+
|
|
18
|
+
if (-not (Test-Path $manifestPath)) {
|
|
19
|
+
Write-Host "[FAIL] Missing skills_manifest.json!" -ForegroundColor Red
|
|
20
|
+
exit 1
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
$manifest = Get-Content $manifestPath -Raw | ConvertFrom-Json
|
|
24
|
+
Write-Host "[INFO] Manifest loaded: $($manifest.totalSkills) declared skills." -ForegroundColor Gray
|
|
25
|
+
|
|
26
|
+
$skillDirs = Get-ChildItem -Path $skillsDir -Directory
|
|
27
|
+
|
|
28
|
+
foreach ($dir in $skillDirs) {
|
|
29
|
+
$skillMd = Join-Path $dir.FullName "SKILL.md"
|
|
30
|
+
if (-not (Test-Path $skillMd)) {
|
|
31
|
+
Write-Host "[FAIL] $($dir.Name): Missing SKILL.md" -ForegroundColor Red
|
|
32
|
+
$failed++
|
|
33
|
+
continue
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
$content = Get-Content $skillMd -Raw
|
|
37
|
+
$hasName = $content -match "name:\s*[\w\-\s]+"
|
|
38
|
+
$hasDesc = $content -match "description:\s*.+"
|
|
39
|
+
|
|
40
|
+
if ($hasName -and $hasDesc) {
|
|
41
|
+
Write-Host "[PASS] $($dir.Name) - Valid Frontmatter" -ForegroundColor Green
|
|
42
|
+
$passed++
|
|
43
|
+
} else {
|
|
44
|
+
Write-Host "[FAIL] $($dir.Name) - Invalid or missing YAML frontmatter" -ForegroundColor Red
|
|
45
|
+
$failed++
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
Write-Host "----------------------------------------------------------" -ForegroundColor Cyan
|
|
50
|
+
Write-Host "Verification Results: $passed Passed, $failed Failed." -ForegroundColor $(if ($failed -eq 0) { "Green" } else { "Red" })
|
|
51
|
+
Write-Host "----------------------------------------------------------" -ForegroundColor Cyan
|
|
52
|
+
|
|
53
|
+
if ($failed -gt 0) {
|
|
54
|
+
exit 1
|
|
55
|
+
} else {
|
|
56
|
+
exit 0
|
|
57
|
+
}
|
package/skills_manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"name": "Enterprise Agent Skills Hub",
|
|
4
|
-
"version": "2.4.
|
|
4
|
+
"version": "2.4.2",
|
|
5
5
|
"description": "Unified Catalog of 38 Specialized Skills for Autonomous AI Agents in Enterprise Software Quality Engineering, Performance, and Architecture.",
|
|
6
6
|
"totalSkills": 38,
|
|
7
7
|
"categories": {
|
package/synapse.config.json
CHANGED
package/tools/TOOLS_RUNBOOK.md
CHANGED
|
@@ -60,7 +60,12 @@
|
|
|
60
60
|
| **Smart Visual Masking (Anti-Flake)** | `tools/smart_visual_masker.py` | `agent-qa visual-mask --playwright-snippet` |
|
|
61
61
|
| **CI/CD Silent Self-Healing Hook & Auto-PR** | `tools/ci_healing_hook.py` | `agent-qa ci-hook --file <f> --old-loc <old> --new-loc <new>` |
|
|
62
62
|
| **Checking DB data leaks (Taint Analysis)** | `tools/trace_data_flow.py` | `python tools/trace_data_flow.py` |
|
|
63
|
-
| **Detecting Canvas / GIS Map visual regression** | `tools/visual_diff_canvas.py` | `python tools/visual_diff_canvas.py
|
|
63
|
+
| **Detecting Canvas / GIS Map visual regression** | `tools/visual_diff_canvas.py` | `python tools/visual_diff_canvas.py compare <b> <a> --diff <d>` (or `agent-qa canvas-diff`) |
|
|
64
|
+
| **Universal Release Version Synchronization Audit** | `tools/check_version_sync.py` | `python tools/check_version_sync.py` (or `agent-qa check-version`) |
|
|
65
|
+
| **Groovy Scripts & Keywords Syntax Pre-check** | `tools/validate_groovy_scripts.py` | `python tools/validate_groovy_scripts.py` (or `agent-qa validate-groovy`) |
|
|
66
|
+
| **Model Context Protocol (MCP) Excel Server** | `tools/mcp_excel_server.py` | `python tools/mcp_excel_server.py` (or `agent-qa mcp-excel`) |
|
|
67
|
+
| **3-Layer Heuristic Locator Matcher (0-Token Recovery)** | `tools/heuristic_locator_matcher.py` | `python tools/heuristic_locator_matcher.py` (Internal autonomous fallback engine) |
|
|
68
|
+
| **Output Formatter & Exit Code Spec (NO_COLOR standard)** | `tools/output_formatter.py` | `from output_formatter import is_color_enabled, EXIT_SUCCESS` |
|
|
64
69
|
| **Canary Self-Healing Audit** | `tools/agent_canary.py` | `python tools/agent_canary.py --run` |
|
|
65
70
|
| **Lookup XPath Locator in cached memory** | `tools/lookup_xpath.py` | `python tools/lookup_xpath.py "<keyword>"` |
|
|
66
71
|
| **Lookup Test Case metadata** | `tools/lookup_tc.py` | `python tools/lookup_tc.py "<keyword_or_id>"` |
|