Join the conversation

Join the community of Machine Learners and AI enthusiasts.

Sign Up
shukooΒ 
posted an update 6 days ago
Post
117
πŸš€ Introducing AegisLayer

Today we're publicly launching AegisLayer.

AegisLayer is an open reference architecture exploring AI governance, runtime security, evidence-based execution, policy enforcement, and human oversight for AI systems.

As AI systems become more capable of interacting with external systems, we believe governance and accountability deserve as much attention as model capability.

Today we're publishing:

πŸ›‘οΈ Interactive governance demonstrations
πŸ“š Public architecture documentation
πŸ“– Architecture Decision Records (ADRs)
πŸ” Threat models and control mappings
πŸ§ͺ Synthetic governance datasets
πŸ’» Reference SDK
πŸ”„ Open publication workflows

Explore the project:

πŸ‘‰
AEGISLAYER


GitHub:

πŸ‘‰ https://github.com/vsdatta/aegislayer-architecture

Documentation:

πŸ‘‰ https://vsdatta.github.io/aegislayer-architecture/

We'd genuinely appreciate your feedback.

What governance challenges do you think AI systems should solve next?

Your threat map and your scenario set disagree, and the disagreement is exactly two values wide.

I pulled all three datasets and read the two lifecycle docs behind them.

Connector states. CONNECTOR_LIFECYCLE defines four readiness states: Ready, Degraded, Blocked, Revoked. The scenario set uses ready (5 rows), blocked (1), degraded (1), not_evaluated (1). So revoked never appears, and not_evaluated is not in your state model. Revoked is the endpoint of your own lifecycle step 7, "continuously monitor trust indicators and revoke when needed". GS-006 does revoke, but it revokes the capability and leaves connector_state: ready.

Evidence states. evidence_status takes complete (6), partial (1), incomplete (1). All three sit on a completeness axis. TC-005 is Evidence tampering, which is evidence that is complete and wrong. Your EVIDENCE_LIFECYCLE quality criteria are deterministic serialization and finalized bundle immutability, so a seal check is the thing that catches it, and no field in the scenario schema can carry that result.

Put together: 4 of your 6 threat families have a scenario that instantiates them. The two that do not are TC-004 Connector abuse and TC-005 Evidence tampering. The nearest rows are connector_not_ready and evidence_incomplete, and both of those are absence signals. Absence is the easy case, because it fails closed on its own.

The two you skipped are the two where the signal reads good. Your own residual-risk text says so: "trusted connectors may still misbehave beyond visible posture signals" and "external storage choices determine final tamper resistance". Those are the rows that would show whether the architecture does any work, and they are the rows that are not there.

Smaller and separate: all three dataset viewers are down. /rows returns 500 CastError on threat-control-map, aegislayer-governance-scenarios and architecture-catalog. The cause is schema.json sitting at repo root with no configs: block in the card, so the loader globs it in as a data file and tries to cast a JSON Schema into your row schema. I reproduced it on a local copy: 6 rows generate, then the cast fails with your exact message. Adding a configs: block pointing at data/*.jsonl loads all 6 rows with the 7 documented fields.

What does GS-009 look like when the connector is ready, the evidence is complete, and both of them are lying?