provisioning-code/.ncl-cache/c37a1303e9aaea2b08bd960f34bacab0fd290292c072cc0fd13056716347ab2b.json

119 lines
3.9 KiB
JSON

{
"guards": [],
"id": "provisioning-coverage",
"postconditions": [
"Provider function coverage counted per provider (target: 25 functions each)",
"Taskserv completeness checked (metadata.ncl + contracts.ncl presence and validity)",
"Coverage report generated with maturity score per extension and ecosystem totals"
],
"preconditions": [
"extensions/ directory exists",
"nickel is available in PATH",
"./scripts/ontoref is executable"
],
"steps": [
{
"action": "catalog_all_providers",
"actor": "Agent",
"cmd": "ls extensions/providers/ 2>/dev/null | sort",
"depends_on": [],
"id": "list_providers",
"note": "List all provider extension directories.",
"on_error": {
"backoff_s": 5,
"max": 3,
"strategy": "Continue"
}
},
{
"action": "catalog_all_taskservs",
"actor": "Agent",
"cmd": "ls extensions/taskservs/ 2>/dev/null | sort",
"depends_on": [],
"id": "list_taskservs",
"note": "List all taskserv extension directories.",
"on_error": {
"backoff_s": 5,
"max": 3,
"strategy": "Continue"
}
},
{
"action": "verify_provider_interface_completeness",
"actor": "Agent",
"cmd": "for p in extensions/providers/*/; do echo \"--- $(basename $p)\"; rg 'fn ' $p --include='*.rs' -l | head -1 | xargs rg 'pub fn' 2>/dev/null | wc -l | xargs echo 'functions:'; done",
"depends_on": [
{
"kind": "OnSuccess",
"step": "list_providers"
}
],
"id": "check_provider_functions",
"note": "For each provider, count implemented public functions. Target: 25 functions per the provider interface contract.",
"on_error": {
"backoff_s": 5,
"max": 3,
"strategy": "Continue"
}
},
{
"action": "verify_taskserv_contracts",
"actor": "Agent",
"cmd": "for ts in extensions/taskservs/*/; do name=$(basename $ts); has_meta=$(test -f $ts/metadata.ncl && echo yes || echo NO); has_contracts=$(test -f $ts/contracts.ncl && echo yes || echo NO); echo \"$name: metadata=$has_meta contracts=$has_contracts\"; done",
"depends_on": [
{
"kind": "OnSuccess",
"step": "list_taskservs"
}
],
"id": "check_taskserv_metadata",
"note": "For each taskserv, verify it has metadata.ncl and contracts.ncl. Missing files indicate incomplete extension.",
"on_error": {
"backoff_s": 5,
"max": 3,
"strategy": "Continue"
}
},
{
"action": "typecheck_taskserv_metadata",
"actor": "Agent",
"cmd": "find extensions/taskservs -name 'metadata.ncl' | xargs -I{} sh -c 'nickel typecheck {} > /dev/null 2>&1 && echo \"OK: {}\" || echo \"INVALID: {}\"'",
"depends_on": [
{
"kind": "Always",
"step": "check_taskserv_metadata"
}
],
"id": "check_taskserv_nickel_validity",
"note": "Typecheck all taskserv metadata.ncl files. Invalid metadata cannot be used by the platform.",
"on_error": {
"backoff_s": 5,
"max": 3,
"strategy": "Continue"
}
},
{
"action": "write_coverage_output",
"actor": "Agent",
"cmd": "./scripts/ontoref describe provisioning --format coverage",
"depends_on": [
{
"kind": "Always",
"step": "check_provider_functions"
},
{
"kind": "Always",
"step": "check_taskserv_nickel_validity"
}
],
"id": "generate_coverage_report",
"note": "Generate the maturity map: provider coverage (N/25 functions), taskserv completeness, overall ecosystem coverage score.",
"on_error": {
"backoff_s": 5,
"max": 3,
"strategy": "Stop"
}
}
],
"trigger": "Generate a maturity map of the provisioning extension ecosystem"
}