Factory.ai
All Reports

Typer

Python

Strong Testing

Typer reaches Level 3 with 86% Testing pass rate. Currently becoming autonomous-capable with 27/59 criteria passing (46%). Key areas for improvement include the opportunities listed below.

Strengths

01
Testing (86%)
Includes Integration Tests Exist, Test Coverage Thresholds, Test Isolation.
02
Formatter
Ruff formatter configured in pyproject.toml, runs via 'ruff format' in scripts/lint.sh
03
Large File Detection
Pre-commit hook 'check-added-large-files' configured in .pre-commit-config.yaml

Opportunities

01
Cyclomatic Complexity
Ruff complexity rule C901 explicitly ignored in pyproject.toml [tool.ruff.lint] ignore list
02
Dead Code Detection
No dead code detection tools (vulture, knip, ts-prune) configured
03
Duplicate Code Detection
No duplicate code detection (jscpd, PMD CPD) configured

All Criteria

Style & Validation6/11 (55%)
code_modularizationSkipped - small library (16 Python files) where module boundaries not meaningful
cyclomatic_complexityRuff complexity rule C901 explicitly ignored in pyproject.toml [tool.ruff.lint] ignore list
dead_code_detectionNo dead code detection tools (vulture, knip, ts-prune) configured
duplicate_code_detectionNo duplicate code detection (jscpd, PMD CPD) configured
formatterRuff formatter configured in pyproject.toml, runs via 'ruff format' in scripts/lint.sh
large_file_detectionPre-commit hook 'check-added-large-files' configured in .pre-commit-config.yaml
lint_configRuff configured in pyproject.toml [tool.ruff.lint] with rules E, W, F, I, B, C4, UP, TID
n_plus_one_detectionSkipped - no database/ORM usage in library
naming_consistencyNo naming convention rules in ruff or mypy config, none in docs
pre_commit_hooks.pre-commit-config.yaml with ruff check/format hooks, runs via uv
strict_typingmypy strict mode enabled: [tool.mypy] strict = true
tech_debt_trackingTODO comments exist in code (typer/params.py) but no CI scanner tracks them
type_checkmypy configured with strict = true in pyproject.toml [tool.mypy]
Build System8/11 (73%)
agentic_developmentNo agent co-authorship found in last 100 commits (no droid or AI agent identifiers)
automated_pr_reviewSkipped - gh CLI available but no automation generating review comments found
build_cmd_docREADME.md documents 'pip install typer' and usage instructions
build_performance_trackingSkipped - no build caching (turbo/nx) or build metrics tracking configured
dead_feature_flag_detectionSkipped - prerequisite feature_flag_infrastructure not met
deployment_frequency30 releases in last year via gh release list, multiple releases per week (0.21.1 on 2026-01-06)
deps_pinneduv.lock file committed with pinned dependencies
fast_ci_feedbackCI checks complete in 4-6.5 minutes across recent PRs (all under 10 minute threshold)
feature_flag_infrastructureNo feature flag system (LaunchDarkly, Statsig, etc.) configured
heavy_dependency_detectionSkipped - library not bundled for browser, no bundle size analysis needed
monorepo_toolingSkipped - single application repository, not a monorepo
progressive_rolloutSkipped - not applicable for library package
release_automationpublish.yml workflow automates PyPI publishing on release creation using uv publish
release_notes_automationlatest-changes.yml workflow automates release notes to docs/release-notes.md using tiangolo/latest-changes action
rollback_automationSkipped - not applicable for library package
single_command_setupREADME documents single command 'pip install typer' for setup
unused_dependencies_detectionNo unused dependency detection (depcheck, deptry, pip-extra-reqs) configured
vcs_cli_toolsgh CLI installed and authenticated (verified with gh auth status)
version_drift_detectionSkipped - single application repository, not a monorepo
Testing6/7 (86%)
flaky_test_detectionSkipped - no retry config (pytest-rerunfailures) or flaky test tracking found
integration_tests_existtest_cli/ tests run actual CLI via subprocess, constitutes integration testing for CLI library
test_coverage_thresholdssmokeshow.yml enforces 100% coverage threshold (SMOKESHOW_GITHUB_COVERAGE_THRESHOLD: 100)
test_isolationpytest-xdist with --numprocesses=auto in scripts/test.sh enables parallel test execution
test_naming_conventionspytest configured with standard test_*.py naming pattern, enforced by test discovery
test_performance_trackingNo test timing output (--durations) or test analytics platform integration configured
unit_tests_exist202 test files found (test_*.py pattern) in tests/ directory
unit_tests_runnablepytest --collect-only succeeded, collected 95 items
Documentation3/7 (43%)
agents_mdNo AGENTS.md file found in repository root
agents_md_validationPrerequisite agents_md not met - no AGENTS.md exists
api_schema_docsSkipped - library without HTTP API (no OpenAPI/GraphQL schema needed)
automated_doc_generationbuild-docs.yml and deploy-docs.yml automate MkDocs build and Cloudflare Pages deployment
documentation_freshnessCONTRIBUTING.md modified within last 180 days (git log verified)
readmeREADME.md exists with comprehensive setup, usage, and examples (14KB file)
service_flow_documentedNo architecture diagrams (*.mermaid, *.puml) or service dependency docs found
skillsNo skills directory found (.factory/skills/, .skills/, .claude/skills/)
Dev Environment0/2 (0%)
database_schemaSkipped - library without database
devcontainerNo .devcontainer/devcontainer.json found
devcontainer_runnableSkipped - no devcontainer configured
env_templateNo .env.example file and .env is checked into repo (contains TERMINAL_WIDTH config)
local_services_setupSkipped - library without external service dependencies
Debugging & Observability1/8 (13%)
alerting_configuredNo alerting (PagerDuty, OpsGenie) configured
circuit_breakersSkipped - library without external service calls
code_quality_metricssmokeshow posts coverage status to PRs via GitHub API (smokeshow.yml workflow)
deployment_observabilityNo deployment monitoring dashboards (Datadog, Grafana) or deploy notifications documented
distributed_tracingNo tracing (OpenTelemetry, X-Request-ID) configured in library code
error_tracking_contextualizedNo error tracking (Sentry, Bugsnag, Rollbar) configured
health_checksSkipped - library not deployed as service
metrics_collectionNo metrics instrumentation (Datadog, Prometheus, New Relic) found
profiling_instrumentationSkipped - profiling not meaningful for library package
runbooks_documentedNo runbooks directory or references to runbooks/playbooks in README or docs
structured_loggingNo logging library (winston, pino, structlog, loguru) in dependencies or source code
Security1/7 (14%)
automated_security_reviewSkipped - gh api code-scanning returned 403 unauthorized, cannot verify
branch_protectionRequires GitHub admin API access to verify branch protection rules (skipped).
codeownersNo CODEOWNERS file in root or .github/ directory
dast_scanningSkipped - library not deployed as web service
dependency_update_automationdependabot.yml configured for github-actions and uv (Python) with daily schedule
gitignore_comprehensive.gitignore has 'env' but NOT '.env' - .env file is checked into repo (security risk)
log_scrubbingNo log sanitization configured (no logging library)
pii_handlingSkipped - library doesn't process personal data
privacy_complianceSkipped - library doesn't collect end-user data
secret_scanningRequires GitHub admin API access to verify secret scanning configuration (skipped).
secrets_management.env file checked into repo, no secrets manager integration, no .env.example template
Task Discovery2/4 (50%)
backlog_healthMany issues >365 days old (some from 2020-2021), >50% are stale without recent activity
issue_labeling_systemConsistent labels exist: bug, feature, question, docs, investigate (verified in issue list)
issue_templates.github/ISSUE_TEMPLATE/ exists with config.yml and privileged.yml templates
pr_templatesNo .github/pull_request_template.md found
Product & Analytics0/2 (0%)
error_to_insight_pipelineNo error tracking integration (Sentry-GitHub) or automated issue creation from errors
product_analytics_instrumentationNo analytics (Mixpanel, Amplitude, PostHog) instrumentation found

start building

Ready to build the software of the future?

Start building

Arrow Right Icon