@agentikos/omega-os 0.1.0 → 0.19.5
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/README.md +56 -14
- package/bootstrap/lib/__pycache__/claude-code-settings.cpython-313.pyc +0 -0
- package/bootstrap/lib/__pycache__/llm-clis.cpython-313.pyc +0 -0
- package/bootstrap/lib/__pycache__/manifest-helpers.cpython-313.pyc +0 -0
- package/bootstrap/lib/claude-code-settings.py +176 -0
- package/bootstrap/lib/common.sh +457 -1
- package/bootstrap/lib/llm-clis.py +341 -0
- package/bootstrap/lib/manifest-helpers.py +384 -0
- package/bootstrap/lib/steps.sh +1000 -26
- package/bootstrap/manifest.example.yaml +93 -2
- package/bootstrap/templates/aisb/CLAUDE.md +305 -0
- package/bootstrap/templates/aisb/architect.md +204 -0
- package/bootstrap/templates/aisb/checkers/CLAUDE.md +9 -0
- package/bootstrap/templates/aisb/checkers/checker-architect.md +151 -0
- package/bootstrap/templates/aisb/checkers/checker-common.md +171 -0
- package/bootstrap/templates/aisb/checkers/checker-construct.md +129 -0
- package/bootstrap/templates/aisb/checkers/checker-keymaker.md +204 -0
- package/bootstrap/templates/aisb/checkers/checker-link.md +205 -0
- package/bootstrap/templates/aisb/checkers/checker-merovingian.md +219 -0
- package/bootstrap/templates/aisb/checkers/checker-morpheus.md +211 -0
- package/bootstrap/templates/aisb/checkers/checker-neo.md +177 -0
- package/bootstrap/templates/aisb/checkers/checker-niobe.md +156 -0
- package/bootstrap/templates/aisb/checkers/checker-oracle.md +164 -0
- package/bootstrap/templates/aisb/checkers/checker-seraph.md +187 -0
- package/bootstrap/templates/aisb/checkers/checker-smith.md +195 -0
- package/bootstrap/templates/aisb/checkers/checker-zion.md +113 -0
- package/bootstrap/templates/aisb/construct.md +135 -0
- package/bootstrap/templates/aisb/keymaker.md +227 -0
- package/bootstrap/templates/aisb/link.md +170 -0
- package/bootstrap/templates/aisb/lmc-protocol.md +57 -0
- package/bootstrap/templates/aisb/merovingian.md +159 -0
- package/bootstrap/templates/aisb/morpheus.md +243 -0
- package/bootstrap/templates/aisb/neo.md +147 -0
- package/bootstrap/templates/aisb/niobe.md +197 -0
- package/bootstrap/templates/aisb/oracle.md +244 -0
- package/bootstrap/templates/aisb/protocols/handoff-templates.md +204 -0
- package/bootstrap/templates/aisb/protocols/shared-protocol.md +248 -0
- package/bootstrap/templates/aisb/pythia.md +153 -0
- package/bootstrap/templates/aisb/seraph.md +315 -0
- package/bootstrap/templates/aisb/smith.md +202 -0
- package/bootstrap/templates/aisb/zion.md +172 -0
- package/bootstrap/templates/autonomous/audit-patrol.yaml +41 -0
- package/bootstrap/templates/autonomous/smith-reflect.yaml +43 -0
- package/bootstrap/templates/autonomous/ssh-key-rotate.yaml +46 -0
- package/bootstrap/templates/autonomous/support-agent.yaml +38 -0
- package/docs/AUDITS.md +85 -0
- package/docs/COMPLETION-PLAN.md +48 -0
- package/docs/GAP-ANALYSIS.md +214 -0
- package/docs/INSTALL.md +47 -9
- package/docs/MCP-AND-PLUGINS.md +31 -4
- package/docs/SIMULATION.md +171 -0
- package/docs/simulate.sh +211 -0
- package/install.sh +164 -17
- package/omega/Agentik_Engine/README.md +27 -10
- package/omega/Agentik_Engine/omega_engine/__init__.py +212 -2
- package/omega/Agentik_Engine/omega_engine/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/account.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/agent_messages.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/aisb_chat.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit_diff.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit_gate.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/auto_update.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/autonomous.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/backup.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cadence.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/classifier.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cleanup.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/cli.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/completions.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/costs.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/done_signal.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/envelope.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/executor.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/handoff.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/hermes.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/hermes_bootstrap.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/hermes_desktop.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/learning.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/managed_agent.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/memory.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/menu.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/mission.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/plan.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/project.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/prompts.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/provider.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/prune.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/pursue.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/reducer.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/router.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/skill_routing.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/smoke.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/store.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/sync.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/telegram_history.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tmux.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tools.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/understand_anything.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/updater.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/validate.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/vault.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/webhooks.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/worker.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/account.py +502 -0
- package/omega/Agentik_Engine/omega_engine/agent_messages.py +167 -0
- package/omega/Agentik_Engine/omega_engine/aisb_chat.py +128 -0
- package/omega/Agentik_Engine/omega_engine/audit_diff.py +99 -0
- package/omega/Agentik_Engine/omega_engine/audit_gate.py +149 -0
- package/omega/Agentik_Engine/omega_engine/audits/__init__.py +60 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/batcher.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/dispatcher.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/generator.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/history.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/__pycache__/pipeline.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/audits/batcher.py +218 -0
- package/omega/Agentik_Engine/omega_engine/audits/dispatcher.py +92 -0
- package/omega/Agentik_Engine/omega_engine/audits/generator.py +234 -0
- package/omega/Agentik_Engine/omega_engine/audits/history.py +168 -0
- package/omega/Agentik_Engine/omega_engine/audits/pipeline.py +198 -0
- package/omega/Agentik_Engine/omega_engine/auto_update.py +339 -0
- package/omega/Agentik_Engine/omega_engine/autonomous.py +538 -0
- package/omega/Agentik_Engine/omega_engine/backup.py +215 -0
- package/omega/Agentik_Engine/omega_engine/cadence.py +158 -0
- package/omega/Agentik_Engine/omega_engine/classifier.py +215 -0
- package/omega/Agentik_Engine/omega_engine/cleanup.py +673 -0
- package/omega/Agentik_Engine/omega_engine/cli.py +4564 -56
- package/omega/Agentik_Engine/omega_engine/completions.py +260 -0
- package/omega/Agentik_Engine/omega_engine/costs.py +100 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__init__.py +14 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/autonomous.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/engine.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/__pycache__/telegram.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/daemons/autonomous.py +56 -0
- package/omega/Agentik_Engine/omega_engine/daemons/engine.py +236 -0
- package/omega/Agentik_Engine/omega_engine/daemons/telegram.py +315 -0
- package/omega/Agentik_Engine/omega_engine/done_signal.py +154 -0
- package/omega/Agentik_Engine/omega_engine/educators/__init__.py +51 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/artifact.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/automation.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/base.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/claudecode.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/connection.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/coworker.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/loop.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/prompt.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/__pycache__/skill.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/educators/artifact.py +65 -0
- package/omega/Agentik_Engine/omega_engine/educators/automation.py +76 -0
- package/omega/Agentik_Engine/omega_engine/educators/base.py +327 -0
- package/omega/Agentik_Engine/omega_engine/educators/claudecode.py +71 -0
- package/omega/Agentik_Engine/omega_engine/educators/connection.py +75 -0
- package/omega/Agentik_Engine/omega_engine/educators/coworker.py +68 -0
- package/omega/Agentik_Engine/omega_engine/educators/loop.py +82 -0
- package/omega/Agentik_Engine/omega_engine/educators/prompt.py +68 -0
- package/omega/Agentik_Engine/omega_engine/educators/skill.py +69 -0
- package/omega/Agentik_Engine/omega_engine/envelope.py +219 -0
- package/omega/Agentik_Engine/omega_engine/executor.py +195 -16
- package/omega/Agentik_Engine/omega_engine/genesis/__init__.py +134 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/orchestrator.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/phases.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/stack.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/__pycache__/state.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/genesis/orchestrator.py +262 -0
- package/omega/Agentik_Engine/omega_engine/genesis/phases.py +950 -0
- package/omega/Agentik_Engine/omega_engine/genesis/stack.py +324 -0
- package/omega/Agentik_Engine/omega_engine/genesis/state.py +353 -0
- package/omega/Agentik_Engine/omega_engine/handoff.py +459 -0
- package/omega/Agentik_Engine/omega_engine/hermes.py +426 -0
- package/omega/Agentik_Engine/omega_engine/hermes_bootstrap.py +382 -0
- package/omega/Agentik_Engine/omega_engine/hermes_desktop.py +469 -0
- package/omega/Agentik_Engine/omega_engine/integrations/__init__.py +30 -0
- package/omega/Agentik_Engine/omega_engine/integrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/integrations/__pycache__/graphify.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/integrations/graphify.py +234 -0
- package/omega/Agentik_Engine/omega_engine/learning.py +268 -0
- package/omega/Agentik_Engine/omega_engine/managed_agent.py +467 -0
- package/omega/Agentik_Engine/omega_engine/memory.py +271 -0
- package/omega/Agentik_Engine/omega_engine/menu.py +1065 -0
- package/omega/Agentik_Engine/omega_engine/migrations/__init__.py +144 -0
- package/omega/Agentik_Engine/omega_engine/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/migrations/__pycache__/v0_14_0.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/migrations/v0_14_0.py +29 -0
- package/omega/Agentik_Engine/omega_engine/mission.py +29 -14
- package/omega/Agentik_Engine/omega_engine/plan.py +846 -0
- package/omega/Agentik_Engine/omega_engine/prompts.py +158 -0
- package/omega/Agentik_Engine/omega_engine/provider.py +408 -13
- package/omega/Agentik_Engine/omega_engine/prune.py +151 -0
- package/omega/Agentik_Engine/omega_engine/pursue.py +205 -0
- package/omega/Agentik_Engine/omega_engine/rag/__init__.py +21 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/agentic.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/base.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/corrective.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/graph.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/hybrid.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/multimodal.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/__pycache__/router.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/rag/agentic.py +83 -0
- package/omega/Agentik_Engine/omega_engine/rag/base.py +42 -0
- package/omega/Agentik_Engine/omega_engine/rag/corrective.py +119 -0
- package/omega/Agentik_Engine/omega_engine/rag/graph.py +169 -0
- package/omega/Agentik_Engine/omega_engine/rag/hybrid.py +205 -0
- package/omega/Agentik_Engine/omega_engine/rag/multimodal.py +136 -0
- package/omega/Agentik_Engine/omega_engine/rag/router.py +110 -0
- package/omega/Agentik_Engine/omega_engine/reducer.py +21 -3
- package/omega/Agentik_Engine/omega_engine/router.py +28 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__init__.py +48 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/auditor.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/finder.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/installer.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/__pycache__/marketplaces.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/auditor.py +232 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/finder.py +94 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/installer.py +129 -0
- package/omega/Agentik_Engine/omega_engine/skill_discovery/marketplaces.py +80 -0
- package/omega/Agentik_Engine/omega_engine/skill_routing.py +388 -0
- package/omega/Agentik_Engine/omega_engine/smoke.py +81 -0
- package/omega/Agentik_Engine/omega_engine/store.py +132 -25
- package/omega/Agentik_Engine/omega_engine/sync.py +445 -0
- package/omega/Agentik_Engine/omega_engine/telegram_history.py +260 -0
- package/omega/Agentik_Engine/omega_engine/tmux.py +526 -0
- package/omega/Agentik_Engine/omega_engine/tools.py +272 -0
- package/omega/Agentik_Engine/omega_engine/understand_anything.py +275 -0
- package/omega/Agentik_Engine/omega_engine/updater.py +70 -0
- package/omega/Agentik_Engine/omega_engine/validate.py +186 -0
- package/omega/Agentik_Engine/omega_engine/vault.py +342 -0
- package/omega/Agentik_Engine/omega_engine/webhooks.py +262 -0
- package/omega/Agentik_Engine/omega_engine/worker.py +526 -0
- package/omega/Agentik_Engine/pyproject.toml +1 -1
- package/omega/Agentik_Engine/tests/__pycache__/test_account.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_account.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_adversarial.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_adversarial.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_agents_envelope.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_agents_envelope.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audit_arsenal.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audits_pipeline.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_audits_pipeline.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_auto_update_and_migrations.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_auto_update_and_migrations.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_autonomous.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_autonomous.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_educators.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_educators.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_executor.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_genesis_and_plan.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_genesis_and_plan.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_graphify.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_graphify.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_handoff.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_handoff.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_and_ua.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_and_ua.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_bootstrap_and_desktop.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_hermes_bootstrap_and_desktop.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_steps.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_steps.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_ux.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_install_ux.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_installer_wiring.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_installer_wiring.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_intelligence.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_intelligence.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_llm_clis_and_uninstall.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_llm_clis_and_uninstall.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_managed_agent.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_managed_agent.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_max_provider_and_menu.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_max_provider_and_menu.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_menu_coverage.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_menu_coverage.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_mission.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_progress.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_project.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_pursue_cadence.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_pursue_cadence.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_rag.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_rag.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_reducer.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_report.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_role_aliases_and_ssot.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_role_aliases_and_ssot.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_discovery_and_gate.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_discovery_and_gate.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_power.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_power.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_routing.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_skill_routing.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_snapshot_partial.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_snapshot_partial.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_telegram_history.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_telegram_history.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_and_aisb_chat.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tmux_and_aisb_chat.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tools_and_sync.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_tools_and_sync.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_v06_features.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_v06_features.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_vault.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_vault.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_webhooks_and_readiness.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_webhooks_and_readiness.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_worker_and_cleanup.cpython-313-pytest-8.4.2.pyc +0 -0
- package/omega/Agentik_Engine/tests/__pycache__/test_worker_and_cleanup.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/tests/test_account.py +338 -0
- package/omega/Agentik_Engine/tests/test_adversarial.py +351 -0
- package/omega/Agentik_Engine/tests/test_agents_envelope.py +274 -0
- package/omega/Agentik_Engine/tests/test_audits_pipeline.py +348 -0
- package/omega/Agentik_Engine/tests/test_auto_update_and_migrations.py +394 -0
- package/omega/Agentik_Engine/tests/test_autonomous.py +361 -0
- package/omega/Agentik_Engine/tests/test_educators.py +233 -0
- package/omega/Agentik_Engine/tests/test_genesis_and_plan.py +573 -0
- package/omega/Agentik_Engine/tests/test_graphify.py +190 -0
- package/omega/Agentik_Engine/tests/test_handoff.py +311 -0
- package/omega/Agentik_Engine/tests/test_hermes_and_ua.py +387 -0
- package/omega/Agentik_Engine/tests/test_hermes_bootstrap_and_desktop.py +358 -0
- package/omega/Agentik_Engine/tests/test_install_steps.py +359 -0
- package/omega/Agentik_Engine/tests/test_install_ux.py +151 -0
- package/omega/Agentik_Engine/tests/test_installer_wiring.py +496 -0
- package/omega/Agentik_Engine/tests/test_intelligence.py +285 -0
- package/omega/Agentik_Engine/tests/test_llm_clis_and_uninstall.py +228 -0
- package/omega/Agentik_Engine/tests/test_managed_agent.py +363 -0
- package/omega/Agentik_Engine/tests/test_max_provider_and_menu.py +231 -0
- package/omega/Agentik_Engine/tests/test_menu_coverage.py +72 -0
- package/omega/Agentik_Engine/tests/test_pursue_cadence.py +217 -0
- package/omega/Agentik_Engine/tests/test_rag.py +287 -0
- package/omega/Agentik_Engine/tests/test_role_aliases_and_ssot.py +207 -0
- package/omega/Agentik_Engine/tests/test_skill_discovery_and_gate.py +337 -0
- package/omega/Agentik_Engine/tests/test_skill_power.py +259 -0
- package/omega/Agentik_Engine/tests/test_skill_routing.py +189 -0
- package/omega/Agentik_Engine/tests/test_snapshot_partial.py +172 -0
- package/omega/Agentik_Engine/tests/test_telegram_history.py +209 -0
- package/omega/Agentik_Engine/tests/test_tmux_and_aisb_chat.py +223 -0
- package/omega/Agentik_Engine/tests/test_tools_and_sync.py +312 -0
- package/omega/Agentik_Engine/tests/test_v06_features.py +370 -0
- package/omega/Agentik_Engine/tests/test_vault.py +173 -0
- package/omega/Agentik_Engine/tests/test_webhooks_and_readiness.py +277 -0
- package/omega/Agentik_Engine/tests/test_worker_and_cleanup.py +541 -0
- package/omega/Agentik_Extra/etc/secrets/.vault-key +3 -0
- package/omega/Agentik_Extra/etc/secrets/.vault-pub +1 -0
- package/omega/Agentik_Runtime/audits.db +0 -0
- package/omega/Agentik_SSOT/VERSION +1 -1
- package/omega/Agentik_SSOT/claude-plugins/claude-plugins.yaml +100 -0
- package/omega/Agentik_SSOT/docs/LAYERS.md +90 -0
- package/omega/Agentik_SSOT/docs/USER-JOURNEY.md +283 -0
- package/omega/Agentik_SSOT/marketplaces/design-discipline.yaml +86 -0
- package/omega/Agentik_SSOT/skills/a11yaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/apiaudit/SKILL.md +157 -0
- package/omega/Agentik_SSOT/skills/automationaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/cadence/SKILL.md +76 -0
- package/omega/Agentik_SSOT/skills/codeaudit/SKILL.md +153 -0
- package/omega/Agentik_SSOT/skills/copyaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/dataaudit/SKILL.md +157 -0
- package/omega/Agentik_SSOT/skills/debugaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/dispatch/SKILL.md +79 -0
- package/omega/Agentik_SSOT/skills/dxaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/featureaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/flowaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/genesis/SKILL.md +116 -0
- package/omega/Agentik_SSOT/skills/handoff/SKILL.md +117 -0
- package/omega/Agentik_SSOT/skills/logicaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/motionaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/perfaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/plan/SKILL.md +127 -0
- package/omega/Agentik_SSOT/skills/pursue/SKILL.md +68 -0
- package/omega/Agentik_SSOT/skills/rag-route.md +82 -0
- package/omega/Agentik_SSOT/skills/refontaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/retentionaudit/SKILL.md +165 -0
- package/omega/Agentik_SSOT/skills/secaudit/SKILL.md +157 -0
- package/omega/Agentik_SSOT/skills/seoaudit/SKILL.md +161 -0
- package/omega/Agentik_SSOT/skills/skill-auditor/SKILL.md +83 -0
- package/omega/Agentik_SSOT/skills/skill-finder/SKILL.md +116 -0
- package/omega/Agentik_SSOT/skills/uiuxaudit/SKILL.md +165 -0
- package/package.json +2 -2
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checker-neo
|
|
3
|
+
description: Health checker for the NEO AISB agent. Validates session data accuracy, resource metrics, alert thresholds, false alarm detection, process identification, health status mapping, and recovery action safety.
|
|
4
|
+
tools: Read, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Checker: NEO -- Session Supervisor / Health Monitor
|
|
8
|
+
|
|
9
|
+
> What this Checker validates for NEO outputs.
|
|
10
|
+
> NEO produces session health reports, resource monitoring, anomaly alerts, and recovery recommendations.
|
|
11
|
+
> The Checker ensures every reported metric is real, alerts are justified, and recovery actions are safe.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Domain-Specific Checks
|
|
16
|
+
|
|
17
|
+
### 1. Session Data Accuracy
|
|
18
|
+
NEO reports on active Claude sessions (count, PIDs, uptime, memory usage). Every session metric MUST match actual process state.
|
|
19
|
+
|
|
20
|
+
- Reported session count must match `ps aux | grep claude | grep -v grep | wc -l`.
|
|
21
|
+
- Reported PIDs must appear in actual process listings.
|
|
22
|
+
- Reported session names (if any) must correspond to real tmux sessions or process identifiers.
|
|
23
|
+
- If NEO reports "no active sessions," verify no Claude processes are running.
|
|
24
|
+
|
|
25
|
+
**Tool:** `Bash` -- run `ps aux | grep claude | grep -v grep` and compare line-by-line against NEO's report.
|
|
26
|
+
|
|
27
|
+
### 2. Resource Metrics
|
|
28
|
+
NEO monitors RAM, CPU, and disk. Each metric must match system reality within acceptable tolerance.
|
|
29
|
+
|
|
30
|
+
| Metric | Source Command | Tolerance |
|
|
31
|
+
|--------|---------------|-----------|
|
|
32
|
+
| Total RAM | `free -h` (Mem: total) | Exact match |
|
|
33
|
+
| Used RAM | `free -h` (Mem: used) | +/- 200MB (fluctuates) |
|
|
34
|
+
| Available RAM | `free -h` (Mem: available) | +/- 200MB |
|
|
35
|
+
| CPU load | `uptime` (load averages) | +/- 0.5 (fluctuates) |
|
|
36
|
+
| Disk used | `df -h /` (Used) | +/- 1GB |
|
|
37
|
+
| Disk available | `df -h /` (Avail) | Exact match |
|
|
38
|
+
|
|
39
|
+
If any metric is outside tolerance, that metric is flagged. If 2+ metrics are wrong, that is a FAIL.
|
|
40
|
+
|
|
41
|
+
**Tool:** `Bash` -- run `free -h`, `uptime`, `df -h /` and compare against reported values.
|
|
42
|
+
|
|
43
|
+
### 3. Alert Thresholds
|
|
44
|
+
NEO fires alerts based on thresholds. The Checker must verify that alerts are justified:
|
|
45
|
+
|
|
46
|
+
| Condition | Expected Alert Level |
|
|
47
|
+
|-----------|---------------------|
|
|
48
|
+
| RAM available > 2GB | No alert |
|
|
49
|
+
| RAM available 1-2GB | YELLOW |
|
|
50
|
+
| RAM available < 1GB | RED |
|
|
51
|
+
| Disk usage < 80% | No alert |
|
|
52
|
+
| Disk usage 80-90% | YELLOW |
|
|
53
|
+
| Disk usage > 90% | RED |
|
|
54
|
+
| CPU load < 4.0 (4-core) | No alert |
|
|
55
|
+
| CPU load 4.0-8.0 | YELLOW |
|
|
56
|
+
| CPU load > 8.0 | RED |
|
|
57
|
+
| 0 active sessions | INFO (idle) |
|
|
58
|
+
| Session uptime > 24h | YELLOW (stale?) |
|
|
59
|
+
| Process in D state | RED (stuck) |
|
|
60
|
+
|
|
61
|
+
If an alert fires but the threshold is not actually exceeded, that is a false alarm and a FAIL. If a threshold IS exceeded but no alert fires, that is a missed alert and also a FAIL.
|
|
62
|
+
|
|
63
|
+
**Tool:** Run the source commands, check actual values against threshold table, and compare against NEO's alert output.
|
|
64
|
+
|
|
65
|
+
### 4. No False Alarms
|
|
66
|
+
False alarms erode trust. The Checker must verify EVERY alert NEO raises:
|
|
67
|
+
|
|
68
|
+
- For each reported issue, run the corresponding system command.
|
|
69
|
+
- Confirm the issue actually exists at the time of verification.
|
|
70
|
+
- Account for natural system fluctuation (a brief CPU spike that resolved is not a current issue).
|
|
71
|
+
- If NEO reports a "zombie process" or "stuck session," verify the PID actually exists and is in the reported state.
|
|
72
|
+
|
|
73
|
+
**Tool:** `Bash` -- run diagnostic commands for each reported alert.
|
|
74
|
+
|
|
75
|
+
### 5. Process Identification
|
|
76
|
+
When NEO references specific processes, the Checker verifies:
|
|
77
|
+
|
|
78
|
+
- PIDs are real (appear in `ps aux` output).
|
|
79
|
+
- Process names match what NEO claims (e.g., if NEO says PID 12345 is "claude-code," verify the `ps` entry matches).
|
|
80
|
+
- Session associations are correct (if NEO says a process belongs to "AISB-NIOBE-session," verify via tmux or process tree).
|
|
81
|
+
|
|
82
|
+
**Tool:** `Bash` -- `ps aux | grep {PID}`, `ps -p {PID} -o pid,ppid,cmd`, `tmux list-sessions 2>/dev/null`.
|
|
83
|
+
|
|
84
|
+
### 6. Health Status Mapping
|
|
85
|
+
NEO uses a color-coded health status. The Checker verifies the mapping is correct:
|
|
86
|
+
|
|
87
|
+
| Status | Meaning | Conditions |
|
|
88
|
+
|--------|---------|-----------|
|
|
89
|
+
| GREEN | All healthy | All metrics within normal range, no alerts |
|
|
90
|
+
| YELLOW | Warning | 1+ YELLOW-level alerts, no RED alerts |
|
|
91
|
+
| RED | Critical | 1+ RED-level alerts |
|
|
92
|
+
| BLACK | System down | Core services unreachable, catastrophic failure |
|
|
93
|
+
|
|
94
|
+
The overall status must be the WORST of any individual component status. If any component is RED, overall cannot be GREEN or YELLOW.
|
|
95
|
+
|
|
96
|
+
**Tool:** Check each component status and verify the overall status follows the "worst of" rule.
|
|
97
|
+
|
|
98
|
+
### 7. Recovery Actions
|
|
99
|
+
When NEO suggests recovery actions, the Checker verifies they are SAFE and APPROPRIATE:
|
|
100
|
+
|
|
101
|
+
- **Safe:** No destructive commands (`rm -rf`, `kill -9` on critical processes, `git reset --hard`).
|
|
102
|
+
- **Proportional:** The action matches the severity (do not suggest "restart all sessions" for a minor memory spike).
|
|
103
|
+
- **Correct:** The suggested command actually addresses the reported issue.
|
|
104
|
+
- **Reversible:** Prefer actions that can be undone (restart over kill, cache clear over reinstall).
|
|
105
|
+
|
|
106
|
+
| Suggested Action | Safe? | When Appropriate |
|
|
107
|
+
|-----------------|-------|-----------------|
|
|
108
|
+
| `kill -9 {PID}` | CAUTION | Only for confirmed stuck/zombie processes |
|
|
109
|
+
| Restart session | YES | For stale sessions (>24h) or unresponsive sessions |
|
|
110
|
+
| Clear cache | YES | For disk pressure |
|
|
111
|
+
| `aisb-session cleanup` | YES | For orphaned AISB sessions |
|
|
112
|
+
| Reduce concurrency | YES | For RAM/CPU pressure |
|
|
113
|
+
| `reboot` | NO | Never suggest unless system is BLACK status |
|
|
114
|
+
|
|
115
|
+
**Tool:** Read each suggested command and assess against the safety table.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Verification Commands
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Session count and details
|
|
123
|
+
ps aux | grep claude | grep -v grep
|
|
124
|
+
ps aux | grep claude | grep -v grep | wc -l
|
|
125
|
+
|
|
126
|
+
# RAM metrics
|
|
127
|
+
free -h
|
|
128
|
+
free -m
|
|
129
|
+
|
|
130
|
+
# CPU load
|
|
131
|
+
uptime
|
|
132
|
+
cat /proc/loadavg
|
|
133
|
+
|
|
134
|
+
# Disk usage
|
|
135
|
+
df -h /
|
|
136
|
+
df -h /home
|
|
137
|
+
|
|
138
|
+
# Check for zombie/stuck processes
|
|
139
|
+
ps aux | awk '$8 ~ /^[DZ]/ {print}'
|
|
140
|
+
|
|
141
|
+
# Check tmux sessions (if applicable)
|
|
142
|
+
tmux list-sessions 2>/dev/null
|
|
143
|
+
|
|
144
|
+
# Check AISB sessions
|
|
145
|
+
ls ~/.telos/sessions/ 2>/dev/null
|
|
146
|
+
|
|
147
|
+
# NEO state files
|
|
148
|
+
ls -la ~/.config/argos/state/ 2>/dev/null
|
|
149
|
+
|
|
150
|
+
# Verify a specific PID
|
|
151
|
+
ps -p {PID} -o pid,ppid,stat,cmd 2>/dev/null
|
|
152
|
+
|
|
153
|
+
# Check cron health monitor
|
|
154
|
+
crontab -l 2>/dev/null | grep aisb-cron-health
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## PASS Criteria
|
|
160
|
+
|
|
161
|
+
- Session count matches actual `ps aux` output (exact match).
|
|
162
|
+
- At least 4 out of 6 resource metrics are within tolerance.
|
|
163
|
+
- ALL fired alerts are justified (threshold actually exceeded).
|
|
164
|
+
- No false alarms detected.
|
|
165
|
+
- All referenced PIDs exist and match claimed process identity.
|
|
166
|
+
- Overall health status correctly reflects the "worst of" component rule.
|
|
167
|
+
- Recovery actions (if any) are safe, proportional, and correct.
|
|
168
|
+
|
|
169
|
+
## FAIL Triggers
|
|
170
|
+
|
|
171
|
+
- **Session count mismatch** -- NEO reports N sessions but `ps aux` shows a different number. Automatic FAIL.
|
|
172
|
+
- **Fabricated PID** -- NEO references a PID that does not exist in the process table. Automatic FAIL.
|
|
173
|
+
- **False alarm** -- NEO fires an alert but the corresponding threshold is NOT exceeded. FAIL if more than 1 false alarm.
|
|
174
|
+
- **Missed alert** -- a threshold IS exceeded but NEO reports no alert for it. Automatic FAIL.
|
|
175
|
+
- **Wrong health status** -- overall status is GREEN/YELLOW when a RED-level condition exists. Automatic FAIL.
|
|
176
|
+
- **Unsafe recovery action** -- NEO suggests a destructive or disproportionate action (e.g., `kill -9` for a non-stuck process, `reboot` for a YELLOW condition). Automatic FAIL.
|
|
177
|
+
- **Resource metrics wildly off** -- 3+ metrics are outside tolerance. FAIL.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checker-niobe
|
|
3
|
+
description: Health checker for the NIOBE AISB agent. Validates source reachability, tier distribution, citation coverage, recency, actionability, fabrication detection, deduplication, and synthesis quality.
|
|
4
|
+
tools: Read, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Checker: NIOBE -- Navigator / Deep Parallel Researcher
|
|
8
|
+
|
|
9
|
+
> What this Checker validates for NIOBE outputs.
|
|
10
|
+
> NIOBE performs deep parallel research across web sources, documentation, and local codebases.
|
|
11
|
+
> She produces structured research reports with citations, tiered sources, and actionable findings.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Domain-Specific Checks
|
|
16
|
+
|
|
17
|
+
### 1. Source Reachability
|
|
18
|
+
|
|
19
|
+
Every cited URL must be accessible. Dead links invalidate the research.
|
|
20
|
+
|
|
21
|
+
**How to verify:**
|
|
22
|
+
- Extract all URLs from the research output
|
|
23
|
+
- Spot-check at least 3 URLs using WebFetch to confirm they return actual content (not 404, 403, or domain parking pages)
|
|
24
|
+
- Flag any URL that returns an error or redirects to an unrelated page
|
|
25
|
+
- For local file citations (`/path/to/file`), verify the file exists with Read
|
|
26
|
+
|
|
27
|
+
### 2. Tier Distribution
|
|
28
|
+
|
|
29
|
+
Research must draw from multiple quality tiers, not just one source type.
|
|
30
|
+
|
|
31
|
+
**How to verify:**
|
|
32
|
+
- Categorize each cited source into tiers:
|
|
33
|
+
|
|
34
|
+
| Tier | Source Type | Examples |
|
|
35
|
+
|------|-----------|---------|
|
|
36
|
+
| Tier 1 | Official documentation, RFCs, academic papers | docs.convex.dev, nextjs.org/docs, RFC 7231 |
|
|
37
|
+
| Tier 2 | Expert blogs, conference talks, reputable tech publications | kentcdodds.com, InfoQ, Smashing Magazine |
|
|
38
|
+
| Tier 3 | Community forums, Stack Overflow, GitHub issues, Reddit | stackoverflow.com, github.com/issues, reddit.com |
|
|
39
|
+
|
|
40
|
+
- Verify at least 2 tiers are represented
|
|
41
|
+
- Flag research that relies exclusively on Tier 3 sources for critical claims
|
|
42
|
+
- Flag research that cites only a single source (even if Tier 1)
|
|
43
|
+
|
|
44
|
+
### 3. Citation Coverage
|
|
45
|
+
|
|
46
|
+
Every major claim or recommendation must have at least one supporting source.
|
|
47
|
+
|
|
48
|
+
**How to verify:**
|
|
49
|
+
- Identify all major claims in the research (assertions presented as facts, recommendations, comparisons)
|
|
50
|
+
- Check each claim has a citation (inline URL, footnote, or explicit "Source:" reference)
|
|
51
|
+
- Flag unsupported claims, especially those that influence downstream decisions
|
|
52
|
+
- Distinguish between claims that require citation (factual, technical) and those that do not (obvious definitions, trivial observations)
|
|
53
|
+
|
|
54
|
+
### 4. Recency
|
|
55
|
+
|
|
56
|
+
For technology topics, sources must be current. Outdated sources lead to deprecated advice.
|
|
57
|
+
|
|
58
|
+
**How to verify:**
|
|
59
|
+
- Check publication dates of cited sources (look for dates in URLs, article headers, or page content)
|
|
60
|
+
- For tech topics, flag sources older than 18 months (before September 2024) unless they are foundational references
|
|
61
|
+
- For non-tech topics (psychology, astrology systems, etc.), older sources may be acceptable
|
|
62
|
+
- Flag any recommendation based on an outdated source version (e.g., citing Next.js 12 docs for a Next.js 16 project)
|
|
63
|
+
|
|
64
|
+
### 5. Actionability
|
|
65
|
+
|
|
66
|
+
Research must produce actionable findings that can be directly used by downstream agents, not just information summaries.
|
|
67
|
+
|
|
68
|
+
**How to verify:**
|
|
69
|
+
- Check that the research output includes a "Recommendations" or "Actionable Findings" section
|
|
70
|
+
- Verify each finding answers "what should we DO?" not just "what IS?"
|
|
71
|
+
- Flag research that is purely descriptive with no actionable conclusions
|
|
72
|
+
- Verify findings are specific to the task context (not generic advice that could apply to anything)
|
|
73
|
+
|
|
74
|
+
### 6. No Fabrication
|
|
75
|
+
|
|
76
|
+
Cited sources must actually contain the claimed information. Hallucinated citations are a critical failure.
|
|
77
|
+
|
|
78
|
+
**How to verify:**
|
|
79
|
+
- Select 2-3 specific claims with citations
|
|
80
|
+
- Use WebFetch (for URLs) or Read (for local files) to access the cited source
|
|
81
|
+
- Confirm the source actually supports the claim made
|
|
82
|
+
- Flag any claim where the source does not contain the referenced information, or where the source says something different than what is claimed
|
|
83
|
+
|
|
84
|
+
### 7. Deduplication
|
|
85
|
+
|
|
86
|
+
Findings should not repeat the same information under different wording.
|
|
87
|
+
|
|
88
|
+
**How to verify:**
|
|
89
|
+
- Read all findings/recommendations in sequence
|
|
90
|
+
- Flag any two findings that convey the same core insight but are listed separately
|
|
91
|
+
- Check that the total finding count reflects unique insights, not padding
|
|
92
|
+
|
|
93
|
+
### 8. Synthesis Quality
|
|
94
|
+
|
|
95
|
+
The executive summary must accurately represent the detailed findings without distortion.
|
|
96
|
+
|
|
97
|
+
**How to verify:**
|
|
98
|
+
- Read the executive summary
|
|
99
|
+
- Read the detailed findings
|
|
100
|
+
- Verify every point in the summary is supported by the detailed findings
|
|
101
|
+
- Flag summary claims that are not in the details (fabricated conclusions)
|
|
102
|
+
- Flag important detailed findings that are absent from the summary (incomplete synthesis)
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Verification Commands
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Extract URLs from research output (adjust path as needed)
|
|
110
|
+
grep -oE 'https?://[^ )>"]+' {research_output_file} | sort -u
|
|
111
|
+
|
|
112
|
+
# Spot-check a URL exists and has relevant content
|
|
113
|
+
# Use WebFetch tool: WebFetch(url="{url}", prompt="Does this page exist and contain technical content?")
|
|
114
|
+
|
|
115
|
+
# Verify local file citations exist
|
|
116
|
+
ls -la {cited_local_path} 2>/dev/null || echo "FILE NOT FOUND: {cited_local_path}"
|
|
117
|
+
|
|
118
|
+
# Check local file contains claimed content
|
|
119
|
+
# Use Grep tool: Grep(pattern="{claimed_keyword}", path="{cited_local_path}", output_mode="content")
|
|
120
|
+
|
|
121
|
+
# Count unique sources vs total citations
|
|
122
|
+
grep -oE 'https?://[^ )>"]+' {research_output_file} | sort -u | wc -l
|
|
123
|
+
grep -oE 'https?://[^ )>"]+' {research_output_file} | wc -l
|
|
124
|
+
|
|
125
|
+
# Check for date references in cited URLs (rough recency indicator)
|
|
126
|
+
grep -oE 'https?://[^ )>"]*20(2[0-6]|1[0-9])[^ )>"]*' {research_output_file} | sort -u
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## PASS Criteria
|
|
132
|
+
|
|
133
|
+
All of the following must be true:
|
|
134
|
+
- At least 3 spot-checked URLs return valid, relevant content
|
|
135
|
+
- Sources span at least 2 quality tiers
|
|
136
|
+
- Every major claim has at least one citation
|
|
137
|
+
- For tech topics: no critical recommendation is based on a source older than 18 months
|
|
138
|
+
- Research includes actionable findings (not just descriptions)
|
|
139
|
+
- Spot-checked citations (2-3) match their claimed content
|
|
140
|
+
- Executive summary accurately reflects the detailed findings
|
|
141
|
+
- No duplicate findings detected
|
|
142
|
+
|
|
143
|
+
## FAIL Triggers
|
|
144
|
+
|
|
145
|
+
Any of the following triggers an automatic FAIL:
|
|
146
|
+
- A spot-checked URL returns 404 or completely unrelated content
|
|
147
|
+
- A spot-checked citation is fabricated (source does not contain the claimed information)
|
|
148
|
+
- All sources come from a single tier (no diversity)
|
|
149
|
+
- More than 30% of major claims have no citation
|
|
150
|
+
- Research has no actionable findings section (purely informational)
|
|
151
|
+
- Executive summary contains claims not present in the detailed findings
|
|
152
|
+
- For tech topics: a critical recommendation relies on documentation from a deprecated version
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
*Companion to checker-common.md -- read that file first for universal checks.*
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checker-oracle
|
|
3
|
+
description: Health checker for the ORACLE AISB agent. Validates intent classification, routing correctness, Knowledge Gate confidence math, no self-execution, brief completeness, and ambiguity handling.
|
|
4
|
+
tools: Read, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Checker: ORACLE -- Intent Router
|
|
8
|
+
|
|
9
|
+
> What this Checker validates for ORACLE outputs.
|
|
10
|
+
> ORACLE classifies user intent, assigns confidence via Knowledge Gate V2, and routes tasks to the correct agent.
|
|
11
|
+
> It must NEVER execute work itself.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Domain-Specific Checks
|
|
16
|
+
|
|
17
|
+
### 1. Intent Classification Correctness
|
|
18
|
+
|
|
19
|
+
Verify the classified intent matches the user's actual request by comparing against signal words:
|
|
20
|
+
|
|
21
|
+
| Intent | Signal Words |
|
|
22
|
+
|--------|-------------|
|
|
23
|
+
| EXECUTE | build, implement, create, add, fix, deploy, refactor, migrate |
|
|
24
|
+
| RESEARCH | research, explore, compare, investigate, analyze, what is, how does |
|
|
25
|
+
| IMPROVE | optimize, improve, enhance, speed up, clean up, upgrade |
|
|
26
|
+
| PLAN | plan, design, architect, strategy, roadmap, break down |
|
|
27
|
+
| MONITOR | status, health, check, dashboard, metrics, how is |
|
|
28
|
+
| COMMUNICATE | notify, send, message, alert, tell, report to |
|
|
29
|
+
|
|
30
|
+
**How to verify:**
|
|
31
|
+
- Read the original user prompt
|
|
32
|
+
- Identify the dominant signal words
|
|
33
|
+
- Confirm ORACLE's classification matches
|
|
34
|
+
- Flag misclassifications (e.g., "research" classified as EXECUTE)
|
|
35
|
+
|
|
36
|
+
### 2. Routing Correctness
|
|
37
|
+
|
|
38
|
+
Verify the task was routed to the correct target agent:
|
|
39
|
+
|
|
40
|
+
| Task Type | Correct Agent |
|
|
41
|
+
|-----------|--------------|
|
|
42
|
+
| Code implementation / builds | MORPHEUS |
|
|
43
|
+
| Deep research / doc mining | NIOBE |
|
|
44
|
+
| Code audit / security review | SERAPH |
|
|
45
|
+
| Execution plans / DAG generation | KEYMAKER |
|
|
46
|
+
| System architecture analysis | ARCHITECT |
|
|
47
|
+
| Telegram notifications | LINK |
|
|
48
|
+
| Knowledge curation | MEROVINGIAN |
|
|
49
|
+
| Self-improvement / feedback | SMITH |
|
|
50
|
+
| Health monitoring | NEO |
|
|
51
|
+
| Metrics aggregation | ZION |
|
|
52
|
+
|
|
53
|
+
**How to verify:**
|
|
54
|
+
- Read ORACLE's routing decision
|
|
55
|
+
- Compare the task nature against the agent registry
|
|
56
|
+
- Flag wrong routes (e.g., sending a code audit to MORPHEUS instead of SERAPH)
|
|
57
|
+
- Check that multi-domain tasks are split correctly (e.g., research phase to NIOBE, then implementation to MORPHEUS)
|
|
58
|
+
|
|
59
|
+
### 3. Knowledge Gate Math
|
|
60
|
+
|
|
61
|
+
Verify the confidence score correctly maps to the Knowledge Gate V2 thresholds:
|
|
62
|
+
|
|
63
|
+
| Confidence | Level | Required Action |
|
|
64
|
+
|------------|-------|-----------------|
|
|
65
|
+
| > 0.8 | FAMILIAR | Route directly to executor -- skip research |
|
|
66
|
+
| 0.4 - 0.8 | PARTIAL | Spawn NIOBE for targeted research, then execute |
|
|
67
|
+
| < 0.4 | NOVEL | Full cycle: NIOBE + MEROVINGIAN + ARCHITECT before executing |
|
|
68
|
+
|
|
69
|
+
**How to verify:**
|
|
70
|
+
- Read the confidence score ORACLE assigned
|
|
71
|
+
- Confirm the grep/search results from `~/.telos/knowledge/` justify the score
|
|
72
|
+
- Check that the corresponding action matches the threshold level
|
|
73
|
+
- Flag cases where confidence is inflated (e.g., 0.9 for a completely new domain with no knowledge entries)
|
|
74
|
+
- Flag cases where confidence is deflated (e.g., 0.3 for a domain with 10+ knowledge entries)
|
|
75
|
+
|
|
76
|
+
### 4. No Self-Execution
|
|
77
|
+
|
|
78
|
+
ORACLE must NEVER do the work itself. It classifies and routes -- nothing else.
|
|
79
|
+
|
|
80
|
+
**How to verify:**
|
|
81
|
+
- Check ORACLE's output for any code writing, file creation, or direct implementation
|
|
82
|
+
- Grep the artifacts list for any files ORACLE created (there should be NONE except routing decisions)
|
|
83
|
+
- Flag any instance where ORACLE attempted to answer a technical question directly instead of routing to NIOBE or the appropriate agent
|
|
84
|
+
|
|
85
|
+
### 5. Brief Completeness
|
|
86
|
+
|
|
87
|
+
When ORACLE hands off to a target agent, it must provide a structured brief containing:
|
|
88
|
+
|
|
89
|
+
| Required Field | Description |
|
|
90
|
+
|----------------|-------------|
|
|
91
|
+
| intent | Classified intent (EXECUTE, RESEARCH, etc.) |
|
|
92
|
+
| constraints | Time limits, scope boundaries, tech requirements |
|
|
93
|
+
| context | Relevant knowledge entries, project state, prior decisions |
|
|
94
|
+
| target_agent | Which agent receives the brief |
|
|
95
|
+
| confidence | Knowledge Gate score |
|
|
96
|
+
| original_prompt | The user's unmodified request |
|
|
97
|
+
|
|
98
|
+
**How to verify:**
|
|
99
|
+
- Read the brief ORACLE generated
|
|
100
|
+
- Check all required fields are present and non-empty
|
|
101
|
+
- Verify the context field includes relevant knowledge (not generic filler)
|
|
102
|
+
- Flag briefs that are too vague (e.g., context: "see project" without specifics)
|
|
103
|
+
|
|
104
|
+
### 6. Ambiguity Handling
|
|
105
|
+
|
|
106
|
+
When a user request is ambiguous, ORACLE should ask for clarification rather than guessing.
|
|
107
|
+
|
|
108
|
+
**Ambiguity signals:**
|
|
109
|
+
- Multiple possible intents ("fix or rebuild?")
|
|
110
|
+
- Missing scope ("improve the app" -- which part?)
|
|
111
|
+
- Conflicting instructions ("make it faster and add more features")
|
|
112
|
+
- Unknown domain with no knowledge entries
|
|
113
|
+
|
|
114
|
+
**How to verify:**
|
|
115
|
+
- Identify if the original prompt was ambiguous
|
|
116
|
+
- If ambiguous: did ORACLE request clarification or did it guess?
|
|
117
|
+
- If ORACLE guessed: was the guess reasonable given available context?
|
|
118
|
+
- Flag routes made on ambiguous input without clarification
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Verification Commands
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Check if ORACLE wrote any files (it should NOT)
|
|
126
|
+
# Look for artifacts in the output -- should be empty or routing-only
|
|
127
|
+
git diff --name-only HEAD 2>/dev/null
|
|
128
|
+
|
|
129
|
+
# Verify Knowledge Gate search results
|
|
130
|
+
grep -ri "{task_keyword}" ~/.telos/knowledge/shared/ 2>/dev/null | wc -l
|
|
131
|
+
grep -ri "{task_keyword}" ~/.telos/knowledge/private/oracle/ 2>/dev/null | wc -l
|
|
132
|
+
|
|
133
|
+
# Verify the brief was written (if using tmux sessions)
|
|
134
|
+
ls -la ~/.telos/sessions/AISB-*/brief.md 2>/dev/null
|
|
135
|
+
|
|
136
|
+
# Check ORACLE's own feedback log for routing history
|
|
137
|
+
tail -20 ~/.telos/knowledge/private/oracle/feedback.jsonl 2>/dev/null
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## PASS Criteria
|
|
143
|
+
|
|
144
|
+
All of the following must be true:
|
|
145
|
+
- Intent classification matches the signal word analysis
|
|
146
|
+
- Task routed to the correct agent per the routing table
|
|
147
|
+
- Knowledge Gate confidence score is justified by actual knowledge entries
|
|
148
|
+
- ORACLE did NOT write code, create files, or perform implementation
|
|
149
|
+
- Brief to target agent contains all required fields (intent, constraints, context)
|
|
150
|
+
- Ambiguous requests were clarified, not blindly routed
|
|
151
|
+
|
|
152
|
+
## FAIL Triggers
|
|
153
|
+
|
|
154
|
+
Any of the following triggers an automatic FAIL:
|
|
155
|
+
- Intent misclassification (e.g., RESEARCH classified as EXECUTE)
|
|
156
|
+
- Routing to the wrong agent (e.g., code audit sent to MORPHEUS instead of SERAPH)
|
|
157
|
+
- Knowledge Gate confidence fabricated (high confidence with zero knowledge entries, or low confidence with rich knowledge)
|
|
158
|
+
- ORACLE executed work itself (wrote code, created non-routing files)
|
|
159
|
+
- Brief missing required fields (no intent, no context, no constraints)
|
|
160
|
+
- Ambiguous request routed without clarification, resulting in a clearly wrong path
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
*Companion to checker-common.md -- read that file first for universal checks.*
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checker-seraph
|
|
3
|
+
description: Health checker for the SERAPH AISB agent. Validates report completeness, finding evidence, false positive rate, scoring math, verdict consistency, coverage completeness, and severity classification.
|
|
4
|
+
tools: Read, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Checker: SERAPH -- Guardian (Code Audit Pipeline)
|
|
8
|
+
|
|
9
|
+
> What this Checker validates for SERAPH outputs.
|
|
10
|
+
> SERAPH runs a multi-phase code audit and produces findings with severity ratings.
|
|
11
|
+
> The Checker verifies that findings are real, evidence is accurate, and the verdict is consistent.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Domain-Specific Checks
|
|
16
|
+
|
|
17
|
+
### 1. Report Completeness
|
|
18
|
+
|
|
19
|
+
SERAPH's audit report must cover all standard phases. Verify each phase is present and non-empty:
|
|
20
|
+
|
|
21
|
+
| Phase | Must Include |
|
|
22
|
+
|-------|-------------|
|
|
23
|
+
| Security | XSS, injection, auth bypass, secrets exposure, CSRF |
|
|
24
|
+
| Code Quality | Type safety, error handling, dead code, complexity |
|
|
25
|
+
| Performance | N+1 queries, bundle size, unnecessary re-renders, memory leaks |
|
|
26
|
+
| Architecture | Separation of concerns, dependency direction, coupling |
|
|
27
|
+
| Testing | Test coverage gaps, untested critical paths |
|
|
28
|
+
| Accessibility | ARIA, keyboard nav, color contrast (if frontend) |
|
|
29
|
+
|
|
30
|
+
**How to verify:**
|
|
31
|
+
- Read the audit report
|
|
32
|
+
- Check that each phase heading exists
|
|
33
|
+
- Check that each phase has at least one finding or an explicit "No issues found" statement
|
|
34
|
+
- Flag phases that are completely absent
|
|
35
|
+
|
|
36
|
+
### 2. Finding Evidence
|
|
37
|
+
|
|
38
|
+
Every finding must have concrete evidence -- not vague claims.
|
|
39
|
+
|
|
40
|
+
**Required per finding:**
|
|
41
|
+
|
|
42
|
+
| Field | Example |
|
|
43
|
+
|-------|---------|
|
|
44
|
+
| File path | `src/components/Chat.tsx` |
|
|
45
|
+
| Line number(s) | `L42-L55` |
|
|
46
|
+
| Code snippet | The actual problematic code |
|
|
47
|
+
| Explanation | Why this is an issue |
|
|
48
|
+
| Suggested fix | How to resolve it |
|
|
49
|
+
|
|
50
|
+
**How to verify:**
|
|
51
|
+
- For each finding, read the cited file at the cited line number
|
|
52
|
+
- Confirm the code snippet actually exists there
|
|
53
|
+
- Confirm the explanation is accurate (the issue is real, not imagined)
|
|
54
|
+
- Flag findings where the file doesn't exist, the line number is wrong, or the code doesn't match
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Verify a specific finding
|
|
58
|
+
Read(file_path="{cited_file}", offset={line_number - 5}, limit=15)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 3. False Positive Rate
|
|
62
|
+
|
|
63
|
+
Actively check for false positives by reading the cited code yourself.
|
|
64
|
+
|
|
65
|
+
**How to verify:**
|
|
66
|
+
- Pick at least 3 findings (including at least 1 CRITICAL/HIGH if present)
|
|
67
|
+
- Read the cited code in full context (not just the snippet)
|
|
68
|
+
- Determine if the issue is real or a misinterpretation
|
|
69
|
+
- Flag findings that are actually correct code being misidentified as problematic
|
|
70
|
+
|
|
71
|
+
Common false positive patterns:
|
|
72
|
+
- Intentional `any` usage (e.g., generic utility functions)
|
|
73
|
+
- `console.log` in development-only files
|
|
74
|
+
- Unused imports that are used dynamically or in types
|
|
75
|
+
- "Missing error handling" where errors are handled upstream
|
|
76
|
+
|
|
77
|
+
### 4. Scoring Math
|
|
78
|
+
|
|
79
|
+
If SERAPH assigns numerical scores, verify the math is consistent.
|
|
80
|
+
|
|
81
|
+
**How to verify:**
|
|
82
|
+
- Read the scoring rubric SERAPH used
|
|
83
|
+
- Re-calculate the score based on the stated criteria
|
|
84
|
+
- Check that weighted averages are correct (if used)
|
|
85
|
+
- Flag scores that don't match the rubric (e.g., 9/10 security score with 3 CRITICAL findings)
|
|
86
|
+
|
|
87
|
+
### 5. Verdict Consistency
|
|
88
|
+
|
|
89
|
+
The overall verdict must logically follow from the findings.
|
|
90
|
+
|
|
91
|
+
| Findings | Expected Verdict |
|
|
92
|
+
|----------|-----------------|
|
|
93
|
+
| 0 CRITICAL, 0 HIGH | PASS |
|
|
94
|
+
| 0 CRITICAL, 1+ HIGH | CONDITIONAL (with remediation plan) |
|
|
95
|
+
| 1+ CRITICAL | FAIL |
|
|
96
|
+
| Only MEDIUM/LOW | PASS with recommendations |
|
|
97
|
+
|
|
98
|
+
**How to verify:**
|
|
99
|
+
- Count the findings by severity
|
|
100
|
+
- Compare against the verdict SERAPH gave
|
|
101
|
+
- Flag verdicts that contradict the findings (e.g., PASS with CRITICAL findings, or FAIL with only LOW findings)
|
|
102
|
+
|
|
103
|
+
### 6. Coverage Completeness
|
|
104
|
+
|
|
105
|
+
SERAPH must audit ALL files in scope, not just a convenient subset.
|
|
106
|
+
|
|
107
|
+
**How to verify:**
|
|
108
|
+
```bash
|
|
109
|
+
# Get the list of files in scope
|
|
110
|
+
# If auditing a specific PR/change:
|
|
111
|
+
git diff --name-only {base}...HEAD 2>/dev/null
|
|
112
|
+
|
|
113
|
+
# If auditing an entire project:
|
|
114
|
+
find {project_root}/src -name "*.ts" -o -name "*.tsx" | wc -l
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
- Compare the number of files in scope against the number of files mentioned in the report
|
|
118
|
+
- Flag if less than 80% of in-scope files were examined
|
|
119
|
+
- Check that critical files (auth, payments, API routes) were explicitly audited
|
|
120
|
+
|
|
121
|
+
### 7. Severity Classification
|
|
122
|
+
|
|
123
|
+
Verify that severity levels are correctly applied:
|
|
124
|
+
|
|
125
|
+
| Severity | Criteria |
|
|
126
|
+
|----------|----------|
|
|
127
|
+
| CRITICAL | Exploitable security flaw, data loss, auth bypass, payment integrity |
|
|
128
|
+
| HIGH | Broken core functionality, data corruption, significant UX failure |
|
|
129
|
+
| MEDIUM | Non-critical bug, performance issue, maintainability concern |
|
|
130
|
+
| LOW | Style issue, minor UX inconsistency, documentation gap |
|
|
131
|
+
|
|
132
|
+
**How to verify:**
|
|
133
|
+
- Read each finding's severity
|
|
134
|
+
- Compare the issue described against the severity criteria
|
|
135
|
+
- Flag over-classifications (LOW issue marked HIGH) and under-classifications (CRITICAL issue marked MEDIUM)
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Verification Commands
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Verify cited files exist
|
|
143
|
+
ls -la {cited_file_1} {cited_file_2} {cited_file_3}
|
|
144
|
+
|
|
145
|
+
# Verify code at cited locations
|
|
146
|
+
Read(file_path="{cited_file}", offset={line - 5}, limit=15)
|
|
147
|
+
|
|
148
|
+
# Count files in scope vs files audited
|
|
149
|
+
find {project_root}/src -name "*.ts" -o -name "*.tsx" | wc -l
|
|
150
|
+
|
|
151
|
+
# Cross-reference a security finding (example: check for actual XSS exposure)
|
|
152
|
+
grep -rn "dangerouslySetInnerHTML\|innerHTML\|v-html" {project_root}/src/ 2>/dev/null
|
|
153
|
+
|
|
154
|
+
# Cross-reference a secret exposure finding
|
|
155
|
+
grep -rEn "(sk_|ghp_|token|password|secret|api_key)\s*[:=]" {project_root}/src/ 2>/dev/null
|
|
156
|
+
|
|
157
|
+
# Verify performance claims (e.g., missing memoization)
|
|
158
|
+
grep -rn "useMemo\|useCallback\|React.memo" {cited_file} 2>/dev/null
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## PASS Criteria
|
|
164
|
+
|
|
165
|
+
All of the following must be true:
|
|
166
|
+
- All standard audit phases are present in the report (security, quality, performance, architecture, testing)
|
|
167
|
+
- Every finding has file path, line number, code snippet, explanation, and suggested fix
|
|
168
|
+
- At least 3 spot-checked findings are confirmed real (not false positives)
|
|
169
|
+
- Scoring math is correct (if scores are used)
|
|
170
|
+
- Verdict is consistent with findings (no PASS with CRITICALs, no FAIL with only LOWs)
|
|
171
|
+
- At least 80% of in-scope files were audited
|
|
172
|
+
- Severity classifications are appropriate
|
|
173
|
+
|
|
174
|
+
## FAIL Triggers
|
|
175
|
+
|
|
176
|
+
Any of the following triggers an automatic FAIL:
|
|
177
|
+
- A standard audit phase is completely missing (e.g., no security review)
|
|
178
|
+
- A finding cites a file or line that does not exist or does not contain the claimed code
|
|
179
|
+
- More than 30% of spot-checked findings are false positives
|
|
180
|
+
- Verdict contradicts findings (PASS with CRITICAL findings, or FAIL with zero HIGH+ findings)
|
|
181
|
+
- Less than 50% of in-scope files were examined
|
|
182
|
+
- CRITICAL finding classified as MEDIUM or lower
|
|
183
|
+
- MEDIUM/LOW finding inflated to CRITICAL without justification
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
*Companion to checker-common.md -- read that file first for universal checks.*
|