Files
wehub-resource-sync 23f7624596
ADR-166 MCP Bridge Security Lock / Static-source security lock (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / Compose default binds loopback + Mongo has auth (push) Failing after 2s
CodeQL Advanced / Analyze (rust) (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / plugin-agent-federation bindHost default (push) Failing after 1s
ADR-166 MCP Bridge Security Lock / Runtime behavior — 401 + terminal gate + fail-closed (push) Failing after 4s
business-pods-smoke / smoke (push) Failing after 1s
all-plugins-smoke / smoke-all (push) Failing after 2s
CI/CD Pipeline / Security & Code Quality (push) Failing after 1s
CI/CD Pipeline / Test Suite (ubuntu-latest) (push) Failing after 1s
CI/CD Pipeline / Build & Package (macos-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (ubuntu-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (windows-latest) (push) Has been skipped
CI/CD Pipeline / Documentation & Examples (push) Failing after 1s
Clone Tracker (14-day rolling) / Snapshot clones for ruflo ecosystem (push) Failing after 1s
CodeQL Advanced / Analyze (actions) (push) Failing after 1s
CodeQL Advanced / Analyze (javascript-typescript) (push) Failing after 1s
federation-peer-rust / stable-noop (push) Failing after 1s
metaharness-ci / score (push) Failing after 1s
metaharness-ci / router-compat (push) Failing after 0s
metaharness-ci / similarity-tests (push) Failing after 0s
no-agentbbs-smoke / smoke-without-agentbbs (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (windows-latest) (push) Has been skipped
codex-integration-audit / Codex integration audit (push) Failing after 1s
helpers-manifest-guard / guard (push) Failing after 1s
🔗 Cross-Agent Integration Tests / 🤝 Agent Coordination Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🧠 Memory Sharing Integration (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🛡️ Fault Tolerance Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / ⚡ Performance Integration Tests (push) Has been skipped
metaharness-ci / mcp-scan (push) Failing after 1s
metaharness-ci / eject-dryrun (push) Failing after 1s
metaharness-ci / metaharness-real-data (push) Failing after 0s
no-cli-optdep-bloat-2561 / guard (push) Failing after 1s
no-metaharness-smoke / smoke-without-metaharness (push) Failing after 1s
no-phantom-agentic-flow-subpath / guard (push) Failing after 1s
🔄 Automated Rollback Manager / 🚨 Failure Detection (push) Failing after 1s
V3 CI/CD Pipeline / Plugin hooks smoke / ubuntu-latest / Node 22 (push) Failing after 1s
V3 CI/CD Pipeline / ruflo-graph-intelligence build + test smoke (#2044, ADR-123) (push) Failing after 1s
CVE Audit Gate / Audit root (critical-blocking) (push) Failing after 2s
cost-tracker-smoke / smoke (push) Failing after 3s
oia-audit-weekly / audit (push) Failing after 2s
ruflo-agent-smoke / ruflo-agent structural smoke (push) Failing after 1s
📊 Status Badges Update / 📊 Update Status Badges (push) Failing after 1s
V3 CI/CD Pipeline / Static regression guards (#2267 YAML + (push) Failing after 1s
V3 CI/CD Pipeline / Test V3 Packages (push) Failing after 0s
V3 CI/CD Pipeline / agent_execute provider routing smoke (#2042) (push) Failing after 0s
CVE Audit Gate / Audit v3 (critical-blocking) (push) Failing after 1s
federation-peer-rust / stable-native (push) Failing after 2s
🔗 Cross-Agent Integration Tests / 🚀 Integration Test Setup (push) Failing after 2s
neural-trader-smoke / runtime-smoke (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (macos-latest) (push) Has been skipped
V3 CI/CD Pipeline / Build V3 (ubuntu-latest) (push) Has been skipped
V3 CI/CD Pipeline / Type Check V3 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 24 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 22 (push) Failing after 2s
V3 CI/CD Pipeline / browser rvf create flag smoke (#2015) (push) Failing after 0s
V3 CI/CD Pipeline / Dependency review (#2046) (push) Has been skipped
V3 CI/CD Pipeline / Supply-chain audit (#2046) (push) Failing after 0s
V3 CI/CD Pipeline / witness marker drift smoke (#2021) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader portfolio CG smoke (#2068, ADR-126 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader backtest signing smoke (#2068, ADR-126 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / kg-extract type-import classification smoke (#2049) (push) Failing after 0s
V3 CI/CD Pipeline / witness verify precondition smoke (#1880) (push) Failing after 2s
V3 CI/CD Pipeline / neural-trader pipeline risk-gate smoke (#2068, ADR-126 Phase 5) (push) Failing after 0s
V3 CI/CD Pipeline / neural-trader feature attribution smoke (#2068, ADR-126 Phase 6) (push) Failing after 0s
V3 CI/CD Pipeline / plugin-registry signature verification smoke (#1922, CWE-347) (push) Failing after 4s
V3 CI/CD Pipeline / memory stats legacy-DB smoke (#2120) (push) Failing after 4s
V3 CI/CD Pipeline / github deprecated actions smoke (#2089, ADR-127 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / graph query + pathfinder smoke (ADR-130 P2+P5) (push) Has been skipped
V3 CI/CD Pipeline / graph trajectory hooks smoke (ADR-130 P3) (push) Has been skipped
V3 CI/CD Pipeline / graph plugin adapter smoke (ADR-130 P4) (push) Has been skipped
V3 CI/CD Pipeline / graph benchmark (ADR-130 P6) (push) Has been skipped
V3 CI/CD Pipeline / statusline generator delegation smoke (#2195) (push) Failing after 1s
V3 CI/CD Pipeline / wizard init regression guard (#2206 (push) Failing after 1s
V3 CI/CD Pipeline / memory no-stray-db smoke (ADR-125 P7) (push) Failing after 1s
V3 CI/CD Pipeline / github-safe injection smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github actions pin smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github attribution opt-in smoke (#2089, ADR-127 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / pre-bash hook safety smoke (#2017) (push) Failing after 1s
V3 CI/CD Pipeline / Memory import smoke / ubuntu-latest (push) Failing after 0s
V3 CI/CD Pipeline / MCP protocol smoke / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / ruvllm WASM auto-init smoke (#2086) (push) Failing after 4s
V3 CI/CD Pipeline / MCP paired-tool round-trip smoke (#1889) (push) Failing after 1s
V3 CI/CD Pipeline / Plugin package install-safety (#1902/#1903/#1904) (push) Failing after 1s
V3 CI/CD Pipeline / Tool description discoverability (ADR-112) (push) Failing after 3s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (22) (push) Failing after 1s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (24) (push) Failing after 1s
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Vector-index dimension audit (#1947) (push) Failing after 0s
V3 CI/CD Pipeline / Hook-command install safety (#1921) (push) Failing after 1s
V3 CI/CD Pipeline / ToolOutputGuardrail smoke (ADR-131, (push) Failing after 1s
V3 CI/CD Pipeline / init-bundle invariants smoke (#2095, ADR-128 Phase 5) (push) Failing after 1s
V3 CI/CD Pipeline / wasm provider bridge smoke (ADR-129 P1) (push) Failing after 2s
V3 CI/CD Pipeline / wasm gallery CRUD smoke (ADR-129 P3) (push) Failing after 1s
V3 CI/CD Pipeline / wasm plugin bridge smoke (ADR-129 P4) (push) Failing after 0s
V3 CI/CD Pipeline / wasm compose smoke (ADR-129 P2) (push) Failing after 4s
V3 CI/CD Pipeline / graph schema smoke (ADR-130 P1) (push) Failing after 0s
Validate Marketplace / validate (push) Failing after 1s
🔍 Verification Pipeline / 🚀 Setup Verification (push) Failing after 1s
🔍 Verification Pipeline / 🛡️ Security Verification (push) Has been skipped
🔍 Verification Pipeline / 📝 Code Quality (push) Has been skipped
🔍 Verification Pipeline / 🧪 Test Verification (${{ matrix.os }}, Node ${{ matrix.node }}) (push) Has been skipped
🔍 Verification Pipeline / 🏗️ Build Verification (push) Has been skipped
🔍 Verification Pipeline / 📚 Documentation Verification (push) Has been skipped
CVE Audit Gate / High-severity report (warn only) (push) Has been cancelled
🔄 Automated Rollback Manager / 🔄 Execute Rollback (push) Has been cancelled
🔄 Automated Rollback Manager / ✅ Post-Rollback Verification (push) Has been cancelled
🔄 Automated Rollback Manager / 📊 Rollback Monitoring (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / windows-latest (push) Has been cancelled
🔄 Automated Rollback Manager / ⏳ Manual Rollback Approval (push) Has been cancelled
V3 CI/CD Pipeline / MCP protocol smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Memory import smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / ubuntu-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Publish to npm (alpha) (push) Has been cancelled
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / macos-latest / Node 22 (push) Has been cancelled
V3 CI/CD Pipeline / Plugin hooks smoke / macos-latest / Node 22 (push) Has been cancelled
CI/CD Pipeline / Deploy & Release (push) Has been cancelled
CI/CD Pipeline / CI Status (push) Has been cancelled
🔗 Cross-Agent Integration Tests / 📊 Integration Test Report (push) Has been cancelled
🔄 Automated Rollback Manager / 🔍 Pre-Rollback Validation (push) Has been cancelled
🔍 Verification Pipeline / ⚡ Performance Verification (push) Has been cancelled
🔍 Verification Pipeline / 📊 Verification Report (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:02:19 +08:00

205 lines
8.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Structural smoke test for ruflo-agentdb plugin v0.3.0.
# Per ADR-0001 §6 Verification: 13 numbered checks against the documented
# CLI MCP surface plus three documentation invariants.
#
# This script verifies plugin structural soundness and source-level
# contracts. Live MCP-tool exercise (against a running daemon with the
# bridge wired) is layered on top via the optional --live flag, but the
# default invocation is offline-safe and CI-friendly.
set -u
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
REPO_ROOT="$(cd "$ROOT/../.." && pwd)"
LIVE=0
for arg in "$@"; do
case "$arg" in --live) LIVE=1 ;; esac
done
PASS=0
FAIL=0
step() { printf "→ %s ... " "$1"; }
ok() { printf "PASS\n"; PASS=$((PASS+1)); }
bad() { printf "FAIL: %s\n" "$1"; FAIL=$((FAIL+1)); }
# Documentation invariants (ADR-0001 §Verification)
step "INV1: no '19 controllers' string in plugin docs (excluding ADRs which document history)"
# ADR files inside docs/adrs/ are allowed to reference "19 controllers" because
# they document the change. The invariant is on user-facing docs only.
hits=$(grep -rE '19 (AgentDB )?[Cc]ontrollers|all 19 controllers' "$ROOT" \
--include='*.md' --include='*.json' \
--exclude-dir='adrs' 2>/dev/null || true)
if [[ -n "$hits" ]]; then
bad "stale '19 controllers' phrasing still present in user-facing docs:"
echo "$hits" | sed 's/^/ /'
else
ok
fi
step "INV2: RaBitQ workflow documented in vector-search SKILL"
grep -q "embeddings_rabitq_build" "$ROOT/skills/vector-search/SKILL.md" \
&& grep -q "embeddings_rabitq_search" "$ROOT/skills/vector-search/SKILL.md" \
&& grep -q "embeddings_rabitq_status" "$ROOT/skills/vector-search/SKILL.md" \
&& ok || bad "RaBitQ trio not all documented"
step "INV3: README has the Namespace convention section"
grep -q "## Namespace convention" "$ROOT/README.md" \
&& grep -q "Reserved namespaces" "$ROOT/README.md" \
&& ok || bad "Namespace convention section missing"
# 1. Plugin version + new keywords
step "1. plugin.json declares version 0.3.0 with rabitq + namespace-convention keywords"
v=$(grep -E '"version"[[:space:]]*:' "$ROOT/.claude-plugin/plugin.json" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
if [[ "$v" != "0.3.0" ]]; then
bad "expected 0.3.0, got '$v'"
else
miss=""
for k in rabitq quantization namespace-convention controller-bridge; do
grep -q "\"$k\"" "$ROOT/.claude-plugin/plugin.json" || miss="$miss $k"
done
[[ -z "$miss" ]] && ok || bad "missing keywords:$miss"
fi
# 2. Controller-count claims defer to runtime
step "2. README/agent/command/skill defer controller count to runtime tool"
miss=""
for f in "$ROOT/README.md" "$ROOT/agents/agentdb-specialist.md" "$ROOT/commands/agentdb.md" "$ROOT/skills/agentdb-query/SKILL.md"; do
grep -q "agentdb_controllers" "$f" || miss="$miss $(basename $f)"
done
[[ -z "$miss" ]] && ok || bad "missing agentdb_controllers reference:$miss"
# 3. All 15 agentdb_* tool names are documented somewhere in the plugin
step "3. all 15 agentdb_* tool names referenced in plugin docs"
miss=""
for t in agentdb_health agentdb_controllers agentdb_pattern-store agentdb_pattern-search agentdb_feedback agentdb_causal-edge agentdb_route agentdb_session-start agentdb_session-end agentdb_hierarchical-store agentdb_hierarchical-recall agentdb_consolidate agentdb_batch agentdb_context-synthesize agentdb_semantic-route; do
grep -rq "$t" "$ROOT" --include='*.md' || miss="$miss $t"
done
[[ -z "$miss" ]] && ok || bad "undocumented:$miss"
# 4. All 10 embeddings_* tools documented
step "4. all 10 embeddings_* tool names referenced in plugin docs"
miss=""
for t in embeddings_init embeddings_generate embeddings_compare embeddings_search embeddings_neural embeddings_hyperbolic embeddings_status embeddings_rabitq_build embeddings_rabitq_search embeddings_rabitq_status; do
grep -rq "$t" "$ROOT" --include='*.md' || miss="$miss $t"
done
[[ -z "$miss" ]] && ok || bad "undocumented:$miss"
# 5. The 3 ruvllm_hnsw_* tools documented + the ~11 cap is acknowledged
step "5. ruvllm_hnsw_* tools documented and ~11 cap acknowledged"
miss=""
for t in ruvllm_hnsw_create ruvllm_hnsw_add ruvllm_hnsw_route; do
grep -rq "$t" "$ROOT" --include='*.md' || miss="$miss $t"
done
if [[ -n "$miss" ]]; then
bad "undocumented:$miss"
elif ! grep -rq "11 patterns\|≤11" "$ROOT/skills/vector-search/SKILL.md" "$ROOT/README.md" "$ROOT/agents/agentdb-specialist.md"; then
bad "WASM cap (~11 patterns) not acknowledged"
else
ok
fi
# 6. RaBitQ workflow has a 5-step recipe + the rerank caveat
step "6. RaBitQ section has the 5-step recipe + rerank caveat"
F="$ROOT/skills/vector-search/SKILL.md"
if grep -q "Quantized search" "$F" \
&& grep -q "rerank" "$F" \
&& grep -qE "embeddings_rabitq_build" "$F" \
&& grep -qE "embeddings_rabitq_search" "$F" \
&& grep -qE "embeddings_rabitq_status" "$F"; then
ok
else
bad "RaBitQ section incomplete (missing recipe or rerank caveat)"
fi
# 7. Pattern-store fallback is source-inspectable (no env var gates this — see ADR §6 caveat)
step "7. memory-store-fallback path is source-inspectable in agentdb-tools.ts"
TOOLS="$REPO_ROOT/v3/@claude-flow/cli/src/mcp-tools/agentdb-tools.ts"
if [[ -f "$TOOLS" ]] \
&& grep -q "memory-store-fallback" "$TOOLS" \
&& grep -q "ReasoningBank controller registry unavailable" "$TOOLS"; then
ok
else
bad "fallback string not present in agentdb-tools.ts (or file moved)"
fi
# 8. agentdb_hierarchical-store rejects an unknown tier
step "8. tier validator rejects unknown tier values"
TOOLS="$REPO_ROOT/v3/@claude-flow/cli/src/mcp-tools/agentdb-tools.ts"
if grep -qE "(working|episodic|semantic).*tier|tier.*(working|episodic|semantic)" "$TOOLS"; then
ok
else
bad "tier validator pattern not found in agentdb-tools.ts"
fi
# 9. Batch size is bounded
step "9. agentdb_batch enforces MAX_BATCH_SIZE = 500"
TOOLS="$REPO_ROOT/v3/@claude-flow/cli/src/mcp-tools/agentdb-tools.ts"
if grep -qE "MAX_BATCH_SIZE\s*=\s*500" "$TOOLS"; then
ok
else
bad "MAX_BATCH_SIZE = 500 not present (or moved)"
fi
# 10. Namespace convention guardrails: reserved list + colon rule + length cap
step "10. namespace guardrails documented (reserved list + colon rule + length cap)"
F="$ROOT/README.md"
miss=""
grep -q "claude-memories" "$F" || miss="$miss reserved-list"
grep -qE "SHOULD NOT contain.+:.+colon|colon.+delimiter" "$F" || \
grep -qE 'NOT contain `:`' "$F" || miss="$miss colon-rule"
grep -qE "200 chars|≤200" "$F" || miss="$miss length-cap"
[[ -z "$miss" ]] && ok || bad "guardrail set incomplete:$miss"
# 11. Auto-memory bridge mechanics documented (Claude Code populates claude-memories)
step "11. auto-memory bridge mechanics documented (memory_import_claude + auto-memory-hook.mjs)"
F="$ROOT/README.md"
if grep -q "How Claude Code populates AgentDB" "$F" \
&& grep -q "memory_import_claude" "$F" \
&& grep -q "auto-memory-hook.mjs" "$F" \
&& grep -q "memory_bridge_status" "$F" \
&& grep -q "memory_search_unified" "$F"; then
ok
else
bad "auto-memory bridge section missing pieces (header, import tool, hook script, bridge status, unified search)"
fi
# 12. Hook → namespace integration table
step "12. hook integration table maps hook → namespace it writes to"
F="$ROOT/README.md"
if grep -q "Hook integration convention" "$F" \
&& grep -q "SessionStart" "$F" \
&& grep -q "post-task --train-neural" "$F" \
&& grep -qE "ReasoningBank.*pattern|pattern.*ReasoningBank" "$F"; then
ok
else
bad "hook integration table missing (SessionStart, post-task --train-neural, ReasoningBank → pattern)"
fi
# 13. Pluralization gotcha (pattern vs patterns)
step "13. pluralization gotcha documented (pattern vs patterns)"
F="$ROOT/README.md"
if grep -qiE "pluraliz.*gotcha|pattern.*plural|plural.*pattern" "$F" \
&& grep -q '`pattern`' "$F" \
&& grep -q '`patterns`' "$F"; then
ok
else
bad "pluralization callout missing (must contrast pattern vs patterns)"
fi
# Live mode (optional, requires daemon)
if [[ "$LIVE" == "1" ]]; then
step "L1 (live): agentdb_health responds (requires running daemon)"
if command -v claude-flow >/dev/null 2>&1; then
if claude-flow mcp call agentdb_health 2>/dev/null | grep -q '"available"'; then
ok
else
bad "agentdb_health did not return an 'available' field"
fi
else
bad "claude-flow CLI not on PATH (skipping --live checks)"
fi
fi
printf "\n%s passed, %s failed\n" "$PASS" "$FAIL"
[[ $FAIL -eq 0 ]] || exit 1