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
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
Skills
Create .factory/skills to give agents reusable, tested capabilities for common tasks.

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