diff --git a/.github/workflows/lint-rest.yml b/.github/workflows/lint-rest.yml
index 4ae5b0f5a..89acf1dad 100644
--- a/.github/workflows/lint-rest.yml
+++ b/.github/workflows/lint-rest.yml
@@ -27,7 +27,4 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
GITHUB_BASE_REF: ${{ github.base_ref }}
GITHUB_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
- run: |
- mise run lint:bom
- mise run lint:local-links
- mise run lint:links-in-modified-files --base origin/"${GITHUB_BASE_REF}" --head "${GITHUB_HEAD_SHA}"
+ run: mise run lint:rest-ci
diff --git a/.mise/tasks/lint/links-in-modified-files.sh b/.mise/tasks/lint/links-in-modified-files.sh
deleted file mode 100755
index 3b39a133d..000000000
--- a/.mise/tasks/lint/links-in-modified-files.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-#MISE description="Lint links in modified files"
-
-set -e
-
-#USAGE flag "--base " help="base branch to compare against (default: origin/main)" default="origin/main"
-#USAGE flag "--head
" help="head branch to compare against (empty for local changes) (default: empty)" default=""
-
-# shellcheck disable=SC2154
-if [ "$usage_head" = "''" ]; then
- usage_head=""
-fi
-
-# Check if lychee config was modified
-# - because usage_head may be empty
-# shellcheck disable=SC2086,SC2154
-config_modified=$(git diff --name-only --merge-base "$usage_base" $usage_head |
- grep -E '^(\.github/config/lychee\.toml|\.mise/tasks/lint/.*|mise\.toml)$' || true)
-
-if [ -n "$config_modified" ]; then
- echo "config changes, checking all files."
- mise run lint:links
-else
- # Using lychee's default extension filter here to match when it runs against all files
- # Note: --diff-filter=d filters out deleted files
- # - because usage_head may be empty
- # shellcheck disable=SC2086
- modified_files=$(git diff --name-only --diff-filter=d "$usage_base" $usage_head |
- grep -E '\.(md|mkd|mdx|mdown|mdwn|mkdn|mkdown|markdown|html|htm|txt)$' |
- tr '\n' ' ' || true)
-
- if [ -z "$modified_files" ]; then
- echo "No modified files, skipping link linting."
- exit 0
- fi
-
- # shellcheck disable=SC2086
- mise run lint:links $modified_files
-fi
diff --git a/.mise/tasks/lint/links.sh b/.mise/tasks/lint/links.sh
deleted file mode 100755
index 19df7f20d..000000000
--- a/.mise/tasks/lint/links.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-#MISE description="Lint links in all files"
-
-set -e
-
-#USAGE arg "" var=#true help="files to check" default="."
-
-# shellcheck disable=SC2154
-for f in $usage_file; do
- echo "Checking links in file: $f"
-done
-
-# shellcheck disable=SC2086
-lychee --verbose --config .github/config/lychee.toml $usage_file
diff --git a/.mise/tasks/lint/local-links.sh b/.mise/tasks/lint/local-links.sh
deleted file mode 100755
index 054bb4ab4..000000000
--- a/.mise/tasks/lint/local-links.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-#MISE description="Lint links in local files"
-
-set -e
-
-#USAGE arg "" var=#true help="files to check" default="."
-
-# shellcheck disable=SC2154
-for f in $usage_file; do
- echo "Checking links in file: $f"
-done
-
-# shellcheck disable=SC2086
-lychee --verbose --scheme file --include-fragments --config .github/config/lychee.toml $usage_file
diff --git a/mise.toml b/mise.toml
index 267937d05..b75e5175f 100644
--- a/mise.toml
+++ b/mise.toml
@@ -51,9 +51,30 @@ run = "./mvnw install -DskipTests -Dcoverage.skip=true"
description = "Run Super-Linter with auto-fix on the repository"
file = "https://raw.githubusercontent.com/grafana/docker-otel-lgtm/main/.mise/tasks/lint/super-linter.sh"
+[tasks."lint:links"]
+file = "https://raw.githubusercontent.com/open-telemetry/opentelemetry-java-contrib/refs/heads/main/.mise/tasks/lint/links.sh"
+
+[tasks."lint:local-links"]
+file = "https://raw.githubusercontent.com/open-telemetry/opentelemetry-java-contrib/refs/heads/main/.mise/tasks/lint/local-links.sh"
+
+[tasks."lint:links-in-modified-files"]
+file = "https://raw.githubusercontent.com/open-telemetry/opentelemetry-java-contrib/refs/heads/main/.mise/tasks/lint/links-in-modified-files.sh"
+
+[tasks."lint:links-in-modified-files-ci"]
+description = "Lint links in modified files (CI configuration)"
+run = "mise run lint:links-in-modified-files --base origin/$GITHUB_BASE_REF --head $GITHUB_HEAD_SHA"
+
+[tasks."lint:links-in-modified-files-local"]
+description = "Lint links in modified files (local configuration)"
+run = "mise run lint:links-in-modified-files --base origin/main --head HEAD"
+
[tasks."lint:rest"]
description = "All lints not covered by super linter"
-depends = ["lint:links", "lint:bom"]
+depends = ["lint:bom", "lint:local-links", "lint:links-in-modified-files-local"]
+
+[tasks."lint:rest-ci"]
+description = "All lints not covered by super linter (CI configuration)"
+depends = ["lint:bom", "lint:local-links", "lint:links-in-modified-files-ci"]
[tasks."lint:all"]
description = "All lints"