dotnet-chous
Chous for Frontend File-Structure Linting in .NET Repositories
Trigger On
- the repo has a growing frontend tree and the user asks about naming conventions, folder structure, or file placement rules
- the repo wants to enforce layout policy for
ClientApp/,src/,apps/, orpackages/ - architectural drift in the frontend file tree is a larger problem than syntax errors
Do Not Use For
- semantic code bugs, type errors, or framework API misuse
- CSS, HTML, or JS rule enforcement inside files
- very small repos where a structure linter would add more ceremony than value
Inputs
- the nearest
AGENTS.md package.json- any existing
.chousfile - the frontend tree that needs policy enforcement
Workflow
- Define the structure problem first:
- naming convention drift
- component placement
- forbidden folders or files
- monorepo frontend boundaries
- Start from
chous initor a known preset, then tighten only the rules the repo can explain. - Keep the checked-in
.chousfile readable enough that future contributors understand the policy. - Add repeatable commands such as:
npx chous
- Exclude generated folders, build artifacts, and vendored assets so the signal stays architectural.
- Use Chous as a supplement to semantic linters, not as their replacement.
- Re-run after moves or refactors to confirm the structure policy still matches the intended design.
Bootstrap When Missing
- Detect current state:
rg --files -g 'package.json' -g '.chous'rg -n '"chous"' --glob 'package.json' .
- Start with the official no-install or global paths:
npx chousnpm install -g chous
- Initialize config when the repo truly wants structure policy:
npx chous init
- Add a repeatable command to
AGENTS.mdandpackage.json, then verify with:npx chous
- Return
status: configuredif the repo now has a checked-in structure-lint baseline, orstatus: improvedif an existing baseline was tightened. - Return
status: not_applicablewhen the repo is too small or too fluid to justify a structure-lint gate right now.
Handle Failures
- If Chous flags large parts of the tree after the first rollout, the rule set is probably too strict for the repo's current maturity; start from the preset and tighten incrementally.
- Generated or vendored folders should be excluded instead of repeatedly ignored in reviews.
- If contributors cannot explain what a rule protects, simplify the
.chouspolicy before enforcing it in CI.
Deliver
- a checked-in frontend structure policy
- repeatable file-tree linting commands
- explicit exclusions for generated and vendored folders
Validate
- the
.chousrules reflect real architecture intent - generated output is excluded
- Chous is used alongside, not instead of, semantic linters
- the policy remains understandable after the first rollout
Ralph Loop
- Plan: analyze current state, target outcome, constraints, and risks.
- Execute one step and produce a concrete delta.
- Review the result and capture findings.
- Apply fixes in small batches and rerun checks.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable.
- If a dependency is missing, bootstrap it or return
status: not_applicablewith a reason.
Required Result Format
status:complete|clean|improved|configured|not_applicable|blockedplan: concise plan and current stepactions_taken: concrete changes madeverification: commands, checks, or review evidenceremaining: unresolved items ornone
Example Requests
- "Enforce frontend folder naming and placement rules."
- "Add file-structure linting to the web client."
- "Why is our frontend tree drifting even though code linting passes?"
More from managedcode/dotnet-skills
dotnet
Primary router skill for broad .NET work. Classify the repo by app model and cross-cutting concern first, then switch to the narrowest matching .NET skill instead of staying at a generic layer.
18dotnet-aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET.
13dotnet-entity-framework-core
Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications.
12dotnet-code-review
Review .NET changes for bugs, regressions, architectural drift, missing tests, incorrect async or disposal behavior, and platform-specific pitfalls before you approve or merge them.
11dotnet-architecture
Design or review .NET solution architecture across modular monoliths, clean architecture, vertical slices, microservices, DDD, CQRS, and cloud-native boundaries without over-engineering.
11dotnet-signalr
Implement or review SignalR hubs, streaming, reconnection, transport, and real-time delivery patterns in ASP.NET Core applications.
10