Trunk Check manages, downloads, and runs dozens of linters, formatters, static analyzers, and security tools. It's also a platform to write your own custom checks and integrate them to run as part of your repo's check suite.
We currently support over 75 unique linters and we are adding new and updating old linters every sprint.
-
Hold-the-line
-
Trunk Check distinguishes new from existing issues, which allows you to introduce new linters and checks without any hassle.
-
This is traditionally a very painful process, because running a new linter or check in your CI means that you have to either fix all existing issues, which requires a huge upfront time investment, or only run the check on modified files, which adds unpredictable overhead to PRs and discourages engineers from making simple changes like typo fixes.
-
By integrating with Git, Trunk Check can hold-the-line: that is, it allows you to leave existing issues alone, and simply enforces that you never introduce new lint issues in a pull request.
-
Formatting linters behave slightly differently under hold-the-line than other tools. Since formatters apply to entire files they will be run across the entirety of any changed file and their recommendations must be applied before landing.
-
A short story
-
-
-
src/adder.js, which has 12 pre-existing issues, has a typo in a comment:
-
// This method adds too numbers together
-
-
-
-
Engineer sees this typo and corrects it:
-
// This method adds two numbers together
-
-
-
-
Engineer pushes this super-simple, no-code-change Pull Request (PR)
-
-
-
PR is checked for formatting/lint issues on CI
-
-
-
Without trunk
-
-
Engineer receives fail-mail and fail-slacks about their PR
-
Engineer wonders what in the world could've failed in a PR that fixes a typo in a comment
-
Engineer opens the failure notifications and starts going down the rabbit hole
-
2 hours later, engineer finally understands how much work it would be to fix all the pre-existing
-issues
-
Engineer abandons PR
-
Not only has a good chunk of the day been blown, but now the engineer is significantly less
-inclined to ever do this in the future
-
-
With trunk
-
-
trunk check CI succeeds on their PR
-
Engineer merges their PR
-
-
Issue severity
-
Trunk Check currently supports over 75 linters, each of which has it own issue severity classification system. We surface these as either Low, Medium, or High priority. This is not always a 1-to-1 translation of the linter's natively defined severity - many have more than 3 severity levels - but we've found that this provides the best signal for the end user.
-
By default, all issues reported by a linter are considered when evaluating if a pull request is passing. We have taken this approach because trunk is presenting a holistic view of a codebase, across all its languages and technologies, and we don't believe trunk should be in the business of making severity recommendations for individual linters.
-
If a linter believes an issue is worth reporting, we consider it worth blocking for. If that issue is not interesting for your repo - we suggest you completely disable that rule for that linter in its configuration.
Trunk CI Debugger (beta invite required) is available at app.trunk.io. With a sprinkling of code you can enable live debugging of your CI actions enabling real-time diagnosis, troubleshooting, and of course debugging of your otherwise ephemeral CI job.
-
What is it?
-
Similar to any traditional debugger, the Trunk CI Debugger, operates on breakpoints configured through the trunk web app. Each breakpoint is tracked with a unique id and is configured through a set of conditional rules. For example, you can specify that breakpoint 'foo' always triggers when the exit code of its command is non-zero (or failing).
-
-
How does it work?
-
At its most basic - the trunk ci debugger wraps the execution of whatever command you give it. This allows the debugger to break on_enter before running your command and on_exit after your command completes. This wrapper connects to the Trunk Service to determine in real time based on the conditional rules whether to trigger a breakpoint or continue execution.
-
What happens a breakpoint is triggered?
-
Upon triggering, the execution of your CI run will be paused and the system will attempt to notify someone that a breakpoint has been triggered. In practice when working with a pull request for example, this can be a Slack notification to the author of the PR, or a posting of a comment to the PR thread on GitHub.
-
The notification will include a link to connect to the debugging session and provides authenticated users with direct access to the machine that is being held.
-
What can I do during a debug session?
-
Anything! When connected over a debug session, you have live access to the terminal that is running your CI job; you are connecting to the live instance that is being used to run your job.
-
Besides running any normal shell command from the session, the debugger provides a set of command line tooling to further assist your debugging session.
runs the provided command again. upon retry the exit code of the breakpoint will be overwritten.
getexit
returns the current exit code that will be returned when the debugging session terminates (by default this is the exit code of the user provided command)
setexit {value}
overwrites the current exit code of the session with a user provided value. use this to change a failing execution into a passing execution (or vice versa)
download {file}
downloads the provided file to your local machine
continue
resumes execution; returns the current exit code, and allows CI process execution to proceed
Trunk Merge is a service that enables your repository to adhere to The “Not Rocket Science Rule Of Software Engineering”: Automatically maintain a repository of code that always passes all the tests.
-
How It Works
-
Trunk Merge adds an additional test pass before merging pull requests. For example, a typical developer workflow for authoring a feature and merging the code to a repository might look like this:
-
-
Create a feature branch from the main branch
-
Author a Change
-
Open a Pull Request
-
Tests are Run
-
Code Review
-
When tests & code review pass, Author merges request
-
-
In a repository with many contributors, the state of the main branch will have advanced significantly after step 1. Because of this, the results of the tests run in step 4 are out of date. Merge solves for this by adding another test pass to ensure no broken code lands on your main branch. A developer workflow with Merge integrated might look like this:
-
-
Create a feature branch from the main branch
-
Author a Change
-
Open a Pull Request
-
Tests are Run
-
Code Review
-
When tests & code review pass, Author submits pull request to Merge
-
Tests are run on a branch consisting of head of main + the pull request changes
-
If the tests pass, the pull request is merged automatically
-
-
Demo
-
Watch this 5 minute demo to see how it works in practice
-
Updated 10 months ago
What’s Next
Take 5 minutes and set up Merge in your repository
For other installation options (npm, brew, direct download, etc) and details on exactly what we install or how to uninstall, see the Install Trunk doc.
Trunk Merge: a merge queue to make merging code in github safer and easier
-
Trunk Check: a pluginable superlinter with a builtin language server and pre-existing issue detection
-
Trunk Actions: workflow automation for software engineers
-
-
Trunk Check and Trunk Actions can be used entirely locally without depending on hosted services or even having a Trunk account
-
Initialize Trunk in your repo
-
Whether you aim to use Trunk Check, Trunk Merge, Trunk Actions, or all of the above, the first step is to initialize Trunk in your git repo:
-
trunk init
-
-
Note: for an extra layer of security you can optionally run trunk init --lock instead of trunk init which adds sha256s of the trunk cli to the trunk config file. This is then used by the Trunk Launcher when it downloads the trunk binary.
-
init scans the files in your repo and generates a .trunk/trunk.yaml configuration file tailored to your repo (it may also generate linter-specific config files, such as .shellcheckrc). The scan will identify all the particular languages and technologies you use and automatically configure the correct set of linters / formatters to run.
-
If you only want to use Trunk Merge, you can safely ignore the linter setup, or even strip enabled linters from .trunk/trunk.yaml. You will additionally need to login to use Trunk Merge via trunk login.
\ No newline at end of file
diff --git a/assets/pest.png b/assets/pest.png
deleted file mode 100644
index c214220..0000000
Binary files a/assets/pest.png and /dev/null differ
diff --git a/assets/phpunit.png b/assets/phpunit.png
deleted file mode 100644
index fda0486..0000000
Binary files a/assets/phpunit.png and /dev/null differ
diff --git a/assets/pika-1715033198689-2x.png b/assets/pika-1715033198689-2x.png
deleted file mode 100644
index 2409fdf..0000000
Binary files a/assets/pika-1715033198689-2x.png and /dev/null differ
diff --git a/assets/pika-1715033350907-2x.png b/assets/pika-1715033350907-2x.png
deleted file mode 100644
index a865f6d..0000000
Binary files a/assets/pika-1715033350907-2x.png and /dev/null differ
diff --git a/assets/playwright.png b/assets/playwright.png
deleted file mode 100644
index d40b144..0000000
Binary files a/assets/playwright.png and /dev/null differ
diff --git a/assets/pmd.gif b/assets/pmd.gif
deleted file mode 100644
index 621dc8f..0000000
Binary files a/assets/pmd.gif and /dev/null differ
diff --git a/assets/png-clipart-metabase-logo-landscape-tech-companies.png b/assets/png-clipart-metabase-logo-landscape-tech-companies.png
deleted file mode 100644
index dbd4d61..0000000
Binary files a/assets/png-clipart-metabase-logo-landscape-tech-companies.png and /dev/null differ
diff --git a/assets/pr-drill-down-list.png b/assets/pr-drill-down-list.png
deleted file mode 100644
index eb3b446..0000000
Binary files a/assets/pr-drill-down-list.png and /dev/null differ
diff --git a/assets/pr-restart-menu.png b/assets/pr-restart-menu.png
deleted file mode 100644
index ff612d3..0000000
Binary files a/assets/pr-restart-menu.png and /dev/null differ
diff --git a/assets/pr-test-summary.png b/assets/pr-test-summary.png
deleted file mode 100644
index 8b6c302..0000000
Binary files a/assets/pr-test-summary.png and /dev/null differ
diff --git a/assets/pr-test-summary_(1).png b/assets/pr-test-summary_(1).png
deleted file mode 100644
index fd48142..0000000
Binary files a/assets/pr-test-summary_(1).png and /dev/null differ
diff --git a/assets/pragma-once.gif b/assets/pragma-once.gif
deleted file mode 100644
index 5cfdaaf..0000000
Binary files a/assets/pragma-once.gif and /dev/null differ
diff --git a/assets/prettier.gif b/assets/prettier.gif
deleted file mode 100644
index ac83ac8..0000000
Binary files a/assets/prettier.gif and /dev/null differ
diff --git a/assets/prs-impacted-dark.png b/assets/prs-impacted-dark.png
deleted file mode 100644
index 7e37835..0000000
Binary files a/assets/prs-impacted-dark.png and /dev/null differ
diff --git a/assets/prs-impacted-dark_(1).png b/assets/prs-impacted-dark_(1).png
deleted file mode 100644
index d12f9b4..0000000
Binary files a/assets/prs-impacted-dark_(1).png and /dev/null differ
diff --git a/assets/prs-impacted-light.png b/assets/prs-impacted-light.png
deleted file mode 100644
index 76392d0..0000000
Binary files a/assets/prs-impacted-light.png and /dev/null differ
diff --git a/assets/prs-impacted-light_(1).png b/assets/prs-impacted-light_(1).png
deleted file mode 100644
index 321bee8..0000000
Binary files a/assets/prs-impacted-light_(1).png and /dev/null differ
diff --git a/assets/prs_impacted_(1).png b/assets/prs_impacted_(1).png
deleted file mode 100644
index bd15095..0000000
Binary files a/assets/prs_impacted_(1).png and /dev/null differ
diff --git a/assets/pylint.gif b/assets/pylint.gif
deleted file mode 100644
index 097542a..0000000
Binary files a/assets/pylint.gif and /dev/null differ
diff --git a/assets/pytest.png b/assets/pytest.png
deleted file mode 100644
index 524d946..0000000
Binary files a/assets/pytest.png and /dev/null differ
diff --git a/assets/quarantine-flaky-status.png b/assets/quarantine-flaky-status.png
deleted file mode 100644
index bf5d0f1..0000000
Binary files a/assets/quarantine-flaky-status.png and /dev/null differ
diff --git a/assets/quarantined_test.png b/assets/quarantined_test.png
deleted file mode 100644
index f0f2bb9..0000000
Binary files a/assets/quarantined_test.png and /dev/null differ
diff --git a/assets/quarantined_test1.png b/assets/quarantined_test1.png
deleted file mode 100644
index 841274a..0000000
Binary files a/assets/quarantined_test1.png and /dev/null differ
diff --git a/assets/qurantine-audit-logs.png b/assets/qurantine-audit-logs.png
deleted file mode 100644
index 9854026..0000000
Binary files a/assets/qurantine-audit-logs.png and /dev/null differ
diff --git a/assets/qurantine-enable-settings.png b/assets/qurantine-enable-settings.png
deleted file mode 100644
index 0d33a77..0000000
Binary files a/assets/qurantine-enable-settings.png and /dev/null differ
diff --git a/assets/qurantine-enable-settings_(1).png b/assets/qurantine-enable-settings_(1).png
deleted file mode 100644
index dbc00e3..0000000
Binary files a/assets/qurantine-enable-settings_(1).png and /dev/null differ
diff --git a/assets/qurantine-individual-tests-revert.png b/assets/qurantine-individual-tests-revert.png
deleted file mode 100644
index 22c865e..0000000
Binary files a/assets/qurantine-individual-tests-revert.png and /dev/null differ
diff --git a/assets/qurantine-individual-tests.png b/assets/qurantine-individual-tests.png
deleted file mode 100644
index 006814d..0000000
Binary files a/assets/qurantine-individual-tests.png and /dev/null differ
diff --git a/assets/robot.png b/assets/robot.png
deleted file mode 100644
index 271325b..0000000
Binary files a/assets/robot.png and /dev/null differ
diff --git a/assets/rspec.png b/assets/rspec.png
deleted file mode 100644
index e1eba0b..0000000
Binary files a/assets/rspec.png and /dev/null differ
diff --git a/assets/run-details-dark.png b/assets/run-details-dark.png
deleted file mode 100644
index 3e71a5b..0000000
Binary files a/assets/run-details-dark.png and /dev/null differ
diff --git a/assets/run-details-light.png b/assets/run-details-light.png
deleted file mode 100644
index 1c59710..0000000
Binary files a/assets/run-details-light.png and /dev/null differ
diff --git a/assets/runs-view-table.png b/assets/runs-view-table.png
deleted file mode 100644
index ffebd04..0000000
Binary files a/assets/runs-view-table.png and /dev/null differ
diff --git a/assets/scaffoldhub.png b/assets/scaffoldhub.png
deleted file mode 100644
index 1f43f8e..0000000
Binary files a/assets/scaffoldhub.png and /dev/null differ
diff --git a/assets/semaphore-logo.png b/assets/semaphore-logo.png
deleted file mode 100644
index 1d24e8c..0000000
Binary files a/assets/semaphore-logo.png and /dev/null differ
diff --git a/assets/semaphore.png b/assets/semaphore.png
deleted file mode 100644
index f86249a..0000000
Binary files a/assets/semaphore.png and /dev/null differ
diff --git a/assets/shellcheck.gif b/assets/shellcheck.gif
deleted file mode 100644
index ffb4823..0000000
Binary files a/assets/shellcheck.gif and /dev/null differ
diff --git a/assets/slack-dm-start-connection.png b/assets/slack-dm-start-connection.png
deleted file mode 100644
index 3b38b67..0000000
Binary files a/assets/slack-dm-start-connection.png and /dev/null differ
diff --git a/assets/slack-home-connect.png b/assets/slack-home-connect.png
deleted file mode 100644
index 32916c5..0000000
Binary files a/assets/slack-home-connect.png and /dev/null differ
diff --git a/assets/slack-multi-channel.png b/assets/slack-multi-channel.png
deleted file mode 100644
index c888563..0000000
Binary files a/assets/slack-multi-channel.png and /dev/null differ
diff --git a/assets/slack-multiple-channels.png b/assets/slack-multiple-channels.png
deleted file mode 100644
index a0620b5..0000000
Binary files a/assets/slack-multiple-channels.png and /dev/null differ
diff --git a/assets/slack-notification-topics.png b/assets/slack-notification-topics.png
deleted file mode 100644
index 6d666ea..0000000
Binary files a/assets/slack-notification-topics.png and /dev/null differ
diff --git a/assets/slack-workspace-connect.png b/assets/slack-workspace-connect.png
deleted file mode 100644
index 8f94d32..0000000
Binary files a/assets/slack-workspace-connect.png and /dev/null differ
diff --git a/assets/slack-workspace-connected.png b/assets/slack-workspace-connected.png
deleted file mode 100644
index b8f2da6..0000000
Binary files a/assets/slack-workspace-connected.png and /dev/null differ
diff --git a/assets/slack-workspace-oauth.png b/assets/slack-workspace-oauth.png
deleted file mode 100644
index c1da180..0000000
Binary files a/assets/slack-workspace-oauth.png and /dev/null differ
diff --git a/assets/slack.png b/assets/slack.png
deleted file mode 100644
index 53ae325..0000000
Binary files a/assets/slack.png and /dev/null differ
diff --git a/assets/status_history.png b/assets/status_history.png
deleted file mode 100644
index 84bb4b2..0000000
Binary files a/assets/status_history.png and /dev/null differ
diff --git a/assets/svix.svg b/assets/svix.svg
deleted file mode 100644
index f7240a5..0000000
--- a/assets/svix.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
\ No newline at end of file
diff --git a/assets/swift-testing.png b/assets/swift-testing.png
deleted file mode 100644
index 8b3e4dc..0000000
Binary files a/assets/swift-testing.png and /dev/null differ
diff --git a/assets/teamcity.png b/assets/teamcity.png
deleted file mode 100644
index b3d36f2..0000000
Binary files a/assets/teamcity.png and /dev/null differ
diff --git a/assets/terminal-icon.svg b/assets/terminal-icon.svg
deleted file mode 100644
index 3781403..0000000
--- a/assets/terminal-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/terminal-icon_(1).svg b/assets/terminal-icon_(1).svg
deleted file mode 100644
index 0ebb564..0000000
--- a/assets/terminal-icon_(1).svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/terminal-icon_(2).svg b/assets/terminal-icon_(2).svg
deleted file mode 100644
index 049c74d..0000000
--- a/assets/terminal-icon_(2).svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/terraform-drift-mergequeue.png b/assets/terraform-drift-mergequeue.png
deleted file mode 100644
index 5b8e067..0000000
Binary files a/assets/terraform-drift-mergequeue.png and /dev/null differ
diff --git a/assets/terraform-in-sync.png b/assets/terraform-in-sync.png
deleted file mode 100644
index 8dc4628..0000000
Binary files a/assets/terraform-in-sync.png and /dev/null differ
diff --git a/assets/test-analtyics-pr-comment-screenshot.png b/assets/test-analtyics-pr-comment-screenshot.png
deleted file mode 100644
index c217f06..0000000
Binary files a/assets/test-analtyics-pr-comment-screenshot.png and /dev/null differ
diff --git a/assets/test-details-label-picker.png b/assets/test-details-label-picker.png
deleted file mode 100644
index 608e5e2..0000000
Binary files a/assets/test-details-label-picker.png and /dev/null differ
diff --git a/assets/test-details-labels.png b/assets/test-details-labels.png
deleted file mode 100644
index 57c6b51..0000000
Binary files a/assets/test-details-labels.png and /dev/null differ
diff --git a/assets/test-history-dark.png b/assets/test-history-dark.png
deleted file mode 100644
index 0c46aea..0000000
Binary files a/assets/test-history-dark.png and /dev/null differ
diff --git a/assets/test-history-light.png b/assets/test-history-light.png
deleted file mode 100644
index 2453ce0..0000000
Binary files a/assets/test-history-light.png and /dev/null differ
diff --git a/assets/test-labels-settings.png b/assets/test-labels-settings.png
deleted file mode 100644
index 6742edc..0000000
Binary files a/assets/test-labels-settings.png and /dev/null differ
diff --git a/assets/test-run-detail-dark.png b/assets/test-run-detail-dark.png
deleted file mode 100644
index 926ac9e..0000000
Binary files a/assets/test-run-detail-dark.png and /dev/null differ
diff --git a/assets/test-run-detail-light.png b/assets/test-run-detail-light.png
deleted file mode 100644
index a3060bd..0000000
Binary files a/assets/test-run-detail-light.png and /dev/null differ
diff --git a/assets/testplan-box.png b/assets/testplan-box.png
deleted file mode 100644
index 3f5ed6a..0000000
Binary files a/assets/testplan-box.png and /dev/null differ
diff --git a/assets/testplan-box_(1).png b/assets/testplan-box_(1).png
deleted file mode 100644
index 5fbd58d..0000000
Binary files a/assets/testplan-box_(1).png and /dev/null differ
diff --git a/assets/testplan.png b/assets/testplan.png
deleted file mode 100644
index c0bd555..0000000
Binary files a/assets/testplan.png and /dev/null differ
diff --git a/assets/tests-list-filtered-by-label.png b/assets/tests-list-filtered-by-label.png
deleted file mode 100644
index 658ff2c..0000000
Binary files a/assets/tests-list-filtered-by-label.png and /dev/null differ
diff --git a/assets/testtrunkintegration.slack.com_oauth_client_id=1523871431059.3961451315218&scope=incoming-webhook%2Cchannels%3Ajoin%2Cchannels%3Amanage&user_scope=&redirect_uri=https%3A%2F%2Fapp.trunk.io%2Fslack%2F07e100e0-5053-42ed-8d13-cd953bba3b42%3Frep.png b/assets/testtrunkintegration.slack.com_oauth_client_id=1523871431059.3961451315218&scope=incoming-webhook%2Cchannels%3Ajoin%2Cchannels%3Amanage&user_scope=&redirect_uri=https%3A%2F%2Fapp.trunk.io%2Fslack%2F07e100e0-5053-42ed-8d13-cd953bba3b42%3Frep.png
deleted file mode 100644
index 9ca2bca..0000000
Binary files a/assets/testtrunkintegration.slack.com_oauth_client_id=1523871431059.3961451315218&scope=incoming-webhook%2Cchannels%3Ajoin%2Cchannels%3Amanage&user_scope=&redirect_uri=https%3A%2F%2Fapp.trunk.io%2Fslack%2F07e100e0-5053-42ed-8d13-cd953bba3b42%3Frep.png and /dev/null differ
diff --git a/assets/travis-ci-logo.png b/assets/travis-ci-logo.png
deleted file mode 100644
index cddb59b..0000000
Binary files a/assets/travis-ci-logo.png and /dev/null differ
diff --git a/assets/travis.png b/assets/travis.png
deleted file mode 100644
index 4d1125e..0000000
Binary files a/assets/travis.png and /dev/null differ
diff --git a/assets/trivy.gif b/assets/trivy.gif
deleted file mode 100644
index 17e924e..0000000
Binary files a/assets/trivy.gif and /dev/null differ
diff --git a/assets/trunk-sudo-ruleset-bypass-mode.png b/assets/trunk-sudo-ruleset-bypass-mode.png
deleted file mode 100644
index aa02bef..0000000
Binary files a/assets/trunk-sudo-ruleset-bypass-mode.png and /dev/null differ
diff --git a/assets/trunk-sudo-setup-checklist.png b/assets/trunk-sudo-setup-checklist.png
deleted file mode 100644
index e9bac59..0000000
Binary files a/assets/trunk-sudo-setup-checklist.png and /dev/null differ
diff --git a/assets/unique-failure-reason-dark.png b/assets/unique-failure-reason-dark.png
deleted file mode 100644
index 9df677c..0000000
Binary files a/assets/unique-failure-reason-dark.png and /dev/null differ
diff --git a/assets/unique-failure-reason-light.png b/assets/unique-failure-reason-light.png
deleted file mode 100644
index f2f2993..0000000
Binary files a/assets/unique-failure-reason-light.png and /dev/null differ
diff --git a/assets/unique_failure_reasons.png b/assets/unique_failure_reasons.png
deleted file mode 100644
index cb8b4a0..0000000
Binary files a/assets/unique_failure_reasons.png and /dev/null differ
diff --git a/assets/unique_failure_reasons_(1).png b/assets/unique_failure_reasons_(1).png
deleted file mode 100644
index e1a7b76..0000000
Binary files a/assets/unique_failure_reasons_(1).png and /dev/null differ
diff --git a/assets/unittest.png b/assets/unittest.png
deleted file mode 100644
index c6037af..0000000
Binary files a/assets/unittest.png and /dev/null differ
diff --git a/assets/variants-dark-border.png b/assets/variants-dark-border.png
deleted file mode 100644
index 52d4e3d..0000000
Binary files a/assets/variants-dark-border.png and /dev/null differ
diff --git a/assets/variants-light-border.png b/assets/variants-light-border.png
deleted file mode 100644
index bb209aa..0000000
Binary files a/assets/variants-light-border.png and /dev/null differ
diff --git a/assets/vitest.png b/assets/vitest.png
deleted file mode 100644
index 3badfac..0000000
Binary files a/assets/vitest.png and /dev/null differ
diff --git a/assets/waabi-logo-rev_copy.png b/assets/waabi-logo-rev_copy.png
deleted file mode 100644
index f36a73e..0000000
Binary files a/assets/waabi-logo-rev_copy.png and /dev/null differ
diff --git a/assets/waabi-logo.png b/assets/waabi-logo.png
deleted file mode 100644
index 3dbea92..0000000
Binary files a/assets/waabi-logo.png and /dev/null differ
diff --git a/assets/webhook-event-catalog.png b/assets/webhook-event-catalog.png
deleted file mode 100644
index 3d4d69a..0000000
Binary files a/assets/webhook-event-catalog.png and /dev/null differ
diff --git a/assets/webhook-event-catalog_(1).png b/assets/webhook-event-catalog_(1).png
deleted file mode 100644
index 3d4d69a..0000000
Binary files a/assets/webhook-event-catalog_(1).png and /dev/null differ
diff --git a/assets/webhooks-settings.png b/assets/webhooks-settings.png
deleted file mode 100644
index 9557de3..0000000
Binary files a/assets/webhooks-settings.png and /dev/null differ
diff --git a/assets/wordmark-dark.png b/assets/wordmark-dark.png
deleted file mode 100644
index 1c976d6..0000000
Binary files a/assets/wordmark-dark.png and /dev/null differ
diff --git a/assets/workflow-details-barchart-popup.png b/assets/workflow-details-barchart-popup.png
deleted file mode 100644
index 6ef3278..0000000
Binary files a/assets/workflow-details-barchart-popup.png and /dev/null differ
diff --git a/assets/workflow-jobs-overview.png b/assets/workflow-jobs-overview.png
deleted file mode 100644
index e2b02c9..0000000
Binary files a/assets/workflow-jobs-overview.png and /dev/null differ
diff --git a/assets/xctest-logo.png b/assets/xctest-logo.png
deleted file mode 100644
index 3333c74..0000000
Binary files a/assets/xctest-logo.png and /dev/null differ
diff --git a/assets/xctest.png b/assets/xctest.png
deleted file mode 100644
index bb88525..0000000
Binary files a/assets/xctest.png and /dev/null differ
diff --git a/ci-autopilot/faqs.mdx b/ci-autopilot/faqs.mdx
deleted file mode 100644
index bfbc92d..0000000
--- a/ci-autopilot/faqs.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "FAQs"
-hidden: true
----
diff --git a/ci-autopilot/overview/get-started/connect-to-github.mdx b/ci-autopilot/overview/get-started/connect-to-github.mdx
deleted file mode 100644
index e115a8c..0000000
--- a/ci-autopilot/overview/get-started/connect-to-github.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Connect to GitHub"
-description: "Get started with Trunk CI Autopilot to get root cause analysis with fixes for CI/test failures."
----
diff --git a/ci-autopilot/overview/get-started/index.mdx b/ci-autopilot/overview/get-started/index.mdx
deleted file mode 100644
index 9c1c62d..0000000
--- a/ci-autopilot/overview/get-started/index.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Get Started"
-description: "Get started with Trunk's CI Autopilot"
----
diff --git a/ci-autopilot/overview/get-started/upload-test-results.mdx b/ci-autopilot/overview/get-started/upload-test-results.mdx
deleted file mode 100644
index 9f44947..0000000
--- a/ci-autopilot/overview/get-started/upload-test-results.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Upload test results"
-description: "Enhance CI Autopilot by uploading test results"
----
diff --git a/ci-autopilot/overview/index.mdx b/ci-autopilot/overview/index.mdx
deleted file mode 100644
index ab03fab..0000000
--- a/ci-autopilot/overview/index.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Overview"
-description: "Trunk's CI Autopilot offers AI root cause analysis and fixes for test and CI failures"
----
diff --git a/ci-autopilot/overview/use-ci-autopilot/apply-fixes-with-mcp.mdx b/ci-autopilot/overview/use-ci-autopilot/apply-fixes-with-mcp.mdx
deleted file mode 100644
index 8400515..0000000
--- a/ci-autopilot/overview/use-ci-autopilot/apply-fixes-with-mcp.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Apply fixes with MCP"
-description: "Learn about how to apply fix recommendations with MCP"
----
diff --git a/ci-autopilot/overview/use-ci-autopilot/index.mdx b/ci-autopilot/overview/use-ci-autopilot/index.mdx
deleted file mode 100644
index 74a3a3d..0000000
--- a/ci-autopilot/overview/use-ci-autopilot/index.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Use CI Autopilot"
-description: "Use Trunk's CI Autopilot in pull requests or with MCP"
----
diff --git a/ci-autopilot/overview/use-ci-autopilot/request-fixes-on-prs.mdx b/ci-autopilot/overview/use-ci-autopilot/request-fixes-on-prs.mdx
deleted file mode 100644
index be2ebba..0000000
--- a/ci-autopilot/overview/use-ci-autopilot/request-fixes-on-prs.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Request fixes on PRs"
-description: "Learn about how to request fixes on failed pull requests"
----
diff --git a/ci-autopilot/overview/use-ci-autopilot/understand-root-cause-analysis.mdx b/ci-autopilot/overview/use-ci-autopilot/understand-root-cause-analysis.mdx
deleted file mode 100644
index c1b1787..0000000
--- a/ci-autopilot/overview/use-ci-autopilot/understand-root-cause-analysis.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Understand root cause analysis"
-description: "Learn about Trunk's CI Autopilot root cause analysis and fix suggestions for failed pull requests"
----
diff --git a/ci-autopilot/overview/use-dashboard/change-settings.mdx b/ci-autopilot/overview/use-dashboard/change-settings.mdx
deleted file mode 100644
index 223980e..0000000
--- a/ci-autopilot/overview/use-dashboard/change-settings.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Change settings"
-description: "Dashboard: Settings"
----
diff --git a/ci-autopilot/overview/use-dashboard/index.mdx b/ci-autopilot/overview/use-dashboard/index.mdx
deleted file mode 100644
index 3b0b770..0000000
--- a/ci-autopilot/overview/use-dashboard/index.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: "Use Dashboard"
----
diff --git a/ci-autopilot/overview/use-dashboard/review-activity.mdx b/ci-autopilot/overview/use-dashboard/review-activity.mdx
deleted file mode 100644
index 4b6f5e6..0000000
--- a/ci-autopilot/overview/use-dashboard/review-activity.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Review activity"
-description: "Dashboard: Agent Activity Feed"
----
diff --git a/ci-autopilot/overview/use-dashboard/test-uploads.mdx b/ci-autopilot/overview/use-dashboard/test-uploads.mdx
deleted file mode 100644
index 1984db9..0000000
--- a/ci-autopilot/overview/use-dashboard/test-uploads.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "Test Uploads"
-hidden: true
----
diff --git a/code-quality/ci-setup/general.mdx b/code-quality/ci-setup/general.mdx
deleted file mode 100644
index f7d288c..0000000
--- a/code-quality/ci-setup/general.mdx
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: "Manual Setup"
-description: "How to integrate Trunk Code Quality into CI for GitLab and other non-GitHub providers, or for GitHub without using the Trunk GitHub App"
-layout:
----
-
-If you use GitHub, we recommend you follow the [GitHub Integration](./get-started) guide.
-
-
-
-
-If you're using GitHub but wish to setup up your own GitHub Actions Workflows, you can use the provided [Trunk GitHub Action](https://github.com/marketplace/actions/trunk-check).
-
-```yaml
-name: Linter
-on:
- push:
- branches: main
- pull_request:
- branches: main
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - name: Trunk Check
- uses: trunk-io/trunk-action@v1
- with:
- post-annotations: true
- # ... other CI steps
-```
-
-
-GitLab performs a shallow clone by default which limits trunk's ability to detect the upstream commit to compute changes from. This is easily solved by simply fetching your main branch before running `trunk`:
-
-```bash
-git fetch origin main
-trunk check --ci
-```
-
-
-If your default branch is named something else (e.g. `master`), you should `fetch` that branch inst
-
-
-
-`trunk check --ci` will work on any CI provider.
-
-You may also want to specify `--upstream` if, for example, your PRs are not merged into your default branch, but into a `develop` branch.
-
-
-
-## Caching and Persistence
-
-* Trunk caches the version of `trunk` itself, linters, formatters, and lint results, in `~/.cache/trunk`
-* If your build machines are persistent, make sure this directory is not wiped out between CI jobs for best performance. If Trunk has to re-download every linter for every job because this directory is wiped out, it will be very slow.
-* If your build machines are ephemeral, there are a few options for caching:
- * CI systems have support for caching between CI jobs on ephemeral runners:
- * [GitHub Actions](https://github.com/actions/cache)
- * [CircleCI](https://circleci.com/docs/caching/)
- * [Travis CI](https://docs.travis-ci.com/user/caching/)
- * You can include a seeded trunk cache in a regularly updated image used for CI by running `trunk check download`, which will download all requirements to `~/.cache/trunk`
-
-## Running `trunk check` on Hourly/Nightly Builds
-
-If you'd like to setup `trunk check` to run on a hourly/nightly CI run or release branch we recommend running with the following command:
-
-```bash
-trunk check --all --ci-progress --monitor=false
-```
-
-`--ci-progress` will print out the tool's progress every 30 seconds, whereas `--no-progress` will suppress any progress reporting.
-
-You can also explicitly set the upstream branch if needed via `--upstream`, but we do detect your main branch by default.
-
-### Uploading Results From Hourly/Nightly Builds
-
-Trunk Code Quality has the ability to post its results to [app.trunk.io](https://app.trunk.io/login?intent=code%20quality). This will enable you to view your repository's Code Quality history over time so you can track the trend of issues in your code, as well as browse the issues in your repository to help you understand which issues should be prioritized to fix.
-
-In order to keep the data up-to-date, you should upload Trunk Code Quality results regularly in an automated fashion. Depending on the size of your repository and the linters you have configured to run, running Trunk Code Quality on your whole repository may take a while. Because this run may take a while, we recommend uploading Trunk Code Quality results once daily. However, the system supports uploading results for every commit, so the granularity of upload is up to you.
-
-### Running `trunk check --upload`
-
-
-Before running `trunk check --upload` you must have [connected your GitHub repository to your Trunk account](./get-started).
-
-
-#### CI Setup for nightly uploads
-
-You can use the [Trunk GitHub Action](https://github.com/marketplace/actions/trunk-check) to upload results nightly for your main branch. You can provide it with a `trunk-token` by navigating to Settings → Repositories → \{your repository} and clicking "View API Token".
-
-Example nightly workflow to upload results: [`nightly.yaml`](https://github.com/trunk-io/trunk-action/blob/main/.github/workflows/nightly.yaml)
-
-#### Running `trunk check --upload` locally
-
-1. `trunk check --upload` is different than a normal `trunk check` invocation because we explicitly want the Trunk CLI to find all of the issues in the repository. Because of this, we recommend adding the `--all` flag to your `trunk check --upload` invocation. Keep in mind, this won't override the ignore settings in your `trunk.yaml` file. Any linter or file-level ignores you have configured will be honored by `trunk check --upload`.
-2. `trunk check --upload` accepts the same flags and filters as `trunk check` that you run locally and for CI, and it also has the same runtime dependencies.
-3. You should run your `trunk check --upload` command locally without the `--upload` flag to verify that it is working as expected. If you have a large repository or many checks enabled, `--all` may take a long time. In this case, remember to use `--sample`.
-4. Required command line parameters
- 1. `--token`: The Trunk API token for this repository. You can find this by navigating to Settings → Repositories → \{your repository} and clicking "View API Token".
- 2. `--series`: This is the name of the time-series this upload run is a part of. We recommend using the name of the branch you are running `trunk check` on. For example, we run `trunk check --upload` regularly on our `main` branch, so we use `--series main`. You may instead prefer to track specific releases or tags, or create an experimental series. The series name does not need to match any git object, it is available as a way to organize your upload data. If you're unsure of what to use for `--series`, just use the name of your main branch (typically `main` or `master`)
-
-```bash
-trunk check --all --upload --series main --token REDACTED
-```
-
-#### Troubleshooting
-
-Normally we infer repo information from the `origin` remote, however if you don't have an `origin` or for another git configuration reason it can't be inferred, it can be explicitly defined in `trunk.yaml`:
-
-1. Add a `repo` section to your Trunk config. This allows the Trunk CLI to connect with the appropriate repository in the Trunk system.
- 1. `host`: Where your repository is hosted. Currently only GitHub is supported, so this value should be `github.com`,
- 2. `owner`: The GitHub Owner of the repository, typically the first path section of your repository URL. For example, if we were connecting with [https://github.com/google/googletest](https://github.com/google/googletest), the `owner` would be `google`.
- 3. `name`: The name of the repository. Continuing with our example above, the `name` would be `googletest`.
-
-This is what the `repo` section of your config would look like if your repository was hosted at [https://github.com/google/googletest](https://github.com/google/googletest)
-
-```yaml
-repo:
- repo:
- host: github.com
- owner: google
- name: googletest
-```
-
-Note the repo/repo nested structure.
diff --git a/code-quality/ci-setup/get-started.mdx b/code-quality/ci-setup/get-started.mdx
deleted file mode 100644
index 63ac228..0000000
--- a/code-quality/ci-setup/get-started.mdx
+++ /dev/null
@@ -1,140 +0,0 @@
----
-title: "GitHub Integration"
-description: "Automate your code quality enforcement with just a few clicks."
----
-Trunk Code Quality has the ability to post its results to the [Trunk Code Quality web app](https://app.trunk.io/login?intent=code%20quality). This will enable you to view your repository's Code Quality history over time so you can track the trend of issues in your code, as well as browse the issues in your repository to help you understand which issues should be prioritized to fix.
-
-## Connect your Trunk organization to GitHub
-
-Sign up at [app.trunk.io](https://app.trunk.io/signup?intent=code%20quality), create a Trunk organization, and connect it to your repositories. You will need to grant the following [GitHub App permissions](/setup-and-administration/github-app-permissions).
-
-
-
-## Set Up Trunk Code Quality
-
-Once your Trunk organization is connected to GitHub, create a .trunk repo in your account or organization and grant Trunk permissions to access the repo. The .trunk repo will hold the workflows to scan your codebase and pull requests. [Learn more about the .trunk repo](/code-quality/overview/setup-and-installation/github-integration#what-is-a-.trunk-repository).
-
-
-
-## Configure Slack Notifications (optional)
-
-If you would like to receive notifications for new issues Trunk finds in your repo, you can configure Trunk to be connected to Slack.
-
-
-
-## Use it!
-
-### Ensure that PRs are free of issues
-
-Check out [this example](https://github.com/trunk-io/plugins/pull/424/checks?check\_run\_id=15730277425) in our `plugins` repository!
-
-
-
-
-.png)
-
-
-
-
-## Scanning your repository
-
-Trunk Code Quality can scan your repository for Code Quality issues on a daily cadence, upload them to Trunk for you to review at your convenience, and notify you via Slack whenever new issues are discovered in your repository.
-
-This allows you to build confidence in the code health of your repositories:
-
-* You will be alerted quickly in a [Heartbleed-type](https://heartbleed.com/) event, giving you assurances about whether or not a newly discovered vulnerability affects any of your repositories, and
-* You can monitor how many Code Quality issues exist in each of your repositories and make data-driven decisions about prioritizing efforts to reduce tech debt
-
-If you don't want Trunk Code Quality to scan your repository on a daily cadence or notify you, you can turn it off in [your repository's settings](https://app.trunk.io/signup?intent=code%20quality).
-
-
-
-
-
-### Get Slack notifications about new issues in your repository
-
-Not only do our daily scans allow you to browse and triage the issues in your repository, but they can also notify you when new security issues are discovered in packages you already depend on.
-
-
-
-## Checking pull requests
-
-Trunk Code Quality can automatically detect new Code Quality issues on your pull requests and flag them so that you can prevent pull requests from introducing any new issues in your repository.
-
-When running on a pull request, Trunk Code Quality will only flag _new_ issues, not existing ones, so that your engineers don't have to fix pre-existing linter issues in every file they touch - this is the same [hold-the-line technology](/merge-queue/reference/how-does-it-work#hold-the-line) that our VSCode extension and CLI use.
-
-
-
-To confirm that you've fixed issues identified by Trunk Code Quality before pushing your pull request, just run `trunk check`.
-
-If Trunk continues to identify new Code Quality issues on your PR, first try merging the latest changes from your base branch. When Trunk runs on a PR, it runs on a commit that merges your PR into its base branch, just like GitHub workflows.
-
-If this continues to fail, then run `git checkout refs/pull//merge && trunk check`. This is a reference to the merge commit GitHub creates.
-
-
-
-You can include `/trunk skip-check` in the body of a PR description (i.e. the first comment on a given PR) to mark Trunk Code Quality as "skipped". Trunk Code Quality will still run on your PR and report issues, but this will allow the PR to pass a GitHub required status check on `Trunk Check`.
-
-This can be helpful if Code Quality is flagging known issues in a given PR that you don't want to [ignore](/code-quality/overview/linters/ignoring-issues-and-files), which can come in handy if you're doing a large refactor.
-
-
-
-If you don't want Trunk Code Quality to run on pull requests, turn it off in [your repository's settings](https://app.trunk.io/login?intent=code%20quality).
-
-### Uploading Results
-
-The upload feature of Trunk Code Quality will upload all of the issues found by Trunk to the Trunk services. In order to get an accurate picture of the state of your repository, you'll want to upload all of the Trunk Code Quality issues for your whole repository.
-
-Generally this should be done within your Continuous Integration system (CI) automatically whenever **pull requests are filed or pushed to a specific branch** in your repo. Trunk Code Quality can also **run periodically** to check for new vulnerabilities in your dependencies.
-
-### How Does It Work?
-
-Under the hood, the GitHub integration does the following to your organization to enable Trunk Code Quality in GitHub Actions Workflows:
-
-* An installation of the Trunk.io GitHub app in your GitHub organization
-* A `.trunk` repository in your GitHub organization.
-
-### What is a `.trunk` repository?
-
-The `.trunk` repository contains the workflows run to scan your codebase and pull requests. We recommend creating a `.trunk` repository in your GitHub organization using [this template repository](https://github.com/trunk-io/.trunk-template).
-
-Your `.trunk` repository must be added to your Trunk GitHub app installation. You can verify this by navigating to: `https://github.com/organizations//settings/installations`, clicking "configure" next to Trunk-io, and verifying that the repository access is either "All repositories" or that your `.trunk` repository is selected.
-
-To find Code Quality issues in your repositories and pull requests, we dispatch GitHub Actions workflows in your `.trunk` repository, which check out your repositories and pull requests and then run `trunk check` in them. This strategy allows you to:
-
-* start using Trunk Code Quality in all your repositories without any configuration, and
-* be in full control over the environment where we analyze your code, since we're running on your GitHub Actions runners.
-
-
-🚧 `.trunk` should have private visibility
-
-Since we use workflow runs in `.trunk` to analyze any repository in your organization and record Code Quality findings, you should think carefully about who has permissions to view workflow runs in your `.trunk` repository. For most organizations, simply making your `.trunk` repository private will be sufficient.
-
-
-## (optional) Custom setup logic
-
-If you need to do some setup before `trunk check` runs in `your-org/your-repo`, you can [define a GitHub composite action](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) in `.trunk/setup-ci/action.yaml` in `your-repo`. This can be important if, for example, a linter needs some generated code to be present before it can run:
-
-```yaml
-name: Trunk Code Quality setup
-description: Set up dependencies for Trunk Code Quality
-
-runs:
- using: composite
- steps:
- - name: Build required trunk check inputs
- shell: bash
- run: bazel build ... --build_tag_filters=pre-lint
-
- - name: Install eslint dependencies
- shell: bash
- run: npm install
-```
-
-Read more in the documentation for [our GitHub Action](https://github.com/trunk-io/trunk-action#custom-setup).
diff --git a/code-quality/overview/cli/getting-started/actions/git-hooks.mdx b/code-quality/overview/cli/getting-started/actions/git-hooks.mdx
deleted file mode 100644
index af37701..0000000
--- a/code-quality/overview/cli/getting-started/actions/git-hooks.mdx
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: "Git Hooks"
-description: "Trunk supports triggering actions on all githooks"
----
-### Features
-
-* Seamlessly bring `git-hooks` under version control. `git-hooks` can be a major headache for organizations - they require manual installation and are not easily versioned along with the rest of your code.
-* Take advantage of Trunk's powerful sandboxing and environment management to write and execute hooks using the programming language and runtime of your choice, as opposed to dealing with complicated bash scripts.
-
-### Manual installation
-
-```bash
-trunk git-hooks sync
-```
-
-### Automatic Installation
-
-Trunk will automatically install and begin managing your `githooks` if you have any actions enabled in `trunk.yaml` which trigger from git events.
-
-### Triggering an action from a githook
-
-As an example let's examine how we implement the `git-lfs` action in the [plugins repo](https://github.com/trunk-io/plugins).
-
-#### Definition
-
-```yaml
-- id: git-lfs
- display_name: Git LFS
- description: Git LFS hooks
- run: git lfs "${hook}" "${@}"
- triggers:
- - git_hooks: [post-checkout, post-commit, post-merge, pre-push]
-```
-
-#### Template resolution
-
-As documented by [git](https://git-scm.com/docs/githooks), each githook generates a variable number of parameters that can be referenced in the `run` entry for the action.
-
-The following special variables are made available for template resolution when reacting to a git event:
-
-| Variable | Description |
-| ----------------------------- | --------------------------------------------------------------- |
-| `${hook}` | Hook that triggered this action (e.g. `pre-commit`, `pre-push`) |
-| `${1}`,`${2}`, `${3}`, etc... | Positional parameters passed by `git` to the hook |
-| `${@}` | All parameters passed to the hook |
-
-#### Interactivity
-
-```yaml
-interactive: true
-```
-
-Setting `interactive` to true will allow your githook action to be run from an interactive terminal. This enables you to write more complicated hooks to react to user input.
-
-#### Testing a `githook` action
-
-The following command will simulate a githook event and execute all of the enabled actions for the provided hook in the order you defined them.
-
-```bash
-trunk git-hooks callback --
-```
-
-Alternatively, once an action is enabled you can call `git` and debug with the actual `git` provided data. This is sometimes easier since some git parameters point to txt files and fabricating those formats through manual testing can be tricky.
-
-#### Debugging a `githook` action
-
-You can observe the actions that are triggered by a `git` event by calling:
-
-```bash
-trunk actions history
-```
-
-Which will print out the last 10 executions including timestamps of the specified action \\
-
-
-.png)
-
-
-### Uninstalling
-
-Remove all actions that are triggered by githooks from `trunk.yaml` and run
-
-```bash
-git config --unset core.hooksPath
-```
diff --git a/code-quality/overview/cli/getting-started/actions/index.mdx b/code-quality/overview/cli/getting-started/actions/index.mdx
deleted file mode 100644
index ca921c7..0000000
--- a/code-quality/overview/cli/getting-started/actions/index.mdx
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: "Actions"
----
-The most common Trunk Actions are provided out of the box with trunk, and are triggered to invisibly autoformat (`trunk fmt`) your commits every time you `git commit`, and run `trunk check` when you `git push`.
-
-### Triggers
-
-There are several different types of Trunk Actions, based on when they are triggered:
-
-| Trigger | Description |
-|---|---|
-| time-based | run on a schedule (once per hour, once per day, once per week) |
-| file modification | run whenever a file or directory in your repo changes. |
-| [githooks](./git-hooks) | run whenever a listed githook event fires (e.g. pre-commit, on-push) |
-| manual | `trunk run ` |
-
-### **Command line**
-
-| trunk actions \ | Description |
-|---|---|
-| `list` | list all available actions in the repository |
-| `history ` | print the history for execution of the provided action |
-| `enable ` | enable the provided action |
-| `disable ` | disable the provided action |
-| `run ` | manually trigger the provided action alias: `trunk run ` |
-
-### Discovering actions
-
-The trunk [plugins](https://github.com/trunk-io/plugins) repo ships with a collection of actions that can help supercharge your repository and provide examples of how to write your own actions. To see a list of actions that you can enable in your repo run:
-
-```bash
-trunk actions list
-```
-
-
-.png)
-
-
-### Enable/Disable actions
-
-Trunk only runs actions listed in the `enabled` section of your `trunk.yaml`. Some built-in actions are enabled by default and can be disabled explicitly by adding them to the disabled list. You can always run `trunk actions list` to check the enabled status of an action.
-
-```yaml
-actions:
- enabled:
- - trunk-announce
- - git-lfs
- - trunk-check-pre-push
- - trunk-fmt-pre-commit
- - trunk-cache-prune
- - trunk-upgrade-available
-```
diff --git a/code-quality/overview/cli/getting-started/announce.mdx b/code-quality/overview/cli/getting-started/announce.mdx
deleted file mode 100644
index 351b648..0000000
--- a/code-quality/overview/cli/getting-started/announce.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Announce"
----
-### Trunk Announce
-
-Does your Git commit carry some important information to share with the rest of your organization? Now you can easily share it with the rest of the org by including `/trunk announce` at the beginning of one of the lines of your commit message.
-
-
-If your org squashes commit messages, you should put it in your PR description
-
-
-Any additional text on that line will form an optional title, and the remaining text of the commit message will form the commit body (both are optional, but either a title or body is required). These will then be displayed to other users when they pull or rebase.
-
-### Enable Trunk Announce
-
-Trunk Announce is a githook-triggered Trunk Action. You can enable this Trunk Action by running this command:
-
-```
-trunk actions enable trunk-announce
-```
-
-### Viewing Announcements
-
-When you pull new changes, new announcements are automatically shown.
-
-If you would like to see changes since some commit, use `trunk show-announcements since `.
-
-For example:
-
-```
- trunk show-announcements since HEAD~1
-```
diff --git a/code-quality/overview/cli/getting-started/caching.mdx b/code-quality/overview/cli/getting-started/caching.mdx
deleted file mode 100644
index 42fa831..0000000
--- a/code-quality/overview/cli/getting-started/caching.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "Caching"
----
-Trunk hermetically manages all the tools that it runs. To do this, it will download and install them into its cache folder only when needed. On Linux and macOS you may find the cache folder at `$HOME/.cache/trunk`.
-
-### Viewing your repo's cache
-
-If you need to debug your repo's cache, you can find its location by running the cache command.
-
-```
-trunk cache
-```
-
-### Cleaning cache
-
-Trunk will automatically clean up downloads that have not been used in a while, such as old versions of tools and linters.
-
-If you want to manually prune files in your cache directory that are no longer needed, you can run this command:
-
-```
-trunk cache prune
-```
-
-If you need to clean your entire cache manually, you can use the command:
-
-```sh
-trunk cache clean --all
-```
-
-Remember to rerun the install command to reinstall the necessary tools and linters.
-
-```
-trunk install
-```
diff --git a/code-quality/overview/cli/getting-started/code-quality.mdx b/code-quality/overview/cli/getting-started/code-quality.mdx
deleted file mode 100644
index 5a50b5d..0000000
--- a/code-quality/overview/cli/getting-started/code-quality.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: "Code Quality"
-description: "CLI Metalinter and VSCode extension for over 100 code checking tools."
----
-
-Available as a CLI tool and VSCode extension, Code Quality is a separate from the Trunk Platform for CI Stability, which includes [Merge Queue](../../../broken-reference/) and [Flaky Tests](../../../broken-reference/). Code Quality runs entirely locally and does not require access to the Trunk web app or platform services.
-
-
-Trunk Code Quality is a **metalinter** that lets you lint every language and every file in your project with a single tool using 100+ supported idiomatic code-checking tools, such as ESLint, Prettier, Ruff, and more for every language and project.
-
-Trunk Code Quality is trusted by popular open-source projects like [**ESLint**](https://eslint.org/) to improve their developer experience. [Learn more about how ESLint leverages Code Quality in their repos](https://trunk.io/blog/improving-linting-experience-in-eslint-s-open-source-repo-with-trunk-code-quality).
-
-### What is Code Quality?
-
-
-
- A tour of Code Quality, what it does, its key features, and its components.
-
-
- How Code Quality works under the hood to level up your linting experience.
-
-
- What makes Trunk Code Quality different from other metalinters.
-
-
- Browse the 100+ supported static analysis tools to lint, format, and secure your projects.
-
-
-
-### How do I get started?
-
-
-
-
-
diff --git a/code-quality/overview/cli/getting-started/commands-reference/actions.mdx b/code-quality/overview/cli/getting-started/commands-reference/actions.mdx
deleted file mode 100644
index be1cb78..0000000
--- a/code-quality/overview/cli/getting-started/commands-reference/actions.mdx
+++ /dev/null
@@ -1,202 +0,0 @@
----
-title: "Actions"
----
-### Trunk Actions
-
-`trunk actions`: Workflow automation for your repo.
-
-#### **Usage** **example**
-
-```
-trunk actions [options] [subcommand]
-```
-
-#### Options
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions run
-
-`trunk actions run`: Run a specified trunk action. **Usage** **bash**
-
-```
-trunk actions run [options]
-```
-
-#### **Options**
-
-* `--nolog`: Don't create a log file for the action run
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-* `--name `: Specify the name of the Trunk action to be executed
-* `--branch `: Run the action on a specific branch
-* `--retry `: Number of times to retry the action on failure
-
-### Trunk Actions history
-
-`trunk actions history`: View the history of Trunk actions.
-
-#### **Usage** example
-
-```
-trunk actions history [options]
-```
-
-#### **Options**
-
-* `--count`: Number of logs to show
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions list
-
-`trunk actions list`: List all Trunk actions.
-
-#### **Usage** example
-
-```
-trunk actions list [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions enable
-
-`trunk actions enable`: Enable a specified Trunk action.
-
-#### **Usage** example
-
-```
-trunk actions enable [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions disable
-
-`trunk actions disable`: Disable a specified Trunk action.
-
-#### **Usage** example
-
-```
-trunk actions disable [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Shellhooks
-
-`trunk shellhooks`: Let Trunk manage your shell hooks similar to `direnvs` trunk shellhooks install \
-
-#### **Usage** example
-
-```
-trunk shellhooks install [options]
-```
-
-### Trunk Git Hooks
-
-`trunk git-hooks sync`: Sync githooks with what's defined in `trunk.yaml`
-
-#### **Usage** example
-
-```
-trunk git-hook sync [options]
-```
-
-### Trunk show announcements since a commit
-
-**`trunk show-announcements since`**: Show announcements since a specified commit
-
-#### **Usage** example:
-
-```sh
-trunk show-announcements since --commit abc123
-```
-
-#### **Options**:
-
-* `--color`: Enable/disable color output
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--no-progress`: Don't show progress updates
-* `--ci`: Run in continuous integration mode
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--version`: The version
-
-### **Trunk show announcements post-merge**
-
-**`trunk show-announcements post-merge`**: Run on git pull/merge, usually run by a git-hook and not directly.
-
-**Usage Example**:
-
-```sh
-trunk show-announcements post-merge --verbose
-```
-
-### **Trunk show announcements pre-rebase**
-
-**`trunk show-announcements pre-rebase`**: Run on git pre-rebase, usually run by a git-hook and not directly.
-
-#### **Usage** example:
-
-```sh
-trunk show-announcements pre-rebase [options] [branch-refs...]
-```
-
-### **Trunk show announcements post-checkout**
-
-**`trunk show-announcements post-checkout`**: Run on git checkout/switch, usually run by a git-hook and not directly.
-
-#### **Usage** example::
-
-```sh
-trunk show-announcements post-checkout [options] [branch-refs...]
-```
diff --git a/code-quality/overview/cli/getting-started/commands-reference/code-quality.mdx b/code-quality/overview/cli/getting-started/commands-reference/code-quality.mdx
deleted file mode 100644
index ac50dd6..0000000
--- a/code-quality/overview/cli/getting-started/commands-reference/code-quality.mdx
+++ /dev/null
@@ -1,172 +0,0 @@
----
-title: "Code Quality"
----
-### trunk check
-
-`trunk check`: Universal code checker.
-
-#### **Usage** **example**
-
-```
-trunk check [options]
-```
-
-#### Filtering options
-
-* `-a, --all`: Check all files instead of only changed files
-* `--sample`: Run each linter on N files
-* `--filter`: Comma-separated list of linters and/or issue codes to include or exclude
-* `--exclude`: Shorthand for an inverse --filter
-* `--scope`: Scope of checks to run \{all | security}
-* `--ignore`: Glob pattern to exclude files from linting
-* `--force`: Run on all files, even if ignored
-* `--include-existing-autofixes`: Include existing issues that can be autofixed
-
-#### **CI** options
-
-* `--ci`: Run in non-interactive mode designed for CI environments
-* `-j`, `--jobs`: Number of concurrent jobs
-
-#### Git Hooks options
-
-* `--index`: Run linter on git-indexed files
-* `--index-file`: Run linter on git-indexed files based on specified index
-* `--commit-ref`: Commit ref to lint (instead of current working tree)
-* `--commit-ref-from-pre-push`: Commit ref to lint from the stdin of a pre-push git hook (instead of the current working tree)
-
-#### Output options
-
-* `--show-existing`: Show existing issues otherwise hidden by
-* `--print-failures`: Print any failures that occur
-* `--diff`: Diff printing mode \{none | compact | full}
-* `-v, --verbose`: Show verbose output for debugging purposes
-* `--debug`: Show debug output
-
-#### Behavior options
-
-* `-y, --fix`: Automatically apply all fixes without prompting
-* `-n, --no-fix`: Don't automatically apply fixes
-* `--cache`: Disable to skip cache for all check actions
-* `--ignore-git-state`: Run linters even if a merge, rebase, or revert is in progress
-* `--upstream`: Upstream branch used to compute changed files
-
-### Trunk Check Enable Linter
-
-`trunk check enable`: Enable linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk check enable [options]
-```
-
-### Trunk Check Disable Linter
-
-`trunk check disable`: Disable linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk check disable [options]
-```
-
-### Trunk Check List Linters
-
-`trunk check list`: List linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk check list [options]
-```
-
-### Trunk Check Run Format
-
-`trunk fmt`: List linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk fmt [options]
-```
-
-#### **Options**
-
-#### Filtering options
-
-* `-a, --all`: Check all files instead of only changed files
-* `--filter`: Comma-separated list of linters and/or issue codes to include or exclude
-* `--exclude`: Shorthand for an inverse --filter
-* `--scope`: Scope of checks to run \{all | security}
-* `--ignore`: Glob pattern to exclude files from linting
-* `--force`: Run on all files, even if ignored
-* `--show-existing`: Show existing issues otherwise hidden by [hold-the-line](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line)
-* `--ignore-git-state`: Run linters even if a merge, rebase, or revert is in progress
-
-#### Git Hooks options
-
-* `--index`: Run linter on git-indexed files
-* `--index-file`: Run linter on git-indexed files based on specified index
-* `--commit-ref`: Commit ref to lint (instead of current working tree)
-* `--commit-ref-from-pre-push`: Commit ref to lint from the stdin of a pre-push git hook (instead of the current working tree)
-
-#### Output options
-
-* `--show-existing`: Show existing issues otherwise hidden by
-* `--print-failures`: Print any failures that occur
-* `--diff`: Diff printing mode \{none | compact | full}
-* `-v, --verbose`: Show verbose output for debugging purposes
-* `--debug`: Show debug output
-
-#### Behavior options
-
-* `-y, --fix`: Automatically apply all fixes without prompting
-* `-n, --no-fix`: Don't automatically apply fixes
-* `--cache`: Disable to skip cache for all check actions
-* `--ignore-git-state`: Run linters even if a merge, rebase, or revert is in progress
-* `--upstream`: Upstream branch used to compute changed files
-* `-j`, `--jobs`: Number of concurrent jobs
-
-## Advanced Trunk Check features
-
-| Options & Flags | Explanation |
-| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `--root` | Explicitly set the root of the repository to run against |
-| `--upstream` | Specify the upstream branch used to calculate new vs existing issued. |
-| `--trigger` | Supports running trunk check from inside a git hook. Options are manual (default), git-push, git-commit. Controls whether the check returns early and its interactivity. |
-| `--output=format` | Output results in specified format: `text` (default) or `json` |
-| `--output-file=FILE` | Write json results to specified file |
-
-#### --filter
-
-`--filter` argument allows you to restrict `trunk check` to a subset of the linters enabled in your repository.
-
-For example, to run `eslint` and `isort` on the entire repo:
-
-```bash
-trunk check --all --filter=eslint,isort
-```
-
-Alternatively, to run every linter _except_ `clang-tidy` and `shellcheck`:
-
-```bash
-trunk check --all --filter=-clang-tidy,-shellcheck
-```
-
-#### --sample
-
-`--sample=N` will attempt to run every enabled linter against the requested number of files. The goal of the `sample` flag is to test the setup of the linters in your repository as well as any specific configuration they might honor.
-
-The sample command will attempt to run each linter N times, but may run fewer if not enough applicable files exist in your set of files to lint. `--sample=N` can be combined with any other set of options for `trunk check`.
-
-For example, to run `prettier` against 10 different prettier supported files:
-
-```bash
-trunk check --sample=10 --filter=prettier
-```
-
-Alternatively, to run every linter at most 5 times against its supported files:
-
-```bash
-trunk check --sample=5
-```
diff --git a/code-quality/overview/cli/getting-started/commands-reference/index.mdx b/code-quality/overview/cli/getting-started/commands-reference/index.mdx
deleted file mode 100644
index c9a65d9..0000000
--- a/code-quality/overview/cli/getting-started/commands-reference/index.mdx
+++ /dev/null
@@ -1,217 +0,0 @@
----
-title: "Commands reference"
----
-### trunk init
-
-`trunk init`: Set up trunk in this repo.
-
-#### **Usage** Example
-
-```
-trunk init
-```
-
-### trunk version
-
-`trunk version`: Output the version.
-
-#### **Usage** example
-
-```
-trunk version
-```
-
-### trunk upgrade
-
-`trunk upgrade`: Upgrade Trunk and its linters to the latest releases.
-
-#### **Usage** **example**
-
-```
-trunk upgrade [options]
-```
-
-#### **Options**
-
-* `-y, --yes-to-all`: Answer yes to all upgrade prompts
-* `-n, --no-to-all`: Answer no to all upgrade prompts
-* `--apply-to`: Apply upgrades to a specified file
-* `--filter`: Filter the upgraded linters
-* `--dry-run`: Detect available upgrades, but do not apply changes
-
-### trunk login
-
-`trunk login`: Login to trunk.io.
-
-#### **Usage** example
-
-```
-trunk login
-```
-
-### trunk logout
-
-`trunk logout`: Logout from trunk.io.
-
-#### **Usage** example
-
-```
-trunk logout
-```
-
-### trunk plugins add
-
-`trunk plugins add`: Add a plugin by URI.
-
-#### **Usage** example
-
-```
-trunk plugins [uri] [ref] [options]
-```
-
-### trunk tools
-
-`trunk tools`: Universal tool manager.
-
-#### **Usage** example
-
-```
-trunk tools [options]
-```
-
-### trunk daemon status
-
-Report the status of the daemon.
-
-#### **Usage** example
-
-```
-trunk daemon status
-```
-
-### trunk daemon start
-
-Start the trunk daemon in the background if it’s not already running.
-
-#### **Usage** example
-
-```
-trunk daemon start
-```
-
-### **trunk daemon shutdown**
-
-`trunk daemon shutdown`: Shutdown the trunk daemon if it is running.
-
-#### **Usage** example
-
-```
-trunk daemon shutdown
-```
-
-### **trunk daemon launch**
-
-`trunk daemon launch`: Start the trunk daemon in the foreground if it’s not already running.
-
-#### **Usage** example
-
-```
-trunk daemon launch
-```
-
-### trunk whoami
-
-`trunk whoami`: print who you're logged in as
-
-#### **Usage** example
-
-```
-trunk whoami
-```
-
-### trunk deinit
-
-`trunk deinit`: Deinitialize Trunk in your repo
-
-#### **Usage** example
-
-```
-trunk deinit [options]
-```
-
-#### **Options**
-
-* `-y`, `--yes`: Proceed unconditionally
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### trunk config share
-
-`trunk config share`: Remove Trunk config files from your local git ignores.
-
-#### **Usage** example
-
-```
-trunk config share
-```
-
-### trunk config hide
-
-`trunk config hide`: Add Trunk config files to your local git ignores.
-
-#### **Usage** example
-
-```
-trunk config hide
-```
-
-### trunk config print
-
-`trunk config print`: Print the resolved trunk config.
-
-#### **Usage** example
-
-```
-trunk config print
-```
-
-### trunk cache clean
-
-`trunk cache clean`: Clean cached files used by Trunk.
-
-#### **Usage** Example
-
-```
-trunk cache clean
-```
-
-### trunk cache prune
-
-`trunk cache prune`: Prune unused cached files.
-
-#### **Usage** example
-
-```
-trunk cache clean
-```
-
-### trunk install
-
-`trunk install`: Download & install enabled runtimes/linters.
-
-#### **Usage** example
-
-```
-trunk install [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
diff --git a/code-quality/overview/cli/getting-started/compatibility.mdx b/code-quality/overview/cli/getting-started/compatibility.mdx
deleted file mode 100644
index 35de783..0000000
--- a/code-quality/overview/cli/getting-started/compatibility.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: "Compatibility"
----
-### Linux
-
-Trunk will run on most Linux flavors, including Ubuntu, Arch, and others. We do require glibc version 2.19 or later. Alpine Linux is not supported.
-
-### macOS
-
-Trunk will run on macOS version 10.15 or later.
-
-### Windows
-
-Trunk only supports Windows with the following versions and above:
-
-| Tool | Where to Modify | Minimum Required Version |
-|---|---|---|
-| CLI | `cli` `version` in `.trunk/trunk.yaml` | `1.13.0` |
-| Plugins | `ref` for the `trunk` plugin in `.trunk/trunk.yaml` | `v1.0.0` |
-| VSCode | Reload VSCode to update | `3.4.4` |
-
-You will also need to install [C and C++ runtime libraries](https://aka.ms/vs/17/release/vc_redist.x64.exe) to run some linters.
-
-#### Getting in touch
-
-Thank you for being a beta tester of Trunk Check on Windows! We are actively working to improve the experience. If you have any feedback or questions, please contact us directly on [Slack](https://slack.trunk.io/).
-
-If you want to override a repo-wide setting just for your Windows machine, you can modify your [`.trunk/user.yaml`](./configuration/per-user-overrides).
-
-#### Supported features
-
-We intend to bring full feature support to Windows for Trunk. Currently, the following features are supported:
-
-* [Trunk Code Quality](./code-quality)
-* Non-interactive [Trunk Actions](./actions/) and [git-hooks](./actions/git-hooks)
-* [VSCode](../../ide-integration/vscode)
-
-### Plugin compatibility
-
-
-This section was last updated for Plugins v1.2.0
-
-
-Trunk runs most linters on all platforms. However, some linters are not yet supported on Windows. For a full list of all linters, see our [Plugins repo](https://github.com/trunk-io/plugins).
-
-| Linter | Plans for Support |
-|---|---|
-| ansible-lint | Only supported on WSL |
-| clang-format | Long-term plans for LLVM linter support |
-| clang-tidy | Long-term plans for LLVM linter support |
-| detekt-gradle | Long-term plans for support |
-| include-what-you-use | Long-term plans for LLVM linter support |
-| nixpkgs-fmt | Long-term plans for support |
-| perlcritic | No immediate plans for support |
-| perltidy | No immediate plans for support |
-| scalafmt | No download available for Windows |
-| semgrep | No download available for Windows |
-| shellcheck | No download available for Windows |
-| stringslint | Only supported on MacOS |
-| swiftformat | Only supported on MacOS |
-| swiftlint | Only supported on MacOS |
-| taplo | No download available for Windows |
-
-### Backward compatibility
-
-We generally strive to maintain backward compatibility between the [Trunk Launcher](./install#the-trunk-launcher) and the Trunk binary, but you may need to occasionally upgrade the launcher to support the newest version of Trunk.
diff --git a/code-quality/overview/cli/getting-started/configuration/actions/index.mdx b/code-quality/overview/cli/getting-started/configuration/actions/index.mdx
deleted file mode 100644
index f28ca1d..0000000
--- a/code-quality/overview/cli/getting-started/configuration/actions/index.mdx
+++ /dev/null
@@ -1,156 +0,0 @@
----
-title: "Actions"
----
-Actions are defined and enabled in the `actions` section of `trunk.yaml`.
-
-Here is an example of the actions section of `trunk.yaml`. If you are curious what your resolved configuration for actions looks like, run `trunk config print`.
-
-```yaml
-actions:
- enabled:
- - trunk-announce
- - trunk-upgrade-available
- - npm-install
- - seed-database
- - custom-git-hook
- - login
- definitions:
- - id: npm-install
- triggers:
- - files: [package.json]
- run: npm install
- - id: seed-database
- triggers:
- - schedule: 24h
- run: python3 seed_database.py
- runtime: python
- run_from: utils
- packages_file: requirements.txt
- - id: custom-git-hook
- triggers:
- - git_hooks: [pre-push, pre-commit]
- run: my_script.sh
- - id: login
- run: my_complicated_login_script.sh
- interactive: true
-```
-
-### Action Definitions
-
-Now we'll walk through the process of creating your own action.
-
-Actions are required to have a `id` and `run` command.
-
-The command will implicitly run relative to your workspace, but you can also specify a `run_from` if you'd prefer to execute from a sub-directory.
-
-#### Runtime management
-
-We sandbox action executions and allow you to control the runtime. You can do this by specifying a `runtime` and `packages_file`.
-
-You can specify one of our built-in runtimes (`node`, `python`, ...) or a system runtime that you define. See the [runtimes documentation](../runtimes) for more information.
-
-For the `python` and `node` runtimes, we additionally provide the ability to install a requirements file like `requirements.txt` or `package.json`.
-
-### Triggers
-
-You can run actions manually, or you can also provide a set of triggers so that actions run in response to some event. They are documented below.
-
-#### Manual runs
-
-You may run an action manually by running `trunk run ` or `trunk actions run `.
-
-For manually triggered runs, we support the `${@}` and `${pwd}` variables for template resolution in the `run` declaration. `${@}` will be replaced with the arguments passed to the action, and `${pwd}` will be replaced with the directory the action is triggered from.
-
-```yaml
-id: my-action
-run: echo "The action was run from ${pwd} with arguments ${@}"
-```
-
-#### Time-based triggers
-
-We provide the ability to run actions in the background on a schedule.
-
-Under `triggers`, you can add one or more `schedule` entries. For example:
-
-```yaml
-id: my-action
-triggers:
- - schedule: 1d
-```
-
-The `schedule` entry should be in the Duration format specified [here](https://pkg.go.dev/time#ParseDuration). The action will be run once per `duration`.
-
-This is a short-hand for specifying schedule as an object. You can also write:
-
-```yaml
-id: my-action
-triggers:
- - schedule:
- interval: 1d
-```
-
-The action may occasionally run more often than the specified duration depending on the Trunk daemon's lifetime.
-
-If you wish to stagger the execution of an action from others on a similar schedule, you may use the `delay` field:
-
-```yaml
-id: my-action
-triggers:
- - schedule:
- interval: 1d
- delay: 1h
-```
-
-You may also use cron syntax:
-
-```yaml
-nid: my-action
- triggers:
- # run every 2 hours
- - schedule: "0 0 */2 * * ?"
-```
-
-or equivalently:
-
-```yaml
- id: my-action
- triggers:
- # run every 2 hours
- - schedule:
- cron: "0 0 */2 * * ?"
-```
-
-#### File-based triggers
-
-We provide the ability to run actions automatically based on a file edit.
-
-You may provide exact filenames, or globs.
-
-```yaml
-id: my-action
-triggers:
- - files: [foo.txt, bar/**]
-```
-
-In this case `my-action` will execute if either `foo.txt` is edited (or created), or if a file inside `bar` is edited or created.
-
-In case you need to know which file triggered the action, you can use the `${target}` variable in the `run` command.
-
-```yaml
-id: my-action
-triggers:
- - files: [foo.txt, bar/**]
-run: echo "The file ${target} was edited"
-```
-
-If you do a bulk file modification, the `${target}` template may resolve to a space-separated list of files that were simultaneously edited.
-
-> Note: We only provide file triggers for files inside of your workspace.
-
-#### Git hooks
-
-You can also configure Trunk to manage your git hooks. More detail is provided on this in our [git hooks reference](../../actions/git-hooks).
-
-### Interactivity
-
-Actions can read from `stdin` if they are marked as interactive (define `interactive: true` on the action). Note: this feature is only available for git hooks and manually run actions - since file-triggered and scheduled actions run in the background, you cannot interact with their execution.
diff --git a/code-quality/overview/cli/getting-started/configuration/actions/logging-and-troubleshooting.mdx b/code-quality/overview/cli/getting-started/configuration/actions/logging-and-troubleshooting.mdx
deleted file mode 100644
index b490a1a..0000000
--- a/code-quality/overview/cli/getting-started/configuration/actions/logging-and-troubleshooting.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Logging and Troubleshooting"
-description: "Diagnosing problems with actions"
----
-We provide a number of tools for inspecting the results of actions that run in the background and wouldn't otherwise surface their errors.
-
-Every action execution is logged. We consider an action execution to have failed if it has a non-zero exit code.
-
-`trunk actions history ` gives a history of the recent runs of an action and whether it succeeded. You can control how many recent runs to show with the `--count` flag (for example, `trunk actions history trunk-upgrade-available --count=10`). When available, a full stacktrace is written to a file and made available.
-
-Failed action executions will also produce a notification so that background failures are periodically surfaced to the user.
-
-You can also inspect action logs at `.trunk/out/actions//`.
-
-We recommend running actions manually when you develop them to verify that they work correctly.
-
-### Output Level
-
-To see a more verbose output when running trunk actions, particularly from git-hooks, you can add the following to your `trunk.yaml`:
-
-```yaml
-actions:
- output_level:
-```
diff --git a/code-quality/overview/cli/getting-started/configuration/actions/notifications.mdx b/code-quality/overview/cli/getting-started/configuration/actions/notifications.mdx
deleted file mode 100644
index 5d78091..0000000
--- a/code-quality/overview/cli/getting-started/configuration/actions/notifications.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: "Notifications"
-description: "Trunk Actions can also produce notifications to display in your terminal or in the VSCode extension!"
----
-### Defining actions that produce notifications
-
-Typically, whatever actions write to stdout are stored in the log file and perhaps shown to the user. However, actions can also produce structured output if `output_type` is set on the Action Definition to be `notification_v1`.
-
-In this case, the action should print yaml to output with the following structure:
-
-```yaml
-notifications:
- - id: action-id
- # Display-related fields
- title: My action
- message: some text about the notification
- rendered: A rendered message string for color terminals
- icon: https://uri/to/icon
- commands:
- - title: A button title
- run: a run command
- run_from: directory to run from
- priority: high # Can be one of low, high (default low)
-```
-
-Some notes:
-
-1. The ID can be whatever you want it to be, but generally should be made to match the action ID.
-2. You may emit multiple notifications per action.
-3. `icon` and `commands` are used to control notifications display in VSCode.
-4. High-priority notifications are immediately shown to the user in terminal. Low-priority notifications are only shown every 24 hours (These are configurable).
-
-### Deleting notifications
-
-Actions can also clear their own notifications. in this case, make the output looks like this:
-
-```yaml
-notifications_to_delete: [action-id]
-```
-
-If actions produce a notification that is reflective of a current state or something actionable for the user to do, they may clear the notification once that state changes/when the user takes the requested action.
-
-### An example
-
-We illustrate the cycle of actions managing their own notifications with the following example.
-
-Consider the built-in action for `trunk upgrade` - a command that upgrades trunk and a repo's enabled linters to their most recent versions. We'd like to notify the user of new upgrades once a day. Thus our `trunk-upgrade-available` action definition looks like this:
-
-```yaml
-id: trunk-upgrade-available
-output_type: notification_v1
-run: trunk upgrade --notify
-triggers:
- - schedule: 1h
- - files: [.trunk/trunk.yaml]
-```
-
-`trunk upgrade --notify` produces a notification that looks like this:
-
-```yaml
-notifications:
- - commands:
- - run: trunk upgrade
- title: Upgrade Trunk
- id: trunk-upgrade
- message: "Upgrades available\n\n Trunk version 0.17.0-beta\n 10 linter updates\n\nRun trunk upgrade to upgrade all\n or trunk upgrade trunk to just upgrade trunk"
- priority: low
- rendered: "\x1b[1m\x1b[90m\nUpgrades available\x1b[0m\n\x1b[90m\n\x1b[0m• \x1b[90mTrunk version\x1b[0m \x1b[92m0.17.0-beta\x1b[0m\x1b[90m\n\x1b[0m• \x1b[92m11 linter\x1b[0m \x1b[90mupdates\n\x1b[0m\n\x1b[90mRun\x1b[0m\x1b[96m trunk upgrade\x1b[0m\x1b[90m to upgrade all\x1b[0m\x1b[90m\n or\x1b[0m\x1b[96m trunk upgrade trunk\x1b[0m\x1b[90m to just upgrade trunk\x1b[0m\x1b[90m\n\x1b[0m"
-```
-
-If there are no upgrades available, `trunk upgrade --notify` will produce:
-
-```yaml
-notifications_to_delete: [trunk-upgrade-available]
-```
-
-So in this scenario, the `trunk-upgrade-available` action runs in the background periodically and produces a notification. The user takes action by running `trunk upgrade`. Since `trunk upgrade` modifies `.trunk/trunk.yaml`, this will again trigger the `trunk-upgrade-available` action (due to the file trigger). Since there is nothing else to upgrade, `trunk upgrade --notify` will produce output telling Trunk to delete its notification. Now, the user is no longer shown a notification about available upgrades!
diff --git a/code-quality/overview/cli/getting-started/configuration/index.mdx b/code-quality/overview/cli/getting-started/configuration/index.mdx
deleted file mode 100644
index c370b4e..0000000
--- a/code-quality/overview/cli/getting-started/configuration/index.mdx
+++ /dev/null
@@ -1,292 +0,0 @@
----
-title: "Configuration"
----
-The Trunk CLI has its top-level config defined in `.trunk/trunk.yaml`.
-
-```
-/your_repo
-├── .trunk
-│ └── trunk.yaml
-└── src
- ├── bar
- └── foo
-```
-
-This is initially generated by `trunk init` and is the central source of truth for how Trunk operates inside your repository. As we build new services and features, we'll extend `trunk.yaml` to include configuration sections for them. We believe strongly in "configuration as code" and being able to guarantee that `trunk` can be run reproducibly.
-
-### Config format
-
-The Trunk configuration file is written in YAML and is meant to be self-descriptive. Below is a sample config file to help you understand how the pieces come together. Alternatively, you can also refer to [the `trunk.yaml` in our GitHub Action](https://github.com/trunk-io/trunk-action/blob/main/.trunk/trunk.yaml) as an example or [`trunk-yaml-schema.json`](https://static.trunk.io/pub/trunk-yaml-schema.json).
-
-```yaml
-version: 0.1 # the version of this config file.
-cli:
- version: 0.15.1 # the version of trunk you will run in your repository
-runtimes:
- enabled:
- - ruby@>=2.7.1
- - python@3.9.1
-repo:
- # main is the branch that everyone's work is merged into
- # (this is usually inferred and not required to be set)
- trunk_branch: main
-lint:
- definitions:
- - name: my_custom_linter
- files: [ALL]
- commands:
- output: sarif
- run: ${workspace}/bin/foo --file ${target}
- read_output_from: stdout
- run_linter_from: workspace
- success_codes: [0, 1]
- enabled:
- - ansible-lint@5.3.2
- - bandit@1.7.0
- - black@21.6b0
- - buf-lint@1.0.0-rc3
- - buildifier@5.1.0
- - cfnlint@0.51.0
- - eslint@7.30.0
- - gitleaks@7.6.1
- - gofmt@1.16.7
- - golangci-lint@1.41.1
- - hadolint@2.6.0
- - isort@5.8.0
- - markdownlint@0.28.1
- - mypy@0.910
- - prettier@2.3.2
- - pylint@2.8.1
- - rustfmt@1.55.0
- - semgrep@0.104.0
- - shellcheck@0.7.2
- - shfmt@3.3.1
- disabled:
- - rufo
- - tflint
- ignore:
- - linters: [ALL]
- paths:
- # Generated files
- - a/proto/code_pb*
- # Test data
- - b/test_data/**
- - linters: [eslint]
- paths:
- - c/run.ts
- triggers:
- - linters:
- - ansible-lint
- paths:
- - ansible # A directory
- targets:
- - ansible # A directory
-```
-
-### `version`
-
-The `version field` is the schema version of `trunk.yaml.`
-
-### `cli`
-
-```yaml
-cli:
- version: 0.15.1 # the version of trunk you will run in your repository
- options:
- - commands: [ALL] # apply to all `trunk` commands
- args: --monitor=true
- - commands: [check, fmt] # apply only to `trunk check` and `trunk fmt` commands
- args: -y
-```
-
-In addition to specifying `version`, `cli` allows you to specify default command line arguments using the `options` field. Specified `args` will be appended to strictly matched `commands` during `trunk` invocations. Specifying `ALL` as a `commands` element applies its options to all `trunk` subcommands. Any command line options will take precedence over these `args`.
-
-Some examples using the configuration above:
-
-* `trunk check` resolves to `trunk check -y --monitor=true`
-* `trunk check -n` resolves to `trunk check -n --monitor=true`
-* `trunk fmt` resolves to `trunk fmt -y --monitor=true`
-
-### `repo`
-
-```yaml
-repo:
- # main is the branch that everyone's work is merged into
- # (this is usually inferred and not required to be set)
- trunk_branch: main
-```
-
-Some Trunk features require Trunk to be aware of the canonical repository your organization uses, such as the repository that everyone pulls from and makes pull requests into. The Trunk CLI can infer this from your `origin` remote, but if you don't want your `origin` to be used for this purpose, you can explicitly specify your canonical repository.
-
-Other features - namely `trunk check` - need to be aware of the primary upstream branch that everyone branches from. If you use `main` or `master`, `trunk` can infer this; however, if you use some other primary branch, then you may want to consider setting this.
-
-The above configuration is how you would specify that [https://github.com/github/gitignore](https://github.com/github/gitignore) is your canonical repository and that `main` is the branch which `trunk` should always think of as your upstream branch.
-
-### `api`
-
-```yaml
-api:
- # name of your trunk organization on app.trunk.io
- org: { your-org-name }
-```
-
-Some Trunk features, like the CI Debugger, require knowledge of the Trunk organization your repository is using. This information can be provided on the command line or hard-coded in the `trunk.yaml` file.
-
-### `trunk_remote_hint`
-
-```yaml
-repo:
- trunk_remote_hint: github.com/organization/my_repo
-```
-
-If this hint is set, Trunk will search all local remotes looking for the one that best matches `//` instead of defaulting to `origin`. It will then use this remote as the default upstream for computing changed files.
-
-### Stacked PR support
-
-```yaml
-repo:
- use_branch_upstream: true
-```
-
-By default, `trunk` will auto-detect all changed files relative to your main branch. If you would instead like it to compare against the upstream of your current git branch, you can enable this feature by setting `use_branch_upstream` to `true`.
-
-### Disable upgrade notifications
-
-Trunk will periodically tell you to upgrade to a newer version if one is available. If you prefer not to see these notifications, edit (or add) the section of your `.trunk/trunk.yaml` to include the following lines:
-
-```yaml
-actions:
- disabled:
- - trunk-upgrade-available
-```
-
-### Overriding defaults
-
-Trunk ships with a default configuration which `trunk.yaml` is merged into to produce the actual configuration that Trunk runs with. You can view this merged configuration using `trunk print-config`.
-
-You may find while using Trunk that you want to modify one of these defaults: perhaps you want `clang-tidy` to not run on the upstream, or maybe you want the `node` runtime to include another environment variable. In these cases, you can specify the field in your `trunk.yaml` to override the default value.
-
-Let's take `clang-tidy` as an example, which ships with the following default configuration:
-
-```yaml
-definitions:
- ...
- - name: clang-tidy
- files: [c/c++-source]
- type: llvm
- commands:
- - output: llvm
- run: clang-tidy --export-fixes=- ${target}
- success_codes: [0]
- download: clang-tidy
- direct_configs: [.clang-tidy]
- disable_upstream: true
- include_scanner_type: compile_command
- environment:
- - name: PATH
- list: ["${linter}/bin"]
- ...
-```
-
-If you wanted to flip the value of `disable_upstream` to `false`, you could, in your own `trunk.yaml`, specify:
-
-```yaml highlight={1}
-definitions:
- ...
- - name: clang-tidy
- disable_upstream: false
- ...
-```
-
-Some linters have multiple commands, such as [trivy](https://github.com/trunk-io/plugins/blob/main/linters/trivy/plugin.yaml), which can run in different ways. Similarly, some linters are configured to run differently on different platforms or at different versions. When overriding a command definition, overrides are applied on the tuple `[name, version, platforms]`. For example, if you wanted to disable batching when running [ktlint](https://github.com/trunk-io/plugins/blob/main/linters/ktlint/plugin.yaml) on Windows, you could consider its default configuration:
-
-```yaml
-definitions:
- ...
- - name: ktlint
- ...
- commands:
- - name: format
- platforms: [windows]
- run: java -jar ${linter}/ktlint.exe -F "${target}"
- output: rewrite
- cache_results: true
- formatter: true
- in_place: true
- batch: true
- success_codes: [0, 1]
- - name: format
- run: ktlint -F "${target}"
- output: rewrite
- cache_results: true
- formatter: true
- in_place: true
- batch: true
- success_codes: [0, 1]
- ...
-```
-
-and override it as such:
-
-```yaml
-definitions:
- ...
- - name: ktlint
- ...
- commands:
- - name: format
- platforms: [windows]
- batch: false
- ...
-```
-
-When executing linters, Trunk will execute the first matching command based on its compatible platforms and linter version. Note when overriding that new commands that don't match an existing tuple are prepended to the resulting commands list.
-
-Alternatively, consider the default `node` runtime:
-
-```yaml
-runtimes:
- definitions:
- - type: node
- download: node
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list: ["${runtime}/bin"]
- linter_environment:
- - name: PATH
- list: ["${linter}/node_modules/.bin"]
- version: 16.14.2
- version_commands:
- - run: "node --version"
- parse_regex: ${semver}
-```
-
-If you wanted to add `${home}/my/special/node/path` to `PATH`, you could specify the following:
-
-```yaml
-runtimes:
- - type: node
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list: ["${home}/my/special/node/path", "${runtime}/bin"]
-```
-
-### Validation
-
-Custom linter, download, and runtime configs must be defined in full and will be validated. Overrides of existing linter, download, and runtime configs can be partial overrides. They do not have to be full definitions.
-
-Merged configurations are subject to the same validation that custom linters are - they must all have a name, type, command, and either `success_codes` or `error_codes` set.
-
-### Known limitations
-
-1. Scalar values are overridden in a straightforward manner - the value specified in the override\
- takes the place of the default, and otherwise, default values are retained.
-2. To override a sequence value in the default (ex. `environment` in the `node` runtime), it is\
- necessary to fully specify the new sequence. This is why the `environment` override above also defines `HOME`. If you just wanted to add a new value, you would have to copy in the existing\
- sequence to your overriding config, and add your new value to the end of the list.
-3. It is not possible to set sequences of non-zero length to zero length. For example, if the\
- default config has `success_codes: [0]`, you may override this to `success_codes: [0, 1]`, but you cannot clear its value.
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/auto-enable.mdx b/code-quality/overview/cli/getting-started/configuration/lint/auto-enable.mdx
deleted file mode 100644
index fde505f..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/auto-enable.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Auto-Enable"
----
-Simply defining a linter does not enable it. Trunk needs to know when to auto-enable the linter for certain projects (ex: all python projects) or if certain files are already present (ex: `.eslintrc`).
-
-## Auto Enabling
-
-The `direct_configs` property contains a list of config files that the underlying linter uses. The `suggest_if` property determines when `trunk check` should suggest this linter. If `suggest_if` is set to `config_present`, then trunk will search for the listed config files. If found, the linter will be enabled automatically when the user does `trunk init` or `trunk update`.
-
-For example: in the following yaml, the **flake8** linter sets `suggest_if` to `config_preset` and sets `direct_configs` to `[.flake8]`. If any `*.flake8` files are found, then trunk check will automatically enable flake8.
-
-**Flake8** linter definition. [full source](https://github.com/trunk-io/plugins/blob/main/linters/flake8/plugin.yaml)
-
-```yaml
-version: 0.1
-tools:
- definitions:
- - name: flake8
- runtime: python
- package: flake8
- shims: [flake8]
- known_good_version: 4.0.1
-lint:
- definitions:
- - name: flake8
- files: [python]
- tools: [flake8]
- direct_configs: [.flake8]
- suggest_if: config_present
- affects_cache:
- - setup.cfg
- - tox.ini
- # In case the user installs https://pypi.org/project/Flake8-pyproject/
- - pyproject.toml
- issue_url_format: https://flake8.pycqa.org/en/latest/user/error-codes.html
- known_good_version: 4.0.1
- version_command:
- parse_regex: ${semver}
- run: flake8 --version
-
-```
-
-The **suggest\_if** field can be one of the following:
-
-* `config_present` will auto-enable a linter if Trunk sees any `direct_config` for it .
-* `files_present` will auto-enable a linter if Trunk sees any file type that it operates on.
-* `never` will never auto-enable this linter.
-
-Trunk curates the values of `suggest_if` for all linters in the [plugins](https://github.com/trunk-io/plugins) repo.
-
-## Manually enabling and disabling
-
-Setting the `lint.definitions[*].enabled` property to true will force the linter to be enabled. Setting the `lint.definitions[*].disabled` property to true will force the linter to never be enabled, even if the `enabled` property is true, and will never suggest this linter, even if `suggest_if` says it should.
-
-For additional information on the properties of Linters, see the [Linter Definition Reference](./definitions).
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/commands.mdx b/code-quality/overview/cli/getting-started/configuration/lint/commands.mdx
deleted file mode 100644
index 5c91a1d..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/commands.mdx
+++ /dev/null
@@ -1,454 +0,0 @@
----
-title: "Commands"
----
-A command is the fundamental unit of linters. It defines specifically _what binary and arguments_ are used to run the linter. A linter can have multiple commands in case it has multiple behaviors (ex: lint and format), but it must have at least one.
-
-## How Code Quality Runs Linters
-
-The `run` property is the command to actually run a linter. This command can use [variables](./commands#template-variables) provided by the runtime such as `${plugin}` and `${target}`.
-
-For example: this is the `run` field for **black**, one of our Python linters. The `run` field is set to `black -q ${target}`.
-
-```yaml
-version: 0.1
-tools:
- definitions:
- - name: black
- runtime: python
- package: black[python2,jupyter]
- shims: [black]
- known_good_version: 22.3.0
-lint:
- definitions:
- - name: black
- files: [python, jupyter, python-interface]
- commands:
- - name: format
- output: rewrite
- run: black -q ${target}
- success_codes: [0]
- batch: true
- in_place: true
- allow_empty_files: false
- cache_results: true
- formatter: true
- tools: [black]
- suggest_if: files_present
- affects_cache: [pyproject.toml]
- known_good_version: 22.3.0
- version_command:
- parse_regex: black, version (.*)
- run: black --version
-```
-
-This command template contains all the information Trunk needs to execute `black` in a way where Trunk will be able to understand `blacks`'s output.
-
-## Input Target
-
-The `target` field specifies what paths this linter will run on given an input file. It may be a string literal such as `.`, which will run the linter on the whole repository. It also supports various substitutions:
-
-| Variable | Description |
-| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `${file}` | The input file. |
-| `${parent}` | The folder containing the file. |
-| `${parent_with()}` | Walks up toward the repository root looking for the first folder containing ``. If `` is not found, do not run any linter. |
-| `${root_or_parent_with()}` | Walks up toward the repository root looking for the first folder containing ``. If `` is not found, evaluate to the repository root. |
-| `${root_or_parent_with_regex()}` | Walks up toward the repository root looking for the first folder containing a name matching ``. If not found, evaluate to the repository root. |
-
-If `target` is not specified it will default to `${file}`.
-
-This target may be referenced in the `run` field as `${target}`, as in the example above for **black**, or this simple example.
-
-```yaml
-lint:
- definitions:
- - name: noop
- files: [ALL]
- commands:
- - name: format
- output: rewrite
- formatter: true
- run: cat ${target}
-```
-
-or via `stdin`, by specifying `stdin: true`:
-
-```yaml
-lint:
- definitions:
- - name: noop
- files: [ALL]
- commands:
- - name: format
- output: rewrite
- formatter: true
- run: cat -
- stdin: true
-```
-
-> Note: Linters that take their input via `stdin` may still want to know the file's path so that they can, say, generate diagnostics with the file's path. In these cases you can still use `${target}` in `run`.
-
-## Exit codes
-
-Linters often use different exit codes to categorize the outcome. For instance, [`markdownlint`](https://github.com/igorshubovych/markdownlint-cli#exit-codes) uses `0` to indicate that no issues were found, `1` to indicate that the tool ran successfully but issues were found, and `2`, `3`, and `4` for tool execution failures.
-
-Trunk supports specifying either `success_codes` or `error_codes` for a linter:
-
-* if `success_codes` are specified, Trunk expects a successful linter invocation (which may or may not find issues) to return one of the specified `success_codes`;
-* if `error_codes` are specified, Trunk expects a successful linter invocation to return any exit\
- code which is _not_ one of the specified `error_codes`.
-
-`markdownlint`, for example, has `success_codes: [0, 1]` in its configuration.
-
-**Note:** A linter command should set either success codes or error codes, but not both\*\*.\*\*
-
-## Working directory
-
-`run_from` determines what directory a linter command is run from.
-
-| run_from | Description |
-|---|---|
-| `` (`.` by default) | Explicit path to run from |
-| `${parent}` | Parent of the target file; e.g. would be `foo/bar` for `foo/bar/hello.txt` |
-| `${root_or_parent_with()}` | Nearest parent directory containing the specified file |
-| `${root_or_parent_with_dir()}` | Nearest parent directory containing the specified directory |
-| `${root_or_parent_with_regex()}` | Nearest parent directory containing a file or directory matching specified regex |
-| `${root_or_parent_with_direct_config}` | Nearest parent directory containing a file from `direct_configs` |
-| `${root_or_parent_with_any_config}` | Nearest parent directory containing a file from `affects_cache` or `direct_configs` |
-| `${target_directory}` | Run the linter from the same directory as the target file, and change the target to be `.` |
-| `${compile_command}` | Run from the directory where `compile_commands.json` is located |
-
-## Template Variables
-
-Note that some of the fields in this command template contain `${}` tokens: these tokens are why `command` is a template and are replaced at execution time with the value of that variable within the context of the lint action being executed.
-
-| Variable | Description |
-| ----------------- | ----------------------------------------------------------------------------- |
-| `${workspace}` | Path to the root of the repository |
-| `${target}` | Path to the file to check, relative to `${workspace}` |
-| `${linter}` | Path to the directory the linter was downloaded to |
-| `${runtime}` | Path to the directory the runtime (e.g. `node`) was downloaded to |
-| `${upstream-ref}` | Upstream git commit that is being used to calculate new/existing/fixed issues |
-| `${plugin}` | Path to the root of the plugin's repository |
-
-## Limiting concurrency
-
-If you would like to limit the number of times trunk will invoke a linter concurrently, then you can use the `maximum_concurrency` option. For example, setting `maximum_concurrency: 1` will limit Trunk from running more than one instance of the linter simultaneously.
-
-## Environment variables
-
-Trunk by default runs linters _without_ environment variables from the parent shell; however, most linters need at least some such variables to be set, so Trunk allows specifying them using `environment`; for example, the `environment` for `ktlint` looks like this:
-
-```yaml
-lint:
- definitions:
- name: ktlint
- # ...
- environment:
- - name: PATH
- list: ["${linter}"]
- - name: LANG
- value: en_US.UTF-8
-```
-
-Most `environment` entries are maps with `name` and `value` keys; these become `name=value` environment variables. For `PATH`, we allow specifying `list`, in which case we concatenate the entries with `:`.
-
-We use the same template syntax for `environment` as we do for [`command`](./commands#commands).
-
-## Output Types and Parsing
-
-The output of a command should be in one of the supported output types like [SARIF](./output#sarif) or something that can be parsed with a [regex](./output#regex). See [See Output Types](./commands#output-types-and-parsing) for more details. If the standard output types do not meet your needs, you can also create a [custom parser](./output-parsing).
-
-## Full Reference
-
-The linter command definitions are defined in `lint.definitions.commands`. A single linter can have multiple commands if it is used in different ways.
-
-_Note:_. If you define the executable to run here (the command definition), then you should _not_ define it also in the linter definition. Defining it here as a command is preferred.
-
-## `allow_empty_files`
-
-`allow_empty_files`: _optional boolean_. Skip linting empty files for this linter. Trunk will assume there are no linters if the file is empty.
-
-## `batch`
-
-`batch`: _optional boolean_. Combine multiple files into the same execution. If true, the `${target}` template substitution in the `run` field may expand into multiple files.
-
-## `cache_ttl`
-
-`cache_ttl`, _duration string_. If this linter is not [idempotent](./commands#idempotent), this is how long cached results are kept before they expire. Defaults to 24hrs. See [Output Caching](../../caching) for more details.
-
-## `cache_results`
-
-`cache_results`: _optional boolean_. Indicates if this linter wants to cache results. See [Caching](./files-and-caching) for more details.
-
-## `disable_upstream`
-
-`disable_upstream`: _optional boolean_, Whether this linter supports comparing against the upstream version of this file.
-
-## `error_codes`
-
-`error_codes`: List of exit codes this linter will return when it hit an internal failure and couldn't generate results. **A linter should set either success codes or error codes, but not both.** See also [`success_codes`](./commands#success_codes).
-
-## `enabled`
-
-`enabled`: _optional boolean_. Whether the command is enabled to run when the linter is run. Allows some commands of a linter to be run by default without others.
-
-## `files`
-
-`files` is a list of file types listed in the `lint.files` section that this linter applies to.
-
-Example: **prettier** [full source](https://github.com/trunk-io/plugins/blob/main/linters/prettier/plugin.yaml)
-
-```yaml
-lint:
- definitions:
- - name: prettier
- files:
- - typescript
- - yaml
- - css
- - sass
- - html
- - markdown
- - json
- - javascript
- - graphql
- - prettier_supported_configs
-```
-
-## `fix_prompt`
-
-`fix_prompt`, _optional string._ e.g. 'Incorrect formatting' or 'Unoptimized image'. This string is used when prompting the user to use the linter interactively.
-
-## `fix_verb`
-
-`fix_verb`: _optional string_. This string is used when prompting the user to use the linter interactively. Example: `optimize`, `autoformat`, or `compress`.
-
-## `formatter`
-
-`formatter`: _optional boolean_. Whether this command is a formatter and should be included in `trunk fmt`.
-
-## `in_place`
-
-`in_place`: _optional boolean_. Indicates that this formatter will rewrite the file in place. **Only applies to formatters**.
-
-## `idempotent`
-
-`idempotent`: _optional boolean_. Indicates whether a linter is idempotent with config and source code inputs. For example, `semgrep` fetches rules from the Internet, so it is not idempotent . If set, will only cache results a duration of `cache_ttl`. See [Output Caching](./files-and-caching) for more details.
-
-## `is_security`
-
-`is_security`: _optional boolean_. Whether findings from this command should be considered "security" or not. Allows this linter to be run with `--scope==security`. [See Command Line Options](../../../../../../merge-queue/using-the-queue/reference)
-
-## `maximum_file_size`
-
-`maximum_file_size`: _optional number_. The maximum file size in bytes for input files to the linter. If not specified, the [lint.default\_max\_file\_size](./#default_max_file_size) will be used.
-
-## `max_concurrency`
-
-`max_concurrency`: _optional integer_, The maximum number of processes that Trunk Code Quality will run concurrently for this linter. [See Limiting Concurrency](./commands#limiting-concurrency)
-
-## `name`
-
-`name`: _string_. A unique name for this command (some tools expose multiple commands, format, lint, analyze, etc.).
-
-## `no_issues_codes`
-
-`no_issues_codes`: List of exit codes that Trunk will use to assume there were no issues without parsing the output.
-
-## `output`
-
-`output`: _string_. which type of output this linter produces. [See Output Types](./commands#output-types-and-parsing).
-
-## `parser`
-
-`parser`: The definition of a parser that will transform the output of the linter into SARIF. Not needed if linter is already output SARIF. [See Output Types](./commands#output-types-and-parsing)
-
-## `parse_regex`
-
-`parse_regex`: _string_. A regular expression used to support regex parsing. [See Regex output type](./output#regex)
-
-## `platforms`
-
-`platforms`: A list of platforms this linter supports. (ex: `windows`, `macos`, `linux`). Linters using managed runtimes (node, python, etc.) can generally run cross-platform and do not need the `platforms` property set. For tools which _are_ platform specific or which have different configuration for each platform, this property can be used to distinguish between them. When multiple command definitions have the same name, Trunk Check will pick the first one that matches the `platforms` setting.
-
-For example, the `detekt` plugin has different exit codes for Windows than MacOS or Linux, and has two command definitions with different `success_codes` fields. [Full Source](https://github.com/trunk-io/plugins/blob/main/linters/detekt/plugin.yaml).
-
-```yaml
-lint:
- definitions:
- - name: detekt
- files: [kotlin]
- download: detekt
- commands:
- - name: lint
- platforms: [windows]
- output: sarif
- run:
- detekt-cli --build-upon-default-config --config
- .detekt.yaml --input ${target,} --report
- sarif:${tmpfile}
- success_codes: [0, 1, 2]
- read_output_from: tmp_file
- batch: true
- cache_results: true
- - name: lint
- output: sarif
- run:
- detekt-cli --build-upon-default-config --config
- .detekt.yaml --input ${target,} --report
- sarif:${tmpfile}
- success_codes: [0, 2]
- read_output_from: tmp_file
- batch: true
- cache_results: true
-```
-
-## `prepare_run`
-
-`prepare_run`: An extra command to run before running a linter.
-
-## `read_output_from`
-
-`read_output_from`: Tell parser where to expect output from for reading. Should be one of `stdout`, `stderr`, and `tmp_file`. [See Output Sources](./output#output-sources)
-
-## `run`
-
-`run`: The command to run a linter. This command can use variables provided at runtime such as `$plugin}` and `$target}`. [Full list of variables](./commands#template-variables). See [Run](./commands#how-code-qualit-runs-linters) for more details.
-
-`dart` `format` command: [full source](https://github.com/trunk-io/plugins/blob/main/linters/dart/plugin.yaml)
-
-```yaml
-lint:
- files:
- - name: dart
- extensions: [dart]
- definitions:
- - name: dart
- main_tool: dart
- commands:
- - name: format
- output: rewrite
- run: dart format ${target}
-```
-
-## `run_from`
-
-`run_from`: What current working directory to run the linter from. See [Working Directory](./commands#working-directory) for more details.
-
-## `run_when`
-
-`run_when`: When this command should be run. One of `cli`, `lsp`, `monitor`, or `ci`.
-
-## `std_in`
-
-`std_in`: _optional boolean_. Should the command be fed the file on standard input?
-
-## `success_codes`
-
-`success_codes:` List of exit codes that indicates linter ran successfully. **This is unrelated to whether or not there were issues reported by the linter**.
-
-**Note:** a linter should set either success codes or error codes, but not both. See also [`error_codes`](./commands#error_codes).
-
-## `target`
-
-`target`, _optional string_, What target does this run on. By default, the target is the modified source code file, `${file}`. Some linters operate on a whole repo or directory. See [Input Target](./commands#input-target) for more details.
-
-Examples:
-
-**nancy** uses `.` as the target. [full source](https://github.com/trunk-io/plugins/blob/main/linters/nancy/plugin.yaml)
-
-```yaml
-# nancy uses .
-definitions:
- - name: nancy
- files: [go-lockfile]
- download: nancy
- runtime: go
- commands:
- - output: sarif
- run: sh ${plugin}/linters/nancy/run.sh
- success_codes: [0, 1, 2]
- target: .
- read_output_from: stdout
- is_security: true
-```
-
-**tflint** uses `${parent}` as the target. [full source](https://github.com/trunk-io/plugins/blob/main/linters/tflint/plugin.yaml)
-
-```yaml
-lint:
- definitions:
- - name: tflint
- files: [terraform]
- commands:
- - name: lint
- output: sarif
- prepare_run: tflint --init
- run: tflint --format=sarif --force
- success_codes: [0, 1, 2]
- read_output_from: stdout
- # tflint can only run on the current directory unless --recursive is passed
- target: ${parent}
- run_from: ${target_directory}
- version: ">=0.47.0"
-```
-
-**Clippy** uses `${parent_with(Cargo.toml)}` as the target. [full source](https://github.com/trunk-io/plugins/blob/main/linters/clippy/plugin.yaml)
-
-```yaml
-version: 0.1
-lint:
- definitions:
- # clippy has 3 lint severities: deny, warn, and allow. Unfortunately deny causes rustc to
- # fail eagerly due to its implementation (https://github.com/rust-lang/rust/pull/87337),
- # We use --cap-lints to downgrade "deny" severity lints to warn. So rustc will find all
- # issues instead of hard stopping. There are currently only 70 of them, so we could hardcode
- # the list to fix their severity levels correctly.
- - name: clippy
- files: [rust]
- download: rust
- commands:
- - name: lint
- # Custom parser type defined in the trunk cli to handle clippy's JSON output.
- output: clippy
- target: ${parent_with(Cargo.toml)}
- run: cargo clippy --message-format json --locked -- --cap-lints=warn --no-deps
- success_codes: [0, 101, 383]
- run_from: ${target_directory}
- disable_upstream: true
-```
-
-## `version`
-
-`version`: _optional string_, Version constraint. When a linter has multiple commands with the same name, Trunk Code Quality will select the first command that matches the version constraint. This is useful for when multiple incompatible versions of a tool need to be supported.
-
-Example: the `ruff` linter changed a command line argument from `--format` to `--output-format` in version `v0.1.0`. To handle both versions, the linter defines two commands with different version attributes. The first is for version `>=0.1.0`. If the first is not matched (because the install version of run is less that 0.1.0) then Trunk Code Quality will move on to the next command until it finds a match. [Full source](https://github.com/trunk-io/plugins/blob/main/linters/ruff/plugin.yaml).
-
-```yaml
-lint:
- definitions:
- - name: ruff
- files: [python]
- commands:
- - name: lint
- # As of ruff v0.1.0, --format is replaced with --output-format
- version: ">=0.1.0"
- run: ruff check --cache-dir ${cachedir} --output-format json ${target}
- output: sarif
- parser:
- runtime: python
- run: python3 ${cwd}/ruff_to_sarif.py 0
- batch: true
- success_codes: [0, 1]
- - name: lint
- run: ruff check --cache-dir ${cachedir} --format json ${target}
- output: sarif
- parser:
- runtime: python
- run: python3 ${cwd}/ruff_to_sarif.py 1
- batch: true
- success_codes: [0, 1]
-
-
-```
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/definitions.mdx b/code-quality/overview/cli/getting-started/configuration/lint/definitions.mdx
deleted file mode 100644
index 0cb1acb..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/definitions.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: "Definitions"
----
-The definition of a particular linter is put under `lint.definitions`. The following properties define the settings of a _particular linter_, not for all linters. For global linter settings, see [Lint Config](./).
-
-## `affects_cache`
-
-`affects_cache`: The list of files that affect the cache results of this linter. [See Caching](../../caching).
-
-## `allow_empty_files`
-
-`allow_empty_files`: _optional boolean_. Indicates to skip linting empty files for this linter.
-
-## `batch`
-
-`batch`: _optional boolean_. Combine multiple files into the same execution.
-
-## `commands`
-
-`commands`: The list of commands exposed by this linter. See [Linter Command Definition](./commands).
-
-## `deprecated`
-
-`deprecated`: _string_. Indicates the linter is deprecated and should not be used.
-
-## `direct_configs`
-
-`direct_configs`: _string list_. Indicates config files used to auto-enable the linter. See [Auto Enabling](./auto-enable).
-
-## `disabled`
-
-`disabled`: _optional boolean_: Whether linter is actively disabled (and will not be recommended) and will not run (overrides enabled).
-
-## `download`
-
-`download`: _string_. The download URL. You must provide either runtime + packages or download, not both. Using runtimes is preferred. See [Runtimes](../runtimes).
-
-## `enabled`
-
-`enabled`: _optional boolean_. Whether this linter is enabled.
-
-## `environment`
-
-`environment`: a list of runtime variables used when running the linter. See [Command Environment Variables](./commands#environment-variables).
-
-## `extra_packages`
-
-`extra_packages`: list of strings, Extra packages to install, versions are optional. See [Linter Dependencies](./dependencies).
-
-## `formatter`
-
-`formatter`: _boolean_. Indicates whether this is a formatter and should be included in `trunk fmt`.
-
-## `good_without_config`
-
-`good_without_config`: _optional boolean_. Indicates whether this linter is recommended without the user tuning its configuration. Prefer [`suggest_if`](./definitions#suggest_if).
-
-## `hold_the_line`
-
-`hold_the_line`: _optional boolean_. Whether [hold-the-line will](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line) be done for this linter or not.
-
-## `include_lfs`
-
-`include_lfs`: _boolean_. Allow this linter to operate on files tracked using [git LFS](https://git-lfs.com/).
-
-## `include_scanner_type`
-
-`include_scanner_type`: which include scanner to use, if any.
-
-## `issue_url_format`
-
-`issue_url_format`: _string_, a format string that accepts issue codes for links to issues docs.
-
-## `known_good_version`
-
-`known_good_version`: _string_. A version to be used when Trunk cannot query the latest version. Currently, Trunk can query the latest version for all package managers and downloads hosted on GitHub.
-
-## `known_bad_versions`
-
-`known_bad_versions`: _string list_. Versions of a linter that are known to be broken and should not be run with Trunk. We will fall back to a `known_good_version` if init or upgrade chooses something in this set.
-
-## `main_tool`
-
-`main_tool`, _string_. If your linter depends on more than a single tool, and none of the tools has the same name as the linter, then you will need to specify which is the main tool here. It will be used to version the tool from the linter's enabled version.
-
-## `name`
-
-`name` _required string._ The name of the linter. This property will be used to refer to the linter in other parts of the config, for example, in the list of enabled linters.
-
-## `package`
-
-`package`: string, What primary package to install, if using a package manager runtime. The enabled version of the runtime for this linter will apply to this package. See [Linter Dependencies](./dependencies).
-
-## `path_format`
-
-`path_format`, Whether to use the platform-specific paths or generic "/". Default native.
-
-## `plugin_url`
-
-`plugin_url`: _string_, a plugin url for reporting issues.
-
-## `prepare_command`
-
-`prepare_command`. A command that is run once per session before linting any number of files using this linter. ex. `[tflint, --init]`.
-
-## `query_compile_commands`
-
-`query_compile_commands`, _optional boolean_.
-
-## `runtime`
-
-`runtime`: RuntimeType, Which package manager runtime, if any, to require to be setup for this linter. Ex: `node`, `ruby`, `python`. See [Linter Dependencies](./dependencies).
-
-## `run_timeout`
-
-`run_timeout`: _duration string_. Describes how long a linter can run before timing out. [See timeouts](../../../../linters/configure-linters#timeout).
-
-## `suggest_if`
-
-How to determine if this linter should be auto-enabled/recommended. Possible values are `never`, `config_present`, and `files_present`. [See auto-enabling](./auto-enable) for more details.
-
-## `supported_platforms`
-
-Platform constraint. If incompatible, renders a notice. See also [Command `platforms`](./commands#platforms).
-
-## `tools`
-
-`tools`, _string list_. The list of tools used by this linter. See [Linter Dependencies](./dependencies).
-
-## `version_command`
-
-`version_command`: Version check commands.
-
-## `verbatim_message`
-
-`verbatim_message`: Do not try to truncate or reflow the output of this linter.
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/dependencies.mdx b/code-quality/overview/cli/getting-started/configuration/lint/dependencies.mdx
deleted file mode 100644
index e118a17..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/dependencies.mdx
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: "Dependencies"
----
-Linters use the `tools` section of the `.trunk/trunk.yaml` to specify Trunk configured binaries that the linter uses to run. The `linter.definitions.tools` key specifies a list of tool names. There are two ways for a linter to depend on a tool: [Eponymous Tools](./dependencies#eponymous-tool-dependencies) and [Additional Tools](./dependencies#additional-tool-dependencies)
-
-## Eponymous Tool Dependencies
-
-When the name of the tool matches the name of a linter, it is called an _eponymous tool dependency_.
-
-In the example below the `pylint` linter depends on the `pylint` tool, which is defined as the package `pylint` running with the `python` runtime.
-
-Eponymous tools need to be defined _separately_ from the linter but implicitly enabled with the linter's version. You may explicitly enable the eponymous tool if you wish, but note that its version needs to be synced to that of the linter. See the [Tools Configuration](../tools) page for more details on how to set up Tools.
-
-```yaml
-tools:
- definitions:
- - name: pylint
- runtime: python
- package: pylint
- shims: [pylint]
- known_good_version: 2.11.1
-lint:
- definitions:
- - name: pylint
- files: [python]
- commands:
- - name: lint
- # Custom parser type defined in the trunk cli to
- # handle pylint's JSON output.
- output: pylint
- run: pylint --exit-zero --output
- ${tmpfile} --output-format json ${target}
- success_codes: [0]
- read_output_from: tmp_file
- batch: true
- cache_results: true
- tools: [pylint]
- suggest_if: config_present
- direct_configs:
- - pylintrc
- - .pylintrc
- affects_cache:
- - pyproject.toml
- - setup.cfg
- issue_url_format: http://pylint-messages.wikidot.com/messages:{}
- known_good_version: 2.11.1
- version_command:
- parse_regex: pylint ${semver}
- run: pylint --version
-```
-
-## Additional Tool Dependencies
-
-You can also have a scenario where a linter depends on a tool that is not identically named - an _additional tool dependency_. We give an example below:
-
-```yaml
-tools:
- definitions:
- - name: terragrunt
- known_good_version: 0.45.8
- download: terragrunt
- shims:
- - name: terragrunt
- target: terragrunt
-lint:
- definitions:
- - name: terragrunt
- tools: [terragrunt, terraform]
- known_good_version: 0.45.8
- files: [hcl]
- suggest_if: never
- environment:
- - name: PATH
- list: ["${linter}"]
- commands:
- - name: format
- output: rewrite
- run: terragrunt hclfmt ${target}
- success_codes: [0]
- sandbox_type: copy_targets
- in_place: true
- formatter: true
- batch: true
- version_command:
- parse_regex: terragrunt v${semver}
- run: terragrunt -version
-```
-
-In this scenario, `terraform` is an additional tool dependency - `terragrunt` requires it to be in `$PATH`. If the tool is an additional dependency, it must be enabled explicitly and versioned independently of the linter - that is, it must be listed in the `tools.enabled` section.
-
-## Download via package manager
-
-If your linter can be downloaded via `gem install`, `go get`, `npm install`, or `pip install`, you can specify a `runtime` and the `package` key:
-
-```yaml
-lint:
- definitions:
- - name: fizz-buzz
- files: [javascript]
- # npm install fizz-buzz
- runtime: node
- package: fizz-buzz
-```
-
-This will now create a hermetic directory in `~/.cache/trunk/linters/fizz-buzz` and `npm install fizz-buzz` there. You can refer to different versions of your package in `trunk.yaml` as normal, via `fizz-buzz@1.2.3`.
-
-> Note: Such downloads will use the _hermetic_ version of the specified runtime that `trunk` installs, not the one you've installed on your machine.
-
-See [Package-based Tools](../tools#package-based-tools) for more information.
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/files-and-caching.mdx b/code-quality/overview/cli/getting-started/configuration/lint/files-and-caching.mdx
deleted file mode 100644
index 5712364..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/files-and-caching.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: "Files and Caching"
----
-## Applicable filetypes
-
-To determine which linters to run on which files (i.e. compute the set of lint actions), Trunk requires that every linter define the set of filetypes it applies to in `lint.files`, then reference those files from `lint.definitions[*].files`.
-
-We have a number of pre-defined filetypes (e.g. `c++-header`, `gemspec`, `rust`; see our [plugins repo](https://github.com/trunk-io/plugins/blob/main/linters/plugin.yaml) for an up-to-date list), but you can also define your own filetypes. Here's how we define the `python` filetype:
-
-```yaml
-lint:
- files:
- - name: python
- extensions:
- - py
- - py2
- - py3
- shebangs:
- - python
- - python3
-```
-
-This tells Trunk that files matching either of the following criteria should be considered `python` files:
-
-* the extension is any of `.py`, `.py2`, or `.py3` (e.g. `lib.py`)
-* the shebang is any of `python` or `python3` (e.g. `#!/usr/bin/env python3`)
-
-The **flake8** linter definition uses python files, so it references the filetype above in its definition.
-
-```yaml
-lint:
- definitions:
- - name: flake8
- files: [python]
- commands:
- ...
- affects_cache:
- - setup.cfg
- - tox.ini
- # In case the user uses https://pypi.org/project/Flake8-pyproject/
- - pyproject.toml
-```
-
-## Caching
-
-Trunk Code Quality automatically caches results from previous runs of linters to speed up development. To do this Trunk needs to know which files could potentially affect the cache, besides the source code files themselves.
-
-### Enabling caching
-
-If a linter wishes Trunk to cache the results it should set `cache_results` to true.
-
-## Files which affect caching
-
-The `lint.definitions[*].affects_cache` property is a list of files which could affect the cache. General these are files which would change the configuration of the linter, and therefore invalidate the current cached results. For example, the **flake8** tool tells trunk to invalidate the cache whenever the `setup.cfg`, `tox.ini`, or `pyproject.toml` files are changed.
-
-```yaml
-lint:
- definitions:
- - name: flake8
- files: [python]
- commands:
- ...
- affects_cache:
- - setup.cfg
- - tox.ini
- # In case the user uses https://pypi.org/project/Flake8-pyproject/
- - pyproject.toml
-```
-
-### Idempotency
-
-Trunk Code Quality also needs to know if the linter command itself is idempotent, meaning the command will return the exact same results given the exact same inputs. Most linters are, however semgrep, for example, fetches rules from the internet so the output could be different each time.
-
-Setting the `linter.definitions[*].commands.idempotent` property to true will tell trunk to only cache the result for a duration of `cache_ttl`, which is set to 24hrs by default.
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/index.mdx b/code-quality/overview/cli/getting-started/configuration/lint/index.mdx
deleted file mode 100644
index e6b2dc4..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/index.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: "Lint"
----
-### Lint Config
-
-The `lint` section of `.trunk/trunk.yaml` represents the configuration of all linters. This is where you can:
-
-* Define the linters (`lint.definitions`),
-* List linters to enable and disable (`lint.enabled` and `lint.disabled`)
-* Define file categories (`lint.files`)
-* List required `runtimes` and `downloads`.
-* And additional cross-linter settings.
-
-### `bazel`
-
-`bazel`: bazel configuration
-
-* `paths` locations to look for Bazel binary. [Example](../../../../linters/supported/clang-tidy#using-bazel).
-
-### `comment_formats`
-
-`comment_formats`: Definitions of comment formats. Reused in linter definitions. Trunk Quality already defines many common comment format such as `hash` (`# comment`), `slashes-block` (`/* comment */`), and `slashes-inline` (`// comment`). For the full list [see the linters plugin.yaml](https://github.com/trunk-io/plugins/blob/main/linters/plugin.yaml).
-
-To create a new comment format provide the name and delimiters like this:
-
-```yaml
-lint:
- comment_formats:
- - name: dashes-block
- leading_delimiter: --[[
- trailing_delimiter: --]
-```
-
-### `compile_commands`
-
-`compile_commands`: compile commands for clang-tidy. Must be one of `json` or `bazel`.
-
-### `compile_commands_roots`
-
-`compile_commands_roots`: Directories to search for `compile_commands.json`. The default is `build/`.
-
-### `default_max_file_size`
-
-`default_max_file_size`: Default maximum filesize in bytes. Trunk Code Quality will not run linters on any files larger than this. Default value is 4 megabytes.
-
-### `definitions`
-
-`definitions`: Where you define or override linter settings. See [Linter Definition Config](./definitions).
-
-### `disabled`
-
-`disabled`: The list of linters to disable. Adding a linter here will prevent trunk from suggesting it as a new linter each time you upgrade. Linter names can be in the form of `` or `@`, the same format as the [enabled](./#enabled) property.
-
-### `downloads`
-
-`downloads`: Locations to download binary artifacts from. Using [tool definitions](../tools) instead is preferred.
-
-### `enabled`
-
-`enabled`: The list of linters to enable. Linter names can be in the form of `` or `@`. Examples:
-
-```yaml
-lint:
- enabled:
- # Mutually exclusive, choose one:
- - eslint # Use the system version of markdownlint
- - eslint@9.0.0 # Use a hermetically managed version of eslint
- - eslint@node # Use eslint from node_modules/.bin
-```
-
-### `exported_configs`
-
-`exported_configs`: Linter configs to export when another project is [importing this plugin](../../../../linters/shared-configs)
-
-### `extra_compilation_flags`
-
-`extra_compilation_flags`: When running clang-tidy, this list will be appended to the compile command.
-
-### `files`
-
-`files`: Definitions of filetypes
-
-Every linter must define the set of filetypes it applies to in the `lint.files` section.
-
-New filetypes are defined with the name and extensions properties. They may also include the comments properties to describe what style of comments are used in these files.
-
-This is how the C++ source filetype is defined. See also [Files and Caching](./files-and-caching).
-
-```yaml
-lint:
- files:
- - name: c++-source
- extensions:
- - C
- - cc
- - cpp
- - cxx
- comments:
- - slashes-block
- - slashes-inline
-```
-
-### `ignore`
-
-`ignore`: files to be ignored by linters.
-
-### `reuse_upstream`
-
-`reuse_upstream`: If enabled, Trunk will cache upstream sandboxes instead of creating a new one each time. Options are `true`, or `false`.
-
-### `runtimes`
-
-`runtimes`: Node, python, cargo, etc. Used to define or override a runtime environment for package management. [See Runtimes](../runtimes).
-
-### `skip_missing_compile_command`
-
-`skip_missing_compile_command`: For linters that depend on compile commands, setting this will cause Trunk to skip files without a compile command rather than report an error.
-
-### `threshold`
-
-`threshold`: where you specify the blocking behavior of linters. The [threshold](../../../../linters/configure-linters#blocking-thresholds) for whether an error from a linter should block commits or not.
-
-### `upstream_mode`
-
-`upstream_mode`: How to generate the upstream sandbox used for generating lint results for revisions not currently checked out. Options are`symlink` (default), `hardlink`, or `copy`. If using `copy`, it can be slow without also enabling `reuse_upstream: true`.
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/output-parsing.mdx b/code-quality/overview/cli/getting-started/configuration/lint/output-parsing.mdx
deleted file mode 100644
index a61c5d7..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/output-parsing.mdx
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: "Output Parsing"
----
-If you have a command or utility that you want to run pretty much as-is, but Trunk doesn't natively understand how to parse it, you can inject your own custom parser to translate its output into a format that Trunk does understand!
-
-For example, let's say that we want to use `grep` as a linter, but we want to add more context to the matches. We could define a custom linter like so:
-
-```yaml
-lint:
- definitions:
- - name: todo-finder
- files: [ALL]
- commands:
- - output: regex
- # matches the parser run output
- parse_regex: "((?P.*):(?P\\d+):(?P
\\d+):
- \\[(?P.*)\\] (?P.*) \\((?P.*)\\))"
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- run:
- "sed -E 's/(.*):([0-9]+):(.*)/\\1:\\2:0:
- [error] Found todo in \"\\3\" (found-todo)/'"
-```
-
-The execution model that `trunk` follows for a parser is that it will:
-
-* execute the linter's `run` field, asserting that either:
- * the linter's exit code is in `success_codes`, or
- * the linter's exit code is not in `error_codes`;
-* execute `parser.run`,
- * with the `read_output_from` of the linter execution fed to `parser.run` as `stdin`,
- * assert that the exit code of the parser is 0, and then
-* use `output` to determine how it should parse the parser's `stdout`.
-
-Note that you can also set `parser.runtime` to [`node`](./output-parsing#node) or [`python`](./output-parsing#python) so that you can write your parser in Javascript or Python instead, if you so prefer! You can find plenty of examples of python parsers in our [plugins repo](https://github.com/trunk-io/plugins).
-
-
-
-**Node**
-
-```yaml
-lint:
- definitions:
- - name: todo-finder-node
- files: [ALL]
- commands:
- - output: parsable
- # parse_regex matches the parser run output
- parse_regex: "((?P.*):(?P\\d+):(?P
\\d+):
- \\[(?P.*)\\] (?P.*) \\((?P.*)\\))"
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- runtime: node
- run: ${workspace}/todo-finder-parser.js
-```
-
-```javascript
-#!/usr/bin/env node
-'use strict';
-let readline = require('readline');
-let rl = readline.createInterface({ input: process.stdin });
-
-rl.on('line', function(line){
- let match = line.match(/(.*):([0-9]+):(.*)/);
-
- if (match) {
- let [_, path, line_number, line_contents] = match;
- console.log(`${path}:${line_number}:0: [error]`
- +` Found todo in "${line_contents}" (found-todo)`);
- }
-```
-
-Remember to run `chmod u+x todo-finder-parser.js` so that `trunk` can run it!
-
-
-**Python**
-
-```yaml
-lint:
- definitions:
- - name: todo-finder-python
- files: [ALL]
- commands:
- - output: parsable
- # parse_regex matches the parser run output
- parse_regex: "((?P.*):(?P\\d+):(?P
\\d+):
- \\[(?P.*)\\] (?P.*) \\((?P.*)\\))"
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- runtime: python
- run: ${workspace}/todo-finder-parser.js
-```
-
-```python
-#!/usr/bin/env python
-import re, sys
-
-for line in sys.stdin.readlines():
- match = re.match("(.*):([0-9]+):(.*)", line)
- if match:
- path, line_number, line_contents = match.groups()
- print(f"{path}:{line_number}:0: [error] "
- "Found todo in \"{line_contents}\" (found-todo)")
-
-```
-
-Remember to run `chmod u+x todo-finder-parser.py` so that `trunk` can run it!
-
-
diff --git a/code-quality/overview/cli/getting-started/configuration/lint/output.mdx b/code-quality/overview/cli/getting-started/configuration/lint/output.mdx
deleted file mode 100644
index 9364527..0000000
--- a/code-quality/overview/cli/getting-started/configuration/lint/output.mdx
+++ /dev/null
@@ -1,207 +0,0 @@
----
-title: "Output"
----
-## Output Sources
-
-The output format that Trunk expects from a linter is determined by its [`output`](./output#output-types) type.
-
-**`stdout`, `stderr` or `tmp_file`**
-
-`trunk` generally expects a linter to output its findings to `stdout`, but does support other output mechanisms:
-
-| `read_output_from` | Description |
-| ------------------ | --------------------------------------------------------------------------------- |
-| `stdout` | Standard output. |
-| `stderr` | Standard error. |
-| `tmp_file` | If `${tmpfile}` was specified in `command`, the path of the created `${tmpfile}`. |
-
-## Output Types
-
-Trunk supports several different generic output types. Most linters will use one of these output types, but if your linter doesn't conform well to any of these specifications, you can also write a [custom parser](./output-parsing). In general, SARIF should be preferred over other formats because it is the most flexible and battle tested.
-
-Trunk currently supports the following linter output types.
-
-| Linter Type | Autofix support | Description |
-|---|---|---|
-| [`sarif`](#sarif) | ✓ | Produces diagnostics as [Static Analysis Results Interchange Format](https://docs.oasis-open.org/sarif/sarif/v2.0/sarif-v2.0.html) JSON. |
-| [`lsp_json`](#lsp-json) | | Produces diagnostics as [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) JSON. |
-| [`pass_fail`](#pass-fail-linters) | | Writes a single file-level diagnostic to `stdout`. |
-| [`regex`](#regex) | | Produces diagnostics using a custom regex format. |
-| [`arcanist`](#arcanist) | ✓ | Produces diagnostics as Arcanist JSON. |
-| [`rewrite`](#formatters) | ✓ | Writes the formatted version of a file to `stdout`. |
-
-If your linter produces a different output type, you can also write a [parser](./output-parsing) to transform the linter's output into something Trunk can understand.
-
-### SARIF
-
-`output: sarif` linters produce diagnostics in the [Static Analysis Results Interchange Format](https://docs.oasis-open.org/sarif/sarif/v2.0/sarif-v2.0.html):
-
-```json
-{
- "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
- "version": "2.1.0",
- "runs": [
- {
- "results": [
- {
- "level": "warning",
- "locations": [
- {
- "physicalLocation": {
- "artifactLocation": {
- "uri": "/dev/shm/sandbox/detekt_test_repo/example.kt"
- },
- "region": {
- "startColumn": 12,
- "startLine": 18
- }
- }
- }
- ],
- "message": {
- "text": "A class should always override hashCode when overriding equals and the other way around."
- },
- "ruleId": "detekt.potential-bugs.EqualsWithHashCodeExist"
- }
- ],
- "tool": {
- "driver": {
- "downloadUri": "https://github.com/detekt/detekt/releases/download/v1.19.0/detekt",
- "fullName": "detekt",
- "guid": "022ca8c2-f6a2-4c95-b107-bb72c43263f3",
- "informationUri": "https://detekt.github.io/detekt",
- "language": "en",
- "name": "detekt",
- "organization": "detekt",
- "semanticVersion": "1.19.0",
- "version": "1.19.0"
- }
- }
- }
- ]
-}
-```
-
-### LSP JSON
-
-`output: lsp_json` linters output issues as [Language Server Protocol](https://microsoft.github.io/language-server-protocol/specification#diagnostic) JSON.
-
-```json
-[
- {
- "message": "Not formatted correctly. Missing owner",
- "code": "missing-owner",
- "severity": "Error",
- "range": {
- "start": {
- "line": 12,
- "character": 8
- },
- "end": {
- "line": 12,
- "character": 12
- }
- }
- },
- {
- "message": "TODO is assigned to someone not listed in this project",
- "code": "unknown-user",
- "severity": "Warning",
- "range": {
- "start": {
- "line": 37,
- "character": 0
- },
- "end": {
- "line": 37,
- "character": 14
- }
- }
- }
-]
-```
-
-### Pass/Fail Linters
-
-`output: pass_fail` linters find either:
-
-* no issues in a file, indicated by exiting with `exit_code=0`, or
-* a single file-level issue in a file, whose message is the linter's `stdout`, indicated by exiting\
- with `exit_code=1`.
-
-> Note: Exiting with `exit_code=1` but writing nothing to `stdout` is considered to be a linter tool failure.
->
-> Note: `pass_fail` linters are required to have `success_codes: [0, 1]`
-
-### Regex
-
-`output: regex` linters produce output that can be parsed with custom regular expressions and named capture groups. The regular expression is specified in the `parse_regex` field.
-
-`regex` supports capturing strings from a linter output for the following named capture groups:
-
-* `path`: file path (required)
-* `line`: line number
-* `col`: column number
-* `severity`: one of `note`, `notice`, `allow`, `deny`, `disabled`, `error`, `info`, `warning`
-* `code`: linter diagnostic code
-* `message`: description
-
-For example, the output
-
-```
-.trunk/trunk.yaml:7:81: [error] line too long (82 > 80 characters) (line-length)
-```
-
-can be parsed with the regular expression
-
-```
-((?P.*):(?P\d+):(?P
\d+): \[(?P.*)\] (?P.*) \((?P.*)\))
-```
-
-and would result in a `trunk` diagnostic that looks like this:
-
-```
-7:81 high line too long (82 > 80 characters) regex-linter/line-length
-```
-
-In the event that multiple capture groups of the same name are specified, the nonempty capture will be preferred. If there are multiple non-empty captures, a linter error will be thrown. Adjust your regular expression accordingly to match the specifics of your output.
-
-> Note: For additional information on building custom regular expressions, see [re2](https://github.com/google/re2/wiki/Syntax). More complicated regex may require additional escape characters in yaml configuration.
-
-### Arcanist
-
-You can also output JSON using the Arcanist format.
-
-```json
-[
- {
- "Char": 1,
- "Code": "missing_copyright",
- "Description": "Message about things\nMaybe contain multiple lines and web\nlinks\nhttps://website.com/notice-about-stuff\n",
- "Line": 1,
- "Name": "Incorrect (or missing) copyright notice",
- "OriginalText": "",
- "Path": "somefile.py"
- }
-]
-```
-
-### Formatters
-
-`output: rewrite` linters write the formatted version of a file to `stdout`; this becomes an autofix which `trunk` can prompt you to apply (which is what `trunk check` does by default) or automatically apply for you (if you `trunk check --fix` or `trunk fmt`).
-
-For example, if you wanted a linter to normalize your line endings, you could do this:
-
-```yaml
-lint:
- definitions:
- - name: no-carriage-returns
- files: [ALL]
- commands:
- - output: rewrite
- formatter: true
- command: sed s/\r// ${target}
- success_codes: [0]
-```
-
-Setting `formatter: true` will cause `trunk fmt` to run this linter.
diff --git a/code-quality/overview/cli/getting-started/configuration/merge.mdx b/code-quality/overview/cli/getting-started/configuration/merge.mdx
deleted file mode 100644
index 7608741..0000000
--- a/code-quality/overview/cli/getting-started/configuration/merge.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Merge"
----
-Custom `required_statuses` defined in the `.trunk/trunk.yaml` file take precedence over the GitHub required status checks from branch protection.
-
-Use custom `required_statuses` when your checks don't match what you configure on GitHub one-to-one.
-
-```
-version: 0.1
-```
-
-```
-cli:
- version: 1.16.0
-merge:
- required_statuses:
- - Trunk Check
- - Unit tests & test coverage
- # Add more required statuses here
-```
diff --git a/code-quality/overview/cli/getting-started/configuration/per-user-overrides.mdx b/code-quality/overview/cli/getting-started/configuration/per-user-overrides.mdx
deleted file mode 100644
index 2e2d9c9..0000000
--- a/code-quality/overview/cli/getting-started/configuration/per-user-overrides.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Per User Overrides"
----
-## Per-User Customization
-
-Trunk can also be managed by the `.trunk/user.yaml` file in your repository. This file is optional, but it allows individual developers to customize how they want `trunk` to run on their machines.
-
-Simply configure `.trunk/user.yaml` as you would for `.trunk/trunk.yaml`. Now you can add additional linters, enable [actions](../actions/), or specify [default command options](./#cli), without impacting the way other developers run `trunk`.
-
-Be mindful that `.trunk/user.yaml` takes precedence over `.trunk/trunk.yaml`, so substantial modifications could violate hermeticity.
-
-## Identity Config
-
-Trunk also saves a user config in `$HOME/.cache/trunk/user.yaml`. This is auto-generated in order to manage [anonymous usage data](./telemetry) and persist login sessions.
diff --git a/code-quality/overview/cli/getting-started/configuration/plugins/exported-configs.mdx b/code-quality/overview/cli/getting-started/configuration/plugins/exported-configs.mdx
deleted file mode 100644
index a3ece1f..0000000
--- a/code-quality/overview/cli/getting-started/configuration/plugins/exported-configs.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: "Exporting linter configs"
-description: "Reusing linter configs across projects."
----
-Plugin repositories can also export their own linter config files to keep configuration synced across an organization. Simply add an `exported_configs` section to a `plugin.yaml`, with paths to all of the config files you want to export, relative to the repository root. For example:
-
-```yaml
-lint:
- exported_configs:
- - configs:
- - .eslintrc.yaml
- - .trunk/configs/.shellcheckrc
-```
-
-These config files will be available for linters that enumerate them in `affects_cache`or `direct_configs` to reference. These files are automatically symlinked into the repository root during linter execution. The set of applicable config files can be viewed in the details yaml file listed when running `trunk check --verbose`.
-
-Plugin-exported configs are sourced in lockstep with the plugin itself, so you will need to update\
-the `ref` field to use the latest configs.
-
-Note that if you're using an IDE Extension like clangd with an LSP that relies on those configs being in the root, you will need to manually create a symlink to the plugin's config. You can do this by running `ln -s .trunk/plugins//`.
-
-For an example of a plugin repo with config files, see our own [configs](https://github.com/trunk-io/configs) repo.
-
-### Importing configs
-
-This process can also be reversed to import config files from a plugins repository which\
-does not explicitly export them. Given a plugin sourced with id `trunk`, the sourcing repository can\
-achieve the same effect by including the following in its `.trunk/trunk.yaml`.
-
-```yaml
-lint:
- exported_configs:
- - plugin_id: trunk
- configs:
- - .eslintrc.yaml
- - .trunk/configs/.shellcheckrc
-```
diff --git a/code-quality/overview/cli/getting-started/configuration/plugins/external-repositories.mdx b/code-quality/overview/cli/getting-started/configuration/plugins/external-repositories.mdx
deleted file mode 100644
index 3b3aa96..0000000
--- a/code-quality/overview/cli/getting-started/configuration/plugins/external-repositories.mdx
+++ /dev/null
@@ -1,129 +0,0 @@
----
-title: "Share config between codebases"
-description: "Sharing configuration between codebases using public config repos"
----
-To standardize Trunk configuration across an organization, you can create and publish a public plugins repository. This repo can define new linter definitions, specify enabled linters and actions, and even [export linter configs](./exported-configs).
-
-Once you've created your plugin repository, you can source it in other repositories to adopt shared configuration across your organization. For an example of how we do this in our own org, check out our [configs repo](https://github.com/trunk-io/configs).
-
-Note that in order to keep linters and tools up to date in your plugin configs repo, you'll need to run `trunk upgrade --apply-to=plugin.yaml` to apply [upgrades](../../../../linters/upgrades). After making a public GitHub release with your plugin changes, other dependent repos will pick up these changes automatically when running `trunk upgrade`.
-
-### Get started
-
-Let's walk through how to create a simple linter that warns about TODOs in your codebase.
-
-We'll start by creating a new Git repository:
-
-```bash
-PLUGIN_PATH=~/my-first-trunk-plugin
-mkdir "${PLUGIN_PATH}" && cd "${PLUGIN_PATH}"
-git init
-```
-
-And then create a linter that can find TODOs in your codebase using `grep` and `sed`:
-
-```bash
-cat >plugin.yaml <
-trunk check enable todo-finder
-```
-
-And now, to demonstrate how this works, let's `trunk check` some files where we know we have TODOs:
-
-```bash
-trunk check $(git grep -li todo | head -n 10)
-```
-
-which will show you something like this:
-
-```
-.eslintrc.yaml:19:0
- 19:0 high Found todo in " # TODO(chris): Figure out why this causes a massive slowdown ... .trunk/dev-out/O1F.txt local.todo-finder/found-todo
- 101:0 high Found todo in " node/no-unpublished-import: off # TODO: do we want this?" local.todo-finder/found-todo
-```
-
-### Organizing your code
-
-In the example we gave above, we put the linter's source code in `plugin.yaml`, which is fine for an example, but not really great for anything more than that. We can take the `sed` command from the plugin we created earlier and push that into the shell script:
-
-```bash
-#!/bin/bash
-sed -E 's/(.*):([0-9]+):(.*)/\1:\2:0: [error] Found todo in \"\3\" (found-todo)/'"
-```
-
-> Tip: Remember to run `chmod u+x todo-finder-parser.sh` so that `trunk` can run it!
-
-and also point the definition of `todo-finder` at it:
-
-```bash
-version: 0.1
-lint:
- definitions:
- - name: todo-finder
- files: [ALL]
- commands:
- - output: parsable
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- run: ${plugin}/todo-finder-parser.sh
-```
-
-We can also go another step and push the entire linter definition into a shell script:
-
-```bash
-#!/bin/bash
-grep --with-filename --line-number --ignore-case todo "${1}" | \
- sed -E 's/(.*):([0-9]+):(.*)/\1:\2:0: [error] Found todo in \"\3\" (found-todo)/'"
-```
-
-```yaml
-version: 0.1
-lint:
- definitions:
- - name: todo-finder
- files: [ALL]
- commands:
- - output: parsable
- run: ${plugin}/todo-finder.sh
- success_codes: [0]
-```
-
-See our documentation on [custom linters](../../../../linters/custom-linters) and [custom parsers](../lint/output-parsing) for more on what you can do, such as writing your parser in Javascript or Python!
-
-### Publishing your plugin
-
-To share your plugin with the world, all you have to do is tag a release and push it to GitHub, GitLab, or some other repository hosting service:
-
-```bash
-git add .
-git commit "Create a TODO finder"
-git tag -a v0.0.0 --message "Initial TODO finder release"
-git remote add origin
-git push origin main v0.0.0
-```
-
-Now that it's available on the Internet, everyone else can just use your plugin by running:
-
-```bash
-trunk plugins add --id=their-first-plugin v0.0.0
-```
diff --git a/code-quality/overview/cli/getting-started/configuration/plugins/index.mdx b/code-quality/overview/cli/getting-started/configuration/plugins/index.mdx
deleted file mode 100644
index 93d1b9e..0000000
--- a/code-quality/overview/cli/getting-started/configuration/plugins/index.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: "Plugins"
----
-### Plugin config merging
-
-Trunk uses a plugin system where a root configuration is defined in the [trunk-io/plugin repository](https://github.com/trunk-io/plugins). You can import many plugin config sources, and fields defined at each level override the level above.
-
-
-When plugin configs are merged, only fields defined in a config file are merged into the level above. You can define just the fields you wish to override in `.trunk/trunk.yaml and .trunk/user.yaml.`
-
-
-When using trunk, you can merge several sets of configuration files with a `trunk.yaml` schema. Config merging proceeds as follows:
-
-1. Remote plugins sourced in `.trunk/trunk.yaml` (and `.trunk/user.yaml`). Plugins are sourced in the order they're defined, with later plugins overriding those defined before it. The [`trunk`](https://github.com/trunk-io/plugins) plugin is implicitly sourced first.
-2. Your repo level `.trunk/trunk.yaml` file, complete with a CLI version and any definitions or enables. Configurations defined here override what's defined in the remote plugins.
-3. Optionally, `.trunk/user.yaml`, a local **git-ignored** file where users can provide their own overrides.
-
-Additionally, any files enumerated in the lint `exported_configs` section are symlinked from their relevant plugin into the root of the workspace when an applicable linter is run with `trunk check`.
-
-### Importing a plugin repository
-
-By default, trunk imports the trunk-io/plugins repository. To import a repo add it to the `plugins.sources` list. Each repo requires a URI and ref.
-
-```yaml
-plugins:
- sources:
- - id: trunk
- uri: https://github.com/trunk-io/plugins
- ref: v1.2.6
-```
-
-| Field | Description |
-|---|---|
-| `id` | unique identifier for this repository |
-| `uri` | address used to clone the target repository |
-| `ref` | commit id or tag to checkout. **Do not use branch names, as these can be unstable** |
-| `local` | path to local (on-disk) repository. Takes precedence over uri/ref if defined |
-| `import_to_global` (default: `true`) | import content into the global namespace. If set to false actions and linters defined in the plugin must be referenced by `.` |
-
-### Plugin capabilities
-
-Any configuration used in `trunk.yaml` can also be used in a plugin repository, with [some exceptions](./#excluded-fields). A plugin repository must have one root level `plugin.yaml` and can have any number of other `plugin.yaml` files in other subdirectories. These configuration files are then merged into one composite plugin configuration.
-
-The most common use for a plugin repository is to define custom linters, actions, or tools. But they can also be used to define a common set of shared tools across an organization. For more info, see [organization configs](./external-repositories).
-
-The root `plugin.yaml` file may also have a `required_trunk_version` field which governs compatibility when [upgrading](../../../../linters/upgrades) between CLI versions.
-
-#### Add a plugin to your `trunk.yaml` file
-
-To add a plugin from GitHub:
-
-```
-trunk plugins add https://github.com/trunk-io/plugins --id=trunk
-```
-
-To add a plugin from GitHub at a specific version:
-
-```
-trunk plugins add https://github.com/trunk-io/plugins v1.2.6 --id=trunk
-```
-
-To add a plugin from a local repository:
-
-```
-trunk plugins add /home/user/self/hello-world --id=hello-world
-```
-
-Note that when specifying a remote plugin, the `ref` field must be a tag or SHA.
-
-### Plugins scope
-
-Plugins are merged serially, in the order that they are sourced, and can override almost any Trunk\
-configuration. This allows organizations to provide a set of overrides and definitions in one\
-central place.
-
-For instance, you can create your own `my-plugins` repository with `plugin.yaml`:
-
-```yaml
-version: 0.1
-lint:
- definitions:
- - name: trufflehog
- commands:
- - name: lint
- # override trufflehog to use '--only-verified'
- run: trufflehog filesystem --json --fail --only-verified ${target}
- enabled:
- - ruff@0.0.256
-```
-
-sourced in a `.trunk/trunk.yaml` file from another repository as follows:
-
-```yaml
-version: 0.1
-plugins:
- sources:
- - id: trunk
- uri: https://github.com/trunk-io/plugins
- ref: v1.2.6
- - id: my-plugins
- local: ../my-plugins
-```
-
-When a user runs `trunk` in the sourcing repository, they will already have `ruff` enabled, along with the `trufflehog` override from the `my-plugins` repository.
-
-Note that private GitHub plugin repositories are not currently supported.
-
-### Excluded fields
-
-Plugin `sources`, as well as the `cli` `version`, are not merged from plugin repositories to ensure\
-that config merging occurs in a predictable, stable fashion.
diff --git a/code-quality/overview/cli/getting-started/configuration/runtimes.mdx b/code-quality/overview/cli/getting-started/configuration/runtimes.mdx
deleted file mode 100644
index b277e7d..0000000
--- a/code-quality/overview/cli/getting-started/configuration/runtimes.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: "Runtimes"
----
-Trunk manages the hermetic installation of all required runtimes. You can also specifically pin a version of a runtime you'd like Trunk to use, or tell Trunk to reuse an already-installed runtime on the system.
-
-Trunk makes it easy for you to run tools (such as linters and actions) because, under the hood, Trunk actually downloads everything a given tool depends on, and then executes said tool in the context of its dependencies. In other words, you can run tools like `golangci-lint` and `rubocop` without wasting hours figuring out how to install the right Go and Ruby versions on your machine, because Trunk will install a `go` and `ruby` runtime for those tools to depend on.
-
-Importantly, just like how Trunk by design requires you to version your tools, i.e. specify which version of `golangci-lint` and `rubocop` is enabled in your repository at a given commit, Trunk also versions your runtimes. This means that you can stop asking questions like "Wait, which version of Go are you using?" and "How do I choose a Ruby version to install on this new Jenkins runner?"; instead, all you have to do is look at the `runtimes` section in your `.trunk/trunk.yaml`, and you know which version of which runtime Trunk will use for a tool at any given moment:
-
-```
-runtimes:
- enabled:
- - go@1.18.3
- - node@16.14.2
- - python@3.10.3
- - ruby@3.1.0
-```
-
-## How does this work?
-
-Runtimes are defined by a combination of configuration and native code inside Trunk itself. Let's walk through an example, `prettier`:
-
-```yaml
-lint:
- definitions:
- - name: prettier
- runtime: node
- package: prettier
- commands:
- - run: prettier -w ${target}
- ...
-```
-
-Since Prettier uses the `node` runtime, let's also look at that definition; specifically, the `runtime_environment` and `linter_environment`:
-
-```yaml
-runtimes:
- definitions:
- - type: node
- linter_environment:
- - name: PATH
- list:
- - ${linter}/node_modules/.bin
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list:
- - ${runtime}/bin
-```
-
-Now we have all the config fields we need to understand what Trunk does in this example.
-
-### Installing `prettier`
-
-Before Trunk can run `prettier`, it needs to install `prettier`; this is done using the package manager associated with a given runtime, the mechanism for which is defined natively inside Trunk (i.e. Trunk has custom code for every runtime to manage how packages for said runtime are installed).
-
-For most runtimes, this is as simple as executing the runtime's package manager in the context of the `runtime_environment`; in this example, that means doing `npm install ${package}` with environment variables `HOME=${home}` and `PATH=${runtime}/bin`.
-
-### Running `prettier`
-
-Once `prettier` is installed, we combine its runtime's `linter_environment` with any other environment variables that might be defined in a given `lint.definitions` entry (in this case there are none), and then use that as the environment when we execute the command for a given linter.
-
-## Specifying a runtime version
-
-If you would like to use the system-installed runtime instead of the Trunk managed version you can always use the `runtimes.definitions.system_version` property in your `trunk.yaml` file.
-
-```yaml
-runtimes:
- enabled:
- - go@x.y.z
-
-# or
-runtimes:
- enabled:
- - go@>=x.y.z
- definitions:
- - type: go
- system_version: allowed
-```
-
-If you choose to use a system-managed version, you will also need to specify a runtime version constraint in your enabled section, e.g. `python@>=3.0.0`.
diff --git a/code-quality/overview/cli/getting-started/configuration/telemetry.mdx b/code-quality/overview/cli/getting-started/configuration/telemetry.mdx
deleted file mode 100644
index 866126a..0000000
--- a/code-quality/overview/cli/getting-started/configuration/telemetry.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "Telemetry"
----
-Trunk sends basic usage metrics from our local tools ([CLI](/broken/pages/OJc6wVrAfc2SLQZlJ2m1) & [VS Code Extension](../../../ide-integration/vscode)) to our analytics system to help us understand our usage and improve our tools over time. We do not send your code or codebase to our backend.
-
-## Why we collect usage data
-
-Our product team constantly works on feature enhancement and new areas to invest in. Usage data allows us best to understand the ergonomics and performance of our tools. For example, if we add a new subcommand to the command line interface - how often is it used? Additionally, usage data is gathered to track usage and compliance against our free and paid product offerings.
-
-To give concrete examples: we track our users' client version and operating system to understand backward compatibility requirements, and the time it takes our user base to upgrade to our latest releases.
-
-## Example usage data
-
-```json
-{
- "anonymous_id": ,
- "command": "check --all",
- "launcher_version": "1.2.3",
- "os": "macOS",
- "release": 1.4.1,
- "source": "client",
- "time": ,
- "exit_code": 0,
- "duration_ms": 232,
- "repository":
-}
-```
-
-## Can I disable usage data?
-
-Yes. You can disable usage telemetry by setting the following environment variable:
-
-```bash
-TRUNK_TELEMETRY=off
-```
diff --git a/code-quality/overview/cli/getting-started/configuration/tools.mdx b/code-quality/overview/cli/getting-started/configuration/tools.mdx
deleted file mode 100644
index 9445e53..0000000
--- a/code-quality/overview/cli/getting-started/configuration/tools.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: "Tools"
----
-Tool definitions
-
-Each tool definition shares a set of attributes:
-
-| Field | |
-|---|---|
-| `name` | The name of the tool. Must be unique. |
-| `known_good_version` | The default version to initialize the tool at (required). |
-| `shims` | A list of binaries exposed by the tool. Each of these will correspond to one identically named executable installed in `.trunk/tools.`In the most common case, there is exactly one shim matching the name of the tool. We'll discuss other cases below. |
-| `environment` | You can specify an environment for the tool. We provide the `${tool}` template argument that resolves to the installation directory of the tool. By default, we prepend this to `$PATH` within the shim script, so this is used to locate the binary. For legacy reasons, `${linter}` also resolves to this directory. |
-
-> Note: If the tool has a `runtime` attribute, the runtime's environment is merged in to its environment (discussed in the examples below).
-
-Broadly speaking, there are 3 kinds of tools - download, package, and runtime-based tools. We'll look at each one in turn:
-
-#### Download-based tools
-
-Download-based tools are straightforward: They reference a named download configuration in the global `downloads` section. Here is an example:
-
-```yaml
-downloads:
- - name: gh
- downloads:
- - os:
- linux: linux
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.tar.gz
- strip_components: 1
- - os:
- windows: windows
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.zip
- strip_components: 1
- # macOS releases since 2.28.0 started using .zip instead of .tar.gz
- - os:
- macos: macOS
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.zip
- strip_components: 1
- version: ">=2.28.0"
- - os:
- macos: macOS
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.tar.gz
- strip_components: 1
-tools:
- definitions:
- - name: gh
- download: gh
- known_good_version: 2.27.0
- environment:
- - name: PATH
- list: ["${tool}/bin"]
- shims: [gh]
-```
-
-Note that for the downloaded archive, the binary named `gh` is inside the `bin` directory, so we use the environment to point the `$PATH` there.
-
-#### Download fields
-
-`strip_components`: This number of leading directory components to remove from all files in an archive when extracting.
-
-`rename_single_file`: If an archive contains a single file, this will cause that file to be renamed to the name of the tool. This is most useful for downloads of gzip'd binaries with the platform name in the binary.
-
-#### Package-based tools
-
-Package-based tools depend on specified `package` and `runtime` attributes. Here is an example of configuring `mypy` as a tool:
-
-```yaml
-tools:
- definitions:
- - name: mypy
- runtime: python
- package: mypy
- shims: [mypy]
- known_good_version: 0.931
- extra_packages:
- - types-six@1.16.21
- - types-request
-```
-
-`extra_packages` behaves equivalently to a package file like `requirements.txt` for Python or `package.json` for Node. They can be optionally pinned at versions.
-
-The version of the primary package (in this case, `mypy`) is specified in the `tools.enabled`. So to enable the `mypy` tool at `1.4.0`, list it as `- mypy@1.4.0`.
-
-If you don't want to include additional packages in the tool definition, you can instead make them explicit in the enabled section of your `.trunk/trunk.yaml` as you would for [linters](../../../linters/), for example:
-
-```yaml
-tools:
- enabled:
- - mypy@1.4.0:
- packages:
- - types-six@1.16.21
-```
-
-#### Runtime-based tools
-
-Runtime-based tools are a special case that are not explicitly defined. Rather, each runtime object exposes a set of `shims` (just like `tool` definitions).
-
-If the runtime is enabled and listed in `tools.runtimes`, then shims exposed by that runtime are automatically installed in the `.trunk/tools` directory alongside those of other tools (`trunk tools enable ` does that for you). Thus you can run `python`, `pip`, etc as `trunk`-managed tools.
-
-Example:
-
-```yaml
-tools:
- runtimes:
- - python
-```
-
-If this is disruptive to your workflow, simply remove the runtime's name `(go, node, python,...)` from `tools.runtimes` section or run `trunk tools disable ` which will handle it for you. Runtimes cannot be enabled or versioned via the `tools.enabled` section, however, and runtimes must be enabled in the `runtimes` section to be available to have their shims installed.
diff --git a/code-quality/overview/cli/getting-started/index.mdx b/code-quality/overview/cli/getting-started/index.mdx
deleted file mode 100644
index 041487d..0000000
--- a/code-quality/overview/cli/getting-started/index.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: "Code Quality CLI"
----
-Trunk provides command-line tools for different products. Choose your product below:
-
-* [Trunk Launcher Install](./install): Trunk uses a launcher to automatically install the appropriate CLI for your platform
-* [Trunk Code Quality CLI](./commands-reference/): commands reference
-* [Trunk Code Quality CLI Configuration](./configuration/): the Trunk CLI has its top-level config defined in `.trunk/trunk.yaml`
-* [Trunk Tools CLI](./tools): manage tools used by your repo
-* [Trunk Actions](./actions/): local workflow automation and githooks manager
-
-## Initializing Trunk in a git repo is as simple as running:
-
-```bash
-trunk init
-```
-
-This will scan your repository and create a `.trunk/trunk.yaml` file which enables all the linters, formatters, and security analyzers that [Trunk C](./code-quality)[ode Quality ](./code-quality)recommends.
-
-
-Security-conscious users may want to also record the signature of the CLI, which the [Trunk Launcher](./install#the-trunk-launcher) will use to verify the CLI's provenance:
-
-```
-trunk init --lock
-```
-
-
-### Tweak the configuration
-
-Trunk is completely controlled through the `trunk.yaml` file. If for example you are not using the `check` tool you can safely remove the `lint` section from the file.
-
-[Learn more about CLI configuration](./configuration/)
-
-### Single-player mode
-
-If you want to run `trunk` inside your repository but are not ready to roll it out team-wide, you can run `trunk` in what we call single-player mode.
-
-When in single-player mode, the `.trunk` directory will be listed in `.git/info/exclude`, which will cause git to ignore its contents. When trunk is automatically initialized by the VSCode extension, you will be started in this mode. You can also initialize this way explicitly with the `trunk init --single-player-mode` command. If at any time you wish to toggle single-player mode on or off, it can be done with the following two commands:
-
-```bash
-# Turn single-player mode on.
-trunk config hide
-```
-
-```bash
-# Turn single-player mode off.
-trunk config share
-```
-
-### Only enabling detected tools
-
-`trunk init` supports the flags `--only-detected-formatters` and `--only-detected-linters`. Each of these flags limits `trunk init` to only enable tools that we detect you are already using.
-
-We provide support for running `trunk` in GitHub Codespaces.
-
-[GitHub Codespaces](https://github.com/features/codespaces) are fully configured virtual containers for developing your GitHub repositories.
diff --git a/code-quality/overview/cli/getting-started/install.mdx b/code-quality/overview/cli/getting-started/install.mdx
deleted file mode 100644
index 9b42e71..0000000
--- a/code-quality/overview/cli/getting-started/install.mdx
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: "Install"
----
-### The Trunk launcher
-
-Trunk uses a launcher to automatically install the appropriate CLI for your platform. The launcher is a bash script that downloads the appropriate Trunk CLI version and runs it. The launcher invisibly runs the Trunk CLI version specified in a project's `.trunk/trunk.yaml` file. The actual Trunk CLI is a single binary that is cached locally in `~/.cache/trunk` and is updated automatically.
-
-### Install the launcher
-
-The Trunk CLI can be installed in many different ways, depending on your use case.
-
-#### Using NPM
-
-If your project uses a `package.json`, you can specify the Trunk Launcher as a dependency so your developers can start using Trunk after installing Node dependencies.
-
-
-```sh npm
-npm install -D @trunkio/launcher
-```
-```sh pnpm
-pnpm add -D @trunkio/launcher
-```
-```sh yarn
-yarn add -D @trunkio/launcher
-```
-```sh bun
-bun install -D @trunkio/launcher
-```
-
-
-Then add Trunk Launcher in your `package.json` as a script:
-
-```json
-{
- "scripts": {
- "trunk": "trunk",
- "lint": "trunk check",
- "fmt": "trunk fmt"
- }
-}
-```
-
-#### Using cURL
-
-You can install the Trunk Launcher script directly by downloading it through cURL. The launcher script supports both macOS and Linux environments.
-
-To allow your teammates to use `trunk` without installing anything, the launcher can be committed directly into your repo:
-
-```
-curl -LO https://trunk.io/releases/trunk
-chmod +x trunk
-git commit ./trunk -m "Commit Trunk to our repo"
-```
-
-When the launcher is called for the first time by your teammates, the Trunk Launcher will download, manage, and run the appropriate binary for the environment.
-
-#### Using Homebrew
-
-You can run the following command if you prefer to install this tool via homebrew. Keep in mind that other developers on your team will also have to install manually.
-
-```bash
-brew install trunk-io
-```
-
-#### Using Windows
-
-From **`git-bash` or `msys2`**, download the Bash launcher and add it to your `PATH`:
-
-```bash
-curl https://get.trunk.io -fsSL | bash
-```
-
-From **`powershell`**, download the powershell launcher:
-
-```
-Invoke-RestMethod -Uri https://trunk.io/releases/trunk.ps1 -OutFile trunk.ps1
-```
-
-Ensure you can execute powershell scripts:
-
-```
-Set-ExecutionPolicy Bypass -Scope CurrentUser
-```
-
-You can then execute trunk as `.\trunk.ps1`.
-
-#### Compatibility
-
-Trunk only supports Windows with the following versions and above:
-
-| Tool | Where to Modify | Minimum Required Version |
-|---|---|---|
-| CLI | `cli` `version` in `.trunk/trunk.yaml` | `1.13.0` |
-| Plugins | `ref` for the `trunk` plugin in `.trunk/trunk.yaml` | `v1.0.0` |
-| VSCode | Reload VSCode to update | `3.4.4` |
-
-You will also need to install [C and C++ runtime libraries](https://aka.ms/vs/17/release/vc_redist.x64.exe) in order to run some linters.
-
-### Uninstall instructions
-
-#### From your system
-
-Trunk has a very minimal installation, and therefore, there's not much to uninstall. The two system paths we use are:
-
-* `/usr/local/bin/trunk`: the [Trunk Launcher](./install#the-trunk-launcher)
-* `~/.cache/trunk`: cached versions of the trunk cli, linters, formatters, etc.
-
-You can delete those two paths to uninstall.
-
-#### From a repo
-
-To cleanly remove Trunk from a particular repo, run:
-
-```bash
-trunk deinit
-```
-
-#### VS Code extension
-
-To uninstall the Trunk VS Code extension, do so as you would any extension ([docs](https://code.visualstudio.com/docs/editor/extension-marketplace)). Then reload VS Code.
-
-### Binary download (not recommended)
-
-You can directly download the `trunk` binary. _We don't recommend this mode of operation because your ability to version the tool through_ `trunk.yaml` _will not function when launching_ `trunk` _directly from a downloaded binary._ Regardless you can bypass the launcher support by downloading the prebuilt binaries here:
-
-| variable | options |
-|---|---|
-| version | the semver of the binary you want to download |
-| platform | 'darwin`, 'linux' |
-
-```bash
-# for example https://trunk.io/releases/1.0.0/trunk-1.0.0-linux-x86_64.tar.gz
-https://trunk.io/releases/${version}/trunk-${version}-${platform}-x86_64.tar.gz
-```
-
-### Pre-installing tools
-
-Trunk hermetically manages all the tools that it runs. To do this, it will download and install them into its cache folder only when they are needed. If you would like to ensure that all tools are installed ahead of time, then you can use the `trunk install` command. This may be useful if you want to prepare to work offline or if you would like to include the tools in a docker image. On Linux and macOS you may find the cache folder at `$HOME/.cache/trunk`.
diff --git a/code-quality/overview/cli/getting-started/tools.mdx b/code-quality/overview/cli/getting-started/tools.mdx
deleted file mode 100644
index a065fae..0000000
--- a/code-quality/overview/cli/getting-started/tools.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: "Tools"
----
-You can use the Trunk CLI to manage tools used by your repo. Trunk CLI can install the tools needed for a project according to what's configured in the `trunk.yaml` config file and let your teammates easily install the same versions of the tools. Trunk will also help you expose those installed tools by dynamically adding them to your `PATH` when you enter the project directory, but will not pollute your `PATH` outside of the project.
-
-### Command line
-
-| trunk tools \ | Description |
-| -------------------------------- | ------------------------------------------------------------------------------ |
-| `list` | list all available tools in the repository and whether they are enabled or not |
-| `install` | install your enabled tools into `.trunk/tools` |
-| `enable` `[@version]` | enable the provided tool, optionally at a specified version |
-| `disable` `` | disable the provided tool |
-
-### Discovering tools
-
-The Trunk [plugins repo](https://github.com/trunk-io/plugins) ships with a collection of tools that can help supercharge your repository and provide examples for how to write your own. To see a list of tools that you can enable in your own repo run:
-
-```shell
-trunk tools list
-```
-
-
-.png)
-
-
-### Configuring shell hooks
-
-Before running any tools managed by Trunk, enable shell hooks. With shell hooks, Trunk can manage your path variable dynamically, which lets you install tools used only in specific repos without polluting your shell by installing global tools. This is especially useful if you work on two repos using the same tool, but locked to different versions.
-
-You can enable shell hooks by running `trunk shellhooks install`, which will install the Trunk hooks to the config file of your $SHELL. You can also run `trunk shellhooks install ` to install a specific shell hook.
-
-Supported shells:
-
-* bash
-* zsh
-* tcsh
-* fish
-* elvish
-
-For organizations that want to require the use of the hooks, they can add to the config file:
-
-```yaml
-# .trunk/trunk.yaml:
-version: 0.1
-cli:
- shell_hooks:
- enforce: true
-```
-
-On the next Trunk command (like check or fmt), it will update your shell RC file to load our hooks.
-
-After reloading your shell, whenever you're inside your repo at the command line, you can just run shims installed by `trunk tools` directly by name.
-
-N.B. There is a known incompatibility with direnv when using PATH\_ADD. To use our hooks, remove PATH\_ADD from your .envrc and add them to your Trunk config as such:
-
-```yaml
-version: 0.1
-cli:
- shell_hooks:
- path_add:
- - "${workspace}/tools"
-```
-
-Paths can either be absolute, or relative to the workspace using the special `${workspace}` variable.
-
-### Running tools
-
-With shell hooks enabled, you can just run your tools by their name. For example, if you have run `trunk tools install grpcui` to install the GRPC UI tool, you can run it with:
-
-```
-grpcui
-```
-
-#### Running tools without shell hooks
-
-Trunk installs your enabled tools into the `.trunk/tools` directory. Each tool exposes a list of **shims** (these may or may not be identically named to the tool - most typically a tool has one shim matching the name of the tool). Each shim is installed into the `.trunk/tools` directory.
-
-You can run your tools by referring to the path `/.trunk/tools/` but this is unwieldy. We highly recommend using our shell hooks to manage your PATH.
-
-### Troubleshooting linters
-
-Tools enable you to run your linter binaries on the command line independent of `trunk check` and test and troubleshoot your integrations more easily.
-
-Tools are configured in the `tools` section of `trunk.yaml`. As with other settings, you can override these values in your [User YAML](./configuration/per-user-overrides).
-
-```yaml
-tools:
- auto_sync: false # whether shims should be hot-reloaded off config changes.
- enabled:
- - bazel@6.0.0
- - mypy@1.4.1
- - ibazel@0.22.0
- - helm@3.9.4
- - eksctl@0.74.0
- - asciinema@2.1.0
- disabled:
- - gt
- definitions:
- - name: gh
- download: gh
- known_good_version: 2.27.0
- environment:
- - name: PATH
- list: ["${tool}/bin"]
- shims: [gh]
-```
-
-Like with actions and linters, we have a (versioned) `enabled` section and a `disabled` section, which can be manipulated using `trunk tools enable/disable`. There is also a list of `definitions`, which are merged across your `trunk.yaml`, `user.yaml`, as well as any plugins that you use.
-
-`auto_sync` controls whether or not Trunk automatically installs your tools for you when your config changes. This defaults to `true`. Note that the daemon must be running with the monitor in order for this to function properly.
diff --git a/code-quality/overview/deal-with-existing-issues.mdx b/code-quality/overview/deal-with-existing-issues.mdx
deleted file mode 100644
index 5e30e83..0000000
--- a/code-quality/overview/deal-with-existing-issues.mdx
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: "Local linting"
----
-After initializing Trunk, you can begin scanning for issues in your repo, and decide whether to fix them up front, fix them incrementally as you code, or ignore irrelevant suggestions. This page walks through the process of linting locally and fixing existing issues.
-
-### Running for the first time
-
-After initializing Trunk Code Quality, you can run **all tools** on **all files** to look for existing issues. You can run Trunk on **all files** in your repo with this command. This will output all issues detected by every linter enabled in your project.
-
-
-**Hold-the-line**
-
-You don't need to fix all issues upfront. Trunk lets you fix linter errors incrementally with hold-the-line.
-
-Learn more about [hold-the-line](./deal-with-existing-issues#hold-the-line).
-
-
-#### Issues in pull requests
-
-You can reproduce issues discovered in CI by running `trunk check` and addressing issues.
-
-If `trunk check` continues to identify new Code Quality issues on your PR, first try merging the latest changes from your base branch. Trunk will rebase your changes on top of the current `HEAD` in main to ensure it catches all issues before merging.
-
-If this continues to fail, then run `git checkout refs/pull//merge && trunk check`. This is a reference to the merge commit GitHub creates.
-
-### Hold-the-line
-
-After initializing Trunk, you can begin scanning for issues in your repo, and decide whether to fix them up front, fix them incrementally as you code, or ignore irrelevant suggestions. This page walks through the process of linting locally and fixing existing issues.
-
-If you **only want to prevent new issues** from new code changes, skip to [prevent-new-issues](./prevent-new-issues/ "mention").
-
-### Running for the first time
-
-After initializing Trunk Code Quality, you can run **all tools** on **all files** to look for existing issues. You can run Trunk on **all files** in your repo with this command. This will output all issues detected by every linter enabled in your project.
-
-```bash
-trunk check --all
-```
-
-
-**Trunk is Git aware**
-
-When you run `trunk check` without specifying `--all`, it will **only run on files you've modified according to git**. Remember to [specify a base branch](./initialize-trunk#initializing-trunk) if you're using something other than `main` or `master`.
-
-
-### Fixing existing issues
-
-There are different approaches to dealing with existing issues, such as running `format` and applying automatic fixes, ignoring irrelevant issues, and sampling linters/files. This section walks you through the process to make fixing issues easier.
-
-
-**Hold-the-line**
-
-You don't need to fix all issues upfront. Trunk lets you fix linter errors incrementally with hold-the-line.
-
-Learn more about [hold-the-line](./deal-with-existing-issues#hold-the-line).
-
-
-#### Running formatters and applying fixes
-
-Some issues can be fixed automatically. You can apply fixes by running the following command.
-
-```bash
-trunk check --all --fix
-```
-
-#### Overwhelmed by existing issues?
-
-You can also focus on the issues revealed by 1 linter at a time.
-
-```bash
-trunk check --all --filter=
-```
-
-If that still produces too many issues, you can sample your files, such as 1/5 files.
-
-```bash
-trunk check --all --filter= --sample=5
-```
-
-You can drill down further and run only one single file.
-
-```bash
-trunk check --all --filter= --sample=5
-```
-
-If you're still overwhelmed by the results, you can fix them incrementally as you change files. See the [hold-the-line](./deal-with-existing-issues#hold-the-line) section.
-
-#### Disabling linters
-
-Some recommended linters could be unnecessary for your project. You can disable and enable linters with these commands:
-
-```bash
-trunk check enable
-trunk check disable
-```
-
-#### Ignore issues
-
-If there are warnings that don't apply to your project, you can ignore them by line, by file, or by class of warnings in each linter's config file.
-
-You can tell Trunk Code Quality to ignore a line in your source code with a special comment like this:
-
-```cpp
-struct FooBar {
- // trunk-ignore(clang-tidy)
- void *ptr = NULL;
-};
-```
-
-The comment should contain the name of the linter you want to ignore the following line, in this case `clang-tidy` For more complex ignore commands, see [Ignoring Issues](./linters/ignoring-issues-and-files).
-
-Sometimes you may want to ignore entire files or groups of files, such as generated code. To ignore them, use the `ignore` key to your `.trunk/trunk.yaml` file:
-
-```yaml
-lint:
- ignore:
- - linters: [ALL]
- paths:
- # Ignore generated files
- - src/generated/**
-```
-
-You can also ignore an entire class of warnings using the config file of your linter, either at the project root or in `.trunk/configs`
-
-For example, these are the ignores for Markdownlint in `.trunk/configs/.markdownlint.yaml`:
-
-```yaml
-# Prettier friendly markdownlint config (all formatting rules disabled)
-extends: markdownlint/style/prettier
-MD024: false
-MD033: false
-MD034: false
-```
-
-#### Issues in pull requests
-
-You can reproduce issues discovered in CI by running `trunk check` and addressing issues.
-
-If `trunk check` continues to identify new Code Quality issues on your PR, first try merging the latest changes from your base branch. Trunk will rebase your changes on top of the current `HEAD` in main to ensure it catches all issues before merging.
-
-If this continues to fail, then run `git checkout refs/pull//merge && trunk check`. This is a reference to the merge commit GitHub creates.
-
-### Hold-the-line
-
-You don't need to fix all the issues. Trunk Code Quality has the ability to _**Hold The Line**_, which means it only lints your git diffs; only what you changed on your branch gets linted. The pre-existing issues can be managed later.
-
-This allows you to clean up as you go, preventing new issues and letting your team leave each file with better code quality than before.
-
-When you've fixed the existing issues you want to fix, you can skip to [prevent-new-issues](./prevent-new-issues/ "mention") directly.
diff --git a/code-quality/overview/debugging.mdx b/code-quality/overview/debugging.mdx
deleted file mode 100644
index 50fdfda..0000000
--- a/code-quality/overview/debugging.mdx
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: "Debugging"
----
-## Why aren't issues showing up anymore?
-
-If you aren’t seeing any issues the likely cause is that your local repo is clean. By default Trunk Code Quality only processes new changes to your codebase (read about [hold-the-line](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line)).
-
-You can use `trunk check` to scan for older, pre-existing lint issues.
-
-For example, to look at a sampling of each linter's issues for 5 random files:
-
-```sh
-trunk check --samples=5
-```
-
-You can also scan all files using `--all`:
-
-```sh
-trunk check --all
-```
-
-[Read our docs for more information on CLI options](./deal-with-existing-issues#fixing-existing-issues).
-
-## My linters are failing or not running as expected
-
-When your linters aren’t working the way you expect, first check their configuration. Trunk’s [list of supported linters](./linters/supported/) provides some specific tips for certain linters. You can see the full default configuration of every linter in [Trunk’s public plugin repo](https://github.com/trunk-io/plugins/tree/main).
-
-You can also try running `trunk check --verbose` to see what’s going on under the hood. If that still doesn’t work then please reach out to us on [our community Slack](https://trunkcommunity.slack.com/ssb/redirect) with the output of `trunk check --verbose`.
-
-## Why does Trunk take up so much disk space?
-
-Trunk Code Quality uses hermetically versioned tools, which means it downloads a separate copy of the tools and runtime for each tool version. Over time, as tools are upgraded, this can leave a lot of unnecessary files in the cache directory. Trunk is working on a way to automatically remove unneeded files from the cache. In the meantime, you can safely clear your cache with
-
-```
-trunk cache clean --all
-```
-
-then run `trunk install` again in your repos.
-
-## How do I make a linter work with a different file type?
-
-Every linter defines a set of file types that it wants to work with in a section of the YAML called `files`. To change this you need to override the files section of that linter’s definition. [More linter application file types](./getting-started/configuration/lint/files-and-caching#applicable-filetypes).
-
-Suppose you are using the **foo-linter** which normally runs on `foo` files. The config might look like this:
-
-```yaml
-lint:
- files:
- - name: foo
- extensions: [foo]
- definitions:
- - name: foo-linter
- files: [foo]
- commands:
- - name: lint
- output: pass_fail
- run: echo “foo”
- success_codes: [0, 1]
-```
-
-To add support for `bar` files add this to your `trunk.yaml` file. The first part defines the `bar` file type, and the second says that `foo-linter` uses both `foo` and `bar` files.
-
-```yaml
-lint:
- files:
- - name: bar
- extensions: [bar]
-...
-
- definitions:
- - name: foo-linter
- files:
- - foo
- - bar
-```
-
-## How can I disable trunk on a commit for just me, but keep it on for the rest of my team?
-
-If you prefer to never run Trunk on commit and push you can disable it just for you. Edit or create the `.trunk/user.yaml` file and change the `actions.disabled` section to look like this:
-
-```yaml
-version: 0.1
-actions:
- disabled:
- - trunk-check-pre-push
- - trunk-fmt-pre-commit
-
-```
-
-This will disable the checks for just the current user. The `.trunk/user.yaml` file is specifically gitignored but will be loaded locally if present.
-
-## What should I do if a linter process seems to take longer than expected during a Trunk check?
-
-There are two main strategies to address this issue: **configuring timeouts** and **ignoring certain files**.
-
-**Timeout Configuration**
-
-Each linter integrated with Trunk Code Quality has a default timeout of 10 minutes to prevent processes from running indefinitely. If a linter exceeds this time frame, Trunk Code Quality will automatically terminate the process and notify you of the timeout.
-
-To adjust the timeout duration for a specific linter, you can modify its `run_timeout` setting in your configuration. For example:
-
-```yaml
-lint:
- definitions:
- - name: clang-tidy
- run_timeout: 5m
-```
-
-Timeouts can be specified using `s` for seconds, `m` for minutes, or `h` for hours, allowing you to tailor the behavior to your project's needs. More on [linter timeouts](./linters/configure-linters#timeout).
-
-**Ignoring Files**
-
-Certain files, particularly those that are auto-generated, may not require linting and can significantly extend the duration of checks. To exclude these from being checked, use the `ignore` key in your configuration:
-
-```yaml
-lint:
- ignore:
- - linters: [ALL]
- paths:
- # Ignore generated files
- - src/generated/**
- # Except for files ending in .foo
- - !src/generated/**/*.foo # Test data
- - test/test_data
-```
-
-This approach lets you specify which linters to ignore for particular paths, optimizing the check process and focusing on relevant files. [More details on ignoring files](./linters/).
-
-## `trunk init` says "Trunk can only init if it's run at the root of a git repo"
-
-Trunk requires that you run `trunk init` from the root of a git repository. Trunk is git-aware, and relies on git to understand which files are modified, gitignored, and more.
-
-If you see this message, it means that you are not in the root directory of a git repository. If you are in a git worktree, Trunk _does_ support worktrees. Your worktree may be in a broken state, try running `git worktree repair` and then `trunk init` again.
diff --git a/code-quality/overview/getting-started/actions/git-hooks.mdx b/code-quality/overview/getting-started/actions/git-hooks.mdx
deleted file mode 100644
index 786e0eb..0000000
--- a/code-quality/overview/getting-started/actions/git-hooks.mdx
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: "Git Hooks"
-description: "Trunk supports triggering actions on all githooks"
----
-### Features
-
-* Seamlessly bring `git-hooks` under version control. `git-hooks` can be a major headache for organizations - they require manual installation and are not easily versioned along with the rest of your code.
-* Take advantage of Trunk's powerful sandboxing and environment management to write and execute hooks using the programming language and runtime of your choice, as opposed to dealing with complicated bash scripts.
-
-### Manual installation
-
-```bash
-trunk git-hooks sync
-```
-
-### Automatic Installation
-
-Trunk will automatically install and begin managing your `githooks` if you have any actions enabled in `trunk.yaml` which trigger from git events.
-
-### Triggering an action from a githook
-
-As an example let's examine how we implement the `git-lfs` action in the [plugins repo](https://github.com/trunk-io/plugins).
-
-#### Definition
-
-```yaml
-- id: git-lfs
- display_name: Git LFS
- description: Git LFS hooks
- run: git lfs "${hook}" "${@}"
- triggers:
- - git_hooks: [post-checkout, post-commit, post-merge, pre-push]
-```
-
-#### Template resolution
-
-As documented by [git](https://git-scm.com/docs/githooks), each githook generates a variable number of parameters that can be referenced in the `run` entry for the action.
-
-The following special variables are made available for template resolution when reacting to a git event:
-
-| Variable | Description |
-| ----------------------------- | --------------------------------------------------------------- |
-| `${hook}` | Hook that triggered this action (e.g. `pre-commit`, `pre-push`) |
-| `${1}`,`${2}`, `${3}`, etc... | Positional parameters passed by `git` to the hook |
-| `${@}` | All parameters passed to the hook |
-
-#### Interactivity
-
-```yaml
-interactive: true
-```
-
-Setting `interactive` to true will allow your githook action to be run from an interactive terminal. This enables you to write more complicated hooks to react to user input.
-
-#### Testing a `githook` action
-
-The following command will simulate a githook event and execute all of the enabled actions for the provided hook in the order you defined them.
-
-```bash
-trunk git-hooks callback --
-```
-
-Alternatively, once an action is enabled you can call `git` and debug with the actual `git` provided data. This is sometimes easier since some git parameters point to txt files and fabricating those formats through manual testing can be tricky.
-
-#### Debugging a `githook` action
-
-You can observe the actions that are triggered by a `git` event by calling:
-
-```bash
-trunk actions history
-```
-
-Which will print out the last 10 executions including timestamps of the specified action \\
-
-
-.png)
-
-
-### Uninstalling
-
-Remove all actions that are triggered by githooks from `trunk.yaml` and run
-
-```bash
-git config --unset core.hooksPath
-```
diff --git a/code-quality/overview/getting-started/actions/index.mdx b/code-quality/overview/getting-started/actions/index.mdx
deleted file mode 100644
index 1295770..0000000
--- a/code-quality/overview/getting-started/actions/index.mdx
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: "Actions"
----
-The most common Trunk Actions are provided out of the box with trunk, and are triggered to invisibly autoformat (`trunk fmt`) your commits every time you `git commit`, and run `trunk check` when you `git push`.
-
-### Triggers
-
-There are several different types of Trunk Actions, based on when they are triggered:
-
-| Trigger | Description |
-|---|---|
-| time-based | run on a schedule (once per hour, once per day, once per week) |
-| file modification | run whenever a file or directory in your repo changes. |
-| [githooks](./git-hooks) | run whenever a listed githook event fires (e.g. pre-commit, on-push) |
-| manual | `trunk run ` |
-
-### **Command line**
-
-| trunk actions \ | Description |
-|---|---|
-| `list` | list all available actions in the repository |
-| `history ` | print the history for execution of the provided action |
-| `enable ` | enable the provided action |
-| `disable ` | disable the provided action |
-| `run ` | manually trigger the provided action alias: `trunk run ` |
-
-### Discovering actions
-
-The trunk [plugins](https://github.com/trunk-io/plugins) repo ships with a collection of actions that can help supercharge your repository and provide examples of how to write your own actions. To see a list of actions that you can enable in your repo run:
-
-```bash
-trunk actions list
-```
-
-
-.png)
-
-
-### Enable/Disable actions
-
-Trunk only runs actions listed in the `enabled` section of your `trunk.yaml`. Some built-in actions are enabled by default and can be disabled explicitly by adding them to the disabled list. You can always run `trunk actions list` to check the enabled status of an action.
-
-```yaml
-actions:
- enabled:
- - trunk-announce
- - git-lfs
- - trunk-check-pre-push
- - trunk-fmt-pre-commit
- - trunk-cache-prune
- - trunk-upgrade-available
-```
diff --git a/code-quality/overview/getting-started/announce.mdx b/code-quality/overview/getting-started/announce.mdx
deleted file mode 100644
index 351b648..0000000
--- a/code-quality/overview/getting-started/announce.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Announce"
----
-### Trunk Announce
-
-Does your Git commit carry some important information to share with the rest of your organization? Now you can easily share it with the rest of the org by including `/trunk announce` at the beginning of one of the lines of your commit message.
-
-
-If your org squashes commit messages, you should put it in your PR description
-
-
-Any additional text on that line will form an optional title, and the remaining text of the commit message will form the commit body (both are optional, but either a title or body is required). These will then be displayed to other users when they pull or rebase.
-
-### Enable Trunk Announce
-
-Trunk Announce is a githook-triggered Trunk Action. You can enable this Trunk Action by running this command:
-
-```
-trunk actions enable trunk-announce
-```
-
-### Viewing Announcements
-
-When you pull new changes, new announcements are automatically shown.
-
-If you would like to see changes since some commit, use `trunk show-announcements since `.
-
-For example:
-
-```
- trunk show-announcements since HEAD~1
-```
diff --git a/code-quality/overview/getting-started/caching.mdx b/code-quality/overview/getting-started/caching.mdx
deleted file mode 100644
index 42fa831..0000000
--- a/code-quality/overview/getting-started/caching.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "Caching"
----
-Trunk hermetically manages all the tools that it runs. To do this, it will download and install them into its cache folder only when needed. On Linux and macOS you may find the cache folder at `$HOME/.cache/trunk`.
-
-### Viewing your repo's cache
-
-If you need to debug your repo's cache, you can find its location by running the cache command.
-
-```
-trunk cache
-```
-
-### Cleaning cache
-
-Trunk will automatically clean up downloads that have not been used in a while, such as old versions of tools and linters.
-
-If you want to manually prune files in your cache directory that are no longer needed, you can run this command:
-
-```
-trunk cache prune
-```
-
-If you need to clean your entire cache manually, you can use the command:
-
-```sh
-trunk cache clean --all
-```
-
-Remember to rerun the install command to reinstall the necessary tools and linters.
-
-```
-trunk install
-```
diff --git a/code-quality/overview/getting-started/code-quality.mdx b/code-quality/overview/getting-started/code-quality.mdx
deleted file mode 100644
index cf3d738..0000000
--- a/code-quality/overview/getting-started/code-quality.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "Code Quality"
-description: "CLI Metalinter and VSCode extension for over 100 code checking tools."
----
-
-Available as a CLI tool and VSCode extension, Code Quality is a separate from the Trunk Platform for CI Stability, which includes [Merge Queue](../../broken-reference/) and [Flaky Tests](../../broken-reference/). Code Quality runs entirely locally and does not require access to the Trunk web app or platform services.
-
-
-Trunk Code Quality is a **metalinter** that lets you lint every language and every file in your project with a single tool using 100+ supported idiomatic code-checking tools, such as ESLint, Prettier, Ruff, and more for every language and project.
-
-Trunk Code Quality is trusted by popular open-source projects like [**ESLint**](https://eslint.org/) to improve their developer experience. [Learn more about how ESLint leverages Code Quality in their repos](https://trunk.io/blog/improving-linting-experience-in-eslint-s-open-source-repo-with-trunk-code-quality).
-
-### What is Code Quality?
-
-
-
- A tour of Code Quality, what it does, its key features, and its components.
-
-
- How Code Quality works under the hood to level up your linting experience.
-
-
- What makes Trunk Code Quality different from other metalinters.
-
-
- Browse the 100+ supported static analysis tools to lint, format, and secure your projects.
-
-
-
-### How do I get started?
-
-
-
-
-
-
-
diff --git a/code-quality/overview/getting-started/commands-reference/actions.mdx b/code-quality/overview/getting-started/commands-reference/actions.mdx
deleted file mode 100644
index be1cb78..0000000
--- a/code-quality/overview/getting-started/commands-reference/actions.mdx
+++ /dev/null
@@ -1,202 +0,0 @@
----
-title: "Actions"
----
-### Trunk Actions
-
-`trunk actions`: Workflow automation for your repo.
-
-#### **Usage** **example**
-
-```
-trunk actions [options] [subcommand]
-```
-
-#### Options
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions run
-
-`trunk actions run`: Run a specified trunk action. **Usage** **bash**
-
-```
-trunk actions run [options]
-```
-
-#### **Options**
-
-* `--nolog`: Don't create a log file for the action run
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-* `--name `: Specify the name of the Trunk action to be executed
-* `--branch `: Run the action on a specific branch
-* `--retry `: Number of times to retry the action on failure
-
-### Trunk Actions history
-
-`trunk actions history`: View the history of Trunk actions.
-
-#### **Usage** example
-
-```
-trunk actions history [options]
-```
-
-#### **Options**
-
-* `--count`: Number of logs to show
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions list
-
-`trunk actions list`: List all Trunk actions.
-
-#### **Usage** example
-
-```
-trunk actions list [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions enable
-
-`trunk actions enable`: Enable a specified Trunk action.
-
-#### **Usage** example
-
-```
-trunk actions enable [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Actions disable
-
-`trunk actions disable`: Disable a specified Trunk action.
-
-#### **Usage** example
-
-```
-trunk actions disable [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### Trunk Shellhooks
-
-`trunk shellhooks`: Let Trunk manage your shell hooks similar to `direnvs` trunk shellhooks install \
-
-#### **Usage** example
-
-```
-trunk shellhooks install [options]
-```
-
-### Trunk Git Hooks
-
-`trunk git-hooks sync`: Sync githooks with what's defined in `trunk.yaml`
-
-#### **Usage** example
-
-```
-trunk git-hook sync [options]
-```
-
-### Trunk show announcements since a commit
-
-**`trunk show-announcements since`**: Show announcements since a specified commit
-
-#### **Usage** example:
-
-```sh
-trunk show-announcements since --commit abc123
-```
-
-#### **Options**:
-
-* `--color`: Enable/disable color output
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--no-progress`: Don't show progress updates
-* `--ci`: Run in continuous integration mode
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--version`: The version
-
-### **Trunk show announcements post-merge**
-
-**`trunk show-announcements post-merge`**: Run on git pull/merge, usually run by a git-hook and not directly.
-
-**Usage Example**:
-
-```sh
-trunk show-announcements post-merge --verbose
-```
-
-### **Trunk show announcements pre-rebase**
-
-**`trunk show-announcements pre-rebase`**: Run on git pre-rebase, usually run by a git-hook and not directly.
-
-#### **Usage** example:
-
-```sh
-trunk show-announcements pre-rebase [options] [branch-refs...]
-```
-
-### **Trunk show announcements post-checkout**
-
-**`trunk show-announcements post-checkout`**: Run on git checkout/switch, usually run by a git-hook and not directly.
-
-#### **Usage** example::
-
-```sh
-trunk show-announcements post-checkout [options] [branch-refs...]
-```
diff --git a/code-quality/overview/getting-started/commands-reference/code-quality.mdx b/code-quality/overview/getting-started/commands-reference/code-quality.mdx
deleted file mode 100644
index ac50dd6..0000000
--- a/code-quality/overview/getting-started/commands-reference/code-quality.mdx
+++ /dev/null
@@ -1,172 +0,0 @@
----
-title: "Code Quality"
----
-### trunk check
-
-`trunk check`: Universal code checker.
-
-#### **Usage** **example**
-
-```
-trunk check [options]
-```
-
-#### Filtering options
-
-* `-a, --all`: Check all files instead of only changed files
-* `--sample`: Run each linter on N files
-* `--filter`: Comma-separated list of linters and/or issue codes to include or exclude
-* `--exclude`: Shorthand for an inverse --filter
-* `--scope`: Scope of checks to run \{all | security}
-* `--ignore`: Glob pattern to exclude files from linting
-* `--force`: Run on all files, even if ignored
-* `--include-existing-autofixes`: Include existing issues that can be autofixed
-
-#### **CI** options
-
-* `--ci`: Run in non-interactive mode designed for CI environments
-* `-j`, `--jobs`: Number of concurrent jobs
-
-#### Git Hooks options
-
-* `--index`: Run linter on git-indexed files
-* `--index-file`: Run linter on git-indexed files based on specified index
-* `--commit-ref`: Commit ref to lint (instead of current working tree)
-* `--commit-ref-from-pre-push`: Commit ref to lint from the stdin of a pre-push git hook (instead of the current working tree)
-
-#### Output options
-
-* `--show-existing`: Show existing issues otherwise hidden by
-* `--print-failures`: Print any failures that occur
-* `--diff`: Diff printing mode \{none | compact | full}
-* `-v, --verbose`: Show verbose output for debugging purposes
-* `--debug`: Show debug output
-
-#### Behavior options
-
-* `-y, --fix`: Automatically apply all fixes without prompting
-* `-n, --no-fix`: Don't automatically apply fixes
-* `--cache`: Disable to skip cache for all check actions
-* `--ignore-git-state`: Run linters even if a merge, rebase, or revert is in progress
-* `--upstream`: Upstream branch used to compute changed files
-
-### Trunk Check Enable Linter
-
-`trunk check enable`: Enable linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk check enable [options]
-```
-
-### Trunk Check Disable Linter
-
-`trunk check disable`: Disable linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk check disable [options]
-```
-
-### Trunk Check List Linters
-
-`trunk check list`: List linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk check list [options]
-```
-
-### Trunk Check Run Format
-
-`trunk fmt`: List linters for trunk check.
-
-#### **Usage** **example**
-
-```
-trunk fmt [options]
-```
-
-#### **Options**
-
-#### Filtering options
-
-* `-a, --all`: Check all files instead of only changed files
-* `--filter`: Comma-separated list of linters and/or issue codes to include or exclude
-* `--exclude`: Shorthand for an inverse --filter
-* `--scope`: Scope of checks to run \{all | security}
-* `--ignore`: Glob pattern to exclude files from linting
-* `--force`: Run on all files, even if ignored
-* `--show-existing`: Show existing issues otherwise hidden by [hold-the-line](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line)
-* `--ignore-git-state`: Run linters even if a merge, rebase, or revert is in progress
-
-#### Git Hooks options
-
-* `--index`: Run linter on git-indexed files
-* `--index-file`: Run linter on git-indexed files based on specified index
-* `--commit-ref`: Commit ref to lint (instead of current working tree)
-* `--commit-ref-from-pre-push`: Commit ref to lint from the stdin of a pre-push git hook (instead of the current working tree)
-
-#### Output options
-
-* `--show-existing`: Show existing issues otherwise hidden by
-* `--print-failures`: Print any failures that occur
-* `--diff`: Diff printing mode \{none | compact | full}
-* `-v, --verbose`: Show verbose output for debugging purposes
-* `--debug`: Show debug output
-
-#### Behavior options
-
-* `-y, --fix`: Automatically apply all fixes without prompting
-* `-n, --no-fix`: Don't automatically apply fixes
-* `--cache`: Disable to skip cache for all check actions
-* `--ignore-git-state`: Run linters even if a merge, rebase, or revert is in progress
-* `--upstream`: Upstream branch used to compute changed files
-* `-j`, `--jobs`: Number of concurrent jobs
-
-## Advanced Trunk Check features
-
-| Options & Flags | Explanation |
-| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `--root` | Explicitly set the root of the repository to run against |
-| `--upstream` | Specify the upstream branch used to calculate new vs existing issued. |
-| `--trigger` | Supports running trunk check from inside a git hook. Options are manual (default), git-push, git-commit. Controls whether the check returns early and its interactivity. |
-| `--output=format` | Output results in specified format: `text` (default) or `json` |
-| `--output-file=FILE` | Write json results to specified file |
-
-#### --filter
-
-`--filter` argument allows you to restrict `trunk check` to a subset of the linters enabled in your repository.
-
-For example, to run `eslint` and `isort` on the entire repo:
-
-```bash
-trunk check --all --filter=eslint,isort
-```
-
-Alternatively, to run every linter _except_ `clang-tidy` and `shellcheck`:
-
-```bash
-trunk check --all --filter=-clang-tidy,-shellcheck
-```
-
-#### --sample
-
-`--sample=N` will attempt to run every enabled linter against the requested number of files. The goal of the `sample` flag is to test the setup of the linters in your repository as well as any specific configuration they might honor.
-
-The sample command will attempt to run each linter N times, but may run fewer if not enough applicable files exist in your set of files to lint. `--sample=N` can be combined with any other set of options for `trunk check`.
-
-For example, to run `prettier` against 10 different prettier supported files:
-
-```bash
-trunk check --sample=10 --filter=prettier
-```
-
-Alternatively, to run every linter at most 5 times against its supported files:
-
-```bash
-trunk check --sample=5
-```
diff --git a/code-quality/overview/getting-started/commands-reference/index.mdx b/code-quality/overview/getting-started/commands-reference/index.mdx
deleted file mode 100644
index c9a65d9..0000000
--- a/code-quality/overview/getting-started/commands-reference/index.mdx
+++ /dev/null
@@ -1,217 +0,0 @@
----
-title: "Commands reference"
----
-### trunk init
-
-`trunk init`: Set up trunk in this repo.
-
-#### **Usage** Example
-
-```
-trunk init
-```
-
-### trunk version
-
-`trunk version`: Output the version.
-
-#### **Usage** example
-
-```
-trunk version
-```
-
-### trunk upgrade
-
-`trunk upgrade`: Upgrade Trunk and its linters to the latest releases.
-
-#### **Usage** **example**
-
-```
-trunk upgrade [options]
-```
-
-#### **Options**
-
-* `-y, --yes-to-all`: Answer yes to all upgrade prompts
-* `-n, --no-to-all`: Answer no to all upgrade prompts
-* `--apply-to`: Apply upgrades to a specified file
-* `--filter`: Filter the upgraded linters
-* `--dry-run`: Detect available upgrades, but do not apply changes
-
-### trunk login
-
-`trunk login`: Login to trunk.io.
-
-#### **Usage** example
-
-```
-trunk login
-```
-
-### trunk logout
-
-`trunk logout`: Logout from trunk.io.
-
-#### **Usage** example
-
-```
-trunk logout
-```
-
-### trunk plugins add
-
-`trunk plugins add`: Add a plugin by URI.
-
-#### **Usage** example
-
-```
-trunk plugins [uri] [ref] [options]
-```
-
-### trunk tools
-
-`trunk tools`: Universal tool manager.
-
-#### **Usage** example
-
-```
-trunk tools [options]
-```
-
-### trunk daemon status
-
-Report the status of the daemon.
-
-#### **Usage** example
-
-```
-trunk daemon status
-```
-
-### trunk daemon start
-
-Start the trunk daemon in the background if it’s not already running.
-
-#### **Usage** example
-
-```
-trunk daemon start
-```
-
-### **trunk daemon shutdown**
-
-`trunk daemon shutdown`: Shutdown the trunk daemon if it is running.
-
-#### **Usage** example
-
-```
-trunk daemon shutdown
-```
-
-### **trunk daemon launch**
-
-`trunk daemon launch`: Start the trunk daemon in the foreground if it’s not already running.
-
-#### **Usage** example
-
-```
-trunk daemon launch
-```
-
-### trunk whoami
-
-`trunk whoami`: print who you're logged in as
-
-#### **Usage** example
-
-```
-trunk whoami
-```
-
-### trunk deinit
-
-`trunk deinit`: Deinitialize Trunk in your repo
-
-#### **Usage** example
-
-```
-trunk deinit [options]
-```
-
-#### **Options**
-
-* `-y`, `--yes`: Proceed unconditionally
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
-
-### trunk config share
-
-`trunk config share`: Remove Trunk config files from your local git ignores.
-
-#### **Usage** example
-
-```
-trunk config share
-```
-
-### trunk config hide
-
-`trunk config hide`: Add Trunk config files to your local git ignores.
-
-#### **Usage** example
-
-```
-trunk config hide
-```
-
-### trunk config print
-
-`trunk config print`: Print the resolved trunk config.
-
-#### **Usage** example
-
-```
-trunk config print
-```
-
-### trunk cache clean
-
-`trunk cache clean`: Clean cached files used by Trunk.
-
-#### **Usage** Example
-
-```
-trunk cache clean
-```
-
-### trunk cache prune
-
-`trunk cache prune`: Prune unused cached files.
-
-#### **Usage** example
-
-```
-trunk cache clean
-```
-
-### trunk install
-
-`trunk install`: Download & install enabled runtimes/linters.
-
-#### **Usage** example
-
-```
-trunk install [options]
-```
-
-#### **Options**
-
-* `--version`: The version
-* `--monitor`: Enable the trunk daemon to monitor file changes in your repo
-* `--ci`: Run in continuous integration mode
-* `--no-progress`: Don't show progress updates
-* `--ci-progress`: Rate limit progress updates to every 30s (implied by `--ci`)
-* `--action_timeout`: Timeout for downloads, lint runs, etc.
-* `-v`, `--verbose`: Output details about what's happening under the hood
-* `--color`: Enable/disable color output
diff --git a/code-quality/overview/getting-started/compatibility.mdx b/code-quality/overview/getting-started/compatibility.mdx
deleted file mode 100644
index 6d41400..0000000
--- a/code-quality/overview/getting-started/compatibility.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: "Compatibility"
----
-### Linux
-
-Trunk will run on most Linux flavors, including Ubuntu, Arch, and others. We do require glibc version 2.19 or later. Alpine Linux is not supported.
-
-### macOS
-
-Trunk will run on macOS version 10.15 or later.
-
-### Windows
-
-Trunk only supports Windows with the following versions and above:
-
-| Tool | Where to Modify | Minimum Required Version |
-|---|---|---|
-| CLI | `cli` `version` in `.trunk/trunk.yaml` | `1.13.0` |
-| Plugins | `ref` for the `trunk` plugin in `.trunk/trunk.yaml` | `v1.0.0` |
-| VSCode | Reload VSCode to update | `3.4.4` |
-
-You will also need to install [C and C++ runtime libraries](https://aka.ms/vs/17/release/vc_redist.x64.exe) to run some linters.
-
-#### Getting in touch
-
-Thank you for being a beta tester of Trunk Check on Windows! We are actively working to improve the experience. If you have any feedback or questions, please contact us directly on [Slack](https://slack.trunk.io/).
-
-If you want to override a repo-wide setting just for your Windows machine, you can modify your [`.trunk/user.yaml`](./configuration/per-user-overrides).
-
-#### Supported features
-
-We intend to bring full feature support to Windows for Trunk. Currently, the following features are supported:
-
-* [Trunk Code Quality](./code-quality)
-* Non-interactive [Trunk Actions](./actions/) and [git-hooks](./actions/git-hooks)
-* [VSCode](../ide-integration/vscode)
-
-### Plugin compatibility
-
-
-This section was last updated for Plugins v1.2.0
-
-
-Trunk runs most linters on all platforms. However, some linters are not yet supported on Windows. For a full list of all linters, see our [Plugins repo](https://github.com/trunk-io/plugins).
-
-| Linter | Plans for Support |
-|---|---|
-| ansible-lint | Only supported on WSL |
-| clang-format | Long-term plans for LLVM linter support |
-| clang-tidy | Long-term plans for LLVM linter support |
-| detekt-gradle | Long-term plans for support |
-| include-what-you-use | Long-term plans for LLVM linter support |
-| nixpkgs-fmt | Long-term plans for support |
-| perlcritic | No immediate plans for support |
-| perltidy | No immediate plans for support |
-| scalafmt | No download available for Windows |
-| semgrep | No download available for Windows |
-| shellcheck | No download available for Windows |
-| stringslint | Only supported on MacOS |
-| swiftformat | Only supported on MacOS |
-| swiftlint | Only supported on MacOS |
-| taplo | No download available for Windows |
-
-### Backward compatibility
-
-We generally strive to maintain backward compatibility between the [Trunk Launcher](./install#the-trunk-launcher) and the Trunk binary, but you may need to occasionally upgrade the launcher to support the newest version of Trunk.
diff --git a/code-quality/overview/getting-started/configuration/actions/index.mdx b/code-quality/overview/getting-started/configuration/actions/index.mdx
deleted file mode 100644
index f28ca1d..0000000
--- a/code-quality/overview/getting-started/configuration/actions/index.mdx
+++ /dev/null
@@ -1,156 +0,0 @@
----
-title: "Actions"
----
-Actions are defined and enabled in the `actions` section of `trunk.yaml`.
-
-Here is an example of the actions section of `trunk.yaml`. If you are curious what your resolved configuration for actions looks like, run `trunk config print`.
-
-```yaml
-actions:
- enabled:
- - trunk-announce
- - trunk-upgrade-available
- - npm-install
- - seed-database
- - custom-git-hook
- - login
- definitions:
- - id: npm-install
- triggers:
- - files: [package.json]
- run: npm install
- - id: seed-database
- triggers:
- - schedule: 24h
- run: python3 seed_database.py
- runtime: python
- run_from: utils
- packages_file: requirements.txt
- - id: custom-git-hook
- triggers:
- - git_hooks: [pre-push, pre-commit]
- run: my_script.sh
- - id: login
- run: my_complicated_login_script.sh
- interactive: true
-```
-
-### Action Definitions
-
-Now we'll walk through the process of creating your own action.
-
-Actions are required to have a `id` and `run` command.
-
-The command will implicitly run relative to your workspace, but you can also specify a `run_from` if you'd prefer to execute from a sub-directory.
-
-#### Runtime management
-
-We sandbox action executions and allow you to control the runtime. You can do this by specifying a `runtime` and `packages_file`.
-
-You can specify one of our built-in runtimes (`node`, `python`, ...) or a system runtime that you define. See the [runtimes documentation](../runtimes) for more information.
-
-For the `python` and `node` runtimes, we additionally provide the ability to install a requirements file like `requirements.txt` or `package.json`.
-
-### Triggers
-
-You can run actions manually, or you can also provide a set of triggers so that actions run in response to some event. They are documented below.
-
-#### Manual runs
-
-You may run an action manually by running `trunk run ` or `trunk actions run `.
-
-For manually triggered runs, we support the `${@}` and `${pwd}` variables for template resolution in the `run` declaration. `${@}` will be replaced with the arguments passed to the action, and `${pwd}` will be replaced with the directory the action is triggered from.
-
-```yaml
-id: my-action
-run: echo "The action was run from ${pwd} with arguments ${@}"
-```
-
-#### Time-based triggers
-
-We provide the ability to run actions in the background on a schedule.
-
-Under `triggers`, you can add one or more `schedule` entries. For example:
-
-```yaml
-id: my-action
-triggers:
- - schedule: 1d
-```
-
-The `schedule` entry should be in the Duration format specified [here](https://pkg.go.dev/time#ParseDuration). The action will be run once per `duration`.
-
-This is a short-hand for specifying schedule as an object. You can also write:
-
-```yaml
-id: my-action
-triggers:
- - schedule:
- interval: 1d
-```
-
-The action may occasionally run more often than the specified duration depending on the Trunk daemon's lifetime.
-
-If you wish to stagger the execution of an action from others on a similar schedule, you may use the `delay` field:
-
-```yaml
-id: my-action
-triggers:
- - schedule:
- interval: 1d
- delay: 1h
-```
-
-You may also use cron syntax:
-
-```yaml
-nid: my-action
- triggers:
- # run every 2 hours
- - schedule: "0 0 */2 * * ?"
-```
-
-or equivalently:
-
-```yaml
- id: my-action
- triggers:
- # run every 2 hours
- - schedule:
- cron: "0 0 */2 * * ?"
-```
-
-#### File-based triggers
-
-We provide the ability to run actions automatically based on a file edit.
-
-You may provide exact filenames, or globs.
-
-```yaml
-id: my-action
-triggers:
- - files: [foo.txt, bar/**]
-```
-
-In this case `my-action` will execute if either `foo.txt` is edited (or created), or if a file inside `bar` is edited or created.
-
-In case you need to know which file triggered the action, you can use the `${target}` variable in the `run` command.
-
-```yaml
-id: my-action
-triggers:
- - files: [foo.txt, bar/**]
-run: echo "The file ${target} was edited"
-```
-
-If you do a bulk file modification, the `${target}` template may resolve to a space-separated list of files that were simultaneously edited.
-
-> Note: We only provide file triggers for files inside of your workspace.
-
-#### Git hooks
-
-You can also configure Trunk to manage your git hooks. More detail is provided on this in our [git hooks reference](../../actions/git-hooks).
-
-### Interactivity
-
-Actions can read from `stdin` if they are marked as interactive (define `interactive: true` on the action). Note: this feature is only available for git hooks and manually run actions - since file-triggered and scheduled actions run in the background, you cannot interact with their execution.
diff --git a/code-quality/overview/getting-started/configuration/actions/logging-and-troubleshooting.mdx b/code-quality/overview/getting-started/configuration/actions/logging-and-troubleshooting.mdx
deleted file mode 100644
index b490a1a..0000000
--- a/code-quality/overview/getting-started/configuration/actions/logging-and-troubleshooting.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Logging and Troubleshooting"
-description: "Diagnosing problems with actions"
----
-We provide a number of tools for inspecting the results of actions that run in the background and wouldn't otherwise surface their errors.
-
-Every action execution is logged. We consider an action execution to have failed if it has a non-zero exit code.
-
-`trunk actions history ` gives a history of the recent runs of an action and whether it succeeded. You can control how many recent runs to show with the `--count` flag (for example, `trunk actions history trunk-upgrade-available --count=10`). When available, a full stacktrace is written to a file and made available.
-
-Failed action executions will also produce a notification so that background failures are periodically surfaced to the user.
-
-You can also inspect action logs at `.trunk/out/actions//`.
-
-We recommend running actions manually when you develop them to verify that they work correctly.
-
-### Output Level
-
-To see a more verbose output when running trunk actions, particularly from git-hooks, you can add the following to your `trunk.yaml`:
-
-```yaml
-actions:
- output_level:
-```
diff --git a/code-quality/overview/getting-started/configuration/actions/notifications.mdx b/code-quality/overview/getting-started/configuration/actions/notifications.mdx
deleted file mode 100644
index 5d78091..0000000
--- a/code-quality/overview/getting-started/configuration/actions/notifications.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: "Notifications"
-description: "Trunk Actions can also produce notifications to display in your terminal or in the VSCode extension!"
----
-### Defining actions that produce notifications
-
-Typically, whatever actions write to stdout are stored in the log file and perhaps shown to the user. However, actions can also produce structured output if `output_type` is set on the Action Definition to be `notification_v1`.
-
-In this case, the action should print yaml to output with the following structure:
-
-```yaml
-notifications:
- - id: action-id
- # Display-related fields
- title: My action
- message: some text about the notification
- rendered: A rendered message string for color terminals
- icon: https://uri/to/icon
- commands:
- - title: A button title
- run: a run command
- run_from: directory to run from
- priority: high # Can be one of low, high (default low)
-```
-
-Some notes:
-
-1. The ID can be whatever you want it to be, but generally should be made to match the action ID.
-2. You may emit multiple notifications per action.
-3. `icon` and `commands` are used to control notifications display in VSCode.
-4. High-priority notifications are immediately shown to the user in terminal. Low-priority notifications are only shown every 24 hours (These are configurable).
-
-### Deleting notifications
-
-Actions can also clear their own notifications. in this case, make the output looks like this:
-
-```yaml
-notifications_to_delete: [action-id]
-```
-
-If actions produce a notification that is reflective of a current state or something actionable for the user to do, they may clear the notification once that state changes/when the user takes the requested action.
-
-### An example
-
-We illustrate the cycle of actions managing their own notifications with the following example.
-
-Consider the built-in action for `trunk upgrade` - a command that upgrades trunk and a repo's enabled linters to their most recent versions. We'd like to notify the user of new upgrades once a day. Thus our `trunk-upgrade-available` action definition looks like this:
-
-```yaml
-id: trunk-upgrade-available
-output_type: notification_v1
-run: trunk upgrade --notify
-triggers:
- - schedule: 1h
- - files: [.trunk/trunk.yaml]
-```
-
-`trunk upgrade --notify` produces a notification that looks like this:
-
-```yaml
-notifications:
- - commands:
- - run: trunk upgrade
- title: Upgrade Trunk
- id: trunk-upgrade
- message: "Upgrades available\n\n Trunk version 0.17.0-beta\n 10 linter updates\n\nRun trunk upgrade to upgrade all\n or trunk upgrade trunk to just upgrade trunk"
- priority: low
- rendered: "\x1b[1m\x1b[90m\nUpgrades available\x1b[0m\n\x1b[90m\n\x1b[0m• \x1b[90mTrunk version\x1b[0m \x1b[92m0.17.0-beta\x1b[0m\x1b[90m\n\x1b[0m• \x1b[92m11 linter\x1b[0m \x1b[90mupdates\n\x1b[0m\n\x1b[90mRun\x1b[0m\x1b[96m trunk upgrade\x1b[0m\x1b[90m to upgrade all\x1b[0m\x1b[90m\n or\x1b[0m\x1b[96m trunk upgrade trunk\x1b[0m\x1b[90m to just upgrade trunk\x1b[0m\x1b[90m\n\x1b[0m"
-```
-
-If there are no upgrades available, `trunk upgrade --notify` will produce:
-
-```yaml
-notifications_to_delete: [trunk-upgrade-available]
-```
-
-So in this scenario, the `trunk-upgrade-available` action runs in the background periodically and produces a notification. The user takes action by running `trunk upgrade`. Since `trunk upgrade` modifies `.trunk/trunk.yaml`, this will again trigger the `trunk-upgrade-available` action (due to the file trigger). Since there is nothing else to upgrade, `trunk upgrade --notify` will produce output telling Trunk to delete its notification. Now, the user is no longer shown a notification about available upgrades!
diff --git a/code-quality/overview/getting-started/configuration/index.mdx b/code-quality/overview/getting-started/configuration/index.mdx
deleted file mode 100644
index ab7b28b..0000000
--- a/code-quality/overview/getting-started/configuration/index.mdx
+++ /dev/null
@@ -1,293 +0,0 @@
----
-title: "Configuration"
----
-The Trunk CLI has its top-level config defined in `.trunk/trunk.yaml`.
-
-```
-/your_repo
-├── .trunk
-│ └── trunk.yaml
-└── src
- ├── bar
- └── foo
-```
-
-This is initially generated by `trunk init` and is the central source of truth for how Trunk operates inside your repository. As we build new services and features, we'll extend `trunk.yaml` to include configuration sections for them. We believe strongly in "configuration as code" and being able to guarantee that `trunk` can be run reproducibly.
-
-### Config format
-
-The Trunk configuration file is written in YAML and is meant to be self-descriptive. Below is a sample config file to help you understand how the pieces come together. Alternatively, you can also refer to [the `trunk.yaml` in our GitHub Action](https://github.com/trunk-io/trunk-action/blob/main/.trunk/trunk.yaml) as an example or [`trunk-yaml-schema.json`](https://static.trunk.io/pub/trunk-yaml-schema.json).
-
-```yaml
-version: 0.1 # the version of this config file.
-cli:
- version: 0.15.1 # the version of trunk you will run in your repository
-runtimes:
- enabled:
- - ruby@>=2.7.1
- - python@3.9.1
-repo:
- # main is the branch that everyone's work is merged into
- # (this is usually inferred and not required to be set)
- trunk_branch: main
-lint:
- definitions:
- - name: my_custom_linter
- files: [ALL]
- commands:
- output: sarif
- run: ${workspace}/bin/foo --file ${target}
- read_output_from: stdout
- run_linter_from: workspace
- success_codes: [0, 1]
- enabled:
- - ansible-lint@5.3.2
- - bandit@1.7.0
- - black@21.6b0
- - buf-lint@1.0.0-rc3
- - buildifier@5.1.0
- - cfnlint@0.51.0
- - eslint@7.30.0
- - gitleaks@7.6.1
- - gofmt@1.16.7
- - golangci-lint@1.41.1
- - hadolint@2.6.0
- - isort@5.8.0
- - markdownlint@0.28.1
- - mypy@0.910
- - prettier@2.3.2
- - pylint@2.8.1
- - rustfmt@1.55.0
- - semgrep@0.104.0
- - shellcheck@0.7.2
- - shfmt@3.3.1
- disabled:
- - rufo
- - tflint
- ignore:
- - linters: [ALL]
- paths:
- # Generated files
- - a/proto/code_pb*
- # Test data
- - b/test_data/**
- - linters: [eslint]
- paths:
- - c/run.ts
- triggers:
- - linters:
- - ansible-lint
- paths:
- - ansible # A directory
- targets:
- - ansible # A directory
-```
-
-### `version`
-
-The `version field` is the schema version of `trunk.yaml.`
-
-### `cli`
-
-```yaml
-cli:
- version: 0.15.1 # the version of trunk you will run in your repository
- options:
- - commands: [ALL] # apply to all `trunk` commands
- args: --monitor=true
- - commands: [check, fmt] # apply only to `trunk check` and `trunk fmt` commands
- args: -y
-```
-
-In addition to specifying `version`, `cli` allows you to specify default command line arguments using the `options` field. Specified `args` will be appended to strictly matched `commands` during `trunk` invocations. Specifying `ALL` as a `commands` element applies its options to all `trunk` subcommands. Any command line options will take precedence over these `args`.
-
-Some examples using the configuration above:
-
-* `trunk check` resolves to `trunk check -y --monitor=true`
-* `trunk check -n` resolves to `trunk check -n --monitor=true`
-* `trunk fmt` resolves to `trunk fmt -y --monitor=true`
-
-### `repo`
-
-```yaml
-repo:
- # main is the branch that everyone's work is merged into
- # (this is usually inferred and not required to be set)
- trunk_branch: main
-```
-
-Some Trunk features require Trunk to be aware of the canonical repository your organization uses, such as the repository that everyone pulls from and makes pull requests into. The Trunk CLI can infer this from your `origin` remote, but if you don't want your `origin` to be used for this purpose, you can explicitly specify your canonical repository.
-
-Other features - namely `trunk check` - need to be aware of the primary upstream branch that everyone branches from. If you use `main` or `master`, `trunk` can infer this; however, if you use some other primary branch, then you may want to consider setting this.
-
-The above configuration is how you would specify that [https://github.com/github/gitignore](https://github.com/github/gitignore) is your canonical repository and that `main` is the branch which `trunk` should always think of as your upstream branch.
-
-### `api`
-
-```yaml
-api:
- # name of your trunk organization on app.trunk.io
- org: { your-org-name }
-```
-
-Some Trunk features, like the CI Debugger, require knowledge of the Trunk organization your repository is using. This information can be provided on the command line or hard-coded in the `trunk.yaml` file.
-
-### `trunk_remote_hint`
-
-```yaml
-repo:
- trunk_remote_hint: github.com/organization/my_repo
-```
-
-If this hint is set, Trunk will search all local remotes looking for the one that best matches `//` instead of defaulting to `origin`. It will then use this remote as the default upstream for computing changed files.
-
-### Stacked PR support
-
-```yaml
-repo:
- use_branch_upstream: true
-```
-
-By default, `trunk` will auto-detect all changed files relative to your main branch. If you would instead like it to compare against the upstream of your current git branch, you can enable this feature by setting `use_branch_upstream` to `true`.
-
-### Disable upgrade notifications
-
-Trunk will periodically tell you to upgrade to a newer version if one is available. If you prefer not to see these notifications, edit (or add) the section of your `.trunk/trunk.yaml` to include the following lines:
-
-```yaml
-actions:
- disabled:
- - trunk-upgrade-available
-```
-
-### Overriding defaults
-
-Trunk ships with a default configuration which `trunk.yaml` is merged into to produce the actual configuration that Trunk runs with. You can view this merged configuration using `trunk print-config`.
-
-You may find while using Trunk that you want to modify one of these defaults: perhaps you want `clang-tidy` to not run on the upstream, or maybe you want the `node` runtime to include another environment variable. In these cases, you can specify the field in your `trunk.yaml` to override the default value.
-
-Let's take `clang-tidy` as an example, which ships with the following default configuration:
-
-```yaml
-definitions:
- ...
- - name: clang-tidy
- files: [c/c++-source]
- type: llvm
- commands:
- - output: llvm
- run: clang-tidy --export-fixes=- ${target}
- success_codes: [0]
- download: clang-tidy
- direct_configs: [.clang-tidy]
- disable_upstream: true
- include_scanner_type: compile_command
- environment:
- - name: PATH
- list: ["${linter}/bin"]
- ...
-```
-
-If you wanted to flip the value of `disable_upstream` to `false`, you could, in your own `trunk.yaml`, specify:
-
-```yaml
-definitions:
- ...
- - name: clang-tidy
- disable_upstream: false
- ...
-```
-
-
-Some linters have multiple commands, such as [trivy](https://github.com/trunk-io/plugins/blob/main/linters/trivy/plugin.yaml), which can run in different ways. Similarly, some linters are configured to run differently on different platforms or at different versions. When overriding a command definition, overrides are applied on the tuple `[name, version, platforms]`. For example, if you wanted to disable batching when running [ktlint](https://github.com/trunk-io/plugins/blob/main/linters/ktlint/plugin.yaml) on Windows, you could consider its default configuration:
-
-```yaml
-definitions:
- ...
- - name: ktlint
- ...
- commands:
- - name: format
- platforms: [windows]
- run: java -jar ${linter}/ktlint.exe -F "${target}"
- output: rewrite
- cache_results: true
- formatter: true
- in_place: true
- batch: true
- success_codes: [0, 1]
- - name: format
- run: ktlint -F "${target}"
- output: rewrite
- cache_results: true
- formatter: true
- in_place: true
- batch: true
- success_codes: [0, 1]
- ...
-```
-
-and override it as such:
-
-```yaml
-definitions:
- ...
- - name: ktlint
- ...
- commands:
- - name: format
- platforms: [windows]
- batch: false
- ...
-```
-
-When executing linters, Trunk will execute the first matching command based on its compatible platforms and linter version. Note when overriding that new commands that don't match an existing tuple are prepended to the resulting commands list.
-
-Alternatively, consider the default `node` runtime:
-
-```yaml
-runtimes:
- definitions:
- - type: node
- download: node
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list: ["${runtime}/bin"]
- linter_environment:
- - name: PATH
- list: ["${linter}/node_modules/.bin"]
- version: 16.14.2
- version_commands:
- - run: "node --version"
- parse_regex: ${semver}
-```
-
-If you wanted to add `${home}/my/special/node/path` to `PATH`, you could specify the following:
-
-```yaml
-runtimes:
- - type: node
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list: ["${home}/my/special/node/path", "${runtime}/bin"]
-```
-
-### Validation
-
-Custom linter, download, and runtime configs must be defined in full and will be validated. Overrides of existing linter, download, and runtime configs can be partial overrides. They do not have to be full definitions.
-
-Merged configurations are subject to the same validation that custom linters are - they must all have a name, type, command, and either `success_codes` or `error_codes` set.
-
-### Known limitations
-
-1. Scalar values are overridden in a straightforward manner - the value specified in the override\
- takes the place of the default, and otherwise, default values are retained.
-2. To override a sequence value in the default (ex. `environment` in the `node` runtime), it is\
- necessary to fully specify the new sequence. This is why the `environment` override above also defines `HOME`. If you just wanted to add a new value, you would have to copy in the existing\
- sequence to your overriding config, and add your new value to the end of the list.
-3. It is not possible to set sequences of non-zero length to zero length. For example, if the\
- default config has `success_codes: [0]`, you may override this to `success_codes: [0, 1]`, but you cannot clear its value.
diff --git a/code-quality/overview/getting-started/configuration/lint/auto-enable.mdx b/code-quality/overview/getting-started/configuration/lint/auto-enable.mdx
deleted file mode 100644
index fde505f..0000000
--- a/code-quality/overview/getting-started/configuration/lint/auto-enable.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Auto-Enable"
----
-Simply defining a linter does not enable it. Trunk needs to know when to auto-enable the linter for certain projects (ex: all python projects) or if certain files are already present (ex: `.eslintrc`).
-
-## Auto Enabling
-
-The `direct_configs` property contains a list of config files that the underlying linter uses. The `suggest_if` property determines when `trunk check` should suggest this linter. If `suggest_if` is set to `config_present`, then trunk will search for the listed config files. If found, the linter will be enabled automatically when the user does `trunk init` or `trunk update`.
-
-For example: in the following yaml, the **flake8** linter sets `suggest_if` to `config_preset` and sets `direct_configs` to `[.flake8]`. If any `*.flake8` files are found, then trunk check will automatically enable flake8.
-
-**Flake8** linter definition. [full source](https://github.com/trunk-io/plugins/blob/main/linters/flake8/plugin.yaml)
-
-```yaml
-version: 0.1
-tools:
- definitions:
- - name: flake8
- runtime: python
- package: flake8
- shims: [flake8]
- known_good_version: 4.0.1
-lint:
- definitions:
- - name: flake8
- files: [python]
- tools: [flake8]
- direct_configs: [.flake8]
- suggest_if: config_present
- affects_cache:
- - setup.cfg
- - tox.ini
- # In case the user installs https://pypi.org/project/Flake8-pyproject/
- - pyproject.toml
- issue_url_format: https://flake8.pycqa.org/en/latest/user/error-codes.html
- known_good_version: 4.0.1
- version_command:
- parse_regex: ${semver}
- run: flake8 --version
-
-```
-
-The **suggest\_if** field can be one of the following:
-
-* `config_present` will auto-enable a linter if Trunk sees any `direct_config` for it .
-* `files_present` will auto-enable a linter if Trunk sees any file type that it operates on.
-* `never` will never auto-enable this linter.
-
-Trunk curates the values of `suggest_if` for all linters in the [plugins](https://github.com/trunk-io/plugins) repo.
-
-## Manually enabling and disabling
-
-Setting the `lint.definitions[*].enabled` property to true will force the linter to be enabled. Setting the `lint.definitions[*].disabled` property to true will force the linter to never be enabled, even if the `enabled` property is true, and will never suggest this linter, even if `suggest_if` says it should.
-
-For additional information on the properties of Linters, see the [Linter Definition Reference](./definitions).
diff --git a/code-quality/overview/getting-started/configuration/lint/commands.mdx b/code-quality/overview/getting-started/configuration/lint/commands.mdx
deleted file mode 100644
index 8f04903..0000000
--- a/code-quality/overview/getting-started/configuration/lint/commands.mdx
+++ /dev/null
@@ -1,454 +0,0 @@
----
-title: "Commands"
----
-A command is the fundamental unit of linters. It defines specifically _what binary and arguments_ are used to run the linter. A linter can have multiple commands in case it has multiple behaviors (ex: lint and format), but it must have at least one.
-
-## How Code Quality Runs Linters
-
-The `run` property is the command to actually run a linter. This command can use [variables](./commands#template-variables) provided by the runtime such as `${plugin}` and `${target}`.
-
-For example: this is the `run` field for **black**, one of our Python linters. The `run` field is set to `black -q ${target}`.
-
-```yaml
-version: 0.1
-tools:
- definitions:
- - name: black
- runtime: python
- package: black[python2,jupyter]
- shims: [black]
- known_good_version: 22.3.0
-lint:
- definitions:
- - name: black
- files: [python, jupyter, python-interface]
- commands:
- - name: format
- output: rewrite
- run: black -q ${target}
- success_codes: [0]
- batch: true
- in_place: true
- allow_empty_files: false
- cache_results: true
- formatter: true
- tools: [black]
- suggest_if: files_present
- affects_cache: [pyproject.toml]
- known_good_version: 22.3.0
- version_command:
- parse_regex: black, version (.*)
- run: black --version
-```
-
-This command template contains all the information Trunk needs to execute `black` in a way where Trunk will be able to understand `blacks`'s output.
-
-## Input Target
-
-The `target` field specifies what paths this linter will run on given an input file. It may be a string literal such as `.`, which will run the linter on the whole repository. It also supports various substitutions:
-
-| Variable | Description |
-| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `${file}` | The input file. |
-| `${parent}` | The folder containing the file. |
-| `${parent_with()}` | Walks up toward the repository root looking for the first folder containing ``. If `` is not found, do not run any linter. |
-| `${root_or_parent_with()}` | Walks up toward the repository root looking for the first folder containing ``. If `` is not found, evaluate to the repository root. |
-| `${root_or_parent_with_regex()}` | Walks up toward the repository root looking for the first folder containing a name matching ``. If not found, evaluate to the repository root. |
-
-If `target` is not specified it will default to `${file}`.
-
-This target may be referenced in the `run` field as `${target}`, as in the example above for **black**, or this simple example.
-
-```yaml
-lint:
- definitions:
- - name: noop
- files: [ALL]
- commands:
- - name: format
- output: rewrite
- formatter: true
- run: cat ${target}
-```
-
-or via `stdin`, by specifying `stdin: true`:
-
-```yaml
-lint:
- definitions:
- - name: noop
- files: [ALL]
- commands:
- - name: format
- output: rewrite
- formatter: true
- run: cat -
- stdin: true
-```
-
-> Note: Linters that take their input via `stdin` may still want to know the file's path so that they can, say, generate diagnostics with the file's path. In these cases you can still use `${target}` in `run`.
-
-## Exit codes
-
-Linters often use different exit codes to categorize the outcome. For instance, [`markdownlint`](https://github.com/igorshubovych/markdownlint-cli#exit-codes) uses `0` to indicate that no issues were found, `1` to indicate that the tool ran successfully but issues were found, and `2`, `3`, and `4` for tool execution failures.
-
-Trunk supports specifying either `success_codes` or `error_codes` for a linter:
-
-* if `success_codes` are specified, Trunk expects a successful linter invocation (which may or may not find issues) to return one of the specified `success_codes`;
-* if `error_codes` are specified, Trunk expects a successful linter invocation to return any exit\
- code which is _not_ one of the specified `error_codes`.
-
-`markdownlint`, for example, has `success_codes: [0, 1]` in its configuration.
-
-**Note:** A linter command should set either success codes or error codes, but not both\*\*.\*\*
-
-## Working directory
-
-`run_from` determines what directory a linter command is run from.
-
-| run_from | Description |
-|---|---|
-| `` (`.` by default) | Explicit path to run from |
-| `${parent}` | Parent of the target file; e.g. would be `foo/bar` for `foo/bar/hello.txt` |
-| `${root_or_parent_with()}` | Nearest parent directory containing the specified file |
-| `${root_or_parent_with_dir()}` | Nearest parent directory containing the specified directory |
-| `${root_or_parent_with_regex()}` | Nearest parent directory containing a file or directory matching specified regex |
-| `${root_or_parent_with_direct_config}` | Nearest parent directory containing a file from `direct_configs` |
-| `${root_or_parent_with_any_config}` | Nearest parent directory containing a file from `affects_cache` or `direct_configs` |
-| `${target_directory}` | Run the linter from the same directory as the target file, and change the target to be `.` |
-| `${compile_command}` | Run from the directory where `compile_commands.json` is located |
-
-## Template Variables
-
-Note that some of the fields in this command template contain `${}` tokens: these tokens are why `command` is a template and are replaced at execution time with the value of that variable within the context of the lint action being executed.
-
-| Variable | Description |
-| ----------------- | ----------------------------------------------------------------------------- |
-| `${workspace}` | Path to the root of the repository |
-| `${target}` | Path to the file to check, relative to `${workspace}` |
-| `${linter}` | Path to the directory the linter was downloaded to |
-| `${runtime}` | Path to the directory the runtime (e.g. `node`) was downloaded to |
-| `${upstream-ref}` | Upstream git commit that is being used to calculate new/existing/fixed issues |
-| `${plugin}` | Path to the root of the plugin's repository |
-
-## Limiting concurrency
-
-If you would like to limit the number of times trunk will invoke a linter concurrently, then you can use the `maximum_concurrency` option. For example, setting `maximum_concurrency: 1` will limit Trunk from running more than one instance of the linter simultaneously.
-
-## Environment variables
-
-Trunk by default runs linters _without_ environment variables from the parent shell; however, most linters need at least some such variables to be set, so Trunk allows specifying them using `environment`; for example, the `environment` for `ktlint` looks like this:
-
-```yaml
-lint:
- definitions:
- name: ktlint
- # ...
- environment:
- - name: PATH
- list: ["${linter}"]
- - name: LANG
- value: en_US.UTF-8
-```
-
-Most `environment` entries are maps with `name` and `value` keys; these become `name=value` environment variables. For `PATH`, we allow specifying `list`, in which case we concatenate the entries with `:`.
-
-We use the same template syntax for `environment` as we do for [`command`](./commands#commands).
-
-## Output Types and Parsing
-
-The output of a command should be in one of the supported output types like [SARIF](./output#sarif) or something that can be parsed with a [regex](./output#regex). See [See Output Types](./commands#output-types-and-parsing) for more details. If the standard output types do not meet your needs, you can also create a [custom parser](./output-parsing).
-
-## Full Reference
-
-The linter command definitions are defined in `lint.definitions.commands`. A single linter can have multiple commands if it is used in different ways.
-
-_Note:_. If you define the executable to run here (the command definition), then you should _not_ define it also in the linter definition. Defining it here as a command is preferred.
-
-## `allow_empty_files`
-
-`allow_empty_files`: _optional boolean_. Skip linting empty files for this linter. Trunk will assume there are no linters if the file is empty.
-
-## `batch`
-
-`batch`: _optional boolean_. Combine multiple files into the same execution. If true, the `${target}` template substitution in the `run` field may expand into multiple files.
-
-## `cache_ttl`
-
-`cache_ttl`, _duration string_. If this linter is not [idempotent](./commands#idempotent), this is how long cached results are kept before they expire. Defaults to 24hrs. See [Output Caching](../../caching) for more details.
-
-## `cache_results`
-
-`cache_results`: _optional boolean_. Indicates if this linter wants to cache results. See [Caching](./files-and-caching) for more details.
-
-## `disable_upstream`
-
-`disable_upstream`: _optional boolean_, Whether this linter supports comparing against the upstream version of this file.
-
-## `error_codes`
-
-`error_codes`: List of exit codes this linter will return when it hit an internal failure and couldn't generate results. **A linter should set either success codes or error codes, but not both.** See also [`success_codes`](./commands#success_codes).
-
-## `enabled`
-
-`enabled`: _optional boolean_. Whether the command is enabled to run when the linter is run. Allows some commands of a linter to be run by default without others.
-
-## `files`
-
-`files` is a list of file types listed in the `lint.files` section that this linter applies to.
-
-Example: **prettier** [full source](https://github.com/trunk-io/plugins/blob/main/linters/prettier/plugin.yaml)
-
-```yaml
-lint:
- definitions:
- - name: prettier
- files:
- - typescript
- - yaml
- - css
- - sass
- - html
- - markdown
- - json
- - javascript
- - graphql
- - prettier_supported_configs
-```
-
-## `fix_prompt`
-
-`fix_prompt`, _optional string._ e.g. 'Incorrect formatting' or 'Unoptimized image'. This string is used when prompting the user to use the linter interactively.
-
-## `fix_verb`
-
-`fix_verb`: _optional string_. This string is used when prompting the user to use the linter interactively. Example: `optimize`, `autoformat`, or `compress`.
-
-## `formatter`
-
-`formatter`: _optional boolean_. Whether this command is a formatter and should be included in `trunk fmt`.
-
-## `in_place`
-
-`in_place`: _optional boolean_. Indicates that this formatter will rewrite the file in place. **Only applies to formatters**.
-
-## `idempotent`
-
-`idempotent`: _optional boolean_. Indicates whether a linter is idempotent with config and source code inputs. For example, `semgrep` fetches rules from the Internet, so it is not idempotent . If set, will only cache results a duration of `cache_ttl`. See [Output Caching](./files-and-caching) for more details.
-
-## `is_security`
-
-`is_security`: _optional boolean_. Whether findings from this command should be considered "security" or not. Allows this linter to be run with `--scope==security`. [See Command Line Options](/merge-queue/using-the-queue/reference)
-
-## `maximum_file_size`
-
-`maximum_file_size`: _optional number_. The maximum file size in bytes for input files to the linter. If not specified, the [lint.default\_max\_file\_size](./#default_max_file_size) will be used.
-
-## `max_concurrency`
-
-`max_concurrency`: _optional integer_, The maximum number of processes that Trunk Code Quality will run concurrently for this linter. [See Limiting Concurrency](./commands#limiting-concurrency)
-
-## `name`
-
-`name`: _string_. A unique name for this command (some tools expose multiple commands, format, lint, analyze, etc.).
-
-## `no_issues_codes`
-
-`no_issues_codes`: List of exit codes that Trunk will use to assume there were no issues without parsing the output.
-
-## `output`
-
-`output`: _string_. which type of output this linter produces. [See Output Types](./commands#output-types-and-parsing).
-
-## `parser`
-
-`parser`: The definition of a parser that will transform the output of the linter into SARIF. Not needed if linter is already output SARIF. [See Output Types](./commands#output-types-and-parsing)
-
-## `parse_regex`
-
-`parse_regex`: _string_. A regular expression used to support regex parsing. [See Regex output type](./output#regex)
-
-## `platforms`
-
-`platforms`: A list of platforms this linter supports. (ex: `windows`, `macos`, `linux`). Linters using managed runtimes (node, python, etc.) can generally run cross-platform and do not need the `platforms` property set. For tools which _are_ platform specific or which have different configuration for each platform, this property can be used to distinguish between them. When multiple command definitions have the same name, Trunk Check will pick the first one that matches the `platforms` setting.
-
-For example, the `detekt` plugin has different exit codes for Windows than MacOS or Linux, and has two command definitions with different `success_codes` fields. [Full Source](https://github.com/trunk-io/plugins/blob/main/linters/detekt/plugin.yaml).
-
-```yaml
-lint:
- definitions:
- - name: detekt
- files: [kotlin]
- download: detekt
- commands:
- - name: lint
- platforms: [windows]
- output: sarif
- run:
- detekt-cli --build-upon-default-config --config
- .detekt.yaml --input ${target,} --report
- sarif:${tmpfile}
- success_codes: [0, 1, 2]
- read_output_from: tmp_file
- batch: true
- cache_results: true
- - name: lint
- output: sarif
- run:
- detekt-cli --build-upon-default-config --config
- .detekt.yaml --input ${target,} --report
- sarif:${tmpfile}
- success_codes: [0, 2]
- read_output_from: tmp_file
- batch: true
- cache_results: true
-```
-
-## `prepare_run`
-
-`prepare_run`: An extra command to run before running a linter.
-
-## `read_output_from`
-
-`read_output_from`: Tell parser where to expect output from for reading. Should be one of `stdout`, `stderr`, and `tmp_file`. [See Output Sources](./output#output-sources)
-
-## `run`
-
-`run`: The command to run a linter. This command can use variables provided at runtime such as `$plugin}` and `$target}`. [Full list of variables](./commands#template-variables). See [Run](./commands#how-code-qualit-runs-linters) for more details.
-
-`dart` `format` command: [full source](https://github.com/trunk-io/plugins/blob/main/linters/dart/plugin.yaml)
-
-```yaml
-lint:
- files:
- - name: dart
- extensions: [dart]
- definitions:
- - name: dart
- main_tool: dart
- commands:
- - name: format
- output: rewrite
- run: dart format ${target}
-```
-
-## `run_from`
-
-`run_from`: What current working directory to run the linter from. See [Working Directory](./commands#working-directory) for more details.
-
-## `run_when`
-
-`run_when`: When this command should be run. One of `cli`, `lsp`, `monitor`, or `ci`.
-
-## `std_in`
-
-`std_in`: _optional boolean_. Should the command be fed the file on standard input?
-
-## `success_codes`
-
-`success_codes:` List of exit codes that indicates linter ran successfully. **This is unrelated to whether or not there were issues reported by the linter**.
-
-**Note:** a linter should set either success codes or error codes, but not both. See also [`error_codes`](./commands#error_codes).
-
-## `target`
-
-`target`, _optional string_, What target does this run on. By default, the target is the modified source code file, `${file}`. Some linters operate on a whole repo or directory. See [Input Target](./commands#input-target) for more details.
-
-Examples:
-
-**nancy** uses `.` as the target. [full source](https://github.com/trunk-io/plugins/blob/main/linters/nancy/plugin.yaml)
-
-```yaml
-# nancy uses .
-definitions:
- - name: nancy
- files: [go-lockfile]
- download: nancy
- runtime: go
- commands:
- - output: sarif
- run: sh ${plugin}/linters/nancy/run.sh
- success_codes: [0, 1, 2]
- target: .
- read_output_from: stdout
- is_security: true
-```
-
-**tflint** uses `${parent}` as the target. [full source](https://github.com/trunk-io/plugins/blob/main/linters/tflint/plugin.yaml)
-
-```yaml
-lint:
- definitions:
- - name: tflint
- files: [terraform]
- commands:
- - name: lint
- output: sarif
- prepare_run: tflint --init
- run: tflint --format=sarif --force
- success_codes: [0, 1, 2]
- read_output_from: stdout
- # tflint can only run on the current directory unless --recursive is passed
- target: ${parent}
- run_from: ${target_directory}
- version: ">=0.47.0"
-```
-
-**Clippy** uses `${parent_with(Cargo.toml)}` as the target. [full source](https://github.com/trunk-io/plugins/blob/main/linters/clippy/plugin.yaml)
-
-```yaml
-version: 0.1
-lint:
- definitions:
- # clippy has 3 lint severities: deny, warn, and allow. Unfortunately deny causes rustc to
- # fail eagerly due to its implementation (https://github.com/rust-lang/rust/pull/87337),
- # We use --cap-lints to downgrade "deny" severity lints to warn. So rustc will find all
- # issues instead of hard stopping. There are currently only 70 of them, so we could hardcode
- # the list to fix their severity levels correctly.
- - name: clippy
- files: [rust]
- download: rust
- commands:
- - name: lint
- # Custom parser type defined in the trunk cli to handle clippy's JSON output.
- output: clippy
- target: ${parent_with(Cargo.toml)}
- run: cargo clippy --message-format json --locked -- --cap-lints=warn --no-deps
- success_codes: [0, 101, 383]
- run_from: ${target_directory}
- disable_upstream: true
-```
-
-## `version`
-
-`version`: _optional string_, Version constraint. When a linter has multiple commands with the same name, Trunk Code Quality will select the first command that matches the version constraint. This is useful for when multiple incompatible versions of a tool need to be supported.
-
-Example: the `ruff` linter changed a command line argument from `--format` to `--output-format` in version `v0.1.0`. To handle both versions, the linter defines two commands with different version attributes. The first is for version `>=0.1.0`. If the first is not matched (because the install version of run is less that 0.1.0) then Trunk Code Quality will move on to the next command until it finds a match. [Full source](https://github.com/trunk-io/plugins/blob/main/linters/ruff/plugin.yaml).
-
-```yaml
-lint:
- definitions:
- - name: ruff
- files: [python]
- commands:
- - name: lint
- # As of ruff v0.1.0, --format is replaced with --output-format
- version: ">=0.1.0"
- run: ruff check --cache-dir ${cachedir} --output-format json ${target}
- output: sarif
- parser:
- runtime: python
- run: python3 ${cwd}/ruff_to_sarif.py 0
- batch: true
- success_codes: [0, 1]
- - name: lint
- run: ruff check --cache-dir ${cachedir} --format json ${target}
- output: sarif
- parser:
- runtime: python
- run: python3 ${cwd}/ruff_to_sarif.py 1
- batch: true
- success_codes: [0, 1]
-
-
-```
diff --git a/code-quality/overview/getting-started/configuration/lint/definitions.mdx b/code-quality/overview/getting-started/configuration/lint/definitions.mdx
deleted file mode 100644
index 1973b3b..0000000
--- a/code-quality/overview/getting-started/configuration/lint/definitions.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: "Definitions"
----
-The definition of a particular linter is put under `lint.definitions`. The following properties define the settings of a _particular linter_, not for all linters. For global linter settings, see [Lint Config](./).
-
-## `affects_cache`
-
-`affects_cache`: The list of files that affect the cache results of this linter. [See Caching](../../caching).
-
-## `allow_empty_files`
-
-`allow_empty_files`: _optional boolean_. Indicates to skip linting empty files for this linter.
-
-## `batch`
-
-`batch`: _optional boolean_. Combine multiple files into the same execution.
-
-## `commands`
-
-`commands`: The list of commands exposed by this linter. See [Linter Command Definition](./commands).
-
-## `deprecated`
-
-`deprecated`: _string_. Indicates the linter is deprecated and should not be used.
-
-## `direct_configs`
-
-`direct_configs`: _string list_. Indicates config files used to auto-enable the linter. See [Auto Enabling](./auto-enable).
-
-## `disabled`
-
-`disabled`: _optional boolean_: Whether linter is actively disabled (and will not be recommended) and will not run (overrides enabled).
-
-## `download`
-
-`download`: _string_. The download URL. You must provide either runtime + packages or download, not both. Using runtimes is preferred. See [Runtimes](../runtimes).
-
-## `enabled`
-
-`enabled`: _optional boolean_. Whether this linter is enabled.
-
-## `environment`
-
-`environment`: a list of runtime variables used when running the linter. See [Command Environment Variables](./commands#environment-variables).
-
-## `extra_packages`
-
-`extra_packages`: list of strings, Extra packages to install, versions are optional. See [Linter Dependencies](./dependencies).
-
-## `formatter`
-
-`formatter`: _boolean_. Indicates whether this is a formatter and should be included in `trunk fmt`.
-
-## `good_without_config`
-
-`good_without_config`: _optional boolean_. Indicates whether this linter is recommended without the user tuning its configuration. Prefer [`suggest_if`](./definitions#suggest_if).
-
-## `hold_the_line`
-
-`hold_the_line`: _optional boolean_. Whether [hold-the-line will](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line) be done for this linter or not.
-
-## `include_lfs`
-
-`include_lfs`: _boolean_. Allow this linter to operate on files tracked using [git LFS](https://git-lfs.com/).
-
-## `include_scanner_type`
-
-`include_scanner_type`: which include scanner to use, if any.
-
-## `issue_url_format`
-
-`issue_url_format`: _string_, a format string that accepts issue codes for links to issues docs.
-
-## `known_good_version`
-
-`known_good_version`: _string_. A version to be used when Trunk cannot query the latest version. Currently, Trunk can query the latest version for all package managers and downloads hosted on GitHub.
-
-## `known_bad_versions`
-
-`known_bad_versions`: _string list_. Versions of a linter that are known to be broken and should not be run with Trunk. We will fall back to a `known_good_version` if init or upgrade chooses something in this set.
-
-## `main_tool`
-
-`main_tool`, _string_. If your linter depends on more than a single tool, and none of the tools has the same name as the linter, then you will need to specify which is the main tool here. It will be used to version the tool from the linter's enabled version.
-
-## `name`
-
-`name` _required string._ The name of the linter. This property will be used to refer to the linter in other parts of the config, for example, in the list of enabled linters.
-
-## `package`
-
-`package`: string, What primary package to install, if using a package manager runtime. The enabled version of the runtime for this linter will apply to this package. See [Linter Dependencies](./dependencies).
-
-## `path_format`
-
-`path_format`, Whether to use the platform-specific paths or generic "/". Default native.
-
-## `plugin_url`
-
-`plugin_url`: _string_, a plugin url for reporting issues.
-
-## `prepare_command`
-
-`prepare_command`. A command that is run once per session before linting any number of files using this linter. ex. `[tflint, --init]`.
-
-## `query_compile_commands`
-
-`query_compile_commands`, _optional boolean_.
-
-## `runtime`
-
-`runtime`: RuntimeType, Which package manager runtime, if any, to require to be setup for this linter. Ex: `node`, `ruby`, `python`. See [Linter Dependencies](./dependencies).
-
-## `run_timeout`
-
-`run_timeout`: _duration string_. Describes how long a linter can run before timing out. [See timeouts](../../../linters/configure-linters#timeout).
-
-## `suggest_if`
-
-How to determine if this linter should be auto-enabled/recommended. Possible values are `never`, `config_present`, and `files_present`. [See auto-enabling](./auto-enable) for more details.
-
-## `supported_platforms`
-
-Platform constraint. If incompatible, renders a notice. See also [Command `platforms`](./commands#platforms).
-
-## `tools`
-
-`tools`, _string list_. The list of tools used by this linter. See [Linter Dependencies](./dependencies).
-
-## `version_command`
-
-`version_command`: Version check commands.
-
-## `verbatim_message`
-
-`verbatim_message`: Do not try to truncate or reflow the output of this linter.
diff --git a/code-quality/overview/getting-started/configuration/lint/dependencies.mdx b/code-quality/overview/getting-started/configuration/lint/dependencies.mdx
deleted file mode 100644
index e118a17..0000000
--- a/code-quality/overview/getting-started/configuration/lint/dependencies.mdx
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: "Dependencies"
----
-Linters use the `tools` section of the `.trunk/trunk.yaml` to specify Trunk configured binaries that the linter uses to run. The `linter.definitions.tools` key specifies a list of tool names. There are two ways for a linter to depend on a tool: [Eponymous Tools](./dependencies#eponymous-tool-dependencies) and [Additional Tools](./dependencies#additional-tool-dependencies)
-
-## Eponymous Tool Dependencies
-
-When the name of the tool matches the name of a linter, it is called an _eponymous tool dependency_.
-
-In the example below the `pylint` linter depends on the `pylint` tool, which is defined as the package `pylint` running with the `python` runtime.
-
-Eponymous tools need to be defined _separately_ from the linter but implicitly enabled with the linter's version. You may explicitly enable the eponymous tool if you wish, but note that its version needs to be synced to that of the linter. See the [Tools Configuration](../tools) page for more details on how to set up Tools.
-
-```yaml
-tools:
- definitions:
- - name: pylint
- runtime: python
- package: pylint
- shims: [pylint]
- known_good_version: 2.11.1
-lint:
- definitions:
- - name: pylint
- files: [python]
- commands:
- - name: lint
- # Custom parser type defined in the trunk cli to
- # handle pylint's JSON output.
- output: pylint
- run: pylint --exit-zero --output
- ${tmpfile} --output-format json ${target}
- success_codes: [0]
- read_output_from: tmp_file
- batch: true
- cache_results: true
- tools: [pylint]
- suggest_if: config_present
- direct_configs:
- - pylintrc
- - .pylintrc
- affects_cache:
- - pyproject.toml
- - setup.cfg
- issue_url_format: http://pylint-messages.wikidot.com/messages:{}
- known_good_version: 2.11.1
- version_command:
- parse_regex: pylint ${semver}
- run: pylint --version
-```
-
-## Additional Tool Dependencies
-
-You can also have a scenario where a linter depends on a tool that is not identically named - an _additional tool dependency_. We give an example below:
-
-```yaml
-tools:
- definitions:
- - name: terragrunt
- known_good_version: 0.45.8
- download: terragrunt
- shims:
- - name: terragrunt
- target: terragrunt
-lint:
- definitions:
- - name: terragrunt
- tools: [terragrunt, terraform]
- known_good_version: 0.45.8
- files: [hcl]
- suggest_if: never
- environment:
- - name: PATH
- list: ["${linter}"]
- commands:
- - name: format
- output: rewrite
- run: terragrunt hclfmt ${target}
- success_codes: [0]
- sandbox_type: copy_targets
- in_place: true
- formatter: true
- batch: true
- version_command:
- parse_regex: terragrunt v${semver}
- run: terragrunt -version
-```
-
-In this scenario, `terraform` is an additional tool dependency - `terragrunt` requires it to be in `$PATH`. If the tool is an additional dependency, it must be enabled explicitly and versioned independently of the linter - that is, it must be listed in the `tools.enabled` section.
-
-## Download via package manager
-
-If your linter can be downloaded via `gem install`, `go get`, `npm install`, or `pip install`, you can specify a `runtime` and the `package` key:
-
-```yaml
-lint:
- definitions:
- - name: fizz-buzz
- files: [javascript]
- # npm install fizz-buzz
- runtime: node
- package: fizz-buzz
-```
-
-This will now create a hermetic directory in `~/.cache/trunk/linters/fizz-buzz` and `npm install fizz-buzz` there. You can refer to different versions of your package in `trunk.yaml` as normal, via `fizz-buzz@1.2.3`.
-
-> Note: Such downloads will use the _hermetic_ version of the specified runtime that `trunk` installs, not the one you've installed on your machine.
-
-See [Package-based Tools](../tools#package-based-tools) for more information.
diff --git a/code-quality/overview/getting-started/configuration/lint/files-and-caching.mdx b/code-quality/overview/getting-started/configuration/lint/files-and-caching.mdx
deleted file mode 100644
index 5712364..0000000
--- a/code-quality/overview/getting-started/configuration/lint/files-and-caching.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: "Files and Caching"
----
-## Applicable filetypes
-
-To determine which linters to run on which files (i.e. compute the set of lint actions), Trunk requires that every linter define the set of filetypes it applies to in `lint.files`, then reference those files from `lint.definitions[*].files`.
-
-We have a number of pre-defined filetypes (e.g. `c++-header`, `gemspec`, `rust`; see our [plugins repo](https://github.com/trunk-io/plugins/blob/main/linters/plugin.yaml) for an up-to-date list), but you can also define your own filetypes. Here's how we define the `python` filetype:
-
-```yaml
-lint:
- files:
- - name: python
- extensions:
- - py
- - py2
- - py3
- shebangs:
- - python
- - python3
-```
-
-This tells Trunk that files matching either of the following criteria should be considered `python` files:
-
-* the extension is any of `.py`, `.py2`, or `.py3` (e.g. `lib.py`)
-* the shebang is any of `python` or `python3` (e.g. `#!/usr/bin/env python3`)
-
-The **flake8** linter definition uses python files, so it references the filetype above in its definition.
-
-```yaml
-lint:
- definitions:
- - name: flake8
- files: [python]
- commands:
- ...
- affects_cache:
- - setup.cfg
- - tox.ini
- # In case the user uses https://pypi.org/project/Flake8-pyproject/
- - pyproject.toml
-```
-
-## Caching
-
-Trunk Code Quality automatically caches results from previous runs of linters to speed up development. To do this Trunk needs to know which files could potentially affect the cache, besides the source code files themselves.
-
-### Enabling caching
-
-If a linter wishes Trunk to cache the results it should set `cache_results` to true.
-
-## Files which affect caching
-
-The `lint.definitions[*].affects_cache` property is a list of files which could affect the cache. General these are files which would change the configuration of the linter, and therefore invalidate the current cached results. For example, the **flake8** tool tells trunk to invalidate the cache whenever the `setup.cfg`, `tox.ini`, or `pyproject.toml` files are changed.
-
-```yaml
-lint:
- definitions:
- - name: flake8
- files: [python]
- commands:
- ...
- affects_cache:
- - setup.cfg
- - tox.ini
- # In case the user uses https://pypi.org/project/Flake8-pyproject/
- - pyproject.toml
-```
-
-### Idempotency
-
-Trunk Code Quality also needs to know if the linter command itself is idempotent, meaning the command will return the exact same results given the exact same inputs. Most linters are, however semgrep, for example, fetches rules from the internet so the output could be different each time.
-
-Setting the `linter.definitions[*].commands.idempotent` property to true will tell trunk to only cache the result for a duration of `cache_ttl`, which is set to 24hrs by default.
diff --git a/code-quality/overview/getting-started/configuration/lint/index.mdx b/code-quality/overview/getting-started/configuration/lint/index.mdx
deleted file mode 100644
index e2831a4..0000000
--- a/code-quality/overview/getting-started/configuration/lint/index.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: "Lint"
----
-### Lint Config
-
-The `lint` section of `.trunk/trunk.yaml` represents the configuration of all linters. This is where you can:
-
-* Define the linters (`lint.definitions`),
-* List linters to enable and disable (`lint.enabled` and `lint.disabled`)
-* Define file categories (`lint.files`)
-* List required `runtimes` and `downloads`.
-* And additional cross-linter settings.
-
-### `bazel`
-
-`bazel`: bazel configuration
-
-* `paths` locations to look for Bazel binary. [Example](../../../linters/supported/clang-tidy#using-bazel).
-
-### `comment_formats`
-
-`comment_formats`: Definitions of comment formats. Reused in linter definitions. Trunk Quality already defines many common comment format such as `hash` (`# comment`), `slashes-block` (`/* comment */`), and `slashes-inline` (`// comment`). For the full list [see the linters plugin.yaml](https://github.com/trunk-io/plugins/blob/main/linters/plugin.yaml).
-
-To create a new comment format provide the name and delimiters like this:
-
-```yaml
-lint:
- comment_formats:
- - name: dashes-block
- leading_delimiter: --[[
- trailing_delimiter: --]
-```
-
-### `compile_commands`
-
-`compile_commands`: compile commands for clang-tidy. Must be one of `json` or `bazel`.
-
-### `compile_commands_roots`
-
-`compile_commands_roots`: Directories to search for `compile_commands.json`. The default is `build/`.
-
-### `default_max_file_size`
-
-`default_max_file_size`: Default maximum filesize in bytes. Trunk Code Quality will not run linters on any files larger than this. Default value is 4 megabytes.
-
-### `definitions`
-
-`definitions`: Where you define or override linter settings. See [Linter Definition Config](./definitions).
-
-### `disabled`
-
-`disabled`: The list of linters to disable. Adding a linter here will prevent trunk from suggesting it as a new linter each time you upgrade. Linter names can be in the form of `` or `@`, the same format as the [enabled](./#enabled) property.
-
-### `downloads`
-
-`downloads`: Locations to download binary artifacts from. Using [tool definitions](../tools) instead is preferred.
-
-### `enabled`
-
-`enabled`: The list of linters to enable. Linter names can be in the form of `` or `@`. Examples:
-
-```yaml
-lint:
- enabled:
- # Mutually exclusive, choose one:
- - eslint # Use the system version of markdownlint
- - eslint@9.0.0 # Use a hermetically managed version of eslint
- - eslint@node # Use eslint from node_modules/.bin
-```
-
-### `exported_configs`
-
-`exported_configs`: Linter configs to export when another project is [importing this plugin](../../../linters/shared-configs)
-
-### `extra_compilation_flags`
-
-`extra_compilation_flags`: When running clang-tidy, this list will be appended to the compile command.
-
-### `files`
-
-`files`: Definitions of filetypes
-
-Every linter must define the set of filetypes it applies to in the `lint.files` section.
-
-New filetypes are defined with the name and extensions properties. They may also include the comments properties to describe what style of comments are used in these files.
-
-This is how the C++ source filetype is defined. See also [Files and Caching](./files-and-caching).
-
-```yaml
-lint:
- files:
- - name: c++-source
- extensions:
- - C
- - cc
- - cpp
- - cxx
- comments:
- - slashes-block
- - slashes-inline
-```
-
-### `ignore`
-
-`ignore`: files to be ignored by linters.
-
-### `reuse_upstream`
-
-`reuse_upstream`: If enabled, Trunk will cache upstream sandboxes instead of creating a new one each time. Options are `true`, or `false`.
-
-### `runtimes`
-
-`runtimes`: Node, python, cargo, etc. Used to define or override a runtime environment for package management. [See Runtimes](../runtimes).
-
-### `skip_missing_compile_command`
-
-`skip_missing_compile_command`: For linters that depend on compile commands, setting this will cause Trunk to skip files without a compile command rather than report an error.
-
-### `threshold`
-
-`threshold`: where you specify the blocking behavior of linters. The [threshold](../../../linters/configure-linters#blocking-thresholds) for whether an error from a linter should block commits or not.
-
-### `upstream_mode`
-
-`upstream_mode`: How to generate the upstream sandbox used for generating lint results for revisions not currently checked out. Options are`symlink` (default), `hardlink`, or `copy`. If using `copy`, it can be slow without also enabling `reuse_upstream: true`.
diff --git a/code-quality/overview/getting-started/configuration/lint/output-parsing.mdx b/code-quality/overview/getting-started/configuration/lint/output-parsing.mdx
deleted file mode 100644
index a61c5d7..0000000
--- a/code-quality/overview/getting-started/configuration/lint/output-parsing.mdx
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: "Output Parsing"
----
-If you have a command or utility that you want to run pretty much as-is, but Trunk doesn't natively understand how to parse it, you can inject your own custom parser to translate its output into a format that Trunk does understand!
-
-For example, let's say that we want to use `grep` as a linter, but we want to add more context to the matches. We could define a custom linter like so:
-
-```yaml
-lint:
- definitions:
- - name: todo-finder
- files: [ALL]
- commands:
- - output: regex
- # matches the parser run output
- parse_regex: "((?P.*):(?P\\d+):(?P
\\d+):
- \\[(?P.*)\\] (?P.*) \\((?P.*)\\))"
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- run:
- "sed -E 's/(.*):([0-9]+):(.*)/\\1:\\2:0:
- [error] Found todo in \"\\3\" (found-todo)/'"
-```
-
-The execution model that `trunk` follows for a parser is that it will:
-
-* execute the linter's `run` field, asserting that either:
- * the linter's exit code is in `success_codes`, or
- * the linter's exit code is not in `error_codes`;
-* execute `parser.run`,
- * with the `read_output_from` of the linter execution fed to `parser.run` as `stdin`,
- * assert that the exit code of the parser is 0, and then
-* use `output` to determine how it should parse the parser's `stdout`.
-
-Note that you can also set `parser.runtime` to [`node`](./output-parsing#node) or [`python`](./output-parsing#python) so that you can write your parser in Javascript or Python instead, if you so prefer! You can find plenty of examples of python parsers in our [plugins repo](https://github.com/trunk-io/plugins).
-
-
-
-**Node**
-
-```yaml
-lint:
- definitions:
- - name: todo-finder-node
- files: [ALL]
- commands:
- - output: parsable
- # parse_regex matches the parser run output
- parse_regex: "((?P.*):(?P\\d+):(?P
\\d+):
- \\[(?P.*)\\] (?P.*) \\((?P.*)\\))"
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- runtime: node
- run: ${workspace}/todo-finder-parser.js
-```
-
-```javascript
-#!/usr/bin/env node
-'use strict';
-let readline = require('readline');
-let rl = readline.createInterface({ input: process.stdin });
-
-rl.on('line', function(line){
- let match = line.match(/(.*):([0-9]+):(.*)/);
-
- if (match) {
- let [_, path, line_number, line_contents] = match;
- console.log(`${path}:${line_number}:0: [error]`
- +` Found todo in "${line_contents}" (found-todo)`);
- }
-```
-
-Remember to run `chmod u+x todo-finder-parser.js` so that `trunk` can run it!
-
-
-**Python**
-
-```yaml
-lint:
- definitions:
- - name: todo-finder-python
- files: [ALL]
- commands:
- - output: parsable
- # parse_regex matches the parser run output
- parse_regex: "((?P.*):(?P\\d+):(?P
\\d+):
- \\[(?P.*)\\] (?P.*) \\((?P.*)\\))"
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- runtime: python
- run: ${workspace}/todo-finder-parser.js
-```
-
-```python
-#!/usr/bin/env python
-import re, sys
-
-for line in sys.stdin.readlines():
- match = re.match("(.*):([0-9]+):(.*)", line)
- if match:
- path, line_number, line_contents = match.groups()
- print(f"{path}:{line_number}:0: [error] "
- "Found todo in \"{line_contents}\" (found-todo)")
-
-```
-
-Remember to run `chmod u+x todo-finder-parser.py` so that `trunk` can run it!
-
-
diff --git a/code-quality/overview/getting-started/configuration/lint/output.mdx b/code-quality/overview/getting-started/configuration/lint/output.mdx
deleted file mode 100644
index 9364527..0000000
--- a/code-quality/overview/getting-started/configuration/lint/output.mdx
+++ /dev/null
@@ -1,207 +0,0 @@
----
-title: "Output"
----
-## Output Sources
-
-The output format that Trunk expects from a linter is determined by its [`output`](./output#output-types) type.
-
-**`stdout`, `stderr` or `tmp_file`**
-
-`trunk` generally expects a linter to output its findings to `stdout`, but does support other output mechanisms:
-
-| `read_output_from` | Description |
-| ------------------ | --------------------------------------------------------------------------------- |
-| `stdout` | Standard output. |
-| `stderr` | Standard error. |
-| `tmp_file` | If `${tmpfile}` was specified in `command`, the path of the created `${tmpfile}`. |
-
-## Output Types
-
-Trunk supports several different generic output types. Most linters will use one of these output types, but if your linter doesn't conform well to any of these specifications, you can also write a [custom parser](./output-parsing). In general, SARIF should be preferred over other formats because it is the most flexible and battle tested.
-
-Trunk currently supports the following linter output types.
-
-| Linter Type | Autofix support | Description |
-|---|---|---|
-| [`sarif`](#sarif) | ✓ | Produces diagnostics as [Static Analysis Results Interchange Format](https://docs.oasis-open.org/sarif/sarif/v2.0/sarif-v2.0.html) JSON. |
-| [`lsp_json`](#lsp-json) | | Produces diagnostics as [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) JSON. |
-| [`pass_fail`](#pass-fail-linters) | | Writes a single file-level diagnostic to `stdout`. |
-| [`regex`](#regex) | | Produces diagnostics using a custom regex format. |
-| [`arcanist`](#arcanist) | ✓ | Produces diagnostics as Arcanist JSON. |
-| [`rewrite`](#formatters) | ✓ | Writes the formatted version of a file to `stdout`. |
-
-If your linter produces a different output type, you can also write a [parser](./output-parsing) to transform the linter's output into something Trunk can understand.
-
-### SARIF
-
-`output: sarif` linters produce diagnostics in the [Static Analysis Results Interchange Format](https://docs.oasis-open.org/sarif/sarif/v2.0/sarif-v2.0.html):
-
-```json
-{
- "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
- "version": "2.1.0",
- "runs": [
- {
- "results": [
- {
- "level": "warning",
- "locations": [
- {
- "physicalLocation": {
- "artifactLocation": {
- "uri": "/dev/shm/sandbox/detekt_test_repo/example.kt"
- },
- "region": {
- "startColumn": 12,
- "startLine": 18
- }
- }
- }
- ],
- "message": {
- "text": "A class should always override hashCode when overriding equals and the other way around."
- },
- "ruleId": "detekt.potential-bugs.EqualsWithHashCodeExist"
- }
- ],
- "tool": {
- "driver": {
- "downloadUri": "https://github.com/detekt/detekt/releases/download/v1.19.0/detekt",
- "fullName": "detekt",
- "guid": "022ca8c2-f6a2-4c95-b107-bb72c43263f3",
- "informationUri": "https://detekt.github.io/detekt",
- "language": "en",
- "name": "detekt",
- "organization": "detekt",
- "semanticVersion": "1.19.0",
- "version": "1.19.0"
- }
- }
- }
- ]
-}
-```
-
-### LSP JSON
-
-`output: lsp_json` linters output issues as [Language Server Protocol](https://microsoft.github.io/language-server-protocol/specification#diagnostic) JSON.
-
-```json
-[
- {
- "message": "Not formatted correctly. Missing owner",
- "code": "missing-owner",
- "severity": "Error",
- "range": {
- "start": {
- "line": 12,
- "character": 8
- },
- "end": {
- "line": 12,
- "character": 12
- }
- }
- },
- {
- "message": "TODO is assigned to someone not listed in this project",
- "code": "unknown-user",
- "severity": "Warning",
- "range": {
- "start": {
- "line": 37,
- "character": 0
- },
- "end": {
- "line": 37,
- "character": 14
- }
- }
- }
-]
-```
-
-### Pass/Fail Linters
-
-`output: pass_fail` linters find either:
-
-* no issues in a file, indicated by exiting with `exit_code=0`, or
-* a single file-level issue in a file, whose message is the linter's `stdout`, indicated by exiting\
- with `exit_code=1`.
-
-> Note: Exiting with `exit_code=1` but writing nothing to `stdout` is considered to be a linter tool failure.
->
-> Note: `pass_fail` linters are required to have `success_codes: [0, 1]`
-
-### Regex
-
-`output: regex` linters produce output that can be parsed with custom regular expressions and named capture groups. The regular expression is specified in the `parse_regex` field.
-
-`regex` supports capturing strings from a linter output for the following named capture groups:
-
-* `path`: file path (required)
-* `line`: line number
-* `col`: column number
-* `severity`: one of `note`, `notice`, `allow`, `deny`, `disabled`, `error`, `info`, `warning`
-* `code`: linter diagnostic code
-* `message`: description
-
-For example, the output
-
-```
-.trunk/trunk.yaml:7:81: [error] line too long (82 > 80 characters) (line-length)
-```
-
-can be parsed with the regular expression
-
-```
-((?P.*):(?P\d+):(?P
\d+): \[(?P.*)\] (?P.*) \((?P.*)\))
-```
-
-and would result in a `trunk` diagnostic that looks like this:
-
-```
-7:81 high line too long (82 > 80 characters) regex-linter/line-length
-```
-
-In the event that multiple capture groups of the same name are specified, the nonempty capture will be preferred. If there are multiple non-empty captures, a linter error will be thrown. Adjust your regular expression accordingly to match the specifics of your output.
-
-> Note: For additional information on building custom regular expressions, see [re2](https://github.com/google/re2/wiki/Syntax). More complicated regex may require additional escape characters in yaml configuration.
-
-### Arcanist
-
-You can also output JSON using the Arcanist format.
-
-```json
-[
- {
- "Char": 1,
- "Code": "missing_copyright",
- "Description": "Message about things\nMaybe contain multiple lines and web\nlinks\nhttps://website.com/notice-about-stuff\n",
- "Line": 1,
- "Name": "Incorrect (or missing) copyright notice",
- "OriginalText": "",
- "Path": "somefile.py"
- }
-]
-```
-
-### Formatters
-
-`output: rewrite` linters write the formatted version of a file to `stdout`; this becomes an autofix which `trunk` can prompt you to apply (which is what `trunk check` does by default) or automatically apply for you (if you `trunk check --fix` or `trunk fmt`).
-
-For example, if you wanted a linter to normalize your line endings, you could do this:
-
-```yaml
-lint:
- definitions:
- - name: no-carriage-returns
- files: [ALL]
- commands:
- - output: rewrite
- formatter: true
- command: sed s/\r// ${target}
- success_codes: [0]
-```
-
-Setting `formatter: true` will cause `trunk fmt` to run this linter.
diff --git a/code-quality/overview/getting-started/configuration/merge.mdx b/code-quality/overview/getting-started/configuration/merge.mdx
deleted file mode 100644
index 87bec5c..0000000
--- a/code-quality/overview/getting-started/configuration/merge.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: "Merge"
----
-Custom `required_statuses` defined in the `.trunk/trunk.yaml` file take precedence over the GitHub required status checks from branch protection.
-
-Use custom `required_statuses` when your checks don't match what you configure on GitHub one-to-one.
-
-```yaml
-version: 0.1
-```
-
-```yaml
-cli:
- version: 1.16.0
-merge:
- required_statuses:
- - Trunk Check
- - Unit tests & test coverage
- # Add more required statuses here
-```
diff --git a/code-quality/overview/getting-started/configuration/per-user-overrides.mdx b/code-quality/overview/getting-started/configuration/per-user-overrides.mdx
deleted file mode 100644
index 2e2d9c9..0000000
--- a/code-quality/overview/getting-started/configuration/per-user-overrides.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Per User Overrides"
----
-## Per-User Customization
-
-Trunk can also be managed by the `.trunk/user.yaml` file in your repository. This file is optional, but it allows individual developers to customize how they want `trunk` to run on their machines.
-
-Simply configure `.trunk/user.yaml` as you would for `.trunk/trunk.yaml`. Now you can add additional linters, enable [actions](../actions/), or specify [default command options](./#cli), without impacting the way other developers run `trunk`.
-
-Be mindful that `.trunk/user.yaml` takes precedence over `.trunk/trunk.yaml`, so substantial modifications could violate hermeticity.
-
-## Identity Config
-
-Trunk also saves a user config in `$HOME/.cache/trunk/user.yaml`. This is auto-generated in order to manage [anonymous usage data](./telemetry) and persist login sessions.
diff --git a/code-quality/overview/getting-started/configuration/plugins/exported-configs.mdx b/code-quality/overview/getting-started/configuration/plugins/exported-configs.mdx
deleted file mode 100644
index a3ece1f..0000000
--- a/code-quality/overview/getting-started/configuration/plugins/exported-configs.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: "Exporting linter configs"
-description: "Reusing linter configs across projects."
----
-Plugin repositories can also export their own linter config files to keep configuration synced across an organization. Simply add an `exported_configs` section to a `plugin.yaml`, with paths to all of the config files you want to export, relative to the repository root. For example:
-
-```yaml
-lint:
- exported_configs:
- - configs:
- - .eslintrc.yaml
- - .trunk/configs/.shellcheckrc
-```
-
-These config files will be available for linters that enumerate them in `affects_cache`or `direct_configs` to reference. These files are automatically symlinked into the repository root during linter execution. The set of applicable config files can be viewed in the details yaml file listed when running `trunk check --verbose`.
-
-Plugin-exported configs are sourced in lockstep with the plugin itself, so you will need to update\
-the `ref` field to use the latest configs.
-
-Note that if you're using an IDE Extension like clangd with an LSP that relies on those configs being in the root, you will need to manually create a symlink to the plugin's config. You can do this by running `ln -s .trunk/plugins//`.
-
-For an example of a plugin repo with config files, see our own [configs](https://github.com/trunk-io/configs) repo.
-
-### Importing configs
-
-This process can also be reversed to import config files from a plugins repository which\
-does not explicitly export them. Given a plugin sourced with id `trunk`, the sourcing repository can\
-achieve the same effect by including the following in its `.trunk/trunk.yaml`.
-
-```yaml
-lint:
- exported_configs:
- - plugin_id: trunk
- configs:
- - .eslintrc.yaml
- - .trunk/configs/.shellcheckrc
-```
diff --git a/code-quality/overview/getting-started/configuration/plugins/external-repositories.mdx b/code-quality/overview/getting-started/configuration/plugins/external-repositories.mdx
deleted file mode 100644
index 490e606..0000000
--- a/code-quality/overview/getting-started/configuration/plugins/external-repositories.mdx
+++ /dev/null
@@ -1,129 +0,0 @@
----
-title: "Share config between codebases"
-description: "Sharing configuration between codebases using public config repos"
----
-To standardize Trunk configuration across an organization, you can create and publish a public plugins repository. This repo can define new linter definitions, specify enabled linters and actions, and even [export linter configs](./exported-configs).
-
-Once you've created your plugin repository, you can source it in other repositories to adopt shared configuration across your organization. For an example of how we do this in our own org, check out our [configs repo](https://github.com/trunk-io/configs).
-
-Note that in order to keep linters and tools up to date in your plugin configs repo, you'll need to run `trunk upgrade --apply-to=plugin.yaml` to apply [upgrades](../../../linters/upgrades). After making a public GitHub release with your plugin changes, other dependent repos will pick up these changes automatically when running `trunk upgrade`.
-
-### Get started
-
-Let's walk through how to create a simple linter that warns about TODOs in your codebase.
-
-We'll start by creating a new Git repository:
-
-```bash
-PLUGIN_PATH=~/my-first-trunk-plugin
-mkdir "${PLUGIN_PATH}" && cd "${PLUGIN_PATH}"
-git init
-```
-
-And then create a linter that can find TODOs in your codebase using `grep` and `sed`:
-
-```bash
-cat >plugin.yaml <
-trunk check enable todo-finder
-```
-
-And now, to demonstrate how this works, let's `trunk check` some files where we know we have TODOs:
-
-```bash
-trunk check $(git grep -li todo | head -n 10)
-```
-
-which will show you something like this:
-
-```
-.eslintrc.yaml:19:0
- 19:0 high Found todo in " # TODO(chris): Figure out why this causes a massive slowdown ... .trunk/dev-out/O1F.txt local.todo-finder/found-todo
- 101:0 high Found todo in " node/no-unpublished-import: off # TODO: do we want this?" local.todo-finder/found-todo
-```
-
-### Organizing your code
-
-In the example we gave above, we put the linter's source code in `plugin.yaml`, which is fine for an example, but not really great for anything more than that. We can take the `sed` command from the plugin we created earlier and push that into the shell script:
-
-```bash
-#!/bin/bash
-sed -E 's/(.*):([0-9]+):(.*)/\1:\2:0: [error] Found todo in \"\3\" (found-todo)/'"
-```
-
-> Tip: Remember to run `chmod u+x todo-finder-parser.sh` so that `trunk` can run it!
-
-and also point the definition of `todo-finder` at it:
-
-```bash
-version: 0.1
-lint:
- definitions:
- - name: todo-finder
- files: [ALL]
- commands:
- - output: parsable
- run: grep --with-filename --line-number --ignore-case todo ${target}
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- run: ${plugin}/todo-finder-parser.sh
-```
-
-We can also go another step and push the entire linter definition into a shell script:
-
-```bash
-#!/bin/bash
-grep --with-filename --line-number --ignore-case todo "${1}" | \
- sed -E 's/(.*):([0-9]+):(.*)/\1:\2:0: [error] Found todo in \"\3\" (found-todo)/'"
-```
-
-```yaml
-version: 0.1
-lint:
- definitions:
- - name: todo-finder
- files: [ALL]
- commands:
- - output: parsable
- run: ${plugin}/todo-finder.sh
- success_codes: [0]
-```
-
-See our documentation on [custom linters](../../../linters/custom-linters) and [custom parsers](../lint/output-parsing) for more on what you can do, such as writing your parser in Javascript or Python!
-
-### Publishing your plugin
-
-To share your plugin with the world, all you have to do is tag a release and push it to GitHub, GitLab, or some other repository hosting service:
-
-```bash
-git add .
-git commit "Create a TODO finder"
-git tag -a v0.0.0 --message "Initial TODO finder release"
-git remote add origin
-git push origin main v0.0.0
-```
-
-Now that it's available on the Internet, everyone else can just use your plugin by running:
-
-```bash
-trunk plugins add --id=their-first-plugin v0.0.0
-```
diff --git a/code-quality/overview/getting-started/configuration/plugins/index.mdx b/code-quality/overview/getting-started/configuration/plugins/index.mdx
deleted file mode 100644
index 3fd1f80..0000000
--- a/code-quality/overview/getting-started/configuration/plugins/index.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: "Plugins"
----
-### Plugin config merging
-
-Trunk uses a plugin system where a root configuration is defined in the [trunk-io/plugin repository](https://github.com/trunk-io/plugins). You can import many plugin config sources, and fields defined at each level override the level above.
-
-
-When plugin configs are merged, only fields defined in a config file are merged into the level above. You can define just the fields you wish to override in `.trunk/trunk.yaml and .trunk/user.yaml.`
-
-
-When using trunk, you can merge several sets of configuration files with a `trunk.yaml` schema. Config merging proceeds as follows:
-
-1. Remote plugins sourced in `.trunk/trunk.yaml` (and `.trunk/user.yaml`). Plugins are sourced in the order they're defined, with later plugins overriding those defined before it. The [`trunk`](https://github.com/trunk-io/plugins) plugin is implicitly sourced first.
-2. Your repo level `.trunk/trunk.yaml` file, complete with a CLI version and any definitions or enables. Configurations defined here override what's defined in the remote plugins.
-3. Optionally, `.trunk/user.yaml`, a local **git-ignored** file where users can provide their own overrides.
-
-Additionally, any files enumerated in the lint `exported_configs` section are symlinked from their relevant plugin into the root of the workspace when an applicable linter is run with `trunk check`.
-
-### Importing a plugin repository
-
-By default, trunk imports the trunk-io/plugins repository. To import a repo add it to the `plugins.sources` list. Each repo requires a URI and ref.
-
-```yaml
-plugins:
- sources:
- - id: trunk
- uri: https://github.com/trunk-io/plugins
- ref: v1.2.6
-```
-
-| Field | Description |
-|---|---|
-| `id` | unique identifier for this repository |
-| `uri` | address used to clone the target repository |
-| `ref` | commit id or tag to checkout. **Do not use branch names, as these can be unstable** |
-| `local` | path to local (on-disk) repository. Takes precedence over uri/ref if defined |
-| `import_to_global` (default: `true`) | import content into the global namespace. If set to false actions and linters defined in the plugin must be referenced by `.` |
-
-### Plugin capabilities
-
-Any configuration used in `trunk.yaml` can also be used in a plugin repository, with [some exceptions](./#excluded-fields). A plugin repository must have one root level `plugin.yaml` and can have any number of other `plugin.yaml` files in other subdirectories. These configuration files are then merged into one composite plugin configuration.
-
-The most common use for a plugin repository is to define custom linters, actions, or tools. But they can also be used to define a common set of shared tools across an organization. For more info, see [organization configs](./external-repositories).
-
-The root `plugin.yaml` file may also have a `required_trunk_version` field which governs compatibility when [upgrading](../../../linters/upgrades) between CLI versions.
-
-#### Add a plugin to your `trunk.yaml` file
-
-To add a plugin from GitHub:
-
-```
-trunk plugins add https://github.com/trunk-io/plugins --id=trunk
-```
-
-To add a plugin from GitHub at a specific version:
-
-```
-trunk plugins add https://github.com/trunk-io/plugins v1.2.6 --id=trunk
-```
-
-To add a plugin from a local repository:
-
-```
-trunk plugins add /home/user/self/hello-world --id=hello-world
-```
-
-Note that when specifying a remote plugin, the `ref` field must be a tag or SHA.
-
-### Plugins scope
-
-Plugins are merged serially, in the order that they are sourced, and can override almost any Trunk\
-configuration. This allows organizations to provide a set of overrides and definitions in one\
-central place.
-
-For instance, you can create your own `my-plugins` repository with `plugin.yaml`:
-
-```yaml
-version: 0.1
-lint:
- definitions:
- - name: trufflehog
- commands:
- - name: lint
- # override trufflehog to use '--only-verified'
- run: trufflehog filesystem --json --fail --only-verified ${target}
- enabled:
- - ruff@0.0.256
-```
-
-sourced in a `.trunk/trunk.yaml` file from another repository as follows:
-
-```yaml
-version: 0.1
-plugins:
- sources:
- - id: trunk
- uri: https://github.com/trunk-io/plugins
- ref: v1.2.6
- - id: my-plugins
- local: ../my-plugins
-```
-
-When a user runs `trunk` in the sourcing repository, they will already have `ruff` enabled, along with the `trufflehog` override from the `my-plugins` repository.
-
-Note that private GitHub plugin repositories are not currently supported.
-
-### Excluded fields
-
-Plugin `sources`, as well as the `cli` `version`, are not merged from plugin repositories to ensure\
-that config merging occurs in a predictable, stable fashion.
diff --git a/code-quality/overview/getting-started/configuration/runtimes.mdx b/code-quality/overview/getting-started/configuration/runtimes.mdx
deleted file mode 100644
index b277e7d..0000000
--- a/code-quality/overview/getting-started/configuration/runtimes.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: "Runtimes"
----
-Trunk manages the hermetic installation of all required runtimes. You can also specifically pin a version of a runtime you'd like Trunk to use, or tell Trunk to reuse an already-installed runtime on the system.
-
-Trunk makes it easy for you to run tools (such as linters and actions) because, under the hood, Trunk actually downloads everything a given tool depends on, and then executes said tool in the context of its dependencies. In other words, you can run tools like `golangci-lint` and `rubocop` without wasting hours figuring out how to install the right Go and Ruby versions on your machine, because Trunk will install a `go` and `ruby` runtime for those tools to depend on.
-
-Importantly, just like how Trunk by design requires you to version your tools, i.e. specify which version of `golangci-lint` and `rubocop` is enabled in your repository at a given commit, Trunk also versions your runtimes. This means that you can stop asking questions like "Wait, which version of Go are you using?" and "How do I choose a Ruby version to install on this new Jenkins runner?"; instead, all you have to do is look at the `runtimes` section in your `.trunk/trunk.yaml`, and you know which version of which runtime Trunk will use for a tool at any given moment:
-
-```
-runtimes:
- enabled:
- - go@1.18.3
- - node@16.14.2
- - python@3.10.3
- - ruby@3.1.0
-```
-
-## How does this work?
-
-Runtimes are defined by a combination of configuration and native code inside Trunk itself. Let's walk through an example, `prettier`:
-
-```yaml
-lint:
- definitions:
- - name: prettier
- runtime: node
- package: prettier
- commands:
- - run: prettier -w ${target}
- ...
-```
-
-Since Prettier uses the `node` runtime, let's also look at that definition; specifically, the `runtime_environment` and `linter_environment`:
-
-```yaml
-runtimes:
- definitions:
- - type: node
- linter_environment:
- - name: PATH
- list:
- - ${linter}/node_modules/.bin
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list:
- - ${runtime}/bin
-```
-
-Now we have all the config fields we need to understand what Trunk does in this example.
-
-### Installing `prettier`
-
-Before Trunk can run `prettier`, it needs to install `prettier`; this is done using the package manager associated with a given runtime, the mechanism for which is defined natively inside Trunk (i.e. Trunk has custom code for every runtime to manage how packages for said runtime are installed).
-
-For most runtimes, this is as simple as executing the runtime's package manager in the context of the `runtime_environment`; in this example, that means doing `npm install ${package}` with environment variables `HOME=${home}` and `PATH=${runtime}/bin`.
-
-### Running `prettier`
-
-Once `prettier` is installed, we combine its runtime's `linter_environment` with any other environment variables that might be defined in a given `lint.definitions` entry (in this case there are none), and then use that as the environment when we execute the command for a given linter.
-
-## Specifying a runtime version
-
-If you would like to use the system-installed runtime instead of the Trunk managed version you can always use the `runtimes.definitions.system_version` property in your `trunk.yaml` file.
-
-```yaml
-runtimes:
- enabled:
- - go@x.y.z
-
-# or
-runtimes:
- enabled:
- - go@>=x.y.z
- definitions:
- - type: go
- system_version: allowed
-```
-
-If you choose to use a system-managed version, you will also need to specify a runtime version constraint in your enabled section, e.g. `python@>=3.0.0`.
diff --git a/code-quality/overview/getting-started/configuration/telemetry.mdx b/code-quality/overview/getting-started/configuration/telemetry.mdx
deleted file mode 100644
index 1397878..0000000
--- a/code-quality/overview/getting-started/configuration/telemetry.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "Telemetry"
----
-Trunk sends basic usage metrics from our local tools ([CLI](/broken/pages/OJc6wVrAfc2SLQZlJ2m1) & [VS Code Extension](../../ide-integration/vscode)) to our analytics system to help us understand our usage and improve our tools over time. We do not send your code or codebase to our backend.
-
-## Why we collect usage data
-
-Our product team constantly works on feature enhancement and new areas to invest in. Usage data allows us best to understand the ergonomics and performance of our tools. For example, if we add a new subcommand to the command line interface - how often is it used? Additionally, usage data is gathered to track usage and compliance against our free and paid product offerings.
-
-To give concrete examples: we track our users' client version and operating system to understand backward compatibility requirements, and the time it takes our user base to upgrade to our latest releases.
-
-## Example usage data
-
-```json
-{
- "anonymous_id": ,
- "command": "check --all",
- "launcher_version": "1.2.3",
- "os": "macOS",
- "release": 1.4.1,
- "source": "client",
- "time": ,
- "exit_code": 0,
- "duration_ms": 232,
- "repository":
-}
-```
-
-## Can I disable usage data?
-
-Yes. You can disable usage telemetry by setting the following environment variable:
-
-```bash
-TRUNK_TELEMETRY=off
-```
diff --git a/code-quality/overview/getting-started/configuration/tools.mdx b/code-quality/overview/getting-started/configuration/tools.mdx
deleted file mode 100644
index 3d0228c..0000000
--- a/code-quality/overview/getting-started/configuration/tools.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: "Tools"
----
-Tool definitions
-
-Each tool definition shares a set of attributes:
-
-| Field | |
-| --- | --- |
-| `name` | The name of the tool. Must be unique. |
-| `known_good_version` | The default version to initialize the tool at (required). |
-| `shims` | A list of binaries exposed by the tool. Each of these will correspond to one identically named executable installed in `.trunk/tools.`In the most common case, there is exactly one shim matching the name of the tool. We'll discuss other cases below. |
-| `environment` | You can specify an environment for the tool. We provide the `${tool}` template argument that resolves to the installation directory of the tool. By default, we prepend this to `$PATH` within the shim script, so this is used to locate the binary. For legacy reasons, `${linter}` also resolves to this directory. |
-
-> Note: If the tool has a `runtime` attribute, the runtime's environment is merged in to its environment (discussed in the examples below).
-
-Broadly speaking, there are 3 kinds of tools - download, package, and runtime-based tools. We'll look at each one in turn:
-
-#### Download-based tools
-
-Download-based tools are straightforward: They reference a named download configuration in the global `downloads` section. Here is an example:
-
-```yaml
-downloads:
- - name: gh
- downloads:
- - os:
- linux: linux
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.tar.gz
- strip_components: 1
- - os:
- windows: windows
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.zip
- strip_components: 1
- # macOS releases since 2.28.0 started using .zip instead of .tar.gz
- - os:
- macos: macOS
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.zip
- strip_components: 1
- version: ">=2.28.0"
- - os:
- macos: macOS
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://github.com/cli/cli/releases/download/v${version}/gh_${version}_${os}_${cpu}.tar.gz
- strip_components: 1
-tools:
- definitions:
- - name: gh
- download: gh
- known_good_version: 2.27.0
- environment:
- - name: PATH
- list: ["${tool}/bin"]
- shims: [gh]
-```
-
-Note that for the downloaded archive, the binary named `gh` is inside the `bin` directory, so we use the environment to point the `$PATH` there.
-
-#### Download fields
-
-`strip_components`: This number of leading directory components to remove from all files in an archive when extracting.
-
-`rename_single_file`: If an archive contains a single file, this will cause that file to be renamed to the name of the tool. This is most useful for downloads of gzip'd binaries with the platform name in the binary.
-
-#### Package-based tools
-
-Package-based tools depend on specified `package` and `runtime` attributes. Here is an example of configuring `mypy` as a tool:
-
-```yaml
-tools:
- definitions:
- - name: mypy
- runtime: python
- package: mypy
- shims: [mypy]
- known_good_version: 0.931
- extra_packages:
- - types-six@1.16.21
- - types-request
-```
-
-`extra_packages` behaves equivalently to a package file like `requirements.txt` for Python or `package.json` for Node. They can be optionally pinned at versions.
-
-The version of the primary package (in this case, `mypy`) is specified in the `tools.enabled`. So to enable the `mypy` tool at `1.4.0`, list it as `- mypy@1.4.0`.
-
-If you don't want to include additional packages in the tool definition, you can instead make them explicit in the enabled section of your `.trunk/trunk.yaml` as you would for [linters](../../linters/), for example:
-
-```yaml
-tools:
- enabled:
- - mypy@1.4.0:
- packages:
- - types-six@1.16.21
-```
-
-#### Runtime-based tools
-
-Runtime-based tools are a special case that are not explicitly defined. Rather, each runtime object exposes a set of `shims` (just like `tool` definitions).
-
-If the runtime is enabled and listed in `tools.runtimes`, then shims exposed by that runtime are automatically installed in the `.trunk/tools` directory alongside those of other tools (`trunk tools enable ` does that for you). Thus you can run `python`, `pip`, etc as `trunk`-managed tools.
-
-Example:
-
-```yaml
-tools:
- runtimes:
- - python
-```
-
-If this is disruptive to your workflow, simply remove the runtime's name `(go, node, python,...)` from `tools.runtimes` section or run `trunk tools disable ` which will handle it for you. Runtimes cannot be enabled or versioned via the `tools.enabled` section, however, and runtimes must be enabled in the `runtimes` section to be available to have their shims installed.
diff --git a/code-quality/overview/getting-started/index.mdx b/code-quality/overview/getting-started/index.mdx
deleted file mode 100644
index 041487d..0000000
--- a/code-quality/overview/getting-started/index.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: "Code Quality CLI"
----
-Trunk provides command-line tools for different products. Choose your product below:
-
-* [Trunk Launcher Install](./install): Trunk uses a launcher to automatically install the appropriate CLI for your platform
-* [Trunk Code Quality CLI](./commands-reference/): commands reference
-* [Trunk Code Quality CLI Configuration](./configuration/): the Trunk CLI has its top-level config defined in `.trunk/trunk.yaml`
-* [Trunk Tools CLI](./tools): manage tools used by your repo
-* [Trunk Actions](./actions/): local workflow automation and githooks manager
-
-## Initializing Trunk in a git repo is as simple as running:
-
-```bash
-trunk init
-```
-
-This will scan your repository and create a `.trunk/trunk.yaml` file which enables all the linters, formatters, and security analyzers that [Trunk C](./code-quality)[ode Quality ](./code-quality)recommends.
-
-
-Security-conscious users may want to also record the signature of the CLI, which the [Trunk Launcher](./install#the-trunk-launcher) will use to verify the CLI's provenance:
-
-```
-trunk init --lock
-```
-
-
-### Tweak the configuration
-
-Trunk is completely controlled through the `trunk.yaml` file. If for example you are not using the `check` tool you can safely remove the `lint` section from the file.
-
-[Learn more about CLI configuration](./configuration/)
-
-### Single-player mode
-
-If you want to run `trunk` inside your repository but are not ready to roll it out team-wide, you can run `trunk` in what we call single-player mode.
-
-When in single-player mode, the `.trunk` directory will be listed in `.git/info/exclude`, which will cause git to ignore its contents. When trunk is automatically initialized by the VSCode extension, you will be started in this mode. You can also initialize this way explicitly with the `trunk init --single-player-mode` command. If at any time you wish to toggle single-player mode on or off, it can be done with the following two commands:
-
-```bash
-# Turn single-player mode on.
-trunk config hide
-```
-
-```bash
-# Turn single-player mode off.
-trunk config share
-```
-
-### Only enabling detected tools
-
-`trunk init` supports the flags `--only-detected-formatters` and `--only-detected-linters`. Each of these flags limits `trunk init` to only enable tools that we detect you are already using.
-
-We provide support for running `trunk` in GitHub Codespaces.
-
-[GitHub Codespaces](https://github.com/features/codespaces) are fully configured virtual containers for developing your GitHub repositories.
diff --git a/code-quality/overview/getting-started/install.mdx b/code-quality/overview/getting-started/install.mdx
deleted file mode 100644
index 9b42e71..0000000
--- a/code-quality/overview/getting-started/install.mdx
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: "Install"
----
-### The Trunk launcher
-
-Trunk uses a launcher to automatically install the appropriate CLI for your platform. The launcher is a bash script that downloads the appropriate Trunk CLI version and runs it. The launcher invisibly runs the Trunk CLI version specified in a project's `.trunk/trunk.yaml` file. The actual Trunk CLI is a single binary that is cached locally in `~/.cache/trunk` and is updated automatically.
-
-### Install the launcher
-
-The Trunk CLI can be installed in many different ways, depending on your use case.
-
-#### Using NPM
-
-If your project uses a `package.json`, you can specify the Trunk Launcher as a dependency so your developers can start using Trunk after installing Node dependencies.
-
-
-```sh npm
-npm install -D @trunkio/launcher
-```
-```sh pnpm
-pnpm add -D @trunkio/launcher
-```
-```sh yarn
-yarn add -D @trunkio/launcher
-```
-```sh bun
-bun install -D @trunkio/launcher
-```
-
-
-Then add Trunk Launcher in your `package.json` as a script:
-
-```json
-{
- "scripts": {
- "trunk": "trunk",
- "lint": "trunk check",
- "fmt": "trunk fmt"
- }
-}
-```
-
-#### Using cURL
-
-You can install the Trunk Launcher script directly by downloading it through cURL. The launcher script supports both macOS and Linux environments.
-
-To allow your teammates to use `trunk` without installing anything, the launcher can be committed directly into your repo:
-
-```
-curl -LO https://trunk.io/releases/trunk
-chmod +x trunk
-git commit ./trunk -m "Commit Trunk to our repo"
-```
-
-When the launcher is called for the first time by your teammates, the Trunk Launcher will download, manage, and run the appropriate binary for the environment.
-
-#### Using Homebrew
-
-You can run the following command if you prefer to install this tool via homebrew. Keep in mind that other developers on your team will also have to install manually.
-
-```bash
-brew install trunk-io
-```
-
-#### Using Windows
-
-From **`git-bash` or `msys2`**, download the Bash launcher and add it to your `PATH`:
-
-```bash
-curl https://get.trunk.io -fsSL | bash
-```
-
-From **`powershell`**, download the powershell launcher:
-
-```
-Invoke-RestMethod -Uri https://trunk.io/releases/trunk.ps1 -OutFile trunk.ps1
-```
-
-Ensure you can execute powershell scripts:
-
-```
-Set-ExecutionPolicy Bypass -Scope CurrentUser
-```
-
-You can then execute trunk as `.\trunk.ps1`.
-
-#### Compatibility
-
-Trunk only supports Windows with the following versions and above:
-
-| Tool | Where to Modify | Minimum Required Version |
-|---|---|---|
-| CLI | `cli` `version` in `.trunk/trunk.yaml` | `1.13.0` |
-| Plugins | `ref` for the `trunk` plugin in `.trunk/trunk.yaml` | `v1.0.0` |
-| VSCode | Reload VSCode to update | `3.4.4` |
-
-You will also need to install [C and C++ runtime libraries](https://aka.ms/vs/17/release/vc_redist.x64.exe) in order to run some linters.
-
-### Uninstall instructions
-
-#### From your system
-
-Trunk has a very minimal installation, and therefore, there's not much to uninstall. The two system paths we use are:
-
-* `/usr/local/bin/trunk`: the [Trunk Launcher](./install#the-trunk-launcher)
-* `~/.cache/trunk`: cached versions of the trunk cli, linters, formatters, etc.
-
-You can delete those two paths to uninstall.
-
-#### From a repo
-
-To cleanly remove Trunk from a particular repo, run:
-
-```bash
-trunk deinit
-```
-
-#### VS Code extension
-
-To uninstall the Trunk VS Code extension, do so as you would any extension ([docs](https://code.visualstudio.com/docs/editor/extension-marketplace)). Then reload VS Code.
-
-### Binary download (not recommended)
-
-You can directly download the `trunk` binary. _We don't recommend this mode of operation because your ability to version the tool through_ `trunk.yaml` _will not function when launching_ `trunk` _directly from a downloaded binary._ Regardless you can bypass the launcher support by downloading the prebuilt binaries here:
-
-| variable | options |
-|---|---|
-| version | the semver of the binary you want to download |
-| platform | 'darwin`, 'linux' |
-
-```bash
-# for example https://trunk.io/releases/1.0.0/trunk-1.0.0-linux-x86_64.tar.gz
-https://trunk.io/releases/${version}/trunk-${version}-${platform}-x86_64.tar.gz
-```
-
-### Pre-installing tools
-
-Trunk hermetically manages all the tools that it runs. To do this, it will download and install them into its cache folder only when they are needed. If you would like to ensure that all tools are installed ahead of time, then you can use the `trunk install` command. This may be useful if you want to prepare to work offline or if you would like to include the tools in a docker image. On Linux and macOS you may find the cache folder at `$HOME/.cache/trunk`.
diff --git a/code-quality/overview/getting-started/tools.mdx b/code-quality/overview/getting-started/tools.mdx
deleted file mode 100644
index c500aeb..0000000
--- a/code-quality/overview/getting-started/tools.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: "Tools"
----
-You can use the Trunk CLI to manage tools used by your repo. Trunk CLI can install the tools needed for a project according to what's configured in the `trunk.yaml` config file and let your teammates easily install the same versions of the tools. Trunk will also help you expose those installed tools by dynamically adding them to your `PATH` when you enter the project directory, but will not pollute your `PATH` outside of the project.
-
-### Command line
-
-| trunk tools \ | Description |
-| -------------------------------- | ------------------------------------------------------------------------------ |
-| `list` | list all available tools in the repository and whether they are enabled or not |
-| `install` | install your enabled tools into `.trunk/tools` |
-| `enable` `[@version]` | enable the provided tool, optionally at a specified version |
-| `disable` `` | disable the provided tool |
-
-### Discovering tools
-
-The Trunk [plugins repo](https://github.com/trunk-io/plugins) ships with a collection of tools that can help supercharge your repository and provide examples for how to write your own. To see a list of tools that you can enable in your own repo run:
-
-```shell
-trunk tools list
-```
-
-
-.png)
-
-
-### Configuring shell hooks
-
-Before running any tools managed by Trunk, enable shell hooks. With shell hooks, Trunk can manage your path variable dynamically, which lets you install tools used only in specific repos without polluting your shell by installing global tools. This is especially useful if you work on two repos using the same tool, but locked to different versions.
-
-You can enable shell hooks by running `trunk shellhooks install`, which will install the Trunk hooks to the config file of your $SHELL. You can also run `trunk shellhooks install ` to install a specific shell hook.
-
-Supported shells:
-
-* bash
-* zsh
-* tcsh
-* fish
-* elvish
-
-For organizations that want to require the use of the hooks, they can add to the config file:
-
-```yaml
-# .trunk/trunk.yaml:
-version: 0.1
-cli:
- shell_hooks:
- enforce: true
-```
-
-On the next Trunk command (like check or fmt), it will update your shell RC file to load our hooks.
-
-After reloading your shell, whenever you're inside your repo at the command line, you can just run shims installed by `trunk tools` directly by name.
-
-N.B. There is a known incompatibility with direnv when using PATH\_ADD. To use our hooks, remove PATH\_ADD from your .envrc and add them to your Trunk config as such:
-
-```yaml
-version: 0.1
-cli:
- shell_hooks:
- path_add:
- - "${workspace}/tools"
-```
-
-Paths can either be absolute, or relative to the workspace using the special `${workspace}` variable.
-
-### Running tools
-
-With shell hooks enabled, you can just run your tools by their name. For example, if you have run `trunk tools install grpcui` to install the GRPC UI tool, you can run it with:
-
-```
-grpcui
-```
-
-#### Running tools without shell hooks
-
-Trunk installs your enabled tools into the `.trunk/tools` directory. Each tool exposes a list of **shims** (these may or may not be identically named to the tool - most typically a tool has one shim matching the name of the tool). Each shim is installed into the `.trunk/tools` directory.
-
-You can run your tools by referring to the path `/.trunk/tools/` but this is unwieldy. We highly recommend using our shell hooks to manage your PATH.
-
-### Troubleshooting linters
-
-Tools enable you to run your linter binaries on the command line independent of `trunk check` and test and troubleshoot your integrations more easily.
-
-Tools are configured in the `tools` section of `trunk.yaml`. As with other settings, you can override these values in your [User YAML](./configuration/per-user-overrides).
-
-```yaml
-tools:
- auto_sync: false # whether shims should be hot-reloaded off config changes.
- enabled:
- - bazel@6.0.0
- - mypy@1.4.1
- - ibazel@0.22.0
- - helm@3.9.4
- - eksctl@0.74.0
- - asciinema@2.1.0
- disabled:
- - gt
- definitions:
- - name: gh
- download: gh
- known_good_version: 2.27.0
- environment:
- - name: PATH
- list: ["${tool}/bin"]
- shims: [gh]
-```
-
-Like with actions and linters, we have a (versioned) `enabled` section and a `disabled` section, which can be manipulated using `trunk tools enable/disable`. There is also a list of `definitions`, which are merged across your `trunk.yaml`, `user.yaml`, as well as any plugins that you use.
-
-`auto_sync` controls whether or not Trunk automatically installs your tools for you when your config changes. This defaults to `true`. Note that the daemon must be running with the monitor in order for this to function properly.
diff --git a/code-quality/overview/ide-integration/github-codespaces.mdx b/code-quality/overview/ide-integration/github-codespaces.mdx
deleted file mode 100644
index c2c0704..0000000
--- a/code-quality/overview/ide-integration/github-codespaces.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: "GitHub Codespaces"
----
-We provide support for running `trunk` in GitHub Codespaces.
-
-[GitHub Codespaces](https://github.com/features/codespaces) are fully configured virtual containers for developing your GitHub repositories.
-
-## Installing the Trunk feature
-
-You can install the Trunk Launcher in your codespace by including the following line in your `devcontainer.json` file under `features`:
-
-```json
- "features": {
- "ghcr.io/trunk-io/devcontainer-feature/trunk": "latest",
- },
-```
-
-The feature is defined [here](https://www.github.com/trunk-io/devcontainer-feature).
-
-To have the launcher binary install the CLI tool and associated linters, you can add `trunk install` to `updateContentCommand` in `devcontainer.json`:
-
-```json
-"updateContentCommand": "trunk install",
-```
-
-Read the [GitHub docs](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-time-consuming-tasks-to-be-included-in-the-prebuild) to learn more about `updateContentCommand` .
-
-Note: You should only add `trunk install` if you have a Trunk-configured repository.
-
-You can then [configure pre-builds](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/configuring-prebuilds) to run from GitHub workflows, ensuring the `trunk` CLI and needed linters are available and ready to go when you need to boot up your codespace.
-
-## Installing the Trunk extension
-
-If you are using the Trunk feature, we will automatically install the Trunk extension on your behalf.
-
-Note: We highly recommend turning off auto-save in your VSCode settings in your codespace (or set autosave to a longer timeout). Saving files triggers the extension to re-lint, which can quickly overload the extension for anything but the fastest linters. The auto-save setting is detailed [here](https://code.visualstudio.com/docs/editor/codebasics#_save-auto-save).
-
-Otherwise, You can add `trunk` to your list of extensions in `devcontainer.json` -
-
-```json
- "customizations": {
- "vscode": {
- "extensions": [..., "trunk.io"]
- }
- },
-```
-
-Then you're all set to run `trunk` in your Codespace!
diff --git a/code-quality/overview/ide-integration/index.mdx b/code-quality/overview/ide-integration/index.mdx
deleted file mode 100644
index 7731873..0000000
--- a/code-quality/overview/ide-integration/index.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "IDE integrations"
----
-Code Quality helps you shorten the feedback loop by integrating with your favorite IDEs and code editors.
-
-### How it works
-
-Code Quality runs a daemon that looks for files that change in real time and lints the changes using the same tools and configuration as running `trunk check`. With LSP support, you will get instant feedback on your code changes as you write.
-
-### Supported IDEs
-
-
-
-
-
-
diff --git a/code-quality/overview/ide-integration/neovim.mdx b/code-quality/overview/ide-integration/neovim.mdx
deleted file mode 100644
index f0a1c6d..0000000
--- a/code-quality/overview/ide-integration/neovim.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: "Neovim"
----
-
-📘 The Trunk Code Quality Neovim Plugin is available for beta!
-
-Try it out by following the instructions below.
-
-
-### Prerequisites
-
-The Neovim Plugin needs the following prerequisites:
-
-| Tool | Minimum Required Version |
-| ------ | ------------------------ |
-| CLI | 1.17.0 |
-| Neovim | v0.9.2 |
-
-### Get started
-
-Using the [lazy.nvim](https://github.com/folke/lazy.nvim#readme) plugin manager:
-
-```lua
-require("lazy").setup({
- {
- "trunk-io/neovim-trunk",
- lazy = false,
- -- optionally pin a version
- tag = "v0.1.3",
- -- these are optional config arguments (defaults shown)
- config = {
- -- trunkPath = "trunk",
- -- lspArgs = {},
- -- formatOnSave = true,
- -- formatOnSaveTimeout = 10, -- seconds
- -- logLevel = "info"
- },
- main = "trunk",
- dependencies = {"nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim"}
- }
-})
-```
-
-For other plugin managers and installation methods, see our [Neovim Plugin repo](https://github.com/trunk-io/neovim-trunk#installation).
-
-### Features
-
-The Neovim Plugin is designed to mirror the [VSCode extension](./vscode). Supported features include:
-
-* Provide inline diagnostics and auto-fixes
-* Format files on save
-* Run [Trunk Actions](../getting-started/actions/) notifications
-* Display the linters that Trunk runs on a file
-
-### Limitations
-
-The Trunk Code Quality Neovim Plugin is in beta with limited support. If you encounter any issues, feel free to reach out on [Slack](https://slack.trunk.io).
-
-For other notes and configuration, see the [Neovim Plugins repo](https://github.com/trunk-io/neovim-trunk#trunk-check-neovim-plugin).
diff --git a/code-quality/overview/ide-integration/openai-codex-support.mdx b/code-quality/overview/ide-integration/openai-codex-support.mdx
deleted file mode 100644
index 1fdfba6..0000000
--- a/code-quality/overview/ide-integration/openai-codex-support.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: "OpenAI Codex Support"
-description: "Trunk Code Quality for OpenAI Codex"
----
-This document provides guidance for integrating Trunk Code Quality into OpenAI Codex environments.
-
-### Requirements
-
-Ensure you’re running the following minimum versions in your `.trunk/trunk.yaml` file:
-
-* Trunk CLI: v1.24.0 or later
-* Trunk Plugins: v1.7.0 or later
-
-### Installation
-
-In your Codex environment setup script, include:
-
-```
-# Install Trunk CLI and dependent tools
-curl https://get.trunk.io -fsSL | bash
-trunk install
-```
-
-It's important to pre-install all trunk dependencies during the setup because codex environments are network-isolated post-setup.
-
-#### Debugging installation
-
-If the environment setup is slow, run the following to diagnose:
-
-```
-trunk install --debug
-```
-
-This command will detail installation timings and potential bottlenecks.
-
-### Handling network isolation
-
-Codex environments are network-isolated post-setup. Linters requiring network access must be excluded from running explicitly:
-
-Example:
-
-```
-trunk check --filter=-trufflehog,-semgrep
-```
-
-### Teaching Codex how to use Trunk
-
-Codex can automatically run trunk commands for you, by informing it to do so in your AGENTS.md file:
-
-```
-## AGENTS Instructions
-
-### Formatting and Linting
-- Run `trunk check -y --filter=-trufflehog,-semgrep` after modifying code to format and fix linting issues.
-- Review and verify changes before committing.
-- If only formatting is required, run `trunk fmt`.
-- Exclude linters requiring network access by adding them to the negative filter list as shown above.
-```
diff --git a/code-quality/overview/ide-integration/vscode.mdx b/code-quality/overview/ide-integration/vscode.mdx
deleted file mode 100644
index 04647b1..0000000
--- a/code-quality/overview/ide-integration/vscode.mdx
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: "VSCode"
----
-Trunk Code Quality is available as a [VSCode extension](https://marketplace.visualstudio.com/items?itemName=trunk.io) that you can use to streamline your linting and formatting experience.
-
-### Get started
-
-By default, Trunk will try to automatically initialize itself in single-player mode. This means that it'll create a Trunk configuration that is hidden from git, which allows you to try it out [without Trunk's versioning powers](./vscode#single-player-mode).
-
-If Trunk has not initialized itself in single-player mode, then you will need to initialize it manually, either by pressing the 'Initialize Trunk' button in the Trunk side panel:
-
-
-
-
-
-### Features
-
-#### Discovery
-
-Trunk will suggest tools that will supercharge your development, from `actionlint`, for your GitHub Actions, to`sql-formatter` and `sqlfluff` for your SQL, to`yamllint`, for your YAML files.
-
-We believe that everything in your repository not only can be, but should be, automatically formatted and linted. We recognize that part of this is making it easy for developers to discover tools that apply to their codebases. When Trunk is initialized, we turn on as many additional tools as we can, and periodically follow up with additional suggestions.
-
-#### Seamless user experience
-
-On the sidebar to the left, you'll see the Trunk icon which you can use to open the side panel to view issues. By default, issues are populated for every file you open as well as any modified files.
-
-
-
-
-
-Trunk also shows Trunk Code Quality Issues in a panel in the File Explorer, but you can hide it if you wish:
-
-
-
-
-
-#### Single-player mode
-
-In single-player mode, Trunk creates a [configuration file](../linters/configure-linters) and hides it from Git, so that you can test out Trunk on your own and get familiar with how it works, without committing this file.
-
-Users normally check this file into your repository so that you can run Trunk reproducibly. It pins the version of trunk, as well as that of every runtime and linter that you've enabled, allowing your team to guarantee that everyone and your CI runners are always running the same checks on your code.
-
-To check it into your repository, all you have to do is run
-
-```bash
-trunk config share
-```
-
-or click on the notification to "Share trunk config", which will commit `.trunk/trunk.yaml`, the Trunk configuration file.
-
-### Trunk as default formatter
-
-You can use Trunk as your default formatter in VSCode if you have Trunk configured for the project.
-
-You can set `trunk.io` as the default formatter for just one language as in the example, or as a default for all languages.
-
-In your `settings.json` like this:
-
-```json
-"[markdown]": {
- "editor.defaultFormatter": "trunk.io"
-}
-```
-
-For manual formatting, open the command palette and use `Format Document With...` and select `Trunk` there.
-
-### Learn more
-
-Check out how to [install the CLI](../setup-and-installation/), [set it up in CI](../initialize-trunk), [ignore issues](../linters/ignoring-issues-and-files), and set up [Custom Linters](../linters/custom-linters).
-
-
-
-
-
-
-
-
-
-### Configuration
-
-* `trunk.inlineDecorators` – allows you to disable inline decorators for diagnostics.
-* `trunk.inlineDecoratorsForAllExtensions` – allows you to only render inline decorators for diagnostics that were generated by Trunk.
-
-### Debugging
-
-If you look at the "Window" output for the extension, you may find useful error logs.
-
-### Feature requests and bug reports
-
-Looking for another feature? Hit a bug? 🐛 [Let us know!](https://slack.trunk.io/)
diff --git a/code-quality/overview/index.mdx b/code-quality/overview/index.mdx
deleted file mode 100644
index 59995d3..0000000
--- a/code-quality/overview/index.mdx
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: "Overview"
-noRobotsIndex: true
----
-Trunk Code Quality is a metalinter and static analysis manager designed to unify linting, formatting, and security scanning across polyglot repositories. It consolidates tool management, runtime isolation, and execution logic into a single CLI and daemon.
-
-### Architecture
-
-Trunk consists of a C++ CLI that orchestrates the download, installation, and execution of third-party static analysis tools.
-
-#### Hermetic Tool Management
-
-Trunk manages tools and their runtimes hermetically. Instead of relying on the host system’s environment (e.g., `/usr/bin/python` or global `npm` packages), Trunk downloads and caches specific versions of runtimes required by the linters.
-
-* Isolation: A project requiring Python 3.10 for a specific linter will not conflict with a system installed Python 3.7.
-* Consistency: All engineers and CI runners execute the exact same version of the linter and its runtime dependencies.
-* Scope: Covers primary languages, Infrastructure as Code (IaC), build scripts, CI configurations (YAML), and documentation.
-
-#### The Trunk Daemon
-
-The CLI (`trunk check`) launches a background daemon. This process:
-
-1. Monitors file system events.
-2. Triggers jobs to precompute linting results in the background.
-3. Caches results to speed up subsequent checks.
-4. Serves real-time annotations to IDE extensions (VSCode, Neovim).
-
-Users can override background execution behavior by modifying the `run_when` configuration for specific tools if they are too compute-intensive.
-
-### Execution Model
-
-#### Git-Aware Scanning
-
-Trunk optimizes execution by checking only modified files or lines. It relies on git diffs to determine the scope of analysis, preventing full-repo scans during standard development workflows.
-
-### Hold-the-line
-
-**Hold The Line** (HTL) is the principle that Trunk Code Quality will _only run on new changes_ in your codebase rather than every file in the whole repo. This allows you to use Check to improve your codebase **incrementally** rather than having to address all of the issues at once. HTL also runs checks much faster than scanning the entire codebase would.
-
-_Hold The Line_ **works at the line level** of your source code. For example, if a single line has multiple pre-existing issues and a new linter is added, which reports the new issue, then Trunk Code Quality will report just the new issue and not the previous ones.
-
-By default, Trunk runs in hold-the-line mode:
-
-```
-trunk check foo.file
-```
-
-You can still run on all files.
-
-```
-trunk check --all
-```
-
-_**Hold the Line**_ is built into Trunk Code Quality itself. This means existing linters that do not support line-by-line functionality will still work with _Hold the Line_. Even [custom linters](./linters/custom-linters) you write yourself.
-
-### Daemon
-
-The Trunk CLI, specifically `trunk check`, runs a daemon that monitors relevant file changes and triggers jobs to precompute in the background while you work. The daemon is used both to support real-time background checking in supported extensions such as [VSCode](./ide-integration/vscode) and [Neovim](./ide-integration/neovim), and to precompute check results for faster commits/pushes.
-
-Some native linters are more compute/memory intensive and `check` allows you to disable background linting for those tools. By default, linters run whenever a file is modified in the background. You can override this behavior by editing the [`run_when`](./getting-started/configuration/lint/commands#run_when) configuration for a tool.
-
-### Hermetic tools and runtime management
-
-Trunk hermetically installs the static analysis tools you run and their required runtimes. This means these tools are installed and managed by the Trunk CLI, and are unaffected by your systems environment.
-
-If a tool requires `python 3.10` but the projects you're working on require `python 3.7`, Trunk will manage that tool and its `python 3.10` runtime automatically and not affect the `python 3.7` environment. This means Trunk will not modify or pollute your machine.
-
-Trunk manages the hermetic installation of all required runtimes. You can also specifically pin a version of a runtime you'd like Trunk to use, or tell Trunk to reuse an already-installed runtime on the system.
-
-### Plugin system
-
-Trunk is fully extensible and configurable through the [Trunk Plugins Repo](https://github.com/trunk-io/plugins/). When installing a plugin through Trunk, the definition of a plugin's behavior, including install, run, and report instructions, is defined in the Plugins Repo.
-
-This can be overridden by defining your own plugin repo to import, overriding individual linter definitions locally, and even writing your own custom linters.
-
-[Learn more about the plugin system.](./getting-started/configuration/plugins/)
-
-### Run on every pull request
-
-Trunk works in CI. Trunk Code Quality provides [GitHub integration](./setup-and-installation/github-integration) and can run in any other CI environment. This lets you check Code Quality in every PR with consistent config and consistent results.
-
-[Learn more about Code Quality in CI.](./prevent-new-issues/)
-
-### Setup and installation
-
-Trunk Code Quality is easy to adopt for new and legacy projects alike. You can run Trunk Code Quality using your existing linter configurations, incrementally address existing problems, and prevent new issues from being committed to your repo.
-
-
-
- Initialize Trunk in your repo to generate Trunk config files and get linter recommendations based on your project's files.
-
-
- Check for existing issues in your project. You can address problems up front, use hold-the-line to fix them incrementally, and configure ignores for irrelevant issues.
-
-
- Set up automated runs on commits, before pushes, and on PRs to prevent new issues from appearing in your repo.
-
-
diff --git a/code-quality/overview/initialize-trunk.mdx b/code-quality/overview/initialize-trunk.mdx
deleted file mode 100644
index 422f2c8..0000000
--- a/code-quality/overview/initialize-trunk.mdx
+++ /dev/null
@@ -1,196 +0,0 @@
----
-title: "Initialize Trunk"
----
-Before you can start using Trunk Code Quality, you need to install and initialize Trunk in your repo. This page covers the initialization process.
-
-### Install the CLI
-
-The Trunk CLI can be installed in many different ways depending on your use case.
-
-
-We recommend installing the CLI via **NPM** if you’re already using NPM, or using **cURL** and **committing the launcher to Git** for all other projects. Both methods allow your teammates to use Trunk without needing an additional install step.
-
-
-#### The Trunk Launcher
-
-The easiest way to give everyone access to Trunk is to use the Trunk launcher. The Trunk launcher is a small script that will automatically install and run Trunk when invoked for the first time, similar to other command line tools like the [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html).
-
-You can install the [Trunk Launcher](./getting-started/install#the-trunk-launcher) script directly by downloading it through cURL. The launcher script supports both macOS and Linux environments.
-
-
-```bash bash
-curl https://get.trunk.io -fsSL | bash
-```
-```bash bash (no prompts)
-curl https://get.trunk.io -fsSL | bash -s -- -y
-```
-
-
-To allow your teammates to use `trunk` without installing anything, the launcher can be committed directly into your repo:
-
-```
-curl -fsSLO --retry 3 https://trunk.io/releases/trunk
-chmod +x ./trunk
-git commit ./trunk -m "Commit Trunk to our repo"
-```
-
-#### Other ways to install
-
-
-
-If your project uses a `package.json`, you can specify the Trunk Launcher as a dependency so your developers can start using Trunk after installing Node dependencies.
-
-```sh
-# npm
-npm install -D @trunkio/launcher
-# pnpm
-pnpm add -D @trunkio/launcher
-# yarn
-yarn add -D @trunkio/launcher
-# bun
-bun install -D @trunkio/launcher
-```
-
-Then add Trunk Launcher in your `package.json` as a script:
-
-```json
-{
- "scripts": {
- "trunk": "trunk",
- "lint": "trunk check",
- "fmt": "trunk fmt"
- }
-}
-```
-
-
-
-You can run the following command if you prefer to install this tool via [homebrew](https://brew.sh/). Keep in mind that other developers on your team will also have to install manually.
-
-```bash
-brew install trunk-io
-```
-
-
-
-From **`git-bash` or `msys2`**, download the Bash launcher and add it to your `PATH`:
-
-```bash
-curl https://get.trunk.io -fsSL | bash
-```
-
-From **`powershell`**, download the powershell launcher:
-
-```
-Invoke-RestMethod -Uri https://trunk.io/releases/trunk.ps1 -OutFile trunk.ps1
-```
-
-Ensure you can execute powershell scripts:
-
-```
-Set-ExecutionPolicy Bypass -Scope CurrentUser
-```
-
-You can then execute trunk as `.\trunk.ps1`.
-
-**Compatibility**
-
-Only some versions of Trunk are compatible with Windows. See the compatibility page for [Windows](./getting-started/compatibility) to learn more.
-
-You will also need to install [C and C++ runtime libraries](https://aka.ms/vs/17/release/vc_redist.x64.exe) in order to run some linters.
-
-
-
-### Initializing Trunk
-
-Before you can use Trunk, you need to initialize Trunk in your repo. Initializing Trunk will generate the necessary config files, recommend linters based on your project files, and configure githooks.
-
-Initialize Trunk by running the `init` command.
-
-```bash
-./trunk init
-```
-
-Follow the wizard. You'll be prompted with the following options:
-
-1. `Sign up or log in`: Connect the CLI with your Trunk account to enable all of Trunk's features.
-2. Trunk will automatically [enable the most useful linters](#recommended-linters) based on the files in your repo.
-3. `Trunk will manage your git hooks and enable some built-in hooks.`: This sets up Trunk to run automatically on commit and before you push, saving you time waiting for CI only to have it fail.
-4. `Trunk will now run a local, one-time scan of your code and report any issues it finds`: This initial scan will give you a good overview of the problem areas in your code. Subsequent scans will only run on changed lines using hold-the-line.
-
-
-**Trunk is Git aware**
-
-Trunk speeds up your linting process by running on only the files that have changed in your branch compared to upstream. This means if you're using a base/trunk branch that's not `master` or `main`, you will need to specify it in your `.trunk/trunk.yaml`
-
-```yaml
-version: 0.1
-cli:
- version: 1.22.2
-repo:
- # develop is the branch that everyone's work is merged into
- trunk_branch: develop
-... rest of configs
-```
-
-
-### Run Linters
-
-After initialization, you can run the [recommended set of linters](./initialize-trunk#recommended-linters) by running:
-
-```
-./trunk check
-```
-
-:tada: And just like that, you're ready to start using Trunk Code Quality.
-
-### The .trunk Directory
-
-After initialization, a new folder `.trunk` will be generated with the following content.
-
-```
-.trunk
-├── actions/
-├── configs/ # This is where linter configs live
-├── logs/ # Logs for debugging
-├── notifications/
-├── out/
-├── plugins/
-├── tools/
-└── trunk.yaml # Top-level Trunk config
-```
-
-You will spend most of your time configuring Trunk Code Quality's linter definitions `trunk.yaml` and individual linter configurations in `configs`.
-
-### Recommended Linters
-
-During initialization, Trunk Code Quality will recommend some linters based on files found in your project. Trunk Code Quality will recommend common linters for your language, but the [full list of supported linters can be found here](./linters/supported/).
-
-You can enable and disable individual linters by running:
-
-```bash
-trunk check enable
-trunk check disable
-```
-
-You can also see all linters and whether they're enabled by running:
-
-```bash
-trunk check list
-```
-
-### IDE Integration
-
-Trunk Code Quality supports [VSCode](./ide-integration/vscode) and [Neovim](./ide-integration/neovim) through extensions. Using VSCode and Neovim will provide inline linter annotations as you code.
-
-### Move Existing Configs
-
-If you have existing linter configs in your repo, you can move them into the `.trunk/configs` folder. These config files will be symlinked in during any `trunk check` run.
-
-
-If you're using an IDE Extension like `clangd` with an LSP that relies on those configs being in the root, you must create an additional symlink from the hidden config to the workspace root.
-
-
-### Next Steps
-
-After initializing Trunk Code Quality, you can check for issues and configure Code Quality. The [next steps](./deal-with-existing-issues) in Setup & Installation will walk you through this process.
diff --git a/code-quality/overview/licensing.mdx b/code-quality/overview/licensing.mdx
deleted file mode 100644
index 5fe8e64..0000000
--- a/code-quality/overview/licensing.mdx
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: "Licensing"
----
-### Introduction
-
-Trunk Code Quality is a powerful metalinter that simplifies linting, formatting, and static analysis across your entire codebase. By integrating over 100 supported tools like ESLint, Prettier, Ruff, and more, it enables you to manage code quality with unified configuration and consistent reporting. Trunk Code Quality helps you install tools hermetically, run them efficiently, and integrate seamlessly with pull requests and CI pipelines.
-
-### Licensing overview
-
-Trunk Code Quality is composed of a closed-source core complemented by open-source components that enhance extensibility and integration. Understanding the licensing terms for each part ensures compliance and optimal use.
-
-#### Closed-Source components
-
-* Trunk CLI: The core command-line tool is closed-source but free to use under specific conditions.
-* VS Code Extension: Integrates Trunk Code Quality directly into your development environment. Under the hood, all code-checking by the VS Code extension is completed via the Trunk CLI, which drives the VS Code extension.
-
-#### Open-Source components
-
-* Plugin System and Configurations: An extensible plugin system that allows you to define, extend, and share linter configurations. These plugins are open-source under the MIT License, enabling you to modify them or create new ones to integrate additional tools or customize behavior.
-* GitHub Action: Scripts that automate Trunk Code Quality checks in your GitHub workflows. GitHub Actions require the source code to be visible for transparency and security. Our GitHub Action is open-source under the MIT License, allowing you to review, modify, and ensure it meets your needs.
-
-By open-sourcing these components, we promote transparency, extensibility, and community collaboration. This approach encourages our community and customers to contribute to the ecosystem, enhancing Trunk Code Quality for everyone.
-
-#### Free usage
-
-You can use the Trunk CLI and access core functionalities for free under the following conditions:
-
-* Open-Source and Public Projects: Unlimited use in public repositories.
-* Private Repositories
- * Free for teams with up to 5 active non-bot committers.
- * An active committer is a non-bot user who has committed in the last 30 days.
-
-#### Paid licensing
-
-For private repositories with over 5 active committers, a paid license is required to comply with Trunk Code Quality’s licensing agreement. While all features remain accessible, payment is necessary to meet licensing obligations and support the continued development of the product.
-
-Compliance and Support
-
-* Licensing Compliance: Payment ensures your use of Trunk Code Quality aligns with the licensing terms for larger teams.
-* Dedicated Support: Paid customers receive prioritized support to help with integration, troubleshooting, and maximizing the benefits of Trunk Code Quality.
-
-#### How billing works
-
-Trunk Code Quality offers two billing options for paid licenses:
-
-**1. Team Plan - Monthly Self-Serve Billing**
-
-* Per-Seat Model: Billing is based on the monthly active committers in your private repositories.
-* User Count Calculation:
- * Counts non-bot users who have made commits in the last 30 days.
- * Calculated at the end of each billing period to adjust the next invoice.
-* Integration with GitHub App: Install the Trunk GitHub App to allow us to measure active monthly users.
-* Billing Cycle: Month-to-month billing with invoices reflecting the latest user count.
-
-**2. Enterprise Plan - Annual Site License**
-
-* Fixed User Count: Based on the number of active committers at the beginning of the licensing term.
-* Organization-Wide License: Provides a license for all users in the organization during the entire term without the need to purchase additional licenses for new employees.
-* Simplified Billing: One annual payment covers all users for the year.
-* Discount: Incentives available with annual plans for logo usage, case study, and/or scale.
-
-**Choosing the Right Option**
-
-* Team Plan: Appropriate for small teams that prefer flexibility and want to pay monthly with a credit card.
-* Enterprise Plan: Best for organizations that prefer predictable costs, to avoid the administrative overhead of tracking monthly user counts, and wish to benefit from the discounted rate.
-
-### FAQs
-
-**What are the benefits of paying for Trunk Code Quality?**
-
-Paying for Trunk Code Quality offers several important benefits:
-
-* Licensing Compliance: For private repositories with 5 or more active committers, purchasing a license is required to comply with Trunk Code Quality’s licensing terms and continue using the product legally and effectively.
-* Dedicated Support: Receive prioritized assistance to help integrate, troubleshoot, and maximize the product’s benefits in your production environment.
-* Priority Feature Requests: Your requests for new features and plugin integrations receive high priority, allowing you to influence the product’s development to suit your needs better.
-* Expert Consultation: Access advisory services from our team to optimize your code quality setup and linting processes.
-* Onboarding Assistance: Receive support and best practices guidance during the integration of Trunk Code Quality into your workflows.
-
-Importantly, all features are available regardless of licensing status; you do not unlock additional features by purchasing a license. However, buying a license ensures compliance with the licensing terms, supports the continued development of Trunk Code Quality, and provides access to the dedicated support and benefits listed above.
-
-**Do you provide free Proofs of Concept (POCs)?**
-
-Yes, we are happy to provide 2–4 week free POCs for teams that want to evaluate our product's capabilities with their team and as part of their CI. We also provide dedicated support and guidance throughout the POC period. Email us to get started at: [sales@trunk.io](mailto:sales@trunk.io).
-
-**What happens if I exceed the free usage limits?**
-
-If you exceed the free tier limits (e.g., more than 5 active committers in a private repository), you must obtain a paid license to continue using Trunk Code Quality in compliance with the licensing agreement.
-
-**Is the Trunk CLI free to use?**
-
-The Trunk CLI is free for public repositories and private repositories with fewer than 5 active committers. For private repositories with 5 or more active committers, a paid license is required to comply with the licensing agreement.
-
-**Can I use Trunk Code Quality in CI/CD pipelines for free?**
-
-Yes, you can integrate the Trunk CLI into your CI/CD pipelines for free if you’re within the free usage limits (public repositories or private repositories with fewer than 5 active committers). Exceeding these limits requires a paid license.
-
-**Is support provided for free users?**
-
-Yes, free users can seek help through our community Slack channel at [slack.trunk.io](https://slack.trunk.io) or participate in discussions on our [GitHub page](https://github.com/orgs/trunk-io/discussions). Our community members and developer relations engineers regularly participate in discussions and answer questions.
-
-**Why are some components open-source while the core is closed-source?**
-
-* Core Functionality: The Trunk CLI provides the core functionality and is closed-source to protect proprietary technology and ensure a consistent, reliable experience.
-* Open-Source Components: The plugin system and GitHub Action are open-source to promote transparency, security, and community-driven extensibility. This allows you to customize integrations and contribute to the development of plugins and workflows.
-
-**Do I need the Trunk CLI to use the open-source components?**
-
-Yes, the open-source components are designed to work with the Trunk CLI. They enhance and extend the functionality provided by the core tool but are not standalone applications.
-
-**How to Contribute to the Open-Source Components?**
-
-* Plugin Development: You can develop new plugins or improve existing ones by visiting our public GitHub repository at [github.com/trunk-io/plugins](https://github.com/trunk-io/plugins).
-* GitHub Action: Modify or fork our GitHub Action to better suit your CI workflows. The source code is available at [github.com/trunk-io/trunk-action](https://github.com/trunk-io/trunk-action).
-* Community Engagement: Join our community Slack channel at [slack.trunk.io](https://slack.trunk.io) to collaborate with other users and our development team.
-
-#### Contact us
-
-For licensing inquiries, to obtain a paid license, or to discuss which billing option is best for your organization, please contact [sales@trunk.io](mailto:sales@trunk.io). We’re here to help you ensure compliance and get the most out of Trunk Code Quality.
diff --git a/code-quality/overview/linters/configure-linters.mdx b/code-quality/overview/linters/configure-linters.mdx
deleted file mode 100644
index f1b5269..0000000
--- a/code-quality/overview/linters/configure-linters.mdx
+++ /dev/null
@@ -1,285 +0,0 @@
----
-title: "Configure linters"
----
-Trunk Code Quality's linter integrations are fully configurable. This means that you can easily tune existing linters or leverage our caching and [hold-the-line](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line) solution with your own custom linters.
-
-Here's an overview of the ways you can configure linters.
-
-### Config hierarchy
-
-Linters can be configured at different places:
-
-1. The source plugin repo usually `https://github.com/trunk-io/plugins`.
-2. The repo-wide Trunk config file overrides the definitions in the plugin repos, `.trunk/trunk.yaml`
-3. Local, per-user configuration in `.trunk/user.yaml` which is used for local overrides of `.trunk/trunk.yaml` and doesn't
-4. Per linter configuration in linter config files such as `eslint.config.js` or `.prettierrc`.
-
-### Plugin system
-
-Trunk defines linter configuration in a plugin system. By default, it'll point to the [Trunk plugin repo on GitHub](https://github.com/trunk-io/plugins). You can check if other custom plugin sources are specified in your `trunk.yaml` file for [shared-configs.md](./shared-configs.md "mention").
-
-```yaml
-version: 0.1
-cli:
- version: 1.22.2
-# Trunk provides extensibility via plugins. (https://docs.trunk.io/cli/configuration/plugins)
-plugins:
- sources:
- - id: trunk
- ref: v1.6.1
- uri: https://github.com/trunk-io/plugins
-```
-
-### Linter definitions
-
-Each linter implemented in the Plugin Repo has its own linter definition. Let's take clang-tidy as an example, which ships with the following default configuration:
-
-```yaml
-definitions:
- ...
- - name: clang-tidy
- files: [c/c++-source]
- type: llvm
- commands:
- - output: llvm
- run: clang-tidy --export-fixes=- ${target}
- success_codes: [0]
- download: clang-tidy
- direct_configs: [.clang-tidy]
- disable_upstream: true
- include_scanner_type: compile_command
- environment:
- - name: PATH
- list: ["${linter}/bin"]
- ...
-```
-
-#### Linter definition reference
-
-You can find the default definitions for linters in the [Plugin Repo](https://github.com/trunk-io/plugins/tree/main/linters) and find references for these fields on the [Linter Definitions](../getting-started/configuration/lint/definitions) page.
-
-### Overriding default linter definitions
-
-You may find while using Trunk that you want to modify one of these defaults: perhaps you want `clang-tidy` to not run on the upstream, or maybe you want the `node` runtime to include another environment variable. In these cases, you can specify the field in your `trunk.yaml` to override the default value.
-
-If you wanted to flip the value of `disable_upstream` to `false`, you could, in your own `trunk.yaml`, specify:
-
-```yaml
-definitions:
- ...
- - name: clang-tidy
- disable_upstream: false
- ...
-```
-
-
-Overriding definitions in your `trunk.yaml` file doesn't require you to specify the entire definition again. You only need to specify what's being overridden.
-
-
-#### Configure linter commands
-
-Some linters have multiple commands, such as [Ruff](./supported/ruff), which can run in different ways. By default, Ruff is configured to only run as a linter:
-
-```yaml
-lint:
- enabled:
- - ruff@:
- commands: [lint]
-```
-
-You can configure ruff to also run the format command by adding it to the commands tuple:
-
-```yaml
-lint:
- enabled:
- - ruff@:
- commands: [lint, format]
-```
-
-#### Configure linter platforms
-
-Similarly, some linters are configured to run differently on different platforms or at different versions. When overriding a command definition, overrides are applied on the tuple `[name, version, platforms]`.
-
-For example, if you wanted to disable batching when running [ktlint](https://github.com/trunk-io/plugins/blob/main/linters/ktlint/plugin.yaml) on Windows, you could consider its default configuration:
-
-```yaml
-definitions:
- ...
- - name: ktlint
- ...
- commands:
- - name: format
- platforms: [windows]
- run: java -jar ${linter}/ktlint.exe -F "${target}"
- output: rewrite
- cache_results: true
- formatter: true
- in_place: true
- batch: true
- success_codes: [0, 1]
- - name: format
- run: ktlint -F "${target}"
- output: rewrite
- cache_results: true
- formatter: true
- in_place: true
- batch: true
- success_codes: [0, 1]
- ...
-```
-
-And override it as such:
-
-```yaml
-definitions:
- ...
- - name: ktlint
- ...
- commands:
- - name: format
- platforms: [windows]
- batch: false
- ...
-```
-
-When executing linters, Trunk will execute the first matching command based on its compatible platforms and linter version. Note when overriding that new commands that don't match an existing tuple are prepended to the resulting commands list.
-
-Alternatively, consider the default `node` runtime:
-
-```yaml
-runtimes:
- definitions:
- - type: node
- download: node
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list: ["${runtime}/bin"]
- linter_environment:
- - name: PATH
- list: ["${linter}/node_modules/.bin"]
- version: 16.14.2
- version_commands:
- - run: "node --version"
- parse_regex: ${semver}
-```
-
-If you want to add `${home}/my/special/node/path` to `PATH`, you could specify the following:
-
-```yaml
-runtimes:
- - type: node
- runtime_environment:
- - name: HOME
- value: ${home}
- - name: PATH
- list: ["${home}/my/special/node/path", "${runtime}/bin"]
-```
-
-### Blocking thresholds
-
-All issue severities low-high are considered blocking by default. In cases where you might want to slowly try out a new linter, we provide a mechanism to set specific thresholds for each linter.
-
-```yaml
-lint:
- threshold:
- - linters: [clang-tidy]
- level: high
-```
-
-Every entry in `threshold` defines a set of linters and the severity threshold that is considered blocking. In this example, we're saying that only `high` lint issues should be considered blocking for `clang-tidy`.
-
-| Key | Value |
-|---|---|
-| linters | List of linters (e.g. `[black, eslint]`) or the special `[ALL]` tag |
-| level | Default `low`. Threshold at which issues are considered blocking. One of: `note`, `low`, `medium`, `high`, or `none` (this last option will result in issues never blocking) |
-
-### Trigger rules
-
-Some linters do not operate on individual files. Instead, you must lint your entire repo at once. The way this is handled in Trunk is to set up a trigger rule. Most linters will not require the use of a trigger rule.
-
-Trigger rules work on 3 principles:
-
-1. Input(s) that trigger the linters. These can be files, directories, or extended globs.
-2. Linter(s) to run when a triggered file is modified.
-3. Targets(s) to pass to the linters (can be files or directories).
-
-An example for ansible-lint:
-
-```yaml
-lint:
- enabled:
- - ansible-lint@5.3.2
-
- triggers:
- - linters:
- - ansible-lint
- paths:
- - ansible # A directory
- targets:
- - ansible # A directory
-```
-
-Triggered linters will also be run when executing trunk check with `--all` so long as a file exists that matches one of the listed paths.
-
-You may use `.` as a target to run on the entire repo instead of an isolated directory.
-
-### File size
-
-By default, Trunk only lints files up to 4 MiB in size. To override this globally, specify a `default_max_file_size` in `lint`:
-
-```yaml
-lint:
- default_max_file_size: 1048576 # Bytes
-```
-
-To override this for a specific linter, specify a `max_file_size` in its definition:
-
-```yaml
-lint:
- definitions:
- - name: prettier
- max_file_size: 2097152 # Bytes
-```
-
-### Timeout
-
-Each linter has a default timeout of 10 minutes. If its execution takes longer than this amount of time, Trunk Code Quality will terminate the process and return an error to the user.
-
-To override the timeout for a specific linter, specify a `run_timeout` in its definition:
-
-```
-lint:
- definitions:
- - name: clang-tidy
- run_timeout: 5m
-```
-
-The `run_timeout` value can be specified in seconds (`s`), minutes (`m`), or hours (`h`).
-
-### Local linter overrides
-
-Trunk can also be managed by the `.trunk/user.yaml` file in your repository. This file is optional, but it allows individual developers to customize how they want `trunk` to run on their machines.
-
-Simply configure `.trunk/user.yaml` as you would for `.trunk/trunk.yaml`. Be mindful that `.trunk/user.yaml` takes precedence over `.trunk/trunk.yaml`, so substantial modifications could violate hermeticity.
-
-### Per linter definitions
-
-Trunk allows you to keep using your existing linter configs, and new linters recommended by Trunk will have their configs added in the `.trunk/configs` folder. These config files will be symlinked in during any `trunk check` run.
-
-
-If you're using an IDE Extension like clangd with an LSP that relies on those configs being in the root, you will need to create an additional symlink from the hidden config to the workspace root.
-
-
-#### Moving linters
-
-You can move existing linter config files into the `.trunk/config` folder. You can check which files are automatically symlinked by looking for the `direct_configs` of [each plugin's definition](https://github.com/trunk-io/plugins/). If there are config files not listed, you can add them by overriding the definition like this:
-
-```yaml
-lint:
- definitions:
- - name: some_linter_name
- direct_configs:
- - .custom_config.file
-```
diff --git a/code-quality/overview/linters/custom-linters.mdx b/code-quality/overview/linters/custom-linters.mdx
deleted file mode 100644
index bf25d90..0000000
--- a/code-quality/overview/linters/custom-linters.mdx
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Custom linters"
----
-Trunk Code Quality allows you to define custom linters. If a linter is not within the [list of supported linters](./supported/) or you have a bespoke solution, you can define a custom linter.
-
-### Defining a custom linter
-
-You can define linters right in your `.trunk/trunk.yaml` file in your repo. These definitions have the same configurable parameters as in our [public plugins repo](https://github.com/trunk-io/plugins/blob/main/CONTRIBUTING.md) or [your own plugins repo](../getting-started/configuration/plugins/external-repositories).
-
-#### Pass-Fail linter script example
-
-For example, you can define a simple [pass-fail linter](./custom-linters#pass-fail-linter-script-example) that runs a custom script file. The linter passes or fails based on the status code returned.
-
-```yaml
-version: 0.1
-cli:
- version: 1.22.1
-lint:
- enabled:
- - SampleLinter
- definitions:
- - name: SampleLinter
- files: [javascript, typescript]
- commands:
- - name: lint
- run: sh ${workspace}/.trunk/myscript.sh ${target}
- output: pass_fail
- success_codes: [0, 1]
-```
-
-#### Inline grep command example
-
-You can also define simple linters inline using tools like `grep`. This linter will grep against your custom regex pattern, format the output using sed, and then parse the output into pattern groups using a [regex output](../getting-started/configuration/lint/output#regex) for Trunk Code Quality to report.
-
-```yaml
-# This file controls the behavior of Trunk: https://docs.trunk.io/cli
-# To learn more about the format of this file, see https://docs.trunk.io/cli/configuration
-version: 0.1
-cli:
- version: 1.22.1
-lint:
- enabled:
- - SampleGrepLinter
- definitions:
- - name: SampleGrepLinter
- files: [ALL]
- commands:
- - name: lint
- run: bash -c "grep -o -E '' --line-number --with-filename ${target}"
- success_codes: [0, 1]
- read_output_from: stdout
- parser:
- run: 'sed -E "s/([^:]*):([0-9]+):(.*)/\1:\2:0: [error] Found \3 in line (numeric-\3)/"'
- output: regex
- parse_regex: "(?P.*):(?P-?\\d+):(?P
-?\\d+): \\[(?P[^\\]]*)\\] (?P[^\\(]*) \\((?P[^\\)]*)\\)"
-```
-
-To see the configurable fields available [Linter Definition Reference](../getting-started/configuration/lint/definitions).
-
-### Contributing a new linter
-
-The [Trunk Code Quality plugins repo](https://github.com/trunk-io/plugins/blob/main/CONTRIBUTING.md) is public and welcomes contributions. Feel free to open a PR if the new custom linter you defined could be useful to others. You can reach out to us [on Slack](https://slack.trunk.io/) if you need a hand.
diff --git a/code-quality/overview/linters/ignoring-issues-and-files.mdx b/code-quality/overview/linters/ignoring-issues-and-files.mdx
deleted file mode 100644
index 054e892..0000000
--- a/code-quality/overview/linters/ignoring-issues-and-files.mdx
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: "Ignoring issues and files"
----
-## Ignoring parts of a file
-
-Sometimes we want to deliberately tell a linter that, yes, I know what I'm doing, and yes, in any other situation I should _not_ do this, but in this specific case it's fine. Maybe there's a dummy private key you're using for a test stack, or fixing the lint issue will actually make your code less readable: whatever it is, you now need to figure out how to suppress a given lint issue.
-
-Trunk provides a simple, standardized mechanism to do this, saving you from having to look up the linter-specific syntax for doing so:
-
-```cpp
-struct FooBar {
- // trunk-ignore(clang-tidy/modernize-use-nullptr): load-bearing NULL, see ISSUE-832
- void *ptr = NULL;
-};
-```
-
-This tells Trunk that the `clang-tidy` linter found a `modernize-use-nullptr` issue on the highlighted line and that Trunk should suppress this linter issue.
-
-Comments may be omitted:
-
-```cpp
-struct FooBar {
- // trunk-ignore(clang-tidy/modernize-use-nullptr)
- void *ptr = NULL;
-};
-```
-
-You can also omit the name of the check to simply tell Trunk that all issues from a given linter on a specific line should be suppressed:
-
-```cpp
-struct FooBar {
- // trunk-ignore(clang-tidy)
- void *ptr = NULL;
-};
-```
-
-`trunk-ignore` directives can also be placed at the end of the line on which they're suppressing lint issues:
-
-```cpp
-struct FooBar {
- void *ptr1 = NULL; // trunk-ignore(clang-tidy/modernize-use-nullptr)
- void *ptr2 = NULL; // trunk-ignore(clang-tidy)
-};
-```
-
-If you need to suppress issues from multiple linters, `trunk-ignore` supports that too:
-
-```cpp
-struct FooBar {
- // trunk-ignore(clang-tidy): ISSUE-914 explains why the `void *` type is needed
- // trunk-ignore(gitleaks,my-custom-linter/do-not-hardcode-passwords): see ISSUE-915
- void *super_secret_password = (void *)("915dr~S$Pzqod~oR*CrQ$/SQ@hbtQBked:CL@z!y]");
-};
-```
-
-`trunk-ignore` directives can also apply to other `trunk-ignore`s if need be:
-
-```ts
-// trunk-ignore(eslint/max-line-length)
-// trunk-ignore(eslint/@typescript-eslint/no-unsafe-member-access,eslint/@typescript-eslint/no-unsafe-assignment)
-const version = parsedConfig.version;
-```
-
-### Ignoring all issues/formatting in a file
-
-You can also ignore all issues or formatting in a file:
-
-```cpp
-// trunk-ignore-all(clang-tidy)
-struct FooBar {
- void *ptr1 = NULL;
- void *ptr2 = NULL;
-};
-```
-
-
-`trunk-ignore-all` is not required to be the first line of a file, because we recognize that other constructs (shebangs, front matter, docstrings) may need to take precedence.
-
-
-### Ignoring all issues in a code block
-
-Alternatively, you can ignore all matching issues in a code block:
-
-```cpp
-struct FooBar {
- // trunk-ignore-begin(clang-tidy)
- void *ptr1 = NULL;
- void *ptr2 = NULL;
- // trunk-ignore-end(clang-tidy)
-};
-```
-
-### Tracking unused ignores
-
-Trunk will alert you if your `trunk-ignore` directives are unused. This can happen due to user error or even innocuously over time, for example, if your internal APIs change or if a linter's output changes.
-
-```
-app/parse.ts:18:3
- 18:3 note trunk-ignore(eslint/@typescript-eslint/no-unsafe-member-access) trunk/ignore-does-nothing
- is not suppressing a lint issue
-```
-
-Hold the Line will continue to only surface ignore issues that you have introduced, and these issues will have a `note` [severity](./configure-linters#blocking-thresholds), indicating they are non-blocking by default.
-
-If you need to, you can ignore issues from unused `trunk-ignore` directives, using `trunk-ignore(trunk)`:
-
-```
-// trunk-ignore(trunk): This error will resurface after our API migration.
-// trunk-ignore(eslint/@typescript-eslint/no-unsafe-member-access)
-```
-
-### Specification
-
-The syntax of a trunk-ignore directive is as follows:
-
-```
- ::= "(" ")"
- ::= "trunk-ignore" | "trunk-ignore-begin" | "trunk-ignore-end" | "trunk-ignore-all"
- ::=
- ::= ","
- ::=
- ::= "/"
- ::= ": "
-```
-
-## Ignoring multiple files
-
-Some files are never meant to be checked, such as generated code. To ignore them, use the `ignore` key to your `.trunk/trunk.yaml` file:
-
-```yaml
-lint:
- ignore:
- - linters: [ALL]
- paths:
- # Ignore generated files
- - src/generated/**
- # Except for files ending in .foo
- - !src/generated/**/*.foo # Test data
- - test/test_data
-```
-
-Every entry in `ignore` defines both a set of linters and a set of paths to ignore.
-
-| Key | Value |
-|---|---|
-| linters | List of linters (i.e. `[black, eslint]`) or the special `[ALL]` tag |
-| paths | List of [glob paths](https://en.wikipedia.org/wiki/Glob_(programming)), relative to the root of the repo, to ignore. If a path begins with a `!` then it represents an inverse ignore. This means that any file matching that glob will not be ignored, even if matched by other globs. |
-
-
-Trunk is `git`-aware, which means it ignores `gitignore'd` files by default.
-
-
-### Known issues
-
-`trunk-ignore` does not currently support:
-
-* suppressing findings on lines 0 or 1 using inline/block directives
-
-If you need any of these to be supported, or you have another edge case, please reach out to us on the [Trunk community slack](https://slack.trunk.io).
diff --git a/code-quality/overview/linters/index.mdx b/code-quality/overview/linters/index.mdx
deleted file mode 100644
index 52f6b2b..0000000
--- a/code-quality/overview/linters/index.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: "Linters"
----
-Trunk Code Quality supports over [100 different linters](./supported/) and formatters out of the box. This section covers how to run, manage, and configure these linters.
-
-### Supported Linters
-
-Trunk supports 100+ different linters and formatters. See the [Supported Linters](./supported/) page to find the linters you need to maintain code quality in your repos.
-
-### Run Linters
-
-Trunk Code Quality supports many flexible ways to run your installed linters, for every project and every occasion.
-
-[Learn the commands available ](./run-linters)for the Trunk CLI.
-
-### Manage Linters
-
-Find and enable the linters you need to keep your code base healthy. Trunk helps you manage your long list of static analysis tools and runtimes through hermetic installs.
-
-[Learn how to discover, install, and upgrade linters](./#manage-linters) in your projects.
-
-### Configure Linters
-
-Trunk Code Quality's linter integrations are fully configurable. This means that you can easily tune existing linters or leverage our caching and [hold-the-line](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line) solution with your custom linters.
-
-[Learn to configure your linters](./configure-linters) to get the most out of Trunk Code Quality.
-
-### Ignoring Issues and Files
-
-Trunk Code Quality lets you configure flexible ignore for your linters. You can ignore issues by line, by files, by path, by issue type, by severity level, by file extension, and more.
-
-[Learn to ignore irrelevant issues.](./ignoring-issues-and-files)
-
-### Custom Linters
-
-Trunk lets you turn simple scripts into fully-powered linters by running these linters and giving them support for features like ignores, [hold-the-line,](/broken/pages/U4nTQBazaodt2vJadyRw#hold-the-line) and other powerful configurable features,
-
-[Learn to create your own Custom Linters.](./custom-linters)
-
-### Shared Configs
-
-If your team has many repositories, many teams, and many languages, you would want to share a common set of config files to keep your **entire organization consistent**.
-
-[Learn to share configurations](./shared-configs) across your org.
diff --git a/code-quality/overview/linters/manage-linters.mdx b/code-quality/overview/linters/manage-linters.mdx
deleted file mode 100644
index 4450654..0000000
--- a/code-quality/overview/linters/manage-linters.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: "Manage linters"
----
-### Using the CLI
-
-List all of the available linters
-
-```sh
-trunk check list
-```
-
-Enable a single linter
-
-```sh
-trunk check enable
-```
-
-Disable a single linter
-
-```sh
-trunk check disable
-```
-
-### Using Trunk config files
-
-Trunk only runs linters listed in the `enabled` section; linters which are defined in `lint.definitions` but are not listed in `enabled` are not run.
-
-When enabling a linter, you must specify a version for the linter:
-
-```yaml
-lint:
- enabled:
- # enabling a version with a linter
- - gitleaks@7.6.1
- - gofmt@1.16.7
- - golangci-lint@1.41.1
- - hadolint@2.6.0
-```
-
-Custom linters are slightly different; see [those docs](./custom-linters) to learn more.
-
-### Disable linters
-
-Trunk will continuously monitor your repository and make recommendations of additional new tools to run on your codebase. You can tell Trunk not to recommend a specific linter by adding it to the disabled list.
-
-```yaml
-lint:
- disabled:
- # disabled a linter tells trunk not to recommend it during upgrade scans
- - rufo
- - tflint
-```
-
-### Upgrading linters
-
-Run `trunk upgrade` to update the Trunk CLI and all your plugins, linters, tools, and runtimes.
diff --git a/code-quality/overview/linters/run-linters.mdx b/code-quality/overview/linters/run-linters.mdx
deleted file mode 100644
index 8bddd68..0000000
--- a/code-quality/overview/linters/run-linters.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: "Run Linters"
----
-The main commands when running `trunk` from the command line are:
-
-```bash
-trunk check # runs the universal linter on all applicable files
-trunk fmt # runs all the enabled formatters and auto-applies changes
-```
-
-You can always find this list using `trunk check --help`.
-
-
-Trunk is git-aware. When you run `trunk check` it will **only run on files you've modified according to git**. To run on a sampling in your repo, run: `trunk check --sample 5`
-
-
-### check
-
-`trunk check` runs linters & formatters on your changed files, prompting you to apply fixes. Without additional args, `trunk check` will run all applicable linters on all files changed in the current branch.
-
-### fmt
-
-Run all applicable formatters as configured in `trunk.yaml`. `trunk fmt` is short-hand for running\
-`trunk check` with a `--fix --filter` set to all formatters enabled in your repository.
-
-## Options
-
-| options | |
-|---|---|
-| `--all` | Run on all the files in the repository. Useful if trying to assess a new linter in the system, or to find and fix pre-existing issues |
-| `--fix` | Auto-apply all suggested fixes |
-| `--no-fix` | Surface, but do not prompt for autofixes |
-| `--filter` | List of comma-separated linters to run. Specify `--filter=-linter` to disable a linter. |
-| `--sample=N` | Run check on a [sampling](#sample) of all files in the repo |
-| `--help` | Output help information |
-
-### Recipes
-
-| Check | Command |
-| ------------------------------------------------------------ | -------------------------------------------- |
-| all files | `trunk check --all --no-fix` |
-| a specific file | `trunk check some/file.py` |
-| all applicable files with flake8 | `trunk check --all --no-fix --filter=flake8` |
-| a selection of five files in the repo | `trunk check --sample 5` |
-| a selection of five files in the repo with a specific linter | `trunk check --sample 5 --filter=flake8` |
-| format the whole repo | `trunk fmt --all` |
-| format a specific file | `trunk fmt some/file.py` |
-| format all python code with `black` | `trunk fmt --all --filter=black` |
-
diff --git a/code-quality/overview/linters/shared-configs.mdx b/code-quality/overview/linters/shared-configs.mdx
deleted file mode 100644
index ccb36af..0000000
--- a/code-quality/overview/linters/shared-configs.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: "Shared configs"
----
-## Single repo
-
-Linters are automatically shared with all developers for a repository using the [`.trunk/trunk.yaml` file](../getting-started/configuration/). This file is committed to the repo, so whenever anyone checks out the code, they will get the same configuration and linters. See the [Trunk YAML guide](../getting-started/configuration/) for more details.
-
-## Per user config
-
-If you wish to customize a linter for just one developer (say, disable a slow linter on a slow machine), you can create a per-user config in the `.trunk/user.yaml` file, which should **not** be committed to the repo.
-
-## Multiple repos
-
-If you wish to share linters between different repos, copy the config manually or create a shared Plugin repo. This is a set of configuration and code that is imported into the `plugins` section of a project's `./trunk/trunk.yaml` .
diff --git a/code-quality/overview/linters/supported/actionlint.mdx b/code-quality/overview/linters/supported/actionlint.mdx
deleted file mode 100644
index 26d9bad..0000000
--- a/code-quality/overview/linters/supported/actionlint.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "Actionlint"
-description: "Explore our guide on Actionlint, the linter for GitHub Actions. Learn about its features, installation, and configuration."
----
-[**Actionlint**](https://github.com/rhysd/actionlint) is a linter for GitHub.
-
-You can enable the Actionlint linter with:
-
-```shell
-trunk check enable actionlint
-```
-
-## Auto Enabling
-
-Actionlint will be auto-enabled if any _GitHub-workflow_ files are present.
-
-## Settings
-
-Actionlint supports the following config files:
-
-* `.github/actionlint.yaml`
-* `.github/actionlint.yml`
-
-Unlike with most tools under `trunk check`, these files cannot be moved.
-
-## Links
-
-* [Actionlint site](https://github.com/rhysd/actionlint)
-* Actionlint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/actionlint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/ansible-lint.mdx b/code-quality/overview/linters/supported/ansible-lint.mdx
deleted file mode 100644
index 6c3c29f..0000000
--- a/code-quality/overview/linters/supported/ansible-lint.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "Ansible-lint"
-description: "Checks playbooks for practices and behavior that could potentially be improved and can fix some of the most common ones for you"
----
-[**Ansible-lint**](https://github.com/ansible/ansible-lint) is a linter for Ansible.
-
-You can enable the Ansible-lint linter with:
-
-```shell
-trunk check enable ansible-lint
-```
-
-## Auto Enabling
-
-Ansible-lint will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-Ansible-lint supports the following config files:
-
-* `.ansible-lint`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-**Ansible-lint** must be configured with a trigger. See the [trigger rules](../#trigger-rules) documentation for more information.
-
-If your ansible setup is not contained within a single folder you would list all files and directories belonging to your ansible setup.
-
-## Links
-
-* [Ansible-lint site](https://github.com/ansible/ansible-lint)
-* Ansible-lint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/ansible-lint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/autopep8.mdx b/code-quality/overview/linters/supported/autopep8.mdx
deleted file mode 100644
index e826e81..0000000
--- a/code-quality/overview/linters/supported/autopep8.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "Autopep8"
-description: "Autopep8 automatically formats Python code to meet PEP 8 standards, using pycodestyle to identify and correct formatting issues for cleaner code."
----
-[**Autopep8**](https://github.com/hhatto/autopep8#readme) is a formatter for Python.
-
-You can enable the Autopep8 formatter with:
-
-```shell
-trunk check enable autopep8
-```
-
-
-
-
-
-## Auto Enabling
-
-Autopep8 will be auto-enabled if a `.pep8` config file is present.
-
-## Settings
-
-Autopep8 supports the following config files:
-
-* `.pep8`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Autopep8 site](https://github.com/hhatto/autopep8#readme)
-* Autopep8 Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/autopep8)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/bandit.mdx b/code-quality/overview/linters/supported/bandit.mdx
deleted file mode 100644
index 8788cb6..0000000
--- a/code-quality/overview/linters/supported/bandit.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "Bandit"
-description: "Bandit is a security linter for Python codebases. Bandit flags problems like hard-coded passwords, injection vulnerabilities, and the use of insecure libraries."
----
-[**Bandit**](https://github.com/PyCQA/bandit) is a linter for Python.
-
-You can enable the Bandit linter with:
-
-```shell
-trunk check enable bandit
-```
-
-
-
-
-
-## Auto Enabling
-
-Bandit will be auto-enabled if any _Python_ files are present.
-
-## Settings
-
-Bandit supports the following config files:
-
-* `.bandit`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Bandit site](https://github.com/PyCQA/bandit)
-* Bandit Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/bandit)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/biome.mdx b/code-quality/overview/linters/supported/biome.mdx
deleted file mode 100644
index 14fe8b6..0000000
--- a/code-quality/overview/linters/supported/biome.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "Biome"
-description: "Biome is a linter for JavaScript and TypeScript, improving code quality by automatically fixing issues, enforcing standards, and ensuring consistency."
----
-[**Biome**](https://biomejs.dev/) is a linter for JavaScript, TypeScript, jsx and json.
-
-You can enable the Biome linter with:
-
-```shell
-trunk check enable biome
-```
-
-## Auto Enabling
-
-Biome will be auto-enabled if any of its config files are present: _`biome.json`, `rome.json`_.
-
-## Settings
-
-Biome supports the following config files:
-
-* `biome.json`
-* `rome.json`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Biome site](https://biomejs.dev/)
-* Biome Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/biome)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/black.mdx b/code-quality/overview/linters/supported/black.mdx
deleted file mode 100644
index 6aa6700..0000000
--- a/code-quality/overview/linters/supported/black.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: "Black"
-description: "Discover Black, the Python code formatter. Learn how to integrate it with Trunk Check for seamless coding style enforcement."
----
-[**Black**](https://pypi.org/project/black/) is a formatter for Python.
-
-You can enable the Black formatter with:
-
-```shell
-trunk check enable black
-```
-
-
-
-
-
-## Auto Enabling
-
-Black will be auto-enabled if any _Python, Jupyter or Python-interface_ files are present.
-
-## Links
-
-* [Black site](https://pypi.org/project/black/)
-* Black Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/black)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/brakeman.mdx b/code-quality/overview/linters/supported/brakeman.mdx
deleted file mode 100644
index ddf844e..0000000
--- a/code-quality/overview/linters/supported/brakeman.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "Brakeman"
-description: "Brakeman is a static analysis tool designed for Ruby on Rails applications. It statically analyzes Rails application code to find security issues."
----
-[**Brakeman**](https://github.com/presidentbeef/brakeman) is a linter for Ruby.
-
-You can enable the Brakeman linter with:
-
-```shell
-trunk check enable brakeman
-```
-
-## Auto Enabling
-
-Brakeman will be auto-enabled if any _Ruby_ files are present.
-
-## Settings
-
-Brakeman supports the following config files:
-
-* `brakeman.ignore`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Brakeman site](https://github.com/presidentbeef/brakeman)
-* Brakeman Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/brakeman)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/buf.mdx b/code-quality/overview/linters/supported/buf.mdx
deleted file mode 100644
index 0bdbfa4..0000000
--- a/code-quality/overview/linters/supported/buf.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: "buf"
-description: "buf is a linter for Protobuf"
----
-[**buf**](https://github.com/bufbuild/buf#readme) is a linter for Protobuf.
-
-buf is composed of several linter commands.
-
-`buf-format` only runs the reformatting, not lint checking.
-
-You can enable the `buf-format` linter with:
-
-```shell
-trunk check enable buf-format
-```
-
-`buf-lint` only runs the lint checking, not reformatting.
-
-You can enable the `buf-lint` linter with:
-
-```shell
-trunk check enable buf-lint
-```
-
-`buf-breaking` only checks for breaking proto changes.
-
-You can enable the `buf-breaking` linter with:
-
-```shell
-trunk check enable buf-breaking
-```
-
-## Auto Enabling
-
-buf will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-buf supports the following config files:
-
-* `buf.yaml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [buf site](https://github.com/bufbuild/buf#readme)
-* buf Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/buf)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/buildifier.mdx b/code-quality/overview/linters/supported/buildifier.mdx
deleted file mode 100644
index 3a7526f..0000000
--- a/code-quality/overview/linters/supported/buildifier.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "Buildifier"
-description: "Learn how to install, configure, and use buildifier effectively for Bazel build scripts."
----
-[**Buildifier**](https://github.com/rhysd/actionlint) is a linter for Bazel, Starlark.
-
-You can enable the Buildifier linter with:
-
-```shell
-trunk check enable buildifier
-```
-
-
-
-
-
-## Auto Enabling
-
-Buildifier will be auto-enabled if any _Bazel or Starlark_ files are present.
-
-## Settings
-
-Buildifier supports the following config files:
-
-* `.buildifier.json`
-* `.buildifier-tables.json`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Buildifier site](https://github.com/rhysd/actionlint)
-* Buildifier Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/buildifier)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/cfnlint.mdx b/code-quality/overview/linters/supported/cfnlint.mdx
deleted file mode 100644
index b540f76..0000000
--- a/code-quality/overview/linters/supported/cfnlint.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "cfnlint"
-description: "cfnlint is a linter for CloudFormation"
----
-[**cfnlint**](https://github.com/aws-cloudformation/cfn-lint#readme) is a linter for CloudFormation.
-
-You can enable the cfnlint linter with:
-
-```shell
-trunk check enable cfnlint
-```
-
-## Auto Enabling
-
-cfnlint will be auto-enabled if any _CloudFormation_ files are present.
-
-## Links
-
-* [cfnlint site](https://github.com/aws-cloudformation/cfn-lint#readme)
-* cfnlint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/cfnlint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/checkov.mdx b/code-quality/overview/linters/supported/checkov.mdx
deleted file mode 100644
index 2d4bb4f..0000000
--- a/code-quality/overview/linters/supported/checkov.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "Checkov"
-description: "Checkov is a static code analysis tool for scanning infrastructure as code. It identifies misconfigurations in IaC files that could lead to security breaches."
----
-[**Checkov**](https://github.com/bridgecrewio/checkov) is a linter for CloudFormation, Security, Terraform and Docker.
-
-You can enable the Checkov linter with:
-
-```shell
-trunk check enable checkov
-```
-
-
-
-
-
-## Auto Enabling
-
-Checkov will be auto-enabled if any _Terraform, CloudFormation, Docker, Yaml or Json_ files are present.
-
-## Settings
-
-Checkov supports the following config files:
-
-* `.checkov.yml`
-* `.checkov.yaml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Checkov site](https://github.com/bridgecrewio/checkov)
-* Checkov Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/checkov)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/circleci.mdx b/code-quality/overview/linters/supported/circleci.mdx
deleted file mode 100644
index 19c34cd..0000000
--- a/code-quality/overview/linters/supported/circleci.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "circleci"
-description: "circleci is a linter for CircleCI Config"
----
-[**circleci**](https://github.com/CircleCI-Public/circleci-cli#readme) is a linter for CircleCI Config.
-
-You can enable the circleci linter with:
-
-```shell
-trunk check enable circleci
-```
-
-## Auto Enabling
-
-circleci will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [circleci site](https://github.com/CircleCI-Public/circleci-cli#readme)
-* circleci Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/circleci)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/clang-format.mdx b/code-quality/overview/linters/supported/clang-format.mdx
deleted file mode 100644
index 197bbd9..0000000
--- a/code-quality/overview/linters/supported/clang-format.mdx
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: "ClangFormat"
-description: "Clang Format is a set of tools to format code that is processed by the Clang compiler suite."
----
-[**ClangFormat**](https://clang.llvm.org/docs/ClangFormat.html) is a formatter for Protobuf and C, C++.
-
-You can enable the ClangFormat formatter with:
-
-```shell
-trunk check enable clang-format
-```
-
-## Auto Enabling
-
-ClangFormat will be auto-enabled if a `.clang-format` config file is present.
-
-## Settings
-
-ClangFormat supports the following config files:
-
-* `.clang-format`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-By default, Trunk uses ClangFormat to additionally format `.proto` files. However, for this to work, you need to have told `clang-format` to do so in your `.clang-format` config file. You can do that by adding the following to the end of your `.clang-format file`:
-
-```yaml
----
-Language: Proto
-```
-
-For example, you might have this for your entire `.clang-format` file:
-
-```yaml
-BasedOnStyle: Google
-ColumnLimit: 100
----
-Language: Cpp
-DerivePointerAlignment: false
----
-Language: Proto
-```
-
-## Links
-
-* [ClangFormat site](https://clang.llvm.org/docs/ClangFormat.html)
-* ClangFormat Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/clang-format)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/clang-tidy.mdx b/code-quality/overview/linters/supported/clang-tidy.mdx
deleted file mode 100644
index 1d02384..0000000
--- a/code-quality/overview/linters/supported/clang-tidy.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: "clang-tidy"
-description: "A clang-based C++ linter tool to provide an extensible framework for diagnosing and fixing programming errors that can be deduced via static analysis."
----
-## clang-tidy
-
-[**clang-tidy**](https://clang.llvm.org/extra/clang-tidy/) is a linter for Protobuf and C, C++.
-
-You can enable the clang-tidy linter with:
-
-```shell
-trunk check enable clang-tidy
-```
-
-### Auto Enabling
-
-clang-tidy will be auto-enabled if a `.clang-tidy` config file is present.
-
-### Settings
-
-clang-tidy supports the following config files:
-
-* `.clang-tidy`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.clang-tidy` if your project does not already have one.
-
-### Usage Notes
-
-We only support using clang-tidy from Bazel and CMake projects.
-
-In order to only see issues in your own code, not from library header files your code includes, add this to your `.clang-tidy` file:
-
-```yaml
-HeaderFilterRegex: \./.+
-```
-
-You may have to build your project first if you depend on any generated header files.
-
-## Linter Failures
-
-If a file you're linting does not compile, clang-tidy may fail to process it. In `trunk`, this will show up as a _Linter Failure_. The output you'll see will look like a compilation error. This can also happen if the pre-reqs to running clang-tidy haven't been met (see below).
-
-## Using Bazel
-
-By default Trunk will query `bazel` for compile commands used to run `clang-tidy`. This requires no configuration.
-
-Trunk will build needed compilation pre-requisites before invoking `clang-tidy` on each file (e.g. generated protobuf headers).
-
-You can generate a local compilation database by running `trunk generate-compile-commands`.
-
-**Finding the bazel binary**
-
-Trunk will search for the `bazel` binary in two ways.
-
-* Paths relative to the workspace root.
-* Binaries in any of the directories in the PATH environment variable.
-
-First trunk will search all workspace root relative paths and then all system directories. If you override anything in `lint.bazel.paths` then we only search the paths you specify. By default the configuration is as follows.
-
-```yaml
-lint:
- bazel:
- paths:
- workspace:
- - tools/bazel
- - bazelisk
- system:
- - bazel
- - bazelisk
-```
-
-## Using `compile_commands.json` generated by CMake
-
-Trunk supports using the `compile_commands.json` file generated by CMake. If you run `cmake` from a directory called `build` in the root of your project then Trunk will find the compile commands automatically. If you run it in some other directory then you will have to symlink the `compile_commands.json` in that directory to the root of your repo for trunk to find them. Note that Trunk does not currently support CMake out of tree builds.
-
-## Another tool claims I have clang-tidy issues, but not Trunk. What gives?
-
-Trunk runs `clang-tidy` with a compile commands database so that we can guarantee clang-tidy produces the correct diagnostics about your code. Other tools, such as `clangd`, may use best-effort heuristics to guess a compile command for a given clang-tidy input file (for example, see [this discussion)](https://github.com/clangd/clangd/issues/519) and consequently produce incorrect clang-tidy findings because they guessed the compile command wrong.
-
-### Links
-
-* [clang-tidy site](https://clang.llvm.org/extra/clang-tidy/)
-* clang-tidy Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/clang-tidy)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/clippy.mdx b/code-quality/overview/linters/supported/clippy.mdx
deleted file mode 100644
index 4b2ce36..0000000
--- a/code-quality/overview/linters/supported/clippy.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "Clippy"
-description: "A collection of lints to catch common mistakes and improve your Rust code."
----
-[**Clippy**](https://doc.rust-lang.org/clippy/) is a linter for Rust.
-
-You can enable the Clippy linter with:
-
-```shell
-trunk check enable clippy
-```
-
-## Auto Enabling
-
-Clippy will be auto-enabled if any _Rust_ files are present.
-
-## Settings
-
-Clippy supports the following config files:
-
-* `clippy.toml`
-* `.clippy.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-Clippy is distributed with rust itself, so specify your rust version for your clippy version (for example `clippy@1.61.0`).
-
-## Links
-
-* [Clippy site](https://doc.rust-lang.org/clippy/)
-* Clippy Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/clippy)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/cmake-format.mdx b/code-quality/overview/linters/supported/cmake-format.mdx
deleted file mode 100644
index 6c3b334..0000000
--- a/code-quality/overview/linters/supported/cmake-format.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "cmake-format"
-description: "Learn how to install, configure, and run CMake-Format with Trunk Check to ensure consistent formatting and best practices for your CMake scripts."
----
-[**cmake-format**](https://github.com/cheshirekow/cmake_format) is a formatter for C, C++.
-
-You can enable the cmake-format formatter with:
-
-```shell
-trunk check enable cmake-format
-```
-
-## Auto Enabling
-
-cmake-format will be auto-enabled if any of its config files are present: _`.cmake-format.json`, `.cmake-format.py`, `.cmake-format.yaml`_.
-
-## Settings
-
-cmake-format supports the following config files:
-
-* `.cmake-format.json`
-* `.cmake-format.py`
-* `.cmake-format.yaml`
-* `cmake-format.json`
-* `cmake-format.py`
-* `cmake-format.yaml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [cmake-format site](https://github.com/cheshirekow/cmake_format)
-* cmake-format Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/cmake-format)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/codespell.mdx b/code-quality/overview/linters/supported/codespell.mdx
deleted file mode 100644
index 22cc3ef..0000000
--- a/code-quality/overview/linters/supported/codespell.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "codespell"
-description: "Codespell fixes common misspellings in text files. It's designed primarily to check misspelled words in source code."
----
-[**codespell**](https://github.com/codespell-project/codespell#readme) is a linter for All.
-
-You can enable the codespell linter with:
-
-```shell
-trunk check enable codespell
-```
-
-
-
-
-
-## Auto Enabling
-
-codespell will be auto-enabled if a `.codespellrc` config file is present.
-
-## Settings
-
-codespell supports the following config files:
-
-* `.codespellrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [codespell site](https://github.com/codespell-project/codespell#readme)
-* codespell Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/codespell)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/cspell.mdx b/code-quality/overview/linters/supported/cspell.mdx
deleted file mode 100644
index f134c22..0000000
--- a/code-quality/overview/linters/supported/cspell.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: "cspell"
-description: "CSpell is a linter for identifying and fixing spelling errors in source code, documentation, and configuration files, enhancing overall project quality."
----
-[**cspell**](https://github.com/streetsidesoftware/cspell#readme) is a linter for All.
-
-You can enable the cspell linter with:
-
-```shell
-trunk check enable cspell
-```
-
-
-
-
-
-## Auto Enabling
-
-cspell will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-cspell supports the following config files:
-
-* `.cspell.json`
-* `cspell.json`
-* `.cSpell.json`
-* `cSpell.json`
-* `cspell.config.js`
-* `cspell.config.cjs`
-* `cspell.config.json`
-* `cspell.config.yaml`
-* `cspell.config.yml`
-* `cspell.yaml`
-* `cspell.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `cspell.yaml` if your project does not already have one.
-
-## Links
-
-* [cspell site](https://github.com/streetsidesoftware/cspell#readme)
-* cspell Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/cspell)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/cue-fmt.mdx b/code-quality/overview/linters/supported/cue-fmt.mdx
deleted file mode 100644
index b6c88d6..0000000
--- a/code-quality/overview/linters/supported/cue-fmt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "cue-fmt"
-description: "cue-fmt is a formatter for CUE files that improves consistency and readability. Learn how to install, configure, and run cue-fmt."
----
-[**cue-fmt**](https://cuelang.org) is a formatter for Cue.
-
-You can enable the cue-fmt formatter with:
-
-```shell
-trunk check enable cue-fmt
-```
-
-## Auto Enabling
-
-cue-fmt will be auto-enabled if any _Cue_ files are present.
-
-## Links
-
-* [cue-fmt site](https://cuelang.org)
-* cue-fmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/cue-fmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/dart.mdx b/code-quality/overview/linters/supported/dart.mdx
deleted file mode 100644
index 2964729..0000000
--- a/code-quality/overview/linters/supported/dart.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "dart"
-description: "dart is a linter for Dart"
----
-[**dart**](https://dart.dev/tools/dart-format) is a linter for Dart.
-
-You can enable the dart linter with:
-
-```shell
-trunk check enable dart
-```
-
-## Auto Enabling
-
-dart will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [dart site](https://dart.dev/tools/dart-format)
-* dart Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/dart)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/deno.mdx b/code-quality/overview/linters/supported/deno.mdx
deleted file mode 100644
index c4eb7be..0000000
--- a/code-quality/overview/linters/supported/deno.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "deno"
-description: "deno is a linter for JavaScript, JSON, TypeScript and Markdown"
----
-[**deno**](https://deno.land/manual) is a linter for JavaScript, JSON, TypeScript and Markdown.
-
-You can enable the deno linter with:
-
-```shell
-trunk check enable deno
-```
-
-## Auto Enabling
-
-deno will be auto-enabled if any of its config files are present: _`deno.json`, `deno.jsonc`_.
-
-## Settings
-
-deno supports the following config files:
-
-* `deno.json`
-* `deno.jsonc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [deno site](https://deno.land/manual)
-* deno Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/deno)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/detekt.mdx b/code-quality/overview/linters/supported/detekt.mdx
deleted file mode 100644
index 6cbf562..0000000
--- a/code-quality/overview/linters/supported/detekt.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: "Detekt"
-description: "Static code analysis for Kotlin"
----
-[**Detekt**](https://github.com/detekt/detekt) is a linter for Kotlin.
-
-detekt is composed of several linter commands.
-
-`detekt` runs detekt with the built-in default config and any overrides in `.detekt.yaml`.
-
-You can enable the `detekt` linter with:
-
-```shell
-trunk check enable detekt
-```
-
-`detekt-explicit` disables the default config and uses `.detekt.yaml` as the source of truth.
-
-You can enable the `detekt-explicit` linter with:
-
-```shell
-trunk check enable detekt-explicit
-```
-
-`detekt-gradle` runs detekt using Gradle. Only use if you already are using Gradle for the rest of your build setup.
-
-You can enable the `detekt-gradle` linter with:
-
-```shell
-trunk check enable detekt-gradle
-```
-
-## Auto Enabling
-
-Detekt will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-Detekt supports the following config files:
-
-* `.detekt.yaml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-Detekt is usually invoked through gradle, which allows specifying additional configuration in `build.gradle`. We do not yet automatically parse your Gradle scripts to infer your `detekt` configuration; instead, what we do is this:
-
-* `detekt` invokes [`detekt-cli`](https://detekt.github.io/detekt/cli.html) with the `--build-upon-default-config` flag (this appears to be [more common](https://cs.github.com/?q=%2FbuildUponDefaultConfig.*%28true%29%2F+detekt) than the alternative).
-* `detekt-explicit` invokes [`detekt-cli`](https://detekt.github.io/detekt/cli.html) without the `--build-upon-default-config` flag.
-
-You will also need to provide a valid detekt config as `.detekt.yaml` (an empty `.detekt.yaml` is valid, if you don't want to configure `detekt`). If you already have a detekt config, then you can symlink it like so:
-
-```bash
-ln -s path/to/existing/detekt-config.yml .detekt-config.yaml
-```
-
-To use `./gradlew detekt` to invoke Detekt, you can add `detekt-gradle@SYSTEM` to your `enabled` list. Note that since you're running Detekt via Gradle, you should also add the paths to your Detekt configurations to `direct_configs`, e.g.
-
-```undefined
-direct_configs: ["lib/detekt.yaml"]
-```
-
-## Links
-
-* [Detekt site](https://github.com/detekt/detekt)
-* Detekt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/detekt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/djlint.mdx b/code-quality/overview/linters/supported/djlint.mdx
deleted file mode 100644
index d7dc334..0000000
--- a/code-quality/overview/linters/supported/djlint.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "djlint"
-description: "djlint is a linter for HTML Templates"
----
-[**djlint**](https://github.com/Riverside-Healthcare/djlint#readme) is a linter for HTML Templates.
-
-You can enable the djlint linter with:
-
-```shell
-trunk check enable djlint
-```
-
-## Auto Enabling
-
-djlint will be auto-enabled if a `.djlintrc` config file is present.
-
-## Settings
-
-djlint supports the following config files:
-
-* `.djlintrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.djlintrc` if your project does not already have one.
-
-## Links
-
-* [djlint site](https://github.com/Riverside-Healthcare/djlint#readme)
-* djlint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/djlint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/dotenv-linter.mdx b/code-quality/overview/linters/supported/dotenv-linter.mdx
deleted file mode 100644
index 9ddad88..0000000
--- a/code-quality/overview/linters/supported/dotenv-linter.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "dotenv-linter"
-description: "dotenv-linter is a linter for Dotenv"
----
-[**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter#readme) is a linter for Dotenv.
-
-You can enable the dotenv-linter linter with:
-
-```shell
-trunk check enable dotenv-linter
-```
-
-## Auto Enabling
-
-dotenv-linter will be auto-enabled if any _Dotenv_ files are present.
-
-## Links
-
-* [dotenv-linter site](https://github.com/dotenv-linter/dotenv-linter#readme)
-* dotenv-linter Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/dotenv-linter)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/dotnet-format.mdx b/code-quality/overview/linters/supported/dotnet-format.mdx
deleted file mode 100644
index d391808..0000000
--- a/code-quality/overview/linters/supported/dotnet-format.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "dotnet-format"
-description: "dotnet-format is a linter for C#"
----
-[**dotnet-format**](https://github.com/dotnet/format#readme) is a linter for C#.
-
-You can enable the dotnet-format linter with:
-
-```shell
-trunk check enable dotnet-format
-```
-
-## Auto Enabling
-
-dotnet-format will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [dotnet-format site](https://github.com/dotnet/format#readme)
-* dotnet-format Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/dotnet-format)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/dustilock.mdx b/code-quality/overview/linters/supported/dustilock.mdx
deleted file mode 100644
index 95d3921..0000000
--- a/code-quality/overview/linters/supported/dustilock.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "dustilock"
-description: "dustilock is a linter for Security"
----
-[**dustilock**](https://github.com/Checkmarx/dustilock) is a linter for Security.
-
-You can enable the dustilock linter with:
-
-```shell
-trunk check enable dustilock
-```
-
-## Auto Enabling
-
-dustilock will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [dustilock site](https://github.com/Checkmarx/dustilock)
-* dustilock Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/dustilock)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/eslint.mdx b/code-quality/overview/linters/supported/eslint.mdx
deleted file mode 100644
index 4bbac00..0000000
--- a/code-quality/overview/linters/supported/eslint.mdx
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: "ESLint"
-description: "ESLint statically analyzes your code to quickly find problems."
----
-## ESLint
-
-[**ESLint**](https://eslint.org/) is a linter for JavaScript, JSON and TypeScript.
-
-You can enable the ESLint linter with:
-
-```shell
-trunk check enable eslint
-```
-
-### Auto Enabling
-
-ESLint will be auto-enabled if any of its config files are present: _`eslint.config.js`, `eslint.config.mjs`, `eslint.config.cjs`_.
-
-### Settings
-
-ESLint supports the following config files:
-
-* `eslint.config.js`
-* `eslint.config.mjs`
-* `eslint.config.cjs`
-* `.eslintrc`
-* `.eslintrc.cjs`
-* `.eslintrc.js`
-* `.eslintrc.json`
-* `.eslintrc.mjs`
-* `.eslintrc.yaml`
-* `.eslintrc.yml`
-
-Unlike with most tools under `trunk check`, these files cannot be moved.
-
-### Usage Notes
-
-## ESLint >= 9.x
-
-As of ESLint v9, all of the formatters have been removed. We suggest using [prettier](/code-quality/overview/linters/supported/prettier) to format Javascript and Typescript code. The extra package mentioned below is no longer needed for ESLint v9 and higher.
-
-## ESlint < 8.x
-
-Most ESLint users use several plugins, custom parsers, etc. Trunk has turned off sandboxing and caching for ESLint so it can use your repo's installed packages for ESLint plugins, and other required ESLint packages. Trunk controls the ESLint version, but otherwise, ESLint looks for all plugins, configs, etc. based on the path of the source file it is linting. **This all means you do need to have npm/yarn installed in your repo as a prerequisite before running ESLint via trunk**.
-
-We recommend you disable all Prettier rules in your ESLint config and let Trunk run Prettier automatically on your files. It's much nicer to just autoformat a file than to see a lint error for every missing space.
-
-You can easily do this by:
-
-* adding the `eslint-config-prettier` package
-* adding `prettier` as the last element to the `extends` property in your ESLint config
-
-For example, your `extends` list might look like:
-
-```yaml
-extends:
- # Order matters, later configs purposefully override settings from earlier configs
- - eslint:recommended
- - airbnb
- - plugin:@typescript-eslint/recommended
- - plugin:import/recommended
- - plugin:import/typescript
- - plugin:node/recommended
- - plugin:mocha/recommended
- - plugin:react/recommended
- - prettier # this actually turns OFF all Prettier rules running via ESLint
-```
-
-### Links
-
-* [ESLint site](https://eslint.org/)
-* ESLint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/eslint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/flake8.mdx b/code-quality/overview/linters/supported/flake8.mdx
deleted file mode 100644
index d3eb64a..0000000
--- a/code-quality/overview/linters/supported/flake8.mdx
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Flake8"
-description: "Uncover Flake8, a versatile Python linter for code style and error checking. Flake 8 checks against PEP 8 and more, with plugin support for broader analysis."
----
-[**Flake8**](https://flake8.pycqa.org/en/latest/) is a linter for Python.
-
-You can enable the Flake8 linter with:
-
-```shell
-trunk check enable flake8
-```
-
-
-
-
-
-## Auto Enabling
-
-Flake8 will be auto-enabled if a `.flake8` config file is present.
-
-## Settings
-
-Flake8 supports the following config files:
-
-* `.flake8`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.flake8` if your project does not already have one.
-
-## Usage Notes
-
-Flake8 has a plugin architecture where if you install a plugin, it gets used. You can enable Flake8 plugins via:
-
-```yaml
-enabled:
- - flake8@3.9.2:
- packages:
- - flake8-bugbear@21.4.3
-```
-
-`flake8-bugbear` is probably the most popular **flake8** plugin, we recommend it!. Here are a few other popular flake8 plugins you should consider.
-
-* **flake8-comprehensions**: Helps in identifying unnecessary comprehensions in your code.
-* **flake8-docstrings**: Checks for compliance with Python docstring conventions.
-* **flake8-import-order**: Checks the order of your imports according to various configurable ordering styles.
-
-Here's an updated code snippet with the above Plugins enabled:
-
-```undefined
-enabled:
- - flake8@3.9.2:
- packages:
- - flake8-bugbear@21.4.3
- - flake8-docstrings@1.7.0
- - flake8-import-order@0.18.2
- - flake8-comprehensions@3.14.0
-```
-
-## Links
-
-* [Flake8 site](https://flake8.pycqa.org/en/latest/)
-* Flake8 Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/flake8)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/git-diff-check.mdx b/code-quality/overview/linters/supported/git-diff-check.mdx
deleted file mode 100644
index a4f4467..0000000
--- a/code-quality/overview/linters/supported/git-diff-check.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "git-diff-check"
-description: "git-diff-check is a linter for All"
----
-[**git-diff-check**](https://git-scm.com/docs/git-diff) is a linter for All.
-
-You can enable the git-diff-check linter with:
-
-```shell
-trunk check enable git-diff-check
-```
-
-## Auto Enabling
-
-git-diff-check will be auto-enabled if any _all_ files are present.
-
-## Links
-
-* [git-diff-check site](https://git-scm.com/docs/git-diff)
-* git-diff-check Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/git-diff-check)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/gitleaks.mdx b/code-quality/overview/linters/supported/gitleaks.mdx
deleted file mode 100644
index 337dda2..0000000
--- a/code-quality/overview/linters/supported/gitleaks.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: "Gitleaks"
-description: "Explore Gitleaks, an open-source tool for identifying secrets in codebases. Learn about its file type support and integration with Trunk."
----
-[**Gitleaks**](https://gitleaks.io/) is a linter for All.
-
-You can enable the Gitleaks linter with:
-
-```shell
-trunk check enable gitleaks
-```
-
-
-
-
-
-## Auto Enabling
-
-Gitleaks will be auto-enabled if any of its config files are present: _`.gitleaks.config`, `.gitleaks.toml`, `.gitleaksignore`_.
-
-## Settings
-
-Gitleaks supports the following config files:
-
-* `.gitleaks.config`
-* `.gitleaks.toml`
-* `.gitleaksignore`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-Gitleaks v7 only works with Go 1.16, not Go 1.18 while Gitleaks v8 works with 1.18. We recommend using v8, but if you specifically need to use v7 you can override the go runtime version like so:
-
-```yaml
-runtimes:
- enabled:
- - go@1.16.7
-```
-
-Again, this is not recommended. Just use Gitleaks v8 or later with go 1.18 or later.
-
-## Links
-
-* [Gitleaks site](https://gitleaks.io/)
-* Gitleaks Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/gitleaks)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/gofmt.mdx b/code-quality/overview/linters/supported/gofmt.mdx
deleted file mode 100644
index 5eff07b..0000000
--- a/code-quality/overview/linters/supported/gofmt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "Gofmt"
-description: "Gofmt simplifies Go coding by automatically formatting code to match Go's style guidelines, enhancing readability and teamwork without the manual hassle."
----
-[**Gofmt**](https://github.com/rhysd/actionlint) is a formatter for Go.
-
-You can enable the Gofmt formatter with:
-
-```shell
-trunk check enable gofmt
-```
-
-## Auto Enabling
-
-Gofmt will be auto-enabled if any _Go_ files are present.
-
-## Links
-
-* [Gofmt site](https://github.com/rhysd/actionlint)
-* Gofmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/gofmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/gofumpt.mdx b/code-quality/overview/linters/supported/gofumpt.mdx
deleted file mode 100644
index 1f5c689..0000000
--- a/code-quality/overview/linters/supported/gofumpt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "gofumpt"
-description: "gofumpt is a linter for Go"
----
-[**gofumpt**](https://pkg.go.dev/mvdan.cc/gofumpt) is a linter for Go.
-
-You can enable the gofumpt linter with:
-
-```shell
-trunk check enable gofumpt
-```
-
-## Auto Enabling
-
-gofumpt will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [gofumpt site](https://pkg.go.dev/mvdan.cc/gofumpt)
-* gofumpt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/gofumpt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/goimports.mdx b/code-quality/overview/linters/supported/goimports.mdx
deleted file mode 100644
index 7934fb4..0000000
--- a/code-quality/overview/linters/supported/goimports.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "goimports"
-description: "goimports is a linter for Go"
----
-[**goimports**](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) is a linter for Go.
-
-You can enable the goimports linter with:
-
-```shell
-trunk check enable goimports
-```
-
-## Auto Enabling
-
-goimports will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [goimports site](https://pkg.go.dev/golang.org/x/tools/cmd/goimports)
-* goimports Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/goimports)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/gokart.mdx b/code-quality/overview/linters/supported/gokart.mdx
deleted file mode 100644
index b947fd9..0000000
--- a/code-quality/overview/linters/supported/gokart.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "gokart"
-description: "gokart is a linter for Go"
----
-[**gokart**](https://github.com/praetorian-inc/gokart) is a linter for Go.
-
-You can enable the gokart linter with:
-
-```shell
-trunk check enable gokart
-```
-
-## Auto Enabling
-
-gokart will be auto-enabled if a `analyzers.yml` config file is present.
-
-## Settings
-
-gokart supports the following config files:
-
-* `analyzers.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `analyzers.yml` if your project does not already have one.
-
-## Links
-
-* [gokart site](https://github.com/praetorian-inc/gokart)
-* gokart Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/gokart)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/golangci-lint.mdx b/code-quality/overview/linters/supported/golangci-lint.mdx
deleted file mode 100644
index ba85387..0000000
--- a/code-quality/overview/linters/supported/golangci-lint.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: "golangci-lint"
-description: "Golangci-lint is a fast Go linters runner. Learn how to install, configure, and use golangci-lint effectively for Go projects."
----
-[**golangci-lint**](https://github.com/golangci/golangci-lint) is a linter for Go.
-
-You can enable the golangci-lint linter with:
-
-```shell
-trunk check enable golangci-lint
-```
-
-## Auto Enabling
-
-golangci-lint will be auto-enabled if any _Go_ files are present.
-
-## Settings
-
-golangci-lint supports the following config files:
-
-* `.golangci.json`
-* `.golangci.toml`
-* `.golangci.yaml`
-* `.golangci.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-Make sure your go version in `go.mod` matches Trunk's go runtime version. At the time of this writing, Trunk's default go runtime version is `1.21.0`. You can find out what it is via `trunk print-config`, and look for the `runtime` section, and you can override the default version in your `trunk.yaml` via:
-
-```yaml
-runtimes:
- enabled:
- - go@1.21.0
-```
-
-## Links
-
-* [golangci-lint site](https://github.com/golangci/golangci-lint)
-* golangci-lint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/golangci-lint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/golines.mdx b/code-quality/overview/linters/supported/golines.mdx
deleted file mode 100644
index 651022d..0000000
--- a/code-quality/overview/linters/supported/golines.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "golines"
-description: "golines is a linter for Go"
----
-[**golines**](https://pkg.go.dev/github.com/segmentio/golines) is a linter for Go.
-
-You can enable the golines linter with:
-
-```shell
-trunk check enable golines
-```
-
-## Auto Enabling
-
-golines will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [golines site](https://pkg.go.dev/github.com/segmentio/golines)
-* golines Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/golines)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/google-java-format.mdx b/code-quality/overview/linters/supported/google-java-format.mdx
deleted file mode 100644
index d0b5400..0000000
--- a/code-quality/overview/linters/supported/google-java-format.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "google-java-format"
-description: "google-java-format is a linter for Java"
----
-[**google-java-format**](https://github.com/google/google-java-format#readme) is a linter for Java.
-
-You can enable the google-java-format linter with:
-
-```shell
-trunk check enable google-java-format
-```
-
-## Auto Enabling
-
-google-java-format will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [google-java-format site](https://github.com/google/google-java-format#readme)
-* google-java-format Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/google-java-format)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/graphql-schema-linter.mdx b/code-quality/overview/linters/supported/graphql-schema-linter.mdx
deleted file mode 100644
index 67e6fd1..0000000
--- a/code-quality/overview/linters/supported/graphql-schema-linter.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "graphql-schema-linter"
-description: "graphql-schema-linter is a linter for GraphQL"
----
-[**graphql-schema-linter**](https://github.com/cjoudrey/graphql-schema-linter#readme) is a linter for GraphQL.
-
-You can enable the graphql-schema-linter linter with:
-
-```shell
-trunk check enable graphql-schema-linter
-```
-
-## Auto Enabling
-
-graphql-schema-linter will be auto-enabled if any of its config files are present: _`.graphql-schema-linter.config.js`, `.graphql-schema-linterrc`_.
-
-## Settings
-
-graphql-schema-linter supports the following config files:
-
-* `.graphql-schema-linter.config.js`
-* `.graphql-schema-linterrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [graphql-schema-linter site](https://github.com/cjoudrey/graphql-schema-linter#readme)
-* graphql-schema-linter Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/graphql-schema-linter)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/hadolint.mdx b/code-quality/overview/linters/supported/hadolint.mdx
deleted file mode 100644
index 02c01d5..0000000
--- a/code-quality/overview/linters/supported/hadolint.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "hadolint"
-description: "hadolint is a linter for Docker"
----
-[**hadolint**](https://github.com/hadolint/hadolint#readme) is a linter for Docker.
-
-You can enable the hadolint linter with:
-
-```shell
-trunk check enable hadolint
-```
-
-## Auto Enabling
-
-hadolint will be auto-enabled if any _Docker_ files are present.
-
-## Settings
-
-hadolint supports the following config files:
-
-* `.hadolint.yaml`
-* `.hadolint.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.hadolint.yaml` if your project does not already have one.
-
-## Links
-
-* [hadolint site](https://github.com/hadolint/hadolint#readme)
-* hadolint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/hadolint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/haml-lint.mdx b/code-quality/overview/linters/supported/haml-lint.mdx
deleted file mode 100644
index f5430e5..0000000
--- a/code-quality/overview/linters/supported/haml-lint.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "haml-lint"
-description: "haml-lint is a linter for HAML"
----
-[**haml-lint**](https://github.com/sds/haml-lint#readme) is a linter for HAML.
-
-You can enable the haml-lint linter with:
-
-```shell
-trunk check enable haml-lint
-```
-
-## Auto Enabling
-
-haml-lint will be auto-enabled if any _Haml_ files are present.
-
-## Settings
-
-haml-lint supports the following config files:
-
-* `.haml-lint.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [haml-lint site](https://github.com/sds/haml-lint#readme)
-* haml-lint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/haml-lint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/index.mdx b/code-quality/overview/linters/supported/index.mdx
deleted file mode 100644
index 92ed773..0000000
--- a/code-quality/overview/linters/supported/index.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: "Supported Linters"
-description: "Trunk Code Quality supports over 100 linters and formatters"
----
-
-#### 📘 Our linter integrations are open-source!
-
-You can find them at [`trunk-io/plugins`](https://github.com/trunk-io/plugins), contributions are welcome!
-
-
-Enable any of the following tools with:
-
-```
-trunk check enable
-```
-
-| Technology | Linters |
-| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| All | [codespell](./codespell), [cspell](./cspell), [git-diff-check](./git-diff-check), [gitleaks](./gitleaks), [pre-commit-hooks](./pre-commit-hooks) |
-| Ansible | [ansible-lint](./ansible-lint) |
-| Apex | [pmd](./pmd) |
-| Bash | [shellcheck](./shellcheck), [shfmt](./shfmt) |
-| Bazel, Starlark | [buildifier](./buildifier) |
-| C# | [dotnet-format](./dotnet-format) |
-| C, C++ | [clang-format](./clang-format), [clang-tidy](./clang-tidy), [cmake-format](./cmake-format), [iwyu](./iwyu), [pragma-once](./pragma-once) |
-| CircleCI Config | [circleci](./circleci) |
-| CloudFormation | [cfnlint](./cfnlint), [checkov](./checkov) |
-| CSS, SCSS | [prettier](./prettier), [stylelint](./stylelint) |
-| Cue | [cue-fmt](./cue-fmt) |
-| Dart | [dart](./dart) |
-| Docker | [checkov](./checkov), [hadolint](./hadolint) |
-| Dotenv | [dotenv-linter](./dotenv-linter) |
-| GitHub | [actionlint](./actionlint) |
-| Go | [gofmt](./gofmt), [gofumpt](./gofumpt), [goimports](./goimports), [gokart](./gokart), [golangci-lint](./golangci-lint), [golines](./golines), [semgrep](./semgrep) |
-| GraphQL | [graphql-schema-linter](./graphql-schema-linter), [prettier](./prettier) |
-| HAML | [haml-lint](./haml-lint) |
-| HTML Templates | [djlint](./djlint) |
-| Java | [google-java-format](./google-java-format), [pmd](./pmd), [semgrep](./semgrep) |
-| JavaScript | [biome](./biome), [deno](./deno), [eslint](./eslint), [prettier](./prettier), [rome](./rome), [semgrep](./semgrep) |
-| JSON | [deno](./deno), [eslint](./eslint), [prettier](./prettier), [semgrep](./semgrep) |
-| json | [biome](./biome) |
-| jsx | [biome](./biome) |
-| Kotlin | [detekt](./detekt), [ktlint](./ktlint) |
-| Kubernetes | [kube-linter](./kube-linter) |
-| Lua | [stylua](./stylua) |
-| Markdown | [deno](./deno), [markdown-link-check](./markdown-link-check), [markdown-table-prettify](./markdown-table-prettify), [markdownlint](./markdownlint), [markdownlint-cli2](./markdownlint-cli2), [prettier](./prettier), [remark-lint](./remark-lint) |
-| Nix | [nixpkgs-fmt](./nixpkgs-fmt) |
-| package.json | [sort-package-json](./sort-package-json) |
-| Perl | [perlcritic](./perlcritic), [perltidy](./perltidy) |
-| PHP | [php-cs-fixer](./php-cs-fixer), [phpstan](./phpstan) |
-| PNG | [oxipng](./oxipng) |
-| PowerShell | [psscriptanalyzer](./psscriptanalyzer) |
-| Prisma | [prisma](./prisma) |
-| prose | [vale](./vale) |
-| Protobuf | [buf](./buf), [clang-format](./clang-format), [clang-tidy](./clang-tidy) |
-| Python | [autopep8](./autopep8), [bandit](./bandit), [black](./black), [flake8](./flake8), [isort](./isort), [mypy](./mypy), [pylint](./pylint), [pyright](./pyright), [ruff](./ruff), [semgrep](./semgrep), [sourcery](./sourcery), [yapf](./yapf) |
-| Rego | [opa](./opa), [regal](./regal) |
-| Renovate | [renovate](./renovate) |
-| Ruby | [brakeman](./brakeman), [rubocop](./rubocop), [rufo](./rufo), [semgrep](./semgrep), [standardrb](./standardrb) |
-| Rust | [clippy](./clippy), [rustfmt](./rustfmt) |
-| Scala | [scalafmt](./scalafmt) |
-| Security | [checkov](./checkov), [dustilock](./dustilock), [nancy](./nancy), [osv-scanner](./osv-scanner), [terrascan](./terrascan), [tfsec](./tfsec), [trivy](./trivy), [trufflehog](./trufflehog) |
-| SQL | [sql-formatter](./sql-formatter), [sqlfluff](./sqlfluff), [sqlfmt](./sqlfmt), [squawk](./squawk) |
-| SVG | [svgo](./svgo) |
-| Swift | [stringslint](./stringslint), [swiftformat](./swiftformat), [swiftlint](./swiftlint) |
-| Terraform | [checkov](./checkov), [terraform](./terraform), [terrascan](./terrascan), [tflint](./tflint), [tfsec](./tfsec), [tofu](./tofu) |
-| Terragrunt | [terragrunt](./terragrunt) |
-| Terrascan | [terrascan](./terrascan) |
-| Textproto | [txtpbfmt](./txtpbfmt) |
-| TOML | [taplo](./taplo) |
-| TypeScript | [biome](./biome), [deno](./deno), [eslint](./eslint), [prettier](./prettier), [rome](./rome), [semgrep](./semgrep) |
-| YAML | [prettier](./prettier), [semgrep](./semgrep), [yamllint](./yamllint) |
-
-
-#### Can't find a linter you need?
-
-Chat with Trunk's engineers and suggest your ideas. Join us and 1500+ fellow engineers [on Slack](https://slack.trunk.io/).
-
-
diff --git a/code-quality/overview/linters/supported/isort.mdx b/code-quality/overview/linters/supported/isort.mdx
deleted file mode 100644
index adfa5d8..0000000
--- a/code-quality/overview/linters/supported/isort.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "isort"
-description: "isort is a Python utility for sorting imports alphabetically and automatically separating them into sections and by type."
----
-[**isort**](https://pycqa.github.io/isort/) is a formatter for Python.
-
-You can enable the isort formatter with:
-
-```shell
-trunk check enable isort
-```
-
-
-
-
-
-## Auto Enabling
-
-isort will be auto-enabled if any _Python_ files are present.
-
-## Settings
-
-isort supports the following config files:
-
-* `.isort.cfg`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.isort.cfg` if your project does not already have one.
-
-## Links
-
-* [isort site](https://pycqa.github.io/isort/)
-* isort Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/isort)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/iwyu.mdx b/code-quality/overview/linters/supported/iwyu.mdx
deleted file mode 100644
index c124d8c..0000000
--- a/code-quality/overview/linters/supported/iwyu.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "iwyu"
-description: "iwyu is a linter for C, C++"
----
-[**iwyu**](https://github.com/include-what-you-use/include-what-you-use#readme) is a linter for C, C++.
-
-You can enable the iwyu linter with:
-
-```shell
-trunk check enable iwyu
-```
-
-## Auto Enabling
-
-iwyu will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [iwyu site](https://github.com/include-what-you-use/include-what-you-use#readme)
-* iwyu Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/iwyu)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/ktlint.mdx b/code-quality/overview/linters/supported/ktlint.mdx
deleted file mode 100644
index 2f804a5..0000000
--- a/code-quality/overview/linters/supported/ktlint.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "ktlint"
-description: "ktlint is a linter for Kotlin"
----
-[**ktlint**](https://github.com/pinterest/ktlint#readme) is a linter for Kotlin.
-
-You can enable the ktlint linter with:
-
-```shell
-trunk check enable ktlint
-```
-
-## Auto Enabling
-
-ktlint will be auto-enabled if any _Kotlin_ files are present.
-
-## Links
-
-* [ktlint site](https://github.com/pinterest/ktlint#readme)
-* ktlint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/ktlint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/kube-linter.mdx b/code-quality/overview/linters/supported/kube-linter.mdx
deleted file mode 100644
index 31de63a..0000000
--- a/code-quality/overview/linters/supported/kube-linter.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "kube-linter"
-description: "kube-linter is a linter for Kubernetes"
----
-[**kube-linter**](https://github.com/stackrox/kube-linter#readme) is a linter for Kubernetes.
-
-You can enable the kube-linter linter with:
-
-```shell
-trunk check enable kube-linter
-```
-
-## Auto Enabling
-
-kube-linter will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [kube-linter site](https://github.com/stackrox/kube-linter#readme)
-* kube-linter Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/kube-linter)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/markdown-link-check.mdx b/code-quality/overview/linters/supported/markdown-link-check.mdx
deleted file mode 100644
index 4af1212..0000000
--- a/code-quality/overview/linters/supported/markdown-link-check.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "markdown-link-check"
-description: "markdown-link-check is a linter for Markdown"
----
-[**markdown-link-check**](https://github.com/tcort/markdown-link-check#readme) is a linter for Markdown.
-
-You can enable the markdown-link-check linter with:
-
-```shell
-trunk check enable markdown-link-check
-```
-
-## Auto Enabling
-
-markdown-link-check will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [markdown-link-check site](https://github.com/tcort/markdown-link-check#readme)
-* markdown-link-check Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/markdown-link-check)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/markdown-table-prettify.mdx b/code-quality/overview/linters/supported/markdown-table-prettify.mdx
deleted file mode 100644
index adbd96f..0000000
--- a/code-quality/overview/linters/supported/markdown-table-prettify.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "markdown-table-prettify"
-description: "markdown-table-prettify is a linter for Markdown"
----
-[**markdown-table-prettify**](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt#readme) is a linter for Markdown.
-
-You can enable the markdown-table-prettify linter with:
-
-```shell
-trunk check enable markdown-table-prettify
-```
-
-## Auto Enabling
-
-markdown-table-prettify will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [markdown-table-prettify site](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt#readme)
-* markdown-table-prettify Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/markdown-table-prettify)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/markdownlint-cli2.mdx b/code-quality/overview/linters/supported/markdownlint-cli2.mdx
deleted file mode 100644
index 176d425..0000000
--- a/code-quality/overview/linters/supported/markdownlint-cli2.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "markdownlint-cli2"
-description: "markdownlint-cli2 is a linter for Markdown"
----
-[**markdownlint-cli2**](https://github.com/DavidAnson/markdownlint-cli2) is a linter for Markdown.
-
-You can enable the markdownlint-cli2 linter with:
-
-```shell
-trunk check enable markdownlint-cli2
-```
-
-## Auto Enabling
-
-markdownlint-cli2 will be auto-enabled if any of its config files are present: _`.markdownlint-cli2.jsonc`, `.markdownlint-cli2.yaml`, `.markdownlint-cli2.cjs`_.
-
-## Settings
-
-markdownlint-cli2 supports the following config files:
-
-* `.markdownlint-cli2.jsonc`
-* `.markdownlint-cli2.yaml`
-* `.markdownlint-cli2.cjs`
-* `.markdownlint-cli2.mjs`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [markdownlint-cli2 site](https://github.com/DavidAnson/markdownlint-cli2)
-* markdownlint-cli2 Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/markdownlint-cli2)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/markdownlint.mdx b/code-quality/overview/linters/supported/markdownlint.mdx
deleted file mode 100644
index 27df7ac..0000000
--- a/code-quality/overview/linters/supported/markdownlint.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: "Markdownlint"
-description: "Markdownlint is a tool designed to enforce consistency for Markdown files. It can include checks for headings, lists, line length, and syntax preferences."
----
-[**Markdownlint**](https://github.com/DavidAnson/markdownlint) is a linter for Markdown.
-
-You can enable the Markdownlint linter with:
-
-```shell
-trunk check enable markdownlint
-```
-
-## Auto Enabling
-
-Markdownlint will be auto-enabled if any _Markdown_ files are present.
-
-## Settings
-
-Markdownlint supports the following config files:
-
-* `.markdownlint.json`
-* `.markdownlint.yaml`
-* `.markdownlint.yml`
-* `.markdownlintrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.markdownlint.yaml` if your project does not already have one.
-
-## Usage Notes
-
-Older versions of `markdownlint` had a bug where it printed plaintext output even when run with `--json`. We rely on JSON output so we can parse and ingest the results from markdownlint. The package we use for markdownlint is actually [markdownlint-cli ](https://www.npmjs.com/package/markdownlint-cli)`>= 0.29.0` is verified to work.
-
-## Links
-
-* [Markdownlint site](https://github.com/DavidAnson/markdownlint)
-* Markdownlint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/markdownlint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/mypy.mdx b/code-quality/overview/linters/supported/mypy.mdx
deleted file mode 100644
index 8210488..0000000
--- a/code-quality/overview/linters/supported/mypy.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "mypy"
-description: "mypy is a linter for Python"
----
-[**mypy**](https://github.com/python/mypy#readme) is a linter for Python.
-
-You can enable the mypy linter with:
-
-```shell
-trunk check enable mypy
-```
-
-
-
-
-
-## Auto Enabling
-
-mypy will be auto-enabled if any of its config files are present: _`mypy.ini`, `.mypy.ini`_.
-
-## Settings
-
-mypy supports the following config files:
-
-* `mypy.ini`
-* `.mypy.ini`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [mypy site](https://github.com/python/mypy#readme)
-* mypy Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/mypy)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/nancy.mdx b/code-quality/overview/linters/supported/nancy.mdx
deleted file mode 100644
index 10b2de1..0000000
--- a/code-quality/overview/linters/supported/nancy.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "nancy"
-description: "nancy is a linter for Security"
----
-[**nancy**](https://github.com/sonatype-nexus-community/nancy#readme) is a linter for Security.
-
-You can enable the nancy linter with:
-
-```shell
-trunk check enable nancy
-```
-
-## Auto Enabling
-
-nancy will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [nancy site](https://github.com/sonatype-nexus-community/nancy#readme)
-* nancy Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/nancy)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/nixpkgs-fmt.mdx b/code-quality/overview/linters/supported/nixpkgs-fmt.mdx
deleted file mode 100644
index 0731e0f..0000000
--- a/code-quality/overview/linters/supported/nixpkgs-fmt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "nixpkgs-fmt"
-description: "nixpkgs-fmt is a linter for Nix"
----
-[**nixpkgs-fmt**](https://github.com/nix-community/nixpkgs-fmt) is a linter for Nix.
-
-You can enable the nixpkgs-fmt linter with:
-
-```shell
-trunk check enable nixpkgs-fmt
-```
-
-## Auto Enabling
-
-nixpkgs-fmt will be auto-enabled if any _Nix_ files are present.
-
-## Links
-
-* [nixpkgs-fmt site](https://github.com/nix-community/nixpkgs-fmt)
-* nixpkgs-fmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/nixpkgs-fmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/opa.mdx b/code-quality/overview/linters/supported/opa.mdx
deleted file mode 100644
index 2e1b3ca..0000000
--- a/code-quality/overview/linters/supported/opa.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "opa"
-description: "opa is a linter for Rego"
----
-[**opa**](https://www.openpolicyagent.org/docs/latest/cli/#opa-fmt) is a linter for Rego.
-
-You can enable the opa linter with:
-
-```shell
-trunk check enable opa
-```
-
-## Auto Enabling
-
-opa will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [opa site](https://www.openpolicyagent.org/docs/latest/cli/#opa-fmt)
-* opa Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/opa)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/osv-scanner.mdx b/code-quality/overview/linters/supported/osv-scanner.mdx
deleted file mode 100644
index f99c778..0000000
--- a/code-quality/overview/linters/supported/osv-scanner.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: "OSV-Scanner"
-description: "OSV-Scanner is an open-source tool created by Google to detect vulnerabilities in projects by scanning dependencies against the OSV database."
----
-[**OSV-Scanner**](https://github.com/google/osv-scanner) is a linter for Security.
-
-You can enable the OSV-Scanner linter with:
-
-```shell
-trunk check enable osv-scanner
-```
-
-## Auto Enabling
-
-OSV-Scanner will be auto-enabled if any _Lockfile_ files are present.
-
-## Settings
-
-OSV-Scanner supports the following config files:
-
-* `osv-scanner.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-
-Moving `osv-scanner.toml` to `.trunk/configs` can cause issues because `osv-scanner.toml` is only applied to projects in the root folder by default. This can cause issues with any projects in subfolders, such as in a multi-module repository.
-
-
-To properly configure OSV scanner if you decide to move its config file, you can specify the path to `osv-scanner.toml` using the `--config` flag.\
-\
-Example override to add to `trunk.yaml` :
-
-```yaml
-commands:
- - name: scan
- run: |
- osv-scanner \
- --lockfile=${target} \
- --format json \
- --config=.trunk/configs/osv-scanner.toml
-```
-
-## Links
-
-* [OSV-Scanner site](https://github.com/google/osv-scanner)
-* [OSV-Scanner Configuration](https://google.github.io/osv-scanner/configuration/)
-* OSV-Scanner Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/osv-scanner)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/oxipng.mdx b/code-quality/overview/linters/supported/oxipng.mdx
deleted file mode 100644
index 4fb4d07..0000000
--- a/code-quality/overview/linters/supported/oxipng.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "Oxipng"
-description: "Oxipng is an open-source, CLI utility designed for optimizing PNG files. It applies lossless compression techniques to reduce file size."
----
-[**Oxipng**](https://github.com/shssoichiro/oxipng) is a formatter for PNG.
-
-You can enable the Oxipng formatter with:
-
-```shell
-trunk check enable oxipng
-```
-
-## Auto Enabling
-
-Oxipng will be auto-enabled if any _PNG_ files are present.
-
-## Links
-
-* [Oxipng site](https://github.com/shssoichiro/oxipng)
-* Oxipng Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/oxipng)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/perlcritic.mdx b/code-quality/overview/linters/supported/perlcritic.mdx
deleted file mode 100644
index 0fc09a5..0000000
--- a/code-quality/overview/linters/supported/perlcritic.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "perlcritic"
-description: "perlcritic is a linter for Perl"
----
-[**perlcritic**](https://metacpan.org/pod/Perl::Critic) is a linter for Perl.
-
-You can enable the perlcritic linter with:
-
-```shell
-trunk check enable perlcritic
-```
-
-## Auto Enabling
-
-perlcritic will be auto-enabled if a `.perlcriticrc` config file is present.
-
-## Settings
-
-perlcritic supports the following config files:
-
-* `.perlcriticrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.perlcriticrc` if your project does not already have one.
-
-## Links
-
-* [perlcritic site](https://metacpan.org/pod/Perl::Critic)
-* perlcritic Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/perlcritic)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/perltidy.mdx b/code-quality/overview/linters/supported/perltidy.mdx
deleted file mode 100644
index 04d19c6..0000000
--- a/code-quality/overview/linters/supported/perltidy.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "perltidy"
-description: "perltidy is a linter for Perl"
----
-[**perltidy**](https://metacpan.org/dist/Perl-Tidy/view/bin/perltidy) is a linter for Perl.
-
-You can enable the perltidy linter with:
-
-```shell
-trunk check enable perltidy
-```
-
-## Auto Enabling
-
-perltidy will be auto-enabled if a `.perltidyrc` config file is present.
-
-## Settings
-
-perltidy supports the following config files:
-
-* `.perltidyrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.perltidyrc` if your project does not already have one.
-
-## Links
-
-* [perltidy site](https://metacpan.org/dist/Perl-Tidy/view/bin/perltidy)
-* perltidy Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/perltidy)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/php-cs-fixer.mdx b/code-quality/overview/linters/supported/php-cs-fixer.mdx
deleted file mode 100644
index b7a8c5c..0000000
--- a/code-quality/overview/linters/supported/php-cs-fixer.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "php-cs-fixer"
-description: "php-cs-fixer is a linter for PHP"
----
-[**php-cs-fixer**](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) is a linter for PHP.
-
-You can enable the php-cs-fixer linter with:
-
-```shell
-trunk check enable php-cs-fixer
-```
-
-## Auto Enabling
-
-php-cs-fixer will be auto-enabled if a `.php-cs-fixer.dist.php` config file is present.
-
-## Settings
-
-php-cs-fixer supports the following config files:
-
-* `.php-cs-fixer.dist.php`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [php-cs-fixer site](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer)
-* php-cs-fixer Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/php-cs-fixer)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/phpstan.mdx b/code-quality/overview/linters/supported/phpstan.mdx
deleted file mode 100644
index 1a00b50..0000000
--- a/code-quality/overview/linters/supported/phpstan.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "phpstan"
-description: "phpstan is a linter for PHP"
----
-[**phpstan**](https://phpstan.org/) is a linter for PHP.
-
-You can enable the phpstan linter with:
-
-```shell
-trunk check enable phpstan
-```
-
-## Auto Enabling
-
-phpstan will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-phpstan supports the following config files:
-
-* `phpstan.neon`
-* `phpstan.neon.dist`
-* `phpstan.dist.neon`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [phpstan site](https://phpstan.org/)
-* phpstan Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/phpstan)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/pmd.mdx b/code-quality/overview/linters/supported/pmd.mdx
deleted file mode 100644
index 2a2b861..0000000
--- a/code-quality/overview/linters/supported/pmd.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: "pmd"
-description: "pmd is a linter for Apex and Java"
----
-[**pmd**](https://pmd.github.io/) is a linter for Apex and Java.
-
-You can enable the pmd linter with:
-
-```shell
-trunk check enable pmd
-```
-
-
-
-
-
-## Auto Enabling
-
-pmd will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [pmd site](https://pmd.github.io/)
-* pmd Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/pmd)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/pragma-once.mdx b/code-quality/overview/linters/supported/pragma-once.mdx
deleted file mode 100644
index 6edbdd7..0000000
--- a/code-quality/overview/linters/supported/pragma-once.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: "pragma-once"
-description: "pragma-once is a linter for C, C++"
----
-[**pragma-once**](https://github.com/trunk-io/plugins/blob/main/linters/pragma-once/README.md) is a linter for C, C++.
-
-You can enable the pragma-once linter with:
-
-```shell
-trunk check enable pragma-once
-```
-
-
-
-
-
-## Auto Enabling
-
-pragma-once will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [pragma-once site](https://github.com/trunk-io/plugins/blob/main/linters/pragma-once/README.md)
-* pragma-once Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/pragma-once)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/pre-commit-hooks.mdx b/code-quality/overview/linters/supported/pre-commit-hooks.mdx
deleted file mode 100644
index 7046f47..0000000
--- a/code-quality/overview/linters/supported/pre-commit-hooks.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "pre-commit-hooks"
-description: "pre-commit-hooks is a linter for All"
----
-[**pre-commit-hooks**](https://pre-commit.com/hooks.html) is a linter for All.
-
-You can enable the pre-commit-hooks linter with:
-
-```shell
-trunk check enable pre-commit-hooks
-```
-
-## Auto Enabling
-
-pre-commit-hooks will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [pre-commit-hooks site](https://pre-commit.com/hooks.html)
-* pre-commit-hooks Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/pre-commit-hooks)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/prettier.mdx b/code-quality/overview/linters/supported/prettier.mdx
deleted file mode 100644
index 4010c67..0000000
--- a/code-quality/overview/linters/supported/prettier.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Prettier"
-description: "Explore Prettier, the powerful code formatter. Learn how to install, configure, and effectively use Prettier to enhance your coding workflow."
----
-[**Prettier**](https://prettier.io/) is a formatter for CSS, SCSS, JavaScript, JSON, Markdown, TypeScript, GraphQL and YAML.
-
-You can enable the Prettier formatter with:
-
-```shell
-trunk check enable prettier
-```
-
-
-
-
-
-## Auto Enabling
-
-Prettier will be auto-enabled if any _TypeScript, YAML, CSS, PostCSS, Sass, HTML, Markdown, JSON, JavaScript, GraphQL or Prettier\_supported\_configs_ files are present.
-
-## Settings
-
-Prettier supports the following config files:
-
-* `.prettierrc`
-* `.prettierrc.json`
-* `.prettierrc.yml`
-* `.prettierrc.yaml`
-* `.prettierrc.json5`
-* `.prettierrc.js`
-* `.prettierrc.cjs`
-* `.prettierrc.mjs`
-* `prettier.config.js`
-* `prettier.config.cjs`
-* `prettier.config.mjs`
-* `.prettierrc.toml`
-* `.prettierignore`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-By default, Trunk uses Prettier to autoformat many languages/config formats, including markdown. To line wrap within markdown, you need to set the following in your [Prettier config](https://prettier.io/docs/en/configuration.html) `.prettierrc.yaml`, etc.
-
-```yaml
-proseWrap: always
-```
-
-You may also want to configure `printWidth` to your liking.
-
-## Links
-
-* [Prettier site](https://prettier.io/)
-* Prettier Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/prettier)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/prisma.mdx b/code-quality/overview/linters/supported/prisma.mdx
deleted file mode 100644
index 401bab0..0000000
--- a/code-quality/overview/linters/supported/prisma.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "prisma"
-description: "prisma is a linter for Prisma"
----
-[**prisma**](https://github.com/prisma/prisma#readme) is a linter for Prisma.
-
-You can enable the prisma linter with:
-
-```shell
-trunk check enable prisma
-```
-
-## Auto Enabling
-
-prisma will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [prisma site](https://github.com/prisma/prisma#readme)
-* prisma Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/prisma)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/psscriptanalyzer.mdx b/code-quality/overview/linters/supported/psscriptanalyzer.mdx
deleted file mode 100644
index 6276afb..0000000
--- a/code-quality/overview/linters/supported/psscriptanalyzer.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "psscriptanalyzer"
-description: "psscriptanalyzer is a linter for PowerShell"
----
-[**psscriptanalyzer**](https://github.com/PowerShell/PSScriptAnalyzer) is a linter for PowerShell.
-
-You can enable the psscriptanalyzer linter with:
-
-```shell
-trunk check enable psscriptanalyzer
-```
-
-## Auto Enabling
-
-psscriptanalyzer will be auto-enabled if a `PSScriptAnalyzerSettings.psd1` config file is present.
-
-## Settings
-
-psscriptanalyzer supports the following config files:
-
-* `PSScriptAnalyzerSettings.psd1`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [psscriptanalyzer site](https://github.com/PowerShell/PSScriptAnalyzer)
-* psscriptanalyzer Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/psscriptanalyzer)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/pylint.mdx b/code-quality/overview/linters/supported/pylint.mdx
deleted file mode 100644
index 803ab85..0000000
--- a/code-quality/overview/linters/supported/pylint.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: "Pylint"
-description: "Learn about Pylint, the versatile Python linter for error detection, code smell elimination, and PEP 8 enforcement."
----
-[**Pylint**](https://pypi.org/project/pylint/) is a linter for Python.
-
-You can enable the Pylint linter with:
-
-```shell
-trunk check enable pylint
-```
-
-
-
-
-
-## Auto Enabling
-
-Pylint will be auto-enabled if any of its config files are present: _`pylintrc`, `.pylintrc`_.
-
-## Settings
-
-Pylint supports the following config files:
-
-* `pylintrc`
-* `.pylintrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-You may specify additional pylint plugins in your `.pylintrc`, using the line `load-plugins=...`
-
-If you want to run the plugin `pylint-django` as part of your setup, you would add the line `load-plugins=pylint_django` to your `.pylintrc`, but you **also** need to tell trunk to install the package:
-
-```yaml
-- pylint@2.11.0:
- packages:
- - pylint-django@2.4.4
-```
-
-## Links
-
-* [Pylint site](https://pypi.org/project/pylint/)
-* Pylint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/pylint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/pyright.mdx b/code-quality/overview/linters/supported/pyright.mdx
deleted file mode 100644
index a645e3c..0000000
--- a/code-quality/overview/linters/supported/pyright.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "pyright"
-description: "pyright is a linter for Python"
----
-[**pyright**](https://github.com/microsoft/pyright) is a linter for Python.
-
-You can enable the pyright linter with:
-
-```shell
-trunk check enable pyright
-```
-
-## Auto Enabling
-
-pyright will be auto-enabled if a `pyrightconfig.json` config file is present.
-
-## Settings
-
-pyright supports the following config files:
-
-* `pyrightconfig.json`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [pyright site](https://github.com/microsoft/pyright)
-* pyright Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/pyright)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/regal.mdx b/code-quality/overview/linters/supported/regal.mdx
deleted file mode 100644
index 95a75c9..0000000
--- a/code-quality/overview/linters/supported/regal.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "regal"
-description: "regal is a linter for Rego"
----
-[**regal**](https://github.com/StyraInc/regal) is a linter for Rego.
-
-You can enable the regal linter with:
-
-```shell
-trunk check enable regal
-```
-
-## Auto Enabling
-
-regal will be auto-enabled if a `.regal/config.yaml` config file is present.
-
-## Settings
-
-regal supports the following config files:
-
-* `.regal/config.yaml`
-
-Unlike with most tools under `trunk check`, these files cannot be moved.
-
-## Links
-
-* [regal site](https://github.com/StyraInc/regal)
-* regal Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/regal)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/remark-lint.mdx b/code-quality/overview/linters/supported/remark-lint.mdx
deleted file mode 100644
index b48e07c..0000000
--- a/code-quality/overview/linters/supported/remark-lint.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "remark-lint"
-description: "remark-lint is a linter for Markdown"
----
-[**remark-lint**](https://github.com/remarkjs/remark-lint#readme) is a linter for Markdown.
-
-You can enable the remark-lint linter with:
-
-```shell
-trunk check enable remark-lint
-```
-
-## Auto Enabling
-
-remark-lint will be auto-enabled if any of its config files are present: _`.remarkrc`, `.remarkrc.json`, `.remarkrc.cjs`_.
-
-## Settings
-
-remark-lint supports the following config files:
-
-* `.remarkrc`
-* `.remarkrc.json`
-* `.remarkrc.cjs`
-* `.remarkrc.mjs`
-* `.remarkrc.js`
-* `.remarkrc.yaml`
-* `.remarkrc.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.remarkrc.yaml` if your project does not already have one.
-
-## Links
-
-* [remark-lint site](https://github.com/remarkjs/remark-lint#readme)
-* remark-lint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/remark-lint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/renovate.mdx b/code-quality/overview/linters/supported/renovate.mdx
deleted file mode 100644
index 3b41d38..0000000
--- a/code-quality/overview/linters/supported/renovate.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: "renovate"
-description: "renovate is a linter for Renovate"
----
-[**renovate**](https://github.com/renovatebot/renovate#readme) is a linter for Renovate.
-
-You can enable the renovate linter with:
-
-```shell
-trunk check enable renovate
-```
-
-## Auto Enabling
-
-renovate will be auto-enabled if any of its config files are present: _`renovate.json`, `renovate.json5`, `.github/renovate.json`_.
-
-## Settings
-
-renovate supports the following config files:
-
-* `renovate.json`
-* `renovate.json5`
-* `.github/renovate.json`
-* `.github/renovate.json5`
-* `.gitlab/renovate.json`
-* `.gitlab/renovate.json5`
-* `.renovaterc`
-* `.renovaterc.json`
-* `.renovaterc.json5`
-
-Unlike with most tools under `trunk check`, these files cannot be moved.
-
-## Links
-
-* [renovate site](https://github.com/renovatebot/renovate#readme)
-* renovate Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/renovate)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/rome.mdx b/code-quality/overview/linters/supported/rome.mdx
deleted file mode 100644
index 5a5f913..0000000
--- a/code-quality/overview/linters/supported/rome.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "rome"
-description: "rome is a linter for JavaScript and TypeScript"
----
-[**rome**](https://github.com/rome/tools#readme) is a linter for JavaScript and TypeScript.
-
-You can enable the rome linter with:
-
-```shell
-trunk check enable rome
-```
-
-## Auto Enabling
-
-rome will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-rome supports the following config files:
-
-* `rome.json`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [rome site](https://github.com/rome/tools#readme)
-* rome Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/rome)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/rubocop.mdx b/code-quality/overview/linters/supported/rubocop.mdx
deleted file mode 100644
index 6f15e2b..0000000
--- a/code-quality/overview/linters/supported/rubocop.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "rubocop"
-description: "rubocop is a linter for Ruby"
----
-[**rubocop**](https://github.com/rubocop/rubocop#readme) is a linter for Ruby.
-
-You can enable the rubocop linter with:
-
-```shell
-trunk check enable rubocop
-```
-
-## Auto Enabling
-
-rubocop will be auto-enabled if a `.rubocop.yml` config file is present.
-
-## Settings
-
-rubocop supports the following config files:
-
-* `.rubocop.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [rubocop site](https://github.com/rubocop/rubocop#readme)
-* rubocop Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/rubocop)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/ruff.mdx b/code-quality/overview/linters/supported/ruff.mdx
deleted file mode 100644
index 55e0938..0000000
--- a/code-quality/overview/linters/supported/ruff.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: "Ruff"
-description: "Discover Ruff, a speedy Python linter for large codebases. Integrates with CI/IDEs and supports .py, .pyi, and Jupyter Notebooks."
----
-[**Ruff**](https://github.com/astral-sh/ruff) is a linter for Python.
-
-ruff is composed of several linter commands.
-
-`ruff` is for formatting general python code.
-
-You can enable the `ruff` linter with:
-
-```shell
-trunk check enable ruff
-```
-
-`ruff-nbqa` is for extra support for Jupyter notebooks.
-
-You can enable the `ruff-nbqa` linter with:
-
-```shell
-trunk check enable ruff-nbqa
-```
-
-## Auto Enabling
-
-Ruff will be auto-enabled if any _Python, Python-interface, Jupyter, Python, Python-interface, Python, Python-interface, Python, Python-interface, Python or Python-interface_ files are present.
-
-## Settings
-
-Ruff supports the following config files:
-
-* `ruff.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `ruff.toml` if your project does not already have one.
-
-## Links
-
-* [Ruff site](https://github.com/astral-sh/ruff)
-* Ruff Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/ruff)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/rufo.mdx b/code-quality/overview/linters/supported/rufo.mdx
deleted file mode 100644
index b381efa..0000000
--- a/code-quality/overview/linters/supported/rufo.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "rufo"
-description: "rufo is a linter for Ruby"
----
-[**rufo**](https://github.com/ruby-formatter/rufo#readme) is a linter for Ruby.
-
-You can enable the rufo linter with:
-
-```shell
-trunk check enable rufo
-```
-
-## Auto Enabling
-
-rufo will be auto-enabled if a `.rufo` config file is present.
-
-## Settings
-
-rufo supports the following config files:
-
-* `.rufo`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [rufo site](https://github.com/ruby-formatter/rufo#readme)
-* rufo Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/rufo)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/rustfmt.mdx b/code-quality/overview/linters/supported/rustfmt.mdx
deleted file mode 100644
index baa78a4..0000000
--- a/code-quality/overview/linters/supported/rustfmt.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: "rustfmt"
-description: "Rustfmt is a code formatting tool for Rust that helps ensure your code adheres to the community-driven coding standards and style guidelines."
----
-[**rustfmt**](https://github.com/rust-lang/rustfmt) is a formatter for Rust.
-
-You can enable the rustfmt formatter with:
-
-```shell
-trunk check enable rustfmt
-```
-
-## Auto Enabling
-
-rustfmt will be auto-enabled if any _Rust_ files are present.
-
-## Settings
-
-rustfmt supports the following config files:
-
-* `rustfmt.toml`
-* `.rustfmt.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.rustfmt.toml` if your project does not already have one.
-
-## Usage Notes
-
-We currently use the version of `rustfmt` packaged with rust, so for `rustfmt` version, specify your Rust version (for example `rustfmt@1.61.0`).
-
-If you have `edition` in your `cargo.toml`, `rustfmt` also needs the same information in `.rustfmt.toml` in your repo root. For example, your `.rustfmt.toml` might contain:
-
-```toml
-edition = "2021"
-```
-
-## Links
-
-* [rustfmt site](https://github.com/rust-lang/rustfmt)
-* rustfmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/rustfmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/scalafmt.mdx b/code-quality/overview/linters/supported/scalafmt.mdx
deleted file mode 100644
index bd3c557..0000000
--- a/code-quality/overview/linters/supported/scalafmt.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "scalafmt"
-description: "scalafmt is a linter for Scala"
----
-[**scalafmt**](https://github.com/scalameta/scalafmt#readme) is a linter for Scala.
-
-You can enable the scalafmt linter with:
-
-```shell
-trunk check enable scalafmt
-```
-
-## Auto Enabling
-
-scalafmt will be auto-enabled if a `.scalafmt.conf` config file is present.
-
-## Settings
-
-scalafmt supports the following config files:
-
-* `.scalafmt.conf`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [scalafmt site](https://github.com/scalameta/scalafmt#readme)
-* scalafmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/scalafmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/semgrep.mdx b/code-quality/overview/linters/supported/semgrep.mdx
deleted file mode 100644
index b9e0ad9..0000000
--- a/code-quality/overview/linters/supported/semgrep.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "semgrep"
-description: "semgrep is a linter for Go, Java, JavaScript, JSON, Python, Ruby, TypeScript and YAML"
----
-[**semgrep**](https://github.com/returntocorp/semgrep#readme) is a linter for Go, Java, JavaScript, JSON, Python, Ruby, TypeScript and YAML.
-
-You can enable the semgrep linter with:
-
-```shell
-trunk check enable semgrep
-```
-
-## Auto Enabling
-
-semgrep will be auto-enabled if any of its config files are present: _`.semgrep.yaml`, `.semgrep.yml`_.
-
-## Settings
-
-semgrep supports the following config files:
-
-* `.semgrep.yaml`
-* `.semgrep.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [semgrep site](https://github.com/returntocorp/semgrep#readme)
-* semgrep Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/semgrep)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/shellcheck.mdx b/code-quality/overview/linters/supported/shellcheck.mdx
deleted file mode 100644
index 70ffdb5..0000000
--- a/code-quality/overview/linters/supported/shellcheck.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "ShellCheck"
-description: "ShellCheck is a static analysis tool designed to identify and report syntax errors and potential issues in shell scripts"
----
-[**ShellCheck**](https://www.shellcheck.net/) is a linter for Bash.
-
-You can enable the ShellCheck linter with:
-
-```shell
-trunk check enable shellcheck
-```
-
-
-
-
-
-## Auto Enabling
-
-ShellCheck will be auto-enabled if any _Shell_ files are present.
-
-## Settings
-
-ShellCheck supports the following config files:
-
-* `.shellcheckrc`
-* `shellcheckrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.shellcheckrc` if your project does not already have one.
-
-## Links
-
-* [ShellCheck site](https://www.shellcheck.net/)
-* ShellCheck Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/shellcheck)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/shfmt.mdx b/code-quality/overview/linters/supported/shfmt.mdx
deleted file mode 100644
index fc8e171..0000000
--- a/code-quality/overview/linters/supported/shfmt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "shfmt"
-description: "shfmt is a linter for Bash"
----
-[**shfmt**](https://github.com/mvdan/sh#readme) is a linter for Bash.
-
-You can enable the shfmt linter with:
-
-```shell
-trunk check enable shfmt
-```
-
-## Auto Enabling
-
-shfmt will be auto-enabled if any _Shell_ files are present.
-
-## Links
-
-* [shfmt site](https://github.com/mvdan/sh#readme)
-* shfmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/shfmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/sort-package-json.mdx b/code-quality/overview/linters/supported/sort-package-json.mdx
deleted file mode 100644
index c1bee65..0000000
--- a/code-quality/overview/linters/supported/sort-package-json.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "sort-package-json"
-description: "sort-package-json is a linter for package.json"
----
-[**sort-package-json**](https://github.com/keithamus/sort-package-json#readme) is a linter for package.json.
-
-You can enable the sort-package-json linter with:
-
-```shell
-trunk check enable sort-package-json
-```
-
-## Auto Enabling
-
-sort-package-json will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [sort-package-json site](https://github.com/keithamus/sort-package-json#readme)
-* sort-package-json Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/sort-package-json)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/sourcery.mdx b/code-quality/overview/linters/supported/sourcery.mdx
deleted file mode 100644
index 41b0bca..0000000
--- a/code-quality/overview/linters/supported/sourcery.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "sourcery"
-description: "sourcery is a linter for Python"
----
-[**sourcery**](https://sourcery.ai/) is a linter for Python.
-
-You can enable the sourcery linter with:
-
-```shell
-trunk check enable sourcery
-```
-
-## Auto Enabling
-
-sourcery will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-sourcery supports the following config files:
-
-* `.sourcery.yaml`
-* `sourcery.yaml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [sourcery site](https://sourcery.ai/)
-* sourcery Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/sourcery)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/sql-formatter.mdx b/code-quality/overview/linters/supported/sql-formatter.mdx
deleted file mode 100644
index d8010de..0000000
--- a/code-quality/overview/linters/supported/sql-formatter.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "sql-formatter"
-description: "sql-formatter is a linter for SQL"
----
-[**sql-formatter**](https://github.com/sql-formatter-org/sql-formatter#readme) is a linter for SQL.
-
-You can enable the sql-formatter linter with:
-
-```shell
-trunk check enable sql-formatter
-```
-
-## Auto Enabling
-
-sql-formatter will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [sql-formatter site](https://github.com/sql-formatter-org/sql-formatter#readme)
-* sql-formatter Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/sql-formatter)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/sqlfluff.mdx b/code-quality/overview/linters/supported/sqlfluff.mdx
deleted file mode 100644
index bdb0d76..0000000
--- a/code-quality/overview/linters/supported/sqlfluff.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: "SQLFluff"
-description: "SQLFluff is a dialect-flexible and configurable SQL linter."
----
-[**SQLFluff**](https://github.com/sqlfluff/sqlfluff) is a linter for SQL.
-
-You can enable the SQLFluff linter with:
-
-```shell
-trunk check enable sqlfluff
-```
-
-## Auto Enabling
-
-SQLFluff will be auto-enabled if a `.sqlfluff` config file is present.
-
-## Settings
-
-SQLFluff supports the following config files:
-
-* `.sqlfluff`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.sqlfluff` if your project does not already have one.
-
-## Usage Notes
-
-Sqlfluff is only configured as a linter by default because its formatting capabilities are limited. To turn sqlfluff formatting on, enable its subcommand:
-
-```yaml
-lint:
- enabled:
- - sqlfluff@:
- commands: [lint, fix]
-```
-
-## Links
-
-* [SQLFluff site](https://github.com/sqlfluff/sqlfluff)
-* SQLFluff Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/sqlfluff)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/sqlfmt.mdx b/code-quality/overview/linters/supported/sqlfmt.mdx
deleted file mode 100644
index b0ba481..0000000
--- a/code-quality/overview/linters/supported/sqlfmt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "sqlfmt"
-description: "sqlfmt is a linter for SQL"
----
-[**sqlfmt**](https://github.com/tconbeer/sqlfmt#readme) is a linter for SQL.
-
-You can enable the sqlfmt linter with:
-
-```shell
-trunk check enable sqlfmt
-```
-
-## Auto Enabling
-
-sqlfmt will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [sqlfmt site](https://github.com/tconbeer/sqlfmt#readme)
-* sqlfmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/sqlfmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/squawk.mdx b/code-quality/overview/linters/supported/squawk.mdx
deleted file mode 100644
index 859c881..0000000
--- a/code-quality/overview/linters/supported/squawk.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "Squawk"
-description: "squawk is a linter for SQL"
----
-[**Squawk**](https://github.com/sbdchd/squawk) is a linter for SQL.
-
-You can enable the Squawk linter with:
-
-```shell
-trunk check enable squawk
-```
-
-## Auto Enabling
-
-Squawk will be auto-enabled if a `.squawk.toml` config file is present.
-
-## Settings
-
-Squawk supports the following config files:
-
-* `.squawk.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [Squawk site](https://github.com/sbdchd/squawk)
-* Squawk Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/squawk)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/standardrb.mdx b/code-quality/overview/linters/supported/standardrb.mdx
deleted file mode 100644
index 34758c4..0000000
--- a/code-quality/overview/linters/supported/standardrb.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "standardrb"
-description: "standardrb is a linter for Ruby"
----
-[**standardrb**](https://github.com/testdouble/standard#readme) is a linter for Ruby.
-
-You can enable the standardrb linter with:
-
-```shell
-trunk check enable standardrb
-```
-
-## Auto Enabling
-
-standardrb will be auto-enabled if a `.standard.yml` config file is present.
-
-## Settings
-
-standardrb supports the following config files:
-
-* `.standard.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [standardrb site](https://github.com/testdouble/standard#readme)
-* standardrb Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/standardrb)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/stringslint.mdx b/code-quality/overview/linters/supported/stringslint.mdx
deleted file mode 100644
index c2359bd..0000000
--- a/code-quality/overview/linters/supported/stringslint.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "stringslint"
-description: "stringslint is a linter for Swift"
----
-[**stringslint**](https://github.com/dral3x/StringsLint#readme) is a linter for Swift.
-
-You can enable the stringslint linter with:
-
-```shell
-trunk check enable stringslint
-```
-
-## Auto Enabling
-
-stringslint will be auto-enabled if any of its config files are present: _`.stringslint.yml`, `.stringslint.yaml`, `.stringslint`_.
-
-## Settings
-
-stringslint supports the following config files:
-
-* `.stringslint.yml`
-* `.stringslint.yaml`
-* `.stringslint`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [stringslint site](https://github.com/dral3x/StringsLint#readme)
-* stringslint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/stringslint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/stylelint.mdx b/code-quality/overview/linters/supported/stylelint.mdx
deleted file mode 100644
index 1750b1c..0000000
--- a/code-quality/overview/linters/supported/stylelint.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: "stylelint"
-description: "stylelint is a linter for CSS, SCSS"
----
-[**stylelint**](https://github.com/stylelint/stylelint#readme) is a linter for CSS, SCSS.
-
-You can enable the stylelint linter with:
-
-```shell
-trunk check enable stylelint
-```
-
-## Auto Enabling
-
-stylelint will be auto-enabled if any of its config files are present: _`stylelint.config.js`, `.stylelintrc.js`, `stylelint.config.mjs`_.
-
-## Settings
-
-stylelint supports the following config files:
-
-* `stylelint.config.js`
-* `.stylelintrc.js`
-* `stylelint.config.mjs`
-* `.stylelintrc.mjs`
-* `stylelint.config.cjs`
-* `.stylelintrc.cjs`
-* `.stylelintrc.json`
-* `.stylelintrc.yml`
-* `.stylelintrc.yaml`
-* `.stylelintrc`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [stylelint site](https://github.com/stylelint/stylelint#readme)
-* stylelint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/stylelint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/stylua.mdx b/code-quality/overview/linters/supported/stylua.mdx
deleted file mode 100644
index caeb14c..0000000
--- a/code-quality/overview/linters/supported/stylua.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "stylua"
-description: "stylua is a linter for Lua"
----
-[**stylua**](https://github.com/JohnnyMorganz/StyLua/tree/main) is a linter for Lua.
-
-You can enable the stylua linter with:
-
-```shell
-trunk check enable stylua
-```
-
-## Auto Enabling
-
-stylua will be auto-enabled if any of its config files are present: _`stylua.toml`, `.stylua.toml`_.
-
-## Settings
-
-stylua supports the following config files:
-
-* `stylua.toml`
-* `.stylua.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `stylua.toml` if your project does not already have one.
-
-## Links
-
-* [stylua site](https://github.com/JohnnyMorganz/StyLua/tree/main)
-* stylua Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/stylua)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/svgo.mdx b/code-quality/overview/linters/supported/svgo.mdx
deleted file mode 100644
index c443117..0000000
--- a/code-quality/overview/linters/supported/svgo.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "SVGO"
-description: "SVGO, or Scalable Vector Graphics Optimizer, is a tool designed to optimize SVG files, making them smaller and more efficient without compromising on quality."
----
-[**SVGO**](https://github.com/svg/svgo) is a linter for SVG.
-
-You can enable the SVGO linter with:
-
-```shell
-trunk check enable svgo
-```
-
-## Auto Enabling
-
-SVGO will be auto-enabled if any _SVG_ files are present.
-
-## Settings
-
-SVGO supports the following config files:
-
-* `svgo.config.js`
-* `svgo.config.mjs`
-* `svgo.config.cjs`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `svgo.config.js` if your project does not already have one.
-
-## Links
-
-* [SVGO site](https://github.com/svg/svgo)
-* SVGO Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/svgo)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/swiftformat.mdx b/code-quality/overview/linters/supported/swiftformat.mdx
deleted file mode 100644
index 5346141..0000000
--- a/code-quality/overview/linters/supported/swiftformat.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "swiftformat"
-description: "swiftformat is a linter for Swift"
----
-[**swiftformat**](https://github.com/nicklockwood/SwiftFormat#readme) is a linter for Swift.
-
-You can enable the swiftformat linter with:
-
-```shell
-trunk check enable swiftformat
-```
-
-## Auto Enabling
-
-swiftformat will be auto-enabled if a `.swiftformat` config file is present.
-
-## Settings
-
-swiftformat supports the following config files:
-
-* `.swiftformat`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [swiftformat site](https://github.com/nicklockwood/SwiftFormat#readme)
-* swiftformat Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/swiftformat)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/swiftlint.mdx b/code-quality/overview/linters/supported/swiftlint.mdx
deleted file mode 100644
index c9928c2..0000000
--- a/code-quality/overview/linters/supported/swiftlint.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "swiftlint"
-description: "swiftlint is a linter for Swift"
----
-[**swiftlint**](https://github.com/realm/SwiftLint#readme) is a linter for Swift.
-
-You can enable the swiftlint linter with:
-
-```shell
-trunk check enable swiftlint
-```
-
-## Auto Enabling
-
-swiftlint will be auto-enabled if any of its config files are present: _`.swiftlint.yml`, `.swiftlint.yaml`, `.swiftlint`_.
-
-## Settings
-
-swiftlint supports the following config files:
-
-* `.swiftlint.yml`
-* `.swiftlint.yaml`
-* `.swiftlint`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [swiftlint site](https://github.com/realm/SwiftLint#readme)
-* swiftlint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/swiftlint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/taplo.mdx b/code-quality/overview/linters/supported/taplo.mdx
deleted file mode 100644
index 5f2e296..0000000
--- a/code-quality/overview/linters/supported/taplo.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "taplo"
-description: "taplo is a linter for TOML"
----
-[**taplo**](https://github.com/tamasfe/taplo#readme) is a linter for TOML.
-
-You can enable the taplo linter with:
-
-```shell
-trunk check enable taplo
-```
-
-## Auto Enabling
-
-taplo will be auto-enabled if any _TOML_ files are present.
-
-## Settings
-
-taplo supports the following config files:
-
-* `.taplo.toml`
-* `taplo.toml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [taplo site](https://github.com/tamasfe/taplo#readme)
-* taplo Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/taplo)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/terraform.mdx b/code-quality/overview/linters/supported/terraform.mdx
deleted file mode 100644
index f147f71..0000000
--- a/code-quality/overview/linters/supported/terraform.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "Terraform"
-description: "The command line interface to Terraform is the terraform command, which accepts a variety of subcommands such as terraform validate or terraform fmt"
----
-[**Terraform**](https://developer.hashicorp.com/terraform/cli/commands) is a formatter for Terraform.
-
-You can enable the Terraform formatter with:
-
-```shell
-trunk check enable terraform
-```
-
-## Auto Enabling
-
-Terraform will never be auto-enabled. It must be enabled manually.
-
-## Usage Notes
-
-We currently support `terraform validate` and `terraform fmt`, but only `fmt` is enabled by default when you add `terraform` to your enabled list in `trunk.yaml`. To enable `validate`, add this to your `trunk.yaml`:
-
-```yaml
-lint:
- enabled:
- - terraform@:
- commands: [validate, fmt]
-```
-
-Note: you must run `terraform init` before running `trunk check` with `terraform validate` enabled (both locally, or on CI).
-
-## Links
-
-* [Terraform site](https://developer.hashicorp.com/terraform/cli/commands)
-* Terraform Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/terraform)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/terragrunt.mdx b/code-quality/overview/linters/supported/terragrunt.mdx
deleted file mode 100644
index e43e0ac..0000000
--- a/code-quality/overview/linters/supported/terragrunt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "terragrunt"
-description: "terragrunt is a linter for Terragrunt"
----
-[**terragrunt**](https://terragrunt.gruntwork.io/docs/getting-started/quick-start/) is a linter for Terragrunt.
-
-You can enable the terragrunt linter with:
-
-```shell
-trunk check enable terragrunt
-```
-
-## Auto Enabling
-
-terragrunt will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [terragrunt site](https://terragrunt.gruntwork.io/docs/getting-started/quick-start/)
-* terragrunt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/terragrunt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/terrascan.mdx b/code-quality/overview/linters/supported/terrascan.mdx
deleted file mode 100644
index e0fde54..0000000
--- a/code-quality/overview/linters/supported/terrascan.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "terrascan"
-description: "terrascan is a linter for Terrascan, Security and Terraform"
----
-[**terrascan**](https://github.com/tenable/terrascan#readme) is a linter for Terrascan, Security and Terraform.
-
-You can enable the terrascan linter with:
-
-```shell
-trunk check enable terrascan
-```
-
-## Auto Enabling
-
-terrascan will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [terrascan site](https://github.com/tenable/terrascan#readme)
-* terrascan Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/terrascan)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/tflint.mdx b/code-quality/overview/linters/supported/tflint.mdx
deleted file mode 100644
index 380f220..0000000
--- a/code-quality/overview/linters/supported/tflint.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "TFLint"
-description: "TFLint is an essential linter designed for Terraform. It helps improve code quality, maintainability, and security in infrastructure as code (IaC) projects."
----
-[**TFLint**](https://github.com/rhysd/actionlint) is a linter for Terraform.
-
-You can enable the TFLint linter with:
-
-```shell
-trunk check enable tflint
-```
-
-## Auto Enabling
-
-TFLint will be auto-enabled if any _Terraform_ files are present.
-
-## Settings
-
-TFLint supports the following config files:
-
-* `.tflint.hcl`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [TFLint site](https://github.com/rhysd/actionlint)
-* TFLint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/tflint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/tfsec.mdx b/code-quality/overview/linters/supported/tfsec.mdx
deleted file mode 100644
index ada8e68..0000000
--- a/code-quality/overview/linters/supported/tfsec.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "tfsec"
-description: "tfsec is a linter for Security and Terraform"
----
-[**tfsec**](https://github.com/aquasecurity/tfsec) is a linter for Security and Terraform.
-
-You can enable the tfsec linter with:
-
-```shell
-trunk check enable tfsec
-```
-
-## Auto Enabling
-
-tfsec will never be auto-enabled. It must be enabled manually.
-
-## Settings
-
-tfsec supports the following config files:
-
-* `tfsec.yml`
-* `tfsec.yaml`
-* `.tfsec/config.json`
-* `.tfsec/config.yml`
-* `.tfsec/config.yaml`
-
-Unlike with most tools under `trunk check`, these files cannot be moved.
-
-## Links
-
-* [tfsec site](https://github.com/aquasecurity/tfsec)
-* tfsec Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/tfsec)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/tofu.mdx b/code-quality/overview/linters/supported/tofu.mdx
deleted file mode 100644
index aa4e39e..0000000
--- a/code-quality/overview/linters/supported/tofu.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "tofu"
-description: "tofu is a linter for Terraform"
----
-[**tofu**](https://github.com/opentofu/opentofu) is a linter for Terraform.
-
-You can enable the tofu linter with:
-
-```shell
-trunk check enable tofu
-```
-
-## Auto Enabling
-
-tofu will never be auto-enabled. It must be enabled manually.
-
-## Links
-
-* [tofu site](https://github.com/opentofu/opentofu)
-* tofu Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/tofu)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/trivy.mdx b/code-quality/overview/linters/supported/trivy.mdx
deleted file mode 100644
index 2a6cf93..0000000
--- a/code-quality/overview/linters/supported/trivy.mdx
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: "Trivy"
-description: "Explore our guide on Trivy, the comprehensive vulnerability scanner. Learn about its features, installation, and configuration."
----
-[**Trivy**](https://github.com/aquasecurity/trivy) is a linter for Security.
-
-You can enable the Trivy linter with:
-
-```shell
-trunk check enable trivy
-```
-
-
-
-
-
-## Auto Enabling
-
-Trivy will be auto-enabled if any of its config files are present: _`trivy.yaml`, `.trivyignore`, `.trivyignore.yaml`_.
-
-## Settings
-
-Trivy supports the following config files:
-
-* `trivy.yaml`
-* `.trivyignore`
-* `.trivyignore.yaml`
-* `trivy-secret.yaml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Usage Notes
-
-Trivy has the following subcommands:
-
-* `config`
-* Runs `trivy config` ([docs) ](https://aquasecurity.github.io/trivy/latest/docs/scanner/misconfiguration/))to scan for misconfigurations in infrastructure-as-code files. Enabled by default
-* `fx-vuln`
-* Runs `trivy fs --scanners vuln` ([docs](https://aquasecurity.github.io/trivy/latest/docs/target/filesystem/)) to scan for security vulnerabilities. Disabled by default.
-* `fs-secret`
-* Runs `trivy fs --scanners secret` ([docs](https://aquasecurity.github.io/trivy/latest/docs/target/filesystem/)) to scan for secrets. Disabled by default.
-
-To enable/disable these, add the subcommands you want enabled in your `.trunk/trunk.yaml` as such:
-
-```yaml
-lint:
- enabled:
- - trivy@0.45.1:
- commands: [config, fs-vuln]
-```
-
-## Links
-
-* [Trivy site](https://github.com/aquasecurity/trivy)
-* Trivy Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/trivy)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/trufflehog.mdx b/code-quality/overview/linters/supported/trufflehog.mdx
deleted file mode 100644
index 03386fa..0000000
--- a/code-quality/overview/linters/supported/trufflehog.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "Trufflehog"
-description: "Discover Trufflehog with our detailed guide. Learn installation, configuration, usage, and how to integrate it with other linters for optimal code security."
----
-[**Trufflehog**](https://github.com/trufflesecurity/trufflehog) is a linter for Security.
-
-trufflehog is composed of several linter commands.
-
-`trufflehog` runs trufflehog normally.
-
-You can enable the `trufflehog` linter with:
-
-```shell
-trunk check enable trufflehog
-```
-
-`trufflehog-git` also runs trufflehog on the git history.
-
-You can enable the `trufflehog-git` linter with:
-
-```shell
-trunk check enable trufflehog-git
-```
-
-## Auto Enabling
-
-Trufflehog will be auto-enabled if any _all_ files are present.
-
-## Links
-
-* [Trufflehog site](https://github.com/trufflesecurity/trufflehog)
-* Trufflehog Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/trufflehog)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/txtpbfmt.mdx b/code-quality/overview/linters/supported/txtpbfmt.mdx
deleted file mode 100644
index 712859d..0000000
--- a/code-quality/overview/linters/supported/txtpbfmt.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: "txtpbfmt"
-description: "txtpbfmt is a linter for Textproto"
----
-[**txtpbfmt**](https://github.com/protocolbuffers/txtpbfmt/) is a linter for Textproto.
-
-You can enable the txtpbfmt linter with:
-
-```shell
-trunk check enable txtpbfmt
-```
-
-## Auto Enabling
-
-txtpbfmt will be auto-enabled if any _Textproto_ files are present.
-
-## Links
-
-* [txtpbfmt site](https://github.com/protocolbuffers/txtpbfmt/)
-* txtpbfmt Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/txtpbfmt)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/vale.mdx b/code-quality/overview/linters/supported/vale.mdx
deleted file mode 100644
index 569716d..0000000
--- a/code-quality/overview/linters/supported/vale.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "vale"
-description: "vale is a linter for prose"
----
-[**vale**](https://vale.sh/) is a linter for prose.
-
-You can enable the vale linter with:
-
-```shell
-trunk check enable vale
-```
-
-## Auto Enabling
-
-vale will be auto-enabled if a `.vale.ini` config file is present.
-
-## Settings
-
-vale supports the following config files:
-
-* `.vale.ini`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.vale.ini` if your project does not already have one.
-
-## Links
-
-* [vale site](https://vale.sh/)
-* vale Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/vale)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/yamllint.mdx b/code-quality/overview/linters/supported/yamllint.mdx
deleted file mode 100644
index 2a670c3..0000000
--- a/code-quality/overview/linters/supported/yamllint.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: "Yamllint"
-description: "Yamllint is a linter that checks for formatting discrepancies, key-value pair issues, and syntax errors, ensuring your YAML files are syntactically correct."
----
-[**Yamllint**](https://github.com/adrienverge/yamllint) is a linter for YAML.
-
-You can enable the Yamllint linter with:
-
-```shell
-trunk check enable yamllint
-```
-
-## Auto Enabling
-
-Yamllint will be auto-enabled if any _Yaml_ files are present.
-
-## Settings
-
-Yamllint supports the following config files:
-
-* `.yamllint`
-* `.yamllint.yaml`
-* `.yamllint.yml`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info. Trunk Code Quality provides a default `.yamllint.yaml` if your project does not already have one.
-
-## Links
-
-* [Yamllint site](https://github.com/adrienverge/yamllint)
-* Yamllint Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/yamllint)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/supported/yapf.mdx b/code-quality/overview/linters/supported/yapf.mdx
deleted file mode 100644
index 2a7d9b6..0000000
--- a/code-quality/overview/linters/supported/yapf.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: "yapf"
-description: "yapf is a linter for Python"
----
-[**yapf**](https://github.com/google/yapf#readme) is a linter for Python.
-
-You can enable the yapf linter with:
-
-```shell
-trunk check enable yapf
-```
-
-## Auto Enabling
-
-yapf will be auto-enabled if any of its config files are present: _`.style.yapf`, `.yapfignore`_.
-
-## Settings
-
-yapf supports the following config files:
-
-* `.style.yapf`
-* `.yapfignore`
-
-You can move these files to `.trunk/configs` and `trunk check` will still find them. See [Moving Linters](../configure-linters#moving-linters) for more info.
-
-## Links
-
-* [yapf site](https://github.com/google/yapf#readme)
-* yapf Trunk Code Quality [integration source](https://github.com/trunk-io/plugins/tree/main/linters/yapf)
-* Trunk Code Quality's [open source plugins repo](https://github.com/trunk-io/plugins/tree/main)
diff --git a/code-quality/overview/linters/upgrades.mdx b/code-quality/overview/linters/upgrades.mdx
deleted file mode 100644
index 7027f0e..0000000
--- a/code-quality/overview/linters/upgrades.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: "Upgrades"
----
-Run `trunk upgrade` to update the Trunk CLI and all your plugins, linters, tools, and runtimes.
-
-#### Upgrade scopes
-
-Upgrades can be filtered to different scopes by adding them to `trunk upgrade `. The scopes available are:
-
-| Scope | Description |
-|---|---|
-| cli | Only upgrade the Trunk CLI to the latest version. |
-| plugins | Upgrade any that you have sourced to their latest public release. The latest version must be compatible with your current `cli` version in order for the upgrade to be applied. |
-| check | Upgrade any linters that you have enabled. Linters will be upgraded to the latest validated version that have passed tests in our [plugins](https://github.com/trunk-io/plugins) repo. Additional recommended linters can also be enabled by running with `-y`. |
-| tools | Upgrade any that you have enabled. Tools will be upgraded to their latest public release. Note that any enabled linters that share a name with an enabled tool must keep their versions synced. |
-| runtimes | Upgrade any that you have enabled. Runtimes will be upgraded to their recommended version for running linters, as specified by Trunk. |
-
-#### Automatic upgrades
-
-When running locally, Trunk automatically checks for upgrades in the background on a regular cadence. You'll see notifications for these upgrades appear in the VSCode Extension or at the end of a `trunk check` run. To stop seeing these notifications, you can run `trunk actions disable trunk-upgrade-available`.
-
-When running in single-player mode, Trunk will automatically upgrade itself in the background and stay up to date.
-
-#### Automatic upgrades with GitHub Actions
-
-You can configure a GitHub workflow to create PRs with the latest Trunk and tool versions automatically. Here's a sample GitHub Action:
-
-```yaml
-name: Nightly
-on:
- schedule:
- - cron: 0 8 * * 1-5
- workflow_dispatch: {}
-permissions: read-all
-jobs:
- trunk_upgrade:
- name: Upgrade Trunk
- runs-on: ubuntu-latest
- permissions:
- contents: write # For trunk to create PRs
- pull-requests: write # For trunk to create PRs
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- # >>> Install your own deps here (npm install, etc) <<<
- - name: Trunk Upgrade
- uses: trunk-io/trunk-action/upgrade@v1
-```
-
-Then, provide permissions for this GitHub Action to [create and approve pull requests](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests) by navigating to your repo's **Settings** > **Actions** > **General** > **Workflow permissions** > **Allow GitHub Actions to create and approve pull requests**.\
-\
-You can also set the `arguments` field to filter particular scopes to upgrade and set `base` to define the branch to create a PR against (default `main`).
-
-
-**Triggering further workflow runs**
-
-PRs created with this GitHub Action will not trigger further workflows by default. If you need the PRs created to trigger further GitHub Action Workflows, [follow the workarounds described here](https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs).
-
-
-#### Pinning versions
-
-If you don't want a linter, tool, or runtime to be upgraded, you can pin its version by appending `!` to the version in your `.trunk/trunk.yaml`. For example:
-
-```yaml
-lint:
- enabled:
- - pylint@2.17.5!
-```
-
-#### Plugin repositories and user.yaml
-
-By default, upgrades are only applied to your repo's `.trunk/trunk.yaml`. If you're using a plugin repo that enables linters/tools, or if you would like upgrades to be applied to your `.trunk/user.yaml` file, you can run `trunk upgrade --apply-to ` to see upgrades applied there.
diff --git a/code-quality/overview/prevent-new-issues/index.mdx b/code-quality/overview/prevent-new-issues/index.mdx
deleted file mode 100644
index 61a96ac..0000000
--- a/code-quality/overview/prevent-new-issues/index.mdx
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: "Linting in CI"
----
-Trunk Code Quality can be run in CI to prevent new issues form being introduced by PRs and on a nightly/scheduled cadence to report on existing issues.
-
-### Configuring base branch
-
-Trunk operates in **hold-the-line** mode by default. This means Trunk will run linters only on the **files that have changed** according to Git, by comparing it to the appropriate upstream branch.
-
-If you're not using `main` or `master` as the base branch, make sure it's specified in `.trunk/trunk.yaml`.
-
-```yaml
-version: 0.1
-cli:
- version: 1.22.2
-repo:
- # specify the base branch for hold-the-line
- trunk_branch: develop
-```
-
-### Linting on pull requests
-
-```yaml
-name: Trunk Code Quality
-on:
- push:
- branches: main
- pull_request:
- branches: main
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - name: Trunk Code Quality
- uses: trunk-io/trunk-action@v1
- with:
- post-annotations: true
- # ... other CI steps
-```
-
-This step will automatically run Trunk Code Quality to reveal problems found when comparing the branch to `main` or another base branch you configured.
-
-If you want to run the `trunk check` command directly in your workflow, or you're not using GitHub, you can run the following commands:
-
-```sh
-curl -fsSLO --retry 3 https://trunk.io/releases/trunk \
-chmod +x trunk \
-./trunk check --ci
-```
-
-Trunk Code Quality can be run in CI to prevent new issues form being introduced by PRs and on a nightly/scheduled cadence to report on existing issues.
-
-### Configuring base branch
-
-Trunk operates in **hold-the-line** mode by default. This means Trunk will run linters only on the **files that have changed** according to Git, by comparing it to the appropriate upstream branch.
-
-If you're not using `main` or `master` as the base branch, make sure it's specified in `.trunk/trunk.yaml`.
-
-```yaml
-version: 0.
-cli:
- version: 1.22.2
-repo:
- # specify the base branch for hold-the-line
- trunk_branch: develop
-```
-
-#### Manual configuration and Non-GitHub CI
-
-If you want to run the `trunk check` command directly in your workflow, or you're not using GitHub, you can run the following commands:
-
-```
-curl -fsSLO --retry 3 https://trunk.io/releases/trunk \
-chmod +x trunk \
-./trunk check --ci
-```
-
-#### Skipping Trunk Code Quality on pull requests
-
-You can include `/trunk skip-check` in the body of a PR description (i.e. the first comment on a given PR) to mark Trunk Code Quality as "skipped". Trunk Code Quality will still run on your PR and report issues, but this will allow the PR to pass a GitHub-required status check on `Trunk Check`.
-
-This can be helpful if Code Quality is flagging known issues in a given PR that you don't want to ignore, which can come in handy if you're doing a large refactor.
-
-### Caching and persistence
-
-* Trunk caches the version of `trunk` itself, linters, formatters, and lint results in `~/.cache/trunk`
-* If your build machines are persistent, make sure this directory is not wiped out between CI jobs for best performance. If Trunk has to re-download every linter for every job because this directory is wiped out, it will be very slow.
-* If your build machines are ephemeral, there are a few options for caching:
- * CI systems have support for caching between CI jobs on ephemeral runners:
- * [GitHub Actions](https://github.com/actions/cache)
- * [CircleCI](https://circleci.com/docs/caching/)
- * [Travis CI](https://docs.travis-ci.com/user/caching/)
- * You can include a seeded trunk cache in a regularly updated image used for CI by running `trunk check download`, which will download all requirements to `~/.cache/trunk`
-
-### Hourly and nightly builds
-
-If you'd like to set Code Quality to run on an hourly/nightly CI, you can run
-
-```yaml
-name: Trunk Code Quality
-on:
- schedule:
- # Run at 4 PM UTC daily (cron uses UTC time)
- - cron: '0 16 * * *'
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - name: Trunk Code Quality
- uses: trunk-io/trunk-action@v1
- with:
- check-mode: all
- # ... other CI steps
-```
-
-You can do the same without Trunk's GitHub Action using the following command:
-
-```bash
-curl -fsSLO --retry 3 https://trunk.io/releases/trunk \
-chmod +x trunk \
-./trunk check --all --ci-progress --monitor=false
-```
-
-`--ci-progress` will print out the tool's progress every 30 seconds, whereas `--no-progress` will suppress any progress reporting.
-
-You can also explicitly set the upstream branch if needed via `--upstream`, but we do detect your main branch by default.
diff --git a/code-quality/overview/prevent-new-issues/migration-guide.mdx b/code-quality/overview/prevent-new-issues/migration-guide.mdx
deleted file mode 100644
index 48909d8..0000000
--- a/code-quality/overview/prevent-new-issues/migration-guide.mdx
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: "Migration Guide"
-hidden: true
----
-### What's deprecated
-
-The Code Quality dashboard in the Trunk web app has been deprecated, along with the ability to configure and manage CI workflows in the web app.
-
-### Breaking Changes
-
-⚠️ **The `--upload` flag has been removed from the Trunk CLI**
-
-If you're using `--upload` in your scripts or CI configurations, you must remove it. This flag was previously used to send data to our backend for the deprecated Code Quality dashboard but is no longer supported.
-
-**Action required:** Remove `--upload` from any `trunk check` commands in your CI pipelines or scripts.
-
-### Migrating nightly and PR jobs
-
-Nightly and PR jobs configured through the Trunk web app will no longer be supported. However, you can still run these checks by migrating these workflows to run as a step in your existing CI pipelines.
-
-#### Run on PRs on GitHub Actions
-
-Trunk provides a [GitHub action](https://github.com/trunk-io/trunk-action) to help you lint your code in CI. You add it as a step to your workflows. To run on pull requests or on a schedule, you can configure the appropriate triggers for your workflow.
-
-```yaml
-name: Trunk Code Quality
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - name: Trunk Code Quality
- uses: trunk-io/trunk-action@v1
- # ... other CI steps
-```
-
-You will still receive inline comments about your errors if you run the action with the `post-annotations` argument.
-
-#### Run on PRs using other CI providers
-
-You can also set up checks on PR without using the provided GitHub action. Download the CLI in line and run the Code Quality CLI in CI mode to check a PR. Note that you will not receive inline arguments with this approach.
-
-```sh
-curl -fsSLO --retry 3 https://trunk.io/releases/trunk
-chmod +x trunk
-./trunk check --ci
-```
-
-Here’s an example of the commands in a GitHub Actions workflow, but you can do the same in virtually any CI pipeline.
-
-```yaml
-name: Trunk Code Quality
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - run: |
- curl -fsSLO --retry 3 https://trunk.io/releases/trunk
- chmod +x trunk
- ./trunk check --ci --ci-progress
- # ... other CI steps
-```
-
-#### Run nightly on GitHub Actions
-
-To run Trunk’s [GitHub action](https://github.com/trunk-io/trunk-action) to lint your entire code base nightly or on a schedule, you can specify the \`check-mode: all\` argument when running the action.
-
-```yaml
-name: Trunk Code Quality
-on:
- schedule:
- # Run at 4 PM UTC daily (cron uses UTC time)
- - cron: '0 16 * * *'
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - name: Trunk Code Quality
- uses: trunk-io/trunk-action@v1
- with:
- check-mode: all
- # ... other CI steps
-```
-
-#### Run nightly using other CI providers
-
-Specify the `--all` flag on your `trunk check` command to run on your entire codebase. Trunk is Git aware and checks only files changed in a PR by default. Specifying `--all` will instead check the whole code base.
-
-```sh
-curl -fsSLO --retry 3 https://trunk.io/releases/trunk
-chmod +x trunk
-./trunk check --all --ci --ci-progress
-```
-
-Here’s an example of the command in a GitHub Actions workflow. This command will also work in any other CI provider.
-
-```yaml
-name: Trunk Code Quality
-on:
- schedule:
- # Run at 4 PM UTC daily (cron uses UTC time)
- - cron: '0 16 * * *'
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- # ... other setup steps
- - run: |
- curl -fsSLO --retry 3 https://trunk.io/releases/trunk
- chmod +x trunk
- ./trunk check --all --ci --ci-progress
- # ... other CI steps
-```
-
-### Caching
-
-You can cache Trunk’s binary and install tools to speed up your CI runs. Trunk caches the version of `trunk` itself, linters, formatters, and lint results in the `~/.cache/trunk` folder. Consult the documentation for your CI provider to learn about caching this folder.
diff --git a/code-quality/overview/setup-and-installation/github-integration.mdx b/code-quality/overview/setup-and-installation/github-integration.mdx
deleted file mode 100644
index 020f199..0000000
--- a/code-quality/overview/setup-and-installation/github-integration.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: "Nightly report (Deprecated)"
-hidden: true
----
-
-**Deprecation Warning**\
-The Trunk Code Quality web app, Code Quality on PRs, and Code Quality Nightly will soon be deprecated. Follow our [migration guide](../prevent-new-issues/migration-guide) to migrate off these features.
-
-
-Trunk Code Quality can post its results to the [Trunk Code Quality web app](https://app.trunk.io/login?intent=code%20quality). This allows you to view your repository's Code Quality history over time, track quality trends, and browse issues to help prioritize fixes.
-
-### Connect your Trunk organization to GitHub
-
-Sign up at [app.trunk.io](https://app.trunk.io/signup?intent=code%20quality), create a Trunk organization, and connect it to your repositories. You will need to grant the following GitHub App permissions.
-
-
-
-### Set Up Trunk Code Quality
-
-Once your Trunk organization is connected to GitHub, create a .trunk repo in your account or organization and grant Trunk permissions to access the repo. The .trunk repo will hold the workflows to scan your codebase and pull requests. [Learn more about the .trunk repo](./github-integration#uploading-results).
-
-
-
-### Configure Slack Notifications (optional)
-
-If you would like to receive notifications for new issues Trunk finds in your repo, you can configure Trunk to be connected to Slack.
-
-
-
-### **How Trunk Uploads Results**
-
-The upload feature of Trunk Code Quality will upload all of the issues found by Trunk to the Trunk services. To get an accurate picture of the state of your repository, you'll want to upload all of the Trunk Code Quality issues for your whole repository.
-
-Generally, this is done within your Continuous Integration system (CI) automatically whenever **pull requests are filed or pushed to a specific branch** in your repo. Trunk Code Quality can also **run periodically** to check for new vulnerabilities in your dependencies.
-
-#### **How Does It Work?**
-
-Under the hood, the GitHub integration does the following for your organization to enable Trunk Code Quality in GitHub Actions Workflows:
-
-* An installation of the Trunk.io GitHub app in your GitHub organization
-* A `.trunk` repository in your GitHub organization.
-
-#### **What is a `.trunk` repository?**
-
-The `.trunk` repository contains the workflows run to scan your codebase and pull requests. We recommend creating a `.trunk` repository in your GitHub organization using [this template repository](https://github.com/trunk-io/.trunk-template).
-
-Your `.trunk` repository must be added to your Trunk GitHub app installation. You can verify this by navigating to: `https://github.com/organizations//settings/installations`, clicking "configure" next to Trunk-io, and verifying that the repository access is either "All repositories" or that your `.trunk` repository is selected.
-
-To find Code Quality issues in your repositories and pull requests, we dispatch GitHub Actions workflows in your `.trunk` repository, which checks out your repositories and pull requests and then run `trunk check` in them. This strategy allows you to:
-
-* start using Trunk Code Quality in all your repositories without any configuration, and
-* be in full control over the environment where we analyze your code, since we're running on your GitHub Actions runners.
-
-
-🚧 `.trunk` should have private visibility
-
-Since we use workflow runs in `.trunk` to analyze any repository in your organization and record Code Quality findings, you should think carefully about who has permission to view workflow runs in your `.trunk` repository. For most organizations, simply making your `.trunk` repository private will be sufficient.
-
-
-#### (optional) Custom setup logic
-
-If you need to do some setup before `trunk check` runs in `your-org/your-repo`, you can [define a GitHub composite action](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) in `.trunk/setup-ci/action.yaml` in `your-repo`. This can be important if, for example, a linter needs some generated code to be present before it can run:
-
-```yaml
-name: Trunk Code Quality setup
-description: Set up dependencies for Trunk Code Quality
-
-runs:
- using: composite
- steps:
- - name: Build required trunk check inputs
- shell: bash
- run: bazel build ... --build_tag_filters=pre-lint
-
- - name: Install eslint dependencies
- shell: bash
- run: npm install
-```
-
-Read more in the documentation for [our GitHub Action](https://github.com/trunk-io/trunk-action#custom-setup).
diff --git a/code-quality/overview/setup-and-installation/index.mdx b/code-quality/overview/setup-and-installation/index.mdx
deleted file mode 100644
index 791509f..0000000
--- a/code-quality/overview/setup-and-installation/index.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: "Setup and installation"
-hidden: true
----
-Trunk Code Quality is easy to adopt for new and legacy projects alike. You can run Trunk Code Quality using your existing linter configurations, incrementally address existing problems, and prevent new issues from being committed to your repo.
-
-You can start using Code Quality in your repos in 4 steps.
-
-
-
- Initialize Trunk in your repo to generate Trunk config files and get linter recommendations based on your project's files.
-
-
- Check for existing issues in your project. You can address problems up front, use hold-the-line to fix them incrementally, and configure ignores for irrelevant issues.
-
-
- Set up automated runs on commits, before pushes, and on PRs to prevent new issues from appearing in your repo.
-
-
diff --git a/docs.json b/docs.json
index 2390efe..50d94fc 100644
--- a/docs.json
+++ b/docs.json
@@ -12,9 +12,6 @@
"light": "/logo/light.svg",
"dark": "/logo/dark.svg"
},
- "background": {
- "decoration": "gradient"
- },
"fonts": {
"heading": {
"family": "Neue",
@@ -43,119 +40,88 @@
"navigation": {
"tabs": [
{
- "tab": "Overview",
- "pages": [
- "index"
+ "tab": "Home",
+ "groups": [
+ {
+ "group": "Platform",
+ "pages": ["introduction"]
+ }
]
},
{
"tab": "Merge Queue",
"groups": [
{
- "group": "Merge Queue",
+ "group": "Overview",
+ "pages": ["merge-queue/merge-queue"]
+ },
+ {
+ "group": "Getting Started",
+ "pages": [
+ "merge-queue/getting-started",
+ "merge-queue/getting-started/install-and-create-your-queue",
+ "merge-queue/getting-started/configure-branch-protection",
+ "merge-queue/getting-started/configure-ci-status-checks",
+ "merge-queue/getting-started/test-your-setup",
+ "merge-queue/migrating-from-github-merge-queue"
+ ]
+ },
+ {
+ "group": "Optimizations",
+ "pages": [
+ "merge-queue/optimizations",
+ "merge-queue/optimizations/predictive-testing",
+ "merge-queue/optimizations/anti-flake-protection",
+ "merge-queue/optimizations/batching",
+ "merge-queue/optimizations/priority-merging",
+ "merge-queue/optimizations/optimistic-merging",
+ "merge-queue/optimizations/pending-failure-depth",
+ "merge-queue/optimizations/direct-merge-to-main"
+ ]
+ },
+ {
+ "group": "Parallel Queues",
+ "pages": [
+ "merge-queue/optimizations/parallel-queues",
+ "merge-queue/optimizations/parallel-queues/bazel",
+ "merge-queue/optimizations/parallel-queues/nx",
+ "merge-queue/optimizations/parallel-queues/api"
+ ]
+ },
+ {
+ "group": "Using the Queue",
+ "pages": [
+ "merge-queue/using-the-queue",
+ "merge-queue/using-the-queue/reference",
+ "merge-queue/using-the-queue/monitor-queue-status",
+ "merge-queue/using-the-queue/handle-failed-pull-requests",
+ "merge-queue/using-the-queue/stacked-pull-requests",
+ "merge-queue/using-the-queue/emergency-pull-requests"
+ ]
+ },
+ {
+ "group": "Integrations",
"pages": [
- "merge-queue/merge-queue",
- {
- "group": "Getting Started",
- "root": "merge-queue/getting-started/index",
- "pages": [
- "merge-queue/getting-started/install-and-create-your-queue",
- "merge-queue/getting-started/configure-branch-protection",
- "merge-queue/getting-started/configure-ci-status-checks",
- "merge-queue/getting-started/test-your-setup"
- ]
- },
- "merge-queue/migrating-from-github-merge-queue",
- {
- "group": "Optimizations",
- "root": "merge-queue/optimizations/index",
- "pages": [
- "merge-queue/optimizations/predictive-testing",
- "merge-queue/optimizations/anti-flake-protection",
- {
- "group": "Parallel queues",
- "root": "merge-queue/optimizations/parallel-queues/index",
- "pages": [
- "merge-queue/optimizations/parallel-queues/bazel",
- "merge-queue/optimizations/parallel-queues/nx",
- "merge-queue/optimizations/parallel-queues/api"
- ]
- },
- "merge-queue/optimizations/batching",
- "merge-queue/optimizations/priority-merging",
- "merge-queue/optimizations/optimistic-merging",
- "merge-queue/optimizations/pending-failure-depth",
- "merge-queue/optimizations/direct-merge-to-main"
- ]
- },
- {
- "group": "Using the Queue",
- "root": "merge-queue/using-the-queue/index",
- "pages": [
- "merge-queue/using-the-queue/reference",
- "merge-queue/using-the-queue/monitor-queue-status",
- "merge-queue/using-the-queue/handle-failed-pull-requests",
- "merge-queue/using-the-queue/emergency-pull-requests",
- "merge-queue/using-the-queue/force-merge"
- ]
- },
"merge-queue/integration-for-slack",
- "merge-queue/chrome-extension",
- "merge-queue/webhooks",
- {
- "group": "Administration",
- "root": "merge-queue/administration/index",
- "pages": [
- "merge-queue/administration/advanced-settings",
- "merge-queue/administration/terraform",
- "merge-queue/administration/metrics"
- ]
- },
- {
- "group": "Reference",
- "root": "merge-queue/reference/index",
- "pages": [
- "merge-queue/reference/merge-queue-cli-reference",
- {
- "group": "API reference",
- "root": "/merge-queue/reference/merge",
- "openapi": {
- "directory": "/merge-queue/reference/merge",
- "source": "/openapi.json"
- },
- "pages": [
- {
- "group": "Pull Request Endpoints",
- "pages": [
- "POST /cancelPullRequest",
- "POST /getSubmittedPullRequest",
- "POST /restartTestsOnPullRequest",
- "POST /setImpactedTargets",
- "POST /submitPullRequest",
- "POST /getMergeQueueTestingDetails"
- ]
- },
- {
- "group": "Metrics Endpoints",
- "pages": [
- "GET /getMergeQueueMetrics"
- ]
- },
- {
- "group": "Queue Endpoints",
- "pages": [
- "POST /createQueue",
- "POST /deleteQueue",
- "POST /getQueue",
- "POST /updateQueue"
- ]
- }
- ]
- },
- "merge-queue/reference/common-problems",
- "merge-queue/reference/troubleshooting"
- ]
- }
+ "merge-queue/webhooks"
+ ]
+ },
+ {
+ "group": "Administration",
+ "pages": [
+ "merge-queue/administration",
+ "merge-queue/administration/advanced-settings",
+ "merge-queue/administration/metrics"
+ ]
+ },
+ {
+ "group": "Reference",
+ "pages": [
+ "merge-queue/reference",
+ "merge-queue/reference/merge-queue-cli-reference",
+ "merge-queue/reference/merge",
+ "merge-queue/reference/common-problems",
+ "merge-queue/reference/troubleshooting"
]
}
]
@@ -164,183 +130,119 @@
"tab": "Flaky Tests",
"groups": [
{
- "group": "Flaky Tests",
+ "group": "Overview",
+ "pages": [
+ "flaky-tests/overview",
+ "flaky-tests/get-started",
+ "flaky-tests/managing-detected-flaky-tests",
+ "flaky-tests/dashboard"
+ ]
+ },
+ {
+ "group": "Test Frameworks",
+ "pages": [
+ "flaky-tests/get-started/frameworks",
+ "flaky-tests/get-started/frameworks/android",
+ "flaky-tests/get-started/frameworks/bazel",
+ "flaky-tests/get-started/frameworks/behave",
+ "flaky-tests/get-started/frameworks/cypress",
+ "flaky-tests/get-started/frameworks/dart-test",
+ "flaky-tests/get-started/frameworks/googletest",
+ "flaky-tests/get-started/frameworks/gotestsum",
+ "flaky-tests/get-started/frameworks/gradle",
+ "flaky-tests/get-started/frameworks/jasmine",
+ "flaky-tests/get-started/frameworks/jest",
+ "flaky-tests/get-started/frameworks/karma",
+ "flaky-tests/get-started/frameworks/kotest",
+ "flaky-tests/get-started/frameworks/maven",
+ "flaky-tests/get-started/frameworks/minitest",
+ "flaky-tests/get-started/frameworks/mocha",
+ "flaky-tests/get-started/frameworks/nightwatch",
+ "flaky-tests/get-started/frameworks/nunit",
+ "flaky-tests/get-started/frameworks/other-test-frameworks",
+ "flaky-tests/get-started/frameworks/pest",
+ "flaky-tests/get-started/frameworks/phpunit",
+ "flaky-tests/get-started/frameworks/playwright",
+ "flaky-tests/get-started/frameworks/pytest",
+ "flaky-tests/get-started/frameworks/robot-framework",
+ "flaky-tests/get-started/frameworks/rspec",
+ "flaky-tests/get-started/frameworks/rspec/manual-uploads",
+ "flaky-tests/get-started/frameworks/rust",
+ "flaky-tests/get-started/frameworks/swift-testing",
+ "flaky-tests/get-started/frameworks/testplan",
+ "flaky-tests/get-started/frameworks/vitest",
+ "flaky-tests/get-started/frameworks/xctest"
+ ]
+ },
+ {
+ "group": "CI Providers",
+ "pages": [
+ "flaky-tests/get-started/ci-providers",
+ "flaky-tests/get-started/ci-providers/atlassian-bamboo",
+ "flaky-tests/get-started/ci-providers/azure-devops-pipelines",
+ "flaky-tests/get-started/ci-providers/bitbucket-pipelines",
+ "flaky-tests/get-started/ci-providers/buildkite",
+ "flaky-tests/get-started/ci-providers/circleci",
+ "flaky-tests/get-started/ci-providers/droneci",
+ "flaky-tests/get-started/ci-providers/github-actions",
+ "flaky-tests/get-started/ci-providers/gitlab",
+ "flaky-tests/get-started/ci-providers/google-cloud-build",
+ "flaky-tests/get-started/ci-providers/jenkins",
+ "flaky-tests/get-started/ci-providers/otherci",
+ "flaky-tests/get-started/ci-providers/semaphoreci",
+ "flaky-tests/get-started/ci-providers/travisci",
+ "flaky-tests/get-started/multiple-repositories"
+ ]
+ },
+ {
+ "group": "Detection & Operations",
+ "pages": [
+ "flaky-tests/detection",
+ "flaky-tests/detection/pass-on-retry-monitor",
+ "flaky-tests/detection/threshold-monitor",
+ "flaky-tests/detection/flag-as-flaky",
+ "flaky-tests/infrastructure-failure-protection",
+ "flaky-tests/the-importance-of-pr-test-results",
+ "flaky-tests/quarantining",
+ "flaky-tests/quarantine-service-availability",
+ "flaky-tests/github-pull-request-comments"
+ ]
+ },
+ {
+ "group": "Ticketing Integrations",
"pages": [
- {
- "group": "Overview",
- "root": "flaky-tests/overview",
- "pages": [
- "flaky-tests/dashboard"
- ]
- },
- {
- "group": "Getting Started",
- "root": "flaky-tests/get-started/index",
- "pages": [
- {
- "group": "Test frameworks",
- "root": "flaky-tests/get-started/frameworks/index",
- "pages": [
- "flaky-tests/get-started/frameworks/android",
- "flaky-tests/get-started/frameworks/bazel",
- "flaky-tests/get-started/frameworks/behave",
- "flaky-tests/get-started/frameworks/rust",
- "flaky-tests/get-started/frameworks/cypress",
- "flaky-tests/get-started/frameworks/dart-test",
- "flaky-tests/get-started/frameworks/gotestsum",
- "flaky-tests/get-started/frameworks/googletest",
- "flaky-tests/get-started/frameworks/gradle",
- "flaky-tests/get-started/frameworks/jasmine",
- "flaky-tests/get-started/frameworks/jest",
- "flaky-tests/get-started/frameworks/karma",
- "flaky-tests/get-started/frameworks/kotest",
- "flaky-tests/get-started/frameworks/maven",
- "flaky-tests/get-started/frameworks/minitest",
- "flaky-tests/get-started/frameworks/mocha",
- "flaky-tests/get-started/frameworks/nightwatch",
- "flaky-tests/get-started/frameworks/nunit",
- "flaky-tests/get-started/frameworks/pest",
- "flaky-tests/get-started/frameworks/phpunit",
- "flaky-tests/get-started/frameworks/playwright",
- "flaky-tests/get-started/frameworks/pytest",
- "flaky-tests/get-started/frameworks/robot-framework",
- {
- "group": "RSpec",
- "root": "flaky-tests/get-started/frameworks/rspec/index",
- "pages": [
- "flaky-tests/get-started/frameworks/rspec/manual-uploads"
- ]
- },
- "flaky-tests/get-started/frameworks/swift-testing",
- "flaky-tests/get-started/frameworks/testplan",
- "flaky-tests/get-started/frameworks/vitest",
- "flaky-tests/get-started/frameworks/xctest",
- "flaky-tests/get-started/frameworks/other-test-frameworks"
- ]
- },
- {
- "group": "CI Providers",
- "root": "flaky-tests/get-started/ci-providers/index",
- "pages": [
- "flaky-tests/get-started/ci-providers/atlassian-bamboo",
- "flaky-tests/get-started/ci-providers/azure-devops-pipelines",
- "flaky-tests/get-started/ci-providers/bitbucket-pipelines",
- "flaky-tests/get-started/ci-providers/buildkite",
- "flaky-tests/get-started/ci-providers/circleci",
- "flaky-tests/get-started/ci-providers/droneci",
- "flaky-tests/get-started/ci-providers/github-actions",
- "flaky-tests/get-started/ci-providers/gitlab",
- "flaky-tests/get-started/ci-providers/google-cloud-build",
- "flaky-tests/get-started/ci-providers/jenkins",
- "flaky-tests/get-started/ci-providers/semaphoreci",
- "flaky-tests/get-started/ci-providers/travisci",
- "flaky-tests/get-started/ci-providers/otherci"
- ]
- },
- "flaky-tests/get-started/multiple-repositories"
- ]
- },
- {
- "group": "Flaky test detection",
- "root": "flaky-tests/detection/index",
- "pages": [
- "flaky-tests/detection/pass-on-retry-monitor",
- "flaky-tests/detection/failure-rate-monitor",
- "flaky-tests/detection/failure-count-monitor",
- "flaky-tests/detection/flag-as-flaky",
- "flaky-tests/detection/the-importance-of-pr-test-results",
- "flaky-tests/detection/infrastructure-failure-protection"
- ]
- },
- {
- "group": "Flaky test management",
- "root": "flaky-tests/management/index",
- "pages": [
- "flaky-tests/management/managing-detected-flaky-tests",
- "flaky-tests/management/test-labels",
- "flaky-tests/management/github-pull-request-comments",
- {
- "group": "Ticketing",
- "root": "flaky-tests/management/ticketing/index",
- "pages": [
- "flaky-tests/management/ticketing/jira-integration",
- "flaky-tests/management/ticketing/linear-integration",
- "flaky-tests/management/ticketing/other-ticketing-platforms"
- ]
- }
- ]
- },
- {
- "group": "Quarantining",
- "root": "flaky-tests/quarantining/index",
- "pages": [
- "flaky-tests/quarantining/quarantine-service-availability"
- ]
- },
- {
- "group": "Webhooks",
- "root": "flaky-tests/webhooks/index",
- "pages": [
- "flaky-tests/webhooks/slack-integration",
- "flaky-tests/webhooks/microsoft-teams-integration",
- "flaky-tests/webhooks/github-issues-integration",
- "flaky-tests/webhooks/linear-integration",
- "flaky-tests/webhooks/jira-integration"
- ]
- },
- {
- "group": "Agents",
- "root": "flaky-tests/agents/index",
- "pages": [
- "flaky-tests/agents/autofix-flaky-tests",
- "flaky-tests/agents/autofix-ci-failures",
- "links/mcp-reference"
- ]
- },
- {
- "group": "Reference",
- "root": "flaky-tests/reference/index",
- "pages": [
- "flaky-tests/reference/cli-reference",
- {
- "group": "API reference",
- "root": "flaky-tests/reference/api-reference",
- "openapi": {
- "directory": "/flaky-tests/reference/api-reference",
- "source": "/openapi.json"
- },
- "pages": [
- "POST /flaky-tests/get-test-details",
- "POST /flaky-tests/link-ticket-to-test-case",
- "POST /flaky-tests/list-failing-tests",
- "POST /flaky-tests/list-unhealthy-tests",
- "POST /flaky-tests/list-quarantined-tests"
- ]
- },
- {
- "group": "MCP reference",
- "root": "flaky-tests/reference/mcp-reference/index",
- "pages": [
- {
- "group": "Configuration",
- "root": "flaky-tests/reference/mcp-reference/configuration/index",
- "pages": [
- "flaky-tests/reference/mcp-reference/configuration/cursor-ide",
- "flaky-tests/reference/mcp-reference/configuration/github-copilot-ide",
- "flaky-tests/reference/mcp-reference/configuration/claude-code-cli",
- "flaky-tests/reference/mcp-reference/configuration/claude-code-plugin",
- "flaky-tests/reference/mcp-reference/configuration/gemini-cli",
- "flaky-tests/reference/mcp-reference/configuration/bearer-auth"
- ]
- },
- "flaky-tests/reference/mcp-reference/search-test",
- "flaky-tests/reference/mcp-reference/fix-flaky-test",
- "flaky-tests/reference/mcp-reference/set-up-test-uploads",
- "flaky-tests/reference/mcp-reference/investigate-ci-failure"
- ]
- }
- ]
- }
+ "flaky-tests/ticketing-integrations",
+ "flaky-tests/ticketing-integrations/jira-integration",
+ "flaky-tests/ticketing-integrations/linear-integration",
+ "flaky-tests/ticketing-integrations/other-ticketing-platforms"
+ ]
+ },
+ {
+ "group": "Webhooks",
+ "pages": [
+ "flaky-tests/webhooks",
+ "flaky-tests/webhooks/slack-integration",
+ "flaky-tests/webhooks/microsoft-teams-integration",
+ "flaky-tests/webhooks/github-issues-integration",
+ "flaky-tests/webhooks/linear-integration"
+ ]
+ },
+ {
+ "group": "APIs & CLI",
+ "pages": ["flaky-tests/flaky-tests", "flaky-tests/uploader"]
+ },
+ {
+ "group": "MCP Server",
+ "pages": [
+ "flaky-tests/use-mcp-server",
+ "flaky-tests/use-mcp-server/configuration",
+ "flaky-tests/use-mcp-server/configuration/cursor-ide",
+ "flaky-tests/use-mcp-server/configuration/github-copilot-ide",
+ "flaky-tests/use-mcp-server/configuration/claude-code-cli",
+ "flaky-tests/use-mcp-server/configuration/gemini-cli",
+ "flaky-tests/use-mcp-server/mcp-tool-reference",
+ "flaky-tests/use-mcp-server/mcp-tool-reference/get-root-cause-analysis",
+ "flaky-tests/use-mcp-server/mcp-tool-reference/set-up-test-uploads"
]
}
]
@@ -349,1452 +251,42 @@
"tab": "Setup & Administration",
"groups": [
{
- "group": "Setup & Administration",
+ "group": "Account Setup",
+ "pages": ["setup-and-administration/connecting-to-trunk"]
+ },
+ {
+ "group": "Administration",
"pages": [
- "setup-and-administration/connecting-to-trunk",
"setup-and-administration/managing-your-organization",
"setup-and-administration/github-app-permissions",
- "setup-and-administration/trunk-sudo-app",
"setup-and-administration/support",
"setup-and-administration/billing",
- "setup-and-administration/security",
- {
- "group": "API Reference",
- "root": "setup-and-administration/apis/index",
- "pages": [
- "links/flaky-tests-api",
- "links/merge-queue-api",
- "setup-and-administration/apis/webhooks"
- ]
- }
+ "setup-and-administration/security"
]
- }
- ]
- },
- {
- "tab": "Code Quality CLI",
- "groups": [
+ },
{
- "group": "Code Quality CLI",
+ "group": "API Reference",
"pages": [
- {
- "group": "Overview",
- "root": "code-quality/overview/index",
- "pages": [
- "code-quality/overview/initialize-trunk",
- "code-quality/overview/deal-with-existing-issues",
- "code-quality/overview/prevent-new-issues/index",
- {
- "group": "IDE integrations",
- "root": "code-quality/overview/ide-integration/index",
- "pages": [
- "code-quality/overview/ide-integration/vscode",
- "code-quality/overview/ide-integration/openai-codex-support",
- "code-quality/overview/ide-integration/neovim",
- "code-quality/overview/ide-integration/github-codespaces"
- ]
- },
- {
- "group": "Code Quality CLI",
- "root": "code-quality/overview/getting-started/index",
- "pages": [
- "code-quality/overview/getting-started/code-quality",
- "code-quality/overview/getting-started/install",
- "code-quality/overview/getting-started/tools",
- {
- "group": "Actions",
- "root": "code-quality/overview/getting-started/actions/index",
- "pages": [
- "code-quality/overview/getting-started/actions/git-hooks"
- ]
- },
- "code-quality/overview/getting-started/announce",
- "code-quality/overview/getting-started/compatibility",
- "code-quality/overview/getting-started/caching",
- {
- "group": "Commands reference",
- "root": "code-quality/overview/getting-started/commands-reference/index",
- "pages": [
- "code-quality/overview/getting-started/commands-reference/code-quality",
- "code-quality/overview/getting-started/commands-reference/actions"
- ]
- },
- {
- "group": "Configuration",
- "root": "code-quality/overview/getting-started/configuration/index",
- "pages": [
- {
- "group": "Plugins",
- "root": "code-quality/overview/getting-started/configuration/plugins/index",
- "pages": [
- "code-quality/overview/getting-started/configuration/plugins/external-repositories",
- "code-quality/overview/getting-started/configuration/plugins/exported-configs"
- ]
- },
- "code-quality/overview/getting-started/configuration/runtimes",
- "code-quality/overview/getting-started/configuration/tools",
- {
- "group": "Lint",
- "root": "code-quality/overview/getting-started/configuration/lint/index",
- "pages": [
- "code-quality/overview/getting-started/configuration/lint/definitions",
- "code-quality/overview/getting-started/configuration/lint/commands",
- "code-quality/overview/getting-started/configuration/lint/output",
- "code-quality/overview/getting-started/configuration/lint/output-parsing",
- "code-quality/overview/getting-started/configuration/lint/files-and-caching",
- "code-quality/overview/getting-started/configuration/lint/dependencies",
- "code-quality/overview/getting-started/configuration/lint/auto-enable"
- ]
- },
- {
- "group": "Actions",
- "root": "code-quality/overview/getting-started/configuration/actions/index",
- "pages": [
- "code-quality/overview/getting-started/configuration/actions/notifications",
- "code-quality/overview/getting-started/configuration/actions/logging-and-troubleshooting"
- ]
- },
- "code-quality/overview/getting-started/configuration/merge",
- "code-quality/overview/getting-started/configuration/telemetry",
- "code-quality/overview/getting-started/configuration/per-user-overrides"
- ]
- }
- ]
- },
- {
- "group": "Linters",
- "root": "code-quality/overview/linters/index",
- "pages": [
- {
- "group": "Supported linters",
- "root": "code-quality/overview/linters/supported/index",
- "pages": [
- "code-quality/overview/linters/supported/actionlint",
- "code-quality/overview/linters/supported/ansible-lint",
- "code-quality/overview/linters/supported/autopep8",
- "code-quality/overview/linters/supported/bandit",
- "code-quality/overview/linters/supported/biome",
- "code-quality/overview/linters/supported/black",
- "code-quality/overview/linters/supported/brakeman",
- "code-quality/overview/linters/supported/buf",
- "code-quality/overview/linters/supported/buildifier",
- "code-quality/overview/linters/supported/cfnlint",
- "code-quality/overview/linters/supported/checkov",
- "code-quality/overview/linters/supported/circleci",
- "code-quality/overview/linters/supported/clang-format",
- "code-quality/overview/linters/supported/clang-tidy",
- "code-quality/overview/linters/supported/clippy",
- "code-quality/overview/linters/supported/cmake-format",
- "code-quality/overview/linters/supported/codespell",
- "code-quality/overview/linters/supported/cspell",
- "code-quality/overview/linters/supported/cue-fmt",
- "code-quality/overview/linters/supported/dart",
- "code-quality/overview/linters/supported/deno",
- "code-quality/overview/linters/supported/detekt",
- "code-quality/overview/linters/supported/djlint",
- "code-quality/overview/linters/supported/dotenv-linter",
- "code-quality/overview/linters/supported/dotnet-format",
- "code-quality/overview/linters/supported/dustilock",
- "code-quality/overview/linters/supported/eslint",
- "code-quality/overview/linters/supported/flake8",
- "code-quality/overview/linters/supported/git-diff-check",
- "code-quality/overview/linters/supported/gitleaks",
- "code-quality/overview/linters/supported/gofmt",
- "code-quality/overview/linters/supported/gofumpt",
- "code-quality/overview/linters/supported/goimports",
- "code-quality/overview/linters/supported/gokart",
- "code-quality/overview/linters/supported/golangci-lint",
- "code-quality/overview/linters/supported/golines",
- "code-quality/overview/linters/supported/google-java-format",
- "code-quality/overview/linters/supported/graphql-schema-linter",
- "code-quality/overview/linters/supported/hadolint",
- "code-quality/overview/linters/supported/haml-lint",
- "code-quality/overview/linters/supported/isort",
- "code-quality/overview/linters/supported/iwyu",
- "code-quality/overview/linters/supported/ktlint",
- "code-quality/overview/linters/supported/kube-linter",
- "code-quality/overview/linters/supported/markdown-link-check",
- "code-quality/overview/linters/supported/markdown-table-prettify",
- "code-quality/overview/linters/supported/markdownlint",
- "code-quality/overview/linters/supported/markdownlint-cli2",
- "code-quality/overview/linters/supported/mypy",
- "code-quality/overview/linters/supported/nancy",
- "code-quality/overview/linters/supported/nixpkgs-fmt",
- "code-quality/overview/linters/supported/opa",
- "code-quality/overview/linters/supported/osv-scanner",
- "code-quality/overview/linters/supported/oxipng",
- "code-quality/overview/linters/supported/perlcritic",
- "code-quality/overview/linters/supported/perltidy",
- "code-quality/overview/linters/supported/php-cs-fixer",
- "code-quality/overview/linters/supported/phpstan",
- "code-quality/overview/linters/supported/pmd",
- "code-quality/overview/linters/supported/pragma-once",
- "code-quality/overview/linters/supported/pre-commit-hooks",
- "code-quality/overview/linters/supported/prettier",
- "code-quality/overview/linters/supported/prisma",
- "code-quality/overview/linters/supported/psscriptanalyzer",
- "code-quality/overview/linters/supported/pylint",
- "code-quality/overview/linters/supported/pyright",
- "code-quality/overview/linters/supported/regal",
- "code-quality/overview/linters/supported/remark-lint",
- "code-quality/overview/linters/supported/renovate",
- "code-quality/overview/linters/supported/rome",
- "code-quality/overview/linters/supported/rubocop",
- "code-quality/overview/linters/supported/ruff",
- "code-quality/overview/linters/supported/rufo",
- "code-quality/overview/linters/supported/rustfmt",
- "code-quality/overview/linters/supported/scalafmt",
- "code-quality/overview/linters/supported/semgrep",
- "code-quality/overview/linters/supported/shellcheck",
- "code-quality/overview/linters/supported/shfmt",
- "code-quality/overview/linters/supported/sort-package-json",
- "code-quality/overview/linters/supported/sourcery",
- "code-quality/overview/linters/supported/sql-formatter",
- "code-quality/overview/linters/supported/sqlfluff",
- "code-quality/overview/linters/supported/sqlfmt",
- "code-quality/overview/linters/supported/squawk",
- "code-quality/overview/linters/supported/standardrb",
- "code-quality/overview/linters/supported/stringslint",
- "code-quality/overview/linters/supported/stylelint",
- "code-quality/overview/linters/supported/stylua",
- "code-quality/overview/linters/supported/svgo",
- "code-quality/overview/linters/supported/swiftformat",
- "code-quality/overview/linters/supported/swiftlint",
- "code-quality/overview/linters/supported/taplo",
- "code-quality/overview/linters/supported/terraform",
- "code-quality/overview/linters/supported/terragrunt",
- "code-quality/overview/linters/supported/terrascan",
- "code-quality/overview/linters/supported/tflint",
- "code-quality/overview/linters/supported/tfsec",
- "code-quality/overview/linters/supported/tofu",
- "code-quality/overview/linters/supported/trivy",
- "code-quality/overview/linters/supported/trufflehog",
- "code-quality/overview/linters/supported/txtpbfmt",
- "code-quality/overview/linters/supported/vale",
- "code-quality/overview/linters/supported/yamllint",
- "code-quality/overview/linters/supported/yapf"
- ]
- },
- "code-quality/overview/linters/run-linters",
- "code-quality/overview/linters/manage-linters",
- "code-quality/overview/linters/configure-linters",
- "code-quality/overview/linters/ignoring-issues-and-files",
- "code-quality/overview/linters/custom-linters",
- "code-quality/overview/linters/shared-configs",
- "code-quality/overview/linters/upgrades"
- ]
- },
- "code-quality/overview/debugging",
- "code-quality/overview/licensing"
- ]
- }
+ "setup-and-administration/apis",
+ "setup-and-administration/apis/webhooks"
]
}
]
}
- ],
- "global": {
- "anchors": [
- {
- "href": "https://app.trunk.io",
- "icon": "play",
- "anchor": "Open app"
- },
- {
- "href": "https://slack.trunk.io",
- "icon": "slack",
- "anchor": "Slack community"
- },
- {
- "href": "https://trunk.io/changelog",
- "icon": "bullhorn",
- "anchor": "Changelog"
- },
- {
- "href": "https://features.trunk.io",
- "icon": "circle-star",
- "anchor": "Feature requests"
- }
- ]
- }
+ ]
},
"contextual": {
- "options": [
- "copy",
- "view",
- "chatgpt",
- "claude"
- ]
+ "options": ["copy", "view", "chatgpt", "claude"]
},
"footer": {
"socials": {
"x": "https://x.com/trunk_io",
"github": "https://github.com/trunk-io"
- },
- "links": [
- {
- "items": [
- {
- "href": "https://app.trunk.io",
- "label": "Open app"
- },
- {
- "href": "https://slack.trunk.io",
- "label": "Slack community"
- },
- {
- "href": "https://trunk.io/changelog",
- "label": "Changelog"
- },
- {
- "href": "https://features.trunk.io",
- "label": "Feature requests"
- }
- ]
- }
- ]
+ }
},
"seo": {
"metatags": {
"robots": "noindex"
}
- },
- "redirects": [
- {
- "source": "/adminstration",
- "destination": "/setup-and-administration/managing-your-organization"
- },
- {
- "source": "/check",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/check/cli",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/check/configuration",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/check/get-started",
- "destination": "/code-quality/overview/setup-and-installation"
- },
- {
- "source": "/check/usage",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/check/performance",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/check/supported-linters",
- "destination": "/code-quality/overview/linters/supported"
- },
- {
- "source": "/check/tools/configuration",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/check/under-the-hood",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/check/github-integration",
- "destination": "/code-quality/overview/setup-and-installation/github-integration"
- },
- {
- "source": "/check/configuration/supported",
- "destination": "/code-quality/overview/linters/supported"
- },
- {
- "source": "/check/configuration/supported/ansible-lint",
- "destination": "/code-quality/overview/linters/supported/ansible-lint"
- },
- {
- "source": "/check/configuration/supported/codespell",
- "destination": "/code-quality/overview/linters/supported/codespell"
- },
- {
- "source": "/check/configuration/supported/cspell",
- "destination": "/code-quality/overview/linters/supported/cspell"
- },
- {
- "source": "/check/configuration/supported/gitleaks",
- "destination": "/code-quality/overview/linters/supported/gitleaks"
- },
- {
- "source": "/check/configuration/supported/git-diff-check",
- "destination": "/code-quality/overview/linters/supported/git-diff-check"
- },
- {
- "source": "/check/configuration/supported/pre-commit-hooks",
- "destination": "/code-quality/overview/linters/supported/pre-commit-hooks"
- },
- {
- "source": "/check/configuration/supported/pmd",
- "destination": "/code-quality/overview/linters/supported/pmd"
- },
- {
- "source": "/check/configuration/supported/shellcheck",
- "destination": "/code-quality/overview/linters/supported/shellcheck"
- },
- {
- "source": "/check/configuration/supported/shfmt",
- "destination": "/code-quality/overview/linters/supported/shfmt"
- },
- {
- "source": "/check/configuration/supported/buildifier",
- "destination": "/code-quality/overview/linters/supported/buildifier"
- },
- {
- "source": "/check/configuration/supported/iwyu",
- "destination": "/code-quality/overview/linters/supported/iwyu"
- },
- {
- "source": "/check/configuration/supported/pragma-once",
- "destination": "/code-quality/overview/linters/supported/pragma-once"
- },
- {
- "source": "/check/configuration/supported/dotnet-format",
- "destination": "/code-quality/overview/linters/supported/dotnet-format"
- },
- {
- "source": "/check/configuration/supported/circleci",
- "destination": "/code-quality/overview/linters/supported/circleci"
- },
- {
- "source": "/check/configuration/supported/cfnlint",
- "destination": "/code-quality/overview/linters/supported/cfnlint"
- },
- {
- "source": "/check/configuration/supported/checkov",
- "destination": "/code-quality/overview/linters/supported/checkov"
- },
- {
- "source": "/check/configuration/supported/stylelint",
- "destination": "/code-quality/overview/linters/supported/stylelint"
- },
- {
- "source": "/check/configuration/supported/prettier",
- "destination": "/code-quality/overview/linters/supported/prettier"
- },
- {
- "source": "/check/configuration/supported/cue-fmt",
- "destination": "/code-quality/overview/linters/supported/cue-fmt"
- },
- {
- "source": "/check/configuration/supported/hadolint",
- "destination": "/code-quality/overview/linters/supported/hadolint"
- },
- {
- "source": "/check/configuration/supported/dotenv-linter",
- "destination": "/code-quality/overview/linters/supported/dotenv-linter"
- },
- {
- "source": "/check/configuration/supported/actionlint",
- "destination": "/code-quality/overview/linters/supported/actionlint"
- },
- {
- "source": "/check/configuration/supported/gofmt",
- "destination": "/code-quality/overview/linters/supported/gofmt"
- },
- {
- "source": "/check/configuration/supported/gofumpt",
- "destination": "/code-quality/overview/linters/supported/gofumpt"
- },
- {
- "source": "/check/configuration/supported/goimports",
- "destination": "/code-quality/overview/linters/supported/goimports"
- },
- {
- "source": "/check/configuration/supported/gokart",
- "destination": "/code-quality/overview/linters/supported/gokart"
- },
- {
- "source": "/check/configuration/supported/golangci-lint",
- "destination": "/code-quality/overview/linters/supported/golangci-lint"
- },
- {
- "source": "/check/configuration/supported/golines",
- "destination": "/code-quality/overview/linters/supported/golines"
- },
- {
- "source": "/check/configuration/supported/semgrep",
- "destination": "/code-quality/overview/linters/supported/semgrep"
- },
- {
- "source": "/check/configuration/supported/graphql-schema-linter",
- "destination": "/code-quality/overview/linters/supported/graphql-schema-linter"
- },
- {
- "source": "/check/configuration/supported/haml-lint",
- "destination": "/code-quality/overview/linters/supported/haml-lint"
- },
- {
- "source": "/check/configuration/supported/djlint",
- "destination": "/code-quality/overview/linters/supported/djlint"
- },
- {
- "source": "/check/configuration/supported/google-java-format",
- "destination": "/code-quality/overview/linters/supported/google-java-format"
- },
- {
- "source": "/check/configuration/supported/deno",
- "destination": "/code-quality/overview/linters/supported/deno"
- },
- {
- "source": "/check/configuration/supported/eslint",
- "destination": "/code-quality/overview/linters/supported/eslint"
- },
- {
- "source": "/check/configuration/supported/rome",
- "destination": "/code-quality/overview/linters/supported/rome"
- },
- {
- "source": "/check/configuration/supported/detekt",
- "destination": "/code-quality/overview/linters/supported/detekt"
- },
- {
- "source": "/check/configuration/supported/ktlint",
- "destination": "/code-quality/overview/linters/supported/ktlint"
- },
- {
- "source": "/check/configuration/supported/kube-linter",
- "destination": "/code-quality/overview/linters/supported/kube-linter"
- },
- {
- "source": "/check/configuration/supported/stylua",
- "destination": "/code-quality/overview/linters/supported/stylua"
- },
- {
- "source": "/check/configuration/supported/markdownlint",
- "destination": "/code-quality/overview/linters/supported/markdownlint"
- },
- {
- "source": "/check/configuration/supported/remark-lint",
- "destination": "/code-quality/overview/linters/supported/remark-lint"
- },
- {
- "source": "/check/configuration/supported/markdown-link-check",
- "destination": "/code-quality/overview/linters/supported/markdown-link-check"
- },
- {
- "source": "/check/configuration/supported/nixpkgs-fmt",
- "destination": "/code-quality/overview/linters/supported/nixpkgs-fmt"
- },
- {
- "source": "/check/configuration/supported/sort-package-json",
- "destination": "/code-quality/overview/linters/supported/sort-package-json"
- },
- {
- "source": "/check/configuration/supported/perlcritic",
- "destination": "/code-quality/overview/linters/supported/perlcritic"
- },
- {
- "source": "/check/configuration/supported/perltidy",
- "destination": "/code-quality/overview/linters/supported/perltidy"
- },
- {
- "source": "/check/configuration/supported/oxipng",
- "destination": "/code-quality/overview/linters/supported/oxipng"
- },
- {
- "source": "/check/configuration/supported/prisma",
- "destination": "/code-quality/overview/linters/supported/prisma"
- },
- {
- "source": "/check/configuration/supported/buf",
- "destination": "/code-quality/overview/linters/supported/buf"
- },
- {
- "source": "/check/configuration/supported/clang-format",
- "destination": "/code-quality/overview/linters/supported/clang-format"
- },
- {
- "source": "/check/configuration/supported/clang-tidy",
- "destination": "/code-quality/overview/linters/supported/clang-tidy"
- },
- {
- "source": "/check/configuration/supported/autopep8",
- "destination": "/code-quality/overview/linters/supported/autopep8"
- },
- {
- "source": "/check/configuration/supported/bandit",
- "destination": "/code-quality/overview/linters/supported/bandit"
- },
- {
- "source": "/check/configuration/supported/black",
- "destination": "/code-quality/overview/linters/supported/black"
- },
- {
- "source": "/check/configuration/supported/flake8",
- "destination": "/code-quality/overview/linters/supported/flake8"
- },
- {
- "source": "/check/configuration/supported/isort",
- "destination": "/code-quality/overview/linters/supported/isort"
- },
- {
- "source": "/check/configuration/supported/mypy",
- "destination": "/code-quality/overview/linters/supported/mypy"
- },
- {
- "source": "/check/configuration/supported/pylint",
- "destination": "/code-quality/overview/linters/supported/pylint"
- },
- {
- "source": "/check/configuration/supported/pyright",
- "destination": "/code-quality/overview/linters/supported/pyright"
- },
- {
- "source": "/check/configuration/supported/yapf",
- "destination": "/code-quality/overview/linters/supported/yapf"
- },
- {
- "source": "/check/configuration/supported/ruff",
- "destination": "/code-quality/overview/linters/supported/ruff"
- },
- {
- "source": "/check/configuration/supported/sourcery",
- "destination": "/code-quality/overview/linters/supported/sourcery"
- },
- {
- "source": "/check/configuration/supported/renovate",
- "destination": "/code-quality/overview/linters/supported/renovate"
- },
- {
- "source": "/check/configuration/supported/brakeman",
- "destination": "/code-quality/overview/linters/supported/brakeman"
- },
- {
- "source": "/check/configuration/supported/rubocop",
- "destination": "/code-quality/overview/linters/supported/rubocop"
- },
- {
- "source": "/check/configuration/supported/rufo",
- "destination": "/code-quality/overview/linters/supported/rufo"
- },
- {
- "source": "/check/configuration/supported/standardrb",
- "destination": "/code-quality/overview/linters/supported/standardrb"
- },
- {
- "source": "/check/configuration/supported/clippy",
- "destination": "/code-quality/overview/linters/supported/clippy"
- },
- {
- "source": "/check/configuration/supported/rustfmt",
- "destination": "/code-quality/overview/linters/supported/rustfmt"
- },
- {
- "source": "/check/configuration/supported/scalafmt",
- "destination": "/code-quality/overview/linters/supported/scalafmt"
- },
- {
- "source": "/check/configuration/supported/dustilock",
- "destination": "/code-quality/overview/linters/supported/dustilock"
- },
- {
- "source": "/check/configuration/supported/nancy",
- "destination": "/code-quality/overview/linters/supported/nancy"
- },
- {
- "source": "/check/configuration/supported/osv-scanner",
- "destination": "/code-quality/overview/linters/supported/osv-scanner"
- },
- {
- "source": "/check/configuration/supported/tfsec",
- "destination": "/code-quality/overview/linters/supported/tfsec"
- },
- {
- "source": "/check/configuration/supported/trivy",
- "destination": "/code-quality/overview/linters/supported/trivy"
- },
- {
- "source": "/check/configuration/supported/trufflehog",
- "destination": "/code-quality/overview/linters/supported/trufflehog"
- },
- {
- "source": "/check/configuration/supported/terrascan",
- "destination": "/code-quality/overview/linters/supported/terrascan"
- },
- {
- "source": "/check/configuration/supported/sqlfluff",
- "destination": "/code-quality/overview/linters/supported/sqlfluff"
- },
- {
- "source": "/check/configuration/supported/sqlfmt",
- "destination": "/code-quality/overview/linters/supported/sqlfmt"
- },
- {
- "source": "/check/configuration/supported/sql-formatter",
- "destination": "/code-quality/overview/linters/supported/sql-formatter"
- },
- {
- "source": "/check/configuration/supported/svgo",
- "destination": "/code-quality/overview/linters/supported/svgo"
- },
- {
- "source": "/check/configuration/supported/stringslint",
- "destination": "/code-quality/overview/linters/supported/stringslint"
- },
- {
- "source": "/check/configuration/supported/swiftlint",
- "destination": "/code-quality/overview/linters/supported/swiftlint"
- },
- {
- "source": "/check/configuration/supported/swiftformat",
- "destination": "/code-quality/overview/linters/supported/swiftformat"
- },
- {
- "source": "/check/configuration/supported/terraform",
- "destination": "/code-quality/overview/linters/supported/terraform"
- },
- {
- "source": "/check/configuration/supported/tflint",
- "destination": "/code-quality/overview/linters/supported/tflint"
- },
- {
- "source": "/check/configuration/supported/terragrunt",
- "destination": "/code-quality/overview/linters/supported/terragrunt"
- },
- {
- "source": "/check/configuration/supported/txtpbfmt",
- "destination": "/code-quality/overview/linters/supported/txtpbfmt"
- },
- {
- "source": "/check/configuration/supported/taplo",
- "destination": "/code-quality/overview/linters/supported/taplo"
- },
- {
- "source": "/check/configuration/supported/yamllint",
- "destination": "/code-quality/overview/linters/supported/yamllint"
- },
- {
- "source": "/check/configuration/supported/biome",
- "destination": "/code-quality/overview/linters/supported/biome"
- },
- {
- "source": "/check/configuration/supported/markdown-table-prettify",
- "destination": "/code-quality/overview/linters/supported/markdown-table-prettify"
- },
- {
- "source": "/check/configuration/supported/psscriptanalyzer",
- "destination": "/code-quality/overview/linters/supported/psscriptanalyzer"
- },
- {
- "source": "/check/configuration/supported/cmake-format",
- "destination": "/code-quality/overview/linters/supported/cmake-format"
- },
- {
- "source": "/check/configuration/supported/dart",
- "destination": "/code-quality/overview/linters/supported/dart"
- },
- {
- "source": "/check/configuration/supported/opa",
- "destination": "/code-quality/overview/linters/supported/opa"
- },
- {
- "source": "/check/configuration/supported/phpstan",
- "destination": "/code-quality/overview/linters/supported/phpstan"
- },
- {
- "source": "/check/configuration/supported/regal",
- "destination": "/code-quality/overview/linters/supported/regal"
- },
- {
- "source": "/check/configuration/supported/tofu",
- "destination": "/code-quality/overview/linters/supported/tofu"
- },
- {
- "source": "/check/configuration/supported/vale",
- "destination": "/code-quality/overview/linters/supported/vale"
- },
- {
- "source": "/check/configuration/supported/php-cs-fixer",
- "destination": "/code-quality/overview/linters/supported/php-cs-fixer"
- },
- {
- "source": "/cli/windows-beta",
- "destination": "/code-quality/overview/cli/getting-started/compatibility"
- },
- {
- "source": "/docs",
- "destination": "/welcome"
- },
- {
- "source": "/docs/actions-config",
- "destination": "/code-quality/overview/cli/getting-started/configuration/actions"
- },
- {
- "source": "/docs/actions-git-hooks",
- "destination": "/code-quality/overview/cli/getting-started/configuration/actions"
- },
- {
- "source": "/docs/actions",
- "destination": "/code-quality/overview/cli/getting-started/configuration/actions"
- },
- {
- "source": "/docs/check-cli",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/docs/check-config",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/docs/check-custom-linters",
- "destination": "/code-quality/overview/linters/supported"
- },
- {
- "source": "/docs/check-debugging",
- "destination": "/code-quality/overview/debugging"
- },
- {
- "source": "/docs/check-get-started",
- "destination": "/code-quality/overview/setup-and-installation"
- },
- {
- "source": "/docs/check-github-integration",
- "destination": "/code-quality/overview/deal-with-existing-issues"
- },
- {
- "source": "/docs/check-supported-linters",
- "destination": "/code-quality/overview/linters/supported"
- },
- {
- "source": "/docs/check",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/docs/check/github-integration",
- "destination": "/code-quality/overview/setup-and-installation/github-integration"
- },
- {
- "source": "/docs/cli",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/docs/code-quality",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/docs/get-started",
- "destination": "/welcome"
- },
- {
- "source": "/docs/getting-started",
- "destination": "/welcome"
- },
- {
- "source": "/docs/github-app-permissions",
- "destination": "/setup-and-administration/github-app-permissions"
- },
- {
- "source": "/docs/github-codespaces",
- "destination": "/code-quality/overview/ide-integration/github-codespaces"
- },
- {
- "source": "/docs/ignoring-issues",
- "destination": "/code-quality/overview/deal-with-existing-issues"
- },
- {
- "source": "/docs/initialize-trunk-in-a-git-repo",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/docs/install",
- "destination": "/code-quality/overview/cli/getting-started/install"
- },
- {
- "source": "/docs/merge-get-started",
- "destination": "/merge-queue/getting-started"
- },
- {
- "source": "/docs/merge-getting-started",
- "destination": "/merge-queue/getting-started"
- },
- {
- "source": "/docs/merge",
- "destination": "/merge-queue/merge-queue"
- },
- {
- "source": "/docs/overview",
- "destination": "/welcome"
- },
- {
- "source": "/docs/plugins",
- "destination": "/code-quality/overview/linters"
- },
- {
- "source": "/docs/reference-trunk-yaml",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/docs/shell-hooks",
- "destination": "/code-quality/overview/cli/getting-started/configuration/tools"
- },
- {
- "source": "/docs/tools",
- "destination": "/code-quality/overview/cli/getting-started/configuration/tools"
- },
- {
- "source": "/docs/trunk-app-for-slack",
- "destination": "/merge-queue/integration-for-slack"
- },
- {
- "source": "/docs/vscode",
- "destination": "/code-quality/overview/ide-integration/vscode"
- },
- {
- "source": "/docs/what-is-trunk",
- "destination": "/welcome"
- },
- {
- "source": "/docs/windows-beta",
- "destination": "/code-quality/overview/cli/getting-started/compatibility"
- },
- {
- "source": "/flaky-tests/generating-junit-reports",
- "destination": "/flaky-tests/get-started/frameworks"
- },
- {
- "source": "/get-started",
- "destination": "/welcome"
- },
- {
- "source": "/merge-graph",
- "destination": "/merge-queue/merge-queue"
- },
- {
- "source": "/merge-graph/configuration",
- "destination": "/merge-queue/merge-queue"
- },
- {
- "source": "/merge-graph/set-up-trunk-merge",
- "destination": "/merge-queue/merge-queue"
- },
- {
- "source": "/merge/getting-started",
- "destination": "/merge-queue/getting-started"
- },
- {
- "source": "/reference/reference-trunk-yaml",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/reference/trunk-yaml",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/test-analytics",
- "destination": "/flaky-tests/overview"
- },
- {
- "source": "/test-analytics/ci-providers",
- "destination": "/flaky-tests/get-started/ci-providers"
- },
- {
- "source": "/test-analytics/ci-providers/buildkite-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/buildkite"
- },
- {
- "source": "/test-analytics/ci-providers/circleci-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/circleci"
- },
- {
- "source": "/test-analytics/ci-providers/github-actions-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/github-actions"
- },
- {
- "source": "/test-analytics/ci-providers/gitlab",
- "destination": "/flaky-tests/get-started/ci-providers/gitlab"
- },
- {
- "source": "/test-analytics/ci-providers/other-ci-providers-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/otherci"
- },
- {
- "source": "/test-analytics/ci-providers/semaphore-ci-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/semaphoreci"
- },
- {
- "source": "/test-analytics/frameworks",
- "destination": "/flaky-tests/get-started/frameworks"
- },
- {
- "source": "/test-analytics/frameworks/android",
- "destination": "/flaky-tests/get-started/frameworks/android"
- },
- {
- "source": "/test-analytics/frameworks/cargo-nextest",
- "destination": "/flaky-tests/get-started/frameworks/rust"
- },
- {
- "source": "/test-analytics/frameworks/cypress",
- "destination": "/flaky-tests/get-started/frameworks/cypress"
- },
- {
- "source": "/test-analytics/frameworks/jasmine",
- "destination": "/flaky-tests/get-started/frameworks/jasmine"
- },
- {
- "source": "/test-analytics/frameworks/jest",
- "destination": "/flaky-tests/get-started/frameworks/jest"
- },
- {
- "source": "/test-analytics/frameworks/minitest",
- "destination": "/flaky-tests/get-started/frameworks/minitest"
- },
- {
- "source": "/test-analytics/frameworks/mocha",
- "destination": "/flaky-tests/get-started/frameworks/mocha"
- },
- {
- "source": "/test-analytics/frameworks/playwright",
- "destination": "/flaky-tests/get-started/frameworks/playwright"
- },
- {
- "source": "/test-analytics/frameworks/pytest",
- "destination": "/flaky-tests/get-started/frameworks/pytest"
- },
- {
- "source": "/test-analytics/frameworks/rspec",
- "destination": "/flaky-tests/get-started/frameworks"
- },
- {
- "source": "/test-analytics/frameworks/swift-testing",
- "destination": "/flaky-tests/get-started/frameworks/swift-testing"
- },
- {
- "source": "/test-analytics/frameworks/xctest",
- "destination": "/flaky-tests/get-started/frameworks/xctest"
- },
- {
- "source": "/test-analytics/github-pull-request-comments",
- "destination": "/flaky-tests/management/github-pull-request-comments"
- },
- {
- "source": "/runtimes",
- "destination": "/code-quality/overview/cli/getting-started/configuration/runtimes"
- },
- {
- "source": "/plugins",
- "destination": "/code-quality/overview/linters"
- },
- {
- "source": "/ci/get-started/github-integration",
- "destination": "/code-quality/overview/setup-and-installation/github-integration"
- },
- {
- "source": "/code-quality/usage",
- "destination": "/code-quality/overview/initialize-trunk"
- },
- {
- "source": "/code-quality/ci/get-started",
- "destination": "/code-quality/overview/setup-and-installation"
- },
- {
- "source": "/code-quality/ci/get-started/github-integration",
- "destination": "/code-quality/overview/setup-and-installation/github-integration"
- },
- {
- "source": "/code-quality/configuration/debugging",
- "destination": "/code-quality/overview/debugging"
- },
- {
- "source": "/check/check-cloud-ci-integration/get-started/github-integration",
- "destination": "/code-quality/overview/setup-and-installation/github-integration"
- },
- {
- "source": "/tools",
- "destination": "/code-quality/overview/cli/getting-started/configuration/tools"
- },
- {
- "source": "/flaky-tests/ci-providers/buildkite-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/buildkite"
- },
- {
- "source": "/flaky-tests/ci-providers/circleci-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/circleci"
- },
- {
- "source": "/flaky-tests/ci-providers/droneci",
- "destination": "/flaky-tests/get-started/ci-providers/droneci"
- },
- {
- "source": "/flaky-tests/ci-providers/github-actions-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/github-actions"
- },
- {
- "source": "/flaky-tests/ci-providers/gitlab",
- "destination": "/flaky-tests/get-started/ci-providers/gitlab"
- },
- {
- "source": "/flaky-tests/ci-providers/other-ci-providers-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/otherci"
- },
- {
- "source": "/flaky-tests/ci-providers/semaphore-ci-quickstart",
- "destination": "/flaky-tests/get-started/ci-providers/semaphoreci"
- },
- {
- "source": "/flaky-tests/ci-providers/travisci",
- "destination": "/flaky-tests/get-started/ci-providers/travisci"
- },
- {
- "source": "/flaky-tests/frameworks/android",
- "destination": "/flaky-tests/get-started/frameworks/android"
- },
- {
- "source": "/flaky-tests/frameworks/bazel",
- "destination": "/flaky-tests/get-started/frameworks/bazel"
- },
- {
- "source": "/flaky-tests/frameworks/cargo-nextest",
- "destination": "/flaky-tests/get-started/frameworks/rust"
- },
- {
- "source": "/flaky-tests/frameworks/cypress",
- "destination": "/flaky-tests/get-started/frameworks/cypress"
- },
- {
- "source": "/flaky-tests/frameworks/go-junit-report",
- "destination": "/flaky-tests/get-started/frameworks/gotestsum"
- },
- {
- "source": "/flaky-tests/frameworks/gotestsum",
- "destination": "/flaky-tests/get-started/frameworks/gotestsum"
- },
- {
- "source": "/flaky-tests/frameworks/jasmine",
- "destination": "/flaky-tests/get-started/frameworks/jasmine"
- },
- {
- "source": "/flaky-tests/frameworks/jest",
- "destination": "/flaky-tests/get-started/frameworks/jest"
- },
- {
- "source": "/flaky-tests/frameworks/karma",
- "destination": "/flaky-tests/get-started/frameworks/karma"
- },
- {
- "source": "/flaky-tests/frameworks/maven",
- "destination": "/flaky-tests/get-started/frameworks/maven"
- },
- {
- "source": "/flaky-tests/frameworks/minitest",
- "destination": "/flaky-tests/get-started/frameworks/minitest"
- },
- {
- "source": "/flaky-tests/frameworks/mocha",
- "destination": "/flaky-tests/get-started/frameworks/mocha"
- },
- {
- "source": "/flaky-tests/frameworks/phpunit",
- "destination": "/flaky-tests/get-started/frameworks/phpunit"
- },
- {
- "source": "/flaky-tests/frameworks/playwright",
- "destination": "/flaky-tests/get-started/frameworks/playwright"
- },
- {
- "source": "/flaky-tests/frameworks/pytest",
- "destination": "/flaky-tests/get-started/frameworks/pytest"
- },
- {
- "source": "/flaky-tests/frameworks/rspec",
- "destination": "/flaky-tests/get-started/frameworks"
- },
- {
- "source": "/flaky-tests/frameworks/swift-testing",
- "destination": "/flaky-tests/get-started/frameworks/swift-testing"
- },
- {
- "source": "/flaky-tests/frameworks/vitest",
- "destination": "/flaky-tests/get-started/frameworks/vitest"
- },
- {
- "source": "/flaky-tests/frameworks/xctest",
- "destination": "/flaky-tests/get-started/frameworks/xctest"
- },
- {
- "source": "/administration",
- "destination": "/setup-and-administration/managing-your-organization"
- },
- {
- "source": "/apis/api",
- "destination": "/setup-and-administration/apis"
- },
- {
- "source": "/apis",
- "destination": "/setup-and-administration/apis"
- },
- {
- "source": "/cli/configuration",
- "destination": "/code-quality/overview/cli/getting-started/configuration"
- },
- {
- "source": "/cli/configuration/actions",
- "destination": "/code-quality/overview/cli/getting-started/configuration/actions"
- },
- {
- "source": "/cli/configuration/lint",
- "destination": "/code-quality/overview/cli/getting-started/configuration/lint"
- },
- {
- "source": "/cli/configuration/plugins",
- "destination": "/code-quality/overview/cli/getting-started/configuration/plugins"
- },
- {
- "source": "/cli/commands-reference",
- "destination": "/code-quality/overview/cli/getting-started/commands-reference"
- },
- {
- "source": "/cli/getting-started/actions",
- "destination": "/code-quality/overview/cli/getting-started/actions"
- },
- {
- "source": "/cli/getting-started",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/cli",
- "destination": "/code-quality/overview/cli/getting-started"
- },
- {
- "source": "/merge-queue/parallel-queues",
- "destination": "/merge-queue/optimizations/parallel-queues"
- },
- {
- "source": "/code-quality/linters/supported/sqlfluff",
- "destination": "/code-quality/overview/linters/supported/sqlfluff"
- },
- {
- "source": "/code-quality/linters/supported/sourcery",
- "destination": "/code-quality/overview/linters/supported/sourcery"
- },
- {
- "source": "/administration/github-app-permissions",
- "destination": "/setup-and-administration/github-app-permissions"
- },
- {
- "source": "/administration/billing",
- "destination": "/setup-and-administration/billing"
- },
- {
- "source": "/apis/flaky-tests",
- "destination": "/setup-and-administration/apis"
- },
- {
- "source": "/cli/configuration/lint/dependencies",
- "destination": "/code-quality/overview/cli/getting-started/configuration/lint/dependencies"
- },
- {
- "source": "/cli/configuration/lint/output-parsing",
- "destination": "/code-quality/overview/cli/getting-started/configuration/lint/output-parsing"
- },
- {
- "source": "/cli/configuration/lint/commands",
- "destination": "/code-quality/overview/cli/getting-started/configuration/lint/commands"
- },
- {
- "source": "/cli/configuration/tools",
- "destination": "/code-quality/overview/cli/getting-started/configuration/tools"
- },
- {
- "source": "/cli/configuration/plugins/exported-configs",
- "destination": "/code-quality/overview/cli/getting-started/configuration/plugins/exported-configs"
- },
- {
- "source": "/cli/getting-started/actions/git-hooks",
- "destination": "/code-quality/overview/cli/getting-started/actions/git-hooks"
- },
- {
- "source": "/cli/install",
- "destination": "/code-quality/overview/cli/getting-started/install"
- },
- {
- "source": "/merge-queue/command-line",
- "destination": "/merge-queue/reference/merge-queue-cli-reference"
- },
- {
- "source": "/merge-queue/optimistic-merging",
- "destination": "/merge-queue/optimizations/optimistic-merging"
- },
- {
- "source": "/merge-queue",
- "destination": "/merge-queue/merge-queue"
- },
- {
- "source": "/code-quality/overview",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/code-quality",
- "destination": "/code-quality/overview"
- },
- {
- "source": "/flaky-tests",
- "destination": "/flaky-tests/overview"
- },
- {
- "source": "/flaky-tests/use-mcp-server/mcp-tool-reference",
- "destination": "/flaky-tests/reference/mcp-reference"
- },
- {
- "source": "/flaky-tests/autofix-ci-failures",
- "destination": "/flaky-tests/agents/autofix-ci-failures"
- },
- {
- "source": "/flaky-tests/autofix-flaky-tests",
- "destination": "/flaky-tests/agents/autofix-flaky-tests"
- },
- {
- "source": "/flaky-tests/infrastructure-failure-protection",
- "destination": "/flaky-tests/detection/infrastructure-failure-protection"
- },
- {
- "source": "/flaky-tests/managing-detected-flaky-tests",
- "destination": "/flaky-tests/management/managing-detected-flaky-tests"
- },
- {
- "source": "/flaky-tests/quarantine-service-availability",
- "destination": "/flaky-tests/quarantining/quarantine-service-availability"
- },
- {
- "source": "/flaky-tests/quarantining",
- "destination": "/flaky-tests/quarantining"
- },
- {
- "source": "/flaky-tests/test-collections",
- "destination": "/flaky-tests/get-started/test-collections"
- },
- {
- "source": "/flaky-tests/test-labels",
- "destination": "/flaky-tests/management/test-labels"
- },
- {
- "source": "/flaky-tests/the-importance-of-pr-test-results",
- "destination": "/flaky-tests/detection/the-importance-of-pr-test-results"
- },
- {
- "source": "/flaky-tests/ticketing-integrations",
- "destination": "/flaky-tests/management/ticketing"
- },
- {
- "source": "/flaky-tests/uploader",
- "destination": "/flaky-tests/reference/cli-reference"
- },
- {
- "source": "/flaky-tests/ticketing-integrations/jira-integration",
- "destination": "/flaky-tests/management/ticketing/jira-integration"
- },
- {
- "source": "/flaky-tests/ticketing-integrations/linear-integration",
- "destination": "/flaky-tests/management/ticketing/linear-integration"
- },
- {
- "source": "/flaky-tests/use-mcp-server",
- "destination": "/flaky-tests/reference/mcp-reference"
- },
- {
- "source": "/flaky-tests/use-mcp-server/investigate-ci-failures",
- "destination": "/flaky-tests/reference/mcp-reference/investigate-ci-failure"
- },
- {
- "source": "/merge-queue/set-up-trunk-merge",
- "destination": "/merge-queue/getting-started"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations",
- "destination": "/merge-queue/optimizations"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/parallel-queues",
- "destination": "/merge-queue/optimizations/parallel-queues"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/optimistic-merging",
- "destination": "/merge-queue/optimizations/optimistic-merging"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/batch-merging",
- "destination": "/merge-queue/optimizations/batching"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/batching",
- "destination": "/merge-queue/optimizations/batching"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/pending-failure-depth",
- "destination": "/merge-queue/optimizations/pending-failure-depth"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/predictive-testing",
- "destination": "/merge-queue/optimizations/predictive-testing"
- },
- {
- "source": "/merge-queue/concepts/parallel-queues",
- "destination": "/merge-queue/optimizations/parallel-queues"
- },
- {
- "source": "/merge-queue/concepts/optimistic-merging",
- "destination": "/merge-queue/optimizations/optimistic-merging"
- },
- {
- "source": "/merge-queue/concepts/batch-merging",
- "destination": "/merge-queue/optimizations/batching"
- },
- {
- "source": "/merge-queue/concepts/pending-failure-depth",
- "destination": "/merge-queue/optimizations/pending-failure-depth"
- },
- {
- "source": "/merge-queue/concepts/predictive-testing",
- "destination": "/merge-queue/optimizations/predictive-testing"
- },
- {
- "source": "/merge-queue/managing-merge-queue/advanced-settings",
- "destination": "/merge-queue/optimizations"
- },
- {
- "source": "/merge-queue/managing-merge-queue/reference",
- "destination": "/merge-queue/using-the-queue/reference"
- },
- {
- "source": "/merge-queue/set-up-trunk-merge/branch-protection-and-required-status-checks",
- "destination": "/merge-queue/getting-started/configure-branch-protection"
- },
- {
- "source": "/merge-queue/set-up-trunk-merge/integration-for-slack",
- "destination": "/merge-queue/integration-for-slack"
- },
- {
- "source": "/merge-queue/managing-merge-queue/metrics",
- "destination": "/merge-queue/administration/metrics"
- },
- {
- "source": "/merge-queue/webhooks",
- "destination": "/merge-queue/webhooks"
- },
- {
- "source": "/merge-queue/concepts-and-optimizations/pr-prioritization",
- "destination": "/merge-queue/optimizations/priority-merging"
- },
- {
- "source": "/merge-queue/managing-merge-queue",
- "destination": "/merge-queue/using-the-queue/reference"
- },
- {
- "source": "/merge-queue/managing-merge-queue/using-the-webapp",
- "destination": "/merge-queue/using-the-queue/reference"
- },
- {
- "source": "/merge-queue/references/apis/merge",
- "destination": "/merge-queue/reference/merge"
- }
- ]
-}
\ No newline at end of file
+ }
+}
diff --git a/favicon.svg b/favicon.svg
index d521b54..d50ceed 100644
--- a/favicon.svg
+++ b/favicon.svg
@@ -1,13 +1,5 @@
-