Build Falco Web App
Use Falco for its lightweight functional HTTP surface while leaving business
behavior as ordinary, testable F# code.
Source Check
Read existing routes, the web host, project references, tests, and configuration
before editing. Consult Falco's source and documentation
and ASP.NET Core documentation for
current package behavior.
Workflow
- Confirm Falco is the selected framework; otherwise start with
dotnet:choose-fsharp-web-framework.
- Define route handlers around one request job. Parse input, call a domain
function, then write one explicit response shape.
- Keep routing declarative and readable. Split route groups by feature instead
of building one mutable registration surface.
- Use the existing ASP.NET Core host for configuration, dependency registration,
authentication, authorization, logging, and rate or upload limits. Do not hide
those platform concerns in unrelated response helpers.
- Treat HTML/view code as presentation. Keep it separate from request parsing,
authorization, and persistence behavior.
- Test domain modules without a host, then add endpoint or integration coverage
for routes, input validation, auth decisions, and response contracts.
Validation
Run the repository's targeted commands. If it has none, use:
dotnet build <web-project.fsproj>
dotnet test <test-project.fsproj>
Boundaries
- Preserve F# compile order and explicit task or async boundaries.
- Do not translate C# controller or service patterns mechanically into Falco.
- For Azure resources, hosting, monitoring, identity, or deployment, use the
official Azure Skills handoff rather than inventing provider commands here.
1---2name: build-falco-web-app3description: Build or modify a Falco web application in idiomatic F#, using functional routing, request and response helpers, explicit ASP.NET Core integration, security boundaries, and focused tests.4---56# Build Falco Web App78Use Falco for its lightweight functional HTTP surface while leaving business9behavior as ordinary, testable F# code.1011## Source Check1213Read existing routes, the web host, project references, tests, and configuration14before editing. Consult [Falco's source and documentation](https://github.com/falcoframework/Falco)15and [ASP.NET Core documentation](https://learn.microsoft.com/aspnet/core/) for16current package behavior.1718## Workflow19201. Confirm Falco is the selected framework; otherwise start with21 `dotnet:choose-fsharp-web-framework`.222. Define route handlers around one request job. Parse input, call a domain23 function, then write one explicit response shape.243. Keep routing declarative and readable. Split route groups by feature instead25 of building one mutable registration surface.264. Use the existing ASP.NET Core host for configuration, dependency registration,27 authentication, authorization, logging, and rate or upload limits. Do not hide28 those platform concerns in unrelated response helpers.295. Treat HTML/view code as presentation. Keep it separate from request parsing,30 authorization, and persistence behavior.316. Test domain modules without a host, then add endpoint or integration coverage32 for routes, input validation, auth decisions, and response contracts.3334## Validation3536Run the repository's targeted commands. If it has none, use:3738```zsh39dotnet build <web-project.fsproj>40dotnet test <test-project.fsproj>41```4243## Boundaries4445- Preserve F# compile order and explicit task or async boundaries.46- Do not translate C# controller or service patterns mechanically into Falco.47- For Azure resources, hosting, monitoring, identity, or deployment, use the48 official Azure Skills handoff rather than inventing provider commands here.