chore: init vm-cc compliance scaffold
This commit is contained in:
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.DS_Store
|
||||||
|
*.tmp
|
||||||
|
*.log
|
||||||
|
node_modules/
|
||||||
|
target/
|
||||||
|
venv/
|
||||||
|
__pycache__/
|
||||||
0
00-frameworks/.gitkeep
Normal file
0
00-frameworks/.gitkeep
Normal file
0
10-controls/.gitkeep
Normal file
0
10-controls/.gitkeep
Normal file
0
20-collectors/.gitkeep
Normal file
0
20-collectors/.gitkeep
Normal file
0
30-evidence/.gitkeep
Normal file
0
30-evidence/.gitkeep
Normal file
0
40-rules/.gitkeep
Normal file
0
40-rules/.gitkeep
Normal file
0
50-reports/.gitkeep
Normal file
0
50-reports/.gitkeep
Normal file
0
60-proofs/.gitkeep
Normal file
0
60-proofs/.gitkeep
Normal file
0
70-violations/.gitkeep
Normal file
0
70-violations/.gitkeep
Normal file
0
80-remediation/.gitkeep
Normal file
0
80-remediation/.gitkeep
Normal file
0
90-automation/.gitkeep
Normal file
0
90-automation/.gitkeep
Normal file
34
README.md
Normal file
34
README.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# VaultMesh Continuous Compliance (vm-cc)
|
||||||
|
|
||||||
|
vm-cc is the continuous compliance and evidence orchestration layer. It ingests evidence from skills, ops, ledger, MCP, and contracts receipts, evaluates rules, and produces reports/proofs without duplicating the command-center control plane.
|
||||||
|
|
||||||
|
## Scope vs command-center
|
||||||
|
- command-center: fleet control plane, EventEnvelope transport, runtime orchestration, receipt export.
|
||||||
|
- vm-cc: compliance intake, rule evaluation, reporting, proofs; consumes receipts, ledger attestations, and ops evidence.
|
||||||
|
|
||||||
|
## Layout
|
||||||
|
- config/: source/rule/redaction/schedule configs
|
||||||
|
- schemas/: JSON/YAML schemas for evidence, rules, reports
|
||||||
|
- 00-frameworks/: frameworks and mappings (e.g., CIS→rules)
|
||||||
|
- 10-controls/: control definitions
|
||||||
|
- 20-collectors/: collectors to pull evidence from vm-skills, ops, ledger, mcp
|
||||||
|
- 30-evidence/: raw evidence drops (per-run folders)
|
||||||
|
- 40-rules/: executable rules
|
||||||
|
- 50-reports/: human-readable reports
|
||||||
|
- 60-proofs/: signed/attested artifacts
|
||||||
|
- 70-violations/: findings and escalations
|
||||||
|
- 80-remediation/: playbooks/automation for fixes
|
||||||
|
- 90-automation/: pipelines/glue for end-to-end runs
|
||||||
|
- scripts/: thin CLI wrappers to orchestrate collect → evaluate → report → sign
|
||||||
|
|
||||||
|
## Rule result contract (example)
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"rule_id": "authority-hierarchy",
|
||||||
|
"passed": true,
|
||||||
|
"severity": "HIGH",
|
||||||
|
"timestamp": "2025-12-27T12:00:00Z",
|
||||||
|
"evidence": ["30-evidence/2025-12-27/authority.json"],
|
||||||
|
"details": { "checked_transitions": 42 }
|
||||||
|
}
|
||||||
|
```
|
||||||
21
config/redaction.yaml
Normal file
21
config/redaction.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Redaction policy for evidence before reporting/proofs.
|
||||||
|
# Define fields to drop or mask by source.
|
||||||
|
|
||||||
|
vm_skills:
|
||||||
|
drop:
|
||||||
|
- "*.png" # example if screenshots are present
|
||||||
|
mask:
|
||||||
|
- "**/secrets/**"
|
||||||
|
|
||||||
|
ops:
|
||||||
|
drop: []
|
||||||
|
mask:
|
||||||
|
- "**/private_keys/**"
|
||||||
|
|
||||||
|
vm_ledger:
|
||||||
|
drop: []
|
||||||
|
mask: []
|
||||||
|
|
||||||
|
vm_mcp:
|
||||||
|
drop: []
|
||||||
|
mask: []
|
||||||
24
config/rules.yaml
Normal file
24
config/rules.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Rule registry. Each entry binds a rule id to a source and evaluation script.
|
||||||
|
# Keep rule definitions in 40-rules/; this file ties them to schedules and severity.
|
||||||
|
|
||||||
|
rules:
|
||||||
|
- id: authority-hierarchy
|
||||||
|
severity: HIGH
|
||||||
|
entry: "40-rules/authority_hierarchy.yaml"
|
||||||
|
evidence:
|
||||||
|
- vm_mcp
|
||||||
|
- vm_ledger
|
||||||
|
|
||||||
|
- id: skills-health
|
||||||
|
severity: MEDIUM
|
||||||
|
entry: "40-rules/skills_health.yaml"
|
||||||
|
evidence:
|
||||||
|
- vm_skills
|
||||||
|
- ops
|
||||||
|
|
||||||
|
- id: receipts-schema
|
||||||
|
severity: HIGH
|
||||||
|
entry: "40-rules/receipts_schema.yaml"
|
||||||
|
evidence:
|
||||||
|
- vm_contracts
|
||||||
|
- vm_ledger
|
||||||
13
config/schedules.yaml
Normal file
13
config/schedules.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Schedules for rule execution. Cron-like or duration strings.
|
||||||
|
|
||||||
|
schedules:
|
||||||
|
- name: hourly-critical
|
||||||
|
every: "1h"
|
||||||
|
rules:
|
||||||
|
- authority-hierarchy
|
||||||
|
- receipts-schema
|
||||||
|
|
||||||
|
- name: daily-health
|
||||||
|
every: "24h"
|
||||||
|
rules:
|
||||||
|
- skills-health
|
||||||
33
config/sources.yaml
Normal file
33
config/sources.yaml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Define evidence sources and where collectors should look.
|
||||||
|
# Keep paths external to code so collectors are layout-agnostic.
|
||||||
|
|
||||||
|
vm_skills:
|
||||||
|
path: "../vm-skills"
|
||||||
|
evidence:
|
||||||
|
- "*/outputs/status_matrix.json"
|
||||||
|
- "*/outputs/audit_report.md"
|
||||||
|
- "*/outputs/PROOF.json"
|
||||||
|
- "*/outputs/ROOT.txt"
|
||||||
|
|
||||||
|
ops:
|
||||||
|
path: "../ops"
|
||||||
|
evidence:
|
||||||
|
- "20-identity/**"
|
||||||
|
- "60-backups/**"
|
||||||
|
- "70-audits/**"
|
||||||
|
|
||||||
|
vm_ledger:
|
||||||
|
path: "../vm-ledger"
|
||||||
|
evidence:
|
||||||
|
- "log/entries.cborseq"
|
||||||
|
- "ledger-cli verify --format json" # command invocation placeholder
|
||||||
|
|
||||||
|
vm_mcp:
|
||||||
|
path: "../vm-mcp"
|
||||||
|
evidence:
|
||||||
|
- "governance/constitution.lock"
|
||||||
|
|
||||||
|
vm_contracts:
|
||||||
|
path: "../vm-contracts"
|
||||||
|
evidence:
|
||||||
|
- "receipt_v1.schema.json"
|
||||||
0
schemas/.gitkeep
Normal file
0
schemas/.gitkeep
Normal file
0
scripts/.gitkeep
Normal file
0
scripts/.gitkeep
Normal file
Reference in New Issue
Block a user