Docs & Rules

microsoft/Agent365-devToolsGitHubLast refreshed Oct 3, 2026

This is a public, read-only report. Striff reads this repository's docs, turns each sentence that makes a claim about the code into a rule, and checks the rule against the code on the default branch. How this works

main1dfbf01listed 5h ago

Is this yours? Install to manage it

Once installed, Striff checks every pull request.

52
1
1
51
49
7
7
7
7
7
14
14
21
2
2
42 docs, listed Oct 3
microsoft/Agent365-devToolsOpen repository

microsoft/Agent365-devTools — documented rules

52 of 52 rules, printed October 3, 2026.

The sentence in your docs
Read Oct 2
Both files are merged into a single Agent365Config model at runtime using ConfigService.
ConfigService depends on Agent365Config
HoldsPR #496 · Oct 2
Read Oct 2
Component SetupHelpers, File SetupHelpers.cs, Description Shared helper methods EnsureResourcePermissionsAsync used by standalone callers and CopilotStudioSubcommand
SetupHelpers has an EnsureResourcePermissionsAsync method
Holds
Read Oct 2
Component SetupHelpers, File SetupHelpers.cs, Description Shared helper methods EnsureResourcePermissionsAsync used by standalone callers and CopilotStudioSubcommand
CopilotStudioSubcommand depends on SetupHelpers
HoldsPR #496 · Oct 2
Read Oct 2
Component SetupContext, File SetupContext.cs, Description Context bundle threaded through orchestrator steps exposes AuthMode , IsOboMode , IsS2sMode , IsBothMode
SetupContext has AuthMode
HoldsPR #496 · Oct 2
Read Oct 2
Component SetupContext, File SetupContext.cs, Description Context bundle threaded through orchestrator steps exposes AuthMode , IsOboMode , IsS2sMode , IsBothMode
SetupContext has IsOboMode
HoldsPR #496 · Oct 2
Read Oct 2
Component SetupContext, File SetupContext.cs, Description Context bundle threaded through orchestrator steps exposes AuthMode , IsOboMode , IsS2sMode , IsBothMode
SetupContext has IsS2sMode
HoldsPR #496 · Oct 2
Read Oct 2
Component SetupContext, File SetupContext.cs, Description Context bundle threaded through orchestrator steps exposes AuthMode , IsOboMode , IsS2sMode , IsBothMode
SetupContext has IsBothMode
HoldsPR #496 · Oct 2
Read Oct 2
Start[a365 setup all] --> Requirements
AllSubcommand depends on RequirementsSubcommand
Holds
Read Oct 2
AzCliHelper.ResolveLoginHintAsync() — reads az account show if az CLI is present
AzCliHelper has a ResolveLoginHintAsync method
HoldsPR #496 · Oct 2
Read Oct 2
AuthenticationService.ResolveLoginHintFromCacheAsync() — reads the first account's UPN from the OS-protected MSAL persistent cache if az CLI is unavailable
AuthenticationService has a ResolveLoginHintFromCacheAsync method
HoldsPR #496 · Oct 2
Read Oct 2
Only GetAccessTokenAsync and ResolveLoginHintFromCacheAsync are on the interface.
IAuthenticationService has GetAccessTokenAsync
Holds
Read Oct 2
Only GetAccessTokenAsync and ResolveLoginHintFromCacheAsync are on the interface.
IAuthenticationService has ResolveLoginHintFromCacheAsync
Holds
Read Oct 2
Other methods (GetAccessTokenWithScopesAsync, GetAccessTokenForMcpAsync, ClearCache) stay on the concrete class and are used by commands that take AuthenticationService directly.
AuthenticationService has a GetAccessTokenWithScopesAsync method
Holds
Read Oct 2
Other methods (GetAccessTokenWithScopesAsync, GetAccessTokenForMcpAsync, ClearCache) stay on the concrete class and are used by commands that take AuthenticationService directly.
AuthenticationService has a GetAccessTokenForMcpAsync method
Holds
Read Oct 2
Other methods (GetAccessTokenWithScopesAsync, GetAccessTokenForMcpAsync, ClearCache) stay on the concrete class and are used by commands that take AuthenticationService directly.
AuthenticationService has a ClearCache method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
AllSubcommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
CleanupCommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
CopilotStudioSubcommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
CreateInstanceCommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
DevelopCommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
DevelopMcpCommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
PublishCommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
QueryEntraCommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
RequirementsSubcommand has a CreateCommand method
Holds
Read Oct 2
Each command exposes a CreateCommand(...) method that receives its dependencies as explicit parameters and returns a Command object wired with a SetHandler lambda.
SetupCommand has a CreateCommand method
Holds
Read Oct 2
RequirementsSubcommand.RunChecksOrExitAsync is the shared runner — prints [PASS]/[FAIL]/[WARN] per check and calls ExceptionHandler.ExitWithCleanup(1) on any failure:
RequirementsSubcommand has RunChecksOrExitAsync
Holds
Read Oct 2
RequirementsSubcommand.RunChecksOrExitAsync is the shared runner — prints [PASS]/[FAIL]/[WARN] per check and calls ExceptionHandler.ExitWithCleanup(1) on any failure:
RequirementsSubcommand depends on ExceptionHandler
Holds
Read Oct 2
**Standalone callers:** SetupHelpers.EnsureResourcePermissionsAsync handles a single resource with retry logic and is used by CopilotStudioSubcommand and direct callers.
SetupHelpers has EnsureResourcePermissionsAsync
Holds
Read Oct 2
**Standalone callers:** SetupHelpers.EnsureResourcePermissionsAsync handles a single resource with retry logic and is used by CopilotStudioSubcommand and direct callers.
CopilotStudioSubcommand depends on SetupHelpers
Holds
Read Oct 2
All custom exceptions inherit from Agent365Exception:
ConfigurationValidationException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
All custom exceptions inherit from Agent365Exception:
SetupValidationException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
All custom exceptions inherit from Agent365Exception:
ClientAppValidationException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
All custom exceptions inherit from Agent365Exception:
NodeProjectNotFoundException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
All custom exceptions inherit from Agent365Exception:
PythonLocatorException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
All custom exceptions inherit from Agent365Exception:
RetryExhaustedException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
All custom exceptions inherit from Agent365Exception:
GraphTokenScopeException extends Agent365Exception
HoldsPR #496 · Oct 2
Read Oct 2
Model ProjectPlatform, File ProjectPlatform.cs, Description Platform enumeration (Unknown, DotNet, NodeJs, Python)
ProjectPlatform is an enumeration
Holds
Read Oct 2
Model ProjectPlatform, File ProjectPlatform.cs, Description Platform enumeration (Unknown, DotNet, NodeJs, Python)
ProjectPlatform has Unknown
Holds
Read Oct 2
Model ProjectPlatform, File ProjectPlatform.cs, Description Platform enumeration (Unknown, DotNet, NodeJs, Python)
ProjectPlatform has DotNet
Holds
Read Oct 2
Model ProjectPlatform, File ProjectPlatform.cs, Description Platform enumeration (Unknown, DotNet, NodeJs, Python)
ProjectPlatform has NodeJs
Holds
Read Oct 2
Model ProjectPlatform, File ProjectPlatform.cs, Description Platform enumeration (Unknown, DotNet, NodeJs, Python)
ProjectPlatform has Python
Holds
Read Oct 2
Model AuthMode, File AuthMode.cs, Description Enum for agent identity grant type Obo , S2s , Both
AuthMode is an enumeration
Holds
Read Oct 2
Model AuthMode, File AuthMode.cs, Description Enum for agent identity grant type Obo , S2s , Both
AuthMode has Obo
Holds
Read Oct 2
Model AuthMode, File AuthMode.cs, Description Enum for agent identity grant type Obo , S2s , Both
AuthMode has S2s
Holds
Read Oct 2
Model AuthMode, File AuthMode.cs, Description Enum for agent identity grant type Obo , S2s , Both
AuthMode has Both
Holds
Read Oct 2
Model GrantOutcome, File GrantOutcome.cs, Description Enum for per-grant result Granted , Failed , NotApplicable
GrantOutcome is an enumeration
Holds
Read Oct 2
Model GrantOutcome, File GrantOutcome.cs, Description Enum for per-grant result Granted , Failed , NotApplicable
GrantOutcome has Granted
Holds
Read Oct 2
Model GrantOutcome, File GrantOutcome.cs, Description Enum for per-grant result Granted , Failed , NotApplicable
GrantOutcome has Failed
Holds
Read Oct 2
Model GrantOutcome, File GrantOutcome.cs, Description Enum for per-grant result Granted , Failed , NotApplicable
GrantOutcome has NotApplicable
Holds
Read Oct 2
Used by PlatformDetector to auto-detect project type.
PlatformDetector depends on ProjectPlatform
Holds
Read Oct 2
ServerClass --> MockToolExecutor
Server depends on MockToolExecutor
HoldsPR #496 · Oct 2
Read Oct 2
MockToolExecutor --> IMockToolStore
MockToolExecutor depends on IMockToolStore
HoldsPR #496 · Oct 2
52 rules from 6 docs

See these where the change is. The browser extension puts a pull request's doc findings, and a diagram of what it changed, on the GitHub page itself, so the code and what your docs say about it are side by side.