Implement Vale for Organization-Wide Documentation Linting
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- github-actions, markdown
- 領域
- ci-cd, documentation
調査の方向性
まず branch_ci.yml などの既存のワークフローと、Vale および vale-action のリファレンスを読み、その後 .github リポジトリの構成を確認します。.vale.ini、styles/、.github/workflows/documentation_lint.yml、および issue に記載された README または移行ドキュメントを作成します。再利用可能なワークフローが設定されたドキュメントパスのみを lint し、climatehackai または一覧にある別のリポジトリで試験導入されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
Implement Vale, a prose linter, as a reusable workflow in the .github repository to ensure consistent, high-quality documentation across all Open Climate Fix repositories.
Motivation
Currently, OCF has no automated documentation linting in place. While we have excellent code linting (Ruff, Mypy), our documentation quality relies solely on manual review. This creates:
- Inconsistent style across different repositories
- Higher review burden on maintainers to catch documentation issues
- Accessibility concerns with complex or unclear prose
- Missed typos and grammatical errors that slip through reviews
Vale would provide automated checks for: - Grammatical correctness
- Consistent terminology and style
- Readability and accessibility
- Project-specific documentation standards
Current State
I've audited the OCF organization and confirmed:
- No
.vale.iniconfiguration files in any repository - No Vale workflows in
.github/workflows/ - No Vale pre-commit hooks
- No documentation linting of any kind
Documentation-heavy repositories that would benefit most:
climatehackai- Extensive ML template documentationgraph_weather- Research implementation guidesskillful_nowcasting- DeepMind DGMR implementationquartz-frontend- Frontend project with 90+ issues.github- Organization-wide community health files
Proposed Solution
Implement Vale as a reusable GitHub Actions workflow in the .github repository, similar to existing workflows like branch_ci.yml. This allows any OCF repository to adopt Vale with minimal configuration.
Implementation Components
- Vale Configuration (
.vale.ini)
- Base configuration with style rules
- Path-specific configuration to only check documentation:
# Only check these file patterns
[*.md]
# Only check these directories
BasedOnStyles = Vale, Google
# Explicitly include documentation paths
[docs/*.md]
[*.{md,mdx,rst}]
# Exclude code directories
[!src/**]
[!test/**]
[!**/node_modules/**]
- Custom vocabulary for OCF-specific terms (e.g., "nowcasting", "GSP", "PV")
- Scope Limitations
- Only checks documentation files, not code
- Typical paths to check:
README.md,CONTRIBUTING.md,CHANGELOG.mddocs/directory*.mdand*.rstfiles in root- Excludes:
- Source code directories (
src/,lib/, etc.) - Test files
- Build artifacts and dependencies
- Configuration files (JSON, YAML, etc.)
- Configurable per-repository based on their structure
- Style Rules (
styles/directory)
- Google Developer Documentation Style Guide- Custom OCF rules for project terminology
- Reusable Workflow (
.github/workflows/documentation_lint.yml)
- Runs Vale only on documentation files in PRs
- Posts inline comments on documentation issues
- Configurable file patterns via workflow inputs:
inputs:
files:
description: 'File patterns to check'
default: '*.md docs/**/*.md'
- Documentation
- README section explaining how to use the workflow
- Guide for repositories to adopt Vale
- Instructions for customizing paths per repository
- Instructions for adding custom vocabulary
Prior Experience
I have already implemented Vale for the Mesa organization during GSoC, including:
- Complete Vale configuration with custom styles
- Properly scoped to documentation folders only (not code)
- GitHub Actions workflow integration
- Pre-commit hooks setup
- Documentation for contributors
This means minimal work is required to adapt my existing implementation for OCF. I can:
- Port the configuration files with proper path scoping
- Customize the vocabulary for OCF-specific terminology
- Configure exclusions for code directories
- Test on documentation-heavy repos
- Create the reusable workflow
Deliverables
- Configuration Files
.vale.ini- Main configurationstyles/- Style guide rules and custom vocabulary 2. Reusable Workflow.github/workflows/documentation_lint.yml- Can be used by other repos via:
uses: openclimatefix/.github/.github/workflows/documentation_lint@main
- Documentation
- README section on using Vale
- Migration guide for repositories
- Vocabulary contribution guidelines
- Pilot Implementation
- Test on 1-2 documentation-heavy repos (e.g.,
climatehackai) - Demonstrate value with before/after examples
Benefits
- Consistency: Uniform documentation style across all repositories
- Quality: Catch grammatical errors and improve readability
- Efficiency: Reduce reviewer burden on documentation PRs
- Accessibility: Ensure documentation is clear and inclusive
- Scalability: Easy for new repositories to adopt via reusable workflow
- Customizable: Add OCF-specific terminology and rules
Implementation Plan
Phase 1: Setup
- Create Vale configuration (
.vale.ini) - Set up styles directory with base rules
- Define OCF-specific vocabulary and terms
- Create reusable GitHub Actions workflow
Phase 2: Pilot
- Test on
climatehackairepository - Gather feedback and refine rules
- Fix any false positives
- Document common issues and solutions
### Phase 3: Rollout - Create PR to
.githubrepository- [ ] Update README with Vale documentation - Create migration guide for other repos
- Announce to OCF organization
### Phase 4: Adoption - Help interested repositories adopt the workflow
- Maintain and update style rules based on feedback
- Expand custom vocabulary as needed
References
- Vale documentation
- Vale GitHub Action
- My Mesa implementation: [https://github.com/mesa/mesa/pull/3022]
I'm happy to implement this and would appreciate assignment to this issue. Given my prior Vale experience with Mesa, I can deliver this in 2-3 days with minimal effort.
- 主要言語
- 言語のデータがありません
- スター
- 1
- フォーク
- 11
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openclimatefix/.github のほかの issue
-
Feedback on coding principles対応中かも @peterdudfield が 18 日前に担当しました。 オープン
openclimatefix/.github#102 · コメント 6 件 · 担当者 1 名 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 35/100
openclimatefix/.github#90 · コメント 2 件 ·
-
Add option to pass HF_TOKEN in CI test対応中かも @CodeVishal-17 が 296 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 38/100
openclimatefix/.github#86 · コメント 4 件 ·
-
Add readmeオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
openclimatefix/.github#84 · コメント 1 件 ·
-
Add workdir to CIオープン
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
openclimatefix/.github#82 ·
openclimatefix/.github の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
flannel-io/flannel#2608 ·
メンテナーはふだん 2 日以内に返信
-
Pin GitHub Actions to Ubuntu 26.04対応中かも @krusty93 が今日担当しました。 オープンchore infra:workflow-automation
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
diegosouzapw/OmniRoute#18387 ·
-
Enhancement: Test warm/fast reboot on supported Nexthop platforms対応中かも @domingo-nexthop が 119 日前に担当しました。 オープンEnhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
sonic-net/sonic-mgmt#28842 ·
メンテナーはふだん 1 日以内に返信
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100