solarwindpy 0.0.1.dev0__py3-none-any.whl → 0.1.0__py3-none-any.whl

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.

Potentially problematic release.


This version of solarwindpy might be problematic. Click here for more details.

Files changed (412) hide show
  1. plans/.velocity/metrics.json +96 -0
  2. plans/0-overview-template.md +268 -0
  3. plans/N-phase-template.md +106 -0
  4. plans/PLAN_AUDIT_SUMMARY.md +173 -0
  5. plans/TEMPLATE-USAGE-GUIDE.md +198 -0
  6. plans/__init__.py +1 -0
  7. plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
  8. plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
  9. plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
  10. plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
  11. plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
  12. plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
  13. plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
  14. plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
  15. plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
  16. plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
  17. plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
  18. plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
  19. plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
  20. plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
  21. plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
  22. plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
  23. plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
  24. plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
  25. plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
  26. plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
  27. plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
  28. plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
  29. plans/cicd-architecture-redesign/0-Overview.md +193 -0
  30. plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
  31. plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
  32. plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
  33. plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
  34. plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
  35. plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
  36. plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
  37. plans/cicd-architecture-redesign/8-Documentation.md +285 -0
  38. plans/cicd-architecture-redesign/Closeout.md +225 -0
  39. plans/closeout-template.md +259 -0
  40. plans/completed/circular-import-audit/0-Overview.md +152 -0
  41. plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
  42. plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
  43. plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
  44. plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
  45. plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
  46. plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
  47. plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
  48. plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
  49. plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
  50. plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
  51. plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
  52. plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
  53. plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
  54. plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
  55. plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
  56. plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
  57. plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
  58. plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
  59. plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
  60. plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
  61. plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
  62. plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
  63. plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
  64. plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
  65. plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
  66. plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
  67. plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
  68. plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
  69. plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
  70. plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
  71. plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
  72. plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
  73. plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
  74. plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
  75. plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
  76. plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
  77. plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
  78. plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
  79. plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
  80. plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
  81. plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
  82. plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
  83. plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
  84. plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
  85. plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
  86. plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
  87. plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
  88. plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
  89. plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
  90. plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
  91. plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
  92. plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
  93. plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
  94. plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
  95. plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
  96. plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
  97. plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
  98. plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
  99. plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
  100. plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
  101. plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
  102. plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
  103. plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
  104. plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
  105. plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
  106. plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
  107. plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
  108. plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
  109. plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
  110. plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
  111. plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
  112. plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
  113. plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
  114. plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
  115. plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
  116. plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
  117. plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
  118. plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
  119. plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
  120. plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
  121. plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
  122. plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
  123. plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
  124. plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
  125. plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
  126. plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
  127. plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
  128. plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
  129. plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
  130. plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
  131. plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
  132. plans/completed/pr-review-remediation/0-Overview.md +138 -0
  133. plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
  134. plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
  135. plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
  136. plans/completed/pr-review-remediation/compacted_state.md +66 -0
  137. plans/completed/python-310-migration/0-Overview.md +390 -0
  138. plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
  139. plans/completed/python-310-migration/2-Implementation.md +256 -0
  140. plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
  141. plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
  142. plans/completed/python-310-migration/5-Closeout.md +252 -0
  143. plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
  144. plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
  145. plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
  146. plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
  147. plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
  148. plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
  149. plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
  150. plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
  151. plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
  152. plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
  153. plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
  154. plans/completed/test-directory-consolidation/0-Overview.md +51 -0
  155. plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
  156. plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
  157. plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
  158. plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
  159. plans/completed/test-directory-consolidation/5-Validation.md +152 -0
  160. plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
  161. plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
  162. plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
  163. plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
  164. plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
  165. plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
  166. plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
  167. plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
  168. plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
  169. plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
  170. plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
  171. plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
  172. plans/documentation-code-audit/0-Overview.md +393 -0
  173. plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
  174. plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
  175. plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
  176. plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
  177. plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
  178. plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
  179. plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
  180. plans/documentation-code-audit/8-Closeout.md +456 -0
  181. plans/documentation-rebuild-session/compacted_state.md +109 -0
  182. plans/documentation-rendering-fixes/0-Overview.md +104 -0
  183. plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
  184. plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
  185. plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
  186. plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
  187. plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
  188. plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
  189. plans/documentation-rendering-fixes/compacted_state.md +132 -0
  190. plans/documentation-template-fix/0-Overview.md +197 -0
  191. plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
  192. plans/documentation-template-fix/2-Template-Modification.md +609 -0
  193. plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
  194. plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
  195. plans/documentation-template-fix/5-Documentation-Training.md +602 -0
  196. plans/documentation-workflow-fix/0-Overview.md +222 -0
  197. plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
  198. plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
  199. plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
  200. plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
  201. plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
  202. plans/duplicate-object-warnings-fix-plan.md +130 -0
  203. plans/github-issues-migration/0-Overview.md +510 -0
  204. plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
  205. plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
  206. plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
  207. plans/github-issues-migration/4-Validated-Migration.md +252 -0
  208. plans/github-issues-migration/5-Documentation-Training.md +171 -0
  209. plans/github-issues-migration/6-Closeout.md +179 -0
  210. plans/github-workflows-repair/repair-plan.md +299 -0
  211. plans/issues_from_plans.py +342 -0
  212. plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
  213. plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
  214. plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
  215. plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
  216. plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
  217. plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
  218. plans/python-310-migration/0-Overview.md +390 -0
  219. plans/python-310-migration/1-Planning-Setup.md +164 -0
  220. plans/python-310-migration/2-Implementation.md +256 -0
  221. plans/python-310-migration/3-Testing-Validation.md +335 -0
  222. plans/python-310-migration/4-Documentation-Release.md +274 -0
  223. plans/python-310-migration/5-Closeout.md +252 -0
  224. plans/readthedocs-simplified/0-Overview.md +243 -0
  225. plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
  226. plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
  227. plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
  228. plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
  229. plans/readthedocs-simplified/5-Closeout.md +231 -0
  230. plans/readthedocs-simplified/compacted_state.md +127 -0
  231. plans/session-compaction-2025-08-12/compacted_state.md +114 -0
  232. plans/session-compaction-2025-08-13/compacted_state.md +145 -0
  233. plans/session-continuity-protocol/0-Overview.md +35 -0
  234. plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
  235. plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
  236. plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
  237. plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
  238. plans/sphinx-warnings-analysis.md +222 -0
  239. plans/systemprompt-optimization/0-Overview.md +447 -0
  240. plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
  241. plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
  242. plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
  243. plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
  244. plans/systemprompt-optimization/9-Closeout.md +165 -0
  245. plans/systemprompt-optimization/compacted_state.md +143 -0
  246. plans/template-value-propositions/0-Overview.md +357 -0
  247. plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
  248. plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
  249. plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
  250. plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
  251. plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
  252. plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
  253. plans/tests-audit/0-Overview.md +410 -0
  254. plans/tests-audit/1-Discovery-Inventory.md +170 -0
  255. plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
  256. plans/tests-audit/3-Architecture-Compliance.md +195 -0
  257. plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
  258. plans/tests-audit/5-Documentation-Enhancement.md +220 -0
  259. plans/tests-audit/6-Audit-Deliverables.md +220 -0
  260. plans/tests-audit/7-Closeout.md +252 -0
  261. plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
  262. plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
  263. plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
  264. plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
  265. plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
  266. plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
  267. plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
  268. plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
  269. plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
  270. plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
  271. plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
  272. plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
  273. plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
  274. plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
  275. plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
  276. plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
  277. plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
  278. plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
  279. plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
  280. plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
  281. plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
  282. plans/tests-audit/artifacts/test_parser.py +395 -0
  283. solarwindpy/README.md +3 -0
  284. solarwindpy/Untitled.ipynb +54 -0
  285. solarwindpy/__init__.py +74 -0
  286. solarwindpy/core/__init__.py +23 -0
  287. solarwindpy/core/alfvenic_turbulence.py +804 -0
  288. solarwindpy/core/base.py +267 -0
  289. solarwindpy/core/ions.py +309 -0
  290. solarwindpy/core/plasma.py +2133 -0
  291. solarwindpy/core/spacecraft.py +256 -0
  292. solarwindpy/core/tensor.py +90 -0
  293. solarwindpy/core/units_constants.py +199 -0
  294. solarwindpy/core/vector.py +328 -0
  295. solarwindpy/fitfunctions/__init__.py +20 -0
  296. solarwindpy/fitfunctions/core.py +734 -0
  297. solarwindpy/fitfunctions/exponentials.py +188 -0
  298. solarwindpy/fitfunctions/gaussians.py +264 -0
  299. solarwindpy/fitfunctions/lines.py +116 -0
  300. solarwindpy/fitfunctions/moyal.py +71 -0
  301. solarwindpy/fitfunctions/plots.py +751 -0
  302. solarwindpy/fitfunctions/power_laws.py +209 -0
  303. solarwindpy/fitfunctions/tex_info.py +568 -0
  304. solarwindpy/fitfunctions/trend_fits.py +482 -0
  305. solarwindpy/instabilities/__init__.py +16 -0
  306. solarwindpy/instabilities/beta_ani.py +82 -0
  307. solarwindpy/instabilities/verscharen2016.py +631 -0
  308. solarwindpy/plotting/__init__.py +33 -0
  309. solarwindpy/plotting/agg_plot.py +489 -0
  310. solarwindpy/plotting/base.py +465 -0
  311. solarwindpy/plotting/hist1d.py +405 -0
  312. solarwindpy/plotting/hist2d.py +1035 -0
  313. solarwindpy/plotting/histograms.py +1845 -0
  314. solarwindpy/plotting/labels/__init__.py +104 -0
  315. solarwindpy/plotting/labels/base.py +686 -0
  316. solarwindpy/plotting/labels/chemistry.py +19 -0
  317. solarwindpy/plotting/labels/composition.py +100 -0
  318. solarwindpy/plotting/labels/datetime.py +235 -0
  319. solarwindpy/plotting/labels/elemental_abundance.py +73 -0
  320. solarwindpy/plotting/labels/special.py +794 -0
  321. solarwindpy/plotting/orbits.py +515 -0
  322. solarwindpy/plotting/scatter.py +99 -0
  323. solarwindpy/plotting/select_data_from_figure.py +329 -0
  324. solarwindpy/plotting/spiral.py +980 -0
  325. solarwindpy/plotting/tools.py +434 -0
  326. solarwindpy/scripts/__init__.py +1 -0
  327. solarwindpy/scripts/logs/.gitignore +1 -0
  328. solarwindpy/solar_activity/__init__.py +53 -0
  329. solarwindpy/solar_activity/base.py +605 -0
  330. solarwindpy/solar_activity/lisird/__init__.py +3 -0
  331. solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
  332. solarwindpy/solar_activity/lisird/lisird.py +319 -0
  333. solarwindpy/solar_activity/plots.py +116 -0
  334. solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
  335. solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
  336. solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
  337. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
  338. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
  339. solarwindpy/tools/__init__.py +162 -0
  340. solarwindpy-0.1.0.dist-info/METADATA +181 -0
  341. solarwindpy-0.1.0.dist-info/RECORD +409 -0
  342. {solarwindpy-0.0.1.dev0.dist-info → solarwindpy-0.1.0.dist-info}/WHEEL +1 -1
  343. solarwindpy-0.1.0.dist-info/licenses/LICENSE.rst +32 -0
  344. solarwindpy-0.1.0.dist-info/top_level.txt +3 -0
  345. tests/__init__.py +1 -0
  346. tests/conftest.py +10 -0
  347. tests/core/__init__.py +1 -0
  348. tests/core/test_alfvenic_turbulence.py +544 -0
  349. tests/core/test_base.py +112 -0
  350. tests/core/test_base_head_tail.py +29 -0
  351. tests/core/test_base_mi_tuples.py +11 -0
  352. tests/core/test_core_verify_datetimeindex.py +32 -0
  353. tests/core/test_ions.py +325 -0
  354. tests/core/test_plasma.py +2581 -0
  355. tests/core/test_plasma_io.py +12 -0
  356. tests/core/test_quantities.py +507 -0
  357. tests/core/test_spacecraft.py +210 -0
  358. tests/core/test_units_constants.py +22 -0
  359. tests/data/epoch.csv +4 -0
  360. tests/data/plasma.csv +4 -0
  361. tests/data/spacecraft.csv +4 -0
  362. tests/fitfunctions/conftest.py +60 -0
  363. tests/fitfunctions/test_core.py +193 -0
  364. tests/fitfunctions/test_exponentials.py +342 -0
  365. tests/fitfunctions/test_gaussians.py +142 -0
  366. tests/fitfunctions/test_lines.py +349 -0
  367. tests/fitfunctions/test_moyal.py +258 -0
  368. tests/fitfunctions/test_plots.py +258 -0
  369. tests/fitfunctions/test_power_laws.py +365 -0
  370. tests/fitfunctions/test_tex_info.py +183 -0
  371. tests/fitfunctions/test_trend_fit_properties.py +31 -0
  372. tests/fitfunctions/test_trend_fits.py +244 -0
  373. tests/plotting/__init__.py +1 -0
  374. tests/plotting/labels/__init__.py +1 -0
  375. tests/plotting/labels/test_chemistry.py +243 -0
  376. tests/plotting/labels/test_composition.py +345 -0
  377. tests/plotting/labels/test_datetime.py +445 -0
  378. tests/plotting/labels/test_elemental_abundance.py +366 -0
  379. tests/plotting/labels/test_init.py +66 -0
  380. tests/plotting/labels/test_labels_base.py +347 -0
  381. tests/plotting/labels/test_special.py +550 -0
  382. tests/plotting/test_agg_plot.py +602 -0
  383. tests/plotting/test_base.py +752 -0
  384. tests/plotting/test_fixtures_utilities.py +775 -0
  385. tests/plotting/test_histograms.py +546 -0
  386. tests/plotting/test_integration.py +675 -0
  387. tests/plotting/test_orbits.py +435 -0
  388. tests/plotting/test_performance.py +708 -0
  389. tests/plotting/test_scatter.py +752 -0
  390. tests/plotting/test_select_data_from_figure.py +1209 -0
  391. tests/plotting/test_spiral.py +573 -0
  392. tests/plotting/test_tools.py +607 -0
  393. tests/plotting/test_visual_validation.py +465 -0
  394. tests/solar_activity/__init__.py +1 -0
  395. tests/solar_activity/lisird/__init__.py +1 -0
  396. tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
  397. tests/solar_activity/lisird/test_lisird_id.py +187 -0
  398. tests/solar_activity/sunspot_number/__init__.py +1 -0
  399. tests/solar_activity/sunspot_number/test_init.py +399 -0
  400. tests/solar_activity/sunspot_number/test_sidc.py +465 -0
  401. tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
  402. tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
  403. tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
  404. tests/solar_activity/test_base.py +656 -0
  405. tests/solar_activity/test_init.py +396 -0
  406. tests/solar_activity/test_plots.py +371 -0
  407. tests/test_circular_imports.py +408 -0
  408. tests/test_issue_titles.py +25 -0
  409. tests/test_statusline.py +298 -0
  410. solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
  411. solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
  412. solarwindpy-0.0.1.dev0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,298 @@
1
+ # Phase 2: Configuration Setup
2
+
3
+ ## Objective
4
+ Create robust doc8 configuration to standardize documentation formatting rules and prevent future linting failures.
5
+
6
+ ## Rationale
7
+
8
+ ### Why Configuration Matters
9
+ - **Consistency**: Uniform rules across all documentation
10
+ - **Clarity**: Explicit standards for contributors
11
+ - **Flexibility**: Customizable for project needs
12
+ - **Prevention**: Catches issues before they reach CI/CD
13
+
14
+ ### Current State
15
+ - No `.doc8` configuration file exists
16
+ - Using doc8 defaults which may be too strict
17
+ - No documentation of formatting standards
18
+ - Inconsistent application of rules
19
+
20
+ ## Configuration Design
21
+
22
+ ### 2.1 Create `.doc8` Configuration File
23
+
24
+ **File location**: `/.doc8` (repository root)
25
+
26
+ **Recommended configuration**:
27
+ ```ini
28
+ [doc8]
29
+ # Maximum line length for RST files
30
+ max-line-length = 100
31
+
32
+ # File encoding
33
+ file-encoding = utf-8
34
+
35
+ # Ignore certain error codes if needed
36
+ # D000 - Generic error (usually parsing issues)
37
+ # D001 - Line too long (controlled by max-line-length)
38
+ ignore = D000
39
+
40
+ # Paths to ignore during checking
41
+ # These are auto-generated or third-party files
42
+ ignore-path = docs/build,docs/source/api,docs/_build,.tox,venv
43
+
44
+ # File extensions to check
45
+ extensions = .rst,.txt
46
+
47
+ # Allow long lines in specific cases
48
+ # This helps with tables and URLs that can't be broken
49
+ allow-long-titles = true
50
+
51
+ # Ignore files matching these patterns
52
+ ignore-path-errors = docs/source/solarwindpy.solar_activity.tests.rst;D001
53
+ ```
54
+
55
+ ### 2.2 Alternative: Setup.cfg Configuration
56
+
57
+ If preferring `setup.cfg` over `.doc8`:
58
+
59
+ **Addition to `/setup.cfg`**:
60
+ ```ini
61
+ [doc8]
62
+ max-line-length = 100
63
+ file-encoding = utf-8
64
+ ignore = D000
65
+ ignore-path = docs/build,docs/source/api,docs/_build,.tox,venv
66
+ extensions = .rst,.txt
67
+ ```
68
+
69
+ ### 2.3 Configuration Options Explained
70
+
71
+ | Option | Value | Justification |
72
+ |--------|-------|---------------|
73
+ | `max-line-length` | 100 | Balance between readability and flexibility for documentation |
74
+ | `file-encoding` | utf-8 | Standard encoding, prevents character issues |
75
+ | `ignore` | D000 | Skip generic parsing errors that may not be real issues |
76
+ | `ignore-path` | build dirs, api | Skip auto-generated and build artifacts |
77
+ | `extensions` | .rst,.txt | Focus on documentation files only |
78
+ | `allow-long-titles` | true | Titles/headers often need to be longer |
79
+
80
+ ## Implementation Steps
81
+
82
+ ### Step 2.1: Create Configuration File (3 minutes)
83
+
84
+ **Create `.doc8` file**:
85
+ ```bash
86
+ cat > .doc8 << 'EOF'
87
+ [doc8]
88
+ # SolarWindPy Documentation Linting Configuration
89
+ # This file configures doc8 to check RST documentation formatting
90
+
91
+ # Maximum line length for RST files
92
+ # We use 100 as it's reasonable for documentation while fitting most screens
93
+ max-line-length = 100
94
+
95
+ # File encoding (utf-8 is standard)
96
+ file-encoding = utf-8
97
+
98
+ # Ignore certain error codes
99
+ # D000 - Generic error (often false positives)
100
+ ignore = D000
101
+
102
+ # Paths to ignore during checking
103
+ # docs/build - Sphinx build output
104
+ # docs/source/api - Auto-generated API documentation
105
+ # docs/_build - Alternative build directory
106
+ # .tox, venv - Virtual environments
107
+ ignore-path = docs/build,docs/source/api,docs/_build,.tox,venv
108
+
109
+ # File extensions to check
110
+ extensions = .rst,.txt
111
+
112
+ # Allow long titles (headers often need to be descriptive)
113
+ allow-long-titles = true
114
+
115
+ # Specific file error ignores (path;error_code)
116
+ # For files that have unavoidable issues
117
+ ignore-path-errors = docs/source/solarwindpy.solar_activity.tests.rst;D001
118
+ EOF
119
+ ```
120
+
121
+ ### Step 2.2: Update .gitignore (1 minute)
122
+
123
+ **Ensure `.doc8` is tracked**:
124
+ ```bash
125
+ # Check if .doc8 is ignored
126
+ grep -q "^\.doc8$" .gitignore && echo ".doc8 is ignored" || echo ".doc8 will be tracked"
127
+
128
+ # If ignored, remove from .gitignore
129
+ sed -i '/^\.doc8$/d' .gitignore
130
+ ```
131
+
132
+ ### Step 2.3: Test Configuration (2 minutes)
133
+
134
+ **Validation commands**:
135
+ ```bash
136
+ # Test with new configuration
137
+ doc8 --config .doc8 docs
138
+
139
+ # Test specific problem files
140
+ doc8 --config .doc8 docs/source/index.rst
141
+ doc8 --config .doc8 docs/source/_templates/
142
+
143
+ # Verbose output for debugging
144
+ doc8 --config .doc8 --verbose docs
145
+ ```
146
+
147
+ **Expected output**:
148
+ ```
149
+ Scanning...
150
+ docs/source/index.rst
151
+ docs/source/api_reference.rst
152
+ ...
153
+ Total files scanned = 12
154
+ Total accumulated errors = 0
155
+ ```
156
+
157
+ ### Step 2.4: Document Configuration (2 minutes)
158
+
159
+ **Create `docs/FORMATTING.md`**:
160
+ ```markdown
161
+ # Documentation Formatting Standards
162
+
163
+ This project uses `doc8` to enforce consistent RST documentation formatting.
164
+
165
+ ## Configuration
166
+
167
+ See `.doc8` for the complete configuration. Key rules:
168
+
169
+ - **Line length**: Maximum 100 characters
170
+ - **File encoding**: UTF-8
171
+ - **Newlines**: Files must end with a newline
172
+ - **Whitespace**: No trailing whitespace
173
+ - **Extensions**: Checks .rst and .txt files
174
+
175
+ ## Running Locally
176
+
177
+ ```bash
178
+ # Install doc8
179
+ pip install doc8
180
+
181
+ # Check all documentation
182
+ doc8 docs
183
+
184
+ # Check specific file
185
+ doc8 docs/source/index.rst
186
+ ```
187
+
188
+ ## Common Issues and Fixes
189
+
190
+ ### Line too long (D001)
191
+ Break long lines at natural points (commas, operators).
192
+
193
+ ### No newline at end of file (D005)
194
+ Add a blank line at the end of the file.
195
+
196
+ ### Trailing whitespace (D002)
197
+ Remove spaces at the end of lines.
198
+
199
+ ## Exceptions
200
+
201
+ Auto-generated files in `docs/source/api/` are excluded from checking.
202
+ ```
203
+
204
+ ### Step 2.5: Integration with CI/CD (2 minutes)
205
+
206
+ **Update workflow to use configuration**:
207
+
208
+ In `.github/workflows/docs.yml`, update line 41:
209
+ ```yaml
210
+ - name: Lint documentation with doc8
211
+ run: |
212
+ # Use project configuration
213
+ doc8 --config .doc8 README.rst docs CITATION.rst
214
+ ```
215
+
216
+ ## Validation Checklist
217
+
218
+ ### Configuration Testing
219
+ - [ ] `.doc8` file created and valid
220
+ - [ ] Configuration parses without errors
221
+ - [ ] doc8 runs successfully with config
222
+ - [ ] Appropriate files are checked
223
+ - [ ] Appropriate files are ignored
224
+
225
+ ### Rule Validation
226
+ - [ ] Line length limit is appropriate (100 chars)
227
+ - [ ] Build directories are excluded
228
+ - [ ] Auto-generated API docs are excluded
229
+ - [ ] File encoding is correct
230
+
231
+ ### Documentation
232
+ - [ ] Configuration is documented
233
+ - [ ] Team is aware of standards
234
+ - [ ] Local testing instructions provided
235
+
236
+ ## Success Metrics
237
+
238
+ | Metric | Before | After | Target |
239
+ |--------|--------|-------|--------|
240
+ | Configuration files | 0 | 1 | ✅ |
241
+ | Documented standards | No | Yes | ✅ |
242
+ | Consistent rules | No | Yes | ✅ |
243
+ | False positives | High | Low | ✅ |
244
+ | Developer clarity | Low | High | ✅ |
245
+
246
+ ## Rollback Plan
247
+
248
+ If configuration causes issues:
249
+
250
+ ```bash
251
+ # Remove configuration file
252
+ rm .doc8
253
+
254
+ # Or rename to disable
255
+ mv .doc8 .doc8.disabled
256
+
257
+ # Revert workflow changes
258
+ git checkout -- .github/workflows/docs.yml
259
+ ```
260
+
261
+ ## Configuration Maintenance
262
+
263
+ ### Regular Reviews (Quarterly)
264
+ - Review error patterns
265
+ - Adjust line length if needed
266
+ - Update ignore patterns
267
+ - Document exceptions
268
+
269
+ ### When to Update Configuration
270
+ - New documentation structure added
271
+ - Team feedback on rules
272
+ - Tool updates with new checks
273
+ - False positive patterns identified
274
+
275
+ ## Expected Outcomes
276
+
277
+ ### Immediate
278
+ - ✅ Consistent linting rules applied
279
+ - ✅ Fewer false positives
280
+ - ✅ Clear standards for contributors
281
+
282
+ ### Long-term
283
+ - ✅ Reduced formatting issues
284
+ - ✅ Faster PR reviews
285
+ - ✅ Better documentation quality
286
+ - ✅ Less time spent on formatting
287
+
288
+ ## Next Steps
289
+
290
+ 1. Implement configuration file
291
+ 2. Test with current documentation
292
+ 3. Update CI/CD to use configuration
293
+ 4. Document standards for team
294
+ 5. Proceed to Phase 3 (Pre-commit hooks)
295
+
296
+ ---
297
+
298
+ *This phase establishes the foundation for consistent documentation formatting standards.*
@@ -0,0 +1,382 @@
1
+ # Phase 3: Pre-commit Hook Integration
2
+
3
+ ## Objective
4
+ Implement pre-commit hooks to catch and fix documentation formatting issues before they reach the repository, preventing CI/CD failures.
5
+
6
+ ## Rationale
7
+
8
+ ### Why Pre-commit Hooks
9
+ - **Shift-left approach**: Catch issues at the earliest point
10
+ - **Automatic fixing**: Many issues can be auto-corrected
11
+ - **Developer efficiency**: No need to remember formatting rules
12
+ - **CI/CD protection**: Reduces load on build systems
13
+ - **Consistency**: Same rules for all contributors
14
+
15
+ ### Expected Benefits
16
+ - 90% reduction in formatting-related CI failures
17
+ - Zero-friction formatting compliance
18
+ - Automatic issue resolution
19
+ - Improved developer experience
20
+
21
+ ## Pre-commit Configuration Design
22
+
23
+ ### 3.1 Create Pre-commit Configuration
24
+
25
+ **File**: `/.pre-commit-config.yaml`
26
+
27
+ ```yaml
28
+ # Pre-commit hooks for SolarWindPy
29
+ # Ensures code and documentation quality before commits
30
+
31
+ # See https://pre-commit.com for more information
32
+ # See https://pre-commit.com/hooks.html for more hooks
33
+
34
+ # To install: pip install pre-commit && pre-commit install
35
+ # To run manually: pre-commit run --all-files
36
+
37
+ default_language_version:
38
+ python: python3
39
+
40
+ repos:
41
+ # General file fixes
42
+ - repo: https://github.com/pre-commit/pre-commit-hooks
43
+ rev: v4.5.0
44
+ hooks:
45
+ # Fix trailing whitespace
46
+ - id: trailing-whitespace
47
+ types: [text]
48
+ exclude: \.md$|\.rst$ # Handle separately for docs
49
+
50
+ # Ensure files end with newline
51
+ - id: end-of-file-fixer
52
+ types: [text]
53
+
54
+ # Check for large files
55
+ - id: check-added-large-files
56
+ args: ['--maxkb=1000']
57
+
58
+ # Fix mixed line endings
59
+ - id: mixed-line-ending
60
+ args: ['--fix=lf']
61
+
62
+ # Check YAML syntax
63
+ - id: check-yaml
64
+
65
+ # Check JSON syntax
66
+ - id: check-json
67
+
68
+ # Documentation-specific hooks
69
+ - repo: https://github.com/pre-commit/pre-commit-hooks
70
+ rev: v4.5.0
71
+ hooks:
72
+ # Documentation-specific trailing whitespace
73
+ - id: trailing-whitespace
74
+ name: Fix RST trailing whitespace
75
+ files: \.(rst|txt)$
76
+ exclude: docs/source/api/
77
+
78
+ # Documentation-specific EOF fixer
79
+ - id: end-of-file-fixer
80
+ name: Fix RST file endings
81
+ files: \.(rst|txt)$
82
+ exclude: docs/source/api/
83
+
84
+ # RST specific linting with doc8
85
+ - repo: https://github.com/PyCQA/doc8
86
+ rev: v1.1.1
87
+ hooks:
88
+ - id: doc8
89
+ name: Check RST documentation formatting
90
+ args: [
91
+ '--max-line-length=100',
92
+ '--ignore=D000',
93
+ '--ignore-path=docs/build',
94
+ '--ignore-path=docs/source/api',
95
+ '--ignore-path=docs/_build'
96
+ ]
97
+ files: \.(rst|txt)$
98
+ exclude: docs/source/api/
99
+
100
+ # Python code formatting (optional but recommended)
101
+ - repo: https://github.com/psf/black
102
+ rev: 23.12.1
103
+ hooks:
104
+ - id: black
105
+ language_version: python3
106
+ exclude: docs/
107
+
108
+ # Python linting (optional but recommended)
109
+ - repo: https://github.com/PyCQA/flake8
110
+ rev: 7.0.0
111
+ hooks:
112
+ - id: flake8
113
+ args: ['--config=setup.cfg']
114
+ exclude: docs/
115
+ ```
116
+
117
+ ### 3.2 Simplified Minimal Configuration
118
+
119
+ For teams wanting to start simple:
120
+
121
+ ```yaml
122
+ # Minimal pre-commit configuration for documentation
123
+ repos:
124
+ - repo: https://github.com/pre-commit/pre-commit-hooks
125
+ rev: v4.5.0
126
+ hooks:
127
+ - id: trailing-whitespace
128
+ - id: end-of-file-fixer
129
+
130
+ - repo: https://github.com/PyCQA/doc8
131
+ rev: v1.1.1
132
+ hooks:
133
+ - id: doc8
134
+ args: ['--config=.doc8']
135
+ ```
136
+
137
+ ## Implementation Steps
138
+
139
+ ### Step 3.1: Install Pre-commit (3 minutes)
140
+
141
+ **For developers**:
142
+ ```bash
143
+ # Install pre-commit package
144
+ pip install pre-commit
145
+
146
+ # Or add to requirements-dev.txt
147
+ echo "pre-commit>=3.5.0" >> requirements-dev.txt
148
+ pip install -r requirements-dev.txt
149
+ ```
150
+
151
+ ### Step 3.2: Create Configuration File (2 minutes)
152
+
153
+ ```bash
154
+ # Create the configuration file
155
+ cat > .pre-commit-config.yaml << 'EOF'
156
+ # [Insert configuration from 3.1 above]
157
+ EOF
158
+
159
+ # Verify file created
160
+ ls -la .pre-commit-config.yaml
161
+ ```
162
+
163
+ ### Step 3.3: Install Git Hooks (2 minutes)
164
+
165
+ ```bash
166
+ # Install the git hook scripts
167
+ pre-commit install
168
+
169
+ # Verify installation
170
+ ls -la .git/hooks/pre-commit
171
+
172
+ # Expected output shows symlink or script
173
+ ```
174
+
175
+ ### Step 3.4: Initial Run and Fixes (5 minutes)
176
+
177
+ ```bash
178
+ # Run on all files to establish baseline
179
+ pre-commit run --all-files
180
+
181
+ # This will:
182
+ # 1. Download required tools
183
+ # 2. Check all files
184
+ # 3. Auto-fix what it can
185
+ # 4. Report what needs manual fixing
186
+
187
+ # Run again to verify all issues fixed
188
+ pre-commit run --all-files
189
+ ```
190
+
191
+ ### Step 3.5: Configure CI Integration (3 minutes)
192
+
193
+ **Add to `.github/workflows/docs.yml`**:
194
+
195
+ ```yaml
196
+ pre-commit:
197
+ runs-on: ubuntu-latest
198
+ steps:
199
+ - uses: actions/checkout@v3
200
+ - uses: actions/setup-python@v5
201
+ with:
202
+ python-version: "3.12"
203
+ - name: Run pre-commit
204
+ uses: pre-commit/action@v3.0.0
205
+ ```
206
+
207
+ Or as a step in existing job:
208
+
209
+ ```yaml
210
+ - name: Run pre-commit checks
211
+ run: |
212
+ pip install pre-commit
213
+ pre-commit run --all-files --show-diff-on-failure
214
+ ```
215
+
216
+ ## Developer Workflow
217
+
218
+ ### Standard Workflow
219
+ 1. **Make changes** to documentation
220
+ 2. **Stage changes**: `git add docs/`
221
+ 3. **Commit**: `git commit -m "docs: update"`
222
+ 4. **Pre-commit runs automatically**
223
+ - Fixes issues if possible
224
+ - Blocks commit if manual fixes needed
225
+ 5. **Review changes** if any made
226
+ 6. **Commit succeeds** if all checks pass
227
+
228
+ ### Manual Usage
229
+ ```bash
230
+ # Check specific files
231
+ pre-commit run --files docs/source/index.rst
232
+
233
+ # Check all staged files
234
+ pre-commit run
235
+
236
+ # Check everything
237
+ pre-commit run --all-files
238
+
239
+ # Update hook versions
240
+ pre-commit autoupdate
241
+ ```
242
+
243
+ ### Bypassing Hooks (Emergency Only)
244
+ ```bash
245
+ # Skip pre-commit hooks (use sparingly)
246
+ git commit --no-verify -m "emergency: critical fix"
247
+
248
+ # Or set environment variable
249
+ SKIP=doc8 git commit -m "docs: update"
250
+ ```
251
+
252
+ ## Team Adoption Strategy
253
+
254
+ ### Gradual Rollout
255
+ 1. **Week 1**: Optional - developers can install if desired
256
+ 2. **Week 2**: Recommended - encourage installation
257
+ 3. **Week 3**: Expected - soft requirement
258
+ 4. **Week 4**: Required - add to CI/CD
259
+
260
+ ### Developer Onboarding
261
+ ```markdown
262
+ # Add to CONTRIBUTING.md
263
+
264
+ ## Pre-commit Hooks
265
+
266
+ This project uses pre-commit hooks to maintain code and documentation quality.
267
+
268
+ ### Setup (one-time)
269
+ ```bash
270
+ pip install pre-commit
271
+ pre-commit install
272
+ ```
273
+
274
+ ### Usage
275
+ Hooks run automatically on `git commit`. To run manually:
276
+ ```bash
277
+ pre-commit run --all-files
278
+ ```
279
+ ```
280
+
281
+ ### Training Materials
282
+ - Quick setup guide (5 minutes)
283
+ - Common issues and solutions
284
+ - Benefits explanation
285
+ - Demo video/GIF
286
+
287
+ ## Troubleshooting
288
+
289
+ ### Common Issues
290
+
291
+ | Issue | Cause | Solution |
292
+ |-------|-------|----------|
293
+ | "pre-commit: command not found" | Not installed | `pip install pre-commit` |
294
+ | Hooks not running | Not installed in repo | `pre-commit install` |
295
+ | Hooks failing on old files | Historical issues | `pre-commit run --all-files` then commit fixes |
296
+ | Slow first run | Downloading tools | One-time delay, cached after |
297
+ | Can't commit urgent fix | Hooks blocking | Use `--no-verify` flag (sparingly) |
298
+
299
+ ### Debug Commands
300
+ ```bash
301
+ # Verbose output
302
+ pre-commit run --all-files --verbose
303
+
304
+ # Show diff of changes
305
+ pre-commit run --all-files --show-diff-on-failure
306
+
307
+ # Check specific hook
308
+ pre-commit run doc8 --all-files
309
+
310
+ # Update hooks to latest versions
311
+ pre-commit autoupdate
312
+ ```
313
+
314
+ ## Metrics and Monitoring
315
+
316
+ ### Success Metrics
317
+ | Metric | Before | Target | Measurement |
318
+ |--------|--------|--------|-------------|
319
+ | Formatting failures in CI | 100% | <5% | GitHub Actions logs |
320
+ | Time to fix formatting | 10 min | 0 min | Automatic |
321
+ | Developer adoption | 0% | 90% | Survey/git hooks |
322
+ | PR rejections for formatting | High | Near zero | PR reviews |
323
+
324
+ ### Monitoring
325
+ - Track CI/CD failure rate for doc8
326
+ - Survey developers on experience
327
+ - Monitor pre-commit skip usage
328
+ - Review commit patterns
329
+
330
+ ## Rollback Plan
331
+
332
+ ### Partial Rollback
333
+ ```bash
334
+ # Disable specific hooks
335
+ # Edit .pre-commit-config.yaml and comment out problematic hooks
336
+
337
+ # Uninstall from local repo
338
+ pre-commit uninstall
339
+ ```
340
+
341
+ ### Complete Rollback
342
+ ```bash
343
+ # Remove configuration
344
+ rm .pre-commit-config.yaml
345
+
346
+ # Uninstall hooks
347
+ pre-commit uninstall
348
+
349
+ # Remove from requirements
350
+ sed -i '/pre-commit/d' requirements-dev.txt
351
+ ```
352
+
353
+ ## Cost-Benefit Analysis
354
+
355
+ ### Costs
356
+ - Initial setup: 15 minutes per developer
357
+ - Learning curve: 1-2 days to adapt
358
+ - Occasional bypass needed: 1-2 times/month
359
+
360
+ ### Benefits
361
+ - Prevent 95% of formatting issues
362
+ - Save 10 minutes per PR
363
+ - Reduce CI/CD failures by 50%
364
+ - Improve code review focus on content
365
+
366
+ ### ROI
367
+ - Break-even: After 2 prevented failures
368
+ - Monthly savings: 5 hours team-wide
369
+ - Annual savings: 60 hours
370
+
371
+ ## Next Steps
372
+
373
+ 1. Create and test configuration
374
+ 2. Document in CONTRIBUTING.md
375
+ 3. Announce to team with benefits
376
+ 4. Provide setup support
377
+ 5. Monitor adoption and effectiveness
378
+ 6. Proceed to Phase 4 (Workflow improvements)
379
+
380
+ ---
381
+
382
+ *This phase provides proactive protection against documentation formatting issues at the source.*