@agentikos/omega-os 0.2.0 → 0.19.6
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 +33 -3
- 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 +790 -21
- package/bootstrap/manifest.example.yaml +87 -1
- 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/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 +4 -2
- package/omega/Agentik_Engine/omega_engine/__init__.py +147 -1
- 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.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/audit_arsenal.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__/barrier.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/bus.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__/events.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__/progress.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__/report.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__/supervisor.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__/task.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/telegram.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 +28 -31
- 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/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 +4156 -86
- 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/__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/engine.py +53 -4
- package/omega/Agentik_Engine/omega_engine/daemons/telegram.py +101 -17
- package/omega/Agentik_Engine/omega_engine/done_signal.py +154 -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/envelope.py +219 -0
- package/omega/Agentik_Engine/omega_engine/executor.py +149 -10
- 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 +16 -13
- 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 +161 -12
- 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/__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/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 +88 -41
- package/omega/Agentik_Engine/omega_engine/sync.py +142 -1
- 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/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_audit_arsenal.cpython-313.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_executor.cpython-313.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_mission.cpython-313.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_progress.cpython-313.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_project.cpython-313.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_reducer.cpython-313.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_report.cpython-313.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 +8 -3
- 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_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_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_telegram_history.py +209 -0
- package/omega/Agentik_Engine/tests/test_tmux_and_aisb_chat.py +223 -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/docs/quality-arsenal/ARSENAL-INTERCONNECTIONS.md +283 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/ARSENAL-ORCHESTRATION-PLAYBOOK.md +364 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/AUDIT-VERIFICATION-CONTRACT.md +272 -0
- package/omega/Agentik_SSOT/docs/quality-arsenal/QUALITY-ARSENAL-PREAMBLE.md +462 -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/audit-orchestrator.md +212 -0
- package/omega/Agentik_SSOT/skills/audit-pilot.md +466 -0
- package/omega/Agentik_SSOT/skills/audit-tracker.md +147 -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/newcmd.md +300 -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/quality-arsenal.md +180 -0
- package/omega/Agentik_SSOT/skills/rag-route.md +9 -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,364 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ARSENAL-ORCHESTRATION-PLAYBOOK
|
|
3
|
+
description: >
|
|
4
|
+
Operational playbook for AISB (ORACLE-led orchestration) and project Oracles to
|
|
5
|
+
dispatch Quality Arsenal audits correctly. Translates user intent into specific
|
|
6
|
+
audit invocations with proper flags, ordering, and parallelism. Complements
|
|
7
|
+
ARSENAL-INTERCONNECTIONS.md (the what) with the how.
|
|
8
|
+
NOT a user-invokable skill — AISB/Oracle reference doc.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Quality Arsenal — Orchestration Playbook v1.0
|
|
12
|
+
|
|
13
|
+
> *"Given a mission, which audits fire, in what order, with what scope?"*
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. ORACLE'S AUDIT SELECTION ALGORITHM
|
|
18
|
+
|
|
19
|
+
When Oracle receives a task (from AISB / direct user / rule 43 / godmode), it follows this decision tree:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
1. Parse user intent. Extract:
|
|
23
|
+
- Action verb (fix / audit / verify / check / review / redesign / speed up / etc.)
|
|
24
|
+
- Target noun (page URL / file paths / module / feature / "everything")
|
|
25
|
+
- Domain signals (UI / code / perf / sec / a11y / SEO / data / API / flow / motion / copy / DX)
|
|
26
|
+
|
|
27
|
+
2. Consult AUDIT KEYWORD DETECTION table in ~/.claude/CLAUDE.md §"AUDIT KEYWORD DETECTION":
|
|
28
|
+
- Each keyword maps to a specific /audit skill
|
|
29
|
+
- Multiple keywords = multiple audits in PARALLEL (rule 001 enforced)
|
|
30
|
+
|
|
31
|
+
3. Consult ARSENAL-INTERCONNECTIONS.md §3 (dispatch order):
|
|
32
|
+
- If selected audits have ordering constraints (e.g., perfaudit → seoaudit):
|
|
33
|
+
batch by dependency group
|
|
34
|
+
- Within a group: dispatch in parallel
|
|
35
|
+
|
|
36
|
+
4. Consult ARSENAL-INTERCONNECTIONS.md §5 (non-UI gates):
|
|
37
|
+
- If project is CLI/library/backend-only/headless:
|
|
38
|
+
remove incompatible audits (/uiuxaudit, /flowaudit, /motionaudit, /seoaudit)
|
|
39
|
+
emit "aborted — non-UI context" for user visibility
|
|
40
|
+
route to alternatives (/dxaudit, /copyaudit)
|
|
41
|
+
|
|
42
|
+
5. Apply scoping flags based on signals:
|
|
43
|
+
- URL detected → --url=<URL>
|
|
44
|
+
- File paths detected → --files=<paths>
|
|
45
|
+
- Linear ticket ID (rule 43) → --ticket=<ID> + --url + --files
|
|
46
|
+
- "just this page" → --scope="single page"
|
|
47
|
+
|
|
48
|
+
6. Enforce concurrency + locks (preamble §3):
|
|
49
|
+
- Check .{audit}/.lock for each selected audit before dispatch
|
|
50
|
+
- If lock held < 4h: wait or abort per user intent
|
|
51
|
+
- If stale > 4h: reclaim, proceed
|
|
52
|
+
|
|
53
|
+
7. Dispatch via Agent() / TeamCreate() / direct Skill() per task complexity:
|
|
54
|
+
- SIMPLE (1 audit, single-file) → direct Skill()
|
|
55
|
+
- MEDIUM (2-3 audits, parallel, independent) → parallel Agent() calls
|
|
56
|
+
- COMPLEX (4+ audits, groups) → /team with tmux + dependency tracking
|
|
57
|
+
- EPIC (all 14) → /aisb full or /godmode orchestration
|
|
58
|
+
|
|
59
|
+
8. Monitor progress via Telegram channel + .{audit}/progress.json files
|
|
60
|
+
|
|
61
|
+
9. On completion:
|
|
62
|
+
- Verify all verdict.json files exist + preamble_version="1.0" (output gate)
|
|
63
|
+
- Aggregate findings by severity
|
|
64
|
+
- Run /metaudit IF any .md config file was edited during audits
|
|
65
|
+
- Report to user with cross-audit dedupe per INTERCONNECTIONS.md §5
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 2. INTENT → AUDIT-SET TRANSLATION TABLE
|
|
71
|
+
|
|
72
|
+
Machine-usable routing from natural language to dispatch:
|
|
73
|
+
|
|
74
|
+
| User input (en/fr, case-insensitive substring match) | Dispatch plan |
|
|
75
|
+
|------|---------------|
|
|
76
|
+
| `audit complet`, `full audit`, `toutes les audits`, `all audits`, `tout auditer` | All 14 via the octad pattern (INTERCONNECTIONS §3). `/metaudit` as final step. |
|
|
77
|
+
| `audit code`, `code audit`, `audit this code` | `/codeaudit --files=<detected>` solo |
|
|
78
|
+
| `audit ui`, `audit ux`, `design audit`, `audit design`, `audit visuel` | `/uiuxaudit --url=<detected>` solo (add `/a11yaudit` if user says "accessible" too) |
|
|
79
|
+
| `audit flow`, `user flow`, `audit parcours`, `workflow audit` | `/flowaudit --url=<detected>` solo |
|
|
80
|
+
| `audit perf`, `performance audit`, `core web vitals`, `audit rapidité` | `/perfaudit --url=<detected>` solo |
|
|
81
|
+
| `audit sec`, `security audit`, `owasp`, `audit sécurité` | `/apiaudit` (static auth) → `/secaudit` (exploit) — STRICT order |
|
|
82
|
+
| `audit a11y`, `accessibility audit`, `wcag`, `audit accessibilité` | `/a11yaudit --url=<detected>` solo |
|
|
83
|
+
| `audit seo`, `seo audit`, `audit référencement`, `crawlability` | `/perfaudit --url=<detected>` → `/seoaudit --url=<detected>` — STRICT order (CWV handoff) |
|
|
84
|
+
| `audit api`, `api audit`, `audit contrats api` | `/dataaudit` → `/apiaudit` — STRICT order (schema → contract) |
|
|
85
|
+
| `audit data`, `data audit`, `data integrity`, `audit données` | `/dataaudit` solo |
|
|
86
|
+
| `audit feature`, `feature audit`, `audit complétude`, `prd gap` | `/featureaudit` solo |
|
|
87
|
+
| `audit copy`, `copy audit`, `messaging audit`, `audit texte`, `audit messages` | `/copyaudit --url=<detected>` solo |
|
|
88
|
+
| `audit dx`, `dx audit`, `developer experience`, `onboarding dev`, `audit dev` | `/dxaudit` solo |
|
|
89
|
+
| `audit motion`, `motion audit`, `animation audit`, `audit animations` | `/motionaudit --url=<detected>` solo |
|
|
90
|
+
| `debugaudit`, `hunt`, `runtime bug`, `chaos`, `audit bugs`, `find bugs` | `/codeaudit` → `/debugaudit` — STRICT order |
|
|
91
|
+
| `meta audit`, `audit the audits`, `audit commands`, `quality arsenal compliance` | `/metaudit` solo |
|
|
92
|
+
| `redesign dashboard`, `refonte dashboard`, `comme linear`, `comme vercel`, `dashboard senior` | `/refontaudit` (not Quality Arsenal, separate dashboard skill) |
|
|
93
|
+
| Linear ticket phrase per rule 43 | QUADRUPLE: `/codeaudit` + `/uiuxaudit` + `/flowaudit` + `/debugaudit` all --ticket-scoped in parallel |
|
|
94
|
+
| Vague (`review`, `check it out`) | ASK user which domain — do NOT pick arbitrarily |
|
|
95
|
+
|
|
96
|
+
**Multiple keywords in one prompt** (e.g., "audit UX et code on /cases"):
|
|
97
|
+
- Launch each matching audit in PARALLEL with the scope derived from the URL
|
|
98
|
+
- Never combine into a single generic worker (rule 001, §AUDIT KEYWORD DETECTION)
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 3. SCOPE FLAGS — HOW TO APPLY THEM
|
|
103
|
+
|
|
104
|
+
Per preamble §2 (scoped invocation flags), every audit accepts these flags uniformly:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
--url={URL} Apply URL-based walkthroughs to this page only.
|
|
108
|
+
Required for: /uiuxaudit, /flowaudit, /debugaudit, /perfaudit,
|
|
109
|
+
/a11yaudit, /seoaudit, /motionaudit, /copyaudit (for page-specific copy)
|
|
110
|
+
when scope is specific.
|
|
111
|
+
|
|
112
|
+
--files={paths} Apply code-side checks to these files only.
|
|
113
|
+
Required for: /codeaudit, /apiaudit, /dataaudit when targeting specific
|
|
114
|
+
modules. Used by rule 43 (Linear pipeline) with git diff output.
|
|
115
|
+
|
|
116
|
+
--scope={1-liner} Free-text scope note in output.
|
|
117
|
+
Always include for clarity. Example: --scope="checkout success page only".
|
|
118
|
+
|
|
119
|
+
--ticket={ID} Link audit to Linear ticket.
|
|
120
|
+
Writes results to .linear-fix/{TICKET}/{audit}.json.
|
|
121
|
+
MANDATORY for rule 43 pipeline (Step 8 dynamic chain).
|
|
122
|
+
Requires --url and --files to be present.
|
|
123
|
+
|
|
124
|
+
--no-fix Dry-run scoring only; skip fix execution.
|
|
125
|
+
Use when user wants to review the fix plan before authorize.
|
|
126
|
+
|
|
127
|
+
--focus={area} Per-audit narrower phase selection with FULL depth.
|
|
128
|
+
Examples:
|
|
129
|
+
/codeaudit --focus=security → phases 4+5+6+9+10 at full depth
|
|
130
|
+
/uiuxaudit --focus=typography → phase 2 at full depth
|
|
131
|
+
NOT a "quick mode". Full protocol, narrower surface.
|
|
132
|
+
|
|
133
|
+
--set-baseline Write current measurements as new baseline (regression comparison).
|
|
134
|
+
Applies to /perfaudit, /debugaudit (visual), /seoaudit (rankings).
|
|
135
|
+
Use sparingly — only for intentional baseline resets.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**FORBIDDEN flags** (rule 46): `--quick`, `--streamlined`, `--lightweight`, `--light`, `--fast`, `--custom`. If user requests, REFUSE with rule-46 explanation. Suggest `--focus <area>` for narrower scope at full depth.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 4. PARALLELIZATION STRATEGY
|
|
143
|
+
|
|
144
|
+
Multiple audits in the same dispatch:
|
|
145
|
+
|
|
146
|
+
### Rule-43 Quadruple (Linear ticket)
|
|
147
|
+
```
|
|
148
|
+
Parallel dispatch (4 work sessions or Agent Teams):
|
|
149
|
+
/codeaudit --files=$FILES --ticket=$T --url=$URL
|
|
150
|
+
/uiuxaudit --files=$FILES --ticket=$T --url=$URL
|
|
151
|
+
/flowaudit --files=$FILES --ticket=$T --url=$URL
|
|
152
|
+
/debugaudit --files=$FILES --ticket=$T --url=$URL
|
|
153
|
+
|
|
154
|
+
Wait for all 4 to produce .linear-fix/$T/{audit}.json with score=100.
|
|
155
|
+
If any < 100: fix-and-reaudit loop per rule 43 step 8b.
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Octad (full audit)
|
|
159
|
+
```
|
|
160
|
+
Phase A (parallel, no dependencies):
|
|
161
|
+
/codeaudit — full run, produces audits/.codeaudit/verdict.json
|
|
162
|
+
/perfaudit — full run, produces audits/.perfaudit/verdict.json (CWV measurements)
|
|
163
|
+
/a11yaudit — full run
|
|
164
|
+
/dataaudit — full run, produces audits/.dataaudit/verdict.json (schema types)
|
|
165
|
+
|
|
166
|
+
Phase B (after Phase A completes — reads Phase A outputs):
|
|
167
|
+
/debugaudit — reads audits/.codeaudit/ (skip phantom-covered findings)
|
|
168
|
+
/seoaudit — reads audits/.perfaudit/verdict.json for CWV (skip re-measurement)
|
|
169
|
+
/apiaudit — reads audits/.dataaudit/verdict.json for schema types, produces audits/.apiaudit/verdict.json
|
|
170
|
+
/secaudit — reads audits/.apiaudit/verdict.json for auth surfaces to exploit
|
|
171
|
+
|
|
172
|
+
NOTE: /apiaudit runs in Phase B (NOT Phase A) because it consumes /dataaudit output.
|
|
173
|
+
/secaudit also runs in Phase B because it consumes /apiaudit output.
|
|
174
|
+
This is a strict dependency chain: dataaudit → apiaudit → secaudit (sequential within Phase B).
|
|
175
|
+
|
|
176
|
+
Phase C (parallel, independent of A+B, starts immediately with A):
|
|
177
|
+
/uiuxaudit /flowaudit /featureaudit /motionaudit /copyaudit /dxaudit
|
|
178
|
+
|
|
179
|
+
Final: /metaudit (if any .md edited).
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Non-UI project audit
|
|
183
|
+
```
|
|
184
|
+
Parallel dispatch (only UI-compatible audits ABORT):
|
|
185
|
+
/codeaudit /dxaudit /copyaudit /perfaudit /secaudit /a11yaudit-partial
|
|
186
|
+
/apiaudit (if API project) /dataaudit (if DB project)
|
|
187
|
+
|
|
188
|
+
ABORTED (emit graceful skip notices):
|
|
189
|
+
/uiuxaudit /flowaudit /motionaudit /seoaudit
|
|
190
|
+
|
|
191
|
+
Inform user: "This is a {CLI/library/backend-only/headless} project.
|
|
192
|
+
4 audits not applicable, skipped gracefully."
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 5. AISB (ORACLE-led) FULL-PIPELINE TEMPLATE
|
|
198
|
+
|
|
199
|
+
When `/aisb full <task>` is invoked:
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
STEP 0: kill-switch + state init (aisb.md)
|
|
203
|
+
STEP 1: reformulate prompt (aisb.md §STEP 1)
|
|
204
|
+
STEP 2: dispatch ORACLE (aisb.md §STEP 2)
|
|
205
|
+
|
|
206
|
+
ORACLE then:
|
|
207
|
+
a. Classifies task (SIMPLE/MEDIUM/COMPLEX/EPIC)
|
|
208
|
+
b. Reads ARSENAL-ORCHESTRATION-PLAYBOOK.md §2 routing table
|
|
209
|
+
c. Reads ARSENAL-INTERCONNECTIONS.md §3 for dispatch order
|
|
210
|
+
d. Builds .orchestrator/dispatch-plan.json with:
|
|
211
|
+
- audits_to_run: [...]
|
|
212
|
+
- dispatch_groups: [[group_A], [group_B], [group_C]]
|
|
213
|
+
- scope_flags_per_audit: {...}
|
|
214
|
+
- wait_conditions: {...}
|
|
215
|
+
e. Creates TeamCreate + TaskCreate per audit
|
|
216
|
+
f. Dispatches per group, waiting on dependencies
|
|
217
|
+
g. Monitors .{audit}/progress.json + Telegram channel
|
|
218
|
+
h. On all complete: aggregates verdicts, dedupes per INTERCONNECTIONS §5, reports
|
|
219
|
+
|
|
220
|
+
STEP 3: report results (aisb.md §STEP 3)
|
|
221
|
+
POST-TASK: /debugaudit verification (aisb.md §POST-TASK)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 6. GODMODE AUDIT HANDLING
|
|
227
|
+
|
|
228
|
+
`/godmode` is fully autonomous. When it spawns audits:
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
godmode Phase 2 cycle step 4 (EXECUTE):
|
|
232
|
+
- For each planned audit task:
|
|
233
|
+
- Pre-inline into the agent prompt:
|
|
234
|
+
- Audit name + scope flags
|
|
235
|
+
- References to preamble + interconnections
|
|
236
|
+
- Expected output path (.{audit}/verdict.json)
|
|
237
|
+
- Stop criteria: score >= 80 (solo) or 100 (rule 43)
|
|
238
|
+
- Spawn Agent(subagent_type=<specialist or generic>) or invoke Skill() directly
|
|
239
|
+
- Concurrent audits: use TeamCreate for visibility + SendMessage for coordination
|
|
240
|
+
- Track in ~/.godmode/audits-status.json
|
|
241
|
+
|
|
242
|
+
godmode Phase 2 cycle step 8 (STUCK DETECTION):
|
|
243
|
+
- If same audit fails 3× with same finding pattern → root cause analysis,
|
|
244
|
+
not more retries (already enforced by 5-iter cap per preamble §4)
|
|
245
|
+
|
|
246
|
+
godmode Phase 2 cycle step 10 (REPORT):
|
|
247
|
+
- Include audit scores in Telegram milestone updates
|
|
248
|
+
- Highlight any NEEDS_REVIEW items that hit the 5-iter cap
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 7. METAUDIT INVOCATION TRIGGERS
|
|
254
|
+
|
|
255
|
+
Run `/metaudit` automatically when:
|
|
256
|
+
|
|
257
|
+
1. **After any `.md` file in `~/.claude/commands/` is edited** (drift prevention)
|
|
258
|
+
2. **At the end of `/aisb full`** (final compliance check)
|
|
259
|
+
3. **At rule 43 pipeline step 9** (before moving ticket to "In Review")
|
|
260
|
+
4. **On-demand** when user invokes `/metaudit` directly
|
|
261
|
+
|
|
262
|
+
Metaudit scope flags:
|
|
263
|
+
- `/metaudit` — full 20-phase scan
|
|
264
|
+
- `/metaudit --focus arsenal` — 14 audits compliance only (fast)
|
|
265
|
+
- `/metaudit --focus preamble` — Phase 1 only (hinge point)
|
|
266
|
+
- `/metaudit --focus deprecation` — stale refs only
|
|
267
|
+
- `/metaudit --focus banned-phrases` — rule 46 scan
|
|
268
|
+
- `/metaudit --focus skills` — Skill() call validity
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 8. ORACLE DISPATCH CONTRACT
|
|
273
|
+
|
|
274
|
+
When Oracle dispatches an audit work session, the prompt MUST:
|
|
275
|
+
|
|
276
|
+
1. **Start with the exact skill invocation on line 1**:
|
|
277
|
+
```
|
|
278
|
+
/codeaudit --files=src/auth.ts,src/middleware.ts --url=https://example.com/dashboard --scope="auth flow regression" --ticket=DEN-42
|
|
279
|
+
```
|
|
280
|
+
2. **Never paraphrase the audit protocol** — rule 001 enforces this (AUDIT KEYWORD DETECTION).
|
|
281
|
+
3. **Include expected output gate**: "On completion, verify `audits/.codeaudit/verdict.json` exists with `score >= 100` and `preamble_version: \"1.0\"`."
|
|
282
|
+
4. **Include the interconnections context**: "See ARSENAL-INTERCONNECTIONS.md §1 for ownership boundaries. Do not duplicate findings owned by other audits."
|
|
283
|
+
5. **Reference the preamble**: "All contracts in QUALITY-ARSENAL-PREAMBLE.md apply. Emit `preamble_version` in verdict.json."
|
|
284
|
+
6. **Pass scope boundaries explicitly**: "Do not expand beyond the specified --files / --url / --scope."
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 9. USER COMMUNICATION TEMPLATES
|
|
289
|
+
|
|
290
|
+
When Oracle reports audit results back to the user:
|
|
291
|
+
|
|
292
|
+
### Success (single audit)
|
|
293
|
+
```
|
|
294
|
+
✅ /codeaudit complete — score 100/100 (S, Fortress)
|
|
295
|
+
Scope: 3 files, 1 page
|
|
296
|
+
Findings: 0 CRITICAL, 0 HIGH, 2 MEDIUM, 5 LOW (all auto-fixed)
|
|
297
|
+
Iterations: 2 (fix-and-reaudit loop)
|
|
298
|
+
Duration: 18min
|
|
299
|
+
Report: audits/.codeaudit/verdict.md
|
|
300
|
+
Next: /debugaudit for runtime verification (same scope)
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Partial (NEEDS_REVIEW)
|
|
304
|
+
```
|
|
305
|
+
⚠️ /flowaudit completed with 3 NEEDS_REVIEW items (hit 5-iter cap)
|
|
306
|
+
Score: 92/100 (A, solid)
|
|
307
|
+
Hinge flow intact. Remaining items need human decision:
|
|
308
|
+
1. Onboarding step 3 ambiguity (design choice, not fixable in code)
|
|
309
|
+
2. Payment retry UX (needs business policy)
|
|
310
|
+
3. Dead-end on /settings/advanced (intentional? confirm)
|
|
311
|
+
Report: audits/.flowaudit/verdict.md
|
|
312
|
+
Telegram SOS sent.
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Group dispatch (Linear DYNAMIC audit chain)
|
|
316
|
+
```
|
|
317
|
+
✅ Rule-43 DYNAMIC audit chain complete for DEN-42 (selector chose 5 of 16):
|
|
318
|
+
/codeaudit 100/100 (3 fixes applied)
|
|
319
|
+
/uiuxaudit 100/100 (1 fix applied)
|
|
320
|
+
/flowaudit 100/100 (0 fixes needed)
|
|
321
|
+
/debugaudit 100/100 (2 console warnings silenced)
|
|
322
|
+
/logicaudit 100/100 (1 redundant path removed)
|
|
323
|
+
Adversarial: confirmed (5 attack attempts blocked)
|
|
324
|
+
Intent Q1-Q5: PASS
|
|
325
|
+
Gate passed: ticket ready for "In Review: Gareth"
|
|
326
|
+
Comment posted with Before/After screenshots.
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Failure (ABORT)
|
|
330
|
+
```
|
|
331
|
+
🛑 /uiuxaudit aborted — non-UI context detected
|
|
332
|
+
Project type: CLI tool (no visual UI surface)
|
|
333
|
+
Alternatives dispatched automatically:
|
|
334
|
+
/dxaudit (primary for CLIs)
|
|
335
|
+
/copyaudit (help text, error messages)
|
|
336
|
+
Preamble §5 ABORT gate enforced per design.
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## 10. QUICK REFERENCE — "WHICH AUDIT FOR WHAT?"
|
|
342
|
+
|
|
343
|
+
One-line answer per common question:
|
|
344
|
+
|
|
345
|
+
| Question | Audit |
|
|
346
|
+
|---------|-------|
|
|
347
|
+
| "The button doesn't work" | `/debugaudit` + `/flowaudit` |
|
|
348
|
+
| "The design looks off" | `/uiuxaudit` + `/a11yaudit` (if contrast/readability) |
|
|
349
|
+
| "Site feels slow" | `/perfaudit` |
|
|
350
|
+
| "Users can't find what they need" | `/flowaudit` + `/seoaudit` |
|
|
351
|
+
| "Can someone hack us?" | `/secaudit` (must follow `/apiaudit` for auth surfaces) |
|
|
352
|
+
| "Google isn't ranking us" | `/perfaudit` → `/seoaudit` |
|
|
353
|
+
| "Form fields lost data" | `/flowaudit` (Phase 8 data integrity through flow) + `/dataaudit` |
|
|
354
|
+
| "API returning wrong shape" | `/apiaudit` |
|
|
355
|
+
| "Screen reader doesn't work" | `/a11yaudit` |
|
|
356
|
+
| "This animation is distracting" | `/motionaudit` |
|
|
357
|
+
| "Headline is unclear" | `/copyaudit` |
|
|
358
|
+
| "New devs struggle to onboard" | `/dxaudit` |
|
|
359
|
+
| "Database is corrupting" | `/dataaudit` |
|
|
360
|
+
| "Is our command system healthy?" | `/metaudit` |
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
*v1.0 — 2026-04-14. Referenced by /aisb, /godmode, /team, rule 43, rule 001-smart-routing.md.*
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: AUDIT-VERIFICATION-CONTRACT
|
|
3
|
+
description: >
|
|
4
|
+
MANDATORY verification contract for all Quality Arsenal audits (/codeaudit, /flowaudit, /logicaudit,
|
|
5
|
+
/automationaudit, /debugaudit, /perfaudit, /secaudit, /a11yaudit, /seoaudit, /dataaudit, /apiaudit,
|
|
6
|
+
/copyaudit, /dxaudit, /motionaudit, /uiuxaudit, /featureaudit). Every audit MUST implement this
|
|
7
|
+
before/after verification protocol. An audit that cannot prove "100% functional before AND after"
|
|
8
|
+
is NOT complete. This is the "do no harm" contract.
|
|
9
|
+
NOT a user-invokable skill — this is a shared source of truth referenced by all audit skills.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Audit Verification Contract v1.1 — "Do No Harm"
|
|
13
|
+
|
|
14
|
+
> **An audit that breaks working functionality is a failure, regardless of score improvement.**
|
|
15
|
+
> Before calling any fix "done", prove the thing you touched still works — AND wasn't broken before.
|
|
16
|
+
|
|
17
|
+
> **v1.1 changelog (2026-04-17):** formalized the HINGE {DOMAIN} pattern,
|
|
18
|
+
> documented mandatory minimums (phase count, score normalization, Phase N-1
|
|
19
|
+
> / N+4), clarified the 16 Quality Arsenal skills the contract applies to.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## MANDATORY MINIMUMS (v1.1)
|
|
24
|
+
|
|
25
|
+
Every Quality Arsenal skill MUST satisfy these structural invariants. A skill
|
|
26
|
+
violating any of them is not compliant and fails `/metaudit`.
|
|
27
|
+
|
|
28
|
+
| # | Invariant | Rationale |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| 1 | **At least 16 scored phases** (## headings counted as audit work, not doc) | Forensic depth — fewer phases = shallow audit |
|
|
31
|
+
| 2 | **Phase N-1 (PRE-FIX BASELINE)** implemented before first fix | Hippocratic rule — can't prove "no regression" without baseline |
|
|
32
|
+
| 3 | **Phase N+4 (before-after matrix)** produced to `.{audit}/before-after.md` | Proof-of-work artifact required for 100/100 verdict |
|
|
33
|
+
| 4 | **Score normalized to /100** (raw may be /100, /320, /360, /420, /540 — must include normalization formula `raw / max * 100 = /100`) | Cross-skill comparison |
|
|
34
|
+
| 5 | **HINGE {DOMAIN}** identification before Phase 1 (10× scrutiny on the one thing that dominates the domain's risk/value) | Gestalt clarity gate — not all phases equal |
|
|
35
|
+
| 6 | **Popper falsification** in each scored item (how would you disprove this claim?) | Epistemic rigor — prevents confirmation bias |
|
|
36
|
+
| 7 | **Fix → re-audit loop** with explicit max iterations (typically 5) | Bounded recovery, prevents infinite loops |
|
|
37
|
+
| 8 | **Final verdict gate** blocks 100/100 claim unless `before-after.md` shows 0 regressions | Contract enforcement |
|
|
38
|
+
|
|
39
|
+
### The HINGE {DOMAIN} Pattern (canonical)
|
|
40
|
+
|
|
41
|
+
Each forensic audit identifies ONE element that deserves 10× scrutiny — the
|
|
42
|
+
element whose quality dominates the entire domain. The term "hinge" means
|
|
43
|
+
"everything pivots on this". The noun adapts to the domain:
|
|
44
|
+
|
|
45
|
+
| Skill | Canonical hinge term | What it names |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| `/codeaudit` | **HINGE POINT** (module/function) | Single module where reliability pivots |
|
|
48
|
+
| `/secaudit` | **SECURITY HINGE POINT** | Auth/authorization boundary |
|
|
49
|
+
| `/uiuxaudit` | **HINGE COMPONENT** | Element that defines perceived quality |
|
|
50
|
+
| `/a11yaudit` | **HINGE FLOW** | Primary accessible journey |
|
|
51
|
+
| `/flowaudit` | **HINGE FLOW** | Journey that defines product's raison d'être |
|
|
52
|
+
| `/perfaudit` | **HINGE PAGE** | Highest-traffic page |
|
|
53
|
+
| `/motionaudit` | **HINGE PAGE** | Page defining kinetic identity |
|
|
54
|
+
| `/seoaudit` | **HINGE PAGES** | Money/conversion pages |
|
|
55
|
+
| `/copyaudit` | **HINGE PAGES** | Conversion-critical copy surfaces |
|
|
56
|
+
| `/dataaudit` | **HINGE TABLES** | Core entities (users, orders, products) |
|
|
57
|
+
| `/apiaudit` | **HINGE ENDPOINTS** | Money/auth/user-data endpoints |
|
|
58
|
+
| `/debugaudit` | **HINGE FEATURE** | Feature whose breakage = product down |
|
|
59
|
+
| `/featureaudit` | **HINGE CAPABILITY** | The one thing the product must do best |
|
|
60
|
+
| `/dxaudit` | **HINGE EXPERIENCE** | First 30 min of a new developer |
|
|
61
|
+
| `/automationaudit` | **HINGE AUTOMATION** | Script whose failure cascades most |
|
|
62
|
+
| `/logicaudit` | **HINGE LOGIC** | Bottleneck decision/algorithm/pipeline |
|
|
63
|
+
|
|
64
|
+
**Rule:** within a skill, use ONE canonical hinge term consistently. Do not
|
|
65
|
+
mix "hinge point" with a domain-specific term in the same skill. The only
|
|
66
|
+
skill using the generic "HINGE POINT" is `codeaudit` (because "code" has no
|
|
67
|
+
more specific noun) and `secaudit` (which qualifies it with "SECURITY").
|
|
68
|
+
|
|
69
|
+
When writing a new audit skill: pick the most specific noun for your domain,
|
|
70
|
+
document it in the Gestalt section (Phase 0), and never drift from it.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## THE HIPPOCRATIC RULE
|
|
75
|
+
|
|
76
|
+
**First, do no harm.** Every fix must pass 3 tests:
|
|
77
|
+
|
|
78
|
+
1. **BEFORE test** — Capture baseline functional state. Does the thing currently work?
|
|
79
|
+
2. **FIX** — Apply the change.
|
|
80
|
+
3. **AFTER test** — Repeat the exact same capture. Does it still work?
|
|
81
|
+
4. **DIFF** — Compare before vs after. Prove no regression.
|
|
82
|
+
|
|
83
|
+
Without all 3, the fix is UNVERIFIED. Do NOT mark it done.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## MANDATORY PHASES FOR EVERY AUDIT
|
|
88
|
+
|
|
89
|
+
Every audit (code/flow/logic/automation/debug/etc.) MUST add these phases AROUND its fix execution:
|
|
90
|
+
|
|
91
|
+
### Phase N-1: PRE-FIX BASELINE CAPTURE
|
|
92
|
+
|
|
93
|
+
Before touching ANY file, capture the current functional state of EVERYTHING the fix might affect.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
For each file/resource about to be modified:
|
|
97
|
+
1. Identify direct dependents: who calls this? who reads this? who executes this?
|
|
98
|
+
Command: grep -rln "path/or/name" ~/.claude ~/.aisb ~/VibeCoding/work 2>/dev/null
|
|
99
|
+
| grep -v ".backup" | grep -v "/file-history/" | grep -v ".jsonl"
|
|
100
|
+
2. For each dependent, capture a "works check":
|
|
101
|
+
- Script: bash -n SCRIPT (syntax check)
|
|
102
|
+
- Config: JSON parse / YAML parse
|
|
103
|
+
- Python: python3 -c "import ast; ast.parse(open('F').read())"
|
|
104
|
+
- Shell cron: validate expression
|
|
105
|
+
- TypeScript: tsc --noEmit PROJECT (if applicable)
|
|
106
|
+
- Skill: frontmatter present (head -3 | grep "^name:")
|
|
107
|
+
3. Save baseline to .{audit}/baseline/{file}.baseline
|
|
108
|
+
4. If ANY baseline check already fails → abort the fix, flag it as "pre-existing broken"
|
|
109
|
+
Do NOT fix unrelated broken things. Note and move on.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Phase N: APPLY FIX (existing behavior)
|
|
113
|
+
|
|
114
|
+
Normal fix execution. Nothing changes here.
|
|
115
|
+
|
|
116
|
+
### Phase N+1: POST-FIX VERIFICATION
|
|
117
|
+
|
|
118
|
+
Immediately after each fix, repeat EVERY baseline check from Phase N-1.
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
For each dependent captured at baseline:
|
|
122
|
+
1. Re-run the exact same "works check"
|
|
123
|
+
2. If check PASSES → record as OK
|
|
124
|
+
3. If check FAILS → this fix broke something that worked. REVERT immediately:
|
|
125
|
+
- For sed/Edit: restore from .bak
|
|
126
|
+
- For mv: mv back to original location
|
|
127
|
+
- For crontab: crontab /tmp/crontab.backup-*.txt
|
|
128
|
+
4. Mark fix as NEEDS_REVIEW in fix-plan.json
|
|
129
|
+
5. Continue to next fix (do NOT abort whole audit)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Phase N+2: FUNCTIONAL SMOKE TEST
|
|
133
|
+
|
|
134
|
+
Beyond syntax/parsing, verify the thing actually FUNCTIONS:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
For every skill whose path changed:
|
|
138
|
+
- Read the skill file from its new location — does it exist?
|
|
139
|
+
- grep for all internal references (@-mentions, paths, links) — do they resolve?
|
|
140
|
+
- Check frontmatter is intact
|
|
141
|
+
|
|
142
|
+
For every script whose behavior changed:
|
|
143
|
+
- Run with --help or --dry-run if supported
|
|
144
|
+
- Check it doesn't hang (timeout 10s)
|
|
145
|
+
- Check exit code
|
|
146
|
+
|
|
147
|
+
For every rule whose content changed:
|
|
148
|
+
- Ensure it's still loadable (markdown syntax valid)
|
|
149
|
+
- Ensure no internal cross-references were broken
|
|
150
|
+
|
|
151
|
+
For every cron that was modified:
|
|
152
|
+
- Validate cron expression with `cron-validator` or equivalent
|
|
153
|
+
- Confirm `crontab -l` shows expected output
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Phase N+3: BREAKAGE DETECTION REPORT
|
|
157
|
+
|
|
158
|
+
After all fixes applied, run a full breakage scan:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Find ALL stale references to moved/deleted paths
|
|
162
|
+
echo "=== STALE REFERENCES CHECK ==="
|
|
163
|
+
for old_path in "${MOVED_OR_DELETED[@]}"; do
|
|
164
|
+
BROKEN=$(grep -rln "$old_path" ~/.claude ~/.aisb ~/VibeCoding/work 2>/dev/null \
|
|
165
|
+
| grep -v ".backup" | grep -v "/file-history/" | grep -v ".jsonl" \
|
|
166
|
+
| grep -v ".{audit}/" | head -20)
|
|
167
|
+
if [ -n "$BROKEN" ]; then
|
|
168
|
+
echo "🔴 STALE REFERENCES to $old_path:"
|
|
169
|
+
echo "$BROKEN"
|
|
170
|
+
# Fix each one OR mark NEEDS_REVIEW
|
|
171
|
+
fi
|
|
172
|
+
done
|
|
173
|
+
|
|
174
|
+
# Exit 0 ONLY if zero stale references found
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Phase N+4: BEFORE/AFTER MATRIX (mandatory output)
|
|
178
|
+
|
|
179
|
+
Every audit MUST produce `.{audit}/before-after.md`:
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
# Before / After Verification Matrix
|
|
183
|
+
|
|
184
|
+
## Functional checks
|
|
185
|
+
|
|
186
|
+
| Item | Before | After | Status |
|
|
187
|
+
|------|--------|-------|--------|
|
|
188
|
+
| /linear skill loads | ✅ PASS | ✅ PASS | NO REGRESSION |
|
|
189
|
+
| rule 43 referenced correctly | 🔴 needed fix | ✅ PASS | FIXED |
|
|
190
|
+
| crontab validates | ✅ PASS | ✅ PASS | NO REGRESSION |
|
|
191
|
+
| dispatch-to-session syntax | ✅ PASS | ✅ PASS | NO REGRESSION |
|
|
192
|
+
| ... | ... | ... | ... |
|
|
193
|
+
|
|
194
|
+
## Performance metrics
|
|
195
|
+
|
|
196
|
+
| Metric | Before | After | Delta |
|
|
197
|
+
|--------|--------|-------|-------|
|
|
198
|
+
| Context tokens/session | 20,000 | 12,700 | -36% ✅ |
|
|
199
|
+
| Rules loaded | 16 files | 12 files | -25% ✅ |
|
|
200
|
+
| Dispatch wait time | 7s | 3-5s | -40% ✅ |
|
|
201
|
+
| Minute-0 crons | 14 | 1 | -93% ✅ |
|
|
202
|
+
|
|
203
|
+
## Regressions detected
|
|
204
|
+
|
|
205
|
+
<list, or "NONE" if clean>
|
|
206
|
+
|
|
207
|
+
## Status: {100/100 VERIFIED | NEEDS_REVIEW | FAILED}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
If Status is NOT "100/100 VERIFIED" → the audit is NOT done. Do more work.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## THE "IT STILL WORKS" CHECKLIST
|
|
215
|
+
|
|
216
|
+
Before marking ANY audit complete, tick every box:
|
|
217
|
+
|
|
218
|
+
- [ ] Every file I moved has its new path referenced by every caller
|
|
219
|
+
- [ ] Every file I deleted has no live references (only ephemeral logs OK)
|
|
220
|
+
- [ ] Every script I modified passes `bash -n` (shell) or `python3 -c "import ast"` (Python)
|
|
221
|
+
- [ ] Every cron I changed still passes cron-expression validation
|
|
222
|
+
- [ ] Every skill file I changed still has valid frontmatter
|
|
223
|
+
- [ ] Every rule I moved is accessible at its new path (file exists + readable)
|
|
224
|
+
- [ ] I ran a FRESH grep for old paths across the full ecosystem — got 0 matches
|
|
225
|
+
- [ ] For infrastructure changes (crons, live scripts): backups exist with timestamps
|
|
226
|
+
- [ ] For each fix: before-check PASSED, fix applied, after-check PASSED
|
|
227
|
+
- [ ] `before-after.md` produced with measurable deltas
|
|
228
|
+
- [ ] Zero regressions claimed only if zero regressions actually found
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## WHAT COUNTS AS "BROKEN" (revert immediately)
|
|
233
|
+
|
|
234
|
+
- A skill file's path is referenced but target doesn't exist
|
|
235
|
+
- A cron expression is invalid (cron validator fails)
|
|
236
|
+
- A script has syntax errors (`bash -n` fails)
|
|
237
|
+
- A Python module has import/parse errors
|
|
238
|
+
- A rule references another rule that was deleted
|
|
239
|
+
- A hook script points to a path that no longer exists AND the script is actively triggered
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## WHAT DOESN'T COUNT AS BROKEN (OK to leave alone)
|
|
244
|
+
|
|
245
|
+
- Reference in ephemeral log files (`tool-results/`, `file-history/`, `.jsonl` session files)
|
|
246
|
+
- Reference in `.backup-*` files you created yourself
|
|
247
|
+
- Reference in deprecated/archived scripts that aren't triggered
|
|
248
|
+
- Reference in `shell-snapshots/` (autogenerated, rotates)
|
|
249
|
+
|
|
250
|
+
Skip these by default in breakage scans.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## ENFORCEMENT
|
|
255
|
+
|
|
256
|
+
Every audit skill's `## PHASE N+4: VERDICT & SCORING` section MUST end with:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
## FINAL VERIFICATION GATE (MANDATORY before final verdict)
|
|
260
|
+
|
|
261
|
+
1. Read AUDIT-VERIFICATION-CONTRACT.md fully
|
|
262
|
+
2. Execute every check in the "IT STILL WORKS CHECKLIST"
|
|
263
|
+
3. Produce .{audit}/before-after.md
|
|
264
|
+
4. Grep for stale references — must be 0
|
|
265
|
+
5. ONLY THEN write final verdict
|
|
266
|
+
|
|
267
|
+
If ANY check fails → mark status as NEEDS_REVIEW and do NOT claim "done".
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
*"An audit that breaks a single working thing is worse than no audit. Measure twice, fix once, verify thrice."*
|