Stacks

Automate GitHub Issue and Pull Request Triage in F# with Atlas in 2026

Updated 8 min read

In 2026, F# developers can automate GitHub issue and pull request triage using Atlas, the terminal-native AI coding agent, by wiring the `atlas github` command into a GitHub workflow. This setup ensures Atlas respects your `.fsproj` file order, understands F# discriminated unions, and can safely run `dotnet test (Expecto)` and `fantomas` only for trusted users.

How Atlas Automates F# GitHub Triage Safely

In 2026, Atlas automates GitHub issue and pull request triage for F# projects by integrating directly into a GitHub workflow, ensuring safety and trust. The `atlas github` command requires specific inputs like a `MODEL` in `provider/model` form and a `PROMPT` for event types, refusing to run if these are incorrect or missing.

Atlas provides a first-class GitHub entrypoint designed for operational tasks like triage. When configured in a GitHub Actions workflow, it explicitly checks that the triggering actor possesses `admin` or `write` collaborator permissions before executing any actions. This permission gating is a core safety feature, preventing unauthorized runs. Furthermore, Atlas enforces that comments must mention a configured trigger, ensuring that a stray comment cannot inadvertently start a run. For F# codebases, Atlas respects the file order defined in your `.fsproj` file, which is crucial for F# compilation, and can map F# constructs like discriminated unions and modules. This deep understanding allows Atlas to generate contextually relevant responses and code suggestions for F# issues.

Wiring Atlas into Your F# Project's GitHub Workflow

Integrating Atlas into an F# project's GitHub workflow involves a few concrete steps to ensure proper setup and secure operation by 2026. The primary command, `atlas github`, must be wired into your workflow, and it strictly validates its inputs, rejecting any run where the `MODEL` or `PROMPT` are malformed or absent.

To enable Atlas for GitHub triage in an F# repository, you'll create a `.github/workflows/triage.yml` file. Within this workflow, you'll invoke the `atlas github` command, providing the necessary `MODEL` and `PROMPT` inputs. For instance, a `MODEL` might be `ollama/llama3`, and a `PROMPT` could be "Summarize this F# issue and suggest a label." Atlas is designed to fail early if these inputs are incorrect, explicitly throwing errors like "PROMPT input is required for <event> events." This upfront validation prevents wasted compute cycles and ensures the agent operates within defined parameters. Atlas also handles context overflow gracefully; if the event context is too large, it catches `ContextOverflowError` and re-throws it as a prompt-too-large message, listing the offending F# files or other context elements. This explicit error handling helps F# developers diagnose and resolve issues related to overly verbose GitHub events.

F# Toolchain Integration and Code Review with Atlas

Atlas deeply integrates with the F# toolchain, allowing it to perform actions like running `dotnet test (Expecto)` and formatting with `fantomas` within a secure, review-gated process by 2026. Every Atlas tool call is permission-gated, and all proposed changes are presented as a unified diff for explicit approval.

When Atlas suggests changes or responses for an F# issue or pull request, it can leverage its internal tools, including `bash`, `read`, `grep`, and `edit`, to interact with your F# codebase. For example, if Atlas proposes a code fix, it can be instructed to run `dotnet test` with the `Expecto` test runner to verify the change. Before any file modifications are written, Atlas computes a unified diff for every edited F# file and surfaces it for approval. This allows F# developers to review exactly what Atlas intends to change, such as adding `Expecto` tests to a test project or replacing a null check with an F# `Option` pipeline. After code changes, Atlas can automatically run `fantomas` over the changed `.fs` files, ensuring adherence to F# coding standards. All these operations are subject to Atlas's permission-gated execution, where a read-only plan agent drafts a plan and asks for permission before switching to a build agent to execute F#-specific tasks.

Ensuring Trusted User Access and Context Management for F#

Atlas ensures that only trusted users can trigger its F# triage workflows, explicitly checking collaborator permissions and requiring a mention in comments by 2026. This robust security model prevents unauthorized AI actions and maintains control over your F# repository.

A critical safety feature for F# projects using Atlas for GitHub triage is its strict access control. Atlas verifies that the triggering actor has `admin` or `write` permissions on the repository. If the actor lacks these permissions, Atlas refuses to run, preventing any potential misuse. Additionally, to avoid accidental invocations, the `atlas github` handler enforces that comments must explicitly mention the configured trigger (e.g., `@atlas triage`). This prevents a casual comment from initiating an AI workflow. For F# code, Atlas builds its code index using AST declarations via Tree-sitter, not blind line windows, which allows it to understand F# syntax, including discriminated unions and computation expressions. This precise indexing, combined with local Ollama embeddings, keeps your F# code off third-party servers, enhancing privacy and security for your F# projects.

Step by step

  1. 01Configure GitHub Workflow for F# Triage: Create a `.github/workflows/triage.yml` file in your F# repository. This workflow will define the trigger events (e.g., `issues`, `pull_request_target`) and the job that runs Atlas.
  2. 02Wire `atlas github` Command: Within the `triage.yml` workflow, add a step to invoke the `atlas github` command. Ensure you provide the `MODEL` input in `provider/model` form (e.g., `ollama/llama3`) and the `PROMPT` input for relevant event types, such as "Summarize this F# issue and suggest a label."
  3. 03Set Permissions and Trigger Rules: Configure the workflow to run only for trusted users by leveraging Atlas's built-in permission checks. Atlas will verify the triggering actor has `admin` or `write` permissions. Additionally, enforce a mention requirement (e.g., `@atlas triage`) in comments to initiate a run, preventing accidental F# triage actions.
  4. 04Enable F# Code Understanding: Ensure Atlas is running in a solution with an `.fsproj` file. Atlas reads this project file to understand F# file order, which is essential for correct F# compilation and for Atlas to accurately map F# discriminated unions, modules, and any Giraffe or Fable entry points.
  5. 05Review and Approve F# Changes: When Atlas proposes changes, such as adding `Expecto` tests to your F# test project or refactoring an F# `Option` pipeline, it will present a unified diff. Review this diff carefully before approving Atlas to write the changes to your `.fs` files.
  6. 06Automate F# Testing and Formatting: After Atlas makes F# code edits, allow it to run `dotnet test` using the `Expecto` test runner to validate the changes. Subsequently, instruct Atlas to run `fantomas` over the modified `.fs` files to maintain consistent F# code style.

Frequently asked questions

How does Atlas ensure F# code quality when automating GitHub responses?
Atlas ensures F# code quality by integrating with your existing F# toolchain. It can run `dotnet test` with the `Expecto` test runner to validate proposed changes and then apply `fantomas` to format any modified `.fs` files, all behind explicit permission prompts and diff reviews.
Can Atlas understand F# specific constructs like discriminated unions or computation expressions?
Yes, Atlas indexes F# code by AST declarations using Tree-sitter, allowing it to understand F# specific constructs such as discriminated unions, modules, and computation expressions. It also reads your `.fsproj` file to respect F# file order.
What prevents an unauthorized user from triggering Atlas on my F# repository?
Atlas implements robust security checks. It verifies that the triggering actor has `admin` or `write` collaborator permissions on the F# repository and enforces that comments must explicitly mention a configured trigger (e.g., `@atlas triage`) before any action is taken.
How does Atlas handle large F# issue contexts that might exceed model token limits?
Atlas explicitly handles context overflow. If the GitHub event context is too large, it catches a `ContextOverflowError` and re-throws it as a prompt-too-large message, listing the specific F# files or other context elements that caused the overflow.
Does Atlas send my F# code to third-party servers for indexing or embeddings?
No, Atlas can build its code index with local Ollama embeddings, keeping your F# code off third-party servers. It indexes code by AST declarations using Tree-sitter, ensuring privacy and security for your F# projects.
How do I review changes Atlas proposes for my F# codebase before they are committed?
Atlas computes a unified diff for every F# file edit it proposes and surfaces it for your approval. This allows you to review and confirm all changes, such as new `Expecto` tests or F# `Option` pipeline refactorings, before they are written to your `.fs` files.
Can Atlas help me add `Expecto` tests to my F# test project?
Yes, you can ask Atlas to add `Expecto` tests to your F# test project. Atlas understands your F# codebase and can draft a plan, then, with your permission, execute `edit` commands and run `dotnet test (Expecto)` to verify the new tests.

Try Atlas in your terminal

The terminal-native AI coding agent. Free core, single binary.

Install Atlas

Related guides

Automate GitHub Issue and Pull Request Triage with Atlas (2026 Workflow)

How to automate GitHub issue and pull request triage with Atlas in 2026: the atlas github command checks the actor has admin or write permission before it does anything.

Atlas for F#: A Terminal-Native AI Coding Agent for .fsproj Solutions in 2026

Atlas is a terminal-native AI coding agent for F# in 2026. It respects .fsproj file order, maps discriminated unions, runs dotnet test behind a prompt, and runs Fantomas.

Review a Pull Request in F# with Atlas in 2026

In 2026, F# developers use Atlas to review pull requests, leveraging its deep understanding of .fsproj files, discriminated unions, and dotnet test (Expecto) to catch subtle bugs.

Trace a runtime bug from a stack trace in F# with Atlas in 2026

In 2026, F# developers can use Atlas to trace runtime bugs from production stack traces directly to the responsible line of code and apply a fix, all without attaching a debugger. Atlas integrates with your F#

Self-review your working diff before committing in F# with Atlas in 2026

Catch F# coding mistakes before CI. Atlas helps F# developers in 2026 self-review uncommitted diffs, run `dotnet test (Expecto)`, and apply `fantomas` formatting, all from your terminal.

Audit an F# Repository with Parallel Subagents in Atlas in 2026

Audit F# repositories in 2026 with Atlas's parallel subagents. Sweep code for problems using `dotnet test (Expecto)` and `fantomas` without blowing your main session's context window.

Document a module with a README in F# with Atlas in 2026

Generate accurate, up-to-date READMEs for your F# modules using Atlas in 2026. Atlas leverages your .fsproj and real code to document public APIs, ensuring documentation reflects current implementation, not outdated

Run Atlas Headless in CI for F# Projects in 2026

F# developers in 2026 can run Atlas headless in CI pipelines to automate code tasks. Get machine-readable output, integrate with dotnet test (Expecto), NuGet, and fantomas for robust F# development.

Browse this resource hub