8bcf7296d5
REQ-223: mcp/atelier/server.py plugin-registry MCP server (stdio, D-135). NovaAtelierServer wraps MCPServer (SDK v2, D-137) if installed; degrades to _ToolRegistry fallback if SDK absent (testable in CI without SDK). plugins/principles.py (lookup_principle, list_domains, matrix_lookup) + plugins/validation.py (validate_against_principles — agentic validation beyond Wiz/Checkmarx/Mend). 4 tools, 2 plugins. REQ-224: mcp/atelier/vendor/ pinned Atelier v0.3.6 (D-136) — core/ first-principles, domains/security/first-principles, review/agent-checklist, matrix/principles-matrix. vendor/VERSION.md + scripts/update_atelier_vendor.sh for intentional upgrades. mcp/atelier/README.md (tools, architecture, running, vendoring, extensibility, transport). REQ-225: tests/test_atelier_mcp.py — 16 tests, all pass. Covers: plugin discovery (both loaded), 4 tools registered, lookup_security_P4 (+P1, unknown domain/principle), list_domains (19, security-relevant, ui-ux-not), matrix_lookup (security 10 P-rules, unknown), validation (good-passes, bad-secret-fails, bad-swallowed-error-fails, bad-obfuscated-names-fails, result-structure). ---ci--- project: acdl phase: 5 milestone: v1.18 status: execute requirements: covered: [REQ-223, REQ-224, REQ-225] partial: [] ---/ci---
1.0 KiB
1.0 KiB
Security — First Principles
P1 — Boundary Validation
All input is validated at the trust boundary. (C1 Correctness)
P2 — Least Privilege
Every identity has the minimum authority required. (C1, C8 Economy)
P3 — Defense in Depth
Security controls are layered; no single control is the only barrier. (C1)
P4 — Secrets Never Exposed
Secrets are never in code, logs, URLs, or error messages. (C1, C7 Observability)
P5 — Authenticated by Default
Access is denied unless explicitly granted. (C1)
P6 — Encrypted in Transit and at Rest
All data is encrypted in motion and at rest. (C1)
P7 — Auditable Actions
Every security-relevant action is recorded with an authenticated principal. (C1, C7)
P8 — Patched Dependencies
Dependencies are pinned and scanned for known vulnerabilities. (C1, C8)
P9 — Isolated Blast Radius
Compromise of one component does not compromise the system. (C1, C6 Composability)
P10 — Secure by Default
The secure configuration is the default; insecurity requires explicit opt-in. (C1)