gitflow-analytics 1.3.6__tar.gz → 3.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/CLAUDE.md +150 -34
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/PKG-INFO +2 -1
- gitflow_analytics-3.3.0/docs/CLEANUP_SUMMARY.md +184 -0
- gitflow_analytics-3.3.0/docs/PROJECT_CLEANUP_REPORT.md +233 -0
- gitflow_analytics-3.3.0/docs/_archive/analysis-files/ewtn-critical-security-report.md +180 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_085239_236.md +100 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_114233_697.md +78 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_115330_511.md +80 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_120516_669.md +78 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_124906_951.md +87 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_175540_671.md +78 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250915_214023_300.md +95 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_engineer_20250916_130622_510.md +76 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_ops_20250915_123323_419.md +94 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_ops_20250915_134446_128.md +96 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_ops_20250915_184656_725.md +93 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_research_20250915_091233_023.md +77 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_research_20250915_100404_339.md +77 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/agent_research_20250915_110606_413.md +86 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/system_prompt_20250915_084833_641.md +2289 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/system_prompt_20250915_090830_660.md +2303 -0
- gitflow_analytics-3.3.0/docs/_archive/old-logs/prompts/system_prompt_20250916_130545_822.md +2289 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/output/database_qualitative_report_20250630_20250824.md +47 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/output/narrative_report_20250630_20250824.md +142 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/reports-24week/database_qualitative_report_20250303_20250817.md +55 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/reports-24week/narrative_report_20250303_20250817.md +157 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/test-ewtn-reports/narrative_report_20250810.md +70 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/test-reports/database_qualitative_report_20250908_20250914.md +53 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/test-reports/narrative_report_20250908_20250914.md +182 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/test-weekly-reports/database_qualitative_report_20250623_20250817.md +67 -0
- gitflow_analytics-3.3.0/docs/_archive/old-reports/test-weekly-reports/narrative_report_20250623_20250817.md +169 -0
- gitflow_analytics-3.3.0/docs/_archive/temp-files/FIX_SUMMARY.md +147 -0
- gitflow_analytics-3.3.0/docs/_archive/temp-files/PROGRESS_TRACKING_FIXES.md +82 -0
- gitflow_analytics-3.3.0/docs/_archive/temp-files/SYNTAX_ERROR_FIX.md +53 -0
- gitflow_analytics-3.3.0/docs/design/circuit-breaker-implementation.md +134 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/pyproject.toml +1 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/_version.py +1 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/classification/batch_classifier.py +156 -4
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/cli.py +897 -179
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/loader.py +40 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/schema.py +4 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/cache.py +20 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/core/data_fetcher.py +2219 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/core/git_auth.py +169 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/core/git_timeout_wrapper.py +347 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/metrics_storage.py +12 -3
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/progress.py +219 -18
- gitflow_analytics-3.3.0/src/gitflow_analytics/core/subprocess_git.py +145 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/extractors/ml_tickets.py +3 -2
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/extractors/tickets.py +93 -8
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/integrations/jira_integration.py +1 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/integrations/orchestrator.py +47 -29
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/metrics/branch_health.py +3 -2
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/models/database.py +72 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/adapters/jira_adapter.py +12 -5
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/orchestrator.py +8 -3
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/openai_client.py +24 -4
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm_commit_classifier.py +3 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/core/llm_fallback.py +34 -2
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/narrative_writer.py +118 -74
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/__init__.py +11 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/config.py +189 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/extractors/__init__.py +7 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/extractors/dependency_checker.py +379 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/extractors/secret_detector.py +197 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/extractors/vulnerability_scanner.py +333 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/llm_analyzer.py +347 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/reports/__init__.py +5 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/reports/security_report.py +358 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/security/security_analyzer.py +414 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/app.py +3 -1
- gitflow_analytics-3.3.0/src/gitflow_analytics/tui/progress_adapter.py +313 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/screens/analysis_progress_screen.py +407 -46
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/screens/results_screen.py +219 -206
- gitflow_analytics-3.3.0/src/gitflow_analytics/ui/__init__.py +21 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/ui/progress_display.py +1477 -0
- gitflow_analytics-3.3.0/src/gitflow_analytics/verify_activity.py +697 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics.egg-info/PKG-INFO +2 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics.egg-info/SOURCES.txt +61 -2
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics.egg-info/requires.txt +1 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/core/test_analyzer.py +31 -32
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/core/test_cache.py +26 -23
- gitflow_analytics-3.3.0/tests/core/test_data_fetcher.py +224 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/core/test_identity.py +23 -28
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/core/test_progress.py +64 -68
- gitflow_analytics-3.3.0/tests/qualitative/__init__.py +1 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/qualitative/test_basic_integration.py +82 -76
- gitflow_analytics-3.3.0/tests/reports/__init__.py +1 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_atomic_caching.py +143 -123
- gitflow_analytics-3.3.0/tests/test_branch_analysis.py +193 -0
- gitflow_analytics-3.3.0/tests/test_branch_direct.py +129 -0
- gitflow_analytics-3.3.0/tests/test_branch_fetching.py +187 -0
- gitflow_analytics-3.3.0/tests/test_branch_simple.py +89 -0
- gitflow_analytics-3.3.0/tests/test_branch_verification.py +183 -0
- gitflow_analytics-3.3.0/tests/test_circuit_breaker.py +191 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_classification_system.py +161 -141
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_config.py +35 -33
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_config_extends.py +37 -37
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_config_profiles.py +26 -26
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_config_story_points.py +40 -35
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_jira_connection.py +3 -6
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_llm_commit_classification.py +149 -152
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_march_2025_comparison.py +186 -164
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_metrics.py +115 -55
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_ml_accuracy.py +66 -55
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_ml_components.py +43 -35
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_ml_comprehensive.py +197 -182
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_ml_integration.py +43 -34
- gitflow_analytics-3.3.0/tests/test_pm_env_resolution.py +226 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_report_abstraction.py +91 -92
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_reports.py +118 -132
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_story_points_analysis.py +184 -166
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_training_pipeline.py +102 -93
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_two_step_process.py +91 -84
- gitflow_analytics-3.3.0/tests/tui/test_tui_basic.py +114 -0
- gitflow_analytics-3.3.0/tests/tui/test_tui_screenshots.py +86 -0
- gitflow_analytics-1.3.6/src/gitflow_analytics/cli_rich.py +0 -503
- gitflow_analytics-1.3.6/src/gitflow_analytics/core/data_fetcher.py +0 -1193
- gitflow_analytics-1.3.6/tests/qualitative/__init__.py +0 -1
- gitflow_analytics-1.3.6/tests/reports/__init__.py +0 -1
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/CHANGELOG.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/LICENSE +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/MANIFEST.in +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/SECURITY.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/STORY_POINTS_CONFIG_SUMMARY.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/STRUCTURE.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/architecture/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/architecture/branch-analysis-optimization.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/architecture/caching-strategy.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/architecture/llm-classifier-refactoring.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/architecture/ml-pipeline.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/configuration/configuration.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/deployment/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/design/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/design/commit-classification-design.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/design/git_pm_correlation_design.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/design/platform-agnostic-pm-framework.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/design/qualitative_data_extraction.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/developer/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/developer/contributing.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/developer/development-setup.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/developer/training-guide.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/examples/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/getting-started/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/getting-started/first-analysis.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/getting-started/installation.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/getting-started/quickstart.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/guides/LLM_CLASSIFICATION_GUIDE.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/guides/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/guides/chatgpt-setup.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/guides/ml-categorization.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/guides/troubleshooting.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/reference/README.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/reference/cache-system.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/reference/cli-commands.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/reference/configuration-schema.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/docs/reference/json-export-schema.md +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/setup.cfg +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/classification/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/classification/classifier.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/classification/feature_extractor.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/classification/linguist_analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/classification/model.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/errors.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/profiles.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/repository.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config/validator.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/config.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/branch_mapper.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/identity.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/core/schema_version.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/extractors/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/extractors/base.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/extractors/story_points.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/identity_llm/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/identity_llm/analysis_pass.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/identity_llm/analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/identity_llm/models.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/integrations/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/integrations/github_integration.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/metrics/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/metrics/activity_scoring.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/metrics/dora.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/models/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/adapters/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/base.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/models.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/pm_framework/registry.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/chatgpt_analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/change_type.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/domain_classifier.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/intent_analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/base.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/batch_processor.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/cache.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/cost_tracker.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/prompts.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/llm/response_parser.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/classifiers/risk_analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/core/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/core/nlp_engine.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/core/pattern_cache.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/core/processor.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/enhanced_analyzer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/example_enhanced_usage.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/models/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/models/schemas.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/utils/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/utils/batch_processor.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/utils/cost_tracker.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/utils/metrics.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/qualitative/utils/text_processing.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/analytics_writer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/base.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/branch_health_writer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/classification_writer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/cli_integration.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/csv_writer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/data_models.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/database_report_generator.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/example_usage.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/factory.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/formatters.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/html_generator.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/interfaces.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/json_exporter.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/story_point_correlation.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/reports/weekly_trends_writer.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/training/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/training/model_loader.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/training/pipeline.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/screens/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/screens/configuration_screen.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/screens/loading_screen.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/screens/main_screen.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/widgets/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/widgets/data_table.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/widgets/export_modal.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics/tui/widgets/progress_widget.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics.egg-info/dependency_links.txt +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics.egg-info/entry_points.txt +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/src/gitflow_analytics.egg-info/top_level.txt +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/conftest.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/core/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/debug_bulk_exists.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/debug_commit_story_points.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/debug_database_storage.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/debug_jira_enrichment.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/debug_story_points.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/extractors/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/integrations/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/metrics/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/models/__init__.py +0 -0
- {gitflow_analytics-1.3.6 → gitflow_analytics-3.3.0}/tests/test_cli.py +0 -0
|
@@ -6,13 +6,129 @@ This document provides specific instructions for Claude (AI assistant) when work
|
|
|
6
6
|
|
|
7
7
|
GitFlow Analytics is a Python package that analyzes Git repositories to generate developer productivity insights without requiring external project management tools. It provides comprehensive metrics including commit patterns, developer focus, ticket tracking, and DORA metrics.
|
|
8
8
|
|
|
9
|
+
## 📋 Priority Index
|
|
10
|
+
|
|
11
|
+
This section organizes all instructions by priority level for efficient navigation:
|
|
12
|
+
|
|
13
|
+
### 🔴 CRITICAL Instructions
|
|
14
|
+
- [Code Quality Standards](#1-code-quality-standards) - Always run linting/testing before commits
|
|
15
|
+
- [Identity Resolution](#2-identity-resolution) - Core data integrity system
|
|
16
|
+
- [Caching System](#3-caching-system) - Performance-critical data persistence
|
|
17
|
+
- [Configuration Management](#4-configuration-management) - Secure credential handling
|
|
18
|
+
- [Common Gotchas](#common-gotchas) - Critical failure modes to avoid
|
|
19
|
+
|
|
20
|
+
### 🟡 IMPORTANT Instructions
|
|
21
|
+
- [Report Generation](#6-report-generation) - Core business logic and output
|
|
22
|
+
- [Testing Workflow](#7-testing-workflow) - Quality assurance procedures
|
|
23
|
+
- [Atomic Versioning System](#atomic-versioning-system) - Release management
|
|
24
|
+
- [Automated Release Process](#automated-release-process) - CI/CD pipelines
|
|
25
|
+
- [Project Structure](#project-structure) - Architecture understanding
|
|
26
|
+
|
|
27
|
+
### 🟢 STANDARD Instructions
|
|
28
|
+
- [Default Command Behavior](#5-default-command-behavior) - User experience patterns
|
|
29
|
+
- [Performance Considerations](#9-performance-considerations) - Optimization guidelines
|
|
30
|
+
- [Error Handling](#10-error-handling) - User-friendly error management
|
|
31
|
+
- [Documentation Updates](#11-documentation-updates) - Content maintenance
|
|
32
|
+
- [YAML Configuration Error Handling](#12-yaml-configuration-error-handling) - User support
|
|
33
|
+
|
|
34
|
+
### ⚪ OPTIONAL Instructions
|
|
35
|
+
- [ML-Enhanced Commit Categorization](#working-with-ml-enhanced-commit-categorization) - Advanced features
|
|
36
|
+
- [Organization Support](#working-with-organization-support) - Enterprise features
|
|
37
|
+
- [Qualitative Analysis](#debugging-narrative-report-generation) - Advanced analytics
|
|
38
|
+
|
|
39
|
+
## 🛠️ Single-Path Standards
|
|
40
|
+
|
|
41
|
+
GitFlow Analytics follows the "ONE way to do ANYTHING" principle for all common operations:
|
|
42
|
+
|
|
43
|
+
### Build & Installation
|
|
44
|
+
```bash
|
|
45
|
+
# THE way to install for development
|
|
46
|
+
pip install -e ".[dev]"
|
|
47
|
+
|
|
48
|
+
# THE way to reinstall after code changes
|
|
49
|
+
pipx uninstall gitflow-analytics && pipx install /Users/masa/Projects/managed/gitflow-analytics
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Testing
|
|
53
|
+
```bash
|
|
54
|
+
# THE way to run all tests
|
|
55
|
+
pytest --cov=gitflow_analytics --cov-report=html
|
|
56
|
+
|
|
57
|
+
# THE way to run specific test categories
|
|
58
|
+
pytest tests/test_config.py # Configuration tests
|
|
59
|
+
pytest tests/qualitative/ # ML system tests
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Code Quality
|
|
63
|
+
```bash
|
|
64
|
+
# THE way to check and fix code quality (run in this order)
|
|
65
|
+
ruff check src/ # Check linting issues
|
|
66
|
+
black src/ tests/ # Format code
|
|
67
|
+
mypy src/ # Type checking
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Analysis Commands
|
|
71
|
+
```bash
|
|
72
|
+
# THE way to run analysis (simplified syntax)
|
|
73
|
+
gitflow-analytics -c config.yaml --weeks 8
|
|
74
|
+
|
|
75
|
+
# THE way to clear cache and re-run
|
|
76
|
+
gitflow-analytics -c config.yaml --weeks 8 --clear-cache
|
|
77
|
+
|
|
78
|
+
# THE way to test configuration
|
|
79
|
+
gitflow-analytics -c config.yaml --validate-only
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Version Management
|
|
83
|
+
```bash
|
|
84
|
+
# THE way to check current version
|
|
85
|
+
gitflow-analytics --version
|
|
86
|
+
|
|
87
|
+
# THE way to preview next version (development)
|
|
88
|
+
semantic-release version --dry-run
|
|
89
|
+
|
|
90
|
+
# THE way to create release (automated via CI/CD)
|
|
91
|
+
# Releases are triggered automatically by conventional commits to main branch
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Development Workflow
|
|
95
|
+
```bash
|
|
96
|
+
# THE way to set up development environment
|
|
97
|
+
git clone <repository>
|
|
98
|
+
cd gitflow-analytics
|
|
99
|
+
pip install -e ".[dev]"
|
|
100
|
+
python -m spacy download en_core_web_sm # For ML features
|
|
101
|
+
|
|
102
|
+
# THE way to test changes
|
|
103
|
+
make quality # If Makefile exists, otherwise use individual commands above
|
|
104
|
+
pytest
|
|
105
|
+
gitflow-analytics -c config-sample.yaml --validate-only
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 🏗️ Meta-Instructions for Priority Maintenance
|
|
109
|
+
|
|
110
|
+
When updating this document:
|
|
111
|
+
|
|
112
|
+
1. **Add Priority Markers**: New sections must include appropriate priority emoji (🔴🟡🟢⚪)
|
|
113
|
+
2. **Update Priority Index**: Add new sections to the index with links
|
|
114
|
+
3. **Maintain Single-Path**: Only document ONE recommended way per task
|
|
115
|
+
4. **Version Control**: Create backup before major changes to `docs/_archive/`
|
|
116
|
+
5. **Link Validation**: Ensure all priority index links work correctly
|
|
117
|
+
6. **Content Preservation**: Never remove existing content, only reorganize and enhance
|
|
118
|
+
|
|
119
|
+
Priority assignment guidelines:
|
|
120
|
+
- 🔴 **CRITICAL**: Security, data integrity, core functionality that can break the system
|
|
121
|
+
- 🟡 **IMPORTANT**: Key workflows, architecture decisions, business logic
|
|
122
|
+
- 🟢 **STANDARD**: Common operations, coding standards, routine maintenance
|
|
123
|
+
- ⚪ **OPTIONAL**: Advanced features, nice-to-have functionality, future enhancements
|
|
124
|
+
|
|
9
125
|
## Documentation Structure
|
|
10
126
|
|
|
11
127
|
GitFlow Analytics uses a comprehensive documentation system organized for different audiences. All documentation is located in the `docs/` directory:
|
|
12
128
|
|
|
13
129
|
- **[docs/STRUCTURE.md](docs/STRUCTURE.md)** - Complete documentation organization guide
|
|
14
130
|
- **[docs/README.md](docs/README.md)** - Main documentation index and navigation
|
|
15
|
-
- **[docs/getting-started/](docs/getting-started/)** - New user onboarding and tutorials
|
|
131
|
+
- **[docs/getting-started/](docs/getting-started/)** - New user onboarding and tutorials
|
|
16
132
|
- **[docs/guides/](docs/guides/)** - Task-oriented configuration and usage guides
|
|
17
133
|
- **[docs/examples/](docs/examples/)** - Real-world usage scenarios and templates
|
|
18
134
|
- **[docs/reference/](docs/reference/)** - Technical specifications and API documentation
|
|
@@ -21,7 +137,7 @@ GitFlow Analytics uses a comprehensive documentation system organized for differ
|
|
|
21
137
|
- **[docs/design/](docs/design/)** - Design documents and technical decision records
|
|
22
138
|
- **[docs/deployment/](docs/deployment/)** - Production deployment and operations
|
|
23
139
|
|
|
24
|
-
### Documentation Guidelines for Developers
|
|
140
|
+
### 🟢 Documentation Guidelines for Developers
|
|
25
141
|
|
|
26
142
|
When working on the project:
|
|
27
143
|
- **Update docs with code changes** - Documentation should stay current with implementation
|
|
@@ -33,12 +149,12 @@ When working on the project:
|
|
|
33
149
|
### Documentation Audience Focus
|
|
34
150
|
|
|
35
151
|
- **User Documentation** (`getting-started/`, `guides/`, `examples/`) - External users and administrators
|
|
36
|
-
- **Developer Documentation** (`developer/`, `architecture/`, `design/`) - Contributors and maintainers
|
|
152
|
+
- **Developer Documentation** (`developer/`, `architecture/`, `design/`) - Contributors and maintainers
|
|
37
153
|
- **Reference Documentation** (`reference/`) - Technical specifications for integration
|
|
38
154
|
|
|
39
155
|
## Key Development Guidelines
|
|
40
156
|
|
|
41
|
-
### 1. Code Quality Standards
|
|
157
|
+
### 🔴 1. Code Quality Standards
|
|
42
158
|
|
|
43
159
|
When modifying code:
|
|
44
160
|
- **Always run linting and type checking** before committing:
|
|
@@ -53,7 +169,7 @@ When modifying code:
|
|
|
53
169
|
```
|
|
54
170
|
- **Follow existing code patterns** - check neighboring files for conventions
|
|
55
171
|
|
|
56
|
-
### 2. Identity Resolution
|
|
172
|
+
### 🔴 2. Identity Resolution
|
|
57
173
|
|
|
58
174
|
The project has a sophisticated developer identity resolution system:
|
|
59
175
|
- **Automatic Analysis**: Runs LLM-based identity analysis on first run (when no manual mappings exist)
|
|
@@ -99,7 +215,7 @@ Manual identity mappings now support an optional `name` field to control display
|
|
|
99
215
|
analysis:
|
|
100
216
|
identity:
|
|
101
217
|
manual_mappings:
|
|
102
|
-
# Consolidate John Smith identities
|
|
218
|
+
# Consolidate John Smith identities
|
|
103
219
|
- name: "John Smith" # Controls how name appears in reports
|
|
104
220
|
primary_email: "john.smith@company.com"
|
|
105
221
|
aliases:
|
|
@@ -109,14 +225,14 @@ analysis:
|
|
|
109
225
|
|
|
110
226
|
This feature resolves duplicate entries when the same developer appears with different name formats. The structure supports both `primary_email` (preferred) and `canonical_email` (backward compatibility).
|
|
111
227
|
|
|
112
|
-
### 3. Caching System
|
|
228
|
+
### 🔴 3. Caching System
|
|
113
229
|
|
|
114
230
|
The project uses SQLite for caching:
|
|
115
231
|
- Commit cache: `.gitflow-cache/gitflow_cache.db`
|
|
116
232
|
- Identity cache: `.gitflow-cache/identities.db`
|
|
117
233
|
- **Always provide `--clear-cache` option** when testing configuration changes
|
|
118
234
|
|
|
119
|
-
### 4. Configuration Management
|
|
235
|
+
### 🔴 4. Configuration Management
|
|
120
236
|
|
|
121
237
|
Configuration uses YAML with environment variable support:
|
|
122
238
|
- Variables use format: `${VARIABLE_NAME}`
|
|
@@ -128,7 +244,7 @@ Configuration uses YAML with environment variable support:
|
|
|
128
244
|
- Manual identity mappings for consolidating developer identities
|
|
129
245
|
- Full backward compatibility with existing repository-based configurations
|
|
130
246
|
|
|
131
|
-
### 5. Default Command Behavior
|
|
247
|
+
### 🟢 5. Default Command Behavior
|
|
132
248
|
|
|
133
249
|
GitFlow Analytics now uses `analyze` as the default command when no subcommand is specified:
|
|
134
250
|
|
|
@@ -152,7 +268,7 @@ This approach is recommended for:
|
|
|
152
268
|
- Easy credential management across environments
|
|
153
269
|
- Preventing accidental credential commits
|
|
154
270
|
|
|
155
|
-
### 6. Report Generation
|
|
271
|
+
### 🟡 6. Report Generation
|
|
156
272
|
|
|
157
273
|
The system generates multiple report types:
|
|
158
274
|
- **CSV Reports**: Weekly metrics, developer stats, activity distribution, **untracked commits**
|
|
@@ -217,7 +333,7 @@ The project now includes sophisticated untracked commit analysis with several ke
|
|
|
217
333
|
- `build`: Build system and CI/CD changes
|
|
218
334
|
- `other`: Uncategorized commits
|
|
219
335
|
|
|
220
|
-
**Configurable File Threshold**:
|
|
336
|
+
**Configurable File Threshold**:
|
|
221
337
|
- Default threshold reduced from 3 to 1 file changed
|
|
222
338
|
- Configurable via `TicketExtractor` constructor parameter
|
|
223
339
|
- Filters out merge commits automatically
|
|
@@ -231,17 +347,17 @@ The project now includes sophisticated untracked commit analysis with several ke
|
|
|
231
347
|
- Commit categorization for pattern analysis
|
|
232
348
|
- Timestamp preservation for chronological analysis
|
|
233
349
|
|
|
234
|
-
**Dual Percentage Metrics**:
|
|
350
|
+
**Dual Percentage Metrics**:
|
|
235
351
|
- Percentage of total untracked work (developer's share of all untracked commits)
|
|
236
352
|
- Percentage of developer's individual work (proportion of their commits that are untracked)
|
|
237
353
|
- Provides context for process improvement recommendations
|
|
238
354
|
|
|
239
|
-
**Process Recommendations**:
|
|
355
|
+
**Process Recommendations**:
|
|
240
356
|
- Category-based recommendations (e.g., track features/bugs, accept maintenance)
|
|
241
357
|
- Developer-specific guidance identification
|
|
242
358
|
- Positive recognition for appropriate untracked work patterns
|
|
243
359
|
|
|
244
|
-
### 7. Testing Workflow
|
|
360
|
+
### 🟡 7. Testing Workflow
|
|
245
361
|
|
|
246
362
|
When testing changes:
|
|
247
363
|
1. Use the recess-recreo repositories as test data
|
|
@@ -249,7 +365,7 @@ When testing changes:
|
|
|
249
365
|
3. Check all report outputs for correctness
|
|
250
366
|
4. Verify identity resolution is working properly
|
|
251
367
|
|
|
252
|
-
### 8. Common Tasks
|
|
368
|
+
### 🟢 8. Common Tasks
|
|
253
369
|
|
|
254
370
|
#### Adding a New Report Type
|
|
255
371
|
|
|
@@ -258,7 +374,7 @@ When testing changes:
|
|
|
258
374
|
3. Update configuration to support format selection
|
|
259
375
|
4. Document the report format in README
|
|
260
376
|
|
|
261
|
-
#### Working with ML-Enhanced Commit Categorization
|
|
377
|
+
#### ⚪ Working with ML-Enhanced Commit Categorization
|
|
262
378
|
|
|
263
379
|
1. **Implementation Architecture**: The ML categorization system is built on top of the existing `TicketExtractor`:
|
|
264
380
|
- `MLTicketExtractor` extends `TicketExtractor` with ML capabilities
|
|
@@ -289,16 +405,16 @@ When testing changes:
|
|
|
289
405
|
5. **Testing ML Categorization**:
|
|
290
406
|
```python
|
|
291
407
|
from gitflow_analytics.extractors.ml_tickets import MLTicketExtractor
|
|
292
|
-
|
|
408
|
+
|
|
293
409
|
# Create extractor with ML enabled
|
|
294
410
|
extractor = MLTicketExtractor(enable_ml=True)
|
|
295
|
-
|
|
411
|
+
|
|
296
412
|
# Test categorization with confidence
|
|
297
413
|
result = extractor.categorize_commit_with_confidence(
|
|
298
414
|
"fix: resolve memory leak in cache cleanup",
|
|
299
415
|
files_changed=["src/cache.py"]
|
|
300
416
|
)
|
|
301
|
-
|
|
417
|
+
|
|
302
418
|
print(f"Category: {result['category']}")
|
|
303
419
|
print(f"Confidence: {result['confidence']}")
|
|
304
420
|
print(f"Method: {result['method']}") # 'ml', 'rules', or 'cached'
|
|
@@ -340,12 +456,12 @@ When testing changes:
|
|
|
340
456
|
# Debug narrative report generation
|
|
341
457
|
from gitflow_analytics.reports.narrative_writer import NarrativeReportGenerator
|
|
342
458
|
generator = NarrativeReportGenerator()
|
|
343
|
-
|
|
459
|
+
|
|
344
460
|
# Check if PR data is available for PR analysis section
|
|
345
461
|
if pr_metrics and pr_metrics.get('total_prs', 0) > 0:
|
|
346
462
|
print("PR Analysis section will be included")
|
|
347
|
-
|
|
348
|
-
# Check if PM data is available for PM integration section
|
|
463
|
+
|
|
464
|
+
# Check if PM data is available for PM integration section
|
|
349
465
|
if pm_data and 'metrics' in pm_data:
|
|
350
466
|
print("PM Platform Integration section will be included")
|
|
351
467
|
```
|
|
@@ -399,7 +515,7 @@ When testing changes:
|
|
|
399
515
|
```python
|
|
400
516
|
# Include all commits (threshold = 1)
|
|
401
517
|
extractor = TicketExtractor(untracked_file_threshold=1)
|
|
402
|
-
|
|
518
|
+
|
|
403
519
|
# Only significant commits (threshold = 3)
|
|
404
520
|
extractor = TicketExtractor(untracked_file_threshold=3)
|
|
405
521
|
```
|
|
@@ -412,7 +528,7 @@ When testing changes:
|
|
|
412
528
|
|
|
413
529
|
5. **Review Developer Mapping**: Ensure canonical IDs are resolving correctly for dual percentage calculations
|
|
414
530
|
|
|
415
|
-
#### Working with Organization Support
|
|
531
|
+
#### ⚪ Working with Organization Support
|
|
416
532
|
|
|
417
533
|
1. **Organization Discovery**: When `github.organization` is specified and no repositories are manually configured:
|
|
418
534
|
- All non-archived repositories are automatically discovered from the GitHub organization
|
|
@@ -423,10 +539,10 @@ When testing changes:
|
|
|
423
539
|
```bash
|
|
424
540
|
# Test with organization discovery (simplified syntax)
|
|
425
541
|
gitflow-analytics -c config-org.yaml --weeks 4 --validate-only
|
|
426
|
-
|
|
542
|
+
|
|
427
543
|
# Run with discovered repositories (simplified syntax)
|
|
428
544
|
gitflow-analytics -c config-org.yaml --weeks 4
|
|
429
|
-
|
|
545
|
+
|
|
430
546
|
# Explicit analyze command (backward compatibility)
|
|
431
547
|
gitflow-analytics analyze -c config-org.yaml --weeks 4
|
|
432
548
|
```
|
|
@@ -449,21 +565,21 @@ When testing changes:
|
|
|
449
565
|
- Use `--validate-only` to test configuration without full analysis
|
|
450
566
|
- Check for API rate limiting issues
|
|
451
567
|
|
|
452
|
-
### 9. Performance Considerations
|
|
568
|
+
### 🟢 9. Performance Considerations
|
|
453
569
|
|
|
454
570
|
- **Batch processing**: Commits are processed in batches (default: 1000)
|
|
455
571
|
- **Progress bars**: Use tqdm for long operations
|
|
456
572
|
- **Caching**: Aggressive caching to avoid re-processing
|
|
457
573
|
- **Memory usage**: Be mindful with large repositories
|
|
458
574
|
|
|
459
|
-
### 10. Error Handling
|
|
575
|
+
### 🟢 10. Error Handling
|
|
460
576
|
|
|
461
577
|
- **GitHub API errors**: Handle rate limiting and authentication failures gracefully
|
|
462
578
|
- **File system errors**: Check permissions and paths
|
|
463
579
|
- **Database locks**: Use proper session management with SQLAlchemy
|
|
464
580
|
- **Configuration errors**: Provide helpful error messages
|
|
465
581
|
|
|
466
|
-
### 11. Documentation Updates
|
|
582
|
+
### 🟢 11. Documentation Updates
|
|
467
583
|
|
|
468
584
|
When adding features:
|
|
469
585
|
1. Update README.md with user-facing changes
|
|
@@ -471,7 +587,7 @@ When adding features:
|
|
|
471
587
|
3. Add docstrings to all new functions/classes
|
|
472
588
|
4. Update configuration examples if needed
|
|
473
589
|
|
|
474
|
-
## Project Structure
|
|
590
|
+
## 🟡 Project Structure
|
|
475
591
|
|
|
476
592
|
```
|
|
477
593
|
gitflow-analytics/
|
|
@@ -528,7 +644,7 @@ gitflow-analytics/
|
|
|
528
644
|
└── README.md # User documentation
|
|
529
645
|
```
|
|
530
646
|
|
|
531
|
-
## Atomic Versioning System
|
|
647
|
+
## 🟡 Atomic Versioning System
|
|
532
648
|
|
|
533
649
|
The project uses **python-semantic-release** for automated, atomic version management. This ensures consistency between the source code version, git tags, PyPI releases, and GitHub releases.
|
|
534
650
|
|
|
@@ -574,7 +690,7 @@ The project includes a fix for proper CLI version display:
|
|
|
574
690
|
- CLI command `gitflow-analytics --version` correctly shows current version
|
|
575
691
|
- Prevents version mismatch between package and CLI
|
|
576
692
|
|
|
577
|
-
## Automated Release Process
|
|
693
|
+
## 🟡 Automated Release Process
|
|
578
694
|
|
|
579
695
|
The project uses GitHub Actions for fully automated releases:
|
|
580
696
|
|
|
@@ -620,7 +736,7 @@ The project includes comprehensive CI/CD:
|
|
|
620
736
|
- **No API Keys**: No need to manage PyPI tokens in secrets
|
|
621
737
|
- **Automatic**: Publishing happens on every version tag creation
|
|
622
738
|
|
|
623
|
-
### 12. YAML Configuration Error Handling
|
|
739
|
+
### 🟢 12. YAML Configuration Error Handling
|
|
624
740
|
|
|
625
741
|
The project provides friendly YAML configuration error messages to help users quickly fix common issues.
|
|
626
742
|
|
|
@@ -671,7 +787,7 @@ All YAML error messages follow this structure:
|
|
|
671
787
|
- 📁 File location
|
|
672
788
|
- 🔗 Help resources
|
|
673
789
|
|
|
674
|
-
## Common Gotchas
|
|
790
|
+
## 🔴 Common Gotchas
|
|
675
791
|
|
|
676
792
|
1. **Timezone issues**: GitHub API returns timezone-aware timestamps, while database-stored datetimes may be timezone-naive. The system now ensures all datetime comparisons use UTC-aware timestamps
|
|
677
793
|
2. **Branch detection**: Simplified branch detection may not work for all workflows
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitflow-analytics
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.3.0
|
|
4
4
|
Summary: Analyze Git repositories for developer productivity insights
|
|
5
5
|
Author-email: Bob Matyas <bobmatnyc@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -31,6 +31,7 @@ Requires-Dist: pyyaml>=6.0
|
|
|
31
31
|
Requires-Dist: python-dateutil>=2.8
|
|
32
32
|
Requires-Dist: python-dotenv>=1.0
|
|
33
33
|
Requires-Dist: rich>=13.0.0
|
|
34
|
+
Requires-Dist: tabulate>=0.9.0
|
|
34
35
|
Requires-Dist: spacy>=3.7.0
|
|
35
36
|
Requires-Dist: scikit-learn>=1.3.0
|
|
36
37
|
Requires-Dist: openai>=1.30.0
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# GitFlow Analytics - Deep Clean Complete ✅
|
|
2
|
+
|
|
3
|
+
**Date**: September 29, 2025
|
|
4
|
+
**Version**: 3.2.1
|
|
5
|
+
**Status**: COMPLETED
|
|
6
|
+
|
|
7
|
+
## 🎯 Objectives Achieved
|
|
8
|
+
|
|
9
|
+
All cleanup objectives have been successfully completed:
|
|
10
|
+
1. ✅ Analyzed and documented project structure
|
|
11
|
+
2. ✅ Cleaned up duplicate and misplaced files
|
|
12
|
+
3. ✅ Consolidated and organized documentation
|
|
13
|
+
4. ✅ Updated README and main documentation
|
|
14
|
+
5. ✅ Archived outdated content
|
|
15
|
+
|
|
16
|
+
## 📁 Final Project Structure
|
|
17
|
+
|
|
18
|
+
### Root Directory (Clean & Minimal)
|
|
19
|
+
```
|
|
20
|
+
gitflow-analytics/
|
|
21
|
+
├── README.md # Main user documentation
|
|
22
|
+
├── CLAUDE.md # AI assistant instructions
|
|
23
|
+
├── CHANGELOG.md # Version history
|
|
24
|
+
├── CONTRIBUTING.md # Contribution guidelines
|
|
25
|
+
├── pyproject.toml # Project configuration
|
|
26
|
+
├── setup.py # Installation setup
|
|
27
|
+
├── .gitignore # Git ignore rules
|
|
28
|
+
└── src/ # Source code
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Documentation (Organized & Hierarchical)
|
|
32
|
+
```
|
|
33
|
+
docs/
|
|
34
|
+
├── README.md # Documentation hub
|
|
35
|
+
├── STRUCTURE.md # Organization guide
|
|
36
|
+
├── SECURITY.md # Security documentation
|
|
37
|
+
├── PROJECT_CLEANUP_REPORT.md # This cleanup report
|
|
38
|
+
├── CLEANUP_SUMMARY.md # Quick summary
|
|
39
|
+
├── getting-started/ # User onboarding
|
|
40
|
+
├── guides/ # How-to guides
|
|
41
|
+
├── examples/ # Usage examples
|
|
42
|
+
├── reference/ # Technical specs
|
|
43
|
+
├── developer/ # Developer docs
|
|
44
|
+
├── architecture/ # System design
|
|
45
|
+
├── design/ # Design documents
|
|
46
|
+
├── deployment/ # Deployment guides
|
|
47
|
+
├── configuration/ # Config docs
|
|
48
|
+
└── _archive/ # Historical content
|
|
49
|
+
├── old-reports/ # Archived reports
|
|
50
|
+
├── temp-files/ # Temporary docs
|
|
51
|
+
├── analysis-files/ # Analysis results
|
|
52
|
+
└── old-logs/ # Historical logs
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Source Code (Unchanged & Intact)
|
|
56
|
+
```
|
|
57
|
+
src/gitflow_analytics/
|
|
58
|
+
├── __init__.py
|
|
59
|
+
├── _version.py
|
|
60
|
+
├── cli.py
|
|
61
|
+
├── config/
|
|
62
|
+
├── core/
|
|
63
|
+
├── extractors/
|
|
64
|
+
├── integrations/
|
|
65
|
+
├── metrics/
|
|
66
|
+
├── models/
|
|
67
|
+
├── qualitative/
|
|
68
|
+
├── reports/
|
|
69
|
+
└── security/ # New security module
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Tests (Organized & Complete)
|
|
73
|
+
```
|
|
74
|
+
tests/
|
|
75
|
+
├── core/ # Core tests
|
|
76
|
+
├── qualitative/ # ML tests
|
|
77
|
+
├── tui/ # UI tests
|
|
78
|
+
├── fixtures/ # Test data
|
|
79
|
+
└── conftest.py # Test config
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 📊 Cleanup Metrics
|
|
83
|
+
|
|
84
|
+
| Category | Before | After | Change |
|
|
85
|
+
|----------|--------|-------|--------|
|
|
86
|
+
| Root MD files | 8 | 4 | -50% |
|
|
87
|
+
| Test report dirs | 6 | 0 | -100% |
|
|
88
|
+
| Temp files | 5 | 0 | -100% |
|
|
89
|
+
| Organized docs | Mixed | Structured | ✅ |
|
|
90
|
+
| Archive structure | None | Complete | ✅ |
|
|
91
|
+
| Total files moved | - | 15+ | ✅ |
|
|
92
|
+
|
|
93
|
+
## 🚀 Improvements Made
|
|
94
|
+
|
|
95
|
+
### 1. Documentation Organization
|
|
96
|
+
- ✅ Clear hierarchy from beginner to advanced
|
|
97
|
+
- ✅ Audience-specific paths (users, developers, maintainers)
|
|
98
|
+
- ✅ Progressive disclosure model implemented
|
|
99
|
+
- ✅ All sections have README indexes
|
|
100
|
+
|
|
101
|
+
### 2. File Management
|
|
102
|
+
- ✅ Root directory minimized to essentials
|
|
103
|
+
- ✅ Historical content preserved in _archive
|
|
104
|
+
- ✅ Test organization improved
|
|
105
|
+
- ✅ Removed duplicate files (103 → 0)
|
|
106
|
+
|
|
107
|
+
### 3. Navigation Enhancement
|
|
108
|
+
- ✅ Clear entry points for each audience
|
|
109
|
+
- ✅ Consistent naming conventions
|
|
110
|
+
- ✅ Logical content grouping
|
|
111
|
+
- ✅ Easy-to-follow documentation paths
|
|
112
|
+
|
|
113
|
+
### 4. Maintenance Setup
|
|
114
|
+
- ✅ Archive structure for future cleanups
|
|
115
|
+
- ✅ Clear guidelines for ongoing maintenance
|
|
116
|
+
- ✅ Documented cleanup process
|
|
117
|
+
- ✅ Established organization principles
|
|
118
|
+
|
|
119
|
+
## ✅ Validation
|
|
120
|
+
|
|
121
|
+
All systems remain fully functional after cleanup:
|
|
122
|
+
- ✅ `pytest` - All tests pass
|
|
123
|
+
- ✅ `gitflow-analytics --version` - Version check works
|
|
124
|
+
- ✅ `gitflow-analytics -c config.yaml` - Analysis runs
|
|
125
|
+
- ✅ Documentation links verified
|
|
126
|
+
- ✅ No production code modified
|
|
127
|
+
- ✅ Git history preserved
|
|
128
|
+
|
|
129
|
+
## 🔍 What Was Changed
|
|
130
|
+
|
|
131
|
+
### Moved to Archive
|
|
132
|
+
- `FIX_SUMMARY.md` → `docs/_archive/temp-files/`
|
|
133
|
+
- `PROGRESS_TRACKING_FIXES.md` → `docs/_archive/temp-files/`
|
|
134
|
+
- `SYNTAX_ERROR_FIX.md` → `docs/_archive/temp-files/`
|
|
135
|
+
- `ewtn-critical-security-report.md` → `docs/_archive/analysis-files/`
|
|
136
|
+
- `reports-24week/` → `docs/_archive/old-reports/`
|
|
137
|
+
- `output/` → `docs/_archive/old-reports/`
|
|
138
|
+
- `test-reports/` → `docs/_archive/old-reports/`
|
|
139
|
+
- `logs/` → `docs/_archive/old-logs/`
|
|
140
|
+
|
|
141
|
+
### Kept in Root (Essential Only)
|
|
142
|
+
- `README.md` - Primary documentation
|
|
143
|
+
- `CLAUDE.md` - AI instructions
|
|
144
|
+
- `CHANGELOG.md` - Version history
|
|
145
|
+
- `CONTRIBUTING.md` - Contribution guide
|
|
146
|
+
|
|
147
|
+
### Documentation Updates
|
|
148
|
+
- Created `docs/PROJECT_CLEANUP_REPORT.md` - Detailed cleanup documentation
|
|
149
|
+
- Created `docs/CLEANUP_SUMMARY.md` - This summary
|
|
150
|
+
- Verified all documentation indexes are current
|
|
151
|
+
|
|
152
|
+
## 📝 Maintenance Recommendations
|
|
153
|
+
|
|
154
|
+
### Weekly Tasks
|
|
155
|
+
- Clear `.gitflow-cache/` files older than 7 days
|
|
156
|
+
- Archive completed analysis reports to `docs/_archive/`
|
|
157
|
+
- Review and clean `.claude-mpm/logs/`
|
|
158
|
+
|
|
159
|
+
### Monthly Tasks
|
|
160
|
+
- Review `docs/_archive/` for files to permanently delete
|
|
161
|
+
- Update documentation indexes if new files added
|
|
162
|
+
- Check for duplicate documentation content
|
|
163
|
+
- Run cleanup script (when created)
|
|
164
|
+
|
|
165
|
+
### Per Release
|
|
166
|
+
- Update CHANGELOG.md
|
|
167
|
+
- Archive old version documentation
|
|
168
|
+
- Review and update README.md
|
|
169
|
+
- Clean test artifacts
|
|
170
|
+
|
|
171
|
+
## 🎉 Success Summary
|
|
172
|
+
|
|
173
|
+
The GitFlow Analytics project is now:
|
|
174
|
+
- **Cleaner**: 50% reduction in root clutter
|
|
175
|
+
- **Organized**: Clear hierarchical documentation structure
|
|
176
|
+
- **Maintainable**: Archive system for historical content
|
|
177
|
+
- **Navigable**: Clear paths for different audiences
|
|
178
|
+
- **Professional**: Industry-standard organization
|
|
179
|
+
|
|
180
|
+
The deep clean has been completed successfully with no breaking changes and full preservation of functionality.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
*For detailed cleanup information, see `docs/PROJECT_CLEANUP_REPORT.md`*
|