{"id":"023deb59-85eb-49d5-9a09-7cd7271bbddf","slug":"bennettphil-builder-test-driven-builder-v1-unified","name":"test-driven-builder-v1-unified","description":"A builder that generates Agent Skills using a unified test runner with declarative test tables and property-based validation instead of separate script-based tests.","canonicalUrl":"https://www.xpersona.co/skill/bennettphil-builder-test-driven-builder-v1-unified","sourceUrl":"https://github.com/BennettPhil/builder-test-driven-builder-v1-unified","homepage":null,"source":"GITHUB_OPENCLEW","vendor":{"slug":"bennettphil","label":"Bennettphil","url":"https://github.com/BennettPhil/builder-test-driven-builder-v1-unified"},"protocols":["OPENCLEW"],"capabilities":["be","run"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-04-15T02:14:40.648Z","freshnessLabel":"Apr 15, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Apr 15, 2026"},{"label":"Vendor","value":"Bennettphil"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"docs_crawl","label":"Crawlable docs","value":"6 indexed pages on the official domain","category":"integration","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true,"metadata":{}},{"factKey":"vendor","label":"Vendor","value":"Bennettphil","category":"vendor","href":"https://github.com/BennettPhil/builder-test-driven-builder-v1-unified","sourceUrl":"https://github.com/BennettPhil/builder-test-driven-builder-v1-unified","sourceType":"profile","confidence":"medium","observedAt":"2026-04-15T02:14:40.648Z","isPublic":true,"metadata":{}},{"factKey":"protocols","label":"Protocol compatibility","value":"OpenClaw","category":"compatibility","href":"https://www.xpersona.co/api/v1/agents/bennettphil-builder-test-driven-builder-v1-unified/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/bennettphil-builder-test-driven-builder-v1-unified/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-04-15T02:14:40.648Z","isPublic":true,"metadata":{}},{"factKey":"handshake_status","label":"Handshake status","value":"UNKNOWN","category":"security","href":"https://www.xpersona.co/api/v1/agents/bennettphil-builder-test-driven-builder-v1-unified/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/bennettphil-builder-test-driven-builder-v1-unified/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true,"metadata":{}}],"highlights":["Trust evidence available"],"agentCard":{"name":"test-driven-builder-v1-unified","description":"A builder that generates Agent Skills using a unified test runner with declarative test tables and property-based validation instead of separate script-based tests.","source":"GITHUB_OPENCLEW","sourceId":"github:1152811381","repository":"https://github.com/BennettPhil/builder-test-driven-builder-v1-unified","documentation":"https://www.xpersona.co/skill/bennettphil-builder-test-driven-builder-v1-unified/agent/bennettphil-builder-test-driven-builder-v1-unified","protocols":["OPENCLEW"],"capabilities":["be","run"],"languages":["typescript"],"install":{"command":"git clone https://github.com/BennettPhil/builder-test-driven-builder-v1-unified.git","ecosystem":"git"},"examples":[{"kind":"example","language":"json","snippet":"{\n  \"skill_name\": \"<skill-name>\",\n  \"test_groups\": [\n    {\n      \"group\": \"happy_path\",\n      \"cases\": [\n        {\n          \"name\": \"basic usage\",\n          \"command\": \"<command-to-test>\",\n          \"assertions\": {\n            \"exit_code\": 0,\n            \"stdout_contains\": [\"expected output\"],\n            \"stdout_not_contains\": [\"error\", \"warning\"],\n            \"stderr_empty\": true\n          }\n        }\n      ]\n    },\n    {\n      \"group\": \"edge_cases\",\n      \"cases\": [\n        {\n          \"name\": \"empty input\",\n          \"command\": \"<command-with-empty-input>\",\n          \"assertions\": {\n            \"exit_code\": 1,\n            \"stderr_contains\": [\"usage\"]\n          }\n        }\n      ]\n    },\n    {\n      \"group\": \"property_checks\",\n      \"cases\": [\n        {\n          \"name\": \"output is valid JSON\",\n          \"command\": \"<command>\",\n          \"assertions\": {\n            \"exit_code\": 0,\n            \"output_is_valid_json\": true\n          }\n        },\n        {\n          \"name\": \"idempotent on repeated runs\",\n          \"command\": \"<command>\",\n          \"repeat\": 3,\n          \"assertions\": {\n            \"all_outputs_identical\": true\n          }\n        }\n      ]\n    }\n  ]\n}"},{"kind":"example","language":"bash","snippet":"#!/usr/bin/env bash\nset -euo pipefail\nSCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\nMANIFEST=\"$SCRIPT_DIR/test_manifest.json\"\nPASS=0; FAIL=0; SKIP=0\n\nrun_case() {\n  local name=\"$1\" cmd=\"$2\" assertions=\"$3\" repeat=\"${4:-1}\"\n  local outputs=()\n  for ((i=0; i<repeat; i++)); do\n    local stdout stderr exit_code\n    stdout=$(eval \"$cmd\" 2>\"/tmp/test_stderr_$$\" || true)\n    exit_code=$?\n    stderr=$(cat \"/tmp/test_stderr_$$\")\n    outputs+=(\"$stdout\")\n    # Check each assertion type from the JSON\n    # exit_code, stdout_contains, stderr_contains, etc.\n  done\n  # For property checks like all_outputs_identical, compare all outputs\n}\n\n# Parse manifest with python3 -c for JSON processing\n# Iterate groups and cases, call run_case for each"}]}}