Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/acdeveloper-sci/fortriage/llms.txt

Use this file to discover all available pages before exploring further.

ForTriage ships with a built-in sample fixtures corpus — 26 units across 8 files — so you can explore the full dashboard experience without having a Fortran project ready. This quickstart walks you through running the app locally, loading the sample data, and navigating all five views. The only prerequisites are Python 3.10+ and the uv package manager.
Prefer not to install anything? The live demo at fortriage.streamlit.app requires no local setup — open it in your browser and click Load sample fixtures to get started immediately.

Steps

1

Clone the repository

Clone the ForTriage repository from GitHub and change into the project directory:
git clone https://github.com/acdeveloper-sci/fortriage.git && cd fortriage
2

Install dependencies with uv

Use uv sync to install all project dependencies, including forti4d from its GitHub source:
uv sync
uv resolves and installs everything defined in pyproject.toml into an isolated virtual environment — no manual pip install or virtualenv setup required.
3

Run the app

Launch the Streamlit dashboard:
uv run streamlit run streamlit_app.py
The app opens automatically at http://localhost:8501. The sidebar shows the ForTriage navigation panel with the Overview view loaded by default.
4

Load the sample fixtures

On the Overview landing page, click Load sample fixtures. This loads the committed sample corpus — 26 Fortran units across 8 files — directly into the upload buffer without requiring you to supply any source files of your own.
5

Run analysis

Click Run analysis. ForTriage invokes the Forti4D static analysis pipeline on the staged corpus. After a few seconds, the dashboard populates with the full prioritization results.
6

Explore the Overview

The Overview view displays:
  • Tier summary cards — unit counts broken down by risk level (CRITICAL, HIGH, MEDIUM, LOW, DEAD_CODE)
  • Distribution chart — a visual breakdown of how units are spread across the five risk tiers
  • Sortable prioritization table — every analyzed unit ranked by its composite risk score, with columns for file name, tier, cyclomatic complexity, fan-in, reachability status, and score
Use the column headers to sort, or apply filters to focus on a specific tier or file.
7

Open a unit drill-down

Click any row in the prioritization table to open the Drill-down modal for that unit. The modal surfaces:
  • Complexity metrics and prioritization score breakdown
  • Clone detection results (whether the unit has near-duplicate counterparts)
  • Reachability status (REACHABLE, UNREACHABLE, or ENTRY_POINT)
Use this view to understand exactly why a unit received its assigned risk tier.
8

Try AI Insights (optional)

Navigate to the AI Insights tab in the sidebar. If you have a Gemini API key configured, ForTriage will generate a structured summary of key risks and recommended actions grounded in your analysis results — and open a conversational chat so you can ask follow-up questions.
AI Insights requires a Gemini API key. This step is entirely optional — the Overview, Drill-down, Executive Summary, and Report Explorer views work fully without it. See AI Insights setup for configuration instructions.

What to expect from the sample corpus

The sample fixtures corpus produces real output — not a mockup. Here is the actual ForTriage analysis summary for the 26-unit, 8-file sample:
Units analyzed: 26      Dead code units: 17
Legacy code (avg): 1.9%      Critical risk units: 0

Key Risks

• 17 units are flagged as unreachable, though this count should be
  verified against external entry points or standalone utility
  scripts before removal.
• The SHARED_DAT COMMON block creates medium coupling across 2
  units and 2 files, risking silent memory layout issues if
  modified independently.
• 6 clone pairs exist within the codebase, introducing maintenance
  overhead if duplicate logic diverges further.

Recommended Actions

1. Verify and purge confirmed unreachable units to clean up the
   analysis surface.
2. Extract the SHARED_DAT COMMON block variables into modern
   Fortran modules to eliminate implicit coupling.
3. Consolidate the duplicated code segments identified in the
   clone analysis into shared subroutines.
This is the kind of prioritized, actionable output ForTriage produces for any Fortran corpus you point it at.

Build docs developers (and LLMs) love