Factory.ai
All Reports

HTTPX

Python

Strong Testing

HTTPX reaches Level 3 with 57% Testing pass rate. Currently becoming autonomous-capable with 26/58 criteria passing (45%). Key areas for improvement include the opportunities listed below.

Strengths

01
Dead Code Detection
Ruff configured with rules like F401 for unused import detection
02
Formatter
Ruff format configured and used in scripts/check for code formatting
03
Lint Config
Ruff linter configured in pyproject.toml with select/ignore rules for code quality checks

Opportunities

01
Cyclomatic Complexity
Add complexity analysis to identify and refactor overly complex functions.
02
Feature Flag Infrastructure
Add feature flags to enable safer deployments and gradual rollouts.
03
Integration Tests Exist
Add integration tests to verify component interactions and catch issues unit tests miss.

All Criteria

Style & Validation5/11 (45%)
—code_modularizationSkipped - small Python library with clear module structure, enforcement tooling not needed
✗cyclomatic_complexityNo complexity analysis tools configured - no lizard, radon, or ruff complexity rules
✓dead_code_detectionRuff configured with rules like F401 for unused import detection
✗duplicate_code_detectionNo duplicate code detection tools like jscpd or SonarQube found
✓formatterRuff format configured and used in scripts/check for code formatting
✗large_file_detectionNo large file detection - no git hooks, LFS config, or CI checks for file size
✓lint_configRuff linter configured in pyproject.toml with select/ignore rules for code quality checks
—n_plus_one_detectionSkipped - library without database/ORM usage, N+1 detection not applicable
✗naming_consistencyNo naming convention enforcement found in ruff config or other linters
✗pre_commit_hooksNo pre-commit hooks found - no .pre-commit-config.yaml or husky configuration
✓strict_typingmypy strict mode enabled via strict=true in pyproject.toml [tool.mypy] section
✗tech_debt_trackingTODO comments found in code but no automated tracking or CI scanner configured
✓type_checkmypy configured with strict=true in pyproject.toml for strict type checking
Build System6/11 (55%)
✗agentic_developmentNo agent co-authorship in git log - only human Co-authored-by entries found
—automated_pr_reviewSkipped - no automated review generation detected in recent PRs, only human reviews
✓build_cmd_docBuild/install documented in README and CONTRIBUTING.md via scripts/install and scripts/build
—build_performance_trackingSkipped - no build caching, metrics export, or performance optimization evidence found
—dead_feature_flag_detectionSkipped - prerequisite feature_flag_infrastructure not configured
✗deployment_frequencyInfrequent releases (2 in last 30 days), publish workflow runs on tags not frequent deploys
✓deps_pinnedDependencies pinned with == in requirements.txt for reproducible builds
✓fast_ci_feedbackCI completes in ~1-2 minutes based on statusCheckRollup timestamps from recent PRs
✗feature_flag_infrastructureNo feature flag system found - LaunchDarkly, Statsig, etc. not configured
—heavy_dependency_detectionSkipped - Python library without bundling, not applicable
—monorepo_toolingSkipped - single-application repository, not a monorepo
—progressive_rolloutSkipped - library project, not an infrastructure repo with canary deployments
✓release_automationAutomated release via publish.yml workflow that publishes to PyPI on git tags
✗release_notes_automationCHANGELOG.md maintained manually - no semantic-release or automated changelog tools
—rollback_automationSkipped - library project, not an infrastructure repo with rollback capability
✓single_command_setupCONTRIBUTING.md documents single command setup: scripts/install
✗unused_dependencies_detectionNo unused dependency detection tools like deptry or depcheck configured
✓vcs_cli_toolsgh CLI installed and authenticated, verified via gh auth status
—version_drift_detectionSkipped - single-application repository, version drift detection not applicable
Testing4/7 (57%)
—flaky_test_detectionSkipped - no pytest-rerunfailures or flaky test tracking detected
✗integration_tests_existOnly unit tests found, no integration/e2e test directories or playwright/cypress config
✓test_coverage_thresholdsCoverage threshold enforced at 100% via scripts/coverage --fail-under=100
✗test_isolationNo test parallelization configured - no pytest-xdist or parallel execution
✓test_naming_conventionsPytest default test_*.py naming convention consistently used throughout tests/
✗test_performance_trackingNo test timing output configured - no --durations flag or test analytics platforms
✓unit_tests_existComprehensive test suite in tests/ directory with test_*.py files
✓unit_tests_runnableTests runnable via scripts/test which executes coverage run -m pytest
Documentation3/6 (50%)
✗agents_mdNo AGENTS.md file at repository root to document agent-specific workflows
—agents_md_validationSkipped - prerequisite agents_md file does not exist
—api_schema_docsSkipped - HTTP client library without API endpoints, OpenAPI/GraphQL not applicable
✓automated_doc_generationmkdocs configured with mkautodoc plugin for automated documentation generation
✓documentation_freshnessKey docs updated in last 180 days: README.md, CONTRIBUTING.md modified recently
✓readmeREADME.md exists with comprehensive setup, usage, and feature documentation
✗service_flow_documentedNo architecture diagrams or service flow documentation found in docs/
✗skillsNo skills configured - no .factory/skills/, .skills/, or .claude/skills/ directories
Dev Environment1/2 (50%)
—database_schemaSkipped - no database usage, library project without data persistence
✗devcontainerNo .devcontainer/devcontainer.json configuration found
—devcontainer_runnableSkipped - no devcontainer exists to validate
✓env_templateEnvironment variables documented in docs/environment_variables.md (no .env.example needed)
—local_services_setupSkipped - library without external service dependencies like databases
Debugging & Observability1/8 (13%)
✗alerting_configuredNo alerting infrastructure - PagerDuty, OpsGenie, or custom alerting rules not found
—circuit_breakersSkipped - library IS the HTTP client, circuit breakers at application layer
✓code_quality_metricsCoverage metrics tracked via coverage.py with 100% threshold enforced in CI
✗deployment_observabilityNo deployment monitoring dashboards or notification integrations documented
✗distributed_tracingNo OpenTelemetry or trace ID propagation implementation found
✗error_tracking_contextualizedNo error tracking services configured - Sentry, Bugsnag, Rollbar not found
—health_checksSkipped - library not a deployed service, health checks not applicable
✗metrics_collectionNo metrics instrumentation found - no Datadog, Prometheus, CloudWatch integrations
—profiling_instrumentationSkipped - no APM or continuous profiling tools configured
✗runbooks_documentedNo runbooks or incident response documentation found or referenced
✗structured_loggingUses Python standard logging, not structured logging library like structlog/loguru
Security4/7 (57%)
—automated_security_reviewSkipped - code scanning API returned 403 unauthorized, cannot verify SAST configuration
—branch_protectionRequires GitHub admin API access to verify branch protection rules (skipped).
✗codeownersNo CODEOWNERS file in root or .github/ directory
—dast_scanningSkipped - library not a web service, DAST scanning not applicable
✓dependency_update_automationDependabot configured in .github/dependabot.yml for Python and GitHub Actions
✓gitignore_comprehensiveComprehensive .gitignore excludes __pycache__, .env*, build/, dist/, IDE configs, .DS_Store
✓log_scrubbingPassword masking implemented in _config.py __repr__ to prevent credential leakage
—pii_handlingSkipped - library does not process personal/user data
—privacy_complianceSkipped - library without end-user data collection, privacy compliance not applicable
—secret_scanningRequires GitHub admin API access to verify secret scanning configuration (skipped).
✓secrets_managementEnvironment variables documented, .env* properly gitignored, GitHub Actions secrets used
Task Discovery2/4 (50%)
✗backlog_healthOnly 38% of issues have both descriptive titles and labels, below 70% threshold
✗issue_labeling_systemPoor labeling - only 38% of open issues have labels, inconsistent label usage
✓issue_templates.github/ISSUE_TEMPLATE/ directory exists with structured issue templates
✓pr_templates.github/PULL_REQUEST_TEMPLATE.md exists with checklist and contribution guidelines
Product & Analytics0/2 (0%)
✗error_to_insight_pipelineNo error-to-issue automation or Sentry-GitHub integration configured
✗product_analytics_instrumentationNo product analytics - Mixpanel, Amplitude, PostHog, Heap, GA4 not configured

Ready to build the software of the future?

Start building

Arrow Right Icon