Public/Invoke-MkReadme.ps1

function Invoke-MkReadme {
    <#
    .SYNOPSIS
    Creates a README.md file in the current directory.
 
    .DESCRIPTION
    Generates a README.md using a simple deterministic template with Setup, Usage, and License sections.
    Existing files are not overwritten unless -Force is used.
 
    .PARAMETER Title
    Title used for the top-level README heading.
 
    .PARAMETER Description
    Optional short description below the title.
 
    .PARAMETER Force
    Overwrites README.md if it already exists.
 
    .EXAMPLE
    mkreadme -Title "My Project" -Description "CLI utilities"
    #>

    [CmdletBinding()]
    [Alias('mkreadme')]
    param(
        [Parameter(Mandatory = $true)]
        [string]$Title,

        [string]$Description = 'TODO: Add project description.',

        [switch]$Force
    )

    $safeTitle = ConvertTo-DtSafeMarkdownText -Text $Title
    $safeDescription = ConvertTo-DtSafeMarkdownText -Text $Description

    $path = Join-Path -Path (Get-Location) -ChildPath 'README.md'
    $content = @"
# $safeTitle
 
$safeDescription
 
## Setup
 
TODO: Add setup instructions.
 
## Usage
 
TODO: Add usage details.
 
## License
 
TODO: Add license information.
"@


    Set-DtFileContent -Path $path -Content $content -Force:$Force | Out-Null

    if (Test-Path -LiteralPath $path) {
        [System.IO.FileInfo]::new($path)
    }
}