.dockerignore
.flake8
.geminiignore
.gitattributes
.gitignore
.gitlab-ci.yml
AGENTS-INVESTMENT-CATEGORY.md
AGENTS-INVESTMENT.md
AGENTS-WG.md
AGENTS.md
GEMINI.md
GETTING-STARTED.md
LICENSE.md
README.md
alembic.ini
compose.yml
mkdocs.yml
poetry.lock
pyproject.toml
pytest.ini
query.json
requirements-docs.txt
requirements.txt
.github/copilot-instructions.md
.github/dependabot.yml
.github/workflows/auto-release.yml
.github/workflows/cloud-deploy.yml
.github/workflows/codeql-analysis.yml
.github/workflows/docker-images.yml
.github/workflows/docs-release.yml
.github/workflows/integration.yml
.github/workflows/lint.yml
.github/workflows/publish-pypi.yml
.github/workflows/test.yml
.gitlab/gitlab-runner/README.md
.gitlab/gitlab-runner/docker-compose.yml
docker/Dockerfile
docs/CONNECTOR_USAGE.md
docs/PRIVATE_REPO_TESTING.md
docs/architecture.md
docs/canonical-metrics.md
docs/cli.md
docs/getting-started.md
docs/grafana.md
docs/graphql.md
docs/index.md
docs/metrics-inventory.md
docs/metrics.md
docs/project.md
docs/roadmap.md
docs/task_trackers.md
docs/api/graphql-overview.md
docs/api/persisted-queries.md
docs/api/view-mapping.md
docs/api/web-graphql-client.md
docs/api/web-graphql-investment.md
docs/appendix/ops-AGENTS.md
docs/appendix/web-graphql-client.md
docs/appendix/web-graphql-investment.md
docs/appendix/web-visualizations.md
docs/appendix/agent-instructions/README.md
docs/appendix/agent-instructions/architecture/data-pipeline.md
docs/appendix/agent-instructions/architecture/frontend-architecture.md
docs/appendix/agent-instructions/connectors/atlassian-graphql.md
docs/appendix/agent-instructions/connectors/github-gitlab.md
docs/appendix/agent-instructions/connectors/jira.md
docs/appendix/agent-instructions/llm/categorization-contract.md
docs/appendix/agent-instructions/metrics/canonical-metrics.md
docs/appendix/agent-instructions/metrics/metric-calculations.md
docs/appendix/agent-instructions/product/investment-view.md
docs/appendix/agent-instructions/product/work-graph.md
docs/appendix/agent-instructions/visualizations/visualization-patterns.md
docs/appendix/agent-instructions/workflows/cli-reference.md
docs/appendix/legacy/graphql-migration.md
docs/appendix/legacy/graphql-subscriptions.md
docs/appendix/legacy/index.md
docs/appendix/legacy/perf_notes.md
docs/appendix/legacy/integrations/index.md
docs/architecture/data-pipeline.md
docs/architecture/frontend-architecture.md
docs/architecture/repo-layout.md
docs/computations/canonical-metrics-prd.md
docs/computations/index.md
docs/computations/metric-calculations.md
docs/llm/categorization-contract.md
docs/ops/cli-reference.md
docs/product/concepts.md
docs/product/investment-taxonomy.md
docs/product/prd.md
docs/product/product-brief.md
docs/user-guide/investment-view.md
docs/user-guide/views-index.md
docs/user-guide/work-graph.md
docs/user-guide/views/code-hotspots.md
docs/user-guide/views/flame-diagrams.md
docs/user-guide/views/investment-expense.md
docs/user-guide/views/investment-flows.md
docs/user-guide/views/investment-mix.md
docs/user-guide/views/pr-flow.md
docs/user-guide/views/quadrants.md
docs/visualizations/patterns.md
examples/batch_processing_example.py
examples/github_example.py
examples/gitlab_example.py
examples/integration_example.py
examples/private_repo_example.py
examples/data/developer_landscape.json
examples/data/hotspot_explorer.json
examples/data/investment_flow.json
grafana/dashboards/advanced_work_tracking.json
grafana/dashboards/code_hotspots.json
grafana/dashboards/collaboration.json
grafana/dashboards/complexity_hotspots.json
grafana/dashboards/deployments.json
grafana/dashboards/developer_landscape.json
grafana/dashboards/ic_drilldown.json
grafana/dashboards/incidents.json
grafana/dashboards/investment_areas.json
grafana/dashboards/issue_types.json
grafana/dashboards/pipelines.json
grafana/dashboards/quality_risk.json
grafana/dashboards/repo_health.json
grafana/dashboards/wellbeing.json
grafana/dashboards/work_tracking.json
grafana/datasources/clickhouse.yaml
grafana/provisioning/dashboards/dashboards.yaml
migrations/clickhouse/000_raw_tables.sql
migrations/clickhouse/001_metrics_v2.sql
migrations/clickhouse/002_phase2_metrics.sql
migrations/clickhouse/002_teams.sql
migrations/clickhouse/003_flow_efficiency.sql
migrations/clickhouse/004_quality_delivery_metrics.sql
migrations/clickhouse/005_ic_metrics.sql
migrations/clickhouse/006_knowledge_predictability.sql
migrations/clickhouse/007_complexity_investment_issues.sql
migrations/clickhouse/008_grafana_panel_views.sql
migrations/clickhouse/009_raw_work_items.sql
migrations/clickhouse/010_rename_mergestat_synced_at.py
migrations/clickhouse/011_ensure_teams.sql
migrations/clickhouse/011_work_item_extras.sql
migrations/clickhouse/012_work_item_dependencies_last_synced.sql
migrations/clickhouse/013_work_item_extras_last_synced.sql
migrations/clickhouse/014_work_graph.sql
migrations/clickhouse/015_work_item_pr_descriptions.sql
migrations/clickhouse/016_work_graph_event_ts.sql
migrations/clickhouse/017_investment_materialize_tables.sql
migrations/clickhouse/018_investment_explanations.sql
migrations/clickhouse/019_work_unit_investment_labels.sql
scripts/auto_tag.py
scripts/build-images.sh
scripts/compute_metrics_daily.py
scripts/run_metrics.py
scripts/verify_mongo_investments.py
src/dev_health_ops/__init__.py
src/dev_health_ops/cli.py
src/dev_health_ops/investment_taxonomy.py
src/dev_health_ops/storage.py
src/dev_health_ops/utils.py
src/dev_health_ops.egg-info/PKG-INFO
src/dev_health_ops.egg-info/SOURCES.txt
src/dev_health_ops.egg-info/dependency_links.txt
src/dev_health_ops.egg-info/entry_points.txt
src/dev_health_ops.egg-info/requires.txt
src/dev_health_ops.egg-info/top_level.txt
src/dev_health_ops/alembic/README
src/dev_health_ops/alembic/__init__.py
src/dev_health_ops/alembic/env.py
src/dev_health_ops/alembic/script.py.mako
src/dev_health_ops/alembic/versions/9f2f70b48ab5_initial_migration.py
src/dev_health_ops/alembic/versions/__init__.py
src/dev_health_ops/alembic/versions/c3a7b2d4e5f6_add_cicd_deploy_incident_tables.py
src/dev_health_ops/alembic/versions/d4b8e3f5a1c2_rename_mergestat_synced_at.py
src/dev_health_ops/alembic/versions/e1f2a3b4c5d6_add_pr_body.py
src/dev_health_ops/analytics/__init__.py
src/dev_health_ops/analytics/complexity.py
src/dev_health_ops/analytics/investment.py
src/dev_health_ops/analytics/issue_types.py
src/dev_health_ops/analytics/metrics.py
src/dev_health_ops/analytics/work_units.py
src/dev_health_ops/analytics/jobs/__init__.py
src/dev_health_ops/api/__init__.py
src/dev_health_ops/api/main.py
src/dev_health_ops/api/runner.py
src/dev_health_ops/api/graphql/__init__.py
src/dev_health_ops/api/graphql/app.py
src/dev_health_ops/api/graphql/authz.py
src/dev_health_ops/api/graphql/cache_invalidation.py
src/dev_health_ops/api/graphql/caching.py
src/dev_health_ops/api/graphql/context.py
src/dev_health_ops/api/graphql/cost.py
src/dev_health_ops/api/graphql/errors.py
src/dev_health_ops/api/graphql/pagination.py
src/dev_health_ops/api/graphql/persisted.py
src/dev_health_ops/api/graphql/persisted_queries.json
src/dev_health_ops/api/graphql/pubsub.py
src/dev_health_ops/api/graphql/schema.py
src/dev_health_ops/api/graphql/subscriptions.py
src/dev_health_ops/api/graphql/loaders/__init__.py
src/dev_health_ops/api/graphql/loaders/analytics_loader.py
src/dev_health_ops/api/graphql/loaders/base.py
src/dev_health_ops/api/graphql/loaders/dimension_loader.py
src/dev_health_ops/api/graphql/loaders/repo_loader.py
src/dev_health_ops/api/graphql/loaders/team_loader.py
src/dev_health_ops/api/graphql/models/__init__.py
src/dev_health_ops/api/graphql/models/inputs.py
src/dev_health_ops/api/graphql/models/outputs.py
src/dev_health_ops/api/graphql/resolvers/__init__.py
src/dev_health_ops/api/graphql/resolvers/analytics.py
src/dev_health_ops/api/graphql/resolvers/catalog.py
src/dev_health_ops/api/graphql/resolvers/home.py
src/dev_health_ops/api/graphql/sql/__init__.py
src/dev_health_ops/api/graphql/sql/compiler.py
src/dev_health_ops/api/graphql/sql/filter_translation.py
src/dev_health_ops/api/graphql/sql/templates.py
src/dev_health_ops/api/graphql/sql/validate.py
src/dev_health_ops/api/models/__init__.py
src/dev_health_ops/api/models/filters.py
src/dev_health_ops/api/models/schemas.py
src/dev_health_ops/api/queries/__init__.py
src/dev_health_ops/api/queries/aggregated_flame.py
src/dev_health_ops/api/queries/client.py
src/dev_health_ops/api/queries/drilldown.py
src/dev_health_ops/api/queries/explain.py
src/dev_health_ops/api/queries/filters.py
src/dev_health_ops/api/queries/flame.py
src/dev_health_ops/api/queries/freshness.py
src/dev_health_ops/api/queries/heatmap.py
src/dev_health_ops/api/queries/investment.py
src/dev_health_ops/api/queries/metrics.py
src/dev_health_ops/api/queries/people.py
src/dev_health_ops/api/queries/quadrant.py
src/dev_health_ops/api/queries/sankey.py
src/dev_health_ops/api/queries/scopes.py
src/dev_health_ops/api/queries/sql_loader.py
src/dev_health_ops/api/queries/work_unit_investments.py
src/dev_health_ops/api/queries/work_units.py
src/dev_health_ops/api/services/__init__.py
src/dev_health_ops/api/services/aggregated_flame.py
src/dev_health_ops/api/services/cache.py
src/dev_health_ops/api/services/explain.py
src/dev_health_ops/api/services/filtering.py
src/dev_health_ops/api/services/flame.py
src/dev_health_ops/api/services/heatmap.py
src/dev_health_ops/api/services/home.py
src/dev_health_ops/api/services/investment.py
src/dev_health_ops/api/services/investment_flow.py
src/dev_health_ops/api/services/investment_mix_explain.py
src/dev_health_ops/api/services/investment_segments.py
src/dev_health_ops/api/services/opportunities.py
src/dev_health_ops/api/services/people.py
src/dev_health_ops/api/services/people_identity.py
src/dev_health_ops/api/services/quadrant.py
src/dev_health_ops/api/services/sankey.py
src/dev_health_ops/api/services/work_unit_explain.py
src/dev_health_ops/api/services/work_units.py
src/dev_health_ops/api/sql/people/people_search.sql
src/dev_health_ops/api/sql/people/person_drilldown_issues.sql
src/dev_health_ops/api/sql/people/person_drilldown_prs.sql
src/dev_health_ops/api/sql/people/person_identity_coverage.sql
src/dev_health_ops/api/sql/people/person_lookup.sql
src/dev_health_ops/api/sql/people/person_metric_breakdowns.sql
src/dev_health_ops/api/sql/people/person_metric_timeseries.sql
src/dev_health_ops/api/sql/people/person_summary_collaboration.sql
src/dev_health_ops/api/sql/people/person_summary_deltas.sql
src/dev_health_ops/api/sql/people/person_summary_flow_breakdown.sql
src/dev_health_ops/api/sql/people/person_summary_work_mix.sql
src/dev_health_ops/api/sql/people/person_team.sql
src/dev_health_ops/audit/__init__.py
src/dev_health_ops/audit/completeness.py
src/dev_health_ops/audit/coverage.py
src/dev_health_ops/audit/perf.py
src/dev_health_ops/audit/rolling_aggregates.py
src/dev_health_ops/audit/schema.py
src/dev_health_ops/config/__init__.py
src/dev_health_ops/config/complexity.yaml
src/dev_health_ops/config/identity_mapping.yaml
src/dev_health_ops/config/investment_areas.yaml
src/dev_health_ops/config/issue_type_mapping.yaml
src/dev_health_ops/config/status_mapping.yaml
src/dev_health_ops/config/team_mapping.yaml
src/dev_health_ops/config/teams.yaml
src/dev_health_ops/config/work_units.yaml
src/dev_health_ops/connectors/README.md
src/dev_health_ops/connectors/__init__.py
src/dev_health_ops/connectors/base.py
src/dev_health_ops/connectors/exceptions.py
src/dev_health_ops/connectors/github.py
src/dev_health_ops/connectors/gitlab.py
src/dev_health_ops/connectors/models.py
src/dev_health_ops/connectors/utils/__init__.py
src/dev_health_ops/connectors/utils/graphql.py
src/dev_health_ops/connectors/utils/pagination.py
src/dev_health_ops/connectors/utils/patterns.py
src/dev_health_ops/connectors/utils/rate_limit_queue.py
src/dev_health_ops/connectors/utils/rest.py
src/dev_health_ops/connectors/utils/retry.py
src/dev_health_ops/fixtures/__init__.py
src/dev_health_ops/fixtures/generator.py
src/dev_health_ops/fixtures/runner.py
src/dev_health_ops/llm/__init__.py
src/dev_health_ops/llm/cli.py
src/dev_health_ops/llm/explainers/investment_mix_explainer.py
src/dev_health_ops/llm/explainers/work_unit_explainer.py
src/dev_health_ops/llm/prompts/investment_mix_explain_prompt.txt
src/dev_health_ops/llm/providers/__init__.py
src/dev_health_ops/llm/providers/anthropic.py
src/dev_health_ops/llm/providers/gemini.py
src/dev_health_ops/llm/providers/local.py
src/dev_health_ops/llm/providers/mock.py
src/dev_health_ops/llm/providers/openai.py
src/dev_health_ops/llm/providers/qwen.py
src/dev_health_ops/metrics/__init__.py
src/dev_health_ops/metrics/compute.py
src/dev_health_ops/metrics/compute_cicd.py
src/dev_health_ops/metrics/compute_deployments.py
src/dev_health_ops/metrics/compute_ic.py
src/dev_health_ops/metrics/compute_incidents.py
src/dev_health_ops/metrics/compute_wellbeing.py
src/dev_health_ops/metrics/compute_work_item_state_durations.py
src/dev_health_ops/metrics/compute_work_items.py
src/dev_health_ops/metrics/hotspots.py
src/dev_health_ops/metrics/identity.py
src/dev_health_ops/metrics/job_complexity.py
src/dev_health_ops/metrics/job_complexity_db.py
src/dev_health_ops/metrics/job_daily.py
src/dev_health_ops/metrics/job_work_items.py
src/dev_health_ops/metrics/knowledge.py
src/dev_health_ops/metrics/quality.py
src/dev_health_ops/metrics/reviews.py
src/dev_health_ops/metrics/schemas.py
src/dev_health_ops/metrics/work_items.py
src/dev_health_ops/metrics/loaders/__init__.py
src/dev_health_ops/metrics/loaders/base.py
src/dev_health_ops/metrics/loaders/clickhouse.py
src/dev_health_ops/metrics/loaders/mongo.py
src/dev_health_ops/metrics/loaders/sqlalchemy.py
src/dev_health_ops/metrics/sinks/__init__.py
src/dev_health_ops/metrics/sinks/base.py
src/dev_health_ops/metrics/sinks/clickhouse.py
src/dev_health_ops/metrics/sinks/factory.py
src/dev_health_ops/metrics/sinks/mongo.py
src/dev_health_ops/metrics/sinks/postgres.py
src/dev_health_ops/metrics/sinks/sqlalchemy_base.py
src/dev_health_ops/metrics/sinks/sqlite.py
src/dev_health_ops/migrations/__init__.py
src/dev_health_ops/migrations/clickhouse/000_raw_tables.sql
src/dev_health_ops/migrations/clickhouse/001_metrics_v2.sql
src/dev_health_ops/migrations/clickhouse/002_phase2_metrics.sql
src/dev_health_ops/migrations/clickhouse/002_teams.sql
src/dev_health_ops/migrations/clickhouse/003_flow_efficiency.sql
src/dev_health_ops/migrations/clickhouse/004_quality_delivery_metrics.sql
src/dev_health_ops/migrations/clickhouse/005_ic_metrics.sql
src/dev_health_ops/migrations/clickhouse/006_knowledge_predictability.sql
src/dev_health_ops/migrations/clickhouse/007_complexity_investment_issues.sql
src/dev_health_ops/migrations/clickhouse/008_grafana_panel_views.sql
src/dev_health_ops/migrations/clickhouse/009_raw_work_items.sql
src/dev_health_ops/migrations/clickhouse/010_rename_mergestat_synced_at.py
src/dev_health_ops/migrations/clickhouse/011_ensure_teams.sql
src/dev_health_ops/migrations/clickhouse/011_work_item_extras.sql
src/dev_health_ops/migrations/clickhouse/012_work_item_dependencies_last_synced.sql
src/dev_health_ops/migrations/clickhouse/013_work_item_extras_last_synced.sql
src/dev_health_ops/migrations/clickhouse/014_work_graph.sql
src/dev_health_ops/migrations/clickhouse/015_work_item_pr_descriptions.sql
src/dev_health_ops/migrations/clickhouse/016_work_graph_event_ts.sql
src/dev_health_ops/migrations/clickhouse/017_investment_materialize_tables.sql
src/dev_health_ops/migrations/clickhouse/018_investment_explanations.sql
src/dev_health_ops/migrations/clickhouse/019_work_unit_investment_labels.sql
src/dev_health_ops/migrations/clickhouse/__init__.py
src/dev_health_ops/models/__init__.py
src/dev_health_ops/models/git.py
src/dev_health_ops/models/teams.py
src/dev_health_ops/models/work_items.py
src/dev_health_ops/processors/__init__.py
src/dev_health_ops/processors/github.py
src/dev_health_ops/processors/gitlab.py
src/dev_health_ops/processors/local.py
src/dev_health_ops/processors/sync.py
src/dev_health_ops/providers/__init__.py
src/dev_health_ops/providers/base.py
src/dev_health_ops/providers/identity.py
src/dev_health_ops/providers/registry.py
src/dev_health_ops/providers/status_mapping.py
src/dev_health_ops/providers/teams.py
src/dev_health_ops/providers/github/__init__.py
src/dev_health_ops/providers/github/client.py
src/dev_health_ops/providers/github/normalize.py
src/dev_health_ops/providers/github/provider.py
src/dev_health_ops/providers/gitlab/__init__.py
src/dev_health_ops/providers/gitlab/client.py
src/dev_health_ops/providers/gitlab/normalize.py
src/dev_health_ops/providers/gitlab/provider.py
src/dev_health_ops/providers/jira/__init__.py
src/dev_health_ops/providers/jira/client.py
src/dev_health_ops/providers/jira/normalize.py
src/dev_health_ops/providers/jira/provider.py
src/dev_health_ops/work_graph/README.md
src/dev_health_ops/work_graph/__init__.py
src/dev_health_ops/work_graph/builder.py
src/dev_health_ops/work_graph/ids.py
src/dev_health_ops/work_graph/models.py
src/dev_health_ops/work_graph/runner.py
src/dev_health_ops/work_graph/extractors/__init__.py
src/dev_health_ops/work_graph/extractors/text_parser.py
src/dev_health_ops/work_graph/investment/__init__.py
src/dev_health_ops/work_graph/investment/categorize.py
src/dev_health_ops/work_graph/investment/constants.py
src/dev_health_ops/work_graph/investment/evidence.py
src/dev_health_ops/work_graph/investment/llm_schema.py
src/dev_health_ops/work_graph/investment/materialize.py
src/dev_health_ops/work_graph/investment/queries.py
src/dev_health_ops/work_graph/investment/taxonomy.py
src/dev_health_ops/work_graph/investment/types.py
src/dev_health_ops/work_graph/investment/utils.py
src/dev_health_ops/work_graph/writers/__init__.py
src/dev_health_ops/workers/__init__.py
src/dev_health_ops/workers/celery_app.py
src/dev_health_ops/workers/config.py
src/dev_health_ops/workers/runner.py
src/dev_health_ops/workers/tasks.py
tests/__init__.py
tests/conftest.py
tests/test_api_endpoints.py
tests/test_api_sanitization.py
tests/test_audit_completeness.py
tests/test_audit_coverage.py
tests/test_audit_perf.py
tests/test_audit_rolling_aggregates.py
tests/test_audit_schema.py
tests/test_base_connector.py
tests/test_batch_processing.py
tests/test_benchmark_synthetic.py
tests/test_cli_metrics_complexity.py
tests/test_client_validation.py
tests/test_connectors_exceptions.py
tests/test_connectors_integration.py
tests/test_connectors_models.py
tests/test_connectors_utils.py
tests/test_fixtures_complexity_blame.py
tests/test_fixtures_runner.py
tests/test_gemini_provider.py
tests/test_git_blame.py
tests/test_github_connector.py
tests/test_github_provider.py
tests/test_github_repo_stats_author_404.py
tests/test_gitlab_connector.py
tests/test_gitlab_provider.py
tests/test_heatmap_flame.py
tests/test_jira_extras.py
tests/test_jira_jql.py
tests/test_jira_normalize_dict.py
tests/test_local_pull_requests.py
tests/test_local_since_filtering.py
tests/test_metrics_complexity_db.py
tests/test_metrics_compute.py
tests/test_metrics_hotspots.py
tests/test_metrics_quality.py
tests/test_metrics_reciprocity.py
tests/test_metrics_review_edges.py
tests/test_metrics_rework.py
tests/test_metrics_sinks.py
tests/test_migrations_clickhouse.py
tests/test_migrations_style.py
tests/test_models_git.py
tests/test_mongo_work_unit_investments.py
tests/test_openai_gpt5_reasoning_only.py
tests/test_openai_gpt5_truncation_retry.py
tests/test_openai_legacy_truncation_retry.py
tests/test_openai_provider_routing.py
tests/test_people_endpoints.py
tests/test_performance.py
tests/test_private_repo_access.py
tests/test_processors_gitlab.py
tests/test_processors_pr_mr_rate_limit.py
tests/test_provider_contract.py
tests/test_quadrant.py
tests/test_quadrant_api.py
tests/test_qwen_provider.py
tests/test_redis_health.py
tests/test_status_mapping.py
tests/test_storage.py
tests/test_stores_contract.py
tests/test_teams.py
tests/test_utils.py
tests/test_work_category_filters.py
tests/test_work_item_metrics_compute.py
tests/test_work_item_state_durations_compute.py
tests/test_work_item_unassigned_metrics.py
tests/analytics/test_investment_mix_explainer.py
tests/analytics/test_work_unit_explainer.py
tests/analytics/test_work_units.py
tests/api/test_investment_explain_cache.py
tests/api/test_investment_explain_mismatch.py
tests/api/test_investment_mix_parsing.py
tests/api/test_llm_provider_system_prompt_modes.py
tests/api/test_no_categorization_llm.py
tests/api/test_openai_provider_fix.py
tests/api/test_openai_provider_tokens.py
tests/api/test_openai_retry_logic.py
tests/api/test_work_unit_explain.py
tests/api/test_work_unit_investments_query.py
tests/api/services/__init__.py
tests/api/services/test_investment_flow.py
tests/graphql/__init__.py
tests/graphql/test_compiler.py
tests/graphql/test_cost.py
tests/graphql/test_filters.py
tests/graphql/test_resolvers.py
tests/metrics/test_flow_efficiency.py
tests/metrics/test_loaders.py
tests/work_graph/__init__.py
tests/work_graph/test_builder.py
tests/work_graph/test_ids.py
tests/work_graph/test_investment_categorize.py
tests/work_graph/test_investment_materialize.py
tests/work_graph/test_llm_schema.py
tests/work_graph/test_models.py
tests/work_graph/test_no_file_writes.py
tests/work_graph/test_text_parser.py