Loading...
Loading...
Configurable gate validation skill. Use when running repository-local gate rules from gate_rules.yaml (command/structural/eda-contract), checking legacy experiment registry safety, or enforcing close-gate fail-closed validation.
npx skill4agent add arthur0824hao/skills skill-system-gate| Task Intent | Operation | Primary Backend | Use When |
|---|---|---|---|
| Validate repository artifacts against configurable gate rules | | | Before close-gate decisions or deterministic policy checks |
| Validate experiment implementation and logs against gate rules | | | Legacy GNN/FraudDetect pipeline checks |
| Check whether registry state is safe for rerun/reset | | | Before any manual reset/rerun action |
| View queue health and state counts | | | Need a quick dashboard of current experiment states |
python3 scripts/gate_validate.py --rules config/gate_rules.yaml --artifact-root .gate_rules.yamlcommandstructuraleda-contractscripts/validate_exp.sh <exp_name> [phase_root]gate_bank.jsonsource_containssource_not_containsstderr_scanfile_existsfile_min_sizescripts/check_registry.sh <exp_name> [phase_root]RUNNINGsafe_to_resetscripts/status.sh [phase_root]validate-experimentRUNNING{
"schema_version": "2.0",
"id": "skill-system-gate",
"version": "1.0.0",
"capabilities": ["configurable-gate", "experiment-gate", "registry-safety", "experiment-status"],
"effects": ["fs.read", "db.read", "proc.exec"],
"operations": {
"validate-experiment": {
"description": "Validate experiment source artifacts and logs against gate_bank rules and return a pass/fail verdict.",
"input": {
"exp_name": { "type": "string", "required": true, "description": "Experiment directory name under experiments/" },
"phase_root": { "type": "string", "required": false, "description": "Phase directory path", "default": "/datas/store162/arthur0824hao/Study/GNN/FraudDetect/SubProject/Phase3" }
},
"output": {
"description": "Gate validation markdown plus machine-readable verdict.",
"fields": { "passed": "boolean", "errors": "number", "warnings": "number" }
},
"entrypoints": {
"unix": ["bash", "scripts/validate_exp.sh", "{exp_name}", "{phase_root}"]
}
},
"validate": {
"description": "Run configurable gate_rules.yaml checks and emit pass/fail with per-rule results.",
"input": {
"rules": { "type": "string", "required": false, "description": "Path to gate rules file", "default": "config/gate_rules.yaml" },
"artifact_root": { "type": "string", "required": false, "description": "Working directory for rule execution", "default": "." }
},
"output": {
"description": "Gate verdict with per-rule details.",
"fields": { "passed": "boolean", "errors": "number", "warnings": "number" }
},
"entrypoints": {
"unix": ["python3", "scripts/gate_validate.py", "--rules", "{rules}", "--artifact-root", "{artifact_root}"]
}
},
"verify-registry": {
"description": "Check registry state safety and recommend whether reset/rerun is safe without mutating state.",
"input": {
"exp_name": { "type": "string", "required": true, "description": "Experiment name in registry" },
"phase_root": { "type": "string", "required": false, "description": "Phase directory path", "default": "/datas/store162/arthur0824hao/Study/GNN/FraudDetect/SubProject/Phase3" }
},
"output": {
"description": "Registry safety markdown plus recommendation payload.",
"fields": { "found": "boolean", "status": "string", "safe_to_reset": "boolean" }
},
"entrypoints": {
"unix": ["bash", "scripts/check_registry.sh", "{exp_name}", "{phase_root}"]
}
},
"status": {
"description": "Show current registry dashboard with counts by status and running experiment details.",
"input": {
"phase_root": { "type": "string", "required": false, "description": "Phase directory path", "default": "/datas/store162/arthur0824hao/Study/GNN/FraudDetect/SubProject/Phase3" }
},
"output": {
"description": "Registry status dashboard and aggregate counters.",
"fields": { "running": "number", "needs_rerun": "number", "completed": "number", "total": "number" }
},
"entrypoints": {
"unix": ["bash", "scripts/status.sh", "{phase_root}"]
}
}
},
"stdout_contract": {
"last_line_json": true
}
}