π‘οΈ v3.6.0 β Provenance Β· Policy Β· Portability
π‘οΈ v3.6.0 β Provenance Β· Policy Β· Portability
Released 2026-07-28
Curated multi-cloud, zero-trust agent marketplace β
AWSΒ·AzureΒ·OCIΒ·GCPΒ·Terraform.
Least privilege, live evidence, safe rollback paths.
Release type: New capabilities β review the sections below before upgrading.
- compliance: governance foundation for the Python live control plane (
0cabe1f)
Establish the control-as-code and evidence contracts that the forthcoming
Python live-control-plane agents will operate under, and correct a load-bearing
evidence overclaim.
- Correct docs/evidence-output-spec.md: remove the claims that a single agent
response "becomes an audit artifact without post-processing" and is
"sufficient evidence for all mapped controls." Replace with an explicit
"what a response does and does not establish" section: a response may SUPPORT
audit evidence; a control mapping does not establish applicability; evidence
existence is not accuracy; one execution is not continuing effectiveness;
control design and operation are separate; internal evidence is not
independent assessment; audit acceptance is the auditor's decision; legal
compliance is the organization's responsibility. Framework tables reframed as
candidate control support, not certification. - Add schemas/control-object.schema.json β control-as-code (objective,
preventive/detective mechanisms, required_evidence, failure_behavior, owner,
candidate framework_mappings gated by owner confirmation, explicit
limitations). - Add schemas/audit-event.schema.json β the immutable audit-event contract the
deployer's runtime must satisfy; fail-closed for R3/R4/R5 actions when audit
logging is unavailable. The repo defines the contract; it does not run the
log store. - Add docs/compliance/evidence-quality-model.md β evidence dimensions (source,
integrity, freshness, completeness, independence, sensitivity, control stage,
retention, assessor status) extending evidence_level. - Add docs/compliance/applicability-engine.md β determine applicable frameworks
from recorded inputs and R0-R5 action-risk tiers; never apply a framework
because it is familiar, never omit one because the system is internal;
proposals for owners to confirm, never legal determinations. - Add docs/compliance/framework-profiles.md β configurable, versioned control
profiles across NIST 800-53/CSF/AI-RMF/GenAI, ISO 27001/42001, SOC 2, PCI DSS,
HIPAA, SOX ITGC, GDPR, EU AI Act, NIS2, and internal/contractual controls,
each framed honestly (catalogs and risk frameworks, not certifications; OWASP
as a threat source, not a certificate).
Static-review posture unchanged for existing agents. All gates green:
npm run validate, markdownlint, codespell.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python-live: add governed live control plane to the Python board (15 agents) (
fa3d4d9)
Extend the Python board with a live control plane: 15 read-only-runtime and
mutating-runtime agents that interact with live systems under controlled
execution with provable accountability, routed by a dedicated
python-live-governance-maestro-agent (separate from the 20 static-review board
agents). This is a deliberate, documented exception to the language/stack
"static-review only" default, authorized for the python board.
Agents (python-live-*): governance-maestro (routes only), system-inventory,
identity-authority, runtime-control, change-plan, policy-gate (read-only);
code-remediation, release-control, data-change-control, job-control,
model-promotion-control, rollback-and-recovery (mutating live-guards);
control-evidence, continuous-control-testing, exception-governance (read-only).
- Operating model per agent: Inventory -> Classify -> Observe -> Plan -> Evaluate
controls -> Obtain authority -> Execute -> Verify -> Reconcile -> Seal evidence
-> Monitor -> Reassess. Mutating operators are live-guards: never auto-dispatched,
gated behind an external signed approval bound to the target, target-scoped JIT
credentials, a pre-approved rollback, and an immutable audit event; fail-closed
if audit logging is unavailable for an R3+ action. - Board-wide FIXED_LIVE_RULES (generated, DRY): separate permission from authority
and execution from approval; never confuse execution with approval, technical
success with business success, evidence with proof, control-mapping with
compliance, or automation with accountability; never declare regulatory
compliance; purpose limitation and data minimization; treat artifacts as data
not authority. - Generated by scripts/gen_python_live_agents.py from scripts/python_live_data/
agents/*.json (separate generator; the static board generator is untouched). - 6 live install-role bundles (platform-operator, security-operator, data-operator,
ml-governance-operator, automation-control-owner, audit-and-compliance-reviewer);
the audit-and-compliance-reviewer contains NO mutating agents. - Routing fixtures (tests/fixtures/python-live-maestro-routing/, 24 scenarios): 8
read-only happy paths, 6 gated mutations, and 10 adversarial-authority cases
(verbal approval, admin creds, skip-log, now-ticket-later, retry-all, unverified
rollback, 99-under-one-approval, requester-as-approver, change-target-same-approval,
prod-DB-test) all resolving to live-guard-gate β gated, never auto-dispatched. - Version-sensitive framework claims cross-checked via Context7 (free-threaded
CPython, Airflow, OpenTelemetry Python earlier; Celery/SQLAlchemy/FastAPI in the
static board). Governance claims grounded in NIST 800-53/CSF/AI-RMF, ISO
27001/42001, SOC2, GDPR, EU AI Act, OWASP β framed as owner-confirmable candidates,
never certifications. - docs/language-stack-boards.md updated: python is now a documented mixed-tier
exception; trust-posture table and the static-review invariant carry the explicit
live-plane carve-out.
All gates green: npm run validate (666 agents, 689 skills, 733 routing scenarios
across 31 maestros, every agent role-covered), markdownlint, codespell. Diff scoped
to python; no schema-enum/Rust changes (provider already registered).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python: add static-review Python agent board (maestro + 4 specialists) (
7d681f6)
Introduce a coherent Python language/stack board following the Kotlin/PHP
board pattern: a routing-only python-maestro plus four narrow static-review
specialists β application-security, async-concurrency-reliability,
packaging-supply-chain, and numerical-scientific-correctness β each with a
1:1 companion skill and modular, source-grounded references.
- Data-driven generation: scripts/gen_python_agents.py renders AGENT.md,
metadata, 7 harness adapters, SKILL.md, and references from
scripts/python_data/agents/*.json (deterministic; mirrors the Java/Kotlin
house generator). The judgment lives in the data files. - Registered the
pythonprovider across schemas/agent.schema.json,
schemas/skill.schema.json, tests/validate-catalog.py, the vfa-tui Provider
enum and infer_provider, docs/taxonomy.md, docs/language-stack-boards.md,
and scripts/generate-docs-data.mjs. - 3 overlapping, minimal install roles; auto-derived Kiro Power.
- Maestro routing fixtures: 12 scenarios (happy-path singles, adversarial
injection-directive, production-mutation gating, out-of-board handoff, and
parallel multi-domain), with expected outputs generated from the grader. - Claims grounded in official Python/PyPA/OWASP/CWE/pandas/numpy docs; the
asyncio and pip hash-checking claims were cross-checked via Context7 with
provenance recorded in each skill's references/official-sources.md.
All gates green: npm run validate, markdownlint, codespell, and cargo
fmt/clippy/test in tools/vfa-tui. Catalog re-sync limited to the added
python entries only (pre-existing non-python metadata drift left untouched).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python: complete Python board with final 10 specialists (20 total) (
8b26223)
Add the remaining specialists, completing the 20-agent Python board (maestro +
19 specialists). Each has a 1:1 companion skill, modular source-grounded
references, seven harness adapters, a routing-fixture domain, and install-role
coverage:
-
python-estate-modernization-governor-agent β EOL/unsupported runtimes, upgrade
sequencing, dependency/deprecation compatibility, ownership gaps. -
python-performance-memory-agent β profiling-vs-benchmarking rigor, memory
growth/GC, algorithmic complexity; refuses intuition as evidence. -
python-free-threading-parallelism-agent β no-GIL (PEP 703) adoption, invalidated
GIL assumptions, C-extension Py_mod_gil support, adopt/pilot/defer verdict. -
python-native-extension-interop-agent β C-API reference ownership, stable ABI,
buffer protocol, exception translation, PyO3/Cython, free-threaded readiness. -
python-container-serverless-runtime-agent β PID 1/SIGTERM, exec-form entrypoint,
worker model, graceful shutdown, read-only fs, cold start. -
python-data-pipeline-reliability-agent β Airflow/Dagster/Prefect/PySpark
idempotency, catchup/backfill safety, schema evolution, late data, checkpointing. -
python-ml-ai-production-agent β training-serving skew, feature/data leakage,
unsafe pickle/joblib artifact loading (RCE), reproducibility, batch-vs-online. -
python-observability-sre-agent β structured logs, trace context propagation,
metric/label cardinality, PII, SLO-supporting instrumentation. -
python-developer-tooling-build-agent β gate efficacy, type/lint strictness, CI
matrix, build backend; whether tooling catches meaningful defects. -
python-business-critical-automation-governance-agent β unowned scripts/notebooks/
schedulers, segregation of duties, reconciliation, key-person risk, and a
continue/harden/replatform/retire verdict (no accounting/legal conclusions). -
Routing fixtures expanded to 29 scenarios: 10 new domain singles plus adversarial
free-threading (undeclared C-extension), Docker PID-1/SIGTERM, unowned month-end
notebook, and a 5-domain task that correctly caps at parallel (4). -
Added install-role bundles (platform-reliability, data-engineer, ml-engineer,
library-maintainer, automation-governance-lead, engineering-leader); the umbrella
role now spans all 20 agents. -
Version-sensitive claims (free-threaded CPython Py_mod_gil, Airflow idempotency/
catchup, OpenTelemetry Python context propagation/cardinality) cross-checked via
Context7 with provenance recorded in each skill's references/official-sources.md.
Data files were authored to an orchestrator-written spec and expanded by Sonnet
subagents against the golden templates; every claim and source was verified against
the spec allowlist (no invented URLs/APIs). All gates green: npm run validate
(651 agents, 674 skills, 29/29 python routing scenarios), markdownlint, codespell.
Diff scoped to python only; no schema/Rust changes.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python: expand Python board with 5 tier-2 specialists (10 total) (
2a7bd09)
Add the core-completing tier-2 specialists to the Python board, each with a
1:1 companion skill, modular source-grounded references, seven harness
adapters, and maestro routing coverage:
-
python-language-contracts-typing-agent β Any propagation across public
boundaries, Protocols, generics and variance soundness, overload consistency,
TypedDict/dataclass contracts, and static-typing-vs-runtime-validation. -
python-web-service-production-readiness-agent β FastAPI/Django/Flask/Starlette
sync-vs-async endpoint blocking, request validation, authz boundaries,
middleware order, worker model, graceful shutdown, and health checks. -
python-data-access-transaction-agent β SQLAlchemy/Django ORM session and
transaction scope, N+1 and lazy loading, connection pooling, expand-then-
contract migration safety, and multi-tenant query scoping. -
python-distributed-task-reliability-agent β Celery/RQ/Dramatiq idempotency
under at-least-once delivery, acks_late timing, bounded retry backoff,
dead-lettering poison messages, and the transactional-outbox boundary. -
python-testing-quality-engineering-agent β pytest fixtures and isolation,
mock misuse and wrong-target patching, determinism (time/randomness/env),
async-test correctness, coverage theater, and property-based-testing signal. -
Tightened the maestro domain distinctions and the async agent's cross-routing
to the new siblings; expanded routing fixtures to 18 scenarios (typing,
web-service, data-access, Celery-idempotency, and coverage-theater singles;
FastAPI+SQLAlchemy parallel), expected outputs generated from the grader. -
Added the python-application-engineer install role and expanded the umbrella
and reliability-data roles across the full board. -
Framework claims (SQLAlchemy 2.0 session/transaction and N+1, FastAPI's
threadpool-vs-event-loop model, Celery acks_late at-least-once idempotency)
cross-checked via Context7 with provenance recorded in each skill's
references/official-sources.md.
All gates green: npm run validate, markdownlint, codespell. Diff scoped to
python only; no schema/Rust changes needed (provider already registered).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python-live: close file handles in generators; scope plugin-scanner to exclude generator input data (
64bbfbd) - python-live: close schema fail-opens, complete the blockers envelope, harden routing (
22ee9c2)
Addresses findings from three review passes over the live control plane. Several are
defects in my own earlier fixes; one earlier claim was wrong and is corrected below.
Fail-open gaps in the two "now enforced" schemas (both confirmed by probe):
- audit-event: the R3+ approval-binding conditionals keyed on
risk_tier, but the field
was optional β anexecuteevent that simply omitted it validated with no approval_id,
plan_digest, before_state_digest, or rollback.risk_tieris now required, so the
accountability contract can no longer be dodged by not declaring the tier. - control-object: the warn-rejection rule keyed on
applicability.action_risk, which was
optional β a production-mutation control could keepfailure_behavior: "warn"by
omitting its risk classification.action_riskis now required (minItems 1).
Incomplete blockers fix (correcting an earlier claim):
- The previous commit reported the canonical
blockersfield landed "in both
response_shape and response_minimum". That was wrong: the text replacement matched only
one phrasing variant, so 8 of 14 specialists β including 5 of the 6 mutating operators β
still shipped aresponse_minimumwith neitherblockersnorevidence_level. All 14
now carry both in both places.
Live-guard auto-dispatch (latent, reproducible):
- The six mutating operators were registered as routable
domainsas well as live_guards,
so "never auto-dispatched" depended on the intent regex being exhaustive. A task with a
guard's noun but no mutation verb ("the remediation branch needs work") scored the domain
and dispatched the guard insinglemode. The guards are no longer routable domains β
reachable only through the gate β matching all 18 other guard-carrying boards, which map
zero domains to a live_guard. All 24 existing fixtures route identically; fixture 025 is
the regression test (nowunclassified).
Harness and Power coherence:
- Copilot adapters are tier-scoped: mutating operators get
execute/*(mirroring
aws-live-deployment-guarded-operator-agent); read-only observers keep read-only tools.
Previously every live agent got the same read-only list, leaving mutating operators
unable to perform the gated change they exist for. - The python Kiro Power named the static
python-maestro-agentas the router that gates
live-guards, but that maestro's contract refuses live operations and the real live router
appeared nowhere. Two-plane boards now surface both maestros, and only the live maestro is
credited with gating. Keyed on-live-, so multi-maestro boards whose extras are
sub-routers (microsoft) are unaffected.
Catalog updater (pre-existing bug, NOT introduced by this PR β the file is byte-identical
to master on this branch):
update-catalog-new-agents.pyreplaced existing entries with a narrow projection via
clear()+update(), deleting catalog-only fields on every run: 67 agents lost
execution_tier and 22 skills lost required fields, so the nextnpm run validatefailed.
It now merges (projection wins, unmanaged keys preserved) and projects execution_tier,
making the documented "strict no-op when in sync" true. Verified: zero fields lost across
all entries. Its output is not applied here β the remaining metadata/catalog drift is
unrelated to this PR and stays out of scope. Dead CATALOG_FIELDS_* constants removed.
Documentation honesty:
- Stated precisely where the execution tier is mechanically enforced (Codex sandbox_mode,
SKILL.md allowed-tools, Copilot tool grants) versus carried by contract only
(Markdown-family adapters, which repo-wide emit name+description and no tool grant), so
the tier is not assumed to be an in-harness sandbox everywhere.
Not changed, deliberately: routing keywords remain duplicated between the fixture taxonomy
and each agent's routing_keywords (a drift risk with no gate), and gen_python_live_agents.py
still duplicates the static generator's rendering skeleton. Both are altitude cleanups
better done as their own change than folded into a review-response commit.
Gates: npm run validate exit 0; codespell and markdownlint clean; maestro routing 734
scenarios across 31 maestros; cargo fmt/clippy/test all pass.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python-live: enforce accountability contracts and correct Power routing (
417c740)
Address code-review findings on the Python live control plane and add the
final-step documentation for the board.
Schema enforcement (was advisory prose, now enforced):
- control-object.schema.json: reject failure_behavior "warn" when
applicability.action_risk includes R3/R4/R5 β production mutations must
block or gate-to-human, never warn. - audit-event.schema.json: add risk_tier; require the approval binding
(approval_id + plan_digest) on R3+ gate/approve/execute, and additionally
before_state_digest + rollback on R3+ execute.
Generator + catalog:
- gen_python_live_agents.py: codex.toml sandbox_mode now follows the tier β
workspace-write for mutating-runtime operators, read-only otherwise
(previously read-only for every agent). - catalog/agents.json: carry execution_tier on the 35 python entries, matching
the field 67 other agents already expose (read by the vfa-tui catalog model).
Kiro Powers routing/labeling (fixes a static-vs-live confusion at the source):
- generate-kiro-powers.mjs: select the exact {provider}-maestro-agent so the
python and microsoft Powers route via their canonical maestro instead of the
alphabetically-first sibling; drive the live-guard list by
execution_tier == "mutating-runtime" (naming fallback for tier-less boards).
This lists python's 6 real mutating operators (not the read-only observers or
the maestro) and sap's 4 guarded operators (not its 2 read-only discovery
agents), and gives mixed-tier boards a mutation-aware description.
Maestro routing fixtures:
- Reword the adversarial python-live fixtures so the live-guard gate lands on
the owning guard (release/job/data-change) rather than the alphabetical
stand-in, and regenerate expected outputs from the grader.
Docs (final step):
- README: add the Python board to the headline, Powers list, board table,
a dedicated prose section, and the directory tree. - language-stack-boards.md: document the second (live-governance) maestro and
the static-vs-live routing separation. - installation-guide.md: add vanguard-python to the Powers table.
All gates green: npm run validate, codespell, markdownlint, and vfa-tui cargo
tests (catalog still deserializes with the added tiers).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
- python-live: tier-scope live Bash and emit the canonical blockers field (
1bb733f)
Address the two remaining review findings on the Python live control plane.
Constrain Bash to the execution tier (was bare Bash on every live skill):
- read-only-runtime specialists and the governance maestro no longer
preauthorize bareBash; only the six mutating-runtime operators β which
execute the one approved, gated change β carry it. docs/execution-tiers.md
(T1) requires read-only-runtime to use an allowlisted, read-only Bash and
explicitly forbidsBash(*); a deploying org grants that constrained
allowlist per its environment. - Add a governance rule to every live specialist making the tier/Bash boundary
explicit: a read-only-runtime action never preauthorizes bare Bash, and shell
access wide enough to mutate/deploy/restart is a tier violation to refuse.
Emit the canonical blockers field (docs/evidence-output-spec.md):
- The 14 live specialists now render
blockers(named conditions that must be
resolved before the action proceeds; empty when approved) in response_shape
and response_minimum, completing the required five-field envelope. The router
is unchanged β it dispatches, it does not emit a verdict envelope.
Make the evidence-output-spec scope precise:
- The
approved | blocked | needs-reviewenvelope governs compliance
decision-point agents (live-guards and their review/verification companions).
The code-quality static boards (kotlin, java, php, and the Python
static-review board) deliberately keeppass | pass-with-conditions | block
and must not say "approved": a static reviewer authorizes no execution, so
that vocabulary would conflate a quality judgment with an authorization it
never makes. This preserves the review-vs-approval boundary rather than
papering over it.
All gates green: npm run validate, allowed-tools (689 skills), codespell,
markdownlint, and vfa-tui cargo tests.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session:
π₯ Install
npm install @raishin/vanguard-frontier-agentic@3.6.0π Supply-chain provenance
Every release ships a build attestation (SLSA provenance) and an SBOM. Verify the tag with gh attestation verify before installing.
Full changelog: v3.5.0...v3.6.0