TheAngryByrd/MiniScaffold
62.3
Weak · 24 September 2026
2.9k
lines of production code
F#
primary language
5
measurements over time
What this system is
This system is a F\# project scaffolding and build infrastructure that provides standardized templates for console applications, libraries, and tests. It manages the build process using MSBuild and .NET SDK, replacing legacy FAKE scripts with modern targets for tooling, documentation, and versioning. The system also includes automated changelog generation and a comprehensive test suite to validate template generation and build targets.
How it got here
2017–2018 — Build system and infrastructure modernization
9 changes.
This period focused on modernizing the project's build infrastructure by migrating from FAKE scripts to MSBuild targets and replacing Paket with NuGet Central Package Management. Concurrently, the codebase was restructured to standardize configuration across Console and Library templates, while introducing new MyLib.1 components and their associated test suites.
2019–2023 — Build system and documentation overhaul
10 changes.
This period focused on modernizing the project's infrastructure, specifically migrating the build system from FAKE to MSBuild and upgrading to .NET 8.0. Concurrently, the team significantly expanded the documentation site with a new template, theme support, and automated changelog generation, while also introducing comprehensive test suites and F\# project templates.
Features
Add console application with CLI argument parsing and metadata display
A new console application (MyLib.1) is introduced, providing command-line interface support for displaying version and release information, as well as a 'hello' command that accepts a name and an optional favorite color for output formatting. The application uses the Argu library for argument parsing and reads assembly metadata (release date, Git hash, version) for the info command. The configuration file has been moved from the project root to the application directory.
Content/Console/src/MyLib.1 · high confidence
Added F\# project templates for console and library projects
New F\# project templates have been added to the content library. This includes a basic console application template (Program.fs) that prints a greeting, and a library template (Library.fs) that provides sample types, including a Person record, a FavoriteColor enum, and utility functions like helloPerson and add.
Content/ProjConsole, Content/ProjLib · high confidence
Added dark and light theme support for documentation
The documentation now supports switching between light and dark visual themes. This is enabled by new CSS files (\fsdocs-light.css\, \fsdocs-dark.css\) that define color variables and styling for each mode, along with a \theme-toggle.js\ script that manages the user's preference and persists it in local storage. The \fsdocs-main.css\ and \navbar-fixed-left.css\ files provide the base layout and sidebar styling, while \fsdocs-custom.css\ handles specific icon adjustments.
Content/Library/docsSrc/content, docsSrc/content · high confidence
Added new project-specific test templates
Introduced new project-specific templates for unit testing using the Expecto framework. The changes include a Main.fs file that configures the test runner to execute tests within the assembly, and a Tests.fs file that defines a sample test case verifying integer addition, providing a starting point for writing unit tests in the project.
Content/ProjTest · medium confidence
Automated CHANGELOG generation from RELEASE\_NOTES
A new F\# script (tools/releaseToChangelog.fsx) has been added to automatically convert RELEASE\_NOTES.md into a structured CHANGELOG.md. This tool parses release notes, maps categories (e.g., 'FEATURE:' to 'added'), and generates a changelog following the Keep a Changelog format with semantic versioning links.
tools · medium confidence
Introduce automated changelog and documentation build scripts
The build process now includes new F\# scripts (Changelog.fs, FsDocs.fs, build.fs) that automate the generation of release notes from a CHANGELOG.md file, manage versioning, and configure the FsDocs documentation tool. This change adds the capability to automatically update release notes with GitHub links and generate API documentation, replacing the previous manual or script-less approach.
Content/Library/build · high confidence
Introduces MyLib.1 library with core types and utility functions
A new library file, Library.fs, is added to MyLib.1, defining the MyLib.\_1 namespace. It introduces a FavoriteColor union type with Red, Yellow, and Blue cases, and a Person record type containing name, favorite number, color, and date of birth. The module provides a helloPerson function that formats a greeting using these fields, and an add function for integer addition with comprehensive XML documentation including parameters, remarks, and exception details.
Content/Library/src/MyLib.1 · high confidence
New documentation site template and index page
The documentation source now includes a new HTML template structure (\_template.html, \_menu-item\_template.html, \_menu\_template.html) and an index page (index.md) for MiniScaffold. The template introduces a Bootstrap 5-based layout with a responsive navbar, search box, theme toggle (light/dark/auto), and structured navigation for project references and external links. The index page provides an overview of MiniScaffold's features, installation instructions, and links to tutorials, how-to guides, explanations, and reference materials.
docsSrc · high confidence
Redesigned docs landing page with card-based navigation
The documentation site now features a new landing page layout that organizes content into four distinct cards: Tutorials, How-To Guides, Explanations, and an API Reference. Each card includes a title, description, and a right-aligned 'Get started' or 'Read' button. The underlying HTML templates (\_menu-item\_template.html, \_menu\_template.html, \_template.html) have been updated to support this structure, including a new dropdown menu system and a theme toggle in the navbar.
Content/Library/docsSrc · high confidence
Standardized project configuration and build infrastructure for the Console template
The Console template now includes a standardized set of configuration files to improve cross-platform consistency and developer experience. An .editorconfig enforces consistent formatting (4-space indentation, LF line endings) for source, project, and script files. A .gitattributes file ensures correct line endings (LF for code/config, CRLF for Windows scripts) and configures Git LFS for binary assets. A .gitignore file excludes common build artifacts and IDE files. Build infrastructure is standardized via Directory.Build.props and Directory.Build.targets, which integrate dotnet tool restoration (including Fantomas for F\# formatting) and dotnet watch support. Additionally, the solution uses the modern .slnx format, and global.json is configured to use .NET SDK 10.0 with feature roll-forward.
Content/Console · high confidence
Standardizes repository configuration and build infrastructure for the Library
The Library now includes a comprehensive set of repository configuration files to improve consistency and developer experience. An .editorconfig file enforces consistent code formatting and indentation rules across all file types, including specific settings for F\# and XML project files. A .gitattributes file is added to standardize line endings (LF for source and config files, CRLF for Windows scripts) and configure Git LFS for binary assets. Additionally, a .gitignore file is introduced to exclude common build artifacts, user-specific files, and IDE caches. The project also adopts Directory.Build.props and Directory.Build.targets to centralize MSBuild properties, package metadata, and build targets, while a .fantomasignore file ensures consistent F\# code formatting via the Fantomas tool.
Content/Library · high confidence
Behavioural changes
Build system refactored to .NET 8.0 and Fake 6.1.3
The build infrastructure has been upgraded to target .NET 8.0 and migrate to Fake version 6.1.3, introducing new build scripts (Changelog.fs, FsDocs.fs, build.fs) and a packages.lock.json file. This update modernizes the build tooling, ensuring compatibility with the latest .NET runtime and the latest Fake library features.
build · high confidence
Migrate build system from FAKE script to MSBuild targets
The project's build system has been refactored to replace the legacy FAKE (F\# Make) script with modern MSBuild targets. The old \build.fsx\ script, which handled restore, build, test, and pack steps, has been removed. In its place, \Directory.Build.props\ and \Directory.Build.targets\ now define build targets for tool restoration, code formatting (Fantomas), and watch support. The \build.sh\ and \build.cmd\ scripts have been simplified to invoke the new MSBuild-based build process via \dotnet run\ on the \build.fsproj\ project. This change also includes updating the \.gitignore\ to exclude new build artifacts and tool stores, and removing the old \RELEASE\_NOTES.md\ file in favor of \CHANGELOG.md\.
(repo-wide) · high confidence
Migrate build system from FAKE to MSBuild
The build process has been refactored to use MSBuild directly via build.fs and Changelog.fs, replacing the previous FAKE-based build scripts. This change updates the build infrastructure to handle versioning, changelog generation, and release notes using native MSBuild targets and F\# modules, improving build reliability and reducing external tooling dependencies.
Content/Console/build · high confidence
Removal of MyLib module
The MyLib module, which previously provided a 'hello' function for greeting users, has been removed from the codebase. This eliminates the associated functionality from the library.
src/MyLib · low confidence
Test coverage
Add comprehensive test suite for the MiniScaffold template; Added initial test suite for MyLib.1; Removed obsolete test file.
Dependencies
Migrate from Paket to NuGet Central Package Management
The project has replaced the Paket dependency manager with NuGet's built-in Central Package Management. This introduces a root \Directory.Packages.props\ file to define all package versions centrally, including FAKE 6.1.3, Expecto 10.2.2, and FSharp.Core 8.0.403. The legacy \paket.dependencies\ and \paket.lock\ files have been removed, and all project files now reference packages via the central configuration.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 71 → 62 (-8.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 62 → 54 (-8.1)
- Architecture 96 → 95 (-0.6)
- Maturity 89 → 55 (-33.9)
- Readiness 77 → 84 (+7.3)
- Security 73 → 82 (+8.1)
Resolved (52)
- Dimension evaluation failed
- Duplicated block (39 lines × 2) (Content/ProjLib/Library.fs)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 32 more
New (20)
- Duplicated block (56 lines × 2) (Content/Library/src/MyLib.1/Library.fs)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Low IaC: WD-DOCKER-0003 (.devcontainer/Dockerfile)
- Low IaC: WD-DOCKER-0003 (Content/Console/.devcontainer/Dockerfile)
- Low IaC: WD-DOCKER-0003 (Content/Library/.devcontainer/Dockerfile)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Orphaned files with no living knowledge
Architecture
- Unchanged — 0 containers · 1 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
TheAngryByrd/MiniScaffold was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 24 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bb58c5acb91c6bc34648ec8829d7866ffaa049e2 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-923689c465cf.