AIGuiders.Platform.Modeling.Navigation.Policy
0.1.0
dotnet add package AIGuiders.Platform.Modeling.Navigation.Policy --version 0.1.0
NuGet\Install-Package AIGuiders.Platform.Modeling.Navigation.Policy -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AIGuiders.Platform.Modeling.Navigation.Policy" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AIGuiders.Platform.Modeling.Navigation.Policy" Version="0.1.0" />
<PackageReference Include="AIGuiders.Platform.Modeling.Navigation.Policy" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AIGuiders.Platform.Modeling.Navigation.Policy --version 0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AIGuiders.Platform.Modeling.Navigation.Policy, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AIGuiders.Platform.Modeling.Navigation.Policy@0.1.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AIGuiders.Platform.Modeling.Navigation.Policy&version=0.1.0
#tool nuget:?package=AIGuiders.Platform.Modeling.Navigation.Policy&version=0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AIGuiders.Platform.Modeling.Navigation.Policy
Navigation policy — canonical related-kind tokens, named presets, preset/request merge, kind filter and profiles with caps.
What you get
RelatedKinds— six canonical related-kind tokens:partial_peer— file-level counterpart (e.g. code-behind)project_peer— sibling file in the same projectxaml_codebehind_pair— XAML paired with its code-behindtest_counterpart— code paired with its testsame_namespace— files sharing a namespacesame_directory— files sharing a directory- plus
tryCanonicalKind(case-insensitive token → canonical name) andall
Presets— five named filter presets:peers_only— only partial/project peersno_namespace_noise— everything exceptsame_namespace/same_directorytests_and_peers— peers plus test counterpartsstructure_only— peers, XAML pairs, same-directoryexplore_default— everything exceptproject_peer- with
tryGet(unknown preset →None),allowsKind, andnames
PresetMerge.merge— named preset + request-time include/exclude overrides: non-empty request include wins, excludes are unioned and deduped by canonical kind, unknown preset → error stringKindFilter— whitelist/blacklist filter withcreate,allows,effectiveInclude,effectiveExclude(unknown tokens dropped, not fatal)KindCaps.defaultRelated— default per-kind caps:same_directory4,same_namespace4,project_peer3NavigationProfile+Profile— preset + limits as one value: ready-madeexploreDefaultandpeersOnly, request-timefromExplore, andtoCaps(profile →SceneCapswith default kind caps merged in)
Quick start
open AIGuiders.Platform.Modeling.Navigation.Policy
// Does a kind survive a named preset?
Presets.allowsKind (Some "no_namespace_noise") RelatedKinds.SameNamespace // false
// Preset + request overrides, merged (excludes union when both sides have them)
let includeKinds, excludeKinds, err =
PresetMerge.merge (Some "tests_and_peers") None (Some [ "same_directory" ])
// Explore request -> profile -> scene caps
let caps =
Profile.fromExplore (Some "peers_only") (Some 32) None None
|> Profile.toCaps
Problem
- "Show me what's related to this file" pulls neighbors of very different value: a test counterpart is gold, fifty same-namespace files are noise. Every navigation tool re-answers:
- which neighbor kinds count, and which are noise
- how many of each kind before the scene drowns
- what happens when the caller narrows the filter at request time on top of the default
- Hand-rolled, these answers are scattered if-chains — invisible policy, drifting per host.
Solution
- Policy as named, pure data: presets are an include/exclude catalog, merge rules are one function, caps are one list — reviewable in one place, deterministic everywhere.
- The F# SSOT of the navigation policy layer (platform ADR-0033), consumed by the C# navigation family (
AIGuiders.Platform.Navigation.Code,AIGuiders.Platform.Conformance.Navigation); extraction mapped in FSHARP ADR-0003.
When not to use
- Scene construction and wire parsing — this package decides what passes, never how to walk a graph; the scene IR is
AIGuiders.Platform.Modeling.Navigation. - Enforcement — caps and filters are data plus predicates; truncating an actual node/edge list is the scene builder's job (Execution).
- It is an F# mirror with C# parity (the C#
AIGuiders.Platform.Navigation.Policytwin carries the same semantics) — it is not a new policy language, and it holds no per-project configuration of its own.
Learn more
MIT · Source & issues · part of the Guiders federation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- AIGuiders.Platform.Modeling.Navigation (>= 0.1.0)
- FSharp.Core (>= 10.1.401)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 87 | 10/24/2026 |