From 830ca2c19e1cdd1d5724aae621044edfcd118577 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 09:43:09 +0100 Subject: [PATCH 01/13] Create .pre-commit-config.yaml --- .pre-commit-config.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..6e59c33c39 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,20 @@ +repos: + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: v0.45.0 + hooks: + - id: markdownlint + args: ["--config", ".markdownlint.yaml"] + exclude: "^(README\\.md|src/content/changes/|src/content/vintage/|src/content/reference/platform-api/crd/)" + + - repo: https://github.com/errata-ai/vale + rev: v3.11.2 + hooks: + - id: vale + args: ["--config", ".vale.ini", "--no-wrap"] + files: "^src/content/.*\\.md$" + + - repo: https://github.com/giantswarm/frontmatter-validator + rev: v0.4.0 + hooks: + - id: frontmatter-validator + args: ['--config=./scripts/frontmatter-validator/config-default.yaml'] From c69b3914c479c6d21f5c28d9378cba72e5ae4232 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 10:42:59 +0100 Subject: [PATCH 02/13] Bump frontmatter-validator --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6e59c33c39..1fb5737938 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: files: "^src/content/.*\\.md$" - repo: https://github.com/giantswarm/frontmatter-validator - rev: v0.4.0 + rev: v0.5.0 hooks: - id: frontmatter-validator args: ['--config=./scripts/frontmatter-validator/config-default.yaml'] From e6e74932fa6082f72ddf4fb4bde8d51e42305ed6 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 11:20:39 +0100 Subject: [PATCH 03/13] Update config for frontmatter-validator v0.5.0 --- scripts/frontmatter-validator/config-default.yaml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/scripts/frontmatter-validator/config-default.yaml b/scripts/frontmatter-validator/config-default.yaml index fcedb533b2..6ab0f147af 100644 --- a/scripts/frontmatter-validator/config-default.yaml +++ b/scripts/frontmatter-validator/config-default.yaml @@ -1,6 +1,11 @@ # Frontmatter Validator configuration # This file defines which validation checks are enabled and how they apply to different directories. +ignore_paths: + - README.md + - AGENTS.md + - CLAUDE.md + # Default rules applied to all files unless overridden default_rules: enabled_checks: @@ -40,14 +45,6 @@ directory_overrides: - NO_FULL_STOP_DESCRIPTION - UNKNOWN_ATTRIBUTE - - path: "AGENTS.md" - disabled_checks: - - NO_FRONT_MATTER - - - path: "CLAUDE.md" - disabled_checks: - - NO_FRONT_MATTER - - path: "src/content/reference/platform-api/crd/**" disabled_checks: - INVALID_DESCRIPTION From 1db1472b3bc68eab9d2bb7ea5b946c1f80ea25b6 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 11:20:43 +0100 Subject: [PATCH 04/13] Update README.md --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index eed82d50a5..72852a58c1 100644 --- a/README.md +++ b/README.md @@ -75,11 +75,13 @@ A shortcode is used in a markdown file like this: ### Content linting -When writing docs content, the linter can help you a great deal to keep the content consistent and clean. You can run the linter with: +When writing docs content, the linters can help you a great deal to keep the content consistent and clean. Ideally run the linters as pre-commit hooks. -```sh -make lint-prose -``` +To install: `pre-commit install --install-hooks`. + +Linters will then be executed automatically before committing. + +The `vale` linter will check spelling. If vale complaints about a word that is spelled correctly, add it to the [dictionary](.vale/styles/config/vocabularies/docs/accept.txt). If the term is a technical identifier like `CAPMOXDatastoreAlloc`, don't add it to the dictionary, and wrap it in backticks instead. When editing content in Microsoft Visual Studio Code, you can also use the [vale-vscode](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode) extension to see errors and editing suggestions while you write. From 5be0b4860ccd23d1b0814828c839bba65627d6ba Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 11:26:36 +0100 Subject: [PATCH 05/13] Update frontmatter-validator in workflow --- .github/workflows/validate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml index 3f38f87dd3..206e1dab0b 100644 --- a/.github/workflows/validate.yaml +++ b/.github/workflows/validate.yaml @@ -21,7 +21,7 @@ jobs: uses: giantswarm/install-binary-action@c94c7adadeb14af4bdbdd601f9a6e7f69638134c # v4.0.0 with: binary: frontmatter-validator - version: "0.3.2" + version: "0.5.0" smoke_test: frontmatter-validator --help - name: Validate front matter for changed files From 0ff0ad99ec01b26e4a2591d8fb905e817ecd4463 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:29:50 +0100 Subject: [PATCH 06/13] Delete validate-prose.yaml --- .github/workflows/validate-prose.yaml | 33 --------------------------- 1 file changed, 33 deletions(-) delete mode 100644 .github/workflows/validate-prose.yaml diff --git a/.github/workflows/validate-prose.yaml b/.github/workflows/validate-prose.yaml deleted file mode 100644 index 30cc19167e..0000000000 --- a/.github/workflows/validate-prose.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: Vale -on: - - pull_request - -jobs: - vale: - name: vale - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - name: Execute Vale - run: | - wget -q https://github.com/errata-ai/vale/releases/download/v3.4.1/vale_3.4.1_Linux_64-bit.tar.gz - mkdir bin && tar -xvzf vale_3.4.1_Linux_64-bit.tar.gz -C bin - ls -la bin - bin/vale --config=./.vale.ini \ - --glob '!{src/content/changes/**}' \ - --no-exit \ - --output ./.vale/styles/rdjsonl.tmpl \ - src/content > out.jsonl - - - name: Install reviewdog - uses: reviewdog/action-setup@d8a7baabd7f3e8544ee4dbde3ee41d0011c3a93f # v1.5.0 - with: - reviewdog_version: latest - - - name: Create annotations on touched files - env: - REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - reviewdog -f=rdjsonl -name=Vale -reporter=github-pr-annotations -fail-level=error -filter-mode=added -level=info < out.jsonl From 0735212b793d571f2005e3a1d91c46d6f4e0aa6a Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:30:12 +0100 Subject: [PATCH 07/13] Use pre-commit action --- .github/workflows/validate.yaml | 67 +-------------------------------- 1 file changed, 2 insertions(+), 65 deletions(-) diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml index 206e1dab0b..f74e2920a1 100644 --- a/.github/workflows/validate.yaml +++ b/.github/workflows/validate.yaml @@ -24,71 +24,8 @@ jobs: version: "0.5.0" smoke_test: frontmatter-validator --help - - name: Validate front matter for changed files - run: | - echo "Detecting changed files:" - git fetch --no-tags origin "${GITHUB_BASE_REF}":"${GITHUB_BASE_REF}" - git diff --name-only "refs/heads/${GITHUB_BASE_REF}" -- . | tee files.txt - if [ -s files.txt ]; then - # Validate the changed files - echo "Validating front matter for changed files:" - cat files.txt | frontmatter-validator --config ./scripts/frontmatter-validator/config-default.yaml - - # Print for debugging - printf "\nAnnotations JSON:\n" - cat ./annotations.json - - # Save as environment variable for next step - if [ $(jq length < ./annotations.json) -gt 0 ]; then - echo "found_front_matter_issues=true" >> $GITHUB_ENV - fi - fi - rm files.txt - - - name: Send front matter annotations - if: ${{ env.found_front_matter_issues == 'true' }} - uses: yuzutech/annotations-action@0e061a6e3ac848299310b6429b60d67cafd4e7f8 # v0.5.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - title: Front matter problems - input: ./annotations.json - - - name: markdownlint - run: | - make RUNNING_IN_CI=true lint-markdown || true - - # Only fail if the run didn't work for technical reasons - if [ ! -e markdownlint.out ]; then - echo "ERROR: Linting did not write output file with findings" - exit 1 - fi - - # Otherwise create annotations - cat markdownlint.out \ - | jq -nR '[inputs | (. | capture("(?[^:]+):(?[0-9]+)(:(?[0-9]+))?\\s+(?.+)") | {"file": .filename, "line": (.line | tonumber), "end_line": (.line | tonumber), "title": "markdownlint problem", "message": .description, "annotation_level": "error"})]' \ - > markdownlint-annotations.json - - # Print for debugging - printf "\nAnnotations JSON:\n" - cat ./markdownlint-annotations.json - - if [ $(jq length < ./markdownlint-annotations.json) -gt 0 ]; then - echo "found_markdown_issues=true" >> $GITHUB_ENV - fi - - - name: Send markdownlint annotations - if: ${{ env.found_markdown_issues == 'true' }} - uses: yuzutech/annotations-action@0e061a6e3ac848299310b6429b60d67cafd4e7f8 # v0.5.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - title: markdownlint problems - input: ./markdownlint-annotations.json - - - name: Fail if markdownlint had findings - if: ${{ env.found_markdown_issues == 'true' }} - run: | - echo "ERROR: See markdownlint findings (annotated as errors in the PR when you click on 'Files changed')" - exit 1 + - name: Execute pre-commit hooks + uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 - name: Check file and folder names in content shell: python {0} From 6e7c37fc537b195c8c77374b5d7a9325c06d8f22 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:33:17 +0100 Subject: [PATCH 08/13] Remove obsolete step --- .github/workflows/validate.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml index f74e2920a1..3bfc4e105e 100644 --- a/.github/workflows/validate.yaml +++ b/.github/workflows/validate.yaml @@ -17,13 +17,6 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install frontmatter-validator - uses: giantswarm/install-binary-action@c94c7adadeb14af4bdbdd601f9a6e7f69638134c # v4.0.0 - with: - binary: frontmatter-validator - version: "0.5.0" - smoke_test: frontmatter-validator --help - - name: Execute pre-commit hooks uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 From b701dcf967fdad2c42fce29f479cf95990274a74 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:35:08 +0100 Subject: [PATCH 09/13] Use dev branch name --- .github/workflows/validate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml index 3bfc4e105e..3189f7ea44 100644 --- a/.github/workflows/validate.yaml +++ b/.github/workflows/validate.yaml @@ -5,7 +5,7 @@ name: Validate on: pull_request: branches: - - main + - lint-changes # TODO: change back to main merge_group: types: - checks_requested From d82c6008a41427f0d1ac651d23f36ede5c45bd59 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:49:10 +0100 Subject: [PATCH 10/13] Update validate.yaml --- .github/workflows/validate.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml index 3189f7ea44..b0c69df347 100644 --- a/.github/workflows/validate.yaml +++ b/.github/workflows/validate.yaml @@ -16,9 +16,17 @@ jobs: steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 - name: Execute pre-commit hooks uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 + with: + # Compiles list of changed files in this PR + extra_args: >- + ${{ github.event_name == 'pull_request' + && format('--from-ref {0} --to-ref {1}', github.event.pull_request.base.sha, github.event.pull_request.head.sha) + || '--all-files' }} - name: Check file and folder names in content shell: python {0} From 3361c835a368823d1a5faf561b7ad57daaa7c292 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:55:31 +0100 Subject: [PATCH 11/13] Dummy change --- src/content/overview/architecture/_index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/content/overview/architecture/_index.md b/src/content/overview/architecture/_index.md index 12e30af01b..6afe6a96fd 100644 --- a/src/content/overview/architecture/_index.md +++ b/src/content/overview/architecture/_index.md @@ -12,11 +12,13 @@ user_questions: - What is the architecture of the Giant Swarm cloud-native developer platform? owner: - https://github.com/orgs/giantswarm/teams/team-planeteers -last_review_date: 2024-11-29 +last_review_date: 2026-03-10 aliases: - /vintage/platform-overview/architecture --- +GOOUDIKUHPW This is just a dummy change + Giant Swarm's cloud-native developer platform integrates open-source components that work together to provide a seamless experience for managing the lifecycle of containerized applications. The platform is based on Kubernetes and designed to be cloud-agnostic, allowing you to deploy your applications on any of the supported cloud providers, including on-premises. The interfaces allow development teams and automation to deploy applications, keep the clusters secure, and use other capabilities that are explained below. On top, you benefit from our strong support model that ensures your long-term success and stability of workloads. ## Platform architecture From 2ae6627daef7a1c7ef4614c4d6dd202737af9434 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 12:56:13 +0100 Subject: [PATCH 12/13] Dummy change --- src/content/overview/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/overview/architecture/_index.md b/src/content/overview/architecture/_index.md index 6afe6a96fd..84e9e42b7d 100644 --- a/src/content/overview/architecture/_index.md +++ b/src/content/overview/architecture/_index.md @@ -12,7 +12,7 @@ user_questions: - What is the architecture of the Giant Swarm cloud-native developer platform? owner: - https://github.com/orgs/giantswarm/teams/team-planeteers -last_review_date: 2026-03-10 +last_review_date: 2020-03-10 aliases: - /vintage/platform-overview/architecture --- From 6eca6d711189d7497970a9200b263269ffccbe55 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 10 Mar 2026 13:20:17 +0100 Subject: [PATCH 13/13] Revert dummy change --- src/content/overview/architecture/_index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/content/overview/architecture/_index.md b/src/content/overview/architecture/_index.md index 84e9e42b7d..12e30af01b 100644 --- a/src/content/overview/architecture/_index.md +++ b/src/content/overview/architecture/_index.md @@ -12,13 +12,11 @@ user_questions: - What is the architecture of the Giant Swarm cloud-native developer platform? owner: - https://github.com/orgs/giantswarm/teams/team-planeteers -last_review_date: 2020-03-10 +last_review_date: 2024-11-29 aliases: - /vintage/platform-overview/architecture --- -GOOUDIKUHPW This is just a dummy change - Giant Swarm's cloud-native developer platform integrates open-source components that work together to provide a seamless experience for managing the lifecycle of containerized applications. The platform is based on Kubernetes and designed to be cloud-agnostic, allowing you to deploy your applications on any of the supported cloud providers, including on-premises. The interfaces allow development teams and automation to deploy applications, keep the clusters secure, and use other capabilities that are explained below. On top, you benefit from our strong support model that ensures your long-term success and stability of workloads. ## Platform architecture