aizee 6.8.0__py3-none-any.whl
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.
- aizee-6.8.0.dist-info/METADATA +617 -0
- aizee-6.8.0.dist-info/RECORD +322 -0
- aizee-6.8.0.dist-info/WHEEL +5 -0
- aizee-6.8.0.dist-info/entry_points.txt +2 -0
- aizee-6.8.0.dist-info/licenses/LICENSE +21 -0
- aizee-6.8.0.dist-info/licenses/NOTICE +33 -0
- aizee-6.8.0.dist-info/top_level.txt +7 -0
- aizee_cli.py +2907 -0
- aizee_mcp/API.md +353 -0
- aizee_mcp/__init__.py +3 -0
- aizee_mcp/_compat.py +50 -0
- aizee_mcp/adapters.py +555 -0
- aizee_mcp/agent.py +208 -0
- aizee_mcp/aizee_server.py +501 -0
- aizee_mcp/config.json +29 -0
- aizee_mcp/rbac.py +109 -0
- aizee_mcp/rbac.yaml +25 -0
- aizee_mcp/schema_profile.py +74 -0
- aizee_mcp/tools/__init__.py +94 -0
- aizee_mcp/tools/ads_tools.py +285 -0
- aizee_mcp/tools/analytics_tools.py +408 -0
- aizee_mcp/tools/common.py +103 -0
- aizee_mcp/tools/context_tools.py +140 -0
- aizee_mcp/tools/cro_tools.py +295 -0
- aizee_mcp/tools/doctor_tools.py +69 -0
- aizee_mcp/tools/email_tools.py +555 -0
- aizee_mcp/tools/freelance_tools.py +300 -0
- aizee_mcp/tools/intel_tools.py +114 -0
- aizee_mcp/tools/memory_tools.py +236 -0
- aizee_mcp/tools/policy_tools.py +135 -0
- aizee_mcp/tools/schemas.py +296 -0
- aizee_mcp/tools/seo_page_reporters.py +181 -0
- aizee_mcp/tools/seo_tools.py +1047 -0
- aizee_mcp/tools/social_tools.py +358 -0
- aizee_mcp/tools/task_tools.py +135 -0
- aizee_mcp/tools/workflow_tools.py +209 -0
- config.py +64 -0
- eval/__init__.py +0 -0
- eval/agent_benchmark.py +268 -0
- eval/chaos.py +296 -0
- eval/harness.py +234 -0
- eval/pipeline.py +460 -0
- eval/prompt_injection_suite.py +385 -0
- eval/redteam.py +284 -0
- eval/release_gate.py +157 -0
- eval/reliability.py +510 -0
- eval/rubric.py +263 -0
- eval/scenarios/goldfish-review.yaml +61 -0
- eval/scenarios/persona.yaml +22 -0
- eval/scenarios/security.yaml +43 -0
- eval/skill_scenarios.py +235 -0
- eval/stages.py +135 -0
- eval/trigger_cases.json +118 -0
- eval/vibe.py +234 -0
- memory/__init__.py +22 -0
- memory/archive/Memory-202610.md +604 -0
- memory/checkpoint.py +331 -0
- memory/compactor.py +196 -0
- memory/consolidation.py +140 -0
- memory/decay_scheduler.py +119 -0
- memory/git_memory.py +360 -0
- memory/graph.py +156 -0
- memory/handoff.py +144 -0
- memory/heat.py +131 -0
- memory/hybrid.py +236 -0
- memory/ingest.py +244 -0
- memory/instincts.py +128 -0
- memory/observations.py +439 -0
- memory/schema_contract.py +361 -0
- memory/sectors.py +165 -0
- memory/simhash.py +164 -0
- memory/store.py +1383 -0
- memory/temporal.py +173 -0
- memory/vector.py +458 -0
- plugins/__init__.py +0 -0
- plugins/automatisch/__init__.py +5 -0
- plugins/automatisch/automatisch_plugin.py +78 -0
- plugins/brevo/__init__.py +5 -0
- plugins/brevo/brevo_plugin.py +78 -0
- plugins/chatwoot/__init__.py +5 -0
- plugins/chatwoot/chatwoot_plugin.py +78 -0
- plugins/code2video/README.md +87 -0
- plugins/code2video/__init__.py +3 -0
- plugins/code2video/code2video_plugin.py +229 -0
- plugins/code2video/entrypoint.py +166 -0
- plugins/code2video/litellm-c2v.yaml +30 -0
- plugins/context7/__init__.py +5 -0
- plugins/context7/context7_plugin.py +57 -0
- plugins/documenso/__init__.py +5 -0
- plugins/documenso/documenso_plugin.py +78 -0
- plugins/erpnext/__init__.py +5 -0
- plugins/erpnext/erpnext_plugin.py +78 -0
- plugins/fiverr/__init__.py +5 -0
- plugins/fiverr/fiverr_plugin.py +82 -0
- plugins/flagsmith/__init__.py +5 -0
- plugins/flagsmith/flagsmith_plugin.py +78 -0
- plugins/formbricks/__init__.py +5 -0
- plugins/formbricks/formbricks_plugin.py +78 -0
- plugins/freelancer/__init__.py +5 -0
- plugins/freelancer/freelancer_plugin.py +106 -0
- plugins/google_ads/__init__.py +5 -0
- plugins/google_ads/google_ads_plugin.py +78 -0
- plugins/graphify/__init__.py +3 -0
- plugins/graphify/graph_plugin.py +168 -0
- plugins/growthbook/__init__.py +5 -0
- plugins/growthbook/growthbook_plugin.py +78 -0
- plugins/hubspot/__init__.py +5 -0
- plugins/hubspot/hubspot_plugin.py +78 -0
- plugins/khamsat/__init__.py +5 -0
- plugins/khamsat/khamsat_plugin.py +80 -0
- plugins/kit/__init__.py +5 -0
- plugins/kit/kit_plugin.py +78 -0
- plugins/klaviyo/__init__.py +5 -0
- plugins/klaviyo/klaviyo_plugin.py +78 -0
- plugins/lago/__init__.py +5 -0
- plugins/lago/lago_plugin.py +78 -0
- plugins/linkedin/__init__.py +5 -0
- plugins/linkedin/linkedin_plugin.py +188 -0
- plugins/linkedin_ads/__init__.py +5 -0
- plugins/linkedin_ads/linkedin_ads_plugin.py +78 -0
- plugins/listmonk/__init__.py +5 -0
- plugins/listmonk/listmonk_plugin.py +78 -0
- plugins/meta_ads/__init__.py +5 -0
- plugins/meta_ads/meta_ads_plugin.py +78 -0
- plugins/mostaql/__init__.py +5 -0
- plugins/mostaql/mostaql_plugin.py +80 -0
- plugins/n8n/__init__.py +5 -0
- plugins/n8n/n8n_plugin.py +78 -0
- plugins/openreplay/__init__.py +5 -0
- plugins/openreplay/openreplay_plugin.py +78 -0
- plugins/posthog/__init__.py +5 -0
- plugins/posthog/posthog_plugin.py +78 -0
- plugins/postiz/__init__.py +5 -0
- plugins/postiz/postiz_plugin.py +78 -0
- plugins/sendgrid/__init__.py +5 -0
- plugins/sendgrid/sendgrid_plugin.py +78 -0
- plugins/tiktok_ads/__init__.py +5 -0
- plugins/tiktok_ads/tiktok_ads_plugin.py +78 -0
- plugins/twenty/__init__.py +5 -0
- plugins/twenty/twenty_plugin.py +78 -0
- plugins/twitter/__init__.py +5 -0
- plugins/twitter/twitter_plugin.py +78 -0
- plugins/upwork/__init__.py +5 -0
- plugins/upwork/upwork_plugin.py +90 -0
- plugins/youtube/__init__.py +5 -0
- plugins/youtube/youtube_plugin.py +78 -0
- runtime/__init__.py +694 -0
- runtime/_osroot.tar.gz +0 -0
- runtime/abstracts.py +159 -0
- runtime/agent_baseline.py +350 -0
- runtime/agent_circuit_breaker.py +305 -0
- runtime/agent_discovery.py +320 -0
- runtime/agent_gateway.py +448 -0
- runtime/agent_sli.py +435 -0
- runtime/api_session.py +229 -0
- runtime/approval_cache.py +61 -0
- runtime/approval_service.py +352 -0
- runtime/approval_sla.py +341 -0
- runtime/astryx.py +111 -0
- runtime/attribution_model.py +76 -0
- runtime/audit.py +641 -0
- runtime/audit_signing.py +346 -0
- runtime/billing_ledger.py +209 -0
- runtime/blade_template_linter.py +239 -0
- runtime/blast_radius.py +526 -0
- runtime/bootstrap.py +233 -0
- runtime/budget.py +800 -0
- runtime/budget_advanced.py +799 -0
- runtime/budget_escalation.py +220 -0
- runtime/c4_docs.py +200 -0
- runtime/call_plan.py +798 -0
- runtime/chat.py +63 -0
- runtime/ci.py +70 -0
- runtime/codemode/__init__.py +14 -0
- runtime/codemode/_child.py +123 -0
- runtime/codemode/executor.py +311 -0
- runtime/config_ops.py +116 -0
- runtime/context_composition.py +149 -0
- runtime/crm_manager.py +164 -0
- runtime/cross_tool_taint.py +529 -0
- runtime/crypto.py +195 -0
- runtime/curriculum.py +113 -0
- runtime/daemon.py +719 -0
- runtime/db_migration_safety.py +251 -0
- runtime/defensive_injection.py +472 -0
- runtime/deps.py +461 -0
- runtime/design_db.py +505 -0
- runtime/design_library.py +467 -0
- runtime/design_slop_verifier.py +540 -0
- runtime/dns_wire.py +200 -0
- runtime/doc_links.py +151 -0
- runtime/doctor.py +312 -0
- runtime/domain_intel.py +342 -0
- runtime/drip_engine.py +162 -0
- runtime/durable.py +443 -0
- runtime/enforcement.py +282 -0
- runtime/enums.py +67 -0
- runtime/evidence.py +97 -0
- runtime/experiment_tracker.py +184 -0
- runtime/fairness_detector.py +404 -0
- runtime/feature_flags.py +97 -0
- runtime/filament_access_auditor.py +232 -0
- runtime/find.py +150 -0
- runtime/funnel_tracker.py +128 -0
- runtime/gateway_proxy.py +335 -0
- runtime/governance.py +71 -0
- runtime/guardian.py +531 -0
- runtime/guardrails/__init__.py +11 -0
- runtime/guardrails/prompt_injection.py +143 -0
- runtime/hallucination_detector.py +398 -0
- runtime/harness_exporter.py +179 -0
- runtime/heal.py +316 -0
- runtime/hook_lifecycle.py +162 -0
- runtime/hooks.py +183 -0
- runtime/ingest_rules.py +106 -0
- runtime/injection_detector.py +794 -0
- runtime/inventory_note.py +165 -0
- runtime/kernel.py +1299 -0
- runtime/laravel_policy_linter.py +247 -0
- runtime/lead_scorer.py +86 -0
- runtime/lifecycle.py +158 -0
- runtime/llm_attestation.py +511 -0
- runtime/local_responder.py +133 -0
- runtime/loop_detector.py +394 -0
- runtime/managers/__init__.py +15 -0
- runtime/managers/agent_manager.py +106 -0
- runtime/managers/chat_manager.py +93 -0
- runtime/managers/policy_manager.py +353 -0
- runtime/managers/workflow_manager.py +136 -0
- runtime/marketing_compliance.py +74 -0
- runtime/mcp_auditor.py +701 -0
- runtime/mcp_client.py +743 -0
- runtime/mcp_firewall.py +381 -0
- runtime/mcp_freeze.py +114 -0
- runtime/mcp_manifest_lock.py +327 -0
- runtime/mcp_orchestrator.py +224 -0
- runtime/mcp_protocol.py +203 -0
- runtime/metrics.py +566 -0
- runtime/middleware.py +157 -0
- runtime/migrations.py +305 -0
- runtime/model_router.py +314 -0
- runtime/models_catalog.py +92 -0
- runtime/orchestrator.py +109 -0
- runtime/output_filter.py +87 -0
- runtime/overengineering.py +181 -0
- runtime/persona.py +524 -0
- runtime/personas.yaml +2130 -0
- runtime/pipeline_analytics.py +91 -0
- runtime/pipeline_catalog.py +263 -0
- runtime/plan_diff_validator.py +357 -0
- runtime/plugin.py +409 -0
- runtime/plugin_packager.py +158 -0
- runtime/plugin_transactions.py +151 -0
- runtime/policies/agentic-owasp.yaml +76 -0
- runtime/policies/consequence-tiers.yaml +92 -0
- runtime/policies/default.yaml +48 -0
- runtime/policies/examples/api-rate-limits.yaml +13 -0
- runtime/policies/examples/data-exfiltration.yaml +13 -0
- runtime/policies/examples/time-based-access.yaml +13 -0
- runtime/policies/guardian.yaml +101 -0
- runtime/policies/mcp_firewall.yaml +49 -0
- runtime/policies/probity.yaml +74 -0
- runtime/policy.py +558 -0
- runtime/policy_lint.py +255 -0
- runtime/post_queue.py +93 -0
- runtime/preloop.py +65 -0
- runtime/pricing_calculator.py +87 -0
- runtime/probity.py +211 -0
- runtime/project_config.py +111 -0
- runtime/prompt_gate.py +545 -0
- runtime/prompt_injection_detector.py +322 -0
- runtime/repository.py +113 -0
- runtime/rule_compiler.py +180 -0
- runtime/rule_frontmatter.py +180 -0
- runtime/rules_materializer.py +373 -0
- runtime/saga.py +213 -0
- runtime/schemas.py +299 -0
- runtime/secret_scrub.py +101 -0
- runtime/security_scanner.py +612 -0
- runtime/self_healing.py +116 -0
- runtime/sensitive.py +63 -0
- runtime/seo_issue_registry.py +349 -0
- runtime/service_catalog.py +476 -0
- runtime/settings.py +887 -0
- runtime/skill_lifecycle.py +352 -0
- runtime/skill_lint.py +344 -0
- runtime/skill_lock.py +213 -0
- runtime/skill_resolver.py +111 -0
- runtime/skill_scan.py +155 -0
- runtime/skill_validator.py +195 -0
- runtime/sovereign.py +80 -0
- runtime/spec/__init__.py +54 -0
- runtime/spec/analysis.py +280 -0
- runtime/spec/changes.py +179 -0
- runtime/spec/engine.py +660 -0
- runtime/spec/models.py +201 -0
- runtime/spec/review.py +298 -0
- runtime/spec/scaffold.py +131 -0
- runtime/spec/templates.py +80 -0
- runtime/spec_engine.py +61 -0
- runtime/stale_api_detector.py +256 -0
- runtime/storage_backend.py +561 -0
- runtime/supply_chain_guard.py +980 -0
- runtime/taint.py +390 -0
- runtime/task_contract/__init__.py +55 -0
- runtime/task_contract/classifier.py +102 -0
- runtime/task_contract/enforce.py +164 -0
- runtime/task_contract/engine.py +328 -0
- runtime/task_contract/evidence.py +145 -0
- runtime/task_contract/models.py +209 -0
- runtime/task_contract/validation.py +76 -0
- runtime/tech_stack.py +388 -0
- runtime/telemetry.py +162 -0
- runtime/tool_envelope.py +153 -0
- runtime/tool_output_sanitizer.py +171 -0
- runtime/tracing.py +212 -0
- runtime/tracing_otel.py +120 -0
- runtime/ui_a11y_checker.py +288 -0
- runtime/uninstaller.py +572 -0
- runtime/uninstaller_gui.py +498 -0
- runtime/verification.py +121 -0
- runtime/workflow.py +228 -0
|
@@ -0,0 +1,617 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aizee
|
|
3
|
+
Version: 6.8.0
|
|
4
|
+
Summary: aiZee — sovereign AI engineering control plane
|
|
5
|
+
Author: Moataz Ahmed
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/m3taz-ahmed/aizee
|
|
8
|
+
Project-URL: Repository, https://github.com/m3taz-ahmed/aizee
|
|
9
|
+
Project-URL: Issues, https://github.com/m3taz-ahmed/aizee/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/m3taz-ahmed/aizee/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: ai,agents,mcp,workflow,governance
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
License-File: NOTICE
|
|
24
|
+
Requires-Dist: pyyaml<7.0,>=6.0
|
|
25
|
+
Requires-Dist: mcp<3.0,>=2.0
|
|
26
|
+
Requires-Dist: turbovec<2.0,>=1.0
|
|
27
|
+
Requires-Dist: numpy<3.0,>=1.24
|
|
28
|
+
Requires-Dist: pydantic<3.0,>=2.0
|
|
29
|
+
Requires-Dist: rich<16.0,>=15.0
|
|
30
|
+
Requires-Dist: cryptography<52.0,>=42.0
|
|
31
|
+
Requires-Dist: psutil<8.0,>=7.0
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest<10.0,>=9.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-cov<8.0,>=7.0; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-asyncio<2.0,>=0.23; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-timeout<3.0,>=2.0; extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-xdist<4.0,>=3.0; extra == "dev"
|
|
38
|
+
Requires-Dist: ruff<1.0,>=0.6; extra == "dev"
|
|
39
|
+
Requires-Dist: mypy<3.0,>=2.0; extra == "dev"
|
|
40
|
+
Requires-Dist: types-pyyaml; extra == "dev"
|
|
41
|
+
Requires-Dist: types-psutil; extra == "dev"
|
|
42
|
+
Requires-Dist: sentry-sdk<3.0,>=2.0; extra == "dev"
|
|
43
|
+
Requires-Dist: defusedxml<0.8,>=0.7; extra == "dev"
|
|
44
|
+
Requires-Dist: graphifyy<0.10.0,>=0.8.20; extra == "dev"
|
|
45
|
+
Requires-Dist: bandit<2.0,>=1.7; extra == "dev"
|
|
46
|
+
Requires-Dist: pip-audit<3.0,>=2.0; extra == "dev"
|
|
47
|
+
Provides-Extra: graphify
|
|
48
|
+
Requires-Dist: graphifyy<0.10.0,>=0.8.20; extra == "graphify"
|
|
49
|
+
Provides-Extra: vector
|
|
50
|
+
Requires-Dist: sentence-transformers<7.0,>=6.0; extra == "vector"
|
|
51
|
+
Dynamic: license-file
|
|
52
|
+
|
|
53
|
+
<!-- mcp-name: com.m3taz-ahmed/aizee -->
|
|
54
|
+
<div align="center">
|
|
55
|
+
<img src="logo.png" width="160" alt="aiZee Logo">
|
|
56
|
+
<h1>aiZee</h1>
|
|
57
|
+
<p><strong>Your AI agent ships hallucinated APIs and secrets.<br>aiZee blocks them — enforced, not advised.</strong></p>
|
|
58
|
+
|
|
59
|
+
<p>
|
|
60
|
+
<img src="https://img.shields.io/badge/Version-6.8.0-6C63FF?style=for-the-badge&logo=buffer&logoColor=white&labelColor=1a1a2e" alt="Version 6.8.0">
|
|
61
|
+
<img src="https://img.shields.io/badge/Tests-7652%20passed-00C896?style=for-the-badge&logo=pytest&logoColor=white&labelColor=1a1a2e" alt="Tests: 7652 passed">
|
|
62
|
+
<img src="https://img.shields.io/badge/Coverage-100%25-10B981?style=for-the-badge&logo=codecov&logoColor=white&labelColor=1a1a2e" alt="Coverage 100%">
|
|
63
|
+
<img src="https://img.shields.io/badge/License-MIT-3B82F6?style=for-the-badge&logo=opensourceinitiative&logoColor=white&labelColor=1a1a2e" alt="License: MIT">
|
|
64
|
+
</p>
|
|
65
|
+
<p>
|
|
66
|
+
<img src="https://img.shields.io/badge/Personas-29-EC4899?style=for-the-badge&logo=buffer&logoColor=white&labelColor=1a1a2e" alt="29 Personas">
|
|
67
|
+
<img src="https://img.shields.io/badge/Skills-245-10B981?style=for-the-badge&logo=checkmarx&logoColor=white&labelColor=1a1a2e" alt="245 Skills">
|
|
68
|
+
<img src="https://img.shields.io/badge/Workflows-66-0EA5E9?style=for-the-badge&logo=checkmarx&logoColor=white&labelColor=1a1a2e" alt="66 Workflows">
|
|
69
|
+
<img src="https://img.shields.io/badge/Tech--Stack-271-F59E0B?style=for-the-badge&logo=sparkles&logoColor=white&labelColor=1a1a2e" alt="271 Tech-Stack refs">
|
|
70
|
+
</p>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
[Read this in Arabic](README-AR.md) · [Changelog](CHANGELOG.md) · [Installer Guide](#installation) · [llms.txt](llms.txt)
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## See it block something
|
|
80
|
+
|
|
81
|
+
<div align="center">
|
|
82
|
+
<img src="docs/media/demo.gif" width="780" alt="aiZee denies a secret-committing action, then reports doctor verdict ready">
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
```console
|
|
86
|
+
$ aizee check 'Bash' --args '{"command":"git add .env && git commit -m keys"}'
|
|
87
|
+
{
|
|
88
|
+
"ok": false,
|
|
89
|
+
"decision": "deny",
|
|
90
|
+
"reason": "guardian: commits secrets file .env"
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
$ aizee doctor --json | jq .verdict
|
|
94
|
+
"ready"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Every tool call, LLM request, memory write, and file change flows through
|
|
98
|
+
`Kernel.act()` — **Probity → Guardian → Policy → LoopDetector → Budget →
|
|
99
|
+
Audit** — so a denial is a wall, not a suggestion.
|
|
100
|
+
|
|
101
|
+
## What is aiZee?
|
|
102
|
+
|
|
103
|
+
A **zero-compromise, version-controlled operating system** that sits between you and every AI coding assistant — Cursor, Claude, Copilot, Windsurf, Cline, Aider, Devin — enforcing engineering standards, security policies, and architectural discipline on every line of generated code.
|
|
104
|
+
|
|
105
|
+
**The problem it solves:** AI assistants hallucinate APIs, forget conventions, ignore security, and silently ship technical debt. aiZee forces them to read from a centralized source of truth *before* writing a single line — and in v6, every action is verified *while* it executes, not just documented after.
|
|
106
|
+
|
|
107
|
+
| Without aiZee | With aiZee |
|
|
108
|
+
| :--- | :--- |
|
|
109
|
+
| Context drift after a few prompts | Rules + personas hard-loaded every session |
|
|
110
|
+
| Deprecated packages, silent tech debt | Exact-version tech-stack locked via live MCP docs |
|
|
111
|
+
| Raw SQL, missing XSS, weak secrets | OWASP, zero-trust, RBAC enforced by default |
|
|
112
|
+
| Random drive-by refactoring | Surgical changes through policy + budget + audit gates |
|
|
113
|
+
| Guardrails that exist but aren't on the path | **v6: enforcement wired into `Kernel.act()` + every MCP call** |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## What's New — Unified Skill Library & BMAD Runtime (v6.8.0+)
|
|
118
|
+
|
|
119
|
+
The skill surface grew from 155 to **245 skills** — the entire agent-skills
|
|
120
|
+
ecosystem is now vendored, persona-mapped, trigger-enriched (EN+AR), and
|
|
121
|
+
integrity-locked inside the repo:
|
|
122
|
+
|
|
123
|
+
- **BMAD-METHOD vendored** — all ~34 BMAD skills (`bmad-*`, `bmod-*`) live in
|
|
124
|
+
`skills/` with the project-local `_bmad/` runtime (config, scripts, ticket
|
|
125
|
+
tree). Agents: **Mary** (analyst), **John** (PM), **Winston** (architect),
|
|
126
|
+
**Sally** (UX), **Sofia** (PO), **Amelia** (dev) — invoked by natural
|
|
127
|
+
language, no global install needed.
|
|
128
|
+
- **Marketing/growth suite** — ~55 skills (seo-audit, ai-seo, cro, ads,
|
|
129
|
+
cold-email, launch, pricing, paywalls, onboarding, referrals, revops…)
|
|
130
|
+
with bilingual triggers.
|
|
131
|
+
- **Lifecycle-aware persona routing** — `runtime/lifecycle.py` reads the
|
|
132
|
+
active BMAD initiative (`_bmad/config.toml` + `_bmad-output/` artifacts)
|
|
133
|
+
and biases persona detection toward the current phase (discovery → PRD →
|
|
134
|
+
breakdown → architecture → UX → implementation → review → retro).
|
|
135
|
+
Non-BMAD projects are unaffected (`phase=None` → keyword-only routing).
|
|
136
|
+
- **Handoff hints** — `detect_multiple` emits `next_persona_hint`, the
|
|
137
|
+
highest-scoring persona outside the selected set, injected into context
|
|
138
|
+
for smooth cross-domain transitions.
|
|
139
|
+
- **Per-project skill distribution** — `scripts/distribute-agent-skills.py`
|
|
140
|
+
junctions/hardlinks all 245 skills into `.agents/skills` (every agent
|
|
141
|
+
harness: Devin, Claude, Cursor, Codex…) plus `.claude/skills` and
|
|
142
|
+
`.devin/skills`; nothing stays global, so unrelated sessions stay lean.
|
|
143
|
+
- **Trigger enrichment + lint** — imported skills got Arabic glossary
|
|
144
|
+
triggers; `scripts/enrich-imported-triggers.py` /
|
|
145
|
+
`enrich-bmad-triggers.py` are idempotent and re-runnable after upstream
|
|
146
|
+
updates.
|
|
147
|
+
- **FINOPS persona fixed** — new dedicated `finops` skill replaces the
|
|
148
|
+
mismatched `performance-engineer` mapping.
|
|
149
|
+
- **External deps manifest** — `deps.yaml` declares every tool aiZee
|
|
150
|
+
features need (binaries, pip, git-repos, docker, env); `aizee deps
|
|
151
|
+
check|install` verifies and provisions them (see
|
|
152
|
+
[External Tooling](#external-tooling--auto-provisioning)).
|
|
153
|
+
|
|
154
|
+
Full analysis: `tech-stack/persona-bmad-review.md`.
|
|
155
|
+
|
|
156
|
+
## What's New in v6.7.0 — vercel-labs Adoption Pass
|
|
157
|
+
|
|
158
|
+
From a survey of all 396 vercel-labs repos (28 deep-studied; report in
|
|
159
|
+
`vercel-labs-study-2026-11.md`):
|
|
160
|
+
|
|
161
|
+
- **Inert plan engine** — `aizee plan validate|run|resume` runs
|
|
162
|
+
callscript-style JSON plans: no eval, all-issues validation, bounded
|
|
163
|
+
fan-outs/call budgets, suspend/resume that never re-runs settled side
|
|
164
|
+
effects, auditable `plan_hash`.
|
|
165
|
+
- **Skill lock + drift** — `skills-lock.json` pins every skill by folder
|
|
166
|
+
hash (`skillFolderHash` equivalent); `aizee skill lock-check` reports
|
|
167
|
+
changed/missing/unlocked, `lock-update` rebuilds.
|
|
168
|
+
- **Canonical SKILL.md lint** — kebab-case dirs, exact `SKILL.md`, 500-line
|
|
169
|
+
progressive-disclosure cap, folded into `aizee skill lint`.
|
|
170
|
+
- **MCP tool-surface freeze** — `aizee mcp freeze <server> [--check]`
|
|
171
|
+
snapshot-locks tool definitions and detects added/removed/changed tools.
|
|
172
|
+
- **Doc→code drift gate** — `aizee check-docs` validates
|
|
173
|
+
`wiki path#symbol refs` links across docs (lat.md-style).
|
|
174
|
+
- **Offline models.dev catalog** — `aizee models --catalog [--query]`:
|
|
175
|
+
886 models/12 providers vendored snapshot.
|
|
176
|
+
- **Error contract** — `AizeeError.scope`/`public` + `to_public_dict()`
|
|
177
|
+
redaction for safe MCP/CLI envelopes.
|
|
178
|
+
- **Activation layer** — every capability is wired for automatic use, not
|
|
179
|
+
just installed: a `Command Surface & Auto-Triggers` section in
|
|
180
|
+
`AGENTS.md` (propagated to all agent adapters) + four trigger skills
|
|
181
|
+
(`inert-plan-runner`, `mcp-surface-integrity`, `docs-drift-check`,
|
|
182
|
+
`skill-lock-integrity`) so persona-detection surfaces the right
|
|
183
|
+
command at the right moment, and event rules fire the gates
|
|
184
|
+
(post-install → lock-check, MCP change → freeze --check, doc edit →
|
|
185
|
+
check-docs) without being asked.
|
|
186
|
+
|
|
187
|
+
## What's New in v6.6.0 — Repo-Study Adoption Pass
|
|
188
|
+
|
|
189
|
+
Adopted from a structured study of google/elephant-goldfish-model,
|
|
190
|
+
wotschofsky/domain-digger, and godotengine/godot
|
|
191
|
+
(full report in `repo-study-2026-11.md`):
|
|
192
|
+
|
|
193
|
+
- **Goldfish spec review** — `aizee spec review <spec_id|--file> [--preset]`
|
|
194
|
+
plans a fresh-zero-context reviewer pipeline (EGM port): semantic
|
|
195
|
+
spec/plan split, 5-stage reviewer personas, severity triage +
|
|
196
|
+
traceability consolidation. Vendored Apache-2.0 rubrics + personas live
|
|
197
|
+
under `resources/`; workflow: `workflows/65-goldfish-review.md`.
|
|
198
|
+
- **Multi-harness skill packaging** — `aizee skill link --pack <dir>`
|
|
199
|
+
emits an EGM-style portable bundle: canonical `plugin.json` plus
|
|
200
|
+
`.claude-plugin/`, `.codex-plugin/`, `.cursor-plugin/`, `.agents/`
|
|
201
|
+
manifests, vendored `skills/`, `agents/` personas, and `resources/`
|
|
202
|
+
rubrics. Replacement is fail-closed on non-bundle destinations.
|
|
203
|
+
- **Domain intelligence toolkit** — `aizee intel <domain>` plus 7 MCP
|
|
204
|
+
tools (`runtime/dns_wire.py` + `runtime/domain_intel.py`, a Python
|
|
205
|
+
rewrite of domain-digger concepts): wire-format DNS codec, UDP→TCP
|
|
206
|
+
fallback, iterative authoritative walking, DoH, WHOIS, certificate
|
|
207
|
+
history, and subdomain enumeration — all bounded and fail-closed.
|
|
208
|
+
- **Skill scenario evals** — `eval/skill_scenarios.py` runs static/live
|
|
209
|
+
behavioral checks (`eval/scenarios/goldfish-review.yaml`) and feeds the
|
|
210
|
+
eval harness as a `skill-scenarios` gate.
|
|
211
|
+
- **Godot reference** — full engine source pinned under `refs/godot`
|
|
212
|
+
(local-only) + `tech-stack/godot-4.md` records the verified portable
|
|
213
|
+
install (`4.7.2.stable.official`) for the GAME vertical.
|
|
214
|
+
|
|
215
|
+
## What's New in v6.1.0 — Lean Surface
|
|
216
|
+
|
|
217
|
+
The headline change: **the default surface is small and honest**. The MCP fleet is reduced to what is actually used, marketing tool modules are gated off instead of deleted, dead code is gone, and installers remove retired files on upgrade.
|
|
218
|
+
|
|
219
|
+
### Lean defaults
|
|
220
|
+
|
|
221
|
+
- **3 MCP servers by default** — `aizee` (governance), `graphify`, `context7`. The marketing/social/freelance MCP servers are gone from every shipped config.
|
|
222
|
+
- **46 MCP tools enabled** — 7 marketing-domain tool modules (ads, analytics, CRO, email, freelance, SEO, social) still ship but are disabled via `disabledToolModules` in `aizee_mcp/config.json`. Remove a name to re-enable it.
|
|
223
|
+
- **31 plugins disabled** — `plugins.yaml` ships them `enabled: false`; the sandbox blocks the rest. `code2video`, `graphify`, `context7` stay on.
|
|
224
|
+
- **Dead code removed** — unused runtime modules (`a2a_server`, `semantic_search`, `provider_registry`, `sql_injection_guard`, `plugin_system`, …) and their tests deleted.
|
|
225
|
+
|
|
226
|
+
### Upgrade hygiene
|
|
227
|
+
|
|
228
|
+
- **Stale-file cleanup** — `scripts/stale_files.txt` lists retired paths; `install.ps1`, `install.sh`, and `scripts/update.py` delete them from existing installs while preserving `state/`, `brain/`, and `.env`.
|
|
229
|
+
- **Unified test tree** — all tests live under `tests/{runtime,memory,eval,aizee_mcp,…}`.
|
|
230
|
+
- **Design library seeded** — `design-library/` now ships real `DESIGN.md` seeds (editorial, midnight, minimal) so `DesignLibrary` no longer resolves an empty catalog.
|
|
231
|
+
- **`Memory.md` self-compaction** — kept under its 500-line budget via `aizee memory compact` (archive in `memory/archive/`).
|
|
232
|
+
|
|
233
|
+
### v6.0.0 recap — Governed Runtime
|
|
234
|
+
|
|
235
|
+
Enforcement moved onto the execution path in v6.0.0:
|
|
236
|
+
|
|
237
|
+
- **`runtime/enforcement.py`** — unified helper: MCP firewall → AgentGateway request checks → execution → gateway response checks → audit. Shared by every call path.
|
|
238
|
+
- **`Kernel.act()`** — AgentGateway verdicts (ALLOW / REDACT / BLOCK) now gate real actions; prompt-injection and secret-leak checks apply to prompt-like fields without blocking ordinary file writes.
|
|
239
|
+
- **Outbound MCP** — `McpClient` (sync + async) and `McpAgent` run the firewall and gateway around every external tool call.
|
|
240
|
+
- **Inbound MCP** — the aiZee server's tools keep RBAC *and* get gateway wrapping.
|
|
241
|
+
|
|
242
|
+
### Detection depth
|
|
243
|
+
|
|
244
|
+
- **Injection detector L1→L3** — 13-technique regex layer + L2 embedding-similarity layer + optional L3 LLM-judge hook. Deterministic/model-free by default.
|
|
245
|
+
- **Dual-LLM hardening** — quarantined worker output is schema-enforced via Pydantic; parse failure is fail-safe.
|
|
246
|
+
- **MCP 2026-07-28 stateless** — per-request `protocolVersion` negotiation + `Mcp-Method`/`Mcp-Name` header routing (`runtime/mcp_protocol.py`).
|
|
247
|
+
|
|
248
|
+
### Governance depth
|
|
249
|
+
|
|
250
|
+
- **APL verdicts** — policies can now `modify` (rewrite payloads, audited) and `observe` (log-only) in addition to allow/ask/deny.
|
|
251
|
+
- **Lifecycle hooks** — `output.pre_send` and `memory.pre_write` phases; hooks can veto or mutate.
|
|
252
|
+
- **`aizee heal`** — safe autofix orchestrator (dry-run default, `--apply` with confirmation, audit to `state/heal.log`).
|
|
253
|
+
- **Per-PR budgets** — cumulative spend limits keyed by PR id (`AIZEE_PR_ID`), on top of session/hour/day windows.
|
|
254
|
+
- **Release gate** — `eval/release_gate.py` runs the reliability priority ladder over recorded rollouts; wired into `aizee ci`.
|
|
255
|
+
- **Chaos suite** — `eval/chaos.py` fault-injection scenarios + error-budget math.
|
|
256
|
+
|
|
257
|
+
### Memory & protocol surfaces
|
|
258
|
+
|
|
259
|
+
- **Bi-temporal memory** — `store.as_of(as_of=..., valid_at=...)` answers "what did we know then" and "what was true then" separately; `pinned`, soft-delete with tombstone-time queries, contradiction relations.
|
|
260
|
+
- **`aizee memory compact`** — `Memory.md` auto-compaction (500-line budget, `[PINNED]` rescue, archive under `memory/archive/`).
|
|
261
|
+
- **Code Mode** — `aizee codemode` executes sandboxed Python snippets that call MCP tools directly (AST scan + restricted builtins + governed bridge + timeout).
|
|
262
|
+
- **`aizee bootstrap`** — materialize a minimal OS root after `pip install aizee` (idempotent, dry-run default).
|
|
263
|
+
- **Advisory audits** — `aizee task overcheck` (over-engineering signals from plan + graph), `aizee task curriculum` (staged learning plan from tech-stack refs).
|
|
264
|
+
- **Cross-harness handoffs** — `aizee memory handoff --to-harness <h>` stamps a portable `aizee.handoff.v1` doc into the scoped vault (`brain/handoffs/`, fail-closed gitignore guard) so another agent picks up exactly where this one stopped.
|
|
265
|
+
- **Instincts** — `aizee memory instinct-*` records atomic trigger→action behaviors with confidence 0.3→0.9; observed in ≥2 projects → auto-promotes project→user scope.
|
|
266
|
+
- **MCP supply-chain audit** — `aizee security mcp` scans discovered MCP configs (JSONC-tolerant) for plaintext/token-shaped secrets in `env` *and* `args`, unpinned `npx`/`uvx` packages, writable command paths, and rug-pull drift vs locked baselines.
|
|
267
|
+
- **Fact-forcing guardrail** — recoverable destructive commands (force-push, hard reset) pass only with explicit `{target, rollback}` facts; catastrophic ones stay hard-blocked.
|
|
268
|
+
- **Prompt-defense baseline** — every materialized harness rules file carries a fixed anti-injection section (identity lock, secret non-disclosure, untrusted external content, unicode-trick suspicion).
|
|
269
|
+
|
|
270
|
+
Full detail: [CHANGELOG.md](CHANGELOG.md)
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Quick Start
|
|
275
|
+
|
|
276
|
+
### Prerequisites
|
|
277
|
+
|
|
278
|
+
| Requirement | Minimum | Recommended |
|
|
279
|
+
| :--- | :--- | :--- |
|
|
280
|
+
| Python | 3.10 | 3.12 |
|
|
281
|
+
| Git | 2.30+ | Latest |
|
|
282
|
+
| OS | Windows 10 / macOS 12 / Ubuntu 22.04 | Latest |
|
|
283
|
+
|
|
284
|
+
### Installation
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
git clone https://github.com/m3taz-ahmed/aizee.git .ai
|
|
288
|
+
cd .ai
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Windows — GUI wizard** (double-click `install.bat` or run):
|
|
292
|
+
```powershell
|
|
293
|
+
.\install.ps1 -Gui
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Windows — CLI:**
|
|
297
|
+
```powershell
|
|
298
|
+
.\install.ps1
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**macOS / Linux:**
|
|
302
|
+
```bash
|
|
303
|
+
bash install.sh
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
**pip (from GitHub):**
|
|
307
|
+
```bash
|
|
308
|
+
pip install "git+https://github.com/m3taz-ahmed/aizee.git"
|
|
309
|
+
aizee bootstrap --target ~/.aizee --yes # materialize a minimal OS root
|
|
310
|
+
export AIZEE_ROOT=~/.aizee
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
> PyPI publication is planned; until `pip install aizee` lands, install
|
|
314
|
+
> from the repo directly as above (the `pyproject.toml` is real — it
|
|
315
|
+
> installs cleanly as an editable or git package).
|
|
316
|
+
|
|
317
|
+
**Installer map** — the `.bat` files are thin launchers, not separate installers:
|
|
318
|
+
|
|
319
|
+
| Entrypoint | Real implementation | Preserves `state/`/`brain/` |
|
|
320
|
+
| :--- | :--- | :--- |
|
|
321
|
+
| `install.ps1` / `install.sh` | The actual installers (copy + in-place modes) | Yes |
|
|
322
|
+
| `install.bat` | → `installer/gui_installer.ps1` | Yes |
|
|
323
|
+
| `update.bat` | → `scripts/update.py` (git pull + post-install) | Yes |
|
|
324
|
+
| `uninstall.bat` | → `runtime/uninstaller_gui.py` (fallback: `aizee uninstall`) | n/a |
|
|
325
|
+
| `backup.bat` / `restore.bat` | → `scripts/backup_brain.py` / `restore_brain.py` | n/a |
|
|
326
|
+
|
|
327
|
+
Both install and update run the `scripts/stale_files.txt` retirement list, so files removed from the repo are deleted from existing installs too.
|
|
328
|
+
|
|
329
|
+
### Verify
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
aizee doctor # Health check (46 checks)
|
|
333
|
+
aizee heal # Diagnose + safe autofixes (dry-run; --apply to fix)
|
|
334
|
+
aizee status # Current persona, skills, budget
|
|
335
|
+
aizee deps install # Provision external tools declared in deps.yaml
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### Updating
|
|
339
|
+
|
|
340
|
+
For an **existing install** (not a fresh install) — one file does everything:
|
|
341
|
+
|
|
342
|
+
- **Windows:** double-click `update.bat`
|
|
343
|
+
- **Any OS:** `python scripts/update.py --yes`
|
|
344
|
+
|
|
345
|
+
What it does: `git fetch` → stashes any local edits (recover with `git stash pop`) → `git pull --rebase` → post-install hooks + `aizee deps check` advisory. Your learned data (`memory/`, `state/`, `brain/`, `.env`) is gitignored and always preserved. Preview first with `python scripts/update.py --dry-run`.
|
|
346
|
+
|
|
347
|
+
To jump straight to a specific release: `git checkout vX.Y.Z` then `python scripts/update.py --post-install-only`.
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## External Tooling & Auto-Provisioning
|
|
352
|
+
|
|
353
|
+
aiZee features sometimes need software that lives **outside** this repo —
|
|
354
|
+
CLI tools, pip packages, media kits, docker images, API keys. All of it is
|
|
355
|
+
declared in **`deps.yaml`** (44 entries) so nothing is a silent missing
|
|
356
|
+
requirement:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
aizee deps check # Report every dep: ok / missing / wrong version
|
|
360
|
+
aizee deps check --tag video # Filter by group (video, devx, agent, media…)
|
|
361
|
+
aizee deps install # Provision everything unsatisfied (per-OS cmds)
|
|
362
|
+
aizee deps install --dry-run # Preview commands without running
|
|
363
|
+
aizee doctor # deps verdict folded into the health report
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
`install.ps1` / `install.sh` / `scripts/update.py` already run
|
|
367
|
+
`aizee deps check` as a post-install hook and offer to install what's
|
|
368
|
+
missing — so a fresh clone reaches full capability with one command.
|
|
369
|
+
|
|
370
|
+
| Category | Examples | Needed for |
|
|
371
|
+
| :--- | :--- | :--- |
|
|
372
|
+
| **Core (bundled)** | Python 3.10+, SQLite, pyyaml, pydantic | Everything — zero extra installs |
|
|
373
|
+
| **DevX CLIs** | repomix, code2prompt, oxlint, agent-browser | Context packing, repo→prompt, JS lint, agent browsing |
|
|
374
|
+
| **Spec/SDD** | specify (spec-kit), openspec, spec-kitty, spec-workflow-mcp | Spec-driven development workflows |
|
|
375
|
+
| **Automation** | n8n, super-productivity, gitbutler | Workflow automation, PM, git branches |
|
|
376
|
+
| **Media kits** | cinecode, bang-motion, motion-graphics (`~/.aizee/media`) | Video/motion production (optional) |
|
|
377
|
+
| **ComfyUI** | `~/.aizee/media/apps/ComfyUI` + custom nodes | Local image/video generation (optional, GPU) |
|
|
378
|
+
| **Docker** | Docker Desktop + `code2video` image | code2video plugin rendering (optional) |
|
|
379
|
+
|
|
380
|
+
**Optional by design:** media/video deps are `severity: optional` — core
|
|
381
|
+
governance, personas, skills, memory, and MCP work fully without them.
|
|
382
|
+
`aizee deps check` tells you exactly what each feature is missing and the
|
|
383
|
+
one command that fixes it.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## Core Architecture
|
|
388
|
+
|
|
389
|
+
```
|
|
390
|
+
.ai/ # Sovereign root (discovered via AIZEE_ROOT)
|
|
391
|
+
├── AGENTS.md # Cross-tool canonical bootloader
|
|
392
|
+
├── global-roles.md # 29 personas + operational rules
|
|
393
|
+
├── global-workflow.md # Cognitive loading & execution protocol
|
|
394
|
+
├── runtime/ # Kernel: policy, budget, audit, 139 governance modules
|
|
395
|
+
│ ├── kernel.py # Facade — Probity → Guardian → Policy → Loop → Budget → Audit
|
|
396
|
+
│ ├── enforcement.py # Unified firewall+gateway enforcement helper
|
|
397
|
+
│ ├── agent_gateway.py # Request/response guardrails (ALLOW/REDACT/BLOCK)
|
|
398
|
+
│ ├── injection_detector.py# L1 regex + L2 embeddings + L3 LLM-judge
|
|
399
|
+
│ ├── lifecycle.py # BMAD phase detection → persona routing bias
|
|
400
|
+
│ ├── codemode/ # Sandboxed code-mode tool execution
|
|
401
|
+
│ └── policies/ # default/guardian/probity/mcp_firewall YAMLs
|
|
402
|
+
├── memory/ # SQLite + FTS5 + vector, bi-temporal queries
|
|
403
|
+
├── aizee_mcp/ # MCP server (46 tools enabled, 3 resources)
|
|
404
|
+
├── eval/ # Benchmarks, chaos, reliability, release gate
|
|
405
|
+
├── skills/ # 245 persona + lord + BMAD + marketing skills
|
|
406
|
+
├── _bmad/ # BMAD runtime (config/scripts — gitignored)
|
|
407
|
+
├── .agents/skills # Junction distribution for agent harnesses
|
|
408
|
+
├── deps.yaml # External dependency manifest (check/install)
|
|
409
|
+
├── workflows/ # 66 trigger-based execution protocols
|
|
410
|
+
├── rules/ # Compressed behavioral rules
|
|
411
|
+
├── tech-stack/ # 271 version-locked stack references
|
|
412
|
+
├── dashboard/ # Web dashboard (Python stdlib HTTP)
|
|
413
|
+
├── scripts/ # Installers, validators, MCP wrappers
|
|
414
|
+
├── install.ps1 / install.sh # Idempotent OS installer
|
|
415
|
+
└── pyproject.toml # Package metadata + quality config
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## The Six Pillars
|
|
421
|
+
|
|
422
|
+
### 1. Persona + Skill Composition
|
|
423
|
+
29 personas (`ARCH`, `QA`, `SEC`, `DEV`, `SRE`, `DATA`, `ML`, `MLOPS`, `FINOPS`, `DEVOPS`, `API`, `FREELANCE`, `MARKETING`, `GROWTH`, `BRAND`, `EMAIL`, `SOCIAL`, `CRO`, `SALES`, etc.) with lord-level domain skills — auto-detected per task, no manual selection needed.
|
|
424
|
+
|
|
425
|
+
Two routing layers on top of keyword scoring:
|
|
426
|
+
|
|
427
|
+
- **Lifecycle phase bias** — when a BMAD initiative is active, `_bmad-output/`
|
|
428
|
+
artifacts reveal the current phase (PRD → architecture → stories → review)
|
|
429
|
+
and `runtime/lifecycle.py` biases selection toward the matching persona
|
|
430
|
+
(e.g. mid-implementation → `DEV`, mid-review → `QA`+`ARCH`).
|
|
431
|
+
- **Handoff hints** — the result carries `next_persona_hint`: the strongest
|
|
432
|
+
persona outside the selected set, so cross-domain tasks ("review the
|
|
433
|
+
design, then implement") transition cleanly.
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
aizee persona detect --multi "build a secure docker API with postgres"
|
|
437
|
+
# → Primary: ARCH + Secondary: SEC, DEVOPS + Lords: security-lord, cloud-platforms-lord
|
|
438
|
+
# + lifecycle_phase / next_persona_hint when a BMAD initiative is active
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### 2. Runtime Governance
|
|
442
|
+
Every action passes through the gate pipeline before execution:
|
|
443
|
+
|
|
444
|
+
```
|
|
445
|
+
Probity → Guardian → Policy → Loop Detector → Budget → Audit
|
|
446
|
+
└─ AgentGateway: injection + secret-leak verdicts (v6)
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
- **Policy engine** — `allow/ask/deny/modify/observe` YAML rules with AST-safe evaluation
|
|
450
|
+
- **MCP firewall** — rule-based outbound tool-call gate (deny destructive, ask unknown)
|
|
451
|
+
- **AgentGateway** — prompt/response guardrails on every enforced path
|
|
452
|
+
- **Budget manager** — token/cost/call limits per session/hour/day/week/month **and per PR**
|
|
453
|
+
- **Audit logger** — SHA-256 hash-chained, Ed25519-signed, tamper-evident trail
|
|
454
|
+
- **Workflow runner** — durable SQLite-backed execution with saga compensation
|
|
455
|
+
|
|
456
|
+
### 3. Live Ground-Truth
|
|
457
|
+
Context7 MCP fetches current library docs before implementation. Graphify knowledge graph replaces blind `grep` for codebase navigation.
|
|
458
|
+
|
|
459
|
+
### 4. Hybrid Memory
|
|
460
|
+
SQLite + FTS5 full-text + optional vector index (SentenceTransformers). Episodic, semantic, factual, procedural layers — now with pinning, soft-delete, contradiction links, HMAC integrity, and bi-temporal `as_of` queries.
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
aizee memory ingest # Rebuild index after changes
|
|
464
|
+
aizee memory search "docker" # Full-text + vector search
|
|
465
|
+
aizee memory compact # Keep Memory.md under its line budget
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### 5. Quality Gates (Zero Defect)
|
|
469
|
+
```bash
|
|
470
|
+
ruff check . # 0 warnings
|
|
471
|
+
mypy # Strict typing
|
|
472
|
+
aizee test --full # full suite + coverage (fail-under=100)
|
|
473
|
+
python eval/harness.py # E2E eval: ruff + mypy + pytest + validate-globals
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### 6. Token Efficiency
|
|
477
|
+
Persona detection is local (pure Python, zero LLM tokens). Code Mode replaces tool-call JSON ping-pong with sandboxed snippets that invoke tools directly — materially fewer orchestration tokens on multi-tool tasks.
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Runtime Enforcement Map
|
|
482
|
+
|
|
483
|
+
| Path | Gates applied |
|
|
484
|
+
| :--- | :--- |
|
|
485
|
+
| `Kernel.act()` | Probity → Guardian → Policy → Loop → Budget → Audit + AgentGateway prompt checks |
|
|
486
|
+
| Outbound MCP (`McpClient`, `McpAgent`, `aizee mcp call`) | mcp_firewall → gateway request → execute → gateway response |
|
|
487
|
+
| Inbound MCP (`aizee_mcp` tools) | RBAC + gateway request/response wrap |
|
|
488
|
+
| Chat (`kernel.chat_message`) | prompt_gate → … → `output.pre_send` hooks |
|
|
489
|
+
| Memory writes | `memory.pre_write` hooks (veto/mutate) + HMAC integrity |
|
|
490
|
+
| Code Mode (`aizee codemode`) | AST sandbox scan + restricted builtins + governed `call_tool` |
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Dashboard
|
|
495
|
+
|
|
496
|
+
```bash
|
|
497
|
+
python dashboard/server.py 8080
|
|
498
|
+
# → http://127.0.0.1:8080
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
Dark-first command-center UI: command palette (`Ctrl+K`), bento-grid metrics, status pills, glass panels. Optional Bearer auth via `AIZEE_DASHBOARD_TOKEN`.
|
|
502
|
+
|
|
503
|
+
**Tabs:** Overview · Memory Explorer · Policy Sandbox · Workflows · Sagas · Chat · Tech Stack · Telemetry · System Health · Audit Logs · **Settings**
|
|
504
|
+
|
|
505
|
+
> **Important — disable MCP servers you don't use.** Every enabled MCP server consumes memory and may spawn a subprocess on first tool call. After installation, open **Settings → MCP Servers**, uncheck what you don't need (**Uncheck All** then re-check), and **Save Changes**. The kernel auto-reloads on save.
|
|
506
|
+
|
|
507
|
+
Settings persist to `state/settings.json` (gitignored, survives updates). Schema migrations run automatically — old files are backed up.
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## Key Commands
|
|
512
|
+
|
|
513
|
+
| Command | Purpose |
|
|
514
|
+
| :--- | :--- |
|
|
515
|
+
| `aizee doctor [--json]` | Health verdict + ordered Run:/Guidance: fix steps |
|
|
516
|
+
| `aizee heal [--apply] [-y]` | Diagnose + safe auto-fixes (dry-run default) |
|
|
517
|
+
| `aizee check <action>` | Policy verdict for an action |
|
|
518
|
+
| `aizee find "<need>"` | NL search over skills/workflows/tech-stack |
|
|
519
|
+
| `aizee goal "<objective>"` | Map a goal to the best workflow + steps |
|
|
520
|
+
| `aizee config show` | Masked settings snapshot |
|
|
521
|
+
| `aizee config apply <file> --check` | Validate a settings file (no write) |
|
|
522
|
+
| `aizee spec propose\|changes\|archive` | OpenSpec-style change folders |
|
|
523
|
+
| `aizee gateway init\|serve` | Governed LLM proxy (failover + enforcement) |
|
|
524
|
+
| `aizee models` | Model routing catalog (tiers + cost) |
|
|
525
|
+
| `aizee work poll` | Open GitHub issues via `gh` (pull model) |
|
|
526
|
+
| `aizee skill link` | Install SKILL.md into agent harnesses |
|
|
527
|
+
| `aizee skill lint [--write-index]` | Description lint + trigger-collision detection |
|
|
528
|
+
| `aizee skill scan` | Prompt-injection / exfiltration scan of skills |
|
|
529
|
+
| `aizee hooks install\|status` | Wire aiZee hooks into agent harnesses |
|
|
530
|
+
| `aizee abstract [--force]` | Generate L0 `.abstract.md` tiered summaries |
|
|
531
|
+
| `aizee session from-curl\|from-har` | Inspect a captured API auth bundle |
|
|
532
|
+
| `aizee memory compact [--apply]` | Compact Memory.md to its line budget |
|
|
533
|
+
| `aizee codemode --code/--file` | Sandboxed snippet calling MCP tools |
|
|
534
|
+
| `aizee task overcheck` | Over-engineering audit of the active plan |
|
|
535
|
+
| `aizee task curriculum --stack …` | Staged learning plan from tech-stack refs |
|
|
536
|
+
| `aizee bootstrap --target DIR` | Materialize an OS root (post-`pip install`) |
|
|
537
|
+
| `aizee ci` | Full CI gates incl. reliability release gate |
|
|
538
|
+
| `aizee security scan <path>` | SAST + external scanner orchestration |
|
|
539
|
+
| `aizee deps check\|install [ids]` | Verify/provision external deps (deps.yaml) |
|
|
540
|
+
| `aizee skill lock-check\|lock-update` | Skill integrity: drift detection / re-lock |
|
|
541
|
+
| `aizee mcp freeze <srv> [--check]` | Snapshot-lock MCP tool surface |
|
|
542
|
+
| `aizee check-docs` | Validate `[[file#symbol]]` doc references |
|
|
543
|
+
| `aizee spec review <spec>` | Goldfish reviewer-pipeline plan |
|
|
544
|
+
| `aizee intel <domain>` | DNS/WHOIS/certs/subdomain recon |
|
|
545
|
+
| `aizee eval` | Behavioral skill-scenario checks |
|
|
546
|
+
| `aizee persona detect --multi` | Multi-persona + lifecycle phase + hints |
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
## Quality Gates
|
|
551
|
+
|
|
552
|
+
| Gate | Command | Status |
|
|
553
|
+
| :--- | :--- | :--- |
|
|
554
|
+
| Lint | `ruff check .` | 0 warnings |
|
|
555
|
+
| Types | `mypy` | 0 errors (strict) |
|
|
556
|
+
| Tests (fast) | `aizee test` | fast tier, no coverage |
|
|
557
|
+
| Tests (full) | `aizee test --full` | full suite, coverage floor 100% |
|
|
558
|
+
| Integrity | `scripts/validate-globals.py` | 1242 files, 0 errors |
|
|
559
|
+
| Docs sync | `scripts/sync_docs.py --check` | in sync |
|
|
560
|
+
| E2E | `python eval/harness.py` | all gates pass |
|
|
561
|
+
| Release | `python eval/release_gate.py` | reliability ladder over rollout evidence |
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
|
|
565
|
+
## Tech Stack
|
|
566
|
+
|
|
567
|
+
- **Core:** Pure Python 3.10+ (no Node.js required for core OS)
|
|
568
|
+
- **Memory:** SQLite + FTS5 + optional SentenceTransformers vectors
|
|
569
|
+
- **MCP:** FastMCP server, 46 tools enabled by default (7 marketing tool modules ship gated via `disabledToolModules`)
|
|
570
|
+
- **Dashboard:** Python stdlib HTTP server + SQLite
|
|
571
|
+
- **Knowledge graph:** graphify (optional)
|
|
572
|
+
- **Dependencies:** pyyaml, pydantic, rich, cryptography, numpy, turbovec
|
|
573
|
+
|
|
574
|
+
---
|
|
575
|
+
|
|
576
|
+
## Contributing
|
|
577
|
+
|
|
578
|
+
1. Fork → feature branch (`feature/*`)
|
|
579
|
+
2. Write tests first (AAA pattern, one behavior per test)
|
|
580
|
+
3. Run `ruff check . && mypy && pytest -q && python eval/harness.py`
|
|
581
|
+
4. All gates must pass — no PR without green
|
|
582
|
+
5. Conventional commits: `type(scope): subject`
|
|
583
|
+
6. PR ≤ 400 lines, targeted tests only
|
|
584
|
+
|
|
585
|
+
---
|
|
586
|
+
|
|
587
|
+
## Ecosystem & Distribution
|
|
588
|
+
|
|
589
|
+
aiZee ships its own MCP server and agent-facing skill. The surfaces below make
|
|
590
|
+
it discoverable to agents and humans — some require maintainer accounts:
|
|
591
|
+
|
|
592
|
+
| Surface | What it unlocks | Status |
|
|
593
|
+
|---|---|---|
|
|
594
|
+
| **PyPI** (`aizee`) | `pip install aizee` — the README's install path | ⏳ pending publication |
|
|
595
|
+
| **Official MCP servers list** | Listed in `modelcontextprotocol/servers` — where Claude/Cursor users discover MCP tools | ⏳ PR needed |
|
|
596
|
+
| **mcpservers.org / Smithery / Glama** | MCP directories with one-click install | ⏳ submission needed |
|
|
597
|
+
| **awesome-claude-code / awesome-mcp** | Curated lists that drive most early stars | ⏳ PR needed |
|
|
598
|
+
| **GitHub social preview** | The image shown when the repo is shared on X/LinkedIn/Discord | ⏳ needs a banner image (1280×640) |
|
|
599
|
+
| **Demo GIF** | The money shot: agent blocked mid-commit | ⏳ record with ScreenToGif/asciinema+agg |
|
|
600
|
+
| **Show HN · r/ClaudeAI · r/cursor** | Launch traffic | ⏳ after the above land |
|
|
601
|
+
| **Dev.to / Hashnode post** | Searchable launch write-up | ⏳ optional |
|
|
602
|
+
|
|
603
|
+
Everything else (topics, description, release, `llms.txt`, root `SKILL.md`,
|
|
604
|
+
`aizee skill link` into agent harnesses) is already shipped.
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## License
|
|
609
|
+
|
|
610
|
+
MIT — see [LICENSE](LICENSE).
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
614
|
+
<div align="center">
|
|
615
|
+
<p><strong>aiZee</strong> — The policy layer for AI coding.</p>
|
|
616
|
+
<p>Built by <a href="https://linkedin.com/in/moataz-ahmed">Moataz Ahmed</a></p>
|
|
617
|
+
</div>
|