{"id":"2577c0e2-916a-41eb-9f4e-2d45ce5f3936","slug":"crewai-crzyc0d3r-crewai-task-guardrails","name":"crewai-task-guardrails","description":"Reusable CrewAI task guardrails (length, JSON schema, placeholders, sections) with the retry contract demonstrated offline.","canonicalUrl":"https://www.xpersona.co/skill/crewai-crzyc0d3r-crewai-task-guardrails","sourceUrl":"https://github.com/crzyc0d3r/crewai-task-guardrails","homepage":null,"source":"GITHUB_REPOS","vendor":{"slug":"crzyc0d3r","label":"Crzyc0d3r","url":"https://github.com/crzyc0d3r/crewai-task-guardrails"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-10-09T13:16:28.074Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Crzyc0d3r"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Crzyc0d3r","href":"https://github.com/crzyc0d3r/crewai-task-guardrails","sourceUrl":"https://github.com/crzyc0d3r/crewai-task-guardrails","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T13:16:28.080Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-crewai-task-guardrails/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-crewai-task-guardrails/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T13:16:28.080Z","isPublic":true},{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","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},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-crewai-task-guardrails/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-crewai-task-guardrails/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["Trust evidence available"],"agentCard":{"name":"crewai-task-guardrails","description":"Reusable CrewAI task guardrails (length, JSON schema, placeholders, sections) with the retry contract demonstrated offline.","source":"GITHUB_REPOS","sourceId":"crewai:1359720234","repository":"https://github.com/crzyc0d3r/crewai-task-guardrails","documentation":"https://www.xpersona.co/skill/crewai-crzyc0d3r-crewai-task-guardrails/agent/crewai-crzyc0d3r-crewai-task-guardrails","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/crzyc0d3r/crewai-task-guardrails.git","ecosystem":"git"},"examples":[{"kind":"example","language":"python","snippet":"def guardrail(output) -> tuple[bool, Any]:\n    ...\n    return (True, validated_output)     # accepted; a str result replaces task_output.raw\n    return (False, \"what went wrong\")   # rejected; the message goes back to the agent"},{"kind":"example","language":"text","snippet":"crewai-task-guardrails/\n├── guardrails/\n│   ├── __init__.py       re-exports the factories\n│   ├── validators.py     validate_summary_length, validate_json_schema, validate_no_placeholders,\n│   │                     validate_contains_sections, all_of; output_text() handles str/TaskOutput;\n│   │                     a JSON-Schema checker (jsonschema if installed, minimal fallback otherwise)\n│   ├── retry.py          run_with_guardrail(agent_fn, guardrail, max_retries): the retry loop\n│   │                     CrewAI runs, reproduced with a plain callable in place of the agent\n│   ├── crew.py           demo crew: Technical Writer agent + summarize task with\n│   │                     guardrail=validate_summary_length(150), guardrail_max_retries=3;\n│   │                     install_guardrail_logger() prints guardrail events\n│   └── samples.py        source text, canned outputs, a small JSON schema\n├── run.py                --demo (offline) or the live crew\n├── tests/\n│   ├── test_validators.py       every validator with str and TaskOutput; CrewAI accepts the\n│   │                            callables; CrewAI's own process_guardrail() with our tuples\n│   └── test_retry_and_crew.py   retry loop, crew wiring, event logger\n├── .env.example\n├── requirements.txt\n└── pytest.ini"}]}}