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
Package Ark.Tools.Compliance.MessagePack, Registration add SensitiveValueFormatterResolver.Instance to the resolver chain SensitiveValueFormatterResolver.RegisterBuiltIn() / Register<T>()
SensitiveValueFormatterResolver has a RegisterBuiltIn method
Holds
Read Oct 3
Package Ark.Tools.Compliance.MessagePack, Registration add SensitiveValueFormatterResolver.Instance to the resolver chain SensitiveValueFormatterResolver.RegisterBuiltIn() / Register<T>()
SensitiveValueFormatterResolver has Register
Holds
Read Oct 3
Package Ark.Tools.Compliance.Reqnroll, Registration SensitiveValueReqnroll.Register() in test setup — feature tables then bind columns to sensitive value objects
SensitiveValueReqnroll has a Register method
Holds
Read Oct 3
The mapping lives in the **library** (Ark.Tools.MediatorFramework.Grpc), as ArkGrpcErrorInterceptor, not in application code: the interceptor maps BusinessRuleViolationException to an RpcException with StatusCode.FailedPrecondition and a Google.Rpc.Status whose details contain one ArkBusinessRuleViolation (packed as Any), and ValidationException to InvalidArgument + BadRequest field violations.
ArkGrpcErrorInterceptor is in Ark.Tools.MediatorFramework.Grpc
Holds
Read Oct 3
Ark.Tools.Core.EvolvableEnum is an opt-in readonly struct that lets a contract member carry unknown enum values safely:
EvolvableEnum is a value type, and EvolvableEnum is declared readonly
Holds
Read Oct 3
Ark.Tools.Core.EvolvableEnum is an opt-in readonly struct that lets a contract member carry unknown enum values safely:
EvolvableEnum is declared readonly, and EvolvableEnum is a value type
Holds
Read Oct 3
Add a transport-neutral McpToolAttribute to Ark.Tools.MediatorFramework:
McpToolAttribute is in Ark.Tools.MediatorFramework
Holds
Read Oct 3
It does not reference McpServerToolAttribute or McpServerToolTypeAttribute.
McpToolAttribute may not use McpServerToolAttribute
Holds
Read Oct 3
It does not reference McpServerToolAttribute or McpServerToolTypeAttribute.
McpToolAttribute may not use McpServerToolTypeAttribute
Holds
Read Oct 3
McpToolAttribute field ReadOnly, Meaning MCP tool annotation defaults to true for IQuery<T> and false for IRequest<T> / ICommand
McpToolAttribute has a ReadOnly field
Holds
Read Oct 3
McpToolAttribute field Destructive, Meaning MCP tool annotation defaults to false for IQuery<T> and true for IRequest<T> / ICommand
McpToolAttribute has a Destructive field
Holds
Read Oct 3
McpToolAttribute field Idempotent, Meaning MCP tool annotation defaults to false
McpToolAttribute has an Idempotent field
Holds
Read Oct 3
McpToolAttribute field OpenWorld, Meaning MCP tool annotation defaults to true
McpToolAttribute has an OpenWorld field
Holds
Read Oct 3
The generated bridge therefore exposes an attachment input as a bounded McpAttachmentInput object supplied by Ark.Tools.MediatorFramework.Mcp:
McpAttachmentInput is in Ark.Tools.MediatorFramework.Mcp
Holds
Read Oct 3
Element Send seam, File IMessagingTransport.cs:9-66, Behaviour SendAsync , PublishAsync , native sizing/measuring Adequate unchanged by this PRD
IMessagingTransport has SendAsync
Holds
Read Oct 3
Element Send seam, File IMessagingTransport.cs:9-66, Behaviour SendAsync , PublishAsync , native sizing/measuring Adequate unchanged by this PRD
IMessagingTransport has PublishAsync
Holds
Read Oct 3
Element Dispatch, File MessagingDispatcher.cs:92-175, Behaviour Per-delivery classify headers, prepare payload, DI scope, pipeline, settle, metrics Handler stage is bounded by retryPolicy.MaximumHandlerDuration a per-message renewal loop runs alongside
IMessagingRetryPolicy has MaximumHandlerDuration
Holds
Read Oct 3
Element Retry policy, File IMessagingRetryPolicy.cs, Behaviour MaximumDeliveryCount , SecondLevelRetriesEnabled , MaximumHandlerDuration , RetryDelay MaximumHandlerDuration is the natural input for lock and prefetch budgeting
IMessagingRetryPolicy has MaximumDeliveryCount
Holds
Read Oct 3
Element Retry policy, File IMessagingRetryPolicy.cs, Behaviour MaximumDeliveryCount , SecondLevelRetriesEnabled , MaximumHandlerDuration , RetryDelay MaximumHandlerDuration is the natural input for lock and prefetch budgeting
IMessagingRetryPolicy has SecondLevelRetriesEnabled
Holds
Read Oct 3
Element Retry policy, File IMessagingRetryPolicy.cs, Behaviour MaximumDeliveryCount , SecondLevelRetriesEnabled , MaximumHandlerDuration , RetryDelay MaximumHandlerDuration is the natural input for lock and prefetch budgeting
IMessagingRetryPolicy has RetryDelay
Holds
Read Oct 3
async loops (not threads) reading the channel and calling the unchanged MessagingDispatcher.OnDeliveryAsync.
MessagingDispatcher has OnDeliveryAsync
Holds
Read Oct 3
Unchanged rules (MessagingSettlement.Decide), but settlement now runs **on the worker task**, off the receive path, and releases credit only after the settle call completes.
MessagingSettlement has Decide
Holds
Read Oct 3
Target TypeConverter, Artifact SensitiveValueTypeConverter<T> (see below), Where Ark.Tools.Compliance (in-box)
SensitiveValueTypeConverter is in Ark.Tools.Compliance
SensitiveValueTypeHandler is in Ark.Tools.Compliance.Dapper
Holds
Read Oct 3
Target protobuf-net, Adapter surrogate + RuntimeTypeModel registration, in the shape of Ark.Tools.Protobuf 's EvolvableEnumSurrogate<T>, Package Ark.Tools.Compliance.Protobuf
EvolvableEnumSurrogate is in Ark.Tools.Protobuf
Holds
Read Oct 3
Adapters share the SensitiveValueSerialization.ToTransport/FromTransport helpers, so a new target is a reader/writer mapping and nothing else.
SensitiveValueSerialization has ToTransport
Holds
Read Oct 3
Adapters share the SensitiveValueSerialization.ToTransport/FromTransport helpers, so a new target is a reader/writer mapping and nothing else.
SensitiveValueSerialization has FromTransport
Holds
Read Oct 3
Package Ark.Tools.Compliance.NLog, Contents ComplianceLayout / PiiScanner , redaction wired by default into WithArkDefaultTargetsAndRules WithComplianceRedaction / WithoutComplianceRedaction for override/opt-out, TFMs net8.0;net10.0
ComplianceLayout is in Ark.Tools.Compliance.NLog
Holds
Read Oct 3
Package Ark.Tools.Compliance.NewtonsoftJson, Contents SensitiveValueJsonConverter<T> and SensitiveValueNewtonsoftJson registrations, TFMs net8.0;net10.0
SensitiveValueNewtonsoftJson is in Ark.Tools.Compliance.NewtonsoftJson
Holds
Read Oct 3
Setting AdaptiveConcurrency, Default true, What it is for Let the limit follow measured throughput and latency false pins it and disables measurement
MessagingProcessingOptions has AdaptiveConcurrency
Holds
Read Oct 3
Setting InitialConcurrency, Default processor count, What it is for Starting worker count, and the fixed limit when adaptation is off
MessagingProcessingOptions has InitialConcurrency
Holds
Read Oct 3
Setting MinimumConcurrency, Default 1, What it is for Floor the controller may never go below
MessagingProcessingOptions has MinimumConcurrency
Holds
Read Oct 3
Setting MaximumConcurrency, Default 8 × processor count, What it is for Ceiling, and the natural place to express a downstream limit
MessagingProcessingOptions has MaximumConcurrency
Holds
Read Oct 3
Setting ConcurrencyEvaluationInterval, Default 5 s, What it is for How often the controller decides
MessagingProcessingOptions has ConcurrencyEvaluationInterval
Holds
Read Oct 3
Setting ThroughputImprovementThreshold, Default 0.05, What it is for Throughput noise band that growth must beat
MessagingProcessingOptions has ThroughputImprovementThreshold
Holds
Read Oct 3
Setting GradientIncreaseThreshold, Default 0.9, What it is for Latency gradient required to grow
MessagingProcessingOptions has GradientIncreaseThreshold
Holds
Read Oct 3
Setting LittlesLawSlack, Default 2, What it is for Slack over the useful concurrency implied by throughput × latency
MessagingProcessingOptions has LittlesLawSlack
Holds
Read Oct 3
Setting BaselineRearmInterval, Default 10 min, What it is for How often the no-load latency baseline is re-measured
MessagingProcessingOptions has BaselineRearmInterval
Holds
Read Oct 3
Setting ThreadPoolStarvationThreshold, Default 250 ms, What it is for Scheduling delay treated as host starvation
MessagingProcessingOptions has ThreadPoolStarvationThreshold
Holds
Read Oct 3
Setting PrefetchMultiplier, Default 2, What it is for Buffered deliveries per worker higher hides broker latency, and holds more locks
MessagingProcessingOptions has PrefetchMultiplier
Holds
Read Oct 3
Setting MaximumPrefetch, Default 8 × MaximumConcurrency, What it is for Hard ceiling on buffered plus in-flight deliveries
MessagingProcessingOptions has MaximumPrefetch
Holds
Read Oct 3
Setting ExpectedHandlerDuration, Default 1 s, What it is for Per-message estimate used to bound the buffer on transports that cannot renew locks
MessagingProcessingOptions has ExpectedHandlerDuration
Holds
Read Oct 3
Setting LockSafetyFactor, Default 0.5, What it is for Fraction of the native lock duration a full buffer may take to drain
MessagingProcessingOptions has LockSafetyFactor
Holds
Read Oct 3
Setting ShutdownTimeout, Default 30 s, What it is for Drain window before unprocessed deliveries are abandoned
MessagingProcessingOptions has ShutdownTimeout
Holds
Read Oct 3
Setting ReceiveChannels, Default 1, What it is for Reserved on the host Service Bus fan-out is declared on the transport instead
MessagingProcessingOptions has ReceiveChannels
Holds
Read Oct 3
Setting ReceiveWaitTime, Default 1 s, What it is for Maximum wait asked of the broker per receive
MessagingProcessingOptions has ReceiveWaitTime
Holds
Read Oct 3
Setting MinPollInterval, Default 50 ms, What it is for Shortest wait after an empty result
MessagingProcessingOptions has MinPollInterval
Holds
Read Oct 3
Setting MaxPollInterval, Default 30 s, What it is for Longest wait after consecutive empty results, and the maximum idle latency
MessagingProcessingOptions has MaxPollInterval
Holds
Read Oct 3
Setting ErrorCooldown, Default 10 s, What it is for Jittered pause after a transport error
MessagingProcessingOptions has ErrorCooldown
Holds
Read Oct 3
Setting AdvancedMetrics, Default false, What it is for Record the opt-in advanced metric tier AddArkMessagingAdvancedInstrumentation() turns it on for you
MessagingProcessingOptions has AdvancedMetrics
Holds
Read Oct 3
Setting RenewalSafetyMargin, Default 10 s, What it is for Smallest headroom kept before a lock expires
MessagingProcessingOptions has RenewalSafetyMargin
Holds
Read Oct 3
Setting RenewalScanInterval, Default 1 s, What it is for How often due locks are scanned
MessagingProcessingOptions has RenewalScanInterval
Holds
Read Oct 3
Setting MaximumRenewalBatch, Default 64, What it is for Locks renewed per scan, so a large in-flight set cannot stall the timer
MessagingProcessingOptions has MaximumRenewalBatch
Holds
Read Oct 3
The Modified property on IResourceMetadata is compared against the stored state:
IResourceMetadata has Modified
Holds
67 rules from 8 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.