F2-05 - CrewAI Implementation Checklist

May 9, 2026 ยท View on GitHub

Objective

Keep the CrewAI package in integrations/crewai/ functionally complete and aligned with the repo narrative without re-opening already closed architectural questions.

Use this checklist when implementation work starts or when a PR changes CrewAI package shape, security defaults, callbacks or documentation.


Current Baseline

  • The package declares itself as functional and that status matches the shipped runtime coverage.
  • integrations/crewai/README.md no longer describes the Python SDK as future work.
  • docs/F2-05-CrewAI-Integration-Design.md still matches the intended CrewAI surface.
  • docs/F2-05-CrewAI-Maturity-Gap-Assessment.md remains the reference document for the remaining maturity delta versus LangChain.
  • RC metadata stays aligned with the coordinated 1.0.0rc1 release train and the package continues to declare agent-did-sdk==1.0.0rc1 as its core dependency floor for the frozen release candidate.

Factory And Public Surface

  • Implement create_agent_did_crewai_integration(...) in integrations/crewai/src/agent_did_crewai/__init__.py.
  • Define the returned integration object shape before adding secondary helpers.
  • Keep the public surface Python-first and aligned with CrewAI concepts: tools, callbacks, guardrails and structured outputs.

Tools

  • Add tools for current DID exposure, DID resolution and signature verification.
  • Keep sensitive operations opt-in: HTTP signing, payload signing and key rotation.
  • Ensure tool inputs and outputs are structured enough for Task and Crew composition.
  • Adapt shipped Agent-DID tools to CrewAI runtime-native BaseTool instances when the optional CrewAI runtime is installed, while preserving lightweight local wrappers when it is not.

Callbacks And Guardrails

  • Add step/task callback hooks for Agent-DID traceability.
  • Expose structured observability primitives for callback fan-out and sanitized JSON logging.
  • Define optional guardrails for outputs that must carry DID-derived guarantees.
  • Ensure callback and guardrail paths do not leak private keys, raw payloads or raw signatures by default.
  • Keep shipped guardrail call signatures compatible with CrewAI runtime validation by preserving the (bool, Any) result contract while avoiding runtime-visible nested return annotations that break real Task construction.
  • Cover Python 3.12 guardrail compatibility with a regression that asserts the generated callable clears its runtime return annotation while still satisfying the typed factory contract used by strict mypy.

Documentation And Examples

  • Add at least one runnable example covering the integration bundle.
  • Add a dedicated observability example for structured callback and logging flows.
  • Add a production-style recipe with environment guards, structured outputs, guardrail wiring and secure HTTP signing.
  • Document secure defaults and opt-in exposure flags in integrations/crewai/README.md.
  • Keep the design doc, README and package metadata aligned in the same PR.

Validation

  • Add Python tests for the integration factory and exposed tools.
  • Add tests for secure defaults and failure handling.
  • Add package build validation once implementation exists.
  • Keep strict mypy compatibility for the shipped package surface, including helper properties and setters exercised by the CI matrix on Python 3.12.
  • Keep at least one CI smoke path that installs the optional CrewAI runtime and instantiates real Agent, Task and Crew objects with the published helper bundle.
  • Ensure the real-runtime smoke path passes runtime-compatible tools into CrewAI Agent and Task construction instead of only package-local wrappers.
  • Split the suite into clearer domains such as wiring, tool operations, security, observability and runtime smoke validation.

Exit Rule

F2-05 is complete for repo scope when the package has a functional factory, explicit Agent/Task/Crew helpers, runnable wiring example, automated tests, successful build validation and documentation that matches shipped behavior.


Changelog

DateChange
2026-05-08RC metadata refreshed for the coordinated 1.0.0rc1 release train and the checklist now records the frozen agent-did-sdk==1.0.0rc1 dependency expectation.
2026-03-22Repository license migrated from MIT to Apache-2.0. pyproject.toml updated accordingly. No functional changes to the integration surface.