Factory.ai
All Reports

FastAPI

Python

Strong Task Discovery

FastAPI reaches Level 3 with 75% Task Discovery pass rate. Currently becoming autonomous-capable with 31/59 criteria passing (53%). Key areas for improvement include the opportunities listed below.

Strengths

01
Formatter
Ruff format configured in pre-commit-config.yaml (local-ruff-format hook)
02
Large File Detection
Pre-commit hook check-added-large-files configured with --maxkb=750 threshold
03
Lint Config
Ruff linter configured in pyproject.toml and pre-commit with select rules (E, W, F, I, B, C4, UP)

Opportunities

01
Cyclomatic Complexity
No complexity analysis tools (lizard, radon, gocyclo, SonarQube) found
02
Dead Code Detection
No dead code detection tools (vulture, dead, knip, SonarQube) found
03
Duplicate Code Detection
No duplication detection tools (jscpd, PMD CPD, SonarQube) found

All Criteria

Style & Validation7/11 (64%)
code_modularizationPython library without module boundary enforcement tools (import-linter, Nx); skip for small project
cyclomatic_complexityNo complexity analysis tools (lizard, radon, gocyclo, SonarQube) found
dead_code_detectionNo dead code detection tools (vulture, dead, knip, SonarQube) found
duplicate_code_detectionNo duplication detection tools (jscpd, PMD CPD, SonarQube) found
formatterRuff format configured in pre-commit-config.yaml (local-ruff-format hook)
large_file_detectionPre-commit hook check-added-large-files configured with --maxkb=750 threshold
lint_configRuff linter configured in pyproject.toml and pre-commit with select rules (E, W, F, I, B, C4, UP)
n_plus_one_detectionLibrary without database/ORM usage; skip
naming_consistencyRuff includes naming rules implicitly; Python conventions enforced through linter
pre_commit_hooks.pre-commit-config.yaml exists with ruff check/format, file checks, and custom hooks
strict_typingMypy strict mode enabled ([tool.mypy] strict = true in pyproject.toml)
tech_debt_trackingNo TODO/FIXME scanner, tech debt tracking tools, or SonarQube found
type_checkMypy configured with strict = true in [tool.mypy] section of pyproject.toml
Build System7/11 (64%)
agentic_developmentGit history shows only github-actions[bot], no droid or agent co-authorship in recent commits
automated_pr_reviewNo automated PR review generation found (danger.js, droid exec reviews, or AI review bots not detected)
build_cmd_docREADME contains installation instructions, pyproject.toml defines build system with pdm-backend
build_performance_trackingNo build caching (turbo, nx, webpack), metrics export, or performance tracking found
dead_feature_flag_detectionPrerequisite feature_flag_infrastructure failed; skipped
deployment_frequencyVery frequent releases: 30 releases in ~45 days, multiple deployments per week confirmed
deps_pinnedDependencies pinned in uv.lock file (Python lockfile)
fast_ci_feedbackCI workflow completes in reasonable time based on PR checks (test.yml runs efficiently across matrix)
feature_flag_infrastructureNo feature flag systems (LaunchDarkly, Statsig, Unleash, GrowthBook) found
heavy_dependency_detectionNot a bundled application (library); skip
monorepo_toolingSingle-application repository, not a monorepo; skipped
progressive_rolloutNot applicable for a Python library; skip as not an infra/service deployment repo
release_automationpublish.yml workflow automates PyPI releases on GitHub release creation
release_notes_automationlatest-changes workflow automates release notes generation to docs/en/docs/release-notes.md
rollback_automationNot applicable for a Python library; skip as not an infra-based repo
single_command_setupREADME lacks single command setup; no 'uv sync && uv run ...' or equivalent documented for quick start
unused_dependencies_detectionNo unused dependency detection tools (depcheck, deptry, pip-extra-reqs) found
vcs_cli_toolsGitHub CLI (gh) is authenticated and available (verified with gh auth status)
version_drift_detectionSingle-application repository, not a monorepo; skipped
Testing5/7 (71%)
flaky_test_detectionNo flaky test detection (test retry config, BuildPulse, quarantine mechanisms) found
integration_tests_existNo integration/e2e tests found (no cypress/, playwright.config.ts for application testing)
test_coverage_thresholdsCoverage threshold enforced: test.yml has 'coverage report --fail-under=100' (100% required)
test_isolationPytest supports parallel execution (matrix strategy in CI, no --runInBand forcing serial)
test_naming_conventionsPytest naming conventions configured in [tool.pytest.ini_options] in pyproject.toml
test_performance_trackingNo test timing output (--durations), test analytics platforms, or performance tracking found
unit_tests_existExtensive tests/ directory with hundreds of test_*.py files
unit_tests_runnablePytest configured and tests are collectable (pytest --collect-only works despite minor import warnings)
Documentation4/7 (57%)
agents_mdNo AGENTS.md file found in repository root
agents_md_validationPrerequisite agents_md failed; skipped
api_schema_docsFastAPI core functionality generates OpenAPI/Swagger schemas (fastapi/openapi/ module exists)
automated_doc_generationbuild-docs.yml and deploy-docs.yml workflows automate documentation generation
documentation_freshnessCONTRIBUTING.md modified within last 180 days (found in git log)
readmeREADME.md exists with comprehensive setup, usage, and project information
service_flow_documentedNo architecture diagrams (*.mermaid, *.puml, docs/architecture*) or service flow documentation found
skillsNo skills directories found (.factory/skills/, .skills/, .claude/skills/)
Dev Environment0/2 (0%)
database_schemaLibrary without database; skip
devcontainerNo .devcontainer/devcontainer.json found
devcontainer_runnableNo devcontainer to test; skipped
env_templateNo .env.example file or environment variables documented in README/AGENTS.md
local_services_setupLibrary without external service dependencies; skip
Debugging & Observability2/8 (25%)
alerting_configuredNo alerting systems (PagerDuty, OpsGenie) or custom alerting rules found
circuit_breakersLibrary without external service dependencies; skip
code_quality_metricsCoverage metrics tracked: test.yml uploads coverage artifacts and enforces 100% threshold
deployment_observabilityNo monitoring dashboard links (Datadog, Grafana, New Relic) or deploy notifications found
distributed_tracingNo trace ID or request ID propagation (OpenTelemetry, X-Request-ID) found
error_tracking_contextualizedNo error tracking services (Sentry, Bugsnag, Rollbar) configured
health_checksLibrary, not a deployed service; skip
metrics_collectionNo metrics instrumentation (Datadog, Prometheus, New Relic, CloudWatch) found
profiling_instrumentationLibrary where profiling is not meaningful; skip
runbooks_documentedNo runbooks directory or links to external runbooks in README/AGENTS.md/docs
structured_loggingLogging library configured in fastapi/logger.py with standard Python logging module
Security3/7 (43%)
automated_security_reviewCode scanning API returned 403 forbidden; cannot verify SAST tools or security reports
branch_protectionRequires GitHub admin API access to verify branch protection rules (skipped).
codeownersNo CODEOWNERS file found in root or .github/ directory
dast_scanningLibrary, not a web service; skip
dependency_update_automationDependabot configured for github-actions and uv (Python) in .github/dependabot.yml
gitignore_comprehensiveGitignore excludes .env files (not .env.example), venv, __pycache__, .DS_Store, IDE configs
log_scrubbingNo log sanitization mechanisms (pino redact, winston filtering, structlog processors) found
pii_handlingLibrary that doesn't process PII; skip
privacy_complianceLibrary without end-user data collection; skip
secret_scanningRequires GitHub admin API access to verify secret scanning configuration (skipped).
secrets_managementGitHub Actions secrets usage (secrets.GITHUB_TOKEN, secrets.FASTAPI_LATEST_CHANGES), no hardcoded secrets
Task Discovery3/4 (75%)
backlog_healthOpen issues have descriptive titles (>10 chars) and labels; most issues are labeled
issue_labeling_systemConsistent labels exist: bug, feature, question, docs (verified in open issues)
issue_templates.github/ISSUE_TEMPLATE/ directory exists with config.yml and privileged.yml
pr_templatesNo .github/pull_request_template.md or similar PR template found
Product & Analytics0/2 (0%)
error_to_insight_pipelineNo error-to-issue automation (Sentry-GitHub integration, error-based issue creation) found
product_analytics_instrumentationNo product analytics (Mixpanel, Amplitude, PostHog, Heap, GA4) found

start building

Ready to build the software of the future?

Start building

Arrow Right Icon