Initial commit: a0_software_orchestrator v1.0
- Auto-Registration-Bug behoben (register_project/get_project_id/resolve_project Trennung) - 25 Tests gruen (Pytest) - block_compactor-Tool refactored (Option B: Soft-Check statt Hard-Block) - 4 Restbaustellen gefixt - DB-Schema: plugin_settings-Tabelle hinzugefuegt - 3 Schattenprojekte aus DB geloescht - Plan v3 + Refactor-Plan + Worklog dokumentiert
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
"""Validators for plugin configuration and project artifacts."""
|
||||
import os
|
||||
import yaml
|
||||
from typing import Dict, Any, List
|
||||
|
||||
|
||||
def validate_config(config_path: str) -> Dict[str, Any]:
|
||||
"""Validate default_config.yaml and return errors."""
|
||||
errors = []
|
||||
if not os.path.exists(config_path):
|
||||
return {"valid": False, "errors": ["config file not found"]}
|
||||
try:
|
||||
with open(config_path, "r") as f:
|
||||
config = yaml.safe_load(f)
|
||||
if not isinstance(config, dict):
|
||||
errors.append("config is not a mapping")
|
||||
except Exception as e:
|
||||
errors.append(f"YAML parse error: {e}")
|
||||
return {"valid": len(errors) == 0, "errors": errors}
|
||||
|
||||
|
||||
def validate_project_init(project_root: str) -> List[str]:
|
||||
"""Validate that a project has been properly initialized."""
|
||||
required_dirs = [
|
||||
".a0",
|
||||
"specs/current",
|
||||
"docs",
|
||||
"deploy",
|
||||
]
|
||||
missing = []
|
||||
for d in required_dirs:
|
||||
if not os.path.isdir(os.path.join(project_root, d)):
|
||||
missing.append(d)
|
||||
return missing
|
||||
Reference in New Issue
Block a user