Type to search pages and rules.

Browse pages

Provisions

Use this generated page to resolve a provision ID to its heading, owning page, scope, conformance level, strength, and verification mark, and to read the checked share of rules for each page.

Run litespec-maintain provisions after any provision change. The repository validator fails when this page and the active standards disagree.

The active release states 1566 provisions in 4 groups across 6 areas.

Markdown

Checked Share by Page#

PageRulesCheckedChecked Share
backend/api2814%
backend/application371027%
backend/architecture1400%
backend/domain26623%
backend/dotnet/api5120%
backend/dotnet/application7114%
backend/dotnet/architecture9556%
backend/dotnet/config400%
backend/dotnet/domain15853%
backend/dotnet/ext/bdd1100%
backend/dotnet/ext/layer-projects700%
backend/dotnet/naming22100%
backend/dotnet/packages00-
backend/dotnet/persistence8112%
backend/dotnet/stack10880%
backend/dotnet/workspace200%
backend/identifiers6583%
backend/persistence20315%
backend/testing1100%
core/access231670%
core/agent1700%
core/authoring572849%
core/automation12975%
core/behavior100%
core/domain-model211362%
core/edges171482%
core/intent392974%
core/language1218%
core/layers10440%
core/maintaining7571%
core/model443375%
core/principles29621%
core/privacy15213%
core/release1915%
core/scope12650%
core/scopes7571%
core/stacks300%
core/system7343%
core/use-cases402460%
core/writing1600%
ext/ai600%
ext/audit3900%
ext/automation700%
ext/cache1200%
ext/compat2700%
ext/concurrency2700%
ext/delegation5120%
ext/delivery5148%
ext/devices600%
ext/integrations1700%
ext/jobs6335%
ext/lifecycle1900%
ext/locale1400%
ext/mcp700%
ext/outbox4900%
ext/plans600%
ext/stage3267%
ext/tenancy1900%
frontend/components1417%
frontend/data1900%
frontend/mobile/data500%
frontend/mobile/device500%
frontend/mobile/screens800%
frontend/mobile/structure400%
frontend/mobile/testing300%
frontend/patterns8562%
frontend/patterns/admin-screens200%
frontend/patterns/create-edit-remove200%
frontend/patterns/dialogs-and-overlays200%
frontend/patterns/feedback-and-states200%
frontend/patterns/forms-and-fields200%
frontend/patterns/lists-and-tables200%
frontend/patterns/money-time-density200%
frontend/patterns/navigation200%
frontend/patterns/page-frames200%
frontend/patterns/record-detail3133%
frontend/rendering900%
frontend/structure1119%
frontend/testing12433%
frontend/ui20315%
frontend/web/components22100%
frontend/web/rendering100%
frontend/web/structure5240%
frontend/web/svelte/components11100%
frontend/web/testing11100%
frontend/web/ui44100%
quality/ci5240%
quality/operations14429%
quality/security2400%
workspace/config600%
workspace/dependencies8112%
workspace/naming8450%
workspace/structure800%

Standard#

backend#

IDProvisionKindStackLayerArtifactConformanceStrengthMarkEvidence
litespec/backend/api#apply-only-coarse-policies-at-the-endpointApply Only Coarse Policies at the Endpointruleanyweb-apiendpointfullruleguidanceWhich endpoint policies decide target authorization instead of coarse authentication, role, or scope? Look at the endpoint policies beside the application guard.
litespec/backend/api#apply-patch-to-a-partial-updateApply PATCH to a Partial Updateruleanyweb-apiendpointfullruleguidanceWhich partial updates arrive outside PATCH with the merge-patch media type? Look at the partial update requests.
litespec/backend/api#authorize-every-file-download-through-its-owning-use-caseAuthorize Every File Download Through Its Owning Use Caseruleanyweb-apiendpointfullruleguidanceWhich stored files are reachable outside a download use case and its declared access? Look at the download endpoints and the storage addresses beside each owning use case.
litespec/backend/api#avoid-noise-words-in-field-namesAvoid Noise Words in Field Namesconventionanyweb-apiendpointfulldefaultguidanceWhich field names in contract schemas carry a type prefix or noise word? Look at the field names.
litespec/backend/api#bound-collection-queriesBound Collection Queriesruleanyweb-apiendpointfullruleguidanceWhich collection responses lack deterministic order, or exceed the declared default or maximum limit? Look at the collection responses beside their records.
litespec/backend/api#bound-every-file-uploadBound Every File Uploadruleanyweb-apiendpointfullruleguidanceWhich upload operations lack a declared size or media-type bound, or accept a file outside either bound? Look at each upload endpoint beside its use-case record.
litespec/backend/api#commit-the-generated-contract-its-consumers-readCommit the Generated Contract Its Consumers Readruleanyweb-apianyfullruleguidanceWhich frontends or external consumers read an uncommitted or stale OpenAPI artifact? Look at the committed artifact beside its consumers.
litespec/backend/api#declare-a-smaller-collection-maximumDeclare a Smaller Collection Maximumconventionanyweb-apirecord:use-casefulldefaultguidanceWhich lowered collection maxima miss their value and reason on the use-case record? Look at each lowered maximum.
litespec/backend/api#declare-stable-operation-metadata-in-the-contractDeclare Stable Operation Metadata in the Contractruleanyweb-apiendpointfullruleguidanceWhich operations in the generated contract miss operationId, authorization, request, success, failure, or summary entries? Look at the operations in the generated contract.
litespec/backend/api#defer-error-mapping-to-the-global-handlerDefer Error Mapping to the Global Handlerruleanyweb-apiendpointfullruleguidanceWhich endpoint bodies catch a use-case, domain, or validation failure? Look at the endpoint bodies beside the global handler.
litespec/backend/api#expose-development-tooling-in-development-onlyExpose Development Tooling in Development Onlyruleanyweb-apianyfullruleguidanceWhich hosted environments serve exploration tooling, or which Development hosts hide it? Look at the mapped endpoints in each environment.
litespec/backend/api#generate-the-contract-without-hosted-dependenciesGenerate the Contract Without Hosted Dependenciesconventionanyweb-apianyfulldefaultguidanceWhich generation runs contact a hosted dependency, or lack a recorded answer? Look at the generation runs beside the project record.
litespec/backend/api#keep-endpoint-dependencies-transport-focusedKeep Endpoint Dependencies Transport-Focusedruleanyweb-apiendpointfullruleguidanceWhich endpoint constructors take more than mediators and HTTP-boundary services? Look at the endpoint constructors in the use case folders.
litespec/backend/api#keep-numeric-transport-types-preciseKeep Numeric Transport Types Preciseconventionanyweb-apiendpointfulldefaultguidanceWhich numeric fields publish outside plain schemas, or reserve the int64 union wrongly? Look at the numeric fields in the contract.
litespec/backend/api#keep-one-name-for-a-use-case-across-layersKeep One Name for a Use Case Across Layersruleanyweb-apiendpoint, use-casefullruleguidanceWhich message types, operation ids, or audit actions carry a different name than their use case? Look at each use case's message type, operation id, and audit action.
litespec/backend/api#keep-routes-resource-orientedKeep Routes Resource-Orientedruleanyweb-apiendpointfullruleguidanceWhich routes break the plural segments, kebab-case subresources, identity parameters, filter queries, or body command data? Look at the route table entries.
litespec/backend/api#map-one-operation-per-endpointMap One Operation per Endpointruleanyweb-apiendpointfullruleguidanceWhich mapped routes resolve outside one endpoint type with one mediator dispatch? Look at the route table beside the use case folders.
litespec/backend/api#mark-polymorphic-models-with-discriminatorsMark Polymorphic Models with Discriminatorsruleanyweb-apiendpointfullruleguidanceWhich data-bearing sets escape the oneOf model with a required string discriminator? Look at the data-bearing sets in the contract.
litespec/backend/api#mirror-a-domain-closed-set-as-a-transport-model-of-the-same-shapeMirror a Domain Closed Set as a Transport Model of the Same Shaperuleanyweb-apiendpointfullruleguidanceWhich transport models drop a case or its data from their Domain set? Look at each transport model beside its Domain set.
litespec/backend/api#model-a-monetary-value-as-one-objectModel a Monetary Value as One Objectconventionanyweb-apiendpointfulldefaultguidanceWhich monetary values travel outside one Money object, or carry currency where the caller has no choice? Look at the monetary fields in the contract.
litespec/backend/api#name-boolean-fields-as-conditionsName Boolean Fields as Conditionsconventionanyweb-apiendpointfulldefaultguidanceWhich boolean fields break the camel-case condition names of their code names? Look at the boolean fields in the contract.
litespec/backend/api#name-failure-pairs-code-and-reasonName Failure Pairs Code and Reasonconventionanyweb-apiendpointfulldefaultguidanceWhich request bodies name failures outside code and reason? Look at the failure pairs in request bodies.
litespec/backend/api#name-path-parameters-per-resourceName Path Parameters per Resourceconventionanyweb-apiendpointfulldefaultguidanceWhich path parameters miss their own resource identity? Look at the path parameters.
litespec/backend/api#name-routes-from-resourcesName Routes from Resourcesconventionanyweb-apiendpointfulldefaultguidanceWhich routes derive outside their resource and subresource, or carry an action segment where either fits? Look at the route table.
litespec/backend/api#name-the-use-case-on-every-published-operationName the Use Case on Every Published Operationruleanyweb-apiendpointfullrulecheckablelitespec model check reports operation-use-case-drift (level S) for an operation in the committed contract whose x-litespec-use-case is missing or differs from the use case its endpoint's mark names.
litespec/backend/api#name-time-fields-with-atName Time Fields with Atconventionanyweb-apiendpointfulldefaultguidanceWhich time fields in contract schemas end outside At? Look at the time fields.
litespec/backend/api#name-transport-types-by-their-boundary-roleName Transport Types by Their Boundary Roleconventionanyweb-apiendpointfulldefaultguidanceWhich transport type names miss the suffix their boundary role assigns? Look at the transport type names.
litespec/backend/api#prove-every-upload-type-from-its-contentProve Every Upload Type from Its Contentruleanyweb-apiendpointfullruleguidanceWhich upload operations trust a claimed media type or file name over the file bytes? Look at the type check of each upload endpoint beside the declared media types.
litespec/backend/api#publish-label-only-sets-as-string-enumsPublish Label-Only Sets as String Enumsruleanyweb-apiendpointfullruleguidanceWhich label-only sets escape the string enum in the contract? Look at the label-only sets in the contract.
litespec/backend/api#publish-precise-complete-schemasPublish Precise, Complete Schemasruleanyweb-apiendpointfullruleguidanceWhich contract schemas miss value sets, bounds, formats, or required control headers for a field? Look at the schemas in the generated contract.
litespec/backend/api#reflect-enforced-authentication-in-the-contractReflect Enforced Authentication in the Contractruleanyweb-apianyfullruleguidanceWhich authenticated operations miss their security schemes and requirements in the generated contract? Look at the operations in the generated contract.
litespec/backend/api#reject-a-collapsed-or-borrowed-wire-contractReject a Collapsed or Borrowed Wire Contractruleanyweb-apiendpointfullruleguidanceWhich wire contracts collapse a data-bearing set into an enum or reuse a Domain or Application type? Look at each wire contract.
litespec/backend/api#require-the-marker-header-on-cookie-authenticated-writesRequire the Marker Header on Cookie-Authenticated Writesruleanyweb-apianyfullruleguidanceWhich cookie-authenticated writes without the marker header escape the 401 answer? Look at the write requests with cookie authentication.
litespec/backend/api#return-stable-problem-detailsReturn Stable Problem Detailsruleanyweb-apianyfullruleguidanceWhich error responses miss the stable code, the traceId, or one errors entry per field failure? Look at the error responses at the API boundary.
litespec/backend/api#shape-command-routes-from-the-aggregate-and-the-verbShape Command Routes from the Aggregate and the Verbconventionanyweb-apiendpointfulldefaultguidanceWhich command routes end outside their verb or carry no aggregate plural? Look at the command routes.
litespec/backend/api#store-every-upload-through-infrastructureStore Every Upload Through Infrastructureruleanyweb-apicommand-handler, endpointfullruleguidanceWhich endpoints or handlers write file bytes to a storage provider directly? Look at the upload endpoints and handlers beside the Infrastructure storage code.
litespec/backend/api#treat-openapi-as-a-generated-contractTreat OpenAPI as a Generated Contractruleanyweb-apianyfullruleguidanceWhich Release builds skip regenerating the OpenAPI artifact, or which contract gates pass on a changed tree? Look at the Release build output and the contract gate.
litespec/backend/api#use-consistent-status-codesUse Consistent Status Codesruleanyweb-apiendpointfullruleguidanceWhich operation responses return a status outside the outcome table? Look at each response beside the outcome table.
litespec/backend/api#use-offsets-for-proven-bounded-datasetsUse Offsets for Proven Bounded Datasetsconventionanyweb-apirecord:use-casefulldefaultguidanceWhich offset paging lacks the bound making it safe on the use-case record? Look at each offset-paged collection.
litespec/backend/api#use-opaque-cursors-for-collection-pagingUse Opaque Cursors for Collection Pagingruleanyweb-apiendpointfullruleguidanceWhich malformed cursors escape the 400 answer with code invalid-cursor? Look at the collection endpoints.
litespec/backend/api#use-standard-field-vocabularyUse Standard Field Vocabularyconventionanyweb-apiendpointfulldefaultguidanceWhich fields use placed, locale, or keyName over the standard vocabulary? Look at the field names in the contract.
litespec/backend/api#use-this-endpoint-layoutUse This Endpoint Layoutconventionanyweb-apiendpointfulldefaultguidanceWhich endpoints sit outside their use case folder or the host, or which shared transport types sit outside the node WebApi/ folders? Look at the endpoints beside the use case folders.
litespec/backend/api#version-cursors-with-stable-sort-valuesVersion Cursors with Stable Sort Valuesruleanyweb-apiendpointfullruleguidanceWhich cursor payloads miss a version, the last sort values, or a unique tie-breaker, or leak a readable secret? Look at the cursor payloads.
litespec/backend/application#build-collaborators-through-the-containerBuild Collaborators Through the Containerruleanyapplicationcommand-handler, job, query-handler, reactionfullruleguidanceWhich handlers, jobs, or step classes hide collaborators behind new or take more than ten constructor dependencies? Look at each constructor the change adds.
litespec/backend/application#call-external-systems-through-their-portsCall External Systems Through Their Portsruleanyapplicationcommand-handler, job, reactionfullruleguidanceWhich calls effects run outside an event handler or job, bypass their port, or run before the commit? Look at each provider call beside its record's calls entry.
litespec/backend/application#declare-a-port-where-its-consumers-meetDeclare a Port Where Its Consumers MeetruleanyapplicationportfullruleguidanceWhich ports sit above the lowest folder holding every consumer that names them? Look at each port beside its consumers.
litespec/backend/application#declare-audit-values-beside-the-messageDeclare Audit Values Beside the Messageruleanyapplicationuse-casefullrulecheckabledotnet build reports LS2013 for a WithTarget or WithReason call on IAuditScope inside a command handler whose argument reads only the message.
litespec/backend/application#declare-every-pipeline-position-beside-the-messageDeclare Every Pipeline Position Beside the Messageruleanyapplicationuse-casefullruleguidanceWhich messages miss a value or an exemption for a required pipeline position? Look at each message beside the baseline and selected extensions.
litespec/backend/application#declare-exclusive-holds-beside-the-messageDeclare Exclusive Holds Beside the Messageruleanyapplicationuse-casefullruleguidanceWhich commands needing exclusive access miss their hold key and patience beside the message? Look at each such command message.
litespec/backend/application#define-narrow-external-portsDefine Narrow External PortsruleanyapplicationportfullruleguidanceWhich external ports escape the public interface with a noun or verb name, one method or one purpose, and project-owned types? Look at each port declaration.
litespec/backend/application#dispatch-commands-and-queries-through-separate-entry-pointsDispatch Commands and Queries Through Separate Entry Pointsruleanyapplicationcommand-handler, endpoint, job, reactionfullruleguidanceWhich dispatch sites call a unified bus instead of the command or query entry point? Look at each dispatch site.
litespec/backend/application#dispatch-only-declared-effect-edgesDispatch Only Declared Effect Edgesruleanyapplicationcommand-handler, job, reactionfullrulecheckablelitespec model check reports effect-undeclared (level S) for a dispatch a handler, event handler, or job takes that its record declares no edge for; a declared runs, sends, or calls edge runs after the commit, and an emits edge leaves as a domain event staged in the outbox.
litespec/backend/application#emit-declared-integration-events-after-commitEmit Declared Integration Events After CommitruleanyapplicationaggregatefullruleguidanceWhich emits effects leave outside a staged domain event in the outbox? Look at each emit beside its record's emits entry.
litespec/backend/application#enforce-target-authorization-in-the-pipelineEnforce Target Authorization in the Pipelineruleanyapplicationanyfullrulecheckabledotnet build reports LS2012 for a handler that throws a forbidden refusal or that takes the authorization guard; the guard authorizes every message from its record's access.
litespec/backend/application#expose-store-state-through-portsExpose Store State Through PortsruleanyapplicationportfullruleguidanceWhich store aggregates grow an aggregate root or bypass their owner-naming port? Look at each store aggregate's code path.
litespec/backend/application#implement-one-outcome-path-per-commandImplement One Outcome Path per Commandruleanyapplicationcommand-handlerfullrulecheckabledotnet build reports LS2014 for a command handler that calls a Find repository method and then creates the found type in the same method.
litespec/backend/application#issue-per-record-work-from-a-jobIssue Per-Record Work from a Jobruleanyapplicationjobfullrulecheckabledotnet build reports LS2015 for a command handler with a repository Store, Add, Update or Delete call inside a loop body.
litespec/backend/application#keep-command-handlers-to-load-call-and-stageKeep Command Handlers to Load, Call and Stageruleanyapplicationcommand-handlerfullruleguidanceWhich command handlers do more than load or create one aggregate, call one method, stage it, and return? Look at each command handler body.
litespec/backend/application#keep-mappings-at-the-owning-boundaryKeep Mappings at the Owning BoundaryconventionanyapplicationanyfulldefaultguidanceWhich conversions live outside the layer owning their output shape? Look at each conversion beside its output.
litespec/backend/application#keep-messages-immutableKeep Messages Immutableconventionanyapplicationuse-casefulldefaultguidanceWhich commands, queries, results, or validation errors mutate? Look at each message declaration.
litespec/backend/application#keep-query-handlers-free-of-writesKeep Query Handlers Free of Writesruleanyapplicationquery-handlerfullruleguidanceWhich query handlers stage, store, delete, or dispatch? Look at each query handler body.
litespec/backend/application#keep-reaction-implementations-explicitKeep Reaction Implementations ExplicitruleanyapplicationreactionfullruleguidanceWhich event handlers answer outside one class with one mark in their UseCases/On{Fact} folder? Look at each event handler class and its mark.
litespec/backend/application#load-a-required-record-or-refuse-itLoad a Required Record or Refuse Itruleanyapplicationcommand-handler, query-handlerfullruleguidanceWhich required records load through the finder, or which optional lookups throw? Look at each load call in the handlers.
litespec/backend/application#mirror-a-domain-closed-set-in-the-resultMirror a Domain Closed Set in the Resultruleanyapplicationuse-casefullruleguidanceWhich results carrying a Domain closed set flatten its shape or drop a case? Look at each such result beside its Domain set.
litespec/backend/application#model-expected-use-case-refusals-explicitlyModel Expected Use-Case Refusals Explicitlyruleanyapplicationuse-casefullruleguidanceWhich expected refusals miss their result code or caller-safe message, or leak transport status? Look at each refusal.
litespec/backend/application#organize-application-by-use-caseOrganize Application by Use CaseruleanyapplicationanyfullruleguidanceWhich commands or queries lack one use case folder inside the UseCases/ folder of their module and aggregate with message, result, validator, handler, mapping, and pipeline-read values? Look at the folders under each module.
litespec/backend/application#parse-input-in-the-validatorParse Input in the ValidatorruleanyapplicationvalidatorfullruleguidanceWhich validators leave a value object unparsed for the handler? Look at each validator beside its input.
litespec/backend/application#project-queries-directlyProject Queries Directlyruleanyapplicationquery-handlerfullrulecheckabledotnet build reports LS2011 for a query handler taking a repository; each query handler projects directly without loading an aggregate.
litespec/backend/application#read-no-repository-inside-a-loopRead No Repository Inside a Loopruleanyapplicationcommand-handler, job, query-handlerfullrulecheckablelitespec model check reports repository-read-invalid (level A) for a repository read inside a loop body.
litespec/backend/application#read-settings-through-typed-optionsRead Settings Through Typed Optionsruleanyapplicationcommand-handler, query-handlerfullruleguidanceWhich handlers read a setting through a raw lookup instead of a typed options value or stored tenant data? Look at each setting read in the handlers.
litespec/backend/application#record-a-decision-for-closed-set-narrowingRecord a Decision for Closed-Set Narrowingruleanyapplicationendpoint, use-casefullruleguidanceWhich narrowed closed sets lack a recorded decision and updated specification? Look at each narrowed set beside the decision records.
litespec/backend/application#refuse-a-lost-race-as-a-conflictRefuse a Lost Race as a Conflictruleanyapplicationcommand-handlerfullruleguidanceWhich commands losing a race at commit end outside their use case conflict refusal? Look at the race outcomes beside the use case refusals.
litespec/backend/application#report-input-problems-as-validity-findingsReport Input Problems as Validity FindingsruleanyapplicationvalidatorfullruleguidanceWhich validators report outside validity findings, or skip member, code, or message, or leak transport status? Look at the findings each validator reports.
litespec/backend/application#return-only-declared-results-and-refusalsReturn Only Declared Results and Refusalsruleanyapplicationcommand-handler, query-handlerfullrulecheckablelitespec model check reports result-undeclared (level S) for a code a handler produces that no declared result names; a handler returns only the results and codes its record lists.
litespec/backend/application#return-use-case-resultsReturn Use-Case Resultsconventionanyapplicationuse-casefulldefaultguidanceWhich Application results return more than the caller needs? Look at each result beside its caller.
litespec/backend/application#run-each-job-within-its-declared-selectionRun Each Job Within Its Declared SelectionruleanyapplicationjobfullruleguidanceWhich scheduled or manual jobs run outside their selection, batch size, lease, or cursor? Look at each job run beside its record.
litespec/backend/application#run-heavy-work-as-a-request-then-a-buildRun Heavy Work as a Request Then a Buildconventionanyapplicationcommand-handler, jobfulldefaultguidanceWhich commands assembling a large artifact skip the recorded request and building job? Look at each heavy command.
litespec/backend/application#send-messages-after-commitSend Messages After Commitruleanyapplicationcommand-handler, reactionfullrulecheckablelitespec model check reports effect-timing-invalid (level S) for a command use case declaring a sends or calls effect with inline timing.
litespec/backend/application#send-notifications-through-the-messenger-portSend Notifications Through the Messenger Portruleanyapplicationcommand-handler, reactionfullruleguidanceWhich sends effects run outside an event handler, bypass the messenger port, or run before the commit? Look at each send beside its record's sends entry.
litespec/backend/application#separate-input-validation-from-invariantsSeparate Input Validation from InvariantsruleanyapplicationvalidatorfullruleguidanceWhich validators check aggregate state instead of structural input only? Look at each validator body.
litespec/backend/application#shape-query-results-from-declared-outputShape Query Results from Declared Outputruleanyapplicationquery-handlerfullruleguidanceWhich query result types miss a declared include group, field, freshness, or visibility? Look at each result type beside its record's output.
litespec/backend/application#take-one-timestamp-per-messageTake One Timestamp per Messageruleanyapplicationcommand-handler, query-handlerfullruleguidanceWhich handlers read time outside the scoped clock stamped once per message? Look at the clock reads in each handler.
litespec/backend/application#take-repositories-from-declared-changes-and-readsTake Repositories from Declared Changes and Readsruleanyapplicationcommand-handlerfullrulecheckablelitespec model check reports write-undeclared (level S) for a handler that takes a repository whose aggregate sits outside the aggregates its record names in changes and reads; one domain repository serves each named aggregate.
litespec/backend/application#use-this-use-case-layoutUse This Use-Case LayoutconventionanyapplicationanyfulldefaultguidanceWhich use-case paths, event handler folders, or result part names break the layout? Look at each path under the modules.
litespec/backend/application#validate-query-inputValidate Query Inputruleanyapplicationuse-casefullruleguidanceWhich queries with paging, filters, or ranges lack a query validator? Look at each such query beside the pipeline validators.
litespec/backend/architecture#compose-each-process-explicitlyCompose Each Process ExplicitlyruleanyapplicationanyfullruleguidanceWhich host entry points build a second provider or skip the Infrastructure entry point? Look at each host entry point.
litespec/backend/architecture#create-a-worker-project-when-background-work-needs-its-own-processCreate a Worker Project When Background Work Needs Its Own ProcessruleanyapplicationanyfullruleguidanceWhich background work needing its own process runs outside a Worker project? Look at the execution-host decision beside the solution project list.
litespec/backend/architecture#declare-the-execution-host-for-work-that-outlives-a-requestDeclare the Execution Host for Work That Outlives a Requestruleanyapplicationrecord:decisionfullruleguidanceWhich execution host runs durable dispatch, queue consumption, or scheduled work without a naming decision? Look for the decision record under .litespec/intent/decisions/.
litespec/backend/architecture#keep-business-invariants-in-domainKeep Business Invariants in Domainruleanyapplicationaggregate, command-handler, job, query-handler, reaction, value-objectfullruleguidanceWhich state transitions or invariants run outside their aggregate or value object, or repeat in a handler? Look at the handlers beside the aggregates they call.
litespec/backend/architecture#keep-implementation-types-hiddenKeep Implementation Types Hiddenruleanyapplicationcommand-handler, endpoint, query-handler, reaction, repository, validatorfullruleguidanceWhich handlers, validators, definitions, persistence implementations, or endpoint implementations escape their own layer or stay open to extension? Look at the implementations in each layer.
litespec/backend/architecture#keep-service-registration-in-hostsKeep Service Registration in HostsconventionanyapplicationanyfulldefaultguidanceWhich service registration calls sit outside host entry points and host registration modules? Look at the registration calls in each layer.
litespec/backend/architecture#organize-code-by-module-aggregate-and-use-caseOrganize Code by Module, Aggregate and Use CaseruleanyapplicationanyfullruleguidanceWhich module, aggregate, or use case folders resolve to no declared record, use a folder name their level forbids, or carry a technical-grouping name? Look at the folder paths in each module.
litespec/backend/architecture#own-each-layers-contract-typesOwn Each Layer's Contract TypesruleanyapplicationanyfullruleguidanceWhich outward contracts reuse an inner layer's type outside shared-kernel values and aggregate typed identifiers? Look at the contracts in each layer's folders.
litespec/backend/architecture#place-a-type-at-the-lowest-folder-that-holds-its-consumersPlace a Type at the Lowest Folder That Holds Its ConsumersruleanyapplicationanyfullruleguidanceWhich types sit above the lowest folder holding every consumer that names them? Look at each type beside its consumers, watching for Shared, Common, Util, Helpers, Core, or Misc folders.
litespec/backend/architecture#point-dependencies-inwardPoint Dependencies InwardruleanyapplicationanyfullruleguidanceWhich references point outward, away from Domain? Look at the reference graph in the code.
litespec/backend/architecture#read-another-module-only-through-its-contractsRead Another Module Only Through Its Contractsruleanyapplicationcommand-handler, port, query-handlerfullruleguidanceWhich cross-module reads bypass the owner's Contracts/Ports/ read port or load another module's aggregate or repository? Look at the cross-module reads beside the Contracts/ folders.
litespec/backend/architecture#restrict-commands-to-their-own-module-aggregatesRestrict Commands to Their Own Module Aggregatesruleanyapplicationcommand-handlerfullruleguidanceWhich commands change an aggregate outside their own module instead of dispatching that module's use case? Look at each command handler beside its module.
litespec/backend/architecture#separate-command-and-query-behaviorSeparate Command and Query Behaviorruleanyapplicationcommand-handler, query-handlerfullruleguidanceWhich commands mutate outside one aggregate or skip the domain repository, or which queries load an aggregate or write? Look at the command and query handlers in Application.
litespec/backend/architecture#subscribe-across-modules-only-to-integration-eventsSubscribe Across Modules Only to Integration EventsruleanyapplicationreactionfullruleguidanceWhich reactions subscribe to another module's domain event instead of its published integration event? Look at each reaction trigger beside the integration events.
litespec/backend/architecture#test-structural-boundariesTest Structural BoundariesruleanyapplicationtestfullruleguidanceWhich structural boundaries have no LiteSpec analyzer or model check finding in the table and no architecture test, or which architecture tests repeat a boundary the table covers? Look at the architecture tests beside the analyzer and model check runs.
litespec/backend/domain#align-id-representations-at-every-boundaryAlign ID Representations at Every Boundaryconventionanydomainaggregate, state-record, value-object, domain-eventfulldefaultguidanceWhich identifiers read as different values across Domain, persistence, transport, or generated clients? Look at one identifier in each boundary form.
litespec/backend/domain#call-the-marked-act-from-each-command-handlerCall the Marked Act from Each Command Handlerruleanydomaincommand-handlerfullrulecheckablelitespec model check reports use-case-act-missing (level S) for a command handler changing an entity or saga aggregate that calls no root method marked with its use case. The check runs in the CLI only, with no analyzer rule: the handler and the root method sit in different projects, and one compilation sees one project.
litespec/backend/domain#create-valid-aggregates-through-named-factoriesCreate Valid Aggregates Through Named FactoriesruleanydomainaggregatefullruleguidanceWhich aggregate roots create instances outside a factory named for their business action? Look at the creation paths of each root.
litespec/backend/domain#declare-cross-record-keys-on-the-aggregateDeclare Cross-Record Keys on the AggregateruleanydomainaggregatefullruleguidanceWhich aggregates with a cross-record uniqueness rule miss UniquenessKeys, or carry other uniqueness code in Domain? Look at each such aggregate.
litespec/backend/domain#define-collection-value-semantics-explicitlyDefine Collection Value Semantics Explicitlyruleanydomainvalue-objectfullruleguidanceWhich collection values lack content equality with a matching hash under their declared ordering rule? Look at each collection value beside the module terms.
litespec/backend/domain#describe-every-public-domain-contract-in-documentationDescribe Every Public Domain Contract in DocumentationruleanydomainanyfullruleguidanceWhich public Domain types or members lack documentation of their business constraint, result, or refusal? Look at the documentation on each public member.
litespec/backend/domain#expose-repositories-for-one-aggregate-onlyExpose Repositories for One Aggregate OnlyruleanydomainrepositoryfullruleguidanceWhich domain repositories serve more than one aggregate, expose non-Domain types, or offer a composable query, session, or generic CRUD surface? Look at each repository interface.
litespec/backend/domain#express-transitions-through-business-methodsExpress Transitions Through Business MethodsruleanydomainaggregatefullruleguidanceWhich public mutations skip the state check or the invariant, or which lifecycle moves skip replacement or the transition event? Look at the public mutation methods of each aggregate.
litespec/backend/domain#give-each-use-case-its-own-actGive Each Use Case Its Own Actruleanydomainaggregatefullrulecheckablelitespec model check reports mark-count-invalid (level S), and dotnet build reports LS5003, for a root method carrying more than one use-case mark; mark-unknown and LS5002 report a mark on a method that changes no state.
litespec/backend/domain#identify-aggregates-with-strongly-typed-version-7-valuesIdentify Aggregates with Strongly Typed Version 7 Valuesruleanydomainaggregate, value-objectfullruleguidanceWhich aggregate identities escape the dedicated version 7 type, or which conversions, aliases, or creation paths bypass its validation? Look at each identity type and its creation paths.
litespec/backend/domain#keep-binary-floating-point-out-of-exact-quantitiesKeep Binary Floating Point Out of Exact Quantitiesruleanydomainvalue-objectfullrulecheckabledotnet build reports LS1008 for a double or float type in Domain.
litespec/backend/domain#keep-child-entities-inside-the-aggregate-boundaryKeep Child Entities Inside the Aggregate BoundaryruleanydomainaggregatefullruleguidanceWhich child entities expose mutable state outside their root? Look at the child entities beside their root, including collection views.
litespec/backend/domain#keep-domain-independent-of-outer-layersKeep Domain Independent of Outer LayersruleanydomainanyfullruleguidanceWhich Domain references reach beyond the language standard library and project-owned Domain types? Look at the references in the Domain code.
litespec/backend/domain#model-every-aggregate-lifecycle-with-state-typesModel Every Aggregate Lifecycle with State Typesruleanydomainstate-recordfullruleguidanceWhich aggregates expose their lifecycle outside one state property and one closed hierarchy of per-state types? Look at the lifecycle declarations in each aggregate.
litespec/backend/domain#model-every-closed-set-of-domain-values-as-a-closed-type-hierarchyModel Every Closed Set of Domain Values as a Closed Type Hierarchyruleanydomainvalue-objectfullruleguidanceWhich closed sets escape one type hierarchy with named label lookups? Look at each closed set and its boundary lookups.
litespec/backend/domain#model-money-with-exact-decimal-valuesModel Money with Exact Decimal Valuesruleanydomainvalue-objectfullruleguidanceWhich monetary amounts escape the shared Money value with its currency and JSON shape? Look at each monetary amount in Domain.
litespec/backend/domain#organize-a-module-by-aggregate-and-conceptOrganize a Module by Aggregate and Conceptconventionanydomainanyfulldefaultcheckablelitespec model check reports code-placement-drift (level S) for a domain event outside its aggregate's Events folder.
litespec/backend/domain#pass-nondeterministic-values-into-domainPass Nondeterministic Values into Domainruleanydomainanyfullrulecheckabledotnet build reports LS1009 for a clock, randomness, or identifier read in Domain.
litespec/backend/domain#place-every-constituent-type-in-its-aggregates-folderPlace Every Constituent Type in Its Aggregate's Folderruleanydomainanyfullrulecheckablelitespec model check reports constituent-parent-missing (level A) for an unmarked Domain type whose folder holds no aggregate root and is not the product Domain/ folder, and the model output lists each constituent under its aggregate.
litespec/backend/domain#raise-immutable-facts-as-domain-eventsRaise Immutable Facts as Domain Eventsruleanydomaindomain-eventfullruleguidanceWhich domain events mutate, misname their aggregate or fact, or carry more than business data? Look at each domain event.
litespec/backend/domain#raise-the-declared-events-from-the-marked-actRaise the Declared Events from the Marked Actruleanydomainaggregatefullrulecheckablelitespec model check reports act-event-undeclared (level S) for a marked method raising an event its use case does not list, and act-event-unimplemented (level S) for a listed event no marked method raises.
litespec/backend/domain#reference-other-aggregates-by-idReference Other Aggregates by IDruleanydomainaggregatefullruleguidanceWhich aggregates store another aggregate as an object reference instead of a typed identifier? Look at the fields of each aggregate.
litespec/backend/domain#reject-business-violations-with-dedicated-refusalsReject Business Violations with Dedicated Refusalsruleanydomainaggregate, value-objectfullruleguidanceWhich rejected business rules end outside a dedicated refusal with its stable code, or leak transport status? Look at each rejection beside its refusal.
litespec/backend/domain#reuse-the-shared-domain-contracts-across-modulesReuse the Shared Domain Contracts Across ModulesconventionanydomainanyfulldefaultguidanceWhich shared Domain contracts repeat their declaration across modules? Look at the root, event, identity, and refusal contracts in each module.
litespec/backend/domain#take-identity-and-events-from-the-project-root-contractTake Identity and Events from the Project Root ContractruleanydomainaggregatefullruleguidanceWhich aggregate roots take identity or event mechanics outside the project-owned root contract? Look at each aggregate root declaration.
litespec/backend/domain#treat-aggregates-as-consistency-boundariesTreat Aggregates as Consistency BoundariesruleanydomainaggregatefullruleguidanceWhich invariants admit a public mutation outside their aggregate root? Look at the public mutation entry points of each aggregate.
litespec/backend/domain#use-immutable-value-objects-for-domain-conceptsUse Immutable Value Objects for Domain Conceptsruleanydomainvalue-objectfullruleguidanceWhich value objects mutate, compare by less than their complete value, or skip validation at creation? Look at each value object and its creation paths.
litespec/backend/domain#use-one-ubiquitous-languageUse One Ubiquitous LanguageruleanydomainanyfullruleguidanceWhich Domain names match no term in the project glossary? Look at the Domain names beside glossary.yaml.
litespec/backend/domain#use-stateless-domain-services-for-ownerless-rulesUse Stateless Domain Services for Ownerless Rulesruleanydomainvalue-objectfullruleguidanceWhich domain services hold state, take non-Domain values, or reach persistence, messaging, logging, clock, authorization, or a provider? Look at each domain service and its calls.
litespec/backend/domain#use-these-domain-namesUse These Domain NamesconventionanydomainanyfulldefaultguidanceWhich Domain names break the cited workspace naming provisions, or which state cases break the one kept form? Look at each Domain name.
litespec/backend/dotnet/api#declare-operation-metadata-in-the-contractDeclare Operation Metadata in the Contractruledotnetweb-apiendpointfullruleguidanceWhich operations miss a stable operationId, authorization, request, success, or Problem Details metadata, typed results or Produces entries, or a summary? Look at each operation.
litespec/backend/dotnet/api#derive-http-statuses-from-refusal-codesDerive HTTP Statuses from Refusal Codesruledotnetweb-apianyfullruleguidanceWhich refusal codes escape the one IExceptionHandler, or map outside their outcome-table status? Look at the WebApi global handler.
litespec/backend/dotnet/api#exclude-mvc-controllers-from-the-stackExclude MVC Controllers from the Stackruledotnetweb-apianyfullrulecheckabledotnet build reports LS2003 for a WebApi class deriving from ControllerBase or carrying ApiController.
litespec/backend/dotnet/api#keep-programcs-as-compositionKeep Program.cs as Compositionconventiondotnetweb-apianyfulldefaultguidanceWhich Program.cs files break the recorded composition order or miss a step? Look at Program.cs.
litespec/backend/dotnet/api#mark-polymorphic-transport-models-with-discriminatorsMark Polymorphic Transport Models with Discriminatorsruledotnetweb-apiendpointfullruleguidanceWhich data-bearing sets escape the abstract base record with one sealed record per case and the oneOf string discriminator? Look at each data-bearing set.
litespec/backend/dotnet/api#place-endpoints-in-their-use-case-foldersPlace Endpoints in Their Use Case Foldersconventiondotnetweb-apiendpointfulldefaultguidanceWhich use case folders miss the endpoint, request and response models, or mappings named for the use case? Look at each use case folder.
litespec/backend/dotnet/api#use-one-endpoint-per-operationUse One Endpoint per Operationruledotnetweb-apiendpointfullruleguidanceWhich mapped routes escape one IEndpoint type converting input, dispatching, and mapping the result? Look at the endpoints in the use case folders.
litespec/backend/dotnet/application#bind-the-pipeline-to-the-pinned-litebus-apisBind the Pipeline to the Pinned LiteBus APIsruledotnetapplicationanyfullruleguidanceWhich pipeline positions lack their pinned LiteBus API? Look at the command pipeline composition.
litespec/backend/dotnet/application#dispatch-declared-effects-through-their-entry-pointsDispatch Declared Effects Through Their Entry Pointsruledotnetapplicationreaction, jobfullrulecheckablelitespec model check reports effect-undeclared for a dispatch no record declares; each event handler dispatches sends through the messenger port, calls through its external-system port, and runs through ICommandMediator, after the commit.
litespec/backend/dotnet/application#keep-command-handlers-to-load-call-and-stageKeep Command Handlers to Load, Call and Stageruledotnetapplicationcommand-handlerfullruleguidanceWhich command handlers do more than load or create one aggregate, call one domain method, stage it, and return? Look at each command handler body; dotnet build reports find-or-create as LS2014 and looped stores as LS2015.
litespec/backend/dotnet/application#keep-query-handlers-free-of-writesKeep Query Handlers Free of Writesruledotnetapplicationquery-handlerfullruleguidanceWhich query handlers take a repository, skip IQuerySession, or stage, store, delete, or dispatch? Look at each query handler; dotnet build reports a repository in a query handler as LS2011.
litespec/backend/dotnet/application#report-input-problems-as-validityReport Input Problems as ValidityruledotnetapplicationvalidatorfullruleguidanceWhich validators report outside Validity, or skip member, code, or message, or leak HTTP status? Look at each validator.
litespec/backend/dotnet/application#run-reactions-in-dedicated-handlersRun Reactions in Dedicated HandlersruledotnetapplicationreactionfullruleguidanceWhich reactions escape one handler class with their record's mark in the module UseCases/On{Fact} folder? Look at each reaction in its module UseCases/ folder.
litespec/backend/dotnet/application#run-scheduled-jobs-as-hosted-operationsRun Scheduled Jobs as Hosted OperationsruledotnetapplicationjobfullruleguidanceWhich scheduled or manual jobs escape one marked hosted operation honoring selection, batch size, lease, and cursor? Look at each such job.
litespec/backend/dotnet/application#use-the-pinned-mediator-entry-pointsUse the Pinned Mediator Entry Pointsconventiondotnetapplicationreaction, endpoint, jobfulldefaultguidanceWhich dispatch sites bypass ICommandMediator.SendAsync or IQueryMediator.QueryAsync, or use an unpinned LiteBus version? Look at each dispatch site.
litespec/backend/dotnet/application#use-the-use-case-folder-layoutUse the Use Case Folder LayoutconventiondotnetapplicationanyfulldefaultguidanceWhich use case folders miss message, result, validator, or handler files named for the use case, or which event handlers escape their module UseCases/On{Fact} folder? Look at each use case folder.
litespec/backend/dotnet/architecture#follow-declared-module-dependenciesFollow Declared Module DependenciesruledotnetapplicationanyfullruleguidanceWhich module references name a module outside their owner dependsOn, or close a dependency cycle? Look at the cross-module references beside the module records.
litespec/backend/dotnet/architecture#follow-layer-direction-in-every-fileFollow Layer Direction in Every Fileruledotnetapplicationanyfullrulecheckabledotnet build reports LS1001 for a Domain type naming an outer-layer type and LS2018 for an Application or WebApi type naming a type outside its layer.
litespec/backend/dotnet/architecture#keep-application-types-in-their-layer-foldersKeep Application Types in Their Layer FoldersruledotnetapplicationanyfullruleguidanceWhich commands queries results handlers validators or ports sit outside their Application folder or their Contracts kind folder? Look at the Application and Contracts folders beside the use case folders.
litespec/backend/dotnet/architecture#keep-closed-folder-sets-at-every-levelKeep Closed Folder Sets at Every Levelruledotnetapplicationanyfullrulecheckablelitespec model check reports mark-folder-drift for a folder outside its closed set or naming no declared record.
litespec/backend/dotnet/architecture#keep-composition-in-hostsKeep Composition in HostsconventiondotnetapplicationanyfulldefaultguidanceWhich service registration calls sit outside Program.cs and the host registration modules? Look at the registration calls.
litespec/backend/dotnet/architecture#keep-host-endpoints-in-hostsKeep Host Endpoints in HostsruledotnetapplicationendpointfullruleguidanceWhich host endpoints without a handler sit outside their host project, or lack their mark? Look at the host endpoints beside the use case folders.
litespec/backend/dotnet/architecture#keep-implementation-types-internalKeep Implementation Types Internalruledotnetapplicationcommand-handler, query-handler, validator, reaction, repository, endpointfullrulecheckabledotnet build reports LS2001 for an implementation type that is not internal sealed.
litespec/backend/dotnet/architecture#keep-use-case-folders-isolatedKeep Use Case Folders Isolatedruledotnetapplicationuse-case, command-handler, query-handler, validator, endpoint, reactionfullrulecheckabledotnet build reports LS2019 for a use case folder naming a type in another use case folder, other than one whose outermost type ends in Command, Query, CommandResult or QueryResult.
litespec/backend/dotnet/architecture#mirror-modules-aggregates-and-use-cases-in-one-namespace-treeMirror Modules Aggregates and Use Cases in One Namespace TreeruledotnetapplicationanyfullruleguidanceWhich types miss the product module aggregate use case namespace or name one outside its folder? Look at the namespaces beside the folders in the shared kernel and modules projects.
litespec/backend/dotnet/architecture#reach-another-module-only-through-contractsReach Another Module Only Through Contractsruledotnetapplicationanyfullrulecheckabledotnet build reports LS2020 for a module reference naming another module type outside its Contracts folder.
litespec/backend/dotnet/architecture#separate-the-shared-kernel-from-the-modulesSeparate the Shared Kernel from the ModulesconventiondotnetapplicationanyfulldefaultguidanceWhich projects sit outside the shared kernel, the modules project and their hosts, and does the shared kernel reference the modules project? Look at the solution file and the project references.
litespec/backend/dotnet/architecture#use-one-public-assembly-markerUse One Public Assembly MarkerconventiondotnetapplicationanyfulldefaultguidanceDoes the modules project expose one public static assembly marker, and does any other project expose one it needs not? Look at each project for its marker.
litespec/backend/dotnet/config#centralize-net-build-settingsCentralize .NET Build Settingsruledotnetworkspace-fullruleguidanceDoes apps/api/Directory.Build.props set the manifest target framework with nullable types, implicit usings, and warnings as errors? Look at that file.
litespec/backend/dotnet/config#centralize-nuget-versionsCentralize NuGet Versionsruledotnetworkspace-fullruleguidanceDoes apps/api/Directory.Packages.props enable central management with the manifest pins, and which project files carry versions? Look at the central file beside the project files.
litespec/backend/dotnet/config#commit-the-tool-manifestCommit the Tool Manifestruledotnetworkspace-fullruleguidanceWhich local tools that a documented command invokes escape the root .config/dotnet-tools.json pin, including the Stryker.NET runner? Look at the tool manifest.
litespec/backend/dotnet/config#set-the-sdk-floor-at-the-workspace-rootSet the SDK Floor at the Workspace Rootruledotnetworkspace-fullruleguidanceDoes the root global.json set the manifest major release's first feature band with latestFeature roll-forward? Look at the root global.json.
litespec/backend/dotnet/domain#define-the-shared-domain-contracts-onceDefine the Shared Domain Contracts OnceconventiondotnetdomainanyfulldefaultguidanceWhich shared Domain contracts repeat, or which DomainException or AggregateRoot<TId> break their declared shape? Look at the shared contracts.
litespec/backend/dotnet/domain#document-every-public-domain-contractDocument Every Public Domain Contractruledotnetdomainanyfullrulecheckabledotnet build reports LS1011 for a public Domain type or member without XML documentation.
litespec/backend/dotnet/domain#expose-cross-record-keys-from-the-aggregateExpose Cross-Record Keys from the AggregateruledotnetdomainaggregatefullruleguidanceWhich aggregates with a cross-record uniqueness rule miss UniquenessKeys, or carry other uniqueness code in Domain? Look at each such aggregate.
litespec/backend/dotnet/domain#implement-domain-services-as-stateless-classesImplement Domain Services as Stateless Classesruledotnetdomainvalue-objectfullruleguidanceWhich domain services hold state, take non-Domain parameters, or call a provider? Look at each domain service.
litespec/backend/dotnet/domain#keep-domain-free-of-outer-layer-concernsKeep Domain Free of Outer-Layer Concernsruledotnetdomainanyfullrulecheckabledotnet build reports LS1001 for Domain code naming an outer-layer type.
litespec/backend/dotnet/domain#keep-id-representations-aligned-at-every-boundaryKeep ID Representations Aligned at Every Boundaryconventiondotnetdomainaggregate, state-record, value-object, domain-eventfulldefaultguidanceWhich identifiers break the same UUID text form across Domain, persistence, transport, and client boundaries? Look at one identifier in each boundary form.
litespec/backend/dotnet/domain#keep-repository-interfaces-in-domainKeep Repository Interfaces in Domainruledotnetdomainrepositoryfullrulecheckabledotnet build reports LS1010 for a repository interface exposing a query surface.
litespec/backend/dotnet/domain#make-money-and-decimal-rules-explicitMake Money and Decimal Rules Explicitruledotnetdomainvalue-objectfullruleguidanceWhich monetary amounts escape the decimal inside the shared Money object with amount and currency? Look at each monetary amount.
litespec/backend/dotnet/domain#model-child-entities-as-sealed-classesModel Child Entities as Sealed Classesruledotnetdomainaggregate, value-objectfullruleguidanceWhich child entity declarations escape the sealed class deriving from Entity<TId> or creation through root methods? Look at each child entity.
litespec/backend/dotnet/domain#model-every-aggregate-lifecycle-with-state-recordsModel Every Aggregate Lifecycle with State Recordsruledotnetdomainstate-recordfullrulecheckabledotnet build reports LS1003 for an aggregate with no State property, LS1004 for a state case left unsealed, and LS1013 for a switch that leaves a sealed state case to its discard arm.
litespec/backend/dotnet/domain#model-every-closed-set-of-domain-values-without-enumsModel Every Closed Set of Domain Values Without Enumsruledotnetdomainvalue-objectfullrulecheckabledotnet build reports LS1002 for an enum declared in Domain and LS1013 for a switch that leaves a sealed case to its discard arm.
litespec/backend/dotnet/domain#model-value-objects-as-recordsModel Value Objects as Recordsruledotnetdomainvalue-objectfullruleguidanceWhich value objects escape the immutable record with static creation and no base type? Look at each value object.
litespec/backend/dotnet/domain#raise-immutable-domain-factsRaise Immutable Domain Factsruledotnetdomaindomain-eventfullrulecheckabledotnet build reports LS1007 for a domain event that is not an immutable record.
litespec/backend/dotnet/domain#raise-the-past-tense-of-a-methods-own-verbRaise the Past Tense of a Method's Own VerbruledotnetdomainaggregatefullruleguidanceWhich state-changing aggregate methods raise an event named for another verb? Look at the events each changed aggregate method raises.
litespec/backend/dotnet/domain#reject-business-violations-with-domain-exceptionsReject Business Violations with Domain Exceptionsruledotnetdomainaggregate, value-objectfullrulecheckabledotnet build reports LS1005 for a throw outside a DomainException subclass and LS1006 for a domain exception that is misnamed or open.
litespec/backend/dotnet/domain#use-strongly-typed-version-7-identifiersUse Strongly Typed Version 7 Identifiersruledotnetdomainaggregate, value-objectfullrulecheckabledotnet build reports LS1012 for an Id struct outside the strongly typed form, or a raw Guid as an aggregate identity.
litespec/backend/dotnet/domain#use-the-domain-layer-folder-layoutUse the Domain Layer Folder LayoutconventiondotnetdomainanyfulldefaultguidanceWhich aggregate Domain folders break the states events exceptions and concepts layout, or hold a typed identifier another module names? Look at each Domain folder beside its Contracts folder.
litespec/backend/dotnet/domain#use-the-project-aggregate-root-contractUse the Project Aggregate Root ContractruledotnetdomainaggregatefullruleguidanceWhich aggregate root declarations escape the sealed class deriving from the project-owned AggregateRoot<TId>? Look at each root declaration.
litespec/backend/dotnet/ext/bdd#assert-observable-outcomesAssert Observable Outcomesruledotnettests-fullruleguidanceWhich BDD scenarios assert no response, read, event, record, or other observable outcome? Look at each BDD scenario in the acceptance suite.
litespec/backend/dotnet/ext/bdd#avoid-routine-scenario-duplicationAvoid Routine Scenario Duplicationruledotnettests-fullruleguidanceWhich unit or validation tests repeat as a duplicate BDD scenario? Look at the narrower suites beside the acceptance suite.
litespec/backend/dotnet/ext/bdd#drive-public-behaviorDrive Public Behaviorruledotnettests-fullruleguidanceWhich step definitions call outside the HTTP API and the declared public boundaries? Look at each step definition in the acceptance suite.
litespec/backend/dotnet/ext/bdd#exclude-production-internalsExclude Production Internalsruledotnettests-fullruleguidanceWhich step definitions resolve a repository, handler, session, or the production service provider? Look at each step definition in the acceptance suite.
litespec/backend/dotnet/ext/bdd#group-feature-files-by-moduleGroup Feature Files by Moduleconventiondotnettests-fulldefaultguidanceWhich feature files or feature classes sit outside module folders without a documented grouping? Look at Acceptance.Tests beside the project documentation.
litespec/backend/dotnet/ext/bdd#isolate-scenario-executionIsolate Scenario Executionruledotnettests-fullruleguidanceWhich scenarios fail alone or in another order, or which runs skip the state reset? Look at the acceptance suite runs.
litespec/backend/dotnet/ext/bdd#keep-steps-vocabulary-scopedKeep Steps Vocabulary-Scopedconventiondotnettests-fulldefaultguidanceWhich reusable step sets serve more than one business vocabulary without a documented scope? Look at each reusable step set beside the project documentation.
litespec/backend/dotnet/ext/bdd#limit-database-assertionsLimit Database Assertionsruledotnettests-fullruleguidanceWhich direct database assertions name no documented durable boundary? Look at each direct database assertion in the acceptance suite.
litespec/backend/dotnet/ext/bdd#limit-scenario-contextLimit Scenario Contextconventiondotnettests-fulldefaultguidanceWhich scenario context objects hold more than scenario state without a documented use? Look at the scenario context beside the project documentation.
litespec/backend/dotnet/ext/bdd#mark-pull-request-scenariosMark Pull-Request Scenariosconventiondotnettests-fulldefaultguidanceWhich pull-request subsets grow beyond their stated bound or lose their owner? Look at the marked subset beside the proves claims.
litespec/backend/dotnet/ext/bdd#own-scenario-dataOwn Scenario Dataruledotnettests-fullruleguidanceWhich BDD scenarios borrow identifiers, actor context, requests, responses, or expected state? Look at each BDD scenario in the acceptance suite.
litespec/backend/dotnet/ext/bdd#preserve-scenario-failuresPreserve Scenario Failuresruledotnettests-fullruleguidanceWhich hooks skip awaiting setup or cleanup, or replace the original scenario failure? Look at each hook in the acceptance suite.
litespec/backend/dotnet/ext/bdd#prove-a-scenario-from-every-bdd-scenarioProve a Scenario from Every BDD Scenarioruledotnettests-fullruleguidanceWhich BDD scenarios lack one proves claim naming their scenario? Look at each BDD scenario in the acceptance suite.
litespec/backend/dotnet/ext/bdd#select-shared-critical-examplesSelect Shared Critical Examplesruledotnettests-fullruleguidanceWhich BDD scenarios trace to no cross-layer example the team discusses in business language? Look at each BDD scenario in the acceptance suite.
litespec/backend/dotnet/ext/bdd#translate-business-phrasesTranslate Business Phrasesruledotnettests-fullruleguidanceWhich step definitions skip the typed test-driver call? Look at each step definition in the acceptance suite.
litespec/backend/dotnet/ext/layer-projects#keep-application-dependencies-narrowKeep Application Dependencies Narrowruledotnetapplication-fullruleguidanceWhich Application project files reference beyond the permitted abstractions and the one read boundary? Look at the Application project file.
litespec/backend/dotnet/ext/layer-projects#keep-domain-package-freeKeep Domain Package-Freeruledotnetapplication-fullruleguidanceWhich Domain project files reference a package beyond the base class library? Look at the Domain project file.
litespec/backend/dotnet/ext/layer-projects#keep-net-production-and-test-projects-separateKeep .NET Production and Test Projects Separateruledotnetapplication-fullruleguidanceWhich production or test project files, or solution files, sit outside their fixed address? Look at apps/api/.
litespec/backend/dotnet/ext/layer-projects#keep-one-application-assemblyKeep One Application Assemblyruledotnetapplication-fullruleguidanceWhich command, query, result, validator, handler, or event handler files escape the Application project, or which cross-module contracts escape Application.Abstractions and the merged Application? Look at the Application project files beside the shared contracts.
litespec/backend/dotnet/ext/layer-projects#keep-the-test-projects-the-size-requiresKeep the Test Projects the Size Requiresruledotnetapplication-fullruleguidanceWhich solution trees miss Architecture or Integration test projects, or add Acceptance outside size large? Look at apps/api/tests/ beside the declared size.
litespec/backend/dotnet/ext/layer-projects#mirror-modules-in-folders-and-namespacesMirror Modules in Folders and Namespacesruledotnetapplication-fullruleguidanceWhich projects miss one folder and namespace per module, or name one outside its module? Look at the module folders and namespaces in every project.
litespec/backend/dotnet/ext/layer-projects#run-litespecanalyzers-in-every-application-projectRun LiteSpec.Analyzers in Every Application Projectconventiondotnetapplication-fulldefaultguidanceWhich layer project files miss LiteSpec.Analyzers at the manifest pin with PrivateAssets="all"? Look at each layer project file.
litespec/backend/dotnet/ext/layer-projects#use-five-application-projectsUse Five Application Projectsconventiondotnetapplication-fulldefaultguidanceWhich projects sit outside the five baseline projects, the merged small layout, or the allowed hosts and Worker? Look at the solution file beside the declared project size.
litespec/backend/dotnet/ext/layer-projects#use-the-domain-module-layoutUse the Domain Module Layoutconventiondotnetapplication-fulldefaultguidanceWhich Domain module folders break the one plural folder per aggregate with states, events, exceptions, and concepts? Look at each module folder.
litespec/backend/dotnet/ext/layer-projects#use-the-endpoint-folder-layoutUse the Endpoint Folder Layoutconventiondotnetapplication-fulldefaultguidanceWhich endpoint folders miss the endpoint, request and response models, or mappings named for the use case? Look at each endpoint folder.
litespec/backend/dotnet/ext/layer-projects#use-the-operation-folder-layoutUse the Operation Folder Layoutconventiondotnetapplication-fulldefaultguidanceWhich operation folders miss message, result, validator, or handler files named for the use case, or which event handlers escape their On{Fact} folder? Look at each operation folder.
litespec/backend/dotnet/ext/layer-projects#use-the-project-reference-graphUse the Project Reference Graphruledotnetapplication-fullruleguidanceWhich project files add a reference outside the permitted edges of the graph table? Look at each project file beside the graph table.
litespec/backend/dotnet/ext/layer-projects#use-this-baseline-package-ownershipUse This Baseline Package Ownershipconventiondotnetapplication-fulldefaultguidanceWhich baseline package references sit outside the project the ownership table assigns? Look at each package reference beside the ownership table.
litespec/backend/dotnet/ext/layer-projects#use-this-infrastructure-layoutUse This Infrastructure Layoutconventiondotnetapplication-fulldefaultguidanceWhich Marten configuration, repository, commit, or serialization files sit outside the one Infrastructure persistence folder? Look at the persistence files.
litespec/backend/dotnet/naming#keep-implementation-style-consistentKeep Implementation Style Consistentruledotnetworkspace-fullrulecheckabledotnet build reports LS3004 for a concrete class with no derived type that is not sealed.
litespec/backend/dotnet/naming#match-c-files-and-primary-typesMatch C# Files and Primary Typesruledotnetworkspace-fullrulecheckabledotnet build reports SA1649 for a C# file whose name differs from its primary type.
litespec/backend/dotnet/naming#name-no-folder-or-type-for-the-absence-of-a-reasonName No Folder or Type for the Absence of a Reasonconventiondotnetworkspace-fulldefaultcheckablelitespec model check reports name-reason-missing (level S) for a folder or type named for the absence of a reason outside the declared shared kernel.
litespec/backend/dotnet/packages#raise-the-litebus-handler-analyzers-to-errorsRaise the LiteBus Handler Analyzers to Errorsconventiondotnetworkspace-fulldefaultguidanceDoes .editorconfig set LB1023 and LB1024 to error and list litebus.LB1024.forbidden_types? Look at .editorconfig.
litespec/backend/dotnet/packages#reference-only-the-litebus-module-requiredReference Only the LiteBus Module Requiredconventiondotnetworkspace-fulldefaultguidanceWhich project files reference a LiteBus module their code never dispatches? Look at each project file.
litespec/backend/dotnet/packages#run-litespec-analyzers-in-the-business-projects-and-hostsRun LiteSpec Analyzers in the Business Projects and Hostsconventiondotnetworkspace-fulldefaultguidanceWhich shared kernel, modules, or host project files miss LiteSpec.Analyzers at the manifest pin with PrivateAssets="all"? Look at each business and host project file.
litespec/backend/dotnet/persistence#apply-optimistic-concurrency-to-every-aggregate-documentApply Optimistic Concurrency to Every Aggregate DocumentruledotnetinfrastructureaggregatefullruleguidanceWhich Marten aggregate document types skip optimistic concurrency? Look at each document type and the document policy.
litespec/backend/dotnet/persistence#claim-cross-record-keys-with-a-claims-documentClaim Cross-Record Keys with a Claims DocumentruledotnetinfrastructurerepositoryfullruleguidanceWhich cross-record keys bypass the claims document with session.Insert, or use Store on the claims type? Look at each key claim.
litespec/backend/dotnet/persistence#commit-once-in-the-command-pipelineCommit Once in the Command PipelineruledotnetinfrastructureanyfullruleguidanceWhich pipelines commit outside one post-handler file calling SaveChangesAsync? Look at the SaveChangesAsync calls in each pipeline.
litespec/backend/dotnet/persistence#enforce-uniqueness-with-marten-unique-indexesEnforce Uniqueness with Marten Unique IndexesruledotnetinfrastructureaggregatefullruleguidanceWhich Marten aggregate documents with a uniqueness rule lack a unique index or an owner-derived identity? Look at the store configuration.
litespec/backend/dotnet/persistence#map-constraint-violations-with-the-postgresql-refusal-classifierMap Constraint Violations with the PostgreSQL Refusal ClassifierruledotnetinfrastructureanyfullruleguidanceWhich unique index names lack a conflict refusal code in the PostgreSQL refusal classifier? Look at the service registration.
litespec/backend/dotnet/persistence#map-marten-concurrency-faults-to-conflict-refusalsMap Marten Concurrency Faults to Conflict RefusalsruledotnetinfrastructureanyfullruleguidanceWhich ConcurrencyException paths at commit escape the use case conflict refusal? Look at the registered classifier.
litespec/backend/dotnet/persistence#query-through-iquerysessionQuery Through IQuerySessionruledotnetinfrastructurequery-handlerfullruleguidanceWhich query handlers project outside IQuerySession, or apply filter, scope, ordering, or limit after materialization? Look at each query handler file.
litespec/backend/dotnet/persistence#register-one-scoped-sessionRegister One Scoped SessionconventiondotnetinfrastructureanyfulldefaultguidanceDoes the service registration wire IDocumentSession once per WebApi request or Worker operation scope? Look at the service registration.
litespec/backend/dotnet/persistence#stage-aggregate-writes-through-repositoriesStage Aggregate Writes Through Repositoriesruledotnetinfrastructurecommand-handlerfullrulecheckabledotnet build reports LS2004 for a command handler writing through a document session or database context.
litespec/backend/dotnet/persistence#use-the-persistence-layer-folder-layoutUse the Persistence Layer Folder LayoutconventiondotnetinfrastructureanyfulldefaultguidanceWhich Marten configuration, repository, commit, or serialization files sit outside their shared kernel or module Infrastructure folder? Look at the persistence files.
litespec/backend/dotnet/stack#declare-dotnet-as-the-backend-stackDeclare dotnet as the Backend Stackruledotnetrecords-fullruleguidanceDoes the stacks array in .litespec/project.json list dotnet when the backend runs on .NET? Look at .litespec/project.json.
litespec/backend/dotnet/stack#declare-marked-events-and-exceptions-as-partial-typesDeclare Marked Events and Exceptions as Partial Typesruledotnetrecords-fullrulecheckabledotnet build reports LS5006 for a marked domain event or rule exception that is not partial, in every project that references the analyzer package.
litespec/backend/dotnet/stack#generate-runtime-values-from-the-recordsGenerate Runtime Values from the Recordsruledotnetrecords-fullrulecheckablelitespec model check reports runtime-value-drift (level S) for a hand-written value that differs from its record, and dotnet build reports LS5005 for the same value.
litespec/backend/dotnet/stack#generate-the-registry-permissions-and-roles-from-the-recordsGenerate the Registry, Permissions, and Roles from the Recordsruledotnetrecords-fullrulecheckabledotnet build reports LS5009 for two records generating one constant name, LS5011 for a message two marked handlers serve with different use cases, and LS5012 for a role allowing a permission no record declares.
litespec/backend/dotnet/stack#identify-an-aggregate-root-by-its-mark-and-state-record-at-tracedIdentify an Aggregate Root by Its Mark and State Record at Tracedruledotnetrecords-tracedrulecheckablelitespec model check reports aggregate-unimplemented (level S) for an aggregate record that no type with its mark and its state record, and no type deriving the aggregate root base, implements.
litespec/backend/dotnet/stack#read-every-declared-web-and-worker-hostRead Every Declared Web and Worker Hostruledotnetrecords-fullrulecheckablelitespec model check reports reader-missing (level S) for a named host folder that does not exist, and reads the handlers, endpoints and jobs of each named host that does.
litespec/backend/dotnet/stack#read-net-code-through-the-stack-readerRead .NET Code Through the Stack Readerruledotnetrecords-fullrulecheckablelitespec model check reports its level beside each level S finding read from C# code and test results.
litespec/backend/dotnet/stack#report-a-stack-root-that-matches-no-folderReport a Stack Root That Matches No Folderruledotnetrecords-fullrulecheckablelitespec model check reports reader-missing (level S) naming the field, the written pattern and the resolved folder that does not exist.
litespec/backend/dotnet/stack#write-each-mark-in-the-declared-styleWrite Each Mark in the Declared Styleruledotnetrecords-fullrulecheckablelitespec model check reports mark-style-invalid (level S), and dotnet build reports LS5004, for a mark written in the style the project did not declare.
litespec/backend/dotnet/stack#write-test-results-the-model-builder-readsWrite Test Results the Model Builder Readsruledotnetrecords-fullruleguidanceWhich test runs write a result outside TRX or JUnit XML, or outside paths.testResults? Look at the test run output beside paths.testResults in .litespec/project.json.
litespec/backend/dotnet/workspace#keep-one-workspace-solution-beside-the-api-solutionKeep One Workspace Solution Beside the API Solutionruledotnetworkspace-fullruleguidanceWhich root solution files list a single deployable, or which builds, test runs, or configuration name outside the API solution? Look at the solution files beside the build configuration.
litespec/backend/dotnet/workspace#place-a-workspace-apphost-beside-the-applications-it-runsPlace a Workspace AppHost Beside the Applications It Runsruledotnetworkspace-fullruleguidanceWhich AppHosts sit outside their placed home for what they run? Look at each AppHost path beside the applications it runs.
litespec/backend/identifiers#cite-shared-provisions-in-their-published-formCite Shared Provisions in Their Published Formruleanyrecords-fullrulecheckablelitespec-maintain validate emits no ID_UNKNOWN_REFERENCE diagnostic.
litespec/backend/identifiers#follow-the-identifier-form-of-each-record-typeFollow the Identifier Form of Each Record Typeruleanyrecords-fullrulecheckablelitespec model check reports identifier-invalid for an identifier outside the form its type uses.
litespec/backend/identifiers#keep-wire-codes-stableKeep Wire Codes Stableruleanyrecords-fullruleguidanceWhich wire codes in the contract break the values deployed clients branch on? Look at the wire codes beside the deployed clients.
litespec/backend/identifiers#name-records-with-one-to-six-wordsName Records with One to Six Wordsruleanyrecords-fullrulecheckablelitespec model check reports identifier-invalid for a name outside one to six lowercase hyphenated words.
litespec/backend/identifiers#resolve-every-identifier-citationResolve Every Identifier Citationruleanyrecords-fullrulecheckablelitespec model check reports reference-unknown for a citation naming no written record.
litespec/backend/identifiers#use-every-identifier-onceUse Every Identifier Onceruleanyrecords-fullrulecheckablelitespec model check reports identifier-duplicate for an identifier used twice.
litespec/backend/persistence#add-read-documents-for-query-shaped-dataAdd Read Documents for Query-Shaped DataconventionanyinfrastructureanyfulldefaultguidanceWhich read documents lack recorded consistency and rebuild behavior beside their owning use case? Look at each read document.
litespec/backend/persistence#assign-document-numbers-from-a-sequenceAssign Document Numbers from a Sequenceruleanyinfrastructurecommand-handler, repositoryfullruleguidanceWhich legal document numbers allocate outside a per-owner sequence taken in the command transaction? Look at each number allocation.
litespec/backend/persistence#bound-aggregate-document-growthBound Aggregate Document GrowthruleanyinfrastructureaggregatefullruleguidanceWhich aggregate documents embed a collection with no accepted business bound? Look at the embedded collections in each document.
litespec/backend/persistence#claim-a-cross-record-key-at-commitClaim a Cross-Record Key at CommitruleanyinfrastructurerepositoryfullruleguidanceWhich cross-record uniqueness rules miss declared keys, or claim and release them outside the committing transaction? Look at each such rule beside its commit.
litespec/backend/persistence#collect-events-without-a-public-unit-of-workCollect Events Without a Public Unit of WorkruleanyinfrastructurerepositoryfullruleguidanceWhich repositories skip the internal event buffer, or which event mechanics escape into a public type? Look at the repository staging calls beside the post-handler.
litespec/backend/persistence#commit-each-command-pipeline-onceCommit Each Command Pipeline OnceruleanyinfrastructureanyfullruleguidanceWhich pipelines commit outside one command post-handler, or which handlers, repositories, validators, reactions, jobs, or endpoints commit? Look at the commit calls in each pipeline.
litespec/backend/persistence#control-production-schema-changesControl Production Schema ChangesruleanyinfrastructuremigrationfullruleguidanceWhich hosted schema changes run outside a reviewed step before traffic shifts? Look at the deployment steps beside the startup paths.
litespec/backend/persistence#enforce-uniqueness-in-the-storeEnforce Uniqueness in the StoreruleanyinfrastructureaggregatefullruleguidanceWhich uniqueness rules lack a store unique index or an owner-derived identity, or index a denormalized field? Look at the store configuration for each rule.
litespec/backend/persistence#evolve-stored-document-contracts-explicitlyEvolve Stored Document Contracts ExplicitlyruleanyinfrastructureaggregatefullruleguidanceWhich renames, removals, type changes, member moves, or discriminator changes lack a reviewed transformation or an expand-and-contract rollout? Look at each stored-contract change.
litespec/backend/persistence#honor-the-declared-consistency-modeHonor the Declared Consistency ModeruleanyinfrastructureanyfullruleguidanceWhich commands commit outside their record's consistency mode? Look at each commit beside the record's mode.
litespec/backend/persistence#keep-mappings-and-aliases-explicitKeep Mappings and Aliases ExplicitruleanyinfrastructureaggregatefullruleguidanceWhich stored aggregates lack a stable document alias, typed-identifier mapping, or index list? Look at the store configuration for each aggregate.
litespec/backend/persistence#keep-serialization-behavior-out-of-domainKeep Serialization Behavior Out of DomainruleanyinfrastructureaggregatefullruleguidanceWhich Domain types carry serialization metadata, or which stored JSON contracts escape Infrastructure? Look at the Domain types beside the Infrastructure JSON contract.
litespec/backend/persistence#keep-uniqueness-out-of-handlersKeep Uniqueness Out of Handlersruleanyinfrastructurecommand-handlerfullrulecheckabledotnet build reports LS2016 for a handler whose constructor takes a pipeline-owned type.
litespec/backend/persistence#map-a-constraint-violation-to-its-refusalMap a Constraint Violation to Its RefusalruleanyinfrastructureanyfullruleguidanceWhich unique constraints lack a conflict refusal mapping for their violating use cases? Look at the fault classification map.
litespec/backend/persistence#model-a-once-only-rule-as-aggregate-stateModel a Once-Only Rule as Aggregate StateruleanyinfrastructureaggregatefullruleguidanceWhich at-most-once rules live outside their aggregate's state, or which repeats escape the refusal? Look at each such rule beside its aggregate.
litespec/backend/persistence#persist-one-explicit-state-objectPersist One Explicit State Objectconventionanyinfrastructurestate-recordfulldefaultguidanceWhich aggregate documents flatten their state object, or which states fail to round-trip through the serializer? Look at each stored state in the integration tests.
litespec/backend/persistence#query-through-the-read-sessionQuery Through the Read Sessionruleanyinfrastructurequery-handlerfullruleguidanceWhich query handlers project outside the read session, or apply filter, scope, ordering, or limit after materialization? Look at each query handler body.
litespec/backend/persistence#read-collection-queries-in-the-store-with-paging-and-filtersRead Collection Queries in the Store with Paging and Filtersruleanyinfrastructurequery-handlerfullrulecheckablelitespec model check reports query-filter-invalid (level A) for a query handler filtering a repository list in memory.
litespec/backend/persistence#review-query-plans-for-new-indexesReview Query Plans for New IndexesconventionanyinfrastructureanyfulladviceguidanceWhich new indexes lack an accepted query and a justifying plan? Look at each new index beside its query.
litespec/backend/persistence#stage-aggregate-writes-through-domain-repositoriesStage Aggregate Writes Through Domain Repositoriesruleanyinfrastructurecommand-handlerfullrulecheckablelitespec model check reports repository-unimplemented (level S) for an aggregate a use case changes that has no Infrastructure repository implementing its domain repository.
litespec/backend/persistence#test-persistence-against-postgresqlTest Persistence Against PostgreSQLruleanyinfrastructuretestfullruleguidanceWhich persistence tests run outside the pinned PostgreSQL, or against an in-memory substitute? Look at the persistence test fixtures.
litespec/backend/persistence#use-database-naming-conventionsUse Database Naming ConventionsruleanyinfrastructureanyfullruleguidanceWhich generated database identifiers break snake_case? Look at the schemas, tables, columns, and indexes.
litespec/backend/persistence#use-one-persistence-folderUse One Persistence FolderconventionanyinfrastructureanyfulldefaultguidanceWhich store setup, repository, or commit files sit outside the product or module Infrastructure/ folders? Look at the persistence files beside the module tree.
litespec/backend/persistence#use-one-session-per-commandUse One Session per CommandconventionanyinfrastructureanyfulldefaultguidanceWhich commands resolve more than one session across their repositories and commit handler? Look at the session wiring in each command.
litespec/backend/persistence#version-every-aggregateVersion Every AggregateruleanyinfrastructureaggregatefullruleguidanceWhich stored aggregates lack a compared version at commit, or which stale writes escape the use case conflict refusal? Look at each stored aggregate beside its commit.
litespec/backend/testing#derive-expected-values-from-the-scenarioDerive Expected Values from the Scenarioruleanytests-fullruleguidanceWhich test assertions repeat values outside the Then of their scenarios? Look at each assertion beside its scenario text.
litespec/backend/testing#isolate-integration-stateIsolate Integration Stateruleanytests-fullruleguidanceWhich integration tests share mutable business state across runs, or which reset strategies stay undocumented? Look at the tests beside the testing documentation.
litespec/backend/testing#keep-assertions-focusedKeep Assertions Focusedconventionanytests-fulladviceguidanceWhich test bodies assert outside their named outcome, or snapshot whole objects? Look at each test body.
litespec/backend/testing#keep-the-test-suites-the-size-requiresKeep the Test Suites the Size Requiresruleanytests-fullruleguidanceWhich test folders miss a required suite, or hold an extra unnamed one? Look at the test folders beside the declared project size.
litespec/backend/testing#mark-the-test-that-proves-each-scenarioMark the Test That Proves Each Scenarioruleanytests-fullruleguidanceWhich scenarios lack a proving test with its mark, boundary call, and passing run? Look at the book beside the test bodies.
litespec/backend/testing#match-tests-by-fully-qualified-nameMatch Tests by Fully Qualified Nameruleanytests-fullruleguidanceWhich test results match outside fully qualified names, or carry data-row arguments? Look at the test result files.
litespec/backend/testing#mirror-production-module-namesMirror Production Module Namesconventionanytests-fulldefaultguidanceWhich test trees break the production module folders outside the exempt harness files and adapter tests? Look at each test tree beside production.
litespec/backend/testing#name-tests-by-observable-behaviorName Tests by Observable Behaviorconventionanytests-fulladviceguidanceWhich test names miss operation, condition, or expected result, or which classes miss their production type? Look at the test names.
litespec/backend/testing#prove-each-rule-through-its-scenariosProve Each Rule Through Its Scenariosruleanytests-fullruleguidanceWhich rule claims stand without a proved scenario claim on the same test? Look at each rule claim.
litespec/backend/testing#prove-every-aggregate-with-a-model-based-testProve Every Aggregate with a Model-Based Testconventionanytests-fulldefaultguidanceWhich aggregates at size large lack a model-based test walking their declared transitions? Look at the aggregates beside their model-based test files and the declared project size.
litespec/backend/testing#prove-every-calculation-with-property-testsProve Every Calculation with Property Testsconventionanytests-fulldefaultguidanceWhich calculation rules at size large lack property tests seeded from their scenario examples? Look at the calculation rules beside their property test files and the declared project size.
litespec/backend/testing#refuse-surviving-mutants-on-changed-linesRefuse Surviving Mutants on Changed Linesconventionanytests-fulldefaultguidanceWhich changes landed with survivors above the recorded threshold and no covering exception? Look at the mutation report beside the exception records.
litespec/backend/testing#share-one-production-faithful-integration-harnessShare One Production-Faithful Integration Harnessruleanytests-fullruleguidanceWhich integration suites miss the one container fixture, host factory, or isolation helper, or hold a second of one? Look at the integration suite.
litespec/backend/testing#test-application-coordinationTest Application Coordinationruleanytests-fullruleguidanceWhich Application tests skip a substitute, or miss a coordination assertion? Look at each Application test file.
litespec/backend/testing#test-domain-in-isolationTest Domain in Isolationruleanytests-fullruleguidanceWhich Domain tests take more than explicit inputs? Look at the Domain test files for database, host, container, clock, or mock use.
litespec/backend/testing#test-http-integration-through-the-real-application-hostTest HTTP Integration Through the Real Application Hostruleanytests-fullruleguidanceWhich HTTP integration tests bypass the real host factory or production configuration, or skip Problem Details, authentication, or authorization? Look at the HTTP integration tests.
litespec/backend/testing#use-builders-for-valid-defaultsUse Builders for Valid Defaultsconventionanytests-fulladviceguidanceWhich test data builders start outside valid state, or customize without business names? Look at each builder.
litespec/backend/testing#use-evidence-rather-than-one-coverage-targetUse Evidence Rather Than One Coverage Targetruleanytests-fullruleguidanceWhich build gates name a coverage percentage as sufficient? Look at the build gates beside the coverage numbers.

core#

IDProvisionKindStackLayerArtifactConformanceStrengthMarkEvidence
litespec/core/access#authenticate-every-caller-through-a-declared-auth-kindAuthenticate Every Caller Through a Declared Auth Kindruleanyrecordsrecord:entry-pointrecordsrulecheckablelitespec model check reports field-invalid for an auth kind outside session, token, device, link, app, and none.
litespec/core/access#cite-the-setting-or-plan-behind-every-entitlementCite the Setting or Plan Behind Every Entitlementruleanyrecordsrecord:use-caserecordsruleguidanceWhich entitlement grants lack a cited setting or plan? Look at the grant beside the settings each use case cites.
litespec/core/access#declare-access-on-every-use-caseDeclare Access on Every Use Caseruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a use case without access, grant, or tenant.
litespec/core/access#declare-erasure-for-every-external-systemDeclare Erasure for Every External Systemruleanyrecordsrecord:external-systemrecordsrulecheckablelitespec model check reports record-invalid for an external system without erasure and reference-unknown for an impossible erasure without an Intent decision.
litespec/core/access#declare-every-operation-on-every-external-systemDeclare Every Operation on Every External Systemruleanyrecordsrecord:external-systemrecordsrulecheckablelitespec model check reports record-invalid for an external system without operations and reference-unknown for a calls edge naming no declared operation.
litespec/core/access#describe-every-served-content-entry-point-with-its-serving-fieldsDescribe Every Served Content Entry Point with Its Serving Fieldsruleanyrecordsrecord:entry-pointrecordsrulecheckablelitespec model check reports record-invalid for a served content entry point without path, contentType, cacheControl, versioning, or fulfills.
litespec/core/access#grant-across-tenants-only-through-declared-delegationGrant Across Tenants Only Through Declared DelegationruleanyrecordsanyrecordsruleguidanceWhich cross tenant delegation grants lack a declared grant on both sides? Look at the delegation grants the tenancy extension declares.
litespec/core/access#grant-every-use-case-through-a-declared-grantGrant Every Use Case Through a Declared Grantruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports field-invalid for a grant outside permission, self, anonymous, and system, and reference-unknown for a permission no record defines.
litespec/core/access#grant-permissions-through-rolesGrant Permissions Through Rolesruleanyrecordsrecord:rolerecordsrulecheckablelitespec model check reports record-invalid for a role with no allows entry, and permission-orphan for a permission allowed by no role.
litespec/core/access#keep-access-records-in-their-homesKeep Access Records in Their Homesruleanyrecordsrecord:actor, record:role, record:permission, record:entry-point, record:external-systemrecordsruleguidanceWhich access records sit outside the homes their type names? Look at the actor, role, permission, entry point, and external system homes.
litespec/core/access#keep-permission-lists-to-entriesKeep Permission Lists to Entriesruleanyrecordsrecord:permission-listrecordsruleguidanceWhich module permissions files carry an explanation file? Look beside each permissions file for a .md file with its name.
litespec/core/access#name-every-actor-with-its-kindName Every Actor with Its Kindruleanyrecordsrecord:actorrecordsrulecheckablelitespec model check reports record-invalid for an actor without kind and field-invalid for a kind outside person and organization.
litespec/core/access#name-every-entry-point-with-its-kindName Every Entry Point with Its Kindruleanyrecordsrecord:entry-pointrecordsrulecheckablelitespec model check reports record-invalid for an entry point without kind and field-invalid for a kind outside browser, api, webhook, device, cli, mcp, and served-content.
litespec/core/access#prove-hierarchies-derived-trust-and-delegation-with-scenariosProve Hierarchies Derived Trust and Delegation with Scenariosruleanyrecordsrecord:use-caserecordsruleguidanceWhich hierarchy, trust, or delegation patterns lack an allowed and a refused scenario? Look at the scenarios on the use cases that carry the pattern.
litespec/core/access#record-a-delegated-grant-inside-one-tenant-as-a-role-assignmentRecord a Delegated Grant Inside One Tenant as a Role Assignmentruleanyrecordsrecord:use-case, record:aggregaterecordsruleguidanceWhich delegated or temporary grants inside one tenant lack a role assignment with validFrom and validUntil on an aggregate the access model reads, or lack their own granting and revoking use cases? Look at the assignments beside the actor holds and the use cases that act under them.
litespec/core/access#record-every-role-hold-with-its-scopeRecord Every Role Hold with Its Scoperuleanyrecordsrecord:actorrecordsrulecheckablelitespec model check reports role-orphan for a role held by no actor.
litespec/core/access#remove-a-target-that-must-be-the-callerRemove a Target That Must Be the Callerruleanyrecordsrecord:use-caserecordsruleguidanceWhich use cases with a self grant name a caller-owned target in their inputs without a self declaration the guard enforces, or compare the caller with a target in a handler? Look at the inputs and handlers beside the self grants.
litespec/core/access#scope-every-grant-to-its-tenant-reachScope Every Grant to Its Tenant Reachruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports field-invalid for a tenant scope outside own, cross, public, and none.
litespec/core/access#scope-every-roleScope Every Roleruleanyrecordsrecord:rolerecordsrulecheckablelitespec model check reports record-invalid for a role without scope and field-invalid for a scope outside kebab-case form.
litespec/core/access#state-every-permission-with-its-meaningState Every Permission with Its Meaningruleanyrecordsrecord:permissionrecordsrulecheckablelitespec model check reports record-invalid for a permission without meaning.
litespec/core/access#state-the-scope-of-every-permissionState the Scope of Every Permissionruleanyrecordsrecord:permissionrecordsrulecheckablelitespec model check fails a permission entry without scope.
litespec/core/access#use-three-conventional-scope-levelsUse Three Conventional Scope Levelsconventionanyrecordsrecord:rolerecordsdefaultguidanceWhich role scopes fall outside platform, tenant, and self without a recorded project convention? Look at scope on each role page.
litespec/core/access#write-a-summary-on-every-actor-and-role-pageWrite a Summary on Every Actor and Role Pageruleanyrecordsrecord:actor, record:rolerecordsrulecheckablelitespec model check fails an actor or role page without summary.
litespec/core/access#write-a-summary-on-every-external-system-pageWrite a Summary on Every External System Pageruleanyrecordsrecord:external-systemrecordsrulecheckablelitespec model check fails an external system page without summary.
litespec/core/agent#advise-without-gatingAdvise Without GatingruleanyworkspaceanyrecordsruleguidanceThe agent output records findings as advice with evidence, with decisions left to the owner.
litespec/core/agent#apply-guidance-precedenceApply Guidance PrecedenceruleanyworkspaceanyrecordsruleguidanceThe design applies the project exception, the extension, the deeper page, and the shallower page in that order.
litespec/core/agent#escalate-decisions-that-specify-forbidsEscalate Decisions That Specify ForbidsruleanyworkspaceanyrecordsruleguidanceEach figure the owner sets that the change needs sits in an owner question or a backlog item, not in an agent-written decision.
litespec/core/agent#follow-the-local-pattern-before-the-model-queryFollow the Local Pattern Before the Model QueryruleanyworkspaceanyrecordsruleguidanceThe change touches no permission carrying risk and names the local pattern it followed.
litespec/core/agent#inspect-existing-work-before-editingInspect Existing Work Before Editingruleanyworkspaceanyrecordsruleguidancegit status output precedes the edits, with user changes, untracked files, and unrelated generated output untouched.
litespec/core/agent#inspect-local-examples-after-standardsInspect Local Examples After StandardsconventionanyworkspaceanyrecordsdefaultguidanceThe change names the neighboring files that shaped it after the standards.
litespec/core/agent#keep-agent-working-files-under-agentsKeep Agent Working Files Under AgentsconventionanyworkspaceanyrecordsdefaultguidanceEvery agent working file sits under .agents/ or the path the working-files convention names.
litespec/core/agent#load-applicable-extensionsLoad Applicable ExtensionsruleanyworkspaceanyrecordsruleguidanceThe change names each extension loaded before editing inside its boundary.
litespec/core/agent#load-applicable-provisions-before-editingLoad Applicable Provisions Before EditingruleanyworkspaceanyrecordsruleguidanceWhich provisions the rules query returned lack a judged answer in the completion report? Compare the rules output with the report.
litespec/core/agent#make-coherent-scoped-changesMake Coherent Scoped ChangesruleanyworkspaceanyrecordsruleguidanceEvery changed artifact traces to the authorized request.
litespec/core/agent#name-judged-provisions-in-the-completion-reportName Judged Provisions in the Completion ReportruleanyworkspaceanyrecordsruleguidanceWhich judged provisions lack a how in the completion report? Look at the provisions beside the report.
litespec/core/agent#raise-open-figures-to-the-ownerRaise Open Figures to the OwnerruleanyworkspaceanyrecordsruleguidanceWhich open figures lack an owner question with a recommendation or a backlog item? Look at the owner questions and the backlog board beside the change.
litespec/core/agent#read-the-full-record-before-changing-a-boundaryRead the Full Record Before Changing a BoundaryconventionanyworkspaceanyrecordsdefaultguidanceEach file generation or boundary change cites the full record it matched.
litespec/core/agent#replace-only-declared-conventionsReplace Only Declared ConventionsruleanyworkspaceanyrecordsruleguidanceEach convention replacement resolves to a recorded local convention in the project documentation.
litespec/core/agent#restrict-unapproved-side-effectsRestrict Unapproved Side EffectsruleanyworkspaceanyrecordsruleguidanceAn approval covers each package, migration, authentication, public API, production data, release, spending, or state-changing outside call the change makes.
litespec/core/agent#select-task-contextSelect Task ContextruleanyworkspaceanyrecordsruleguidanceThe completion report names the model query that selected the cited records.
litespec/core/agent#stop-on-unresolved-conflictStop on Unresolved ConflictruleanyworkspaceanyrecordsruleguidanceThe stopped work quotes the conflict with both provision IDs and paths.
litespec/core/agent#take-expected-values-from-the-scenarioTake Expected Values from the ScenarioruleanyworkspacetestrecordsruleguidanceEach test's expected values match the scenario's Then, with none taken from a code run.
litespec/core/agent#verify-refusals-and-calculations-against-held-back-examplesVerify Refusals and Calculations Against Held-Back ExamplesruleanyworkspaceanyrecordsruleguidanceThe check log shows refusal and calculation example rows withheld during implementation and run after.
litespec/core/agent#write-pages-below-decided-intentWrite Pages Below Decided IntentruleanyworkspaceanyrecordsruleguidanceEach written page traces to a decided Intent record, with no invented promise.
litespec/core/authoring#attach-examples-to-their-provisionsAttach Examples to Their Provisionsruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no STANDARD_EXAMPLE_LABEL, PAGE_UNKNOWN_SECTION, or REFERENCE_EXAMPLE_DECLARATION diagnostic.
litespec/core/authoring#cite-owned-content-instead-of-copying-itCite Owned Content Instead of Copying Itruleanyworkspace-recordsruleguidanceWhich passages restate content another page owns? Compare repeated passages with the owning page.
litespec/core/authoring#classify-every-specification-fileClassify Every Specification Fileruleanyworkspace-recordsrulecheckablelitespec model check reports no explanation-orphaned finding, and fails a .yaml file with no record type outside a declared unstructured path.
litespec/core/authoring#declare-structured-specification-metadataDeclare Structured Specification Metadataruleanyworkspace-recordsrulecheckablelitespec model check validates each record file and each document frontmatter block against the record schema.
litespec/core/authoring#define-each-glossary-term-under-its-headingDefine Each Glossary Term Under Its Headingruleanyworkspace-recordsruleguidanceWhich glossary entries open with something other than the definition, or carry a Term line? Look in docs/reference/glossary.md.
litespec/core/authoring#derive-a-computed-fact-instead-of-restating-itDerive a Computed Fact Instead of Restating Itruleanyworkspace-recordsruleguidanceWhich counts, censuses, or membership lists lack a source or command? Look at the numbers the change adds.
litespec/core/authoring#exclude-a-sequence-number-from-the-identifierExclude a Sequence Number from the Identifierruleanyworkspace-recordsruleguidanceWhich identifiers carry a sequence number? Look at the provision IDs the change adds.
litespec/core/authoring#exclude-cross-release-compatibility-workExclude Cross-Release Compatibility Workruleanyworkspace-recordsruleguidanceWhich pages promise migration, mapping, or alias between releases? Look at the release material the change adds.
litespec/core/authoring#exclude-declared-content-paths-from-the-ascii-checkExclude Declared Content Paths from the ASCII Checkruleanyworkspace-recordsruleguidanceWhich non-ASCII prose sits outside the paths the project record declares? Look at the content files beside the declaration.
litespec/core/authoring#exclude-generated-regions-from-prose-checksExclude Generated Regions from Prose Checksruleanyworkspace-recordsruleguidanceWhich findings point inside generated-region fences? Look at the findings the checks report.
litespec/core/authoring#exclude-historical-transition-materialExclude Historical Transition Materialruleanyworkspace-recordsruleguidanceWhich active files carry history-specific paths, aliases, or migration material? Look at the files the change adds.
litespec/core/authoring#exclude-the-compound-that-names-another-conceptExclude the Compound That Names Another Conceptruleanyworkspace-recordsruleguidanceWhich compounds use a rejected word to name another concept without being listed in the rejection's except?
litespec/core/authoring#generate-the-provision-diff-for-each-releaseGenerate the Provision Diff for Each Releaseruleanyworkspace-recordsruleguidanceWhich changelog identifiers were typed by hand, or name an identifier that a comparison of the provision index at the previous tag with the provision index of the release does not produce? Look at the changelog entry beside the two provision indexes.
litespec/core/authoring#give-one-observable-fact-one-mark-across-pagesGive One Observable Fact One Mark Across Pagesruleanyworkspace-recordsruleguidanceWhich shared facts carry different labels? Compare the verification lines that name one check, using the provision index.
litespec/core/authoring#identify-actionable-conventionsIdentify Actionable Conventionsruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no CONVENTION_MISSING_DEFAULT, CONVENTION_MISSING_REPLACEMENT, CONVENTION_DEFAULT_SENTENCE, CONVENTION_REPLACEMENT_SENTENCE, CONVENTION_REPLACEMENT_DEVIATION, or PROVISION_RESTATES_HEADING diagnostic.
litespec/core/authoring#keep-a-pinned-release-for-as-long-as-it-servesKeep a Pinned Release for as Long as It Servesruleanyworkspace-recordsruleguidanceWhich provisions oblige a move to a later release? Look at the Statements the change adds.
litespec/core/authoring#keep-authored-prose-ascii-safeKeep Authored Prose ASCII-Saferuleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no PROSE_NON_ASCII diagnostic.
litespec/core/authoring#keep-code-out-of-intent-and-behavior-fieldsKeep Code Out of Intent and Behavior Fieldsruleanyworkspace-recordsruleguidanceWhich Intent or Behavior fields copy values from code? Look at the fields the change fills, beside the implementation.
litespec/core/authoring#keep-identifiers-out-of-provision-headingsKeep Identifiers Out of Provision Headingsruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no ID_IN_HEADING diagnostic.
litespec/core/authoring#keep-principle-pages-free-of-stack-detailKeep Principle Pages Free of Stack Detailruleanyworkspace-recordsruleguidanceWhich principle pages name stack detail? Look for framework, package, and language names in principle pages.
litespec/core/authoring#limit-each-intent-to-three-sentencesLimit Each Intent to Three Sentencesruleanyworkspace-recordsruleguidanceWhich Intent sections run past three sentences? Look at the Intent section of each page the change touches.
litespec/core/authoring#map-provisions-to-evidenceMap Provisions to Evidenceruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no VERIFY_MISSING_ID, VERIFY_DUPLICATE_ID, VERIFY_ORDER, or VERIFY_HEADER diagnostic.
litespec/core/authoring#mark-every-provision-checkable-or-guidanceMark Every Provision Checkable or Guidanceruleanyworkspace-recordsrulecheckablelitespec-maintain validate reports VERIFY_MISSING_ID for a provision whose verification line opens with any other label.
litespec/core/authoring#name-observable-evidence-in-verification-linesName Observable Evidence in Verification Linesruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no VERIFY_GENERIC_EVIDENCE, VERIFY_TEMPLATED_EVIDENCE, VERIFY_DUPLICATE_EVIDENCE, VERIFY_COMMAND, or CHECKED_BY_UNKNOWN diagnostic.
litespec/core/authoring#name-the-escape-from-every-abstractionName the Escape from Every Abstractionruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no PAGE_MISSING_SECTION diagnostic for a command page.
litespec/core/authoring#name-the-owning-page-in-the-identifierName the Owning Page in the Identifierruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no ID_PAGE_FILENAME or ID_DUPLICATE diagnostic.
litespec/core/authoring#name-the-tool-rather-than-the-mechanismName the Tool Rather Than the Mechanismruleanyworkspace-recordsruleguidanceWhich procedure steps lack a repository command? Look at the steps the change adds.
litespec/core/authoring#order-glossary-groups-alphabeticallyOrder Glossary Groups Alphabeticallyruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no GLOSSARY_ORDER or GLOSSARY_DEFINITION diagnostic.
litespec/core/authoring#place-each-stack-binding-on-its-stack-pagePlace Each Stack Binding on Its Stack Pageruleanyworkspace-recordsruleguidanceWhich shared pages carry stack-specific sections? Look for stack sections outside stack pages.
litespec/core/authoring#place-the-id-under-every-provision-headingPlace the ID Under Every Provision Headingruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no ID_LINE_MISSING or ID_LINE_MISMATCH diagnostic.
litespec/core/authoring#prefer-direct-action-headingsPrefer Direct Action Headingsconventionanyworkspace-recordsdefaultcheckablelitespec-maintain validate emits no HEADING_ACTION diagnostic.
litespec/core/authoring#publish-each-release-as-a-complete-contractPublish Each Release as a Complete Contractruleanyworkspace-recordsrulecheckablelitespec-maintain validate checks every page of the release in one run, and the manifest names one version for the whole contract.
litespec/core/authoring#record-a-setting-as-referenceRecord a Setting as Referenceruleanyworkspace-recordsruleguidanceWhich procedure-named settings lack a configuration page row? Look at the settings the change adds, beside the configuration pages.
litespec/core/authoring#record-the-project-vocabulary-as-dataRecord the Project Vocabulary as Dataruleanyworkspace-recordsrulecheckablelitespec model check validates the project glossary against the glossary schema.
litespec/core/authoring#record-the-reviewed-litespec-releaseRecord the Reviewed LiteSpec Releaseruleanyworkspace-recordsrulecheckablelitespec model check fails when reviewedLiteSpecVersion differs from the pinned release.
litespec/core/authoring#regenerate-the-provision-indexRegenerate the Provision Indexruleanyworkspace-recordsrulecheckablelitespec-maintain provisions --check exits zero.
litespec/core/authoring#reject-a-recorded-synonym-inside-its-scopeReject a Recorded Synonym Inside Its Scoperuleanyworkspace-recordsruleguidanceWhich words on the page are synonyms the project glossary rejects for the scope the page sits in?
litespec/core/authoring#restrict-normative-language-to-standards-and-conventionsRestrict Normative Language to Standards and Conventionsruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no PROSE_NORMATIVE_LOCATION or STANDARD_INFORMATIVE_NORMATIVE diagnostic.
litespec/core/authoring#review-each-term-for-its-lookalikesReview Each Term for Its Lookalikesruleanyworkspace-recordsruleguidanceWhich terms differ from another term only in hyphenation, spelling, plurality, or a compound split? Look at the terms the change adds, beside the glossary.
litespec/core/authoring#rewrite-every-link-on-a-renameRewrite Every Link on a Renameruleanyworkspace-recordsrulecheckablelitespec rename leaves no citation of the old identifier, and litespec-maintain validate emits no ID_UNKNOWN_REFERENCE diagnostic.
litespec/core/authoring#route-the-reader-before-listing-pagesRoute the Reader Before Listing Pagesruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no INDEX_MISSING_ROUTING diagnostic.
litespec/core/authoring#run-repeatable-authoring-checksRun Repeatable Authoring Checksruleanyworkspace-recordsrulecheckablelitespec-maintain validate, dotnet test --solution LiteSpec.slnx and git diff --check exit zero.
litespec/core/authoring#scaffold-pages-and-reserve-identifiersScaffold Pages and Reserve Identifiersruleanyworkspace-recordsruleguidanceWhich new pages lack a reserved identifier? Look for pages created without litespec new.
litespec/core/authoring#split-extension-dependencies-into-three-labeled-linesSplit Extension Dependencies into Three Labeled Linesruleanyworkspace-recordsruleguidanceWhich Dependencies sections lack a labeled line? Look in each page under an ext/ folder.
litespec/core/authoring#start-each-explanation-file-with-its-titleStart Each Explanation File with Its Titleruleanyworkspace-recordsruleguidanceWhich explanation files miss their H1 title or section content outside H2? Look at the explanation files beside the changed record files.
litespec/core/authoring#state-mannered-terms-literallyState Mannered Terms Literallyruleanyworkspace-recordsruleguidanceWhich mannered terms on the page stand where the glossary asks for the literal word?
litespec/core/authoring#state-one-layer-per-pageState One Layer per Pageruleanyworkspace-recordsruleguidanceWhich command pages mix mechanism into other sections? Look outside the Underneath section of each command page the change touches.
litespec/core/authoring#state-what-happens-in-every-behavior-statementState What Happens in Every Behavior Statementruleanyworkspace-recordsadviceguidanceWhich rule statements, scenario steps, or result meanings hide their behavior behind a vague word? Look at the statements the change adds.
litespec/core/authoring#use-controlled-capitalizationUse Controlled Capitalizationruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no PAGE_TITLE_CASE or PAGE_HEADING_CASE diagnostic.
litespec/core/authoring#use-one-metadata-carrierUse One Metadata Carrierruleanyworkspace-recordsruleguidanceWhich pages carry field values outside the record file? Look at the explanation files beside the changed record files.
litespec/core/authoring#use-one-normative-vocabularyUse One Normative Vocabularyruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no STANDARD_MODAL_COUNT or STANDARD_MODAL_VOCABULARY diagnostic.
litespec/core/authoring#use-one-term-for-one-conceptUse One Term for One Conceptruleanyworkspace-recordsruleguidanceWhich concepts appear under more than one name? Look at the terms the change adds, beside the glossary.
litespec/core/authoring#use-the-declared-identifier-grammarUse the Declared Identifier Grammarruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no ID_UNKNOWN_REFERENCE or ID_DUPLICATE diagnostic.
litespec/core/authoring#use-the-declared-page-contractUse the Declared Page Contractruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no PAGE_MISSING_SECTION, PAGE_SECTION_ORDER or PAGE_UNKNOWN_SECTION diagnostic.
litespec/core/authoring#use-the-declared-record-identifier-grammarUse the Declared Record Identifier Grammarruleanyworkspace-recordsrulecheckablelitespec model check fails a record identifier outside the declared grammar.
litespec/core/authoring#validate-a-single-page-before-committingValidate a Single Page Before Committingruleanyworkspace-recordsruleguidanceThe change report shows each touched page passing single-page validation before commit.
litespec/core/authoring#validate-current-standards-materialValidate Current Standards Materialruleanyworkspace-recordsruleguidanceWhich validator inputs come from outside the working tree? Look at the paths the validator reads.
litespec/core/authoring#write-atomic-standards-provisionsWrite Atomic Standards Provisionsruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no STANDARD_LABEL_INVALID, STANDARD_LABEL_ORDER, STANDARD_LABEL_DUPLICATE, STANDARD_SENTENCE_COUNT, STANDARD_MODAL_COUNT, STANDARD_MODAL_VOCABULARY, STANDARD_MISSING_DEVIATION, STANDARD_UNEXPECTED_DEVIATION, STANDARD_DEVIATION_NORMATIVE, STANDARD_DEVIATION_SENTENCE, STANDARD_MISSING_REQUIREMENT, STANDARD_REQUIREMENT_COUNT, STANDARD_UNLABELED_CONTENT, or PROVISION_RESTATES_HEADING diagnostic.
litespec/core/authoring#write-none-in-an-empty-required-sectionWrite None in an Empty Required Sectionruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no PAGE_EMPTY_SECTION or PAGE_EMPTY_SECTION_TEXT diagnostic.
litespec/core/automation#declare-every-reaction-and-job-edge-in-effectsDeclare Every Reaction and Job Edge in Effectsruleanyapplicationrecord:reaction, record:jobrecordsrulecheckablelitespec model check reports record-invalid for a reaction or job with no effects or with a top-level effect verb.
litespec/core/automation#file-every-reaction-and-job-with-the-module-it-changesFile Every Reaction and Job with the Module It Changesruleanyapplicationrecord:reaction, record:jobrecordsruleguidanceWhich reaction or job pages sit outside the module they change? Look at the reactions and jobs beside the modules whose records they change.
litespec/core/automation#guard-every-manual-jobGuard Every Manual Jobruleanyapplicationjobrecordsrulecheckablelitespec model check reports job-guard-missing (level G) for a manual job without guard.
litespec/core/automation#keep-job-fields-off-reactionsKeep Job Fields off Reactionsruleanyapplicationrecord:reactionrecordsrulecheckablelitespec model check fails a reaction carrying kind, schedule, runbook, runsWhere, guard, cursor, selection, lease, batchSize, serviceLevel, or evidence.
litespec/core/automation#name-each-job-for-the-use-case-it-runsName Each Job for the Use Case It Runsruleanyapplicationjobrecordsrulecheckablelitespec model check reports job-name-invalid (level G) for a job outside <verb>-<what> with the verb of a use case it runs.
litespec/core/automation#name-each-reaction-for-its-act-and-its-triggerName Each Reaction for Its Act and Its Triggerruleanyapplicationrecord:reactionrecordsruleguidanceWhich reaction names hide their act or their trigger? Look at the reaction names beside their triggering events.
litespec/core/automation#point-reaction-and-job-scenarios-at-the-run-resultPoint Reaction and Job Scenarios at the Run Resultruleanyapplicationrecord:reaction, record:jobrecordsrulecheckablelitespec model check reports scenario-result-unknown for a reaction or job scenario ending outside the run use case results.
litespec/core/automation#run-every-job-from-its-declared-kindRun Every Job from Its Declared Kindruleanyapplicationjobrecordsrulecheckablelitespec model check reports schedule-invalid (level G) for a schedule neither an every duration, a cron expression, nor at: startup, and fails a job without its kind or a scheduled job without schedule.
litespec/core/automation#state-the-failure-handling-of-every-reaction-and-jobState the Failure Handling of Every Reaction and Jobruleanyapplicationrecord:reaction, record:jobrecordsrulecheckablelitespec model check fails a reaction or job with onFailure outside the one failure shape, and reports record-invalid for prose handling, a missing or malformed retry, and a malformed duration.
litespec/core/automation#trigger-every-reaction-from-its-declared-eventsTrigger Every Reaction from Its Declared Eventsruleanyapplicationrecord:reactionrecordsrulecheckablelitespec model check reports reaction-trigger-unknown (level G) for a trigger naming an unknown event, and fails a reaction without a triggeredBy list.
litespec/core/automation#write-every-runbook-to-run-or-recoverWrite Every Runbook to Run or Recoverruleanyapplicationrecord:runbookrecordsrulecheckablelitespec model check fails a runbook page without impact, prerequisites, procedure, verification, recovery, or escalation.
litespec/core/automation#write-no-aggregate-directly-from-a-reaction-or-jobWrite No Aggregate Directly from a Reaction or Jobruleanyapplicationrecord:reaction, record:jobrecordsruleguidanceWhich reactions or jobs write an aggregate outside the use case they run? Look at the reaction and job effects beside the use cases.
litespec/core/behavior#group-cross-aggregate-rules-by-themeGroup Cross-Aggregate Rules by Themeconventionanyrecordsrecord:rule-setrecordsdefaultguidanceWhich rule sets state no theme in summary without a recorded project convention? Look at the summary of each rule-set record file.
litespec/core/behavior#illustrate-pages-with-examples-from-the-castIllustrate Pages with Examples from the Castconventionanyrecordsrecord:use-case, record:module, record:aggregaterecordsdefaultguidanceWhich module, aggregate, and use-case explanation files lack an Example section from the cast where a walk would add to the records, without a recorded project convention? Look at the Example sections beside the module, aggregate, and use-case record files.
litespec/core/behavior#keep-design-choices-out-of-the-recordsKeep Design Choices Out of the Recordsruleanyrecordsaggregate, value-object, record:termrecordsruleguidanceWhich record pages declare a child entity or value object as a record type? Look at the record types beside the aggregate pages.
litespec/core/domain-model#bind-every-atomic-write-group-in-its-ruleBind Every Atomic Write Group in Its Ruleruleanydomainrecord:rulerecordsrulecheckablelitespec model check reports atomic-group-drift (level G) for an atomic use case whose changes differs from its rule's binds, and atomic-group-invalid (level A) for a group binding more than 4 aggregates.
litespec/core/domain-model#compute-shared-values-from-one-calculation-ruleCompute Shared Values from One Calculation Ruleruleanydomainrecord:use-caserecordsruleguidanceWhich queries and commands computing one value cite different rules in computedBy? Look at the use cases beside the calculation rule.
litespec/core/domain-model#connect-every-state-through-transitionsConnect Every State Through Transitionsruleanydomainaggregaterecordsrulecheckablelitespec model check reports state-unreached (level G) for a state reached by no transition, a creation included, and transition-unknown (level G) for a transition naming a missing state or use case.
litespec/core/domain-model#declare-the-kind-of-every-aggregateDeclare the Kind of Every Aggregateruleanydomainaggregaterecordsrulecheckablelitespec model check fails an aggregate page without kind or with an unknown kind.
litespec/core/domain-model#define-every-behavior-term-in-the-glossaryDefine Every Behavior Term in the Glossaryruleanydomainrecord:termrecordsruleguidanceWhich terms do the Behavior records name without a glossary entry stating their meaning? Look at the records beside the project glossary.
litespec/core/domain-model#freeze-every-commercial-data-valueFreeze Every Commercial Data Valueruleanydomainrecord:rulerecordsrulecheckablelitespec model check fails a commercial-data rule without frozenWhen or retainedIn.
litespec/core/domain-model#keep-cross-aggregate-rules-on-a-rule-pageKeep Cross-Aggregate Rules on a Rule Pageruleanydomainrecord:rulerecordsruleguidanceWhich cross-aggregate rules sit outside a rule page? Look at the rule entries beside their aggregate pages.
litespec/core/domain-model#keep-model-invariants-in-rulesKeep Model Invariants in Rulesruleanydomainrecord:rulerecordsruleguidanceWhich setting pages hold a model invariant? Look at the settings beside the rules.
litespec/core/domain-model#keep-the-negation-word-in-the-rule-nameKeep the Negation Word in the Rule Nameruleanydomainrecord:rulerecordsrulecheckablelitespec model check reports rule-name-invalid for a rule whose statement says not, no, never, or cannot while its name keeps no restricting word or uniqueness.
litespec/core/domain-model#leave-states-off-every-storeLeave States off Every Storeruleanydomainaggregaterecordsrulecheckablelitespec model check fails a store aggregate carrying states.
litespec/core/domain-model#mark-each-term-with-its-layerMark Each Term with Its Layerruleanydomainrecord:termrecordsrulecheckablelitespec model check fails a glossary term without layer, and each behavior term lists the synonyms its readers know in aliases.
litespec/core/domain-model#model-each-aggregate-lifecycle-with-statesModel Each Aggregate Lifecycle with Statesruleanydomainaggregaterecordsrulecheckablelitespec model check fails an entity or saga page without states entries carrying a name and a meaning.
litespec/core/domain-model#name-each-module-after-its-capabilityName Each Module After Its Capabilityconventionanydomainrecord:modulerecordsdefaultguidanceDoes every aggregate in this module serve the capability the module name states? Look at the aggregates beside the module name.
litespec/core/domain-model#name-every-event-in-the-past-tenseName Every Event in the Past Tenseruleanydomaindomain-eventrecordsruleguidanceWhich event names read as an order rather than a completed fact? Look at the event entries beside their raising acts.
litespec/core/domain-model#name-the-owner-of-every-storeName the Owner of Every Storeruleanydomainaggregaterecordsrulecheckablelitespec model check fails a store aggregate page without owner.
litespec/core/domain-model#name-the-refusal-a-broken-rule-producesName the Refusal a Broken Rule Producesruleanydomainrecord:rulerecordsruleguidanceWhich guarded rules name no refusal in refusal? Look at the rule entries beside the results they refuse.
litespec/core/domain-model#raise-every-event-through-its-aggregate-rootRaise Every Event Through Its Aggregate Rootruleanydomaindomain-eventrecordsruleguidanceWhich events leave from outside the root of their aggregate? Look at the aggregate code beside the event entries.
litespec/core/domain-model#release-every-reservation-by-a-named-use-caseRelease Every Reservation by a Named Use Caseruleanydomainrecord:rulerecordsrulecheckablelitespec model check reports reservation-release-missing for a reservation rule whose releasedBy names neither a use case nor { "mode": "never", "reason": "..." } with its cost.
litespec/core/domain-model#state-each-event-with-meaning-and-carriesState Each Event with Meaning and Carriesruleanydomaindomain-eventrecordsrulecheckablelitespec model check fails an event entry without meaning or carries.
litespec/core/domain-model#state-each-rule-with-its-kindState Each Rule with Its Kindruleanydomainrecord:rulerecordsrulecheckablelitespec model check fails a rule entry without kind or statement.
litespec/core/domain-model#state-every-module-dependencyState Every Module Dependencyruleanydomainrecord:modulerecordsruleguidanceWhich modules rely on a module that dependsOn does not name? Look at the module pages beside the modules they rely on.
litespec/core/domain-model#tabulate-every-calculation-with-examplesTabulate Every Calculation with Examplesruleanydomainrecord:rulerecordsrulecheckablelitespec model check reports calculation-table-missing for a calculation rule with no scenario examples table.
litespec/core/edges#claim-every-notification-promise-from-a-requirementClaim Every Notification Promise from a Requirementruleanyrecordsrecord:notificationrecordsruleguidanceWhich notification claims lack a cited requirement? Look at the claims beside each notification.
litespec/core/edges#describe-every-external-system-operationDescribe Every External System Operationruleanyrecordsrecord:external-systemrecordsrulecheckablelitespec model check fails an external system operation without direction, timeout, timeout handling, response, or cache.
litespec/core/edges#describe-every-integration-event-for-its-directionDescribe Every Integration Event for Its Directionruleanyrecordsrecord:integration-eventrecordsrulecheckablelitespec model check fails an integration event without direction, CloudEvents identity, typed payload, or trust.
litespec/core/edges#describe-every-notification-with-audience-channel-and-consentDescribe Every Notification with Audience Channel and Consentruleanyrecordsrecord:notificationrecordsrulecheckablelitespec model check reports notification-sender-missing for a notification no use case, reaction, or job sends, and fails a notification without its declared fields.
litespec/core/edges#give-each-entry-point-a-kindGive Each Entry Point a Kindruleanyrecordsrecord:entry-pointrecordsrulecheckablelitespec model check fails an entry point without kind or auth.
litespec/core/edges#give-every-browser-step-a-screenGive Every Browser Step a Screenruleanyrecordsrecord:screenrecordsrulecheckablelitespec model check reports step-screen-missing (level G) for a step a browser or device use case serves that no screen serves.
litespec/core/edges#give-every-page-its-screen-recordGive Every Page Its Screen Recordruleanyrecordsroute, record:screentracedrulecheckablelitespec model check reports screen-unimplemented (level S) for a screen no route marks, and behavior-unrecorded (level S) for a route with no mark or a mark naming no screen.
litespec/core/edges#give-every-screen-an-address-or-a-hostGive Every Screen an Address or a Hostruleanyrecordsrecord:screenrecordsrulecheckablelitespec model check fails a screen without exactly one of address and host.
litespec/core/edges#keep-notification-templates-and-the-template-store-one-setKeep Notification Templates and the Template Store One Setruleanyrecordsrecord:notificationrecordsrulecheckablelitespec model check reports template-unimplemented (level S) for a declared key the store the stack page names lacks, and template-unrecorded (level S) for a stored key no notification declares, in a project whose stack configuration names a template store.
litespec/core/edges#match-a-screens-offers-to-its-callsMatch a Screen's Offers to Its Callsruleanyrecordsrecord:screenrecordsrulecheckablelitespec model check reports screen-offers-drift (level S) for a screen whose offers and computed calls differ, naming each use case on one side only.
litespec/core/edges#name-each-template-for-its-subject-event-and-audienceName Each Template for Its Subject, Event and Audienceruleanyrecordsrecord:notificationrecordsrulecheckablelitespec model check reports template-key-invalid (level A) for a template key ending in no name the notification declares in addresses.
litespec/core/edges#name-published-events-in-the-domains-wordsName Published Events in the Domain's Wordsruleanyrecordsrecord:integration-eventrecordsadvicecheckablelitespec model check reports integration-event-name-invalid (level G) for an outbound event named with an internal word.
litespec/core/edges#publish-every-outbound-integration-event-from-effectsPublish Every Outbound Integration Event from Effectsruleanyrecordsrecord:use-case, record:reaction, record:jobrecordsrulecheckablelitespec model check reports effect-undeclared for an emitted integration event no record declares in effects.
litespec/core/edges#reach-every-inbound-integration-event-through-a-webhookReach Every Inbound Integration Event Through a Webhookruleanyrecordsrecord:integration-eventrecordsruleguidanceWhich inbound integration events lack a webhook entry point as their door? Look at the inbound events beside the entry points.
litespec/core/edges#serve-only-the-steps-a-screens-use-cases-serveServe Only the Steps a Screen's Use Cases Serveruleanyrecordsrecord:screenrecordsrulecheckablelitespec model check reports screen-serves-drift (level G) for a served step no offered use case serves.
litespec/core/edges#serve-static-content-through-served-contentServe Static Content Through Served Contentruleanyrecordsrecord:entry-pointrecordsruleguidanceWhich static scripts or legal texts sit outside served content, or lack path, content type, cache control, or versioning? Look at the static files beside the served-content entries.
litespec/core/edges#show-every-refusal-a-screen-can-reachShow Every Refusal a Screen Can Reachruleanyrecordsrecord:screen, testtracedrulecheckablelitespec model check reports refusal-sentence-missing (level A) for a refusal a screen can reach with neither a sentence in its frontend's refusalDictionary nor a browser test asserting its code.
litespec/core/edges#use-every-declared-template-parameterUse Every Declared Template Parameterruleanyrecordsrecord:notificationrecordsrulecheckablelitespec model check reports template-param-drift (level S) for a declared parameter whose placeholder, in the case the stack page states, appears in none of its template's texts.
litespec/core/intent#admit-only-outside-pains-as-problemsAdmit Only Outside Pains as Problemsruleanyrecordsrecord:problemrecordsrulecheckablelitespec model check reports problem-sufferer-invalid for a problem whose primary sufferer is no person or organization outside the team; litespec model check reports record-invalid for a problem record file missing affects, summary or statement.
litespec/core/intent#answer-every-constraintAnswer Every Constraintruleanyrecordsrecord:constraintrecordsrulecheckablelitespec model check reports record-invalid for a constraint record file missing a required field; the builder generates What It Requires from citing requirements.
litespec/core/intent#cite-each-applying-constraint-from-a-requirementCite Each Applying Constraint from a Requirementruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports constraint-unreached for a constraint with applies: true that no requirement cites.
litespec/core/intent#cite-the-reasons-of-every-requirementCite the Reasons of Every Requirementruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports requirement-cites-missing for a requirement entry naming no reason in cites.
litespec/core/intent#define-each-recurring-capitalized-phraseDefine Each Recurring Capitalized Phraseruleanyrecordsrecord:termrecordsrulecheckablelitespec model check reports term-missing for a capitalized phrase of two to four words named in three or more records that no glossary term defines.
litespec/core/intent#describe-every-journeyDescribe Every Journeyruleanyrecordsrecord:journeyrecordsrulecheckablelitespec model check reports record-invalid for a journey record file missing summary.
litespec/core/intent#explain-each-requirement-in-one-lineExplain Each Requirement in One Lineruleanyrecordsrecord:requirementrecordsruleguidanceThe one-line rationale on each requirement entry.
litespec/core/intent#explain-every-problem-in-four-sectionsExplain Every Problem in Four Sectionsruleanyrecordsrecord:problemrecordsruleguidanceThe four sections, in order, in each problem explanation file.
litespec/core/intent#grade-problem-evidence-by-kindGrade Problem Evidence by Kindruleanyrecordsrecord:problemrecordsrulecheckablelitespec model check reports problem-evidence-missing for a problem with only assumed evidence or none. The builder writes evidenceStrength on each problem in the model.
litespec/core/intent#group-product-records-by-moduleGroup Product Records by Moduleconventionanyrecordsrecord:product, record:goal, record:problem, record:constraint, record:decision, record:research, record:actor, record:role, record:journey, record:module, record:featurerecordsdefaultguidanceThe .litespec/intent/ layout beside the project's recorded layout.
litespec/core/intent#identify-every-requirementIdentify Every Requirementruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports record-invalid for a requirement entry without identifier; litespec model check reports identifier-invalid for a feature segment differing from its feature.
litespec/core/intent#keep-actors-to-people-and-organizationsKeep Actors to People and Organizationsruleanyrecordsrecord:actorrecordsrulecheckablelitespec model check reports record-invalid for an actor record file with a kind outside person and organization, or with no belongsToTeam; litespec model check reports field-invalid for such a kind.
litespec/core/intent#keep-behavior-out-of-intentKeep Behavior Out of IntentruleanyrecordsanyrecordsruleguidanceIntent records under .litespec/intent/ free of the detail the Statement names.
litespec/core/intent#keep-company-operation-out-of-intentKeep Company Operation Out of IntentruleanyrecordsanyrecordsruleguidanceIntent and Behavior records stating company operation beside the constraints and research that carry the binding facts.
litespec/core/intent#keep-intent-in-its-homesKeep Intent in Its Homesruleanyrecordsrecord:product, record:goal, record:problem, record:constraint, record:decision, record:research, record:actor, record:role, record:journey, record:module, record:featurerecordsrulecheckablelitespec model check reports a blocking finding for a record outside its home, a folder under intent/modules/ naming no declared module, a module folder without its module, a record type outside its allowed levels, and a link from another module to a module-local record.
litespec/core/intent#move-every-goal-with-a-journey-or-a-quality-requirementMove Every Goal with a Journey or a Quality Requirementruleanyrecordsrecord:goalrecordsrulecheckablelitespec model check reports goal-mover-missing for a goal moved by no journey and no quality requirement.
litespec/core/intent#name-each-sibling-problem-or-merge-itName Each Sibling Problem or Merge Itruleanyrecordsrecord:problemrecordsruleguidanceWhich problems share a sufferer and a feature yet name neither each other nor a merge? Look at the problems cited from each feature.
litespec/core/intent#name-every-actor-from-a-journey-a-problem-or-an-access-positionName Every Actor from a Journey, a Problem or an Access Positionruleanyrecordsrecord:actorrecordsrulecheckablelitespec model check reports actor-unused for an actor named by no journey, problem or access position.
litespec/core/intent#name-no-solution-in-a-problem-statementName No Solution in a Problem Statementruleanyrecordsrecord:problemrecordsruleguidanceWhich problem statements name a product, a feature, or a solution? Look at the problem statements beside their sufferers.
litespec/core/intent#name-product-decisions-in-one-numbered-sequenceName Product Decisions in One Numbered Sequenceconventionanyrecordsrecord:decisionrecordsdefaultguidanceEach decision file named <number>-<name>.yaml beside its matching identifier.
litespec/core/intent#order-each-journey-toward-one-goalOrder Each Journey Toward One Goalruleanyrecordsrecord:journeyrecordsrulecheckablelitespec model check reports record-invalid for a journey record file missing its actor, serves, summary, finishedWhen, steps, or betweenSteps.
litespec/core/intent#perform-each-journey-step-with-an-actor-or-a-systemPerform Each Journey Step with an Actor or a Systemruleanyrecordsrecord:journeyrecordsrulecheckablelitespec model check reports record-invalid for a journey step carrying both actor and system; litespec model check reports field-invalid for such a step or for a system naming no external system, job or reaction.
litespec/core/intent#reach-every-intent-record-with-behaviorReach Every Intent Record with Behaviorruleanyrecordsanyrecordsrulecheckablelitespec model check reports a blocking finding for a record that reaches no Behavior.
litespec/core/intent#record-each-decision-option-with-pros-and-consRecord Each Decision Option with Pros and Consruleanyrecordsrecord:decisionrecordsrulecheckablelitespec model check reports record-invalid for a decision option missing pros or cons.
litespec/core/intent#record-research-with-read-sourcesRecord Research with Read Sourcesruleanyrecordsrecord:researchrecordsrulecheckablelitespec model check reports record-invalid for a research record file without question, conclusion, or sources; litespec model check reports explanation-missing for a research record without Answer in its explanation file, source-link-bare for a bare URL, source-key-unknown for an unknown key, and source-unused for an unused source.
litespec/core/intent#restrict-requirement-fulfillment-to-behaviorRestrict Requirement Fulfillment to Behaviorruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports requirement-fulfillment-missing for a requirement no Behavior record fulfills.
litespec/core/intent#shape-each-decision-pageShape Each Decision Pageruleanyrecordsrecord:decisionrecordsrulecheckablelitespec model check reports record-invalid for a decision record file missing a required field; litespec model check reports explanation-missing for a decision without Context in its explanation file.
litespec/core/intent#shape-each-module-pageShape Each Module Pageruleanyrecordsrecord:modulerecordsrulecheckablelitespec model check reports record-invalid for a module record file missing a required field.
litespec/core/intent#state-each-exception-with-its-fallbackState Each Exception with Its Fallbackruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports no except-fallback-missing finding.
litespec/core/intent#state-each-feature-with-its-offeringState Each Feature with Its Offeringruleanyrecordsrecord:featurerecordsruleguidanceWhich features miss their offering, their solved problems, or their moved goals? Look at each feature record beside its problems and goals.
litespec/core/intent#state-each-goal-with-its-measureState Each Goal with Its Measureruleanyrecordsrecord:goalrecordsrulecheckablelitespec model check reports record-invalid for a goal record file missing a required field.
litespec/core/intent#state-each-problem-with-its-evidenceState Each Problem with Its Evidenceruleanyrecordsrecord:problemrecordsrulecheckablelitespec model check reports record-invalid for a problem record file missing its summary or statement.
litespec/core/intent#state-each-quality-requirement-as-a-scenarioState Each Quality Requirement as a Scenarioruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports record-invalid for a quality requirement missing stimulus, environment, response, measure, or check.
litespec/core/intent#state-one-productState One Productruleanyrecordsrecord:productrecordsrulecheckablelitespec model check reports no product-count-invalid finding, and litespec model check reports record-invalid for product fields outside the record schema.
litespec/core/intent#state-requirement-kind-and-statementState Requirement Kind and Statementruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports record-invalid for a requirement entry without kind or statement, or a policy requirement without dated values.
litespec/core/intent#state-the-cost-and-workaround-of-every-problemState the Cost and Workaround of Every Problemruleanyrecordsrecord:problemrecordsruleguidanceThe cost and the workaround, each in the sufferer's own units or the word unknown, in Who Has It and What They Do Today of each problem explanation file.
litespec/core/intent#state-the-measure-on-a-counted-requirementState the Measure on a Counted Requirementruleanyrecordsrecord:requirementrecordsrulecheckablelitespec model check reports requirement-measure-missing for a requirement carrying measure without check or a passing run, and for a statement naming a number with no measure.
litespec/core/intent#state-when-each-journey-finishesState When Each Journey Finishesruleanyrecordsrecord:journeyrecordsrulecheckablelitespec model check reports record-invalid for a journey record file missing finishedWhen.
litespec/core/intent#treat-generated-research-as-source-materialTreat Generated Research as Source MaterialruleanyrecordsanyrecordsruleguidanceA research record or a decision behind each position built from generated records.
litespec/core/intent#treat-tenant-set-values-as-dataTreat Tenant-Set Values as Dataruleanyrecordsrecord:requirementrecordsruleguidanceEach setBy: tenant value stored as tenant data.
litespec/core/intent#write-journey-steps-as-sentences-with-idsWrite Journey Steps as Sentences with Idsruleanyrecordsrecord:journeyrecordsrulecheckablelitespec model check reports record-invalid for a journey step missing id or statement, or naming a use case.
litespec/core/language#keep-names-an-outside-standard-fixesKeep Names an Outside Standard Fixesruleanyrecords-recordsruleguidanceWhich fixed names were renamed to fit the grammar? Look at the Gherkin fields and CloudEvents attributes the change touches.
litespec/core/language#name-a-boolean-as-a-predicateName a Boolean as a Predicateruleanyrecords-recordsruleguidanceWhich boolean fields read as something other than a predicate, or carry an is or has prefix? Look at the boolean fields the change adds.
litespec/core/language#name-commands-as-verbs-and-flags-by-what-they-setName Commands as Verbs and Flags by What They Setruleanyrecords-recordsruleguidanceWhich subcommands read as nouns, or which flags name something other than their mode or value? Look at the commands and flags the change adds.
litespec/core/language#name-each-date-by-what-it-marksName Each Date by What It Marksruleanyrecords-recordsrulecheckablelitespec-maintain validate emits no FIELD_NAME_SHAPE diagnostic for a date field.
litespec/core/language#name-each-field-by-its-word-className Each Field by Its Word Classruleanyrecords-recordsruleguidanceWhich fields break their word class? Look at the field names the change adds, beside the word-class table.
litespec/core/language#name-each-finding-code-by-subject-and-problemName Each Finding Code by Subject and Problemruleanyrecords-recordsruleguidanceWhich finding codes miss the subject-problem form or use a problem word outside the fourteen? Look at the finding codes the change adds, beside the problem-word table.
litespec/core/language#name-each-record-by-its-types-name-formName Each Record by Its Types Name Formruleanyrecords-recordsruleguidanceWhich record names miss the name form of their type? Look at the identifiers the change adds, beside the record-name table.
litespec/core/language#write-each-finding-message-as-a-factWrite Each Finding Message as a Factruleanyrecords-recordsruleguidanceWhich finding messages instruct instead of stating a fact, or open without the subject and identifier? Look at the messages the change adds.
litespec/core/language#write-each-kind-of-text-in-its-formWrite Each Kind of Text in Its Formruleanyrecords-recordsruleguidanceWhich texts miss the form of their kind? Look at the statements, steps, and meanings the change adds, beside the text-kind table.
litespec/core/language#write-each-value-in-the-value-styleWrite Each Value in the Value Styleruleanyrecords-recordsruleguidanceWhich statement, meaning, rationale, condition, failure, or title values miss the value style of their row? Look at the values the change adds, beside the value-style table.
litespec/core/language#write-in-american-englishWrite in American Englishruleanyrecords-recordsruleguidanceWhich words use British spelling? Look at the field names, enum values, and prose the change adds.
litespec/core/language#write-quantities-in-standard-unitsWrite Quantities in Standard Unitsruleanyrecords-recordsruleguidanceWhich quantities use free text or miss their unit? Look at the dates, durations, money values, and numbers the change adds.
litespec/core/layers#add-behavior-detail-when-specifying-intentAdd Behavior Detail When Specifying Intentruleanyrecordsanyrecordsrulecheckablelitespec model check emits no requirement-fulfillment-missing, record-link-missing, step-use-case-missing, erasure-undeclared, or setting-requirement-missing finding across Behavior records.
litespec/core/layers#build-ahead-of-a-regulation-only-under-its-constraintBuild Ahead of a Regulation Only Under Its Constraintruleanyrecordsrecord:constraintrecordsruleguidanceWhich anticipatory behavior lacks a citing constraint, or blocks a release before the statutory date? Look at the regulation-driven Behavior records beside the constraint and its date.
litespec/core/layers#close-incident-exceptions-within-seven-daysClose Incident Exceptions Within Seven Daysruleanyrecordsrecord:exceptionrecordsruleguidanceWhich incident fixes lack an exception, or carry an expired one? Look at the exception records beside each fix.
litespec/core/layers#enter-world-facts-as-cited-research-or-constraintsEnter World Facts as Cited Research or Constraintsruleanyrecordsrecord:research, record:constraintrecordsruleguidanceWhich world facts entered without a cited and dated research or constraint record? Look at the provider, regulation, and incident facts the change relies on.
litespec/core/layers#implement-only-declared-behaviorImplement Only Declared Behaviorruleanyrecordsrecord:use-case, record:reaction, record:jobtracedrulecheckablelitespec model check emits no behavior-unrecorded, write-undeclared, result-undeclared, effect-undeclared, or refusal-unimplemented finding across the implementation.
litespec/core/layers#prove-each-scenario-through-the-public-boundaryProve Each Scenario Through the Public Boundaryruleanyrecordsrecord:scenariorecordsrulecheckablelitespec model check emits no use-case-scenario-missing or proves-unreached finding across scenarios and tests.
litespec/core/layers#raise-open-needs-as-owner-questions-or-backlog-itemsRaise Open Needs as Owner Questions or Backlog ItemsruleanyrecordsanyrecordsruleguidanceWhich unstated needs lack a question to the owner or a backlog item? Look at the added records from a lower record layer, beside the owner questions and the backlog.
litespec/core/layers#record-changed-provider-behavior-as-observed-researchRecord Changed Provider Behavior as Observed Researchruleanyrecordsrecord:research, record:constraintrecordsruleguidanceWhich provider changes lack observed research and a citing constraint? Look at the provider facts the change relies on, beside the research records.
litespec/core/layers#send-commercial-and-observable-figures-to-the-ownerSend Commercial and Observable Figures to the Ownerruleanyrecordsrecord:setting, record:rulerecordsruleguidanceWhich figures the owner sets did Behavior fix without asking? Look at the settings and rules the change adds, beside the list of owner-set figures on the model page.
litespec/core/layers#write-each-layer-from-the-layer-above-itWrite Each Layer from the Layer Above Itruleanyrecordsanyrecordsrulecheckablelitespec model check emits no behavior-unrecorded finding for a refusal literal, a screen call to no endpoint, or an engine step mapping to no use case, and reports mark-missing for a code element that carries no mark.
litespec/core/maintaining#keep-provision-identifiers-stable-within-a-major-versionKeep Provision Identifiers Stable Within a Major Versionruleanyworkspace-recordsruleguidanceWhich provision identifiers did a minor release remove or rename? Compare the provision index at the previous tag with the provision index of the release, beside the changelog entry that lists the generated diff.
litespec/core/maintaining#list-every-stack-shape-and-extension-in-the-manifestList Every Stack Shape and Extension in the Manifestruleanyworkspace-recordsrulecheckablelitespec-maintain validate fails when a stack, shape, extension, or pin the release carries is missing from the manifest.
litespec/core/maintaining#mark-the-tools-with-the-provisions-they-followMark the Tools with the Provisions They Followruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits MARK_MISSING for a class with a method and no follows mark in a source project under apps/, and MARK_UNRESOLVED for a follows or proves mark in a .NET project under apps/, outside its Fixtures folders, that names no provision in docs/reference/provisions.md.
litespec/core/maintaining#publish-a-litespec-release-from-a-tagPublish a LiteSpec Release from a Tagruleanyworkspace-recordsrulecheckabledotnet test --solution LiteSpec.slnx fails ReleaseVersionTests when the changelog, the template, or either package version differs from the manifest version, and .github/workflows/release.yml refuses a tag that does not name the manifest version.
litespec/core/maintaining#record-the-reasoning-behind-each-releaseRecord the Reasoning Behind Each Releaseruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no RECORD_SCHEMA, RECORD_ID_MISMATCH, RECORD_SOURCE, RECORD_UNKNOWN_REFERENCE, or RECORD_DECISION_UNCITED diagnostic.
litespec/core/maintaining#replace-every-citation-on-a-renameReplace Every Citation on a Renameruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no ID_UNKNOWN_REFERENCE diagnostic.
litespec/core/maintaining#state-the-provision-lifecycleState the Provision Lifecycleruleanyworkspace-recordsruleguidanceEach provision sits in exactly one lifecycle state, with retired identifiers cited nowhere.
litespec/core/model#add-a-missing-fact-to-litespec-before-the-book-shows-itAdd a Missing Fact to LiteSpec Before the Book Shows ItruleanyrecordsanyrecordsruleguidanceWhich facts does the book show that no record field, computed status or check defines? Look at the book beside the model output and the finding codes.
litespec/core/model#author-one-slice-at-a-timeAuthor One Slice at a Timeruleanyrecordsrecord:featurerecordsruleguidanceBehavior records show Intent above them through their fulfills and decides links.
litespec/core/model#compute-completion-in-the-builderCompute Completion in the Builderruleanyrecordsrecord:use-case, record:requirement, record:journey, record:feature, record:goaltracedruleguidanceWhich features read below proven, and which children hold each one back? Look at completion on each feature in the model.
litespec/core/model#compute-proof-statuses-in-the-builderCompute Proof Statuses in the Builderruleanyrecordsanytracedrulecheckablelitespec model check reports use-case-unimplemented, proves-unreached, and refusal-unimplemented for a use case whose handler, proof, or refusal code is missing, and proof-invalid (level A) for a test that both passed and failed within the runs read.
litespec/core/model#connect-across-modules-only-through-declared-dependenciesConnect Across Modules Only Through Declared Dependenciesruleanyrecordsanyrecordsrulecheckablelitespec model check reports link-locality-invalid for a record under a module that is linked from another module with no declared dependency or integration event.
litespec/core/model#connect-every-behavior-record-to-intentConnect Every Behavior Record to Intentruleanyrecordsrecord:use-case, record:reaction, record:job, record:notification, record:settingrecordsrulecheckablelitespec model check reports record-link-missing for a use case, reaction, job, notification, or setting with neither serves nor fulfills, and use-case-journey-missing (level G) at large size for a use case that no reaction, job or other use case runs and that serves no journey step.
litespec/core/model#declare-one-mark-styleDeclare One Mark Styleruleanyrecordsanytracedrulecheckablelitespec model check reports mark-style-invalid (level S) for a mark written in a form its language does not take.
litespec/core/model#declare-size-and-stacksDeclare Size and Stacksruleanyrecordsanyrecordsrulecheckablelitespec model check reports size-type-missing and record-invalid for a project missing its declaration or a required type.
litespec/core/model#explain-each-record-beside-its-record-fileExplain Each Record Beside Its Record Fileruleanyrecordsanyrecordsrulecheckablelitespec model check reports explanation-orphaned for a Markdown file under a record root with no frontmatter and no record file beside it.
litespec/core/model#explain-the-book-from-litespec-definitionsExplain the Book from LiteSpec DefinitionsruleanyrecordsanyrecordsruleguidanceWhich explanations in the book are not a glossary definition or a record type question? Look at the book's explanations beside the glossary and the record type table.
litespec/core/model#follow-the-authority-orderFollow the Authority OrderruleanyrecordsanyrecordsruleguidanceConflict decisions under .litespec/intent/decisions/ name the higher record that won, in the order this page states.
litespec/core/model#give-every-record-one-parentGive Every Record One Parentruleanyrecordsanyrecordsrulecheckablelitespec model check reports record-parent-missing (level G) for a record whose required parent is missing.
litespec/core/model#give-every-use-case-its-resultsGive Every Use Case Its Resultsruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports use-case-success-missing and scenario-result-unknown for a use case missing its success or a scenario naming no result.
litespec/core/model#hold-module-rules-in-rule-setsHold Module Rules in Rule Setsruleanyrecordsrecord:rulerecordsrulecheckablelitespec model check reports record-placement-invalid for a rule in module.yaml.
litespec/core/model#implement-each-mapped-behavior-record-behind-a-markImplement Each Mapped Behavior Record Behind a Markruleanyrecordsrecord:aggregate, record:reaction, record:job, record:external-system, record:use-casetracedrulecheckablelitespec model check reports aggregate-unimplemented, reaction-unimplemented, job-unimplemented, external-system-unimplemented, and use-case-endpoint-missing (level S) for a record no mark names, where aggregate-unimplemented fires only for an entity aggregate, and use-case-unreached (level A) for a browser use case no screen calls.
litespec/core/model#keep-each-name-unique-in-the-productKeep Each Name Unique in the Productruleanyrecordsanyrecordsrulecheckablelitespec model check reports name-duplicate for a name segment that occurs twice in the product.
litespec/core/model#keep-module-dependencies-free-of-cyclesKeep Module Dependencies Free of Cyclesruleanyrecordsrecord:modulerecordsrulecheckablelitespec model check reports module-dependency-invalid for a module dependency cycle.
litespec/core/model#keep-rules-and-targets-out-of-technical-decisionsKeep Rules and Targets Out of Technical Decisionsruleanyrecordsrecord:decisionrecordsrulecheckablelitespec model check reports decision-basis-missing (level A) for a technical decision whose basedOn names nothing, and counts a quality requirement as fulfilled when a technical decision names it in basedOn.
litespec/core/model#mark-every-check-with-its-levelMark Every Check with Its Levelruleanyrecordsanyrecordsrulecheckablelitespec model check reports reader-missing (level S) for a frontend whose reader is missing or failing, and prints the level beside each finding.
litespec/core/model#match-each-backend-mark-to-its-folderMatch Each Backend Mark to Its Folderruleanyrecordscommand-handler, query-handler, endpoint, reaction, job, aggregatefullrulecheckablelitespec model check reports mark-folder-drift (level S) for a handler, endpoint, event handler, job host or aggregate root whose mark names a record outside its module and folder, and code-placement-drift (level S) for a code element, test, or folder outside its record's qualified path.
litespec/core/model#move-each-identifier-with-its-moduleMove Each Identifier with Its Moduleruleanyrecordsanyrecordsrulecheckablelitespec model check reports identifier-folder-drift for an identifier whose home segment disagrees with its folder.
litespec/core/model#name-book-labels-with-litespec-termsName Book Labels with LiteSpec TermsruleanyrecordsanyrecordsruleguidanceWhich book labels are neither a record type, a field name, a computed state, a glossary term, nor the reads-as phrase the Links table states for a connection? Look at the book beside the glossary and the Links table.
litespec/core/model#name-the-lowest-record-each-test-provesName the Lowest Record Each Test Provesruleanyrecordstestrecordsrulecheckablelitespec model check reports mark-missing and mark-unknown (level S) for a test that names no record or a record of a kind a test does not take.
litespec/core/model#name-what-every-decision-decidesName What Every Decision Decidesruleanyrecordsrecord:decisionrecordsrulecheckablelitespec model check reports decision-decides-missing for a product decision with an empty decides field, and decision-decides-duplicate for two decisions deciding one record.
litespec/core/model#organize-the-book-by-the-record-layersOrganize the Book by the Record LayersruleanyrecordsanyrecordsruleguidanceWhich book headings or groupings are not a record layer, a record type, or a record the identifier names? Look at the book's outline beside this page's record type table.
litespec/core/model#point-every-book-entry-to-its-sourcePoint Every Book Entry to Its SourceruleanyrecordsanyrecordsruleguidanceWhich book entries lack a link to their file and line? Look at the book's record, code, test and finding entries.
litespec/core/model#publish-each-integration-event-from-one-modulePublish Each Integration Event from One Moduleruleanyrecordsrecord:integration-eventrecordsrulecheckablelitespec model check reports event-publisher-invalid for an integration event with a second publishing module.
litespec/core/model#reach-behavior-from-every-intent-recordReach Behavior from Every Intent Recordruleanyrecordsrecord:goal, record:problem, record:feature, record:requirement, record:constraint, record:research, record:decisionrecordsrulecheckablelitespec model check reports intent-unreached for a record that reaches no Behavior; a local run reports it and the pull-request check blocks on it. The planned-Intent findings requirement-fulfillment-missing, step-use-case-missing, goal-mover-missing and constraint-unreached take the same outcome.
litespec/core/model#record-a-project-wide-lowering-as-an-exceptionRecord a Project-Wide Lowering as an Exceptionruleanyrecordsrecord:exceptionrecordsrulecheckablelitespec model check reports analyzer-lowering-unrecorded (level S) for a project-wide lowering in .editorconfig, .globalconfig, <NoWarn>, #pragma warning disable or [SuppressMessage] that no live exception covers.
litespec/core/model#record-accepted-gaps-as-exceptionsRecord Accepted Gaps as Exceptionsruleanyrecordsrecord:exceptionrecordsrulecheckablelitespec model check reports record-invalid for an exception missing its date, exception-expired (level G) past its expiresOn date, and exception-finding-unknown (level G) for an exception naming a finding code no check uses.
litespec/core/model#record-each-screens-captures-from-the-galleryRecord Each Screen's Captures from the Galleryruleanyrecordsrecord:screenrecordsruleguidanceWhich screens with a route have no capture? Look at captureState route-not-captured on screen records in the model.
litespec/core/model#record-each-technical-choice-as-a-decisionRecord Each Technical Choice as a Decisionruleanyrecordsrecord:decisionrecordsrulecheckablelitespec model check reports decision-unimplemented (level S) for a technical decision that no code element follows. The check runs in the CLI only, with no analyzer rule: whether any code follows a decision is known only across every project, and one compilation sees one project.
litespec/core/model#render-generated-regions-from-the-modelRender Generated Regions from the ModelconventionanyrecordsanyrecordsdefaultguidanceWhich generated regions render code-computed facts? Look inside the generated fences beside the book and the model output.
litespec/core/model#report-unverified-use-casesReport Unverified Use Casesruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports use-case-unverified (level A) for a use case whose scenarios are not all proved, and litespec model check --release blocks on it.
litespec/core/model#require-an-explanation-file-for-article-typesRequire an Explanation File for Article Typesruleanyrecordsrecord:research, record:decisionrecordsrulecheckablelitespec model check reports explanation-missing for an article type with no explanation file or with a required H2 section missing.
litespec/core/model#resolve-every-page-linkResolve Every Page Linkruleanyrecordsanyrecordsrulecheckablelitespec model check reports link-unknown for a link that resolves to no file and no written record identifier.
litespec/core/model#serve-every-journey-stepServe Every Journey Stepruleanyrecordsrecord:journeyrecordsrulecheckablelitespec model check reports step-use-case-missing for a journey step with no serving use case, reaction, or job, beside step-screen-missing for a step a browser or device use case serves that no screen serves.
litespec/core/model#show-only-computed-judgements-in-the-bookShow Only Computed Judgements in the BookruleanyrecordsanyrecordsruleguidanceWhich statuses, counts, orders or findings in the book does no builder output or check produce? Look at the book beside the model output.
litespec/core/model#split-record-fields-from-explanationSplit Record Fields from ExplanationruleanyrecordsanyrecordsruleguidanceWhich explanation files state a fact a check reads? Look at each explanation file beside its record file.
litespec/core/model#state-the-common-fields-on-every-recordState the Common Fields on Every Recordruleanyrecordsanyrecordsrulecheckablelitespec model check reports record-invalid for a record missing a common field.
litespec/core/model#take-decision-numbers-from-one-sequenceTake Decision Numbers from One Sequenceruleanyrecordsrecord:decisionrecordsrulecheckablelitespec model check reports decision-number-duplicate for two decisions sharing one number.
litespec/core/model#write-every-record-file-in-canonical-formWrite Every Record File in Canonical Formruleanyrecordsanyrecordsrulecheckablelitespec model check reports format-drift for a record file whose text differs from its canonical form.
litespec/core/model#write-every-record-in-its-homeWrite Every Record in Its Homeruleanyrecordsanyrecordsrulecheckablelitespec model check reports folder-invalid for a folder outside the closed set of its layer and level, module-undeclared for a modules folder naming no declared module, and record-placement-invalid for a record outside its home.
litespec/core/model#write-every-record-in-its-record-fileWrite Every Record in Its Record Fileruleanyrecordsanyrecordsrulecheckablelitespec model check reports record-invalid for a record file that does not parse or whose top level names no record type or container page style.
litespec/core/model#write-links-on-the-record-that-pointsWrite Links on the Record That Pointsruleanyrecordsanyrecordsrulecheckablelitespec model check reports reference-unknown for a link whose target no record carries.
litespec/core/principles#avoid-generic-boundary-namesAvoid Generic Boundary NamesruleanyrecordsanyrecordsruleguidanceEach changed boundary name carries the narrowest accurate business name, with no bare bus, manager, helper, processor, or service.
litespec/core/principles#build-only-what-the-specification-statesBuild Only What the Specification StatesruleanyrecordsanyrecordsruleguidanceWhich code has no specification record behind it? Compare the changed code with the records it serves.
litespec/core/principles#complete-work-before-mergingComplete Work Before Mergingruleanyrecordsanyrecordsrulecheckablelitespec model check reports unreached records locally and blocks on them in the pull-request check.
litespec/core/principles#compute-completion-from-code-and-testsCompute Completion from Code and TestsruleanyrecordsanytracedruleguidanceWhich records state their own completion? Compare the record fields with the completion the model computes.
litespec/core/principles#compute-nothing-above-implementation-from-codeCompute Nothing Above Implementation from CoderuleanyrecordsanyrecordsruleguidanceWhich records above Implementation restate code instead of a decided promise? Compare each new record with the code beside it.
litespec/core/principles#confine-atomic-consistency-to-synchronous-edgesConfine Atomic Consistency to Synchronous Edgesruleanyrecordsrecord:use-caserecordsruleguidanceWhich atomic use cases span an async edge? Look at the consistency and effects fields beside the changed use cases.
litespec/core/principles#cover-other-mechanisms-with-extensionsCover Other Mechanisms with ExtensionsruleanyrecordsanyrecordsruleguidanceWhich mechanisms outside the favored set lack an extension? Look at the selected extensions beside the changed records.
litespec/core/principles#declare-every-edgeDeclare Every EdgeruleanyrecordsanyrecordsruleguidanceWhich edges lack a declaration on their record? Look at the effects entries with runs, sends, emits, or calls beside the changed records.
litespec/core/principles#derive-records-only-from-recordsDerive Records Only from RecordsruleanyrecordsanyrecordsruleguidanceWhich derived values lack an authored source record? Trace each derived value to the record it cites.
litespec/core/principles#end-every-effect-cycle-in-a-domain-eventEnd Every Effect Cycle in a Domain Eventruleanyrecordsanyrecordsrulecheckablelitespec model check reports no effect-loop-invalid finding on the changed records.
litespec/core/principles#enter-facts-from-the-world-as-research-or-constraintsEnter Facts from the World as Research or ConstraintsruleanyrecordsanyrecordsruleguidanceWhich outside facts lack a cited and dated source? Look at the research and constraint records beside the change.
litespec/core/principles#follow-intent-where-it-has-spokenFollow Intent Where It Has SpokenruleanyrecordsanyrecordsruleguidanceWhich code disagrees with a stated promise? Compare the changed code with the Intent records it serves.
litespec/core/principles#keep-git-as-the-decision-recordKeep Git as the Decision RecordruleanyrecordsanyrecordsruleguidanceWhich changed records bypass their pull request? Look at the pull request behind the change.
litespec/core/principles#keep-one-authored-sourceKeep One Authored SourceruleanyrecordsanyrecordsruleguidanceEach fact on the changed pages traces to one authored record, with every other appearance derived from the model.
litespec/core/principles#keep-tools-smallKeep Tools SmallruleanyrecordsanyrecordsruleguidanceWhich commands, checks, generated files, or packages lack an owner approval or a user? Look at the tooling the change adds beside its users.
litespec/core/principles#locate-package-versions-in-the-manifestLocate Package Versions in the Manifestruleanyrecordsanyrecordsrulecheckablelitespec model check fails a project whose stack versions do not resolve from the manifest.
litespec/core/principles#map-each-engine-step-to-one-use-caseMap Each Engine Step to One Use Caseruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports no behavior-unrecorded finding on engine steps without a use case.
litespec/core/principles#name-boundary-intentName Boundary IntentruleanyrecordsanyrecordsruleguidanceEach changed boundary name states its business action.
litespec/core/principles#prefer-direct-owned-dependenciesPrefer Direct Owned DependenciesconventionanyrecordsanyrecordsdefaultguidanceEach new abstraction names the boundary that justifies it, or the wrapping convention that permits it.
litespec/core/principles#prefer-local-code-until-reuse-is-realPrefer Local Code Until Reuse Is RealconventionanyrecordsanyrecordsdefaultguidanceEach new shared unit serves two real consumers under one accurate name, or the sharing convention permits it.
litespec/core/principles#prove-enforceable-boundaries-mechanicallyProve Enforceable Boundaries MechanicallyruleanyrecordsanytracedruleguidanceEach changed enforceable boundary names a reference, test, or lint rule that proves it.
litespec/core/principles#prove-scenarios-with-testsProve Scenarios with TestsruleanyrecordstestrecordsruleguidanceEach scenario in the model links a passing test that calls its use case and asserts its result.
litespec/core/principles#raise-what-a-lower-layer-needs-to-the-ownerRaise What a Lower Layer Needs to the OwnerruleanyrecordsanyrecordsruleguidanceWhich needs from a lower record layer lack an owner question or a backlog item? Look at the owner questions and the backlog board beside the records that need them.
litespec/core/principles#record-stricter-edge-rules-as-conventionsRecord Stricter Edge Rules as ConventionsruleanyrecordsanyrecordsruleguidanceWhich stricter edge rules lack a cited convention? Look at the project conventions beside the changed records.
litespec/core/principles#require-current-complexity-activationRequire Current Complexity ActivationruleanyrecordsanyrecordsruleguidanceEach added package, project, wrapper, process, cache, queue, or pattern cites a current use case, decision, or requirement.
litespec/core/principles#state-the-strength-of-every-provisionState the Strength of Every ProvisionruleanyrecordsanyrecordsruleguidanceWhich provisions leave their strength or scope unstated? Look at the provisions the change adds.
litespec/core/principles#state-transaction-sharing-on-every-inline-edgeState Transaction Sharing on Every Inline Edgeruleanyrecordsanyrecordsrulecheckablelitespec model check reports no record-invalid finding on the changed inline edges.
litespec/core/principles#take-every-name-from-the-intent-above-itTake Every Name from the Intent Above ItruleanyrecordsanyrecordsruleguidanceWhich act carries a different name in its use case, method, event, permission, route or screen label than the record above it states? Compare the names of one act across its record, its handler, its endpoint and its screen.
litespec/core/principles#treat-code-beyond-silent-intent-as-evidence-for-an-owner-questionTreat Code Beyond Silent Intent as Evidence for an Owner QuestionruleanyrecordsanyrecordsruleguidanceWhich working code outside Intent lacks an owner question carrying it? Look at the owner questions beside the uncovered code.
litespec/core/principles#write-each-layer-from-the-layer-aboveWrite Each Layer from the Layer Aboveruleanyrecordsanyrecordsrulecheckablelitespec model check reports no record-link-missing finding on the changed records.
litespec/core/principles#write-every-record-about-the-softwareWrite Every Record About the SoftwareruleanyrecordsanyrecordsruleguidanceWhich records state company business instead of the software? Compare each new record with the code, results, tests, or infrastructure it translates into.
litespec/core/privacy#accept-every-retained-personal-data-class-in-intentAccept Every Retained Personal Data Class in Intentruleanyrecordsrecord:retention-schedulerecordsruleguidanceWhich pseudonymized, retained, or exempt personal or sensitive classes name no accepting requirement or decision? Look at basedOn on each data class.
litespec/core/privacy#classify-every-aggregate-data-fieldClassify Every Aggregate Data FieldruleanyrecordsaggregaterecordsruleguidanceWhich aggregate data fields lack a meaning, a classification, or a data class? Look at data on each aggregate page.
litespec/core/privacy#complete-the-subject-export-before-erasureComplete the Subject Export Before Erasureruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe export-first classes show a completed export before each erasure run in the run evidence.
litespec/core/privacy#declare-every-data-class-with-its-erasure-positionDeclare Every Data Class with Its Erasure Positionruleanyrecordsrecord:retention-schedulerecordsrulecheckablelitespec model check reports erasure-undeclared for a personal or sensitive field with no declared position and retention-enforcement-missing for a class nothing enforces.
litespec/core/privacy#discard-rows-that-leave-no-traceDiscard Rows That Leave No Traceruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe onErasure entries on the aggregate pages carry discard where no marker duty exists.
litespec/core/privacy#keep-a-tombstone-where-deletion-stays-visibleKeep a Tombstone Where Deletion Stays Visibleruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe aggregate pages mark referenced-after-erasure classes tombstone with the marker fields each keeps.
litespec/core/privacy#keep-tombstone-fields-minimalKeep Tombstone Fields Minimalconventionanyrecordsrecord:retention-schedulerecordsdefaultguidanceThe tombstone entries keep the row id and the erasure date, or the project lists wider fields with the rule behind each.
litespec/core/privacy#move-data-to-its-next-controller-instead-of-erasingMove Data to Its Next Controller Instead of Erasingruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe handed-over class entries name transferred with the receiver and the handover record.
litespec/core/privacy#purge-erased-data-from-restored-backupsPurge Erased Data from Restored Backupsruleanyrecordsrecord:runbookrecordsruleguidanceWhich restore runbooks name no sweep job? Look at the restore runbooks.
litespec/core/privacy#record-which-duty-wins-each-conflictRecord Which Duty Wins Each Conflictruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe retention schedule rows name the winning duty with its basis.
litespec/core/privacy#remove-child-rows-through-their-parent-onlyRemove Child Rows Through Their Parent Onlyruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe child class entries name cascade-only with the parent class, and the parent erasure tests clear the children.
litespec/core/privacy#require-a-fresh-export-after-changesRequire a Fresh Export After Changesruleanyrecordsrecord:retention-schedulerecordsruleguidanceThe erasure runs after mid-window edits show a fresh export completed first.
litespec/core/privacy#route-every-external-erasure-through-an-operation-or-eventRoute Every External Erasure Through an Operation or Eventruleanyrecordsrecord:external-systemrecordsruleguidanceWhich external systems declare no erasure call, forwarding event, or impossible reason with acceptance? Look at the external systems beside their erasure routes.
litespec/core/privacy#run-one-sweep-job-per-data-classRun One Sweep Job per Data ClassconventionanyrecordsjobrecordsdefaultguidanceEach sweep job page covers one data class, or the project names the classes each job covers.
litespec/core/privacy#schedule-every-data-class-for-retentionSchedule Every Data Class for Retentionruleanyrecordsrecord:retention-schedulerecordsrulecheckablelitespec model check reports retention-enforcement-missing for a data class nothing enforces.
litespec/core/privacy#scope-erasure-to-what-the-subject-requestedScope Erasure to What the Subject Requestedruleanyrecordsrecord:use-caserecordsruleguidanceThe erasure use cases cite the request they answer and touch only the data it names.
litespec/core/privacy#state-the-erasure-sentence-in-intentState the Erasure Sentence in Intentruleanyrecordsrecord:requirementrecordsruleguidanceThe confirmation sentence in the Intent requirement stands before the release that shows it.
litespec/core/release#apply-release-access-controlsApply Release Access ControlsruleanyoperationsanyfullruleguidanceWhich restricted release paths lack authentication or authorization? Look at the guards on each restricted path.
litespec/core/release#identify-immutable-release-artifactsIdentify Immutable Release ArtifactsruleanyoperationsanyrecordsruleguidanceWhich release records lack a source commit or artifact reference? Look at the record header beside each artifact.
litespec/core/release#keep-generated-contracts-stableKeep Generated Contracts StableruleanyoperationsanyfullruleguidanceWhich contract diffs hold timestamps, machine paths, or unstable order? Look at the generated diff beside each contract.
litespec/core/release#keep-release-records-non-authoritativeKeep Release Records Non-AuthoritativeruleanyoperationsanyrecordsruleguidanceWhich release records restate a specification or copy a scenario? Look at the record beside the linked specifications.
litespec/core/release#list-included-release-behaviorList Included Release BehaviorruleanyoperationsanyrecordsruleguidanceWhich records omit an included journey, use case, or extension? Look at the behavior list on each release record.
litespec/core/release#qualify-the-checker-with-known-good-and-known-bad-fixturesQualify the Checker with Known Good and Known Bad FixturesruleanyoperationsanyfullruleguidanceWhich gating S readers lack passing fixture runs? Look at the fixture results beside the stack reader.
litespec/core/release#record-accepted-debt-as-an-exceptionRecord Accepted Debt as an Exceptionruleanyoperationsrecord:exceptionrecordsruleguidanceWhich accepted debts lack an exception of kind gap with an expiry date? Look at the exceptions beside each debt.
litespec/core/release#record-the-release-artifactRecord the Release ArtifactruleanyoperationsanyrecordsruleguidanceWhich releases lack one record naming the immutable artifact? Look at the release records beside each artifact.
litespec/core/release#regenerate-application-contractsRegenerate Application ContractsruleanyoperationsanyfullruleguidanceWhich committed contracts differ from a fresh generation? Look at the contract diff beside the source change.
litespec/core/release#report-verification-exactlyReport Verification ExactlyruleanyoperationsanyrecordsruleguidanceWhich completion reports lack commands, outcomes, scope, omissions, differences, limits, or covered use cases? Look at the report beside the change.
litespec/core/release#resolve-release-blockersResolve Release BlockersruleanyoperationsanyrecordsruleguidanceWhich releases depend on an expired exception or an external claim without excluding the behavior? Look at the exceptions and claims beside the owning records.
litespec/core/release#run-backend-release-checksRun Backend Release ChecksruleanyoperationsanyfullruleguidanceWhich backend changes lack a passing release build or suite result? Look at the build and suite reports beside the change.
litespec/core/release#run-boundary-selected-checksRun Boundary-Selected ChecksruleanyoperationsanyrecordsruleguidanceWhich changes lack a passing result for a check their boundaries select? Look at the change report beside the boundary table.
litespec/core/release#run-consistency-checksRun Consistency Checksruleanyoperationsanyrecordsrulecheckablelitespec model check exits zero with no G finding.
litespec/core/release#run-extension-checksRun Extension ChecksruleanyoperationsanyrecordsruleguidanceWhich affected extensions lack their stated verification evidence? Look at the extension evidence beside the change.
litespec/core/release#run-frontend-release-checksRun Frontend Release ChecksruleanyoperationsanyfullruleguidanceWhich frontend changes lack a passing install, lint, type, test, or build result? Look at the frontend reports beside the change.
litespec/core/release#run-journey-checksRun Journey Checksruleanyoperationsrecord:journeyrecordsruleguidanceWhich journey changes lack passing journey tests? Look at the journey reports against the deployed boundary.
litespec/core/release#state-each-release-as-a-complete-recordState Each Release as a Complete RecordruleanyoperationsanyrecordsruleguidanceWhich release records depend on an earlier record to be judged? Look at the record alone beside its links.
litespec/core/release#store-release-records-togetherStore Release Records TogetherconventionanyoperationsanyrecordsdefaultguidanceWhich release records sit outside .litespec/releases/ without a recorded release path convention? Look at the release paths beside the convention.
litespec/core/release#verify-connected-journeysVerify Connected Journeysruleanyoperationsrecord:journeyrecordsruleguidanceWhich completed journeys lack a passing test through the deployed boundary? Look at the journey tests beside each included journey.
litespec/core/scope#answer-the-constraints-questionAnswer the Constraints Questionruleanyworkspace-recordsruleguidance.litespec/project.json states which outside constraints apply, or records an empty answer.
litespec/core/scope#claim-conformance-only-when-every-applicable-provision-holdsClaim Conformance Only When Every Applicable Provision Holdsruleanyworkspace-recordsruleguidance.litespec/project.json names the declared conformance level beside the selected size, shape, stacks, and extensions; each departure from a provision that applies at that level resolves to an exception record under .litespec/governance/exceptions/, and the checks that run at that level pass.
litespec/core/scope#declare-a-consumer-that-has-no-backendDeclare a Consumer That Has No Backendruleanyworkspace-recordsrulecheckablelitespec model check refuses a client-only project that names a backend stack.
litespec/core/scope#declare-the-conformance-levelDeclare the Conformance Levelruleanyworkspace-recordsrulecheckablelitespec model check reports project-invalid for a project file that names no level or a value other than records, traced or full.
litespec/core/scope#keep-every-litespec-file-under-one-folderKeep Every LiteSpec File Under One Folderruleanyworkspace-recordsruleguidanceWhich files created, read, or governed by LiteSpec sit outside .litespec/, or at the repository root? Look at the repository tree beside the project's .litespec/ folder.
litespec/core/scope#keep-every-record-about-the-softwareKeep Every Record About the Softwareruleanyworkspace-recordsrulecheckablelitespec model check reports a blocking finding for a folder under intent/modules/ naming no declared module and for a record reaching no Behavior.
litespec/core/scope#keep-one-bounded-contextKeep One Bounded Contextruleanyworkspace-recordsruleguidanceModule pages and .litespec/project.json name one business language and one deployment boundary, with no second of either.
litespec/core/scope#measure-capacity-before-expansionMeasure Capacity Before Expansionconventionanyworkspace-recordsdefaultguidanceEach added cache, replica, queue, or partition follows recorded load, latency target, and observed constraint, or a capacity convention.
litespec/core/scope#point-behavior-docs-at-the-behavior-rootPoint Behavior Docs at the Behavior Rootruleanyworkspace-recordsrulecheckablelitespec model check reports project-invalid for a project record without paths.behaviorDocs.
litespec/core/scope#record-selected-extensionsRecord Selected Extensionsruleanyworkspace-recordsrulecheckablelitespec model check reports project-invalid for a selection without a criterion.
litespec/core/scope#record-unsupported-scope-decisionsRecord Unsupported Scope Decisionsruleanyworkspace-recordsruleguidanceA project decision names each architecture outside the supported boundary the project adopts.
litespec/core/scope#select-a-size-a-shape-and-stacksSelect a Size, a Shape and Stacksruleanyworkspace-recordsrulecheckablelitespec model check refuses, at traced and full, a shape whose backend stack count is wrong and a platform that names no frontend stack.
litespec/core/scope#select-conditional-extensions-explicitlySelect Conditional Extensions Explicitlyruleanyworkspace-recordsruleguidanceEach entry in selectedExtensions carries a criterion that holds, and no applicable extension from the extension catalog stays unselected.
litespec/core/scope#start-with-one-api-and-databaseStart with One API and Databaseconventionanyworkspace-recordsdefaultguidanceThe topology holds one API deployable and one database, or a topology convention records what runs instead.
litespec/core/scopes#declare-the-page-scopeDeclare the Page Scoperuleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no SCOPE_BLOCK diagnostic.
litespec/core/scopes#depart-from-a-rule-only-through-a-recorded-exceptionDepart from a Rule Only Through a Recorded Exceptionruleanyworkspace-recordsruleguidanceEach departure from a provision of Strength rule resolves to an exception record under .litespec/governance/exceptions/ with the provision, a reason, and an expiry date.
litespec/core/scopes#give-every-provision-a-conformance-levelGive Every Provision a Conformance Levelruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no SCOPE_VALUE diagnostic for a provision with no conformance level.
litespec/core/scopes#name-the-artifact-of-every-provision-on-a-page-that-names-oneName the Artifact of Every Provision on a Page That Names Oneruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no SCOPE_ARTIFACT diagnostic.
litespec/core/scopes#record-each-replaced-defaultRecord Each Replaced Defaultruleanyworkspace-recordsruleguidanceEach choice against a provision of Strength default is recorded in the place its Replacement names.
litespec/core/scopes#state-applies-to-only-when-narrowerState Applies to Only When Narrowerruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no SCOPE_NARROW diagnostic.
litespec/core/scopes#use-only-declared-scope-valuesUse Only Declared Scope Valuesruleanyworkspace-recordsrulecheckablelitespec-maintain validate emits no SCOPE_VALUE diagnostic.
litespec/core/stacks#apply-the-complete-stackApply the Complete Stackruleanyworkspace-recordsruleguidanceThe consumer file set covers every page in its stack folders, the folders above them, and their stackless subfolders.
litespec/core/stacks#declare-replacementsDeclare Replacementsruleanyworkspace-recordsruleguidanceEach extension or departure names every baseline provision ID it replaces, with the rest staying active.
litespec/core/stacks#keep-the-stack-visibleKeep the Stack Visibleconventionanyworkspace-recordsdefaultguidance.litespec/project.json names each selected stack, and the root AGENTS.md names the solution, applications, and commands.
litespec/core/stacks#use-manifest-version-pinsUse Manifest Version Pinsruleanyworkspace-recordsruleguidanceEach resolved SDK, framework, and package version matches its pin in litespec.manifest.json.
litespec/core/system#declare-every-edge-between-recordsDeclare Every Edge Between Recordsruleanyrecordsanyrecordsrulecheckablelitespec model check emits no effect-undeclared or effect-loop-invalid finding across use cases, reactions, jobs, notifications, and integration events, and reports effect-unimplemented (check level A) for a declared edge no code takes.
litespec/core/system#deliver-one-complete-use-caseDeliver One Complete Use Caseruleanyrecordsrecord:use-caserecordsruleguidanceThe use case page with its behavior, persistence, entry points, tests, and operating records present.
litespec/core/system#drive-work-from-recordsDrive Work from RecordsruleanyrecordsanyrecordsruleguidanceThe change report listing the Intent and Behavior records the work started from.
litespec/core/system#group-module-use-case-files-by-aggregateGroup Module Use Case Files by Aggregateconventionanyrecordsrecord:use-caserecordsdefaultguidanceEach use case file under its module directory or its aggregate subdirectory.
litespec/core/system#keep-decision-authority-with-accountable-peopleKeep Decision Authority with Accountable PeopleruleanyrecordsanyrecordsruleguidanceThe change report naming the unknown fact, the person asked, and the record carrying the answer.
litespec/core/system#keep-operational-and-security-references-under-operationsKeep Operational and Security References Under OperationsconventionanyrecordsanyrecordsdefaultguidanceOperating and security reference prose under .litespec/implementation/operations/, or the project documentation naming the replacement home.
litespec/core/system#point-code-and-tests-up-to-recordsPoint Code and Tests up to Recordsruleanyrecordsanytracedrulecheckablelitespec model check reports mark-missing, mark-unknown and mark-count-invalid (check level S) for a code element with no mark, a mark naming no record of the type its element takes, or a handler marking other than one record.
litespec/core/system#point-every-technical-class-up-to-its-record-or-choicePoint Every Technical Class up to Its Record or Choiceruleanyrecordsanytracedrulecheckablelitespec model check reports mark-missing and mark-unknown (check level S), and dotnet build reports LS5001 and LS5002, for a technical class with no mark, an implements mark naming no Behavior record, or a follows mark naming no provision of the carried release, no decision or exception, or a provision on a page the project's stacks do not apply.
litespec/core/system#update-records-with-behaviorUpdate Records with BehaviorruleanyrecordsanyrecordsruleguidanceThe behavior change with its use case page, tests, product records, decision, journey, and operating records changed together.
litespec/core/system#use-established-technical-termsUse Established Technical TermsconventionanyrecordsanyrecordsdefaultguidanceProse using aggregate, command, query, reaction, job, repository, projection, outbox, idempotency, and transaction with their accepted meanings.
litespec/core/system#use-ordinary-capitalization-in-proseUse Ordinary Capitalization in ProseconventionanyrecordsanyrecordsdefaultguidanceProse writing module, aggregate, use case, journey, rule, event, and decision in lowercase outside names and identifiers.
litespec/core/system#use-the-docs-layout-on-the-model-pageUse the Docs Layout on the Model PageconventionanyrecordsanyrecordsdefaultguidanceThe docs/ tree matching the layout the model page states, or the project documentation naming the replacement layout.
litespec/core/use-cases#bind-every-keyed-setting-in-one-marked-options-classBind Every Keyed Setting in One Marked Options Classruleanyrecordsrecord:settingrecordsrulecheckablelitespec model check reports setting-unimplemented (level S) for a keyed setting no options class marks, and setting-key-drift (level S) for a marked options class whose SectionName constant and property do not spell the setting's key.
litespec/core/use-cases#bound-every-caller-supplied-input-valueBound Every Caller-Supplied Input Valueruleanyrecordsrecord:use-caserecordsruleguidanceWhich caller-supplied money or access inputs lack a cited bounding rule? Look beside each input with origin: caller on a money or access path.
litespec/core/use-cases#connect-each-use-case-to-intentConnect Each Use Case to Intentruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-link-missing for a use case with neither serves nor fulfills.
litespec/core/use-cases#declare-every-effect-with-one-verb-and-its-timingDeclare Every Effect with One Verb and Its Timingruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports effect-undeclared for an edge the records never declared and effect-timing-invalid for a command sends or calls effect with inline timing; litespec model check reports record-invalid for an effect entry without exactly one verb or its timing.
litespec/core/use-cases#declare-every-query-outputDeclare Every Query Outputruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports query-output-missing for a query with no declared output.
litespec/core/use-cases#declare-paging-on-every-collection-queryDeclare Paging on Every Collection Queryruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports paging-undeclared for a collection query with no paging.
litespec/core/use-cases#derive-generic-refusals-instead-of-writing-themDerive Generic Refusals Instead of Writing Themruleanyrecordsrecord:resultrecordsruleguidanceWhich use-case pages write a generic forbidden or invalid-input refusal as a record? Look at the results on each use-case page beside the derived names.
litespec/core/use-cases#describe-every-use-case-input-with-origin-and-classificationDescribe Every Use Case Input with Origin and Classificationruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a use-case input without name, meaning, or type, without of on an id or choice field, or with of on another type.
litespec/core/use-cases#end-every-use-case-in-named-resultsEnd Every Use Case in Named Resultsruleanyrecordsrecord:resultrecordsrulecheckablelitespec model check reports use-case-success-missing for a use case with no success result; each refusal entry on the use-case page carries its code.
litespec/core/use-cases#exercise-rules-from-scenariosExercise Rules from Scenariosruleanyrecordsrecord:scenariorecordsruleguidanceWhich scenarios show rules without naming them in exercises? Look at the scenarios beside the rules they walk.
litespec/core/use-cases#give-each-use-case-a-command-or-query-kindGive Each Use Case a Command or Query Kindruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a use-case page without kind or with an unknown kind.
litespec/core/use-cases#grant-each-use-case-scoped-accessGrant Each Use Case Scoped Accessruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a use-case page without access carrying grant and tenant scope.
litespec/core/use-cases#hold-every-setting-default-to-a-requirementHold Every Setting Default to a Requirementruleanyrecordsrecord:settingrecordsrulecheckablelitespec model check reports setting-requirement-missing for a commercial, legal, or varying default with no cited requirement.
litespec/core/use-cases#justify-every-wider-visibilityJustify Every Wider Visibilityruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports widening-cites-missing for a widened include group with no cited requirement.
litespec/core/use-cases#keep-one-kind-per-verbKeep One Kind per Verbruleanyrecordsrecord:use-caserecordsruleguidanceWhich queries open with a changing verb, or which commands open with a reading verb? Look at the first word of each use-case name beside its kind.
litespec/core/use-cases#keep-the-effect-graph-free-of-cyclesKeep the Effect Graph Free of Cyclesruleanyrecordsanyrecordsrulecheckablelitespec model check reports effect-loop-invalid for a cycle with no stated end condition.
litespec/core/use-cases#list-recorded-outcomes-inside-success-codesList Recorded Outcomes Inside Success Codesruleanyrecordsrecord:resultrecordsruleguidanceWhich success results with recorded outcomes list no codes? Look at the success results beside their use-case pages.
litespec/core/use-cases#mark-every-lagging-query-as-built-asynchronouslyMark Every Lagging Query as Built Asynchronouslyruleanyrecordsrecord:use-caserecordsruleguidanceWhich lagging queries lack builtAsynchronously with a bounded or advisory freshness and a lag scenario? Look at the queries beside the aggregates they read.
litespec/core/use-cases#name-a-use-case-for-the-act-its-aggregate-performsName a Use Case for the Act Its Aggregate Performsruleanyrecordsrecord:use-caserecordsruleguidanceWhich command handlers call aggregate methods starting with neither the use-case verb nor Request? Look at the methods each command handler calls.
litespec/core/use-cases#name-each-refusal-code-for-the-state-that-refusesName Each Refusal Code for the State That Refusesruleanyrecordsrecord:resultrecordsruleguidanceWhich refusal codes fall outside <module>.<noun>-<state> or hide their state behind a vague word? Look at the refusal codes on each use-case page.
litespec/core/use-cases#name-every-aggregate-a-use-case-changes-or-readsName Every Aggregate a Use Case Changes or Readsruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports write-undeclared for a write outside changes and reference-unknown for an unknown aggregate.
litespec/core/use-cases#name-the-configuration-key-of-every-operator-settingName the Configuration Key of Every Operator Settingruleanyrecordsrecord:settingrecordsrulecheckablelitespec model check reports setting-key-missing (level G) for a setting with setBy: operator and no key.
litespec/core/use-cases#name-the-entry-points-that-reach-each-use-caseName the Entry Points That Reach Each Use Caseruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a live use case that names no entry point and that nothing runs, and reference-unknown for a reachedThrough entry naming no entry point.
litespec/core/use-cases#name-the-events-each-use-case-raisesName the Events Each Use Case Raisesruleanyrecordsrecord:use-caserecordsruleguidanceWhich use cases raise domain events that raises does not name? Look at raises beside each use-case page.
litespec/core/use-cases#name-the-idempotency-of-every-use-caseName the Idempotency of Every Use Caseruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a use case without an idempotency mode or without the key, scope, or reason its mode needs; litespec model check reports record-invalid for a key with no {field} placeholder, a placeholder naming no input field, or a scope outside tenant, account, login, and global.
litespec/core/use-cases#name-the-result-each-scenario-ends-inName the Result Each Scenario Ends Inruleanyrecordsrecord:scenariorecordsrulecheckablelitespec model check reports record-invalid for a scenario entry without result, and scenario-result-unknown for a scenario ending in an unknown result.
litespec/core/use-cases#name-the-settings-each-use-case-readsName the Settings Each Use Case Readsruleanyrecordsrecord:use-caserecordsruleguidanceWhich use cases read a setting that reads does not name? Look at the use cases beside the settings they read.
litespec/core/use-cases#name-what-a-use-case-acts-on-from-the-modelName What a Use Case Acts on from the Modelruleanyrecordsrecord:use-caserecordsruleguidanceWhich use-case names carry no aggregate, declared part, or glossary term after their verb? Look at the words after the verb in each use-case name.
litespec/core/use-cases#order-every-refusal-list-by-precedenceOrder Every Refusal List by Precedenceruleanyrecordsrecord:resultrecordsruleguidanceWhich refusal lists stand out of precedence order, or place a written refusal ahead of a derived one? Look at the refusal entries on each use-case page.
litespec/core/use-cases#prove-every-written-result-with-a-scenarioProve Every Written Result with a Scenarioruleanyrecordsrecord:resultrecordsrulecheckablelitespec model check reports result-scenario-missing, level G for a success result and level A for a refusal.
litespec/core/use-cases#record-attempts-behind-recorded-refusalsRecord Attempts Behind Recorded Refusalsruleanyrecordsrecord:resultrecordsruleguidanceWhich refusals carrying recorded: true store no attempt with its reason? Look at the recorded refusals beside their use-case pages.
litespec/core/use-cases#retire-refusal-codes-with-their-replacementsRetire Refusal Codes with Their Replacementsruleanyrecordsrecord:resultrecordsruleguidanceWhich refusal codes in use were renamed or reused instead of retired with a named replacement? Look at the refusal codes beside their results.
litespec/core/use-cases#share-scenario-setup-in-backgroundShare Scenario Setup in Backgroundruleanyrecordsrecord:use-caserecordsruleguidanceWhich use cases repeat shared setup across scenarios instead of holding it in background? Look at the givens beside each use-case page.
litespec/core/use-cases#start-every-use-case-with-a-declared-verbStart Every Use Case with a Declared Verbruleanyrecordsrecord:use-caserecordsruleguidanceWhich use-case names open outside the baseline vocabulary and the recorded project verbs? Look at the first word of each use-case name.
litespec/core/use-cases#state-the-audit-position-of-every-commandState the Audit Position of Every Commandruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for a command without an audit level and target or an exemption with its justification.
litespec/core/use-cases#state-the-consistency-of-every-use-caseState the Consistency of Every Use Caseruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports consistency-cites-missing for an atomic multi-aggregate write with no cites, atomic-group-drift for changes differing from the bound group, atomic-group-invalid (level A) for a group above 4 aggregates, and atomic-group-duplicate (level A) for a command saving more than one atomic write group.
litespec/core/use-cases#state-the-transaction-sharing-of-every-inline-callState the Transaction Sharing of Every Inline Callruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports record-invalid for an inline runs effect without sharesTransaction.
litespec/core/use-cases#state-the-unit-of-every-quantity-settingState the Unit of Every Quantity Settingruleanyrecordsrecord:settingrecordsrulecheckablelitespec model check reports setting-unit-missing (level A) for a numeric or duration setting declaring no unit.
litespec/core/use-cases#write-every-scenario-in-given-when-thenWrite Every Scenario in Given When Thenruleanyrecordsrecord:scenariorecordsrulecheckablelitespec model check reports record-invalid for a scenario entry without given, when, or then.
litespec/core/use-cases#write-prose-on-every-use-caseWrite Prose on Every Use Caseruleanyrecordsrecord:use-caserecordsrulecheckablelitespec model check reports prose-missing for a use case without summary.
litespec/core/writing#apply-plain-mechanicsApply Plain MechanicsruleanyworkspaceanyrecordsruleguidanceWhich pages use British spelling, drop the serial comma, spell out a measured quantity, shorten a prose date, or carry a contraction inside a record? Look at the prose the change adds.
litespec/core/writing#comment-on-why-not-whatComment on Why, Not WhatruleanyworkspaceanyrecordsruleguidanceWhich comments restate the code, hold commented-out code, or recount how the code arrived? Look at the comments and API summaries the change adds.
litespec/core/writing#compare-real-options-in-each-decision-recordCompare Real Options in Each Decision Recordruleanyworkspacerecord:decisionrecordsruleguidanceWhich decision records name no real alternative, compare options on different points, recount the discussion, or omit what would reopen the choice? Look at the decision records the change adds.
litespec/core/writing#give-each-explanation-file-its-fixed-sectionsGive Each Explanation File Its Fixed SectionsruleanyworkspaceanyrecordsruleguidanceWhich explanation files miss a fixed section, reorder the list, or open without their H1 title? Look at the explanation files beside the records the change adds, beside the explanation-section table.
litespec/core/writing#give-each-paragraph-one-ideaGive Each Paragraph One IdearuleanyworkspaceanyrecordsruleguidanceWhich paragraphs carry two ideas, wrap across hard line breaks, or list items that are not parallel? Look at the explanation files and documents the change adds.
litespec/core/writing#keep-company-facts-out-of-intent-proseKeep Company Facts Out of Intent ProseruleanyworkspaceanyrecordsruleguidanceWhich Intent records carry a schedule, an effort estimate, a headcount, an offered price, a market fact or a launch date in prose? Look at the Intent records the change adds.
litespec/core/writing#keep-each-record-sentence-within-twenty-five-wordsKeep Each Record Sentence Within Twenty-Five WordsruleanyworkspaceanyrecordsruleguidanceWhich record statements or summaries carry a sentence past 25 words? Look at the statements and summaries the change adds.
litespec/core/writing#name-each-title-in-its-record-type-formName Each Title in Its Record Type FormruleanyworkspaceanyrecordsruleguidanceWhich titles miss the form of their type, name no subject, or carry a code, date or metaphor? Look at the titles the change adds, beside the title-form table.
litespec/core/writing#open-each-summary-with-who-and-what-is-at-stakeOpen Each Summary with Who and What Is at StakeruleanyworkspaceanyrecordsruleguidanceWhich summaries open with a pointer, a field name or background instead of who and what is at stake? Look at the first sentence of each one the change adds.
litespec/core/writing#put-the-actor-firstPut the Actor FirstruleanyworkspaceanyrecordsruleguidanceWhich sentences open with a thing instead of an actor, use the passive voice, or promise in the future tense? Look at the statements and summaries the change adds.
litespec/core/writing#state-each-statement-without-modal-wordsState Each Statement Without Modal WordsruleanyworkspaceanyrecordsruleguidanceWhich record statements carry a modal word or a second sentence? Look at the statements the change adds.
litespec/core/writing#use-literal-wordsUse Literal WordsruleanyworkspaceanyrecordsruleguidanceWhich titles or sentences use a metaphor, a stock phrase or an undefined term where a literal phrase exists? Look at the titles and first uses the change adds, beside the glossary.
litespec/core/writing#write-each-changelog-as-a-release-comparisonWrite Each Changelog as a Release ComparisonruleanyworkspaceanyrecordsruleguidanceWhich entries inventory files or work, bury their condition or action, or describe a former behavior outside the changelog? Look at the entries the change adds.
litespec/core/writing#write-each-documentation-page-as-one-kindWrite Each Documentation Page as One KindruleanyworkspaceanyrecordsruleguidanceWhich pages mix two jobs, open with background instead of their kind's opening, or state no reader and purpose in their first lines? Look at the opening lines of each documentation page the change adds, beside the documentation-kind table.
litespec/core/writing#write-every-record-title-in-title-caseWrite Every Record Title in Title CaseruleanyworkspaceanyrecordsruleguidanceWhich record titles fall outside Title Case, end in a period, or run past eight words? Look at the titles the change adds.
litespec/core/writing#write-for-the-reader-who-arrives-coldWrite for the Reader Who Arrives ColdruleanyworkspaceanyrecordsruleguidanceWhich records, sections and pages open with a pointer, a code or a field name instead of who and what is at stake? Look at the first sentence of each page the change adds.

ext#

IDProvisionKindStackLayerArtifactConformanceStrengthMarkEvidence
litespec/ext/ai#assert-structure-and-never-wordingAssert Structure and Never Wordingruleanyapplicationrecord:use-casefullruleguidanceThe mediated query scenarios assert fields, codes, and cited sources with no exact-word assertions.
litespec/ext/ai#bound-tool-calls-per-queryBound Tool Calls per Queryruleanyapplicationrecord:use-casefullruleguidanceThe mediated queries state a per-run tool-call bound enforced in the run tests.
litespec/ext/ai#name-the-closed-tool-setName the Closed Tool Setruleanyapplicationrecord:use-casefullruleguidanceThe mediated queries list their closed tools with no call outside the list.
litespec/ext/ai#pin-a-deterministic-stub-in-proofPin a Deterministic Stub in ProofruleanyapplicationtestfullruleguidanceThe mediated query tests run against the pinned stub version with no live model calls.
litespec/ext/ai#record-every-model-runRecord Every Model Runconventionanyapplicationquery-handlerfulldefaultguidanceThe run log holds prompt hash, tools called, and outcome per run, or the AI documentation names other evidence.
litespec/ext/ai#record-provenance-in-the-outputRecord Provenance in the Outputruleanyapplicationrecord:use-casefullruleguidanceThe mediated query answers carry model, tools called, and sources read.
litespec/ext/ai#refuse-unknown-toolsRefuse Unknown Toolsruleanyapplicationrecord:use-casefullruleguidanceThe mediated query tests refuse runs calling tools outside the closed set.
litespec/ext/audit#add-a-correcting-recordAdd a Correcting Recordruleanyapplicationcommand-handlerfullruleguidanceWhich corrections edit history instead of adding a referencing record? Look at the correction records.
litespec/ext/audit#anchor-the-audit-chain-outside-its-own-storeAnchor the Audit Chain Outside Its Own StoreruleanyapplicationjobfulladviceguidanceWhich stores publish no checkpoint outside operator reach? Look at the checkpoint destination and the threat model.
litespec/ext/audit#audit-async-work-at-request-timeAudit Async Work at Request Timeruleanyapplicationcommand-handlerfullruleguidanceWhich deferred runs write their audit record at run time instead of request time? Look at the audit rows beside the requesting calls.
litespec/ext/audit#audit-reads-of-the-trailAudit Reads of the Trailruleanyapplicationquery-handlerfullruleguidanceWhich completed trail reads produced no audit record? Look at the trail read path.
litespec/ext/audit#commit-a-success-record-with-its-business-changeCommit a Success Record with Its Business ChangeruleanyapplicationanyfullruleguidanceWhich succeeded records commit outside their business transaction? Look at the success write path.
litespec/ext/audit#cover-the-required-audit-categoriesCover the Required Audit Categoriesruleanyapplicationrecord:decisionfullruleguidanceWhich required categories have no selection entry? Look at the declared selection beside the eight listed categories.
litespec/ext/audit#declare-audit-selection-beside-the-commandDeclare Audit Selection Beside the Commandconventionanyapplicationcommand-handlerfulldefaultguidanceWhich Commands lack the declaration attribute with its action, target kind, category, and reason selector, or the recorded local convention? Look at the Command types.
litespec/ext/audit#declare-audit-selection-on-every-commandDeclare Audit Selection on Every Commandruleanyapplicationrecord:use-casefullruleguidanceWhich command use cases lack an audit position or an exemption with its justification in their audit field? Look at the use case pages.
litespec/ext/audit#emit-audit-records-at-the-mediation-boundaryEmit Audit Records at the Mediation BoundaryruleanyapplicationanyfullruleguidanceWhich audit writes run inside handlers instead of the mediation pipeline? Look at the producer stages and the handler code.
litespec/ext/audit#enforce-append-only-through-storage-privilegeEnforce Append-Only Through Storage PrivilegeruleanyapplicationanyfullruleguidanceWhich writing accounts hold update or delete on the audit store? Look at the granted store privileges.
litespec/ext/audit#exclude-derived-audit-trailsExclude Derived Audit TrailsruleanyapplicationanyfullruleguidanceWhich trail writes derive from events, triggers, or capture? Look at the producer source.
litespec/ext/audit#exclude-indiscriminate-auditingExclude Indiscriminate Auditingruleanyapplicationrecord:use-casefullruleguidanceWhich audited categories lack a recorded selection reason? Look at the declared selection.
litespec/ext/audit#exclude-personal-data-beyond-actor-identityExclude Personal Data Beyond Actor IdentityruleanyapplicationanyfullruleguidanceWhich records contain personal data beyond pseudonymous actor and target identifiers? Look at the stored audit rows.
litespec/ext/audit#exclude-secrets-and-payment-dataExclude Secrets and Payment DataruleanyapplicationanyfullruleguidanceWhich records contain a credential, token, session identifier, key, or payment value? Look at the stored audit rows.
litespec/ext/audit#exclude-state-snapshotsExclude State SnapshotsruleanyapplicationanyfullruleguidanceWhich records contain before or after state copies? Look at the stored audit rows.
litespec/ext/audit#give-the-trail-a-read-pathGive the Trail a Read Pathruleanyapplicationquery-handlerfullruleguidanceWhich trail reads lack an access grant or a declared filter? Look at the trail read use case.
litespec/ext/audit#keep-audit-infrastructure-in-one-locationKeep Audit Infrastructure in One LocationconventionanyapplicationanyfulldefaultguidanceWhich audit parts live outside the documented location or the recorded local convention? Look under Infrastructure/Auditing/.
litespec/ext/audit#provide-tamper-evidenceProvide Tamper EvidenceruleanyapplicationanyfullruleguidanceWhich records lack the chained SHA-256 hash over the canonical serialization? Look at the stored chain values.
litespec/ext/audit#publish-a-copy-to-the-security-platformPublish a Copy to the Security PlatformconventionanyapplicationanyfulldefaultguidanceWhich published copies leave the local store non-authoritative, or bypass the recorded local convention? Look at the delivery path.
litespec/ext/audit#publish-unsuccessful-write-failuresPublish Unsuccessful Write FailuresruleanyapplicationanyfullruleguidanceWhich deployments publish no write failure count for the unsuccessful path? Look at the published metrics.
litespec/ext/audit#record-a-bulk-read-inside-its-own-boundaryRecord a Bulk Read Inside Its Own Boundaryruleanyapplicationquery-handlerfullruleguidanceWhich above-threshold queries produced no record with the subject count? Look at the bulk query paths.
litespec/ext/audit#record-bulk-exportRecord Bulk Exportruleanyapplicationquery-handlerfullruleguidanceWhich exports produced no record naming the requested scope? Look at the export paths.
litespec/ext/audit#record-delegated-administrative-accessRecord Delegated Administrative AccessruleanyapplicationanyfullruleguidanceWhich support-grant actions lack the grant marker? Look at the records of actions under administrative grants.
litespec/ext/audit#record-every-attempt-outcomeRecord Every Attempt OutcomeruleanyapplicationanyfullruleguidanceWhich records lack a succeeded, denied, or failed outcome? Look at the outcome column.
litespec/ext/audit#record-failed-audited-attemptsRecord Failed Audited AttemptsruleanyapplicationanyfullruleguidanceWhich permitted attempts that threw produced no failed record? Look at the error paths beside the trail.
litespec/ext/audit#record-personal-data-readsRecord Personal-Data Readsruleanyapplicationquery-handlerfullruleguidanceWhich cross-boundary personal-data queries produced no record? Look at the query paths beside the trail.
litespec/ext/audit#record-refused-authorizationRecord Refused AuthorizationruleanyapplicationanyfullruleguidanceWhich refused authorizations produced no denied record? Look at the refusal paths beside the trail.
litespec/ext/audit#record-the-audit-adoption-decisionRecord the Audit Adoption Decisionruleanyapplicationrecord:decisionfullruleguidanceWhich adoption decisions lack categories, threshold, access model, integrity method, or records entry? Look at the adoption decision behind the audited Commands.
litespec/ext/audit#record-the-operation-trace-identityRecord the Operation Trace IdentityruleanyapplicationanyfullruleguidanceWhich records lack the trace identifier of their operation? Look at the stored audit rows.
litespec/ext/audit#record-the-refusal-code-on-an-unsuccessful-attemptRecord the Refusal Code on an Unsuccessful AttemptruleanyapplicationanyfullruleguidanceWhich denied or failed records lack the refusal code? Look at the unsuccessful audit rows.
litespec/ext/audit#record-the-request-originRecord the Request OriginruleanyapplicationanyfullruleguidanceWhich request-produced records lack origin, client, or request identifier? Look at the inbound-request audit rows.
litespec/ext/audit#record-the-required-audit-fieldsRecord the Required Audit FieldsruleanyapplicationanyfullruleguidanceWhich records lack actor, action, target, outcome, business time, record time, or tenant? Look at the stored audit rows.
litespec/ext/audit#reject-an-undeclared-commandReject an Undeclared CommandruleanyapplicationanyfullruleguidanceWhich Commands build or start with no audit position or exemption? Look at the build or startup gate.
litespec/ext/audit#remove-the-identity-mapping-on-erasureRemove the Identity Mapping on Erasureruleanyapplicationcommand-handlerfullruleguidanceWhich erasures leave the actor mapping or delete audit records? Look at the erasure handling and the retained rows.
litespec/ext/audit#restrict-handler-contribution-to-determined-valuesRestrict Handler Contribution to Determined Valuesruleanyapplicationcommand-handlerfullruleguidanceWhich handler contributions repeat the declared target or reason value, the actor, action code, or timestamp? Look at the handler audit calls.
litespec/ext/audit#retain-each-category-for-its-declared-periodRetain Each Category for Its Declared PeriodruleanyapplicationjobfullruleguidanceWhich records outlive the declared retention of their category? Look at the stored rows beside the adoption decision.
litespec/ext/audit#scope-every-record-to-its-tenantScope Every Record to Its TenantruleanyapplicationanyfullruleguidanceWhich records on tenant-owned data lack the tenant identity? Look at the tenant column.
litespec/ext/audit#stage-the-audit-write-before-the-business-commitStage the Audit Write Before the Business CommitruleanyapplicationanyfullruleguidanceWhich audit stages run after the business commit stage? Look at the pipeline stage order.
litespec/ext/audit#state-the-action-as-use-case-identityState the Action as Use-Case IdentityruleanyapplicationanyfullruleguidanceWhich action values name something other than the invoked use case? Look at the action column beside the use case pages.
litespec/ext/audit#store-the-trail-beside-the-business-dataStore the Trail Beside the Business DataconventionanyapplicationanyfulldefaultguidanceWhich trails live outside the business database or the recorded local convention? Look at the audit store and its privileges.
litespec/ext/audit#use-a-closed-actor-setUse a Closed Actor SetruleanyapplicationanyfullruleguidanceWhich actor values fall outside the five actor kinds? Look at the actor column, with devices and processes mapped.
litespec/ext/audit#use-a-fixed-category-vocabularyUse a Fixed Category Vocabularyconventionanyapplicationcommand-handlerfulldefaultguidanceWhich category values fall outside the eight-value vocabulary or the recorded local convention? Look at the declared selection.
litespec/ext/audit#verify-the-integrity-chain-on-a-scheduleVerify the Integrity Chain on a ScheduleruleanyapplicationjobfullruleguidanceWhich deployments run no scheduled chain verification with an alert? Look at the integrity job and its alerts.
litespec/ext/audit#version-the-audit-record-shapeVersion the Audit Record ShaperuleanyapplicationanyfullruleguidanceWhich records lack an explicit schema version? Look at the stored audit rows.
litespec/ext/audit#write-an-unsuccessful-record-outside-the-failed-transactionWrite an Unsuccessful Record Outside the Failed TransactionruleanyapplicationanyfullruleguidanceWhich denied or failed records roll back with their transaction? Look at the unsuccessful write path.
litespec/ext/automation#bound-tenant-rule-runs-per-periodBound Tenant Rule Runs per Periodconventionanyapplication-fulldefaultguidanceEach stored instance carries a monthly run cap, or the automation documentation names the cap scheme.
litespec/ext/automation#isolate-hook-failures-from-the-triggerIsolate Hook Failures from the Triggerruleanyapplication-fullruleguidanceThe hook tests fail the endpoint while the trigger outcome stays unchanged.
litespec/ext/automation#record-the-automation-catalogRecord the Automation Catalogruleanyapplication-fullruleguidanceEach catalog trigger, condition, and action is present as a record.
litespec/ext/automation#refuse-unknown-catalog-entriesRefuse Unknown Catalog Entriesruleanyapplication-fullruleguidanceThe instance tests refuse entries outside the catalog with the current catalog in the refusal.
litespec/ext/automation#state-what-a-hook-may-not-assumeState What a Hook May Not Assumeruleanyapplication-fullruleguidanceEach hook record lists the ordering, timing, and payload bounds its endpoint leaves unassumed.
litespec/ext/automation#state-what-a-hook-may-rely-onState What a Hook May Rely Onruleanyapplication-fullruleguidanceEach hook record lists payload, retries, timeout, and signature for its customer endpoint.
litespec/ext/automation#treat-tenant-rules-as-dataTreat Tenant Rules as Dataruleanyapplication-fullruleguidanceTenant instances live in tenant storage with none as a record.
litespec/ext/automation#version-catalog-entriesVersion Catalog Entriesruleanyapplication-fullruleguidanceEach catalog entry carries a version, and the stored instances cite the version they run.
litespec/ext/cache#avoid-unbounded-key-locksAvoid Unbounded Key LocksruleanyinfrastructureanyfullruleguidanceWhich lock schemes grow one entry per key without bound? Look at the lock state under high-cardinality keys.
litespec/ext/cache#bound-cache-refresh-workBound Cache Refresh WorkruleanyinfrastructureanyfullruleguidanceWhich caches refresh without bound on concurrent misses? Look at the refresh path under concurrent load.
litespec/ext/cache#compose-cache-keys-from-result-inputsCompose Cache Keys from Result InputsruleanyinfrastructureanyfullruleguidanceWhich keys miss the data-shape version, a result-affecting input, or the tenant or actor partition? Look at the key construction.
litespec/ext/cache#define-cache-invalidationDefine Cache InvalidationruleanyinfrastructureanyfullruleguidanceWhich cached values lack expiry, invalidating events, an owner, or failure behavior? Look at the invalidation contract of each cache.
litespec/ext/cache#define-cache-outage-behaviorDefine Cache Outage BehaviorruleanyinfrastructureanyfullruleguidanceWhich caches lack a documented source fallback or degraded response? Look at the outage behavior of each cache.
litespec/ext/cache#emit-a-signal-for-each-degraded-cache-pathEmit a Signal for Each Degraded Cache PathruleanyinfrastructureanyfullruleguidanceWhich cache paths share one counter across miss, error, and degraded response? Look at the emitted metrics.
litespec/ext/cache#exclude-unsafe-cache-key-materialExclude Unsafe Cache Key MaterialruleanyinfrastructureanyfullruleguidanceWhich keys contain a secret, unbounded input, or unhashed personal data? Look at the key construction.
litespec/ext/cache#keep-source-data-authoritativeKeep Source Data AuthoritativeruleanyinfrastructureanyfullruleguidanceWhich required business data lives authoritatively in the cache? Look at the source of record beside the cached copy.
litespec/ext/cache#place-cache-access-at-an-outer-boundaryPlace Cache Access at an Outer BoundaryconventionanyinfrastructureanyfulldefaultguidanceWhich cache access lives inside Domain, or outside the recorded local convention? Look at the cache call sites.
litespec/ext/cache#prefer-bounded-stalenessPrefer Bounded StalenessruleanyinfrastructureanyfulladviceguidanceWhich long expiries lack a measured staleness and operating-cost decision? Look at the expiry beside the invalidation cost.
litespec/ext/cache#record-a-manual-cache-invalidationRecord a Manual Cache InvalidationruleanyinfrastructureanyfullruleguidanceWhich manual clears lack a record naming actor, invalidation scope, and reason? Look at the invalidation runs.
litespec/ext/cache#record-accepted-cache-stalenessRecord Accepted Cache Stalenessruleanyinfrastructurerecord:use-casefullruleguidanceWhich cached queries lack a bounded freshness object with its duration on their output? Look at the served query beside each cache.
litespec/ext/cache#record-measured-cache-needRecord Measured Cache NeedruleanyinfrastructureanyfullruleguidanceWhich cache proposals lack observed query, load, latency, cost, or target? Look at the proposal behind each cache.
litespec/ext/cache#remove-unjustified-cachesRemove Unjustified CachesruleanyinfrastructureanyfullruleguidanceWhich caches stay past measurements that no longer justify their cost? Look at the owner reviews beside the operating cost.
litespec/ext/compat#assign-operation-idsAssign Operation IDsruleanyweb-apiendpointfullruleguidanceWhich independent-consumer operations lack a deliberate operationId? Look at the OpenAPI document.
litespec/ext/compat#assign-versioned-operation-idsAssign Versioned Operation IDsruleanyweb-apiendpointfullruleguidanceWhich new versions reuse the operation ID of a changed contract? Look at the versioned OpenAPI documents.
litespec/ext/compat#classify-breaking-contract-changesClassify Breaking Contract Changesruleanyweb-apianyfullruleguidanceWhich removed, renamed, narrowed, retyped, or authentication changes lack a breaking verdict? Look at the change reviews.
litespec/ext/compat#classify-compatible-additionsClassify Compatible Additionsruleanyweb-apianyfullruleguidanceWhich optional additions lack a record of why existing behavior stays? Look at the change reviews.
litespec/ext/compat#classify-independent-consumer-changesClassify Independent-Consumer Changesruleanyweb-apianyfullruleguidanceWhich independent-consumer contract changes lack a classification? Look at the change reviews.
litespec/ext/compat#classify-integration-event-changesClassify Integration Event Changesruleanyweb-apianyfullruleguidanceWhich integration-event changes lack a breaking, compatible, or needs-review verdict? Look at the event reviews.
litespec/ext/compat#declare-published-facts-as-integration-eventsDeclare Published Facts as Integration Eventsruleanyweb-apirecord:integration-eventfullruleguidanceWhich outside-consumed facts lack an integration-event record with direction, payload, and trust? Look at the integration-event records beside the outside consumers.
litespec/ext/compat#diff-release-contractsDiff Release Contractsruleanyweb-apianyfullruleguidanceWhich changes skipped the local or continuous integration diff against the baseline? Look at the local runs and the CI runs.
litespec/ext/compat#exercise-generated-consumersExercise Generated Consumersruleanyweb-apitestfullruleguidanceWhich first-party clients skip compiling or exercising the changed contract? Look at the client test runs.
litespec/ext/compat#gate-new-error-outcomesGate New Error Outcomesruleanyweb-apianyfullruleguidanceWhich added error outcomes break existing consumers on unknown codes? Look at the consumer error handling.
litespec/ext/compat#keep-baseline-references-immutableKeep Baseline References Immutableconventionanyweb-apianyfulldefaultguidanceWhich baselines move, or live outside the recorded local convention? Look at the baseline references.
litespec/ext/compat#keep-problem-details-codes-stableKeep Problem Details Codes Stableconventionanyweb-apianyfulldefaultguidanceWhich Problem Details codes changed across compatible versions, or outside the recorded local convention? Look at the versioned error surface.
litespec/ext/compat#preserve-stable-error-codesPreserve Stable Error Codesruleanyweb-apianyfullruleguidanceWhich removed or reassigned stable codes lack a breaking verdict? Look at the change reviews.
litespec/ext/compat#publish-deprecation-contextPublish Deprecation Contextruleanyweb-apianyfullruleguidanceWhich operations scheduled for removal are missing from the consumer changelog? Look at the consumer CHANGELOG.md.
litespec/ext/compat#record-breaking-behavior-changes-as-decisionsRecord Breaking Behavior Changes as Decisionsruleanyweb-apirecord:decisionfullruleguidanceWhich breaking Behavior changes past production lack a decision naming their consumer impact? Look at the decisions.
litespec/ext/compat#record-deprecation-conditionsRecord Deprecation Conditionsruleanyweb-apirecord:decisionfullruleguidanceWhich deprecations lack a sunset date, a replacement, or recording before removal? Look at the deprecation decisions.
litespec/ext/compat#record-version-retirementRecord Version Retirementruleanyweb-apirecord:decisionfullruleguidanceWhich retirements lack affected consumers, a deadline, a removal condition, or recording before removal? Look at the versioning decisions.
litespec/ext/compat#reject-breaking-diffs-without-authorizationReject Breaking Diffs Without Authorizationruleanyweb-apianyfullruleguidanceWhich breaking diffs passed without a new version or a recorded decision? Look at the CI runs.
litespec/ext/compat#resolve-uncertain-classifications-safelyResolve Uncertain Classifications Safelyruleanyweb-apianyfullruleguidanceWhich unclear changes shipped as compatible without consumer review? Look at the change reviews.
litespec/ext/compat#retain-compatible-operation-idsRetain Compatible Operation IDsruleanyweb-apiendpointfullruleguidanceWhich compatible changes renamed the operationId? Look at the OpenAPI diff.
litespec/ext/compat#retain-release-baselinesRetain Release Baselinesruleanyweb-apianyfullruleguidanceWhich releases lack a retained OpenAPI baseline? Look at the release artifacts.
litespec/ext/compat#retain-supported-versionsRetain Supported Versionsruleanyweb-apianyfullruleguidanceWhich previous versions left before their support window? Look at the deployed versions beside the declared window.
litespec/ext/compat#retire-integration-events-with-noticeRetire Integration Events with Noticeruleanyweb-apianyfullruleguidanceWhich retired event versions left before their support window or without notice? Look at the retirement records beside the event consumers.
litespec/ext/compat#review-exhaustive-consumer-changesReview Exhaustive Consumer Changesruleanyweb-apianyfullruleguidanceWhich added enum values or discriminator cases shipped without consumer review? Look at the consumer reviews.
litespec/ext/compat#signal-planned-public-removalSignal Planned Public Removalruleanyweb-apiendpointfullruleguidanceWhich operations scheduled for removal lack a deprecation signal? Look at the public operations.
litespec/ext/compat#store-current-openapi-sourceStore Current OpenAPI Sourceconventionanyweb-apianyfulldefaultguidanceWhich current OpenAPI artifacts live outside the documented path or the recorded local convention? Look at apps/api/openapi/.
litespec/ext/compat#treat-errors-as-contractsTreat Errors as Contractsruleanyweb-apianyfullruleguidanceWhich type, code, field-code, or status changes shipped outside versioning? Look at the versioned error surface.
litespec/ext/compat#treat-removed-behavior-fields-as-breakingTreat Removed Behavior Fields as Breakingruleanyweb-apianyfullruleguidanceWhich removed output fields, refusal codes, or integration-event payload fields lack a breaking verdict? Look at the change reviews.
litespec/ext/compat#use-one-diff-toolUse One Diff Toolconventionanyweb-apianyfulldefaultguidanceWhich local runs or CI runs use a different diff tool than the recorded local convention? Look at the local runs and the CI runs.
litespec/ext/compat#version-breaking-contractsVersion Breaking Contractsruleanyweb-apiendpointfullruleguidanceWhich breaking contracts ship without a new route or media-type version? Look at the versioned API surface.
litespec/ext/compat#version-breaking-integration-eventsVersion Breaking Integration Eventsruleanyweb-apirecord:integration-eventfullruleguidanceWhich breaking event changes ship without a new version beside the retained one? Look at the integration event versions.
litespec/ext/concurrency#apply-http-version-preconditionsApply HTTP Version PreconditionsruleanyapplicationendpointfullruleguidanceWhich versioned HTTP operations miss a strong persistence-derived ETag or an If-Match requirement on writes? Look at the versioned endpoints.
litespec/ext/concurrency#bound-expired-record-cleanupBound Expired-Record CleanupruleanyapplicationjobfullruleguidanceWhich expired-record cleanup runs outside a bounded maintenance process? Look at the cleanup jobs.
litespec/ext/concurrency#canonicalize-request-fingerprintsCanonicalize Request Fingerprintsruleanyapplicationcommand-handlerfullruleguidanceWhich fingerprints miss canonical input, route identity, or actor identifier, or include credentials or the client key? Look at the fingerprint derivation.
litespec/ext/concurrency#compare-expected-aggregate-versionsCompare Expected Aggregate Versionsruleanyapplicationcommand-handlerfullruleguidanceWhich caller-version comparisons run outside the transaction carrying their change? Look at the conflicting-write paths.
litespec/ext/concurrency#declare-applicable-headersDeclare Applicable HeadersconventionanyapplicationendpointfulldefaultguidanceGenerated OpenAPI declares the idempotency header for every applicable operation, or the recorded header-declaration convention names how its contracts expose the header.
litespec/ext/concurrency#declare-replayed-transport-outcomesDeclare Replayed Transport Outcomesruleanyapplicationrecord:use-caserecordsruleguidanceWhich idempotent use cases list no stored statuses and headers for replay? Look at the idempotent use case pages.
litespec/ext/concurrency#define-concurrent-retry-behaviorDefine Concurrent Retry Behaviorruleanyapplicationrecord:use-caserecordsruleguidanceWhich idempotent use cases leave concurrent-request behavior undefined? Look at the idempotent use case pages.
litespec/ext/concurrency#delay-irreversible-provider-callsDelay Irreversible Provider Callsruleanyapplicationcommand-handlerfullruleguidanceWhich irreversible provider calls run before their business transaction commits? Look at the idempotent operation paths.
litespec/ext/concurrency#discard-failed-replay-stateDiscard Failed Replay Stateruleanyapplicationcommand-handlerfullruleguidanceWhich failed pre-commit requests leave a business change or a completed replay record? Look at the failure paths.
litespec/ext/concurrency#document-write-conflict-behaviorDocument Write Conflict Behaviorruleanyapplicationrecord:use-caserecordsruleguidanceWhich conflicting-write use cases lack conflicts, invalid state, winner behavior, or caller response? Look at the use case pages.
litespec/ext/concurrency#enforce-key-uniquenessEnforce Key UniquenessruleanyapplicationrepositoryfullruleguidanceWhich idempotency stores lack the unique constraint on tenant, actor, operation, and client key? Look at the idempotency store schema.
litespec/ext/concurrency#exclude-unsafe-replay-outcomesExclude Unsafe Replay Outcomesruleanyapplicationcommand-handlerfullruleguidanceWhich replays return authentication failures, transient failures, cookies, hop-by-hop headers, tokens, or secrets? Look at the replayed responses.
litespec/ext/concurrency#hide-provider-version-valuesHide Provider Version ValuesruleanyapplicationendpointfullruleguidanceWhich transport models expose a provider-specific version value outside the ETag? Look at the public transport models.
litespec/ext/concurrency#keep-idempotency-persistence-in-infrastructureKeep Idempotency Persistence in InfrastructureconventionanyapplicationrepositoryfulldefaultguidanceIdempotency persistence and transaction handling live in Infrastructure, or the recorded idempotency-store convention names where its idempotency state lives.
litespec/ext/concurrency#limit-version-checksLimit Version Checksruleanyapplicationcommand-handler, endpointfullruleguidanceWhich caller-version requirements lack a documented conflicting-write case? Look at the versioned operations beside the conflicting-write documents.
litespec/ext/concurrency#map-failed-expected-versionsMap Failed Expected VersionsruleanyapplicationendpointfullruleguidanceWhich failed expected versions miss the 409 Problem Details response or its stable code? Look at the conflict responses.
litespec/ext/concurrency#map-replay-responses-at-the-api-boundaryMap Replay Responses at the API BoundaryconventionanyapplicationendpointfulldefaultguidanceReplay response mapping lives at the API boundary, or the recorded replay-mapping convention names where its replay mapping lives.
litespec/ext/concurrency#protect-fingerprint-source-dataProtect Fingerprint Source Dataruleanyapplicationcommand-handlerfullruleguidanceWhich idempotency stores keep original sensitive request content that support never needs? Look at the fingerprint store.
litespec/ext/concurrency#reject-conflicting-key-reuseReject Conflicting Key Reuseruleanyapplicationcommand-handlerfullruleguidanceWhich reused keys with a changed fingerprint miss the documented rejection? Look at the key-reuse paths.
litespec/ext/concurrency#reject-silent-overwritesReject Silent Overwritesruleanyapplicationcommand-handlerfullruleguidanceWhich conflicting accepted writes silently replace the winner? Look at the conflict outcomes.
litespec/ext/concurrency#reload-concurrent-winnersReload Concurrent Winnersruleanyapplicationcommand-handlerfullruleguidanceWhich losing concurrent requests with a matching fingerprint miss the reload and replay of the winner? Look at the concurrent retry paths.
litespec/ext/concurrency#replay-completed-resultsReplay Completed Resultsruleanyapplicationcommand-handlerfullruleguidanceWhich completed idempotent retries return other than the original response status and body? Look at the replay paths.
litespec/ext/concurrency#restrict-replay-dataRestrict Replay Dataruleanyapplicationcommand-handlerfullruleguidanceWhich stored replay fields serve no accepted result callers reproduce? Look at the replay store.
litespec/ext/concurrency#retain-safe-retry-keysRetain Safe Retry Keysruleanyapplicationrecord:settingrecordsruleguidanceWhich keys expire before the documented safe retry time? Look at the retention settings beside the idempotent use cases.
litespec/ext/concurrency#return-precondition-outcomesReturn Precondition OutcomesruleanyapplicationendpointfullruleguidanceWhich versioned operations return a wrong status or code for a missing If-Match or a stale version? Look at the precondition responses.
litespec/ext/concurrency#route-required-external-effects-durablyRoute Required External Effects Durablyruleanyapplicationcommand-handlerfullruleguidanceWhich required external effects use neither the outbox nor a documented provider idempotency contract? Look at the idempotent operation paths.
litespec/ext/concurrency#run-idempotency-in-the-pipelineRun Idempotency in the Pipelineruleanyapplicationcommand-handlerfullruleguidanceWhich idempotent operations run idempotency outside a pipeline stage after authorization and validation, before the handler? Look at the pipeline stage order.
litespec/ext/concurrency#scope-client-keysScope Client Keysruleanyapplicationcommand-handlerfullruleguidanceWhich idempotent operations scope their client key to less than tenant, authenticated actor, and operation? Look at the keyed operations.
litespec/ext/concurrency#set-key-retentionSet Key Retentionruleanyapplicationrecord:settingrecordsruleguidanceWhich key retentions miss the caller retry window or the business risk? Look at the setting record beside the idempotent use case.
litespec/ext/concurrency#store-idempotency-state-atomicallyStore Idempotency State Atomicallyruleanyapplicationcommand-handlerfullruleguidanceWhich idempotent operations store fingerprint, state, response, or expiry outside the business transaction? Look at the keyed write paths.
litespec/ext/concurrency#use-the-standard-idempotency-headerUse the Standard Idempotency HeaderconventionanyapplicationendpointfulldefaultguidanceApplicable operations accept Idempotency-Key within its bounds, or the recorded client-key convention names the header and value bounds its commands accept.
litespec/ext/delegation#ask-only-unanswered-questionsAsk Only Unanswered Questionsruleanyworkspace-fullruleguidanceWhich worker questions repeat answers the brief gives? Look at the worker questions beside the brief.
litespec/ext/delegation#hold-back-example-rows-from-the-implementing-workerHold Back Example Rows from the Implementing Workerruleanyworkspace-fullruleguidanceWhich delegated refusal or calculation implementations were checked only against rows the worker saw? Look at the held-back rows and the check runs.
litespec/ext/delegation#restrict-a-worker-to-its-pathsRestrict a Worker to Its Pathsruleanyworkspace-fullrulecheckablegit diff --name-only lists only the brief's named paths. The worker commits nothing.
litespec/ext/delegation#verify-before-accepting-worker-outputVerify Before Accepting Worker Outputruleanyworkspace-fullruleguidanceWhich accepted outputs lack a watched verification run? Look at the verification runs the delegating agent reports.
litespec/ext/delegation#write-a-brief-before-delegatingWrite a Brief Before Delegatingruleanyworkspace-fullruleguidanceWhich briefs lack goal, context, sources, or output? Look at the briefs the delegating agent wrote.
litespec/ext/delivery#accept-every-shipped-package-license-explicitlyAccept Every Shipped Package License Explicitlyruleanyoperationsanyfullrulecheckablelitespec model check reports dependency-license-unknown (level S) for a direct package whose license the project does not accept and no admits entry names.
litespec/ext/delivery#apply-oci-release-labelsApply OCI Release LabelsruleanyoperationsanyfullruleguidanceWhich release images miss OCI source, revision, version, or created-time labels? Look at the built images.
litespec/ext/delivery#apply-schema-work-before-trafficApply Schema Work Before TrafficruleanyoperationsanyfullruleguidanceWhich releases shift traffic before the reviewed schema job runs? Look at the release job order.
litespec/ext/delivery#apply-the-documented-defaultsApply the Documented DefaultsconventionanyoperationsanyfulldefaultguidanceEach consumer workflow file matches one jobs-table job and name, or the workflow-layout convention names another arrangement.
litespec/ext/delivery#attach-dashboard-links-to-production-objectivesAttach Dashboard Links to Production ObjectivesruleanyoperationsanyfullruleguidanceEach production objective in the book links its dashboard.
litespec/ext/delivery#build-from-the-workspace-rootBuild from the Workspace RootconventionanyoperationsanyfulldefaultguidanceImage builds needing shared inputs start from the workspace root, or the recorded build-context convention names the context its image builds use.
litespec/ext/delivery#build-release-images-in-stagesBuild Release Images in StagesruleanyoperationsanyfullruleguidanceWhich release images miss multi-stage builds or pinned base-image digests? Look at the Dockerfiles.
litespec/ext/delivery#copy-only-runtime-filesCopy Only Runtime FilesruleanyoperationsanyfullruleguidanceWhich runtime images carry files outside the declared runtime manifest? Look at the image file listing beside the declared runtime manifest.
litespec/ext/delivery#cover-the-baseline-alert-setCover the Baseline Alert SetruleanyoperationsanyfullruleguidanceThe baseline alerts cover readiness failures, unexpected HTTP errors, release-flow latency, PostgreSQL outages, and failed deployments.
litespec/ext/delivery#declare-writable-paths-and-limitsDeclare Writable Paths and LimitsruleanyoperationsanyfullruleguidanceWhich deployments miss declared writable paths or CPU and memory setting records? Look at the deployment manifests beside the setting records.
litespec/ext/delivery#define-actionable-baseline-alertsDefine Actionable Baseline AlertsruleanyoperationsanyfullruleguidanceEach baseline alert declares owner, threshold, window, severity, and runbook.
litespec/ext/delivery#define-backup-and-restore-behaviorDefine Backup and Restore BehaviorruleanyoperationsanyfullruleguidanceThe release documentation states backup owner, schedule, retention, encryption, location, restore command, and recovery objectives.
litespec/ext/delivery#enforce-the-supply-chain-gateEnforce the Supply-Chain GateruleanyoperationsanyfullruleguidanceThe supply-chain report shows scan, pin, inventory, and license evidence with an exception for each unhandled high-severity advisory.
litespec/ext/delivery#exclude-build-material-from-runtime-imagesExclude Build Material from Runtime ImagesruleanyoperationsanyfullruleguidanceWhich runtime images contain source, tests, package caches, or local configuration? Look at the runtime image contents.
litespec/ext/delivery#exclude-build-timestamps-from-contractsExclude Build Timestamps from ContractsruleanyoperationsanyfullruleguidanceWhich published OpenAPI documents or generated clients contain a build timestamp? Look at the generated contracts.
litespec/ext/delivery#exclude-environment-configuration-from-imagesExclude Environment Configuration from ImagesruleanyoperationsanyfullruleguidanceWhich release images contain environment-specific configuration? Look at the release image contents.
litespec/ext/delivery#exclude-insecure-frontend-secret-carriersExclude Insecure Frontend Secret CarriersruleanyoperationsanyfullruleguidanceWhich frontend image builds use ARG, copied environment files, or image layers for secrets? Look at the frontend image builds.
litespec/ext/delivery#exercise-a-restore-before-the-first-production-dataExercise a Restore Before the First Production DataruleanyoperationsanyfullruleguidanceThe operations log holds a restore rehearsal on representative data before the first production data.
litespec/ext/delivery#exercise-every-runbook-before-releaseExercise Every Runbook Before Releaseruleanyoperationsrecord:runbookfullruleguidanceEach required runbook carries a dated rehearsal in the operations log.
litespec/ext/delivery#keep-a-canonical-job-graphKeep a Canonical Job GraphruleanyoperationsanyfullruleguidanceThe consumer workflows use the job names and responsibilities the jobs table states.
litespec/ext/delivery#keep-a-first-release-readiness-recordKeep a First-Release Readiness RecordruleanyoperationsanyfullruleguidanceWhich pre-release consumers lack dated rehearsals, green gates, or a rehearsal owner? Look at the readiness record beside the project.
litespec/ext/delivery#keep-deployment-descriptors-togetherKeep Deployment Descriptors TogetherconventionanyoperationsanyfulldefaultguidanceThe deployment descriptors sit under one deploy/ tree, or the deployment-layout convention names another arrangement.
litespec/ext/delivery#keep-each-alert-threshold-to-its-requirements-measureKeep Each Alert Threshold to Its Requirement's Measureruleanyoperationsanyfullrulecheckablelitespec model check reports alert-threshold-drift (level A) for an alert rule whose own text carries none of the decimal numbers its requirement's measure names.
litespec/ext/delivery#keep-mutable-data-externalKeep Mutable Data ExternalruleanyoperationsanyfullruleguidanceWhich mutable data lives inside a container filesystem? Look at the application storage design.
litespec/ext/delivery#keep-rollback-executableKeep Rollback Executableruleanyoperationsrecord:runbookfullruleguidanceThe rollback runbook states its artifact reference, command, compatibility, data condition, and expand-and-contract sequence, and the previous image digest for a container release.
litespec/ext/delivery#keep-schema-work-out-of-startupKeep Schema Work Out of StartupruleanyoperationsanyfullruleguidanceWhich application replicas alter the production schema during startup? Look at the replica startup paths.
litespec/ext/delivery#keep-scripts-at-the-rootKeep Scripts at the RootconventionanyoperationsanyfulldefaultguidanceBootstrap, release, and CI helper scripts sit under root scripts/; where replaced, the project documentation names the project's own script layout.
litespec/ext/delivery#limit-container-privilegesLimit Container PrivilegesruleanyoperationsanyfullruleguidanceWhich deployments keep a writable filesystem or unnecessary capabilities where the application permits the limits? Look at the deployment manifests.
litespec/ext/delivery#match-every-shipped-package-to-its-pinMatch Every Shipped Package to Its Pinruleanyoperationsanyfullrulecheckablelitespec model check reports dependency-version-drift (level S) for a direct package whose version differs from its manifest pin.
litespec/ext/delivery#meet-release-readiness-gatesMeet Release Readiness Gatesruleanyoperationsanyfullrulecheckablelitespec model check --release blocks on use-case-unverified.
litespec/ext/delivery#place-dockerfiles-beside-deployablesPlace Dockerfiles Beside DeployablesconventionanyoperationsanyfulldefaultguidanceEach deployable application keeps its Dockerfile beside it, or the recorded dockerfile-layout convention names where its Dockerfiles live.
litespec/ext/delivery#promote-verified-artifactsPromote Verified ArtifactsruleanyoperationsanyfullruleguidanceThe staging and production deployments reference the one artifact the release job passed.
litespec/ext/delivery#protect-the-default-branchProtect the Default BranchruleanyoperationsanyfullruleguidanceThe default branch settings require the jobs-table entries, a reviewed pull request, and a clean merge state.
litespec/ext/delivery#provide-release-data-recoveryProvide Release Data RecoveryruleanyoperationsanyfullruleguidanceWhich releases lack repeatable schema setup, backup instructions, or a tested restore? Look at the recovery evidence beside the release.
litespec/ext/delivery#provide-release-delivery-controlsProvide Release Delivery ControlsruleanyoperationsanyfullruleguidanceWhich releases lack current CI, deployment, rollback, limits, or runbooks? Look at the delivery evidence beside the release.
litespec/ext/delivery#provide-release-operating-visibilityProvide Release Operating VisibilityruleanyoperationsanyfullruleguidanceWhich releases lack health signals, trace diagnostics, or secrets outside source control? Look at the operating evidence beside the release.
litespec/ext/delivery#publish-a-book-preview-for-every-changePublish a Book Preview for Every ChangeruleanyoperationsanyfullruleguidanceThe pull request links a book preview built from the change.
litespec/ext/delivery#record-each-drill-run-as-a-check-resultRecord Each Drill Run as a Check ResultruleanyoperationsanyfullruleguidanceWhich drill or measuring harness runs lack a check result file naming the requirement's check under paths.checkResults? Look at the harness run records beside the files under paths.checkResults.
litespec/ext/delivery#record-every-branch-protection-bypassRecord Every Branch Protection BypassruleanyoperationsanyfullruleguidanceEach bypass entry in the operations log or recovery decision names its actor, reason, and admitted change.
litespec/ext/delivery#record-image-digestsRecord Image DigestsruleanyoperationsanyfullruleguidanceWhich release records store only an image tag with no deployed digest? Look at the release records.
litespec/ext/delivery#record-operating-readinessRecord Operating ReadinessruleanyoperationsanyfullruleguidanceWhich records lack limits, alerts, runbooks, conditions, or omissions? Look at the readiness list on each release record.
litespec/ext/delivery#record-release-evidenceRecord Release EvidenceruleanyoperationsanyfullruleguidanceWhich records lack a result for a listed evidence kind? Look at the evidence list on each release record.
litespec/ext/delivery#report-liveness-from-every-recurring-jobReport Liveness from Every Recurring JobruleanyoperationsjobfullruleguidanceEach recurring job reports liveness that pages a person on silence.
litespec/ext/delivery#review-schema-artifactsReview Schema ArtifactsruleanyoperationsmigrationfullruleguidanceEach persistence change carries a schema artifact with every destructive operation and its reason.
litespec/ext/delivery#route-each-severity-to-a-declared-destinationRoute Each Severity to a Declared DestinationruleanyoperationsanyfullruleguidanceEach severity states its destination and expected response time on the limits page.
litespec/ext/delivery#run-images-as-non-rootRun Images as Non-RootruleanyoperationsanyfullruleguidanceWhich release images run their application as root? Look at the Dockerfiles and image configuration.
litespec/ext/delivery#run-the-application-as-pid-1Run the Application as PID 1ruleanyoperationsanyfullruleguidanceWhich containers run something other than the application as their entry process? Look at the image entrypoints.
litespec/ext/delivery#separate-frontend-configuration-classesSeparate Frontend Configuration ClassesruleanyoperationsanyfullruleguidanceWhich frontend builds mix public configuration with server-only secrets? Look at the frontend image build.
litespec/ext/delivery#set-sufficient-shutdown-timeSet Sufficient Shutdown TimeruleanyoperationsanyfullruleguidanceWhich deployments set a shutdown grace period no longer than measured request or Worker stop time? Look at the deployment manifests beside the measured stop times.
litespec/ext/delivery#state-availability-objectives-as-openslo-filesState Availability Objectives as OpenSLO FilesruleanyoperationsanyfullruleguidanceThe OpenSLO files pass Sloth validation with their generated alerts loaded.
litespec/ext/delivery#supply-runtime-configuration-externallySupply Runtime Configuration ExternallyruleanyoperationsanyfullruleguidanceWhich connection strings, OIDC settings, exporter endpoints, or secrets live inside the image? Look at the deployment manifests.
litespec/ext/delivery#test-released-trafficTest Released TrafficruleanyoperationsanyfullruleguidanceWhich releases skip the recorded end-to-end suite after traffic shifts? Look at the release evidence.
litespec/ext/delivery#treat-check-warnings-as-failuresTreat Check Warnings as FailuresconventionanyoperationsanyfulldefaultguidanceWhich builds pass with unreviewed warnings outside recorded suppressions? Look at the build logs beside the warnings convention.
litespec/ext/delivery#use-a-repeatable-deploymentUse a Repeatable DeploymentruleanyoperationsanyfullruleguidanceEach deployment names versioned artifacts, declared configuration, a schema step, readiness checks, and a passing release job.
litespec/ext/delivery#use-protected-frontend-secret-deliveryUse Protected Frontend Secret DeliveryruleanyoperationsanyfullruleguidanceWhich frontend secrets travel outside mounts or runtime injection? Look at the frontend image build.
litespec/ext/delivery#use-stable-service-namesUse Stable Service NamesconventionanyoperationsanyfulldefaultguidanceService, resource, meter, and trace-source names match across environments, or the service-naming convention names another arrangement.
litespec/ext/delivery#wait-for-replica-readinessWait for Replica ReadinessruleanyoperationsanyfullruleguidanceWhich deployments shift traffic before new replicas reach readiness? Look at the deployment controller behavior.
litespec/ext/delivery#write-runtime-logs-to-streamsWrite Runtime Logs to StreamsruleanyoperationsanyfullruleguidanceWhich containerized applications write logs somewhere other than standard output or standard error? Look at the application logging configuration.
litespec/ext/devices#apply-forced-uploads-over-newer-stateApply Forced Uploads over Newer Stateruleanyfrontend-uicommand-handlerfullruleguidanceForced uploads in the device tests overwrite newer server values and leave overwrite records.
litespec/ext/devices#describe-device-messages-as-a-channel-fragmentDescribe Device Messages as a Channel Fragmentruleanyfrontend-uirecord:entry-pointrecordsruleguidanceThe protocol blocks on the device entry points list named operations with payloads in the channel shape.
litespec/ext/devices#identify-retries-with-a-nonceIdentify Retries with a Nonceruleanyfrontend-uirecord:entry-pointrecordsruleguidanceThe mutating messages in the protocol blocks carry a client-generated nonce scoped to the device.
litespec/ext/devices#replay-uploads-in-queue-orderReplay Uploads in Queue Orderconventionanyfrontend-uicommand-handlerfulldefaultguidanceThe server applies offline queues in device order in the upload tests, or the project names another order.
litespec/ext/devices#simulate-offline-uploads-before-applyingSimulate Offline Uploads Before Applyingruleanyfrontend-uicommand-handlerfullruleguidanceSimulated uploads in the device tests return outcomes with no writes behind them.
litespec/ext/devices#state-client-rules-with-scenariosState Client Rules with Scenariosruleanyfrontend-uirecord:entry-pointrecordsruleguidanceEach client rule in the protocol blocks points at scenarios that prove it.
litespec/ext/devices#version-protocols-by-dateVersion Protocols by Dateconventionanyfrontend-uirecord:entry-pointrecordsdefaultguidanceProtocol versions read as calendar numbers, or the device documentation names the numbering scheme.
litespec/ext/devices#version-the-device-protocolVersion the Device Protocolruleanyfrontend-uirecord:entry-pointrecordsruleguidanceThe protocol blocks state numbering, overlap, and the upgrade path devices follow.
litespec/ext/integrations#bind-client-configurationBind Client ConfigurationruleanyinfrastructureanyfullruleguidanceWhich external clients miss bound base address, credentials, timeout, or policy through validated options? Look at the client registrations.
litespec/ext/integrations#bound-transient-retriesBound Transient RetriesruleanyinfrastructureanyfullruleguidanceWhich external clients retry transient failures without bounded attempts and jitter? Look at the retry policies.
litespec/ext/integrations#call-only-declared-operationsCall Only Declared Operationsruleanyinfrastructurerecord:use-casefullruleguidanceEach calls effect names an operation the cited external system declares.
litespec/ext/integrations#cover-provider-failure-modesCover Provider Failure ModesruleanyinfrastructuretestfullruleguidanceWhich declared failure modes lack a test: timeout, connection failure, transient response, permanent response, malformed payload, rate limit, duplicate delivery, or unexpected response shape? Look at the integration test suite.
litespec/ext/integrations#define-business-action-portsDefine Business-Action PortsruleanyinfrastructureportfullruleguidanceEach Application port names a business action with no provider in its name or signature.
litespec/ext/integrations#exclude-provider-internalsExclude Provider InternalsruleanyinfrastructureendpointfullruleguidanceWhich API responses expose provider bodies, credentials, headers, exception types, or internal account identifiers? Look at the API responses.
litespec/ext/integrations#group-provider-codeGroup Provider CodeconventionanyinfrastructureanyfulldefaultguidanceEach provider's code sits under Infrastructure/Integrations/{Provider}/, or the project names another root in its documentation.
litespec/ext/integrations#isolate-provider-implementationsIsolate Provider ImplementationsruleanyinfrastructureanyfullruleguidanceWhich Application layer code references a provider SDK or transport type? Look at the Application layer folders.
litespec/ext/integrations#keep-ports-near-use-casesKeep Ports Near Use CasesconventionanyinfrastructureportfulldefaultguidanceEach business-action port sits with its Application use cases, or the project keeps its ports in one shared folder.
litespec/ext/integrations#keep-provider-components-togetherKeep Provider Components TogetherconventionanyinfrastructureanyfulldefaultguidanceEach provider folder holds its options, client, models, mappings, and registration, or the project names another grouping in its documentation.
litespec/ext/integrations#process-duplicate-messages-safelyProcess Duplicate Messages SafelyruleanyinfrastructureendpointfullruleguidanceWhich inbound provider handlers leave more than one accepted effect for a duplicate event? Look at the duplicate-delivery paths.
litespec/ext/integrations#protect-non-idempotent-callsProtect Non-Idempotent CallsruleanyinfrastructureanyfullruleguidanceWhich non-idempotent provider calls retry without provider idempotency and documented replay behavior? Look at the retry paths.
litespec/ext/integrations#record-each-provider-as-an-external-systemRecord Each Provider as an External Systemruleanyinfrastructurerecord:external-systemfullruleguidanceEach provider has an external system page in the Behavior systems home naming operations and erasure.
litespec/ext/integrations#reject-formula-leading-import-valuesReject Formula-Leading Import ValuesruleanyinfrastructureanyfullruleguidanceWhich CSV or spreadsheet imports keep a formula-leading value without rejection or neutralization? Look at the import boundaries.
litespec/ext/integrations#reject-per-request-http-clientsReject Per-Request HTTP ClientsruleanyinfrastructureanyfullruleguidanceWhich HTTP integrations construct a new HTTP client per request? Look at the HTTP call sites.
litespec/ext/integrations#run-provider-calls-from-event-handlers-or-jobsRun Provider Calls from Event Handlers or Jobsruleanyinfrastructurereaction, jobfulladviceguidanceEach provider call runs from an event handler or a job, and each inline call carries an exception naming its compensation.
litespec/ext/integrations#simulate-integration-boundariesSimulate Integration BoundariesruleanyinfrastructuretestfullruleguidanceWhich integration tests call a live provider instead of WireMock.Net or a protocol-specific local endpoint? Look at the integration test suite.
litespec/ext/integrations#translate-provider-failure-outcomesTranslate Provider Failure OutcomesruleanyinfrastructureanyfullruleguidanceWhich provider errors miss their mapping to project-owned results and stable diagnostics? Look at the integration failure mappings.
litespec/ext/integrations#trust-inbound-integration-events-by-declared-trustTrust Inbound Integration Events by Declared Trustruleanyinfrastructurerecord:integration-eventfullruleguidanceEach inbound integration event declares trigger-only or payload trust with its correlation.
litespec/ext/integrations#use-managed-http-clientsUse Managed HTTP ClientsruleanyinfrastructureanyfullruleguidanceWhich HTTP integrations skip HttpClientFactory or applicable service discovery? Look at the HTTP registrations.
litespec/ext/integrations#verify-inbound-provider-messagesVerify Inbound Provider MessagesruleanyinfrastructureendpointfullruleguidanceWhich inbound provider handlers skip signature, timestamp tolerance, replay protection, content type, size, schema, or event identity checks? Look at the inbound handlers.
litespec/ext/jobs#apply-item-read-authorizationApply Item-Read Authorizationruleanyapplicationrecord:use-casefullruleguidanceEach report and export enforces the item-read rules in the authorization tests.
litespec/ext/jobs#audit-export-readsAudit Export Readsruleanyapplicationrecord:use-casefullruleguidanceWhich export queries lack a stated audit reason and target? Look at the export query beside the report.
litespec/ext/jobs#audit-manual-replayAudit Manual ReplayruleanyapplicationjobfullruleguidanceEach manual replay adds an audited attempt under its original occurrence identity.
litespec/ext/jobs#avoid-speculative-reporting-systemsAvoid Speculative Reporting Systemsruleanyapplicationrecord:use-casefullruleguidanceEach reporting system traces to an accepted current query or export.
litespec/ext/jobs#bound-job-durationBound Job DurationruleanyapplicationjobfullruleguidanceEach job handler carries a duration bound, and the occurrence store shows completions inside it.
litespec/ext/jobs#bound-job-retriesBound Job RetriesruleanyapplicationjobfullruleguidanceEach schedule declares bounded attempts with cancellation-aware backoff and a poison state.
litespec/ext/jobs#bound-the-ingest-bufferBound the Ingest BufferruleanyapplicationjobfullruleguidanceThe ingest job records state buffer capacity with the overflow behavior past it.
litespec/ext/jobs#carry-the-schedule-on-the-job-recordCarry the Schedule on the Job Recordruleanyapplicationjobfullrulecheckablelitespec model check reports schedule-invalid (level G) for a job schedule that is neither an every duration nor a cron expression; each scheduled job record states its timezone.
litespec/ext/jobs#confirm-bulk-money-actions-out-of-bandConfirm Bulk Money Actions Out of Bandruleanyapplicationrecord:use-casefullruleguidanceThe bulk money commands ask for the out-of-band code before moving money.
litespec/ext/jobs#declare-export-pagingDeclare Export Pagingruleanyapplicationrecord:use-casefullruleguidanceWhich export queries lack paging with mode pages or mode none with its reason? Look at the export query beside the report.
litespec/ext/jobs#declare-ingest-steps-in-orderDeclare Ingest Steps in OrderruleanyapplicationjobfullruleguidanceThe ingest job records list steps in run order with each marked drop or enrich.
litespec/ext/jobs#declare-the-engine-carrierDeclare the Engine CarrierruleanyapplicationaggregatefullruleguidanceThe engine-carried aggregates set carriedBy workflow on their aggregate records.
litespec/ext/jobs#define-business-local-clock-behaviorDefine Business-Local Clock BehaviorruleanyapplicationjobfullruleguidanceEach business-local schedule records its IANA zone with skipped and repeated local-time behavior.
litespec/ext/jobs#define-export-encoding-and-columnsDefine Export Encoding and Columnsruleanyapplicationrecord:use-casefullruleguidanceEach export states its character encoding and stable columns in its format record.
litespec/ext/jobs#define-misfire-recoveryDefine Misfire RecoveryruleanyapplicationjobfullruleguidanceEach schedule states skipped, once-replayed, or interval-replayed behavior for missed occurrences.
litespec/ext/jobs#define-report-limitsDefine Report Limitsruleanyapplicationrecord:use-casefullruleguidanceEach report bound lives as a setting record beside the report.
litespec/ext/jobs#define-the-closed-drop-reason-setDefine the Closed Drop Reason SetruleanyapplicationjobfullruleguidanceThe ingest job records name the closed drop reasons with no drop outside them.
litespec/ext/jobs#derive-stable-occurrence-identityDerive Stable Occurrence IdentityruleanyapplicationjobfullruleguidanceOccurrence identities in the store combine schedule ID with scheduled instant.
litespec/ext/jobs#discard-poison-records-after-three-attemptsDiscard Poison Records After Three AttemptsconventionanyapplicationjobfulldefaultguidanceUnparsable rows drop as poison after three attempts, or the pipeline documentation names another threshold.
litespec/ext/jobs#dispatch-application-behaviorDispatch Application BehaviorruleanyapplicationjobfullruleguidanceEach job handler calls an Application Command or a declared Application port.
litespec/ext/jobs#escape-formula-leading-export-valuesEscape Formula-Leading Export Valuesruleanyapplicationrecord:use-casefullruleguidanceExported values starting a formula are escaped, except in formula fields the team fills intentionally.
litespec/ext/jobs#exclude-direct-storage-and-http-executionExclude Direct Storage and HTTP ExecutionruleanyapplicationjobfullruleguidanceJob sources mutate no Marten session or DbContext and call no WebApi endpoint.
litespec/ext/jobs#exclude-machine-local-timeExclude Machine-Local TimeruleanyapplicationjobfullruleguidanceProduction job sources read no machine-local clock.
litespec/ext/jobs#expose-drop-counts-per-reasonExpose Drop Counts per ReasonruleanyapplicationjobfullruleguidanceThe pipeline dashboards show dropped-record counts split by reason.
litespec/ext/jobs#generate-monotonic-fencing-valuesGenerate Monotonic Fencing ValuesruleanyapplicationjobfullruleguidanceFencing values in the store rise per occurrence, and a stale value refuses completion.
litespec/ext/jobs#keep-engine-retry-configuration-in-implementationKeep Engine Retry Configuration in ImplementationruleanyapplicationaggregatefullruleguidanceRetry counts, backoff curves, and step timeouts live in worker code with none in the records.
litespec/ext/jobs#keep-raw-sql-in-infrastructureKeep Raw SQL in Infrastructureruleanyapplicationrecord:use-casefullruleguidanceRaw report SQL and connection handling sit in Infrastructure code.
litespec/ext/jobs#keep-report-definitions-in-applicationKeep Report Definitions in Applicationconventionanyapplicationrecord:use-casefulldefaultguidanceReport definitions sit in their module, or the report-definition convention names where they live.
litespec/ext/jobs#keep-report-providers-in-infrastructureKeep Report Providers in Infrastructureconventionanyapplicationrecord:use-casefulldefaultguidanceSQL and storage code sit in Infrastructure, or the report-provider convention names where they live.
litespec/ext/jobs#map-each-engine-step-to-one-use-caseMap Each Engine Step to One Use CaseruleanyapplicationaggregatefullruleguidanceThe engine definition lists one use case beside each step with no step sharing or missing.
litespec/ext/jobs#name-engine-steps-after-use-casesName Engine Steps After Use CasesconventionanyapplicationaggregatefulldefaultguidanceEngine steps carry their use-case ids, or the workflow documentation records the naming convention.
litespec/ext/jobs#observe-job-cancellationObserve Job CancellationruleanyapplicationjobfullruleguidanceEach job handler threads cancellation into its waits and stops its current step when cancellation fires.
litespec/ext/jobs#order-queue-items-by-scoreOrder Queue Items by Scoreruleanyapplicationrecord:use-casefullruleguidanceThe queue listings sort by a score citing the calculation rule behind it.
litespec/ext/jobs#order-unscored-queues-by-ageOrder Unscored Queues by Ageconventionanyapplicationrecord:use-casefulldefaultguidanceQueues without a score list oldest first, or the queue documentation names another fallback order.
litespec/ext/jobs#parameterize-report-sqlParameterize Report SQLruleanyapplicationrecord:use-casefullruleguidanceEach report query binds actor, tenant, filter, range, sort, and pagination values as parameters in code.
litespec/ext/jobs#persist-occurrence-recovery-pointsPersist Occurrence Recovery PointsruleanyapplicationjobfullruleguidanceEach occurrence row carries last scheduled, started, and completed times.
litespec/ext/jobs#persist-occurrence-statePersist Occurrence StateruleanyapplicationjobfullruleguidanceEach occurrence row carries scheduled, processing, completed, or dead-letter state with safe execution details.
litespec/ext/jobs#place-handlers-with-owned-behaviorPlace Handlers with Owned BehaviorconventionanyapplicationjobfulldefaultguidanceEach job handler sits under the module that owns its behavior, or the project keeps its handlers in one shared jobs folder.
litespec/ext/jobs#prefer-utc-schedulesPrefer UTC SchedulesruleanyapplicationjobfullruleguidanceEach schedule states UTC or names a business-local time requirement with its IANA time zone.
litespec/ext/jobs#prevent-duplicate-completionPrevent Duplicate CompletionruleanyapplicationjobfullruleguidanceThe lease admits one completion per occurrence across overlapping replicas.
litespec/ext/jobs#protect-export-outputProtect Export Outputruleanyapplicationrecord:use-casefullruleguidanceExport output sits in approved object storage with a named contact, an expiry, and a short-lived authorized download.
litespec/ext/jobs#provide-operational-recovery-proceduresProvide Operational Recovery ProceduresruleanyapplicationjobfullruleguidanceRunbook records cover inspection, manual replay, and disable for each schedule.
litespec/ext/jobs#read-enrichment-data-from-declared-sourcesRead Enrichment Data from Declared SourcesruleanyapplicationjobfullruleguidanceThe enrich steps read only the sources named on their job records.
litespec/ext/jobs#record-one-drop-reason-per-dropped-recordRecord One Drop Reason per Dropped RecordruleanyapplicationjobfullruleguidanceThe dropped records each carry one reason from the job's closed set.
litespec/ext/jobs#record-reporting-needRecord Reporting Needruleanyapplicationrecord:use-casefullruleguidanceThe use case page holds the report, volume, plan, target, maximum, and operator.
litespec/ext/jobs#reject-unmapped-engine-stepsReject Unmapped Engine Stepsruleanyapplicationaggregatefullrulecheckablelitespec model check reports behavior-unrecorded for an engine step that maps to no use case.
litespec/ext/jobs#release-claims-past-their-leaseRelease Claims Past Their Leaseruleanyapplicationrecord:use-casefullruleguidanceThe claim tests show untouched items returning after their lease expires.
litespec/ext/jobs#remove-occurrences-past-retentionRemove Occurrences Past RetentionruleanyapplicationjobfullruleguidanceThe store holds no occurrence older than its schedule's retention setting record.
litespec/ext/jobs#renew-only-owned-leasesRenew Only Owned LeasesruleanyapplicationjobfullruleguidanceReplica logs show no renewal after a failed renewal, and the loser stops its occurrence.
litespec/ext/jobs#restrict-completion-by-fencing-valueRestrict Completion by Fencing ValueruleanyapplicationjobfullruleguidanceCompletion writes fail on a stale fencing value in the store.
litespec/ext/jobs#resume-driven-work-through-the-cursorResume Driven Work Through the CursorruleanyapplicationjobfullruleguidanceEach job driving a saga names its resume position in its cursor, with a scenario covering the remainder after a halfway failure.
litespec/ext/jobs#review-report-plansReview Report Plansruleanyapplicationrecord:use-casefulladviceguidanceThe review record shows query plans and indexes checked against representative data.
litespec/ext/jobs#run-budget-exceeding-exports-in-workerRun Budget-Exceeding Exports in Workerruleanyapplicationrecord:use-casefullruleguidanceEach export past its request budget runs through a Worker, with the budget in its setting record.
litespec/ext/jobs#run-manual-jobs-under-their-guardRun Manual Jobs Under Their Guardruleanyapplicationjobfullrulecheckablelitespec model check reports job-guard-missing (level G) for a manual job with no guard; each manual run stays inside its runsWhere.
litespec/ext/jobs#run-one-command-per-item-in-selectionRun One Command per Item in SelectionruleanyapplicationjobfullruleguidanceEach job run runs one command per item in its selection within its batch size, each in its own unit of work.
litespec/ext/jobs#run-scheduled-jobs-in-workerRun Scheduled Jobs in WorkerruleanyapplicationjobfullruleguidanceWorker sources hold every scheduled job, and WebApi request handling holds none.
litespec/ext/jobs#scope-command-idempotency-by-occurrenceScope Command Idempotency by OccurrenceruleanyapplicationjobfullruleguidanceRetries of one occurrence share the idempotency scope of its occurrence identity.
litespec/ext/jobs#scope-export-output-to-the-tenantScope Export Output to the Tenantruleanyapplicationrecord:use-casefullruleguidanceEach export stores its output under a tenant-scoped path in object storage.
litespec/ext/jobs#scope-occurrences-and-leases-by-tenantScope Occurrences and Leases by TenantruleanyapplicationjobfullruleguidanceOccurrence and lease rows carry tenant scope in products that isolate tenants.
litespec/ext/jobs#separate-schedule-definitionsSeparate Schedule DefinitionsconventionanyapplicationjobfulldefaultguidanceSchedule definitions sit apart from Command behavior, or the project keeps them beside it.
litespec/ext/jobs#separate-worker-orchestrationSeparate Worker Orchestrationconventionanyapplicationrecord:use-casefulldefaultguidanceWorker orchestration sits apart from report rules, or the report-orchestration convention names where it lives.
litespec/ext/jobs#show-a-preview-before-bulk-money-actionsShow a Preview Before Bulk Money Actionsruleanyapplicationrecord:use-casefullruleguidanceThe bulk money commands render every affected item with its amount before acting.
litespec/ext/jobs#show-the-score-beside-each-itemShow the Score Beside Each Itemruleanyapplicationrecord:use-casefullruleguidanceThe queue rows display each score with the inputs that set it.
litespec/ext/jobs#state-each-step-compensationState Each Step CompensationruleanyapplicationaggregatefullruleguidanceWhich mapped steps lack a compensation object naming its use case or its reason? Look at the map beside the process.
litespec/ext/jobs#state-the-claim-modeState the Claim Moderuleanyapplicationrecord:use-casefullruleguidanceThe queue use cases state disabled, optional, or required on their claim field.
litespec/ext/jobs#state-the-freshness-consequenceState the Freshness ConsequenceruleanyapplicationjobfullruleguidanceThe queries over ingested data state the freshness their readers observe.
litespec/ext/jobs#stop-jobs-during-graceful-shutdownStop Jobs During Graceful ShutdownruleanyapplicationjobfullruleguidanceThe Worker shutdown path stops schedule polling before it drains running occurrences.
litespec/ext/jobs#store-execution-leasesStore Execution LeasesruleanyapplicationjobfullruleguidanceThe lease rows in PostgreSQL carry owner, expiry, and fencing value for each occurrence.
litespec/ext/jobs#support-report-cancellationSupport Report Cancellationruleanyapplicationrecord:use-casefullruleguidanceReport work cancels on request and expired output clears in the cancellation tests.
litespec/ext/jobs#test-time-transitionsTest Time TransitionsruleanyapplicationjobfullruleguidanceJob tests inject the clock and cover representative time-zone transitions.
litespec/ext/jobs#tolerate-duplicate-executionTolerate Duplicate ExecutionruleanyapplicationjobfullruleguidanceJob Commands and side effects show one accepted effect after a replayed occurrence.
litespec/ext/jobs#treat-unavailable-schedule-stores-as-outagesTreat Unavailable Schedule Stores as OutagesruleanyapplicationjobfullruleguidanceWorker logs during a store outage show backed-off, rate-limited entries and no poisoned occurrences.
litespec/ext/jobs#use-execution-scopesUse Execution ScopesconventionanyapplicationjobfulldefaultguidanceEach occurrence resolves scoped dependencies in one disposed execution scope, or the project names another scope boundary in its documentation.
litespec/ext/lifecycle#align-backup-deletion-behaviorAlign Backup Deletion BehaviorruleanyapplicationanyfullruleguidanceBackup and replica operations follow the documented deletion guarantee.
litespec/ext/lifecycle#audit-lifecycle-changesAudit Lifecycle Changesruleanyapplicationcommand-handler, jobfullruleguidanceEach lifecycle operation writes an audit record, or a standalone record where audit is not selected.
litespec/ext/lifecycle#authorize-lifecycle-access-pathsAuthorize Lifecycle Access Pathsruleanyapplicationquery-handlerfullruleguidanceAdministrative and restore queries run through named paths with explicit authorization.
litespec/ext/lifecycle#authorize-lifecycle-changesAuthorize Lifecycle Changesruleanyapplicationcommand-handler, jobfullruleguidanceEach lifecycle operation checks its documented authorization before changing the record.
litespec/ext/lifecycle#bound-purge-and-archive-workBound Purge and Archive WorkruleanyapplicationjobfullruleguidancePurge and archive work resumes after interruption within declared bounds, with visible progress.
litespec/ext/lifecycle#default-to-hard-deleteDefault to Hard DeleteruleanyapplicationanyfullruleguidanceDeletions with no retention or restore requirement remove the row in the delete transaction.
litespec/ext/lifecycle#define-post-deletion-referencesDefine Post-Deletion Referencesruleanyapplicationrecord:rulefullruleguidanceThe specification states post-deletion behavior for references, exports, and unique constraints.
litespec/ext/lifecycle#define-relational-lifecycle-behaviorDefine Relational Lifecycle Behaviorruleanyapplicationmigration, repositoryfullruleguidanceThe relational implementation states columns, query filters, partial indexes, migrations, and named filter behavior.
litespec/ext/lifecycle#define-storage-lifecycle-behaviorDefine Storage Lifecycle BehaviorruleanyapplicationrepositoryfullruleguidanceThe document implementation states document state, filtered queries, indexes, purge transformations, and contract evolution.
litespec/ext/lifecycle#exclude-inactive-records-from-normal-readsExclude Inactive Records from Normal Readsruleanyapplicationquery-handlerfullruleguidanceNormal queries read only the active state, with deleted and archived records absent.
litespec/ext/lifecycle#exclude-persistence-only-lifecycle-behaviorExclude Persistence-Only Lifecycle BehaviorruleanyapplicationanyfullruleguidanceNo lifecycle transition runs through persistence filters or property setters alone.
litespec/ext/lifecycle#keep-archive-records-module-ownedKeep Archive Records Module-OwnedconventionanyapplicationanyfulldefaultguidanceArchive records sit under their owning module, or the project keeps them in one shared archive area.
litespec/ext/lifecycle#model-lifecycle-operations-in-domainModel Lifecycle Operations in DomainruleanyapplicationaggregatefullruleguidanceEach aggregate exposes delete, archive, and restore methods where those operations apply.
litespec/ext/lifecycle#model-retained-lifecycle-statesModel Retained Lifecycle Statesruleanyapplicationstate-recordfullruleguidanceEach retained record carries a business reason with a named state transition.
litespec/ext/lifecycle#name-soft-delete-timestampsName Soft-Delete TimestampsconventionanyapplicationanyfulldefaultguidanceSoft-delete timestamps use deleted_at_utc, or the project names another column in its documentation.
litespec/ext/lifecycle#preserve-legal-hold-dataPreserve Legal-Hold DataruleanyapplicationjobfullruleguidanceRetention runs leave held data in place past its retention date.
litespec/ext/lifecycle#record-lifecycle-scopeRecord Lifecycle Scoperuleanyapplicationrecord:rulefullruleguidanceEach lifecycle record names classification, retention, deletion trigger, hold, export, restore, and backup.
litespec/ext/lifecycle#record-retention-progressRecord Retention ProgressruleanyapplicationjobfullruleguidanceRetention runs persist progress that the next run resumes from.
litespec/ext/lifecycle#record-the-release-of-a-legal-holdRecord the Release of a Legal Holdruleanyapplicationcommand-handlerfullruleguidanceEach legal-hold release records actor, data covered, reason, and resumed retention.
litespec/ext/lifecycle#reject-hidden-lifecycle-flagsReject Hidden Lifecycle FlagsruleanyapplicationanyfullruleguidanceEach lifecycle transition runs through explicit behavior rather than a storage-only flag.
litespec/ext/lifecycle#separate-query-shaped-historySeparate Query-Shaped HistoryconventionanyapplicationanyfulldefaultguidanceQuery-shaped history lives in a read model, or the project keeps it on the aggregate.
litespec/ext/lifecycle#test-provider-lifecycle-pathsTest Provider Lifecycle PathsruleanyapplicationtestfullruleguidanceTests read through normal and lifecycle query paths on the selected provider.
litespec/ext/locale#avoid-catalog-only-locale-claimsAvoid Catalog-Only Locale Claimsruleanyfrontend-uianyfullruleguidanceShipped locales come from the locale decision, with catalog files as translations only.
litespec/ext/locale#avoid-duplicate-localized-urlsAvoid Duplicate Localized URLsruleanyfrontend-uiroutefullruleguidanceEach localized content item serves from one indexable URL.
litespec/ext/locale#complete-or-fall-back-catalog-valuesComplete or Fall Back Catalog Valuesruleanyfrontend-uianyfullruleguidanceEach locale holds its required keys or resolves them through its declared fallback.
litespec/ext/locale#define-one-locale-route-shapeDefine One Locale Route Shaperuleanyfrontend-uiroutefullruleguidanceThe application routes every locale through one documented route shape.
litespec/ext/locale#follow-the-validation-message-grammarFollow the Validation Message Grammarruleanyfrontend-uianyfullruleguidanceEach validation message states field label, fault, and accepted input without technical wording.
litespec/ext/locale#format-values-with-active-localeFormat Values with Active Localeruleanyfrontend-uicomponent, routefullruleguidanceDates, numbers, currency, plurals, lists, and relative time render through active-locale formatters.
litespec/ext/locale#handle-unavailable-locale-segmentsHandle Unavailable Locale Segmentsruleanyfrontend-uiroutefullruleguidanceUnsupported or missing locale segments redirect under the documented product policy.
litespec/ext/locale#keep-locale-selection-explicitKeep Locale Selection Explicitconventionanyfrontend-uiroutefulldefaultguidanceThe URL or a documented session preference carries the locale, or the project keeps it in ambient request state.
litespec/ext/locale#keep-stable-error-codes-locale-neutralKeep Stable Error Codes Locale-Neutralruleanyfrontend-uiuse-case, endpointfullruleguidanceEach stable API error code stays identical across locales.
litespec/ext/locale#localize-public-presentation-contentLocalize Public Presentation Contentruleanyfrontend-uicomponent, route, formfullruleguidancePublic metadata, form labels, validation messages, and user-safe errors render in the active locale.
litespec/ext/locale#name-messages-by-meaningName Messages by Meaningruleanyfrontend-uianyfullruleguidanceCatalog keys use semantic names citing glossary terms, with no source-language sentences as keys.
litespec/ext/locale#preserve-locale-neutral-business-dataPreserve Locale-Neutral Business Dataruleanyfrontend-uivalue-object, endpointfullruleguidanceDomain values and API contracts stay locale-neutral outside explicitly localized exchanges.
litespec/ext/locale#record-supported-locale-behaviorRecord Supported Locale Behaviorruleanyfrontend-uirecord:decisionfullruleguidanceThe locale decision lists supported locales, default locale, fallback chain, user selection, and browser detection.
litespec/ext/locale#resolve-every-shown-identifierResolve Every Shown Identifierruleanyfrontend-uirecord:screenfullruleguidanceShown codes render glossary labels, with raw codes absent except user-facing reference numbers.
litespec/ext/locale#split-catalogs-by-module-when-neededSplit Catalogs by Module When Neededconventionanyfrontend-uianyfulldefaultguidanceCatalogs stay whole per locale until measured size moves them to module splits, or the project splits by feature from the start.
litespec/ext/locale#store-user-facing-copy-in-catalogsStore User-Facing Copy in Catalogsruleanyfrontend-uicomponent, routefullruleguidanceUser-facing copy sits in the locale catalogs rather than in source code.
litespec/ext/locale#use-bcp-47-identifiersUse BCP 47 Identifiersconventionanyfrontend-uianyfulldefaultguidanceLocale identifiers follow BCP 47, or the project names another identifier form in its documentation.
litespec/ext/locale#use-one-catalog-rootUse One Catalog Rootconventionanyfrontend-uianyfulldefaultguidanceCatalogs sit under one application-owned root, or the project names another root in its documentation.
litespec/ext/mcp#confirm-every-writing-toolConfirm Every Writing Toolruleanyweb-apianyfullruleguidanceEach writing tool refuses until the person confirms the write.
litespec/ext/mcp#exclude-secrets-and-personal-dataExclude Secrets and Personal Dataruleanyweb-apianyfullruleguidanceTool descriptions and logs carry field names with no secret or personal values.
litespec/ext/mcp#pass-server-instructions-at-initializePass Server Instructions at Initializeruleanyweb-apianyfullruleguidanceThe initialize response carries a non-empty instructions value stating transport, audience, write surface, and refusal behavior.
litespec/ext/mcp#record-the-server-as-an-entry-pointRecord the Server as an Entry Pointruleanyweb-apirecord:entry-pointfullruleguidanceThe entry point list names an mcp entry titled for the shipped MCP server.
litespec/ext/mcp#scope-each-tool-to-named-use-casesScope Each Tool to Named Use Casesruleanyweb-apianyfullruleguidanceEach tool description names the use cases and permissions the tool reaches.
litespec/ext/mcp#state-the-distribution-and-update-pathState the Distribution and Update Pathruleanyweb-apianyfullruleguidanceThe server documentation states install and update steps.
litespec/ext/mcp#state-the-refusing-side-on-each-refusalState the Refusing Side on Each Refusalconventionanyweb-apianyfulldefaultguidanceRefusals carry the Needs:, Needs confirmation:, and Refused: prefixes, or the project names another refusal vocabulary in its documentation.
litespec/ext/mcp#write-one-tool-description-for-one-decisionWrite One Tool Description for One Decisionruleanyweb-apianyfullruleguidanceThe declared tools directory shows imperative titles, declarative behavior, positive parameter polarity, and stated side effects.
litespec/ext/outbox#accept-repeated-deliveryAccept Repeated DeliveryruleanyinfrastructurereactionfullruleguidanceEach event handler keeps correct state when the same message arrives twice.
litespec/ext/outbox#audit-outbox-replayAudit Outbox ReplayruleanyinfrastructureanyfullruleguidanceEach replay records actor, reason, time, and failure without editing the payload.
litespec/ext/outbox#authenticate-and-authorize-subscriptionsAuthenticate and Authorize Subscriptionsruleanyinfrastructurerecord:notificationfullruleguidanceThe connection tests show authenticated connections only, with each scoped subscription authorized.
litespec/ext/outbox#avoid-automatic-durable-bus-adoptionAvoid Automatic Durable-Bus AdoptionconventionanyinfrastructureanyfulldefaultguidanceDispatch runs on project-owned Marten records, or the project names a pinned durable bus package as its transport in its documentation.
litespec/ext/outbox#await-target-acceptanceAwait Target AcceptanceruleanyinfrastructureanyfullruleguidanceCompletion records follow target acceptance, with no early completion.
litespec/ext/outbox#back-off-unavailable-store-pollingBack off Unavailable-Store PollingruleanyinfrastructureanyfullruleguidancePolling during a store outage backs off with rate-limited logging.
litespec/ext/outbox#bound-delivery-retriesBound Delivery RetriesruleanyinfrastructureanyfullruleguidanceRetries run bounded exponential backoff with jitter.
litespec/ext/outbox#bound-realtime-resourcesBound Realtime Resourcesruleanyinfrastructurerecord:notificationfullruleguidanceThe four deployment bounds live as setting records with their values beside the deployment.
litespec/ext/outbox#classify-message-kindsClassify Message Kindsruleanyinfrastructurerecord:integration-eventfullruleguidanceEach outbox record names integration event, journey-step command, or provider side effect, with integration events citing their integration-event record.
litespec/ext/outbox#classify-permanent-delivery-failureClassify Permanent Delivery FailureruleanyinfrastructureanyfullruleguidancePermanent failures stop at the retry bound with safe investigation and replay data retained.
litespec/ext/outbox#declare-published-facts-as-integration-eventsDeclare Published Facts as Integration Eventsruleanyinfrastructurerecord:integration-eventfullruleguidanceEach emits effect names an integration-event record carrying direction, payload, and trust.
litespec/ext/outbox#declare-realtime-freshnessDeclare Realtime Freshnessruleanyinfrastructurerecord:notificationfullruleguidanceWhich realtime-served queries lack an immediate or advisory freshness object on their output? Look at the served query beside the realtime use case.
litespec/ext/outbox#define-claim-ownershipDefine Claim OwnershipruleanyinfrastructureanyfullruleguidanceEach claim takes owner, expiry, and fencing value in a short transaction.
litespec/ext/outbox#deliver-each-event-to-each-handler-separatelyDeliver Each Event to Each Handler SeparatelyruleanyinfrastructureanyfullruleguidanceEach event reaches each of its handlers as a separate delivery with its own retries and dead letter.
litespec/ext/outbox#deploy-readers-before-writersDeploy Readers Before WritersruleanyinfrastructureanyfullruleguidanceReleases deploy compatible readers before additive writers.
litespec/ext/outbox#dispatch-claimed-records-in-workerDispatch Claimed Records in WorkerruleanyinfrastructureanyfullruleguidanceThe Worker claims pending records, dispatches bounded batches, and records each outcome.
litespec/ext/outbox#dispatch-journey-step-commands-in-a-new-scopeDispatch Journey-Step Commands in a New ScopeconventionanyinfrastructureanyfulldefaultguidanceJourney-step commands run through ICommandMediator in a fresh Worker scope, or the project runs them inline in the dispatcher scope.
litespec/ext/outbox#distinguish-dependency-outageDistinguish Dependency OutageruleanyinfrastructureanyfullruleguidanceStore availability reads as a gauge while claimed-message outcomes read as a counter.
litespec/ext/outbox#emit-excluded-reactions-and-jobs-after-commitEmit Excluded Reactions and Jobs After Commitruleanyinfrastructurereaction, jobfullruleguidanceExcluded reactions and jobs emit after commit success with no staged outbox record.
litespec/ext/outbox#exclude-manually-repeatable-reactions-and-jobsExclude Manually Repeatable Reactions and Jobsruleanyinfrastructurereaction, jobfullruleguidanceReactions and jobs whose loss the operators accept and can repeat manually carry no outbox records.
litespec/ext/outbox#exclude-request-transaction-dispatchExclude Request-Transaction DispatchruleanyinfrastructureendpointfullruleguidanceRequest paths commit eligibility only, with dispatch living in the Worker.
litespec/ext/outbox#gate-dispatch-on-readinessGate Dispatch on ReadinessruleanyinfrastructureanyfullruleguidanceUnready hosts stop dispatch and dead-store polling.
litespec/ext/outbox#group-outbox-infrastructureGroup Outbox InfrastructureconventionanyinfrastructureanyfulldefaultguidanceOutbox infrastructure sits under Infrastructure/Messaging/Outbox/, or the project names another home in its documentation.
litespec/ext/outbox#identify-repeated-deliveryIdentify Repeated DeliveryruleanyinfrastructurereactionfullruleguidanceEach event handler checks message ID or business key at its Command or side-effect boundary.
litespec/ext/outbox#isolate-the-worker-hostIsolate the Worker HostconventionanyinfrastructureanyfulldefaultguidanceThe outbox Worker host lives in its own project, or the project hosts dispatch inside its request host.
litespec/ext/outbox#keep-provider-mapping-with-integrationKeep Provider Mapping with IntegrationconventionanyinfrastructureanyfulldefaultguidanceProvider mapping sits in the owning integration, or the project keeps it in the shared dispatch path.
litespec/ext/outbox#model-outbox-lifecycle-statesModel Outbox Lifecycle Statesruleanyinfrastructurestate-recordfullruleguidanceOutbox lifecycle states form sealed records over an abstract base with documented transitions.
litespec/ext/outbox#place-realtime-code-at-outer-boundariesPlace Realtime Code at Outer Boundariesconventionanyinfrastructurerecord:notificationfulldefaultguidanceRealtime transport code sits at the documented boundaries, or the realtime-placement convention names where it lives.
litespec/ext/outbox#plan-undispatched-rollback-recordsPlan Undispatched Rollback Recordsruleanyinfrastructurerecord:runbookfullruleguidanceThe rollback Runbook covers records the new writer staged but nobody dispatched.
litespec/ext/outbox#preserve-message-identity-during-retryPreserve Message Identity During RetryruleanyinfrastructureanyfullruleguidanceMessage ID stays identical across retry and replay.
litespec/ext/outbox#protect-active-worker-compatibilityProtect Active Worker CompatibilityruleanyinfrastructureendpointfullruleguidanceEvery active Worker reads the type and schema version of new messages.
litespec/ext/outbox#publish-backlog-indicatorsPublish Backlog IndicatorsruleanyinfrastructureanyfullruleguidanceThe deployment publishes pending count, failed count, oldest pending age, attempts, dispatch duration, and success rate.
litespec/ext/outbox#reconnect-and-refresh-authoritative-stateReconnect and Refresh Authoritative Stateruleanyinfrastructurerecord:notificationfullruleguidanceThe client reconnects with bounded backoff and refreshes authoritative state after a gap in the recovery tests.
litespec/ext/outbox#record-durable-delivery-behaviorRecord Durable Delivery BehaviorruleanyinfrastructureanyfullruleguidanceEach delivery specification documents guarantee, downstream boundary, duplicate behavior, retry horizon, and recovery runbook.
litespec/ext/outbox#record-realtime-needRecord Realtime Needruleanyinfrastructurerecord:notificationfullruleguidanceThe use case page holds the polling record, measured cost, update target, expected connections, and recovery behavior.
litespec/ext/outbox#record-transport-supportRecord Transport Supportruleanyinfrastructurerecord:notificationfullruleguidanceThe use case page names its transport choice with the expected hosted-platform support.
litespec/ext/outbox#reject-cosmetic-realtime-adoptionReject Cosmetic Realtime Adoptionruleanyinfrastructurerecord:notificationfullruleguidanceThe realtime decision cites a measured update requirement.
litespec/ext/outbox#reject-independent-outbox-commitsReject Independent Outbox CommitsruleanyinfrastructureanyfullruleguidanceWriter sources stage through the business session with no separate connection or commit.
litespec/ext/outbox#reject-unbounded-slow-client-bufferingReject Unbounded Slow-Client Bufferingruleanyinfrastructurerecord:notificationfullruleguidanceSlow-client buffering in the server code is bounded with backpressure.
litespec/ext/outbox#release-claim-transactions-before-callsRelease Claim Transactions Before CallsruleanyinfrastructureanyfullruleguidanceClaim transactions close before the Worker makes network calls.
litespec/ext/outbox#requeue-expired-claimsRequeue Expired ClaimsruleanyinfrastructureanyfullruleguidanceExpired claims return to eligible work for a live Worker.
litespec/ext/outbox#restrict-completion-to-current-lease-ownersRestrict Completion to Current Lease OwnersruleanyinfrastructureanyfullruleguidanceRecord updates succeed only under the current lease and fencing value.
litespec/ext/outbox#restrict-message-retry-to-claimed-recordsRestrict Message Retry to Claimed RecordsruleanyinfrastructureanyfullruleguidanceRetry and poison handling touch claimed records only.
litespec/ext/outbox#revalidate-long-lived-accessRevalidate Long-Lived Accessruleanyinfrastructurerecord:notificationfullruleguidanceA connection whose token or session expired loses access in the revalidation tests.
litespec/ext/outbox#serialize-durable-messagesSerialize Durable MessagesruleanyinfrastructureanyfullruleguidanceEach pending durable message lands serialized in an outbox record.
litespec/ext/outbox#set-delivery-alertsSet Delivery Alertsruleanyinfrastructurerecord:settingfullruleguidanceAlert thresholds sit in setting records derived from each use-case delivery target.
litespec/ext/outbox#stage-after-commit-effects-in-the-outboxStage After-Commit Effects in the Outboxruleanyinfrastructurecommand-handlerfullruleguidanceEach after-commit emits and runs effect stages in the outbox in the same transaction as its changes, with each domain event staged in the same commit as its aggregate.
litespec/ext/outbox#stage-messages-with-business-workStage Messages with Business WorkruleanyinfrastructureanyfullruleguidancePending durable messages stage in the same scoped session as their aggregate changes.
litespec/ext/outbox#store-failure-and-completion-evidenceStore Failure and Completion EvidenceruleanyinfrastructureanyfullruleguidanceEach outbox record retains its last error summary and completion time.
litespec/ext/outbox#store-required-message-fieldsStore Required Message FieldsruleanyinfrastructureanyfullruleguidanceEach outbox record carries identity, kind, type, schema version, time, payload, tenant, state, attempt, and next-attempt data.
litespec/ext/outbox#subscribe-through-narrow-functionsSubscribe Through Narrow Functionsconventionanyinfrastructurerecord:notificationfulldefaultguidanceFeatures subscribe through use-case-specific functions, or the realtime-subscription convention names how they subscribe.
litespec/ext/outbox#support-coexisting-message-producersSupport Coexisting Message ProducersruleanyinfrastructureanyfullruleguidanceThe dispatcher reads records from every coexisting application version.
litespec/ext/outbox#tolerate-notification-ordering-differencesTolerate Notification Ordering Differencesruleanyinfrastructurerecord:notificationfullruleguidanceDuplicate and reordered notifications leave client state correct in the client tests.
litespec/ext/outbox#use-server-sent-events-for-notificationsUse Server-Sent Events for Notificationsruleanyinfrastructurerecord:notificationfullruleguidanceEach one-way notification travels over the server-sent events boundary in code.
litespec/ext/outbox#use-signalr-for-interactive-messagingUse SignalR for Interactive Messagingruleanyinfrastructurerecord:notificationfullruleguidanceEach bidirectional use case runs on SignalR groups, messages, or fallback in code.
litespec/ext/outbox#version-message-typesVersion Message TypesruleanyinfrastructureanyfullruleguidanceEach message carries a stable type name with an explicit schema version.
litespec/ext/plans#bound-plan-amounts-in-settingsBound Plan Amounts in Settingsruleanyapplicationrecord:setting-setfullruleguidanceEach plan allowance lives as a setting the gated use case cites.
litespec/ext/plans#gate-behavior-through-permissionsGate Behavior Through Permissionsruleanyapplicationrecord:use-casefullruleguidanceEach gated use case declares a permission in its grant that only an entitled plan grants.
litespec/ext/plans#hide-unentitled-actions-on-screensHide Unentitled Actions on Screensruleanyapplicationrecord:screenfullruleguidanceEach screen shows only actions the acting plan entitles.
litespec/ext/plans#record-each-plan-onceRecord Each Plan Onceruleanyapplicationrecord:requirementfullruleguidanceThe requirement pages under .litespec/intent/ hold one record per plan with its entitlements.
litespec/ext/plans#refuse-runs-beyond-entitlementRefuse Runs Beyond Entitlementruleanyapplicationrecord:use-casefullruleguidanceA run past its plan ends in the named refusal result in the use case tests.
litespec/ext/plans#resolve-the-acting-plan-from-trusted-contextResolve the Acting Plan from Trusted ContextruleanyapplicationanyfullruleguidanceThe acting plan resolves from verified subscription state, with no plan taken from caller input in code.
litespec/ext/plans#resolve-the-acting-plan-in-the-authorization-pipelineResolve the Acting Plan in the Authorization PipelineconventionanyapplicationanyfulldefaultguidanceThe authorization pipeline resolves the acting plan, or the plan-resolution convention names where use cases find it.
litespec/ext/stage#declare-the-release-stageDeclare the Release Stageruleanyoperationsanyfullrulecheckablelitespec model check reports project-invalid for a stage selection with a missing or unknown releaseStage.
litespec/ext/stage#defer-named-provisions-until-promotionDefer Named Provisions Until Promotionruleanyoperationsrecord:exceptionfullrulecheckablelitespec model check refuses a deferral exception naming an unknown provision, and any deferral in production; litespec model check reports exception-expired for an exception past its expiresOn.
litespec/ext/stage#promote-through-a-recorded-decisionPromote Through a Recorded Decisionruleanyoperationsrecord:decisionfullruleguidanceThe promotion decision under .litespec/intent/decisions/ stands before the first deployment holds customer data and ends every deferred provision.
litespec/ext/tenancy#apply-cross-tenant-disclosure-policyApply Cross-Tenant Disclosure Policyruleanyapplicationcommand-handler, query-handlerfullruleguidanceEach cross-tenant response follows the documented not-found or forbidden policy, shown in the API tests.
litespec/ext/tenancy#audit-actions-taken-under-delegationAudit Actions Taken Under Delegationruleanyapplicationcommand-handler, query-handlerfullruleguidanceEach action under delegation records the delegation grant used.
litespec/ext/tenancy#avoid-unplanned-isolation-modelsAvoid Unplanned Isolation ModelsruleanyapplicationanyfullruleguidanceEach mixed isolation model traces to a decision with a data evolution plan.
litespec/ext/tenancy#bound-every-delegation-in-timeBound Every Delegation in Timeruleanyapplicationrecord:rolefullruleguidanceEach delegation carries an expiry or a revocation path.
litespec/ext/tenancy#declare-delegation-grants-on-both-sidesDeclare Delegation Grants on Both Sidesruleanyapplicationrecord:rolefullruleguidanceEach delegation declares a delegator grant naming who may be acted for and an acting grant naming who may act.
litespec/ext/tenancy#define-tenant-isolationDefine Tenant Isolationruleanyapplicationrecord:decisionfullruleguidanceThe adoption decision names shared-table, schema, or database isolation with its guarantee and operating trade-off.
litespec/ext/tenancy#isolate-administrative-cross-tenant-accessIsolate Administrative Cross-Tenant Accessruleanyapplicationcommand-handler, query-handlerfullruleguidanceEach administrative cross-tenant use case names a platform-scope permission, and the audit trail holds a record for every cross-tenant run.
litespec/ext/tenancy#pass-tenant-scope-explicitlyPass Tenant Scope Explicitlyconventionanyapplicationuse-case, portfulldefaultguidanceDomain code reads no ambient tenant state, or the tenant-scope convention names how the Domain receives scope.
litespec/ext/tenancy#protect-tenant-diagnosticsProtect Tenant DiagnosticsruleanyapplicationanyfullruleguidanceThe error, log, metric, and trace outputs hold no other tenant's identifiers or data.
litespec/ext/tenancy#prove-delegated-calls-with-scenariosProve Delegated Calls with Scenariosruleanyapplicationrecord:scenariofullruleguidanceEach delegation proves an allowed call and a refused call with scenarios.
litespec/ext/tenancy#record-an-all-tenant-operationRecord an All-Tenant Operationruleanyapplicationcommand-handler, jobfullruleguidanceThe record of each all-tenant run names actor, operation, reason, tenant count, and reached tenant identifiers up to the adoption bound.
litespec/ext/tenancy#record-delegation-grants-with-rolesRecord Delegation Grants with Rolesconventionanyapplicationrecord:rolefulldefaultguidanceEach delegation grant sits on its role page, or the delegation-records convention names where grants live.
litespec/ext/tenancy#record-the-tenant-adoption-decisionRecord the Tenant Adoption Decisionruleanyapplicationrecord:decisionfullruleguidanceThe tenant adoption decision under .litespec/intent/decisions/ names source, storage model, isolation guarantee, administrative access, evolution path, and enumeration bound.
litespec/ext/tenancy#reject-unrestricted-tenant-inputReject Unrestricted Tenant InputruleanyapplicationanyfullruleguidanceThe tenant resolver code accepts a tenant identifier only from an authenticated source, never from request data.
litespec/ext/tenancy#resolve-tenant-identity-from-trusted-contextResolve Tenant Identity from Trusted ContextruleanyapplicationanyfullruleguidanceEach trusted host boundary resolves the tenant from verified claims, host mapping, or another authenticated source.
litespec/ext/tenancy#scope-delegated-grants-to-named-permissionsScope Delegated Grants to Named Permissionsruleanyapplicationrecord:rolefullruleguidanceEach delegation names its delegated permissions, with none open to all permissions.
litespec/ext/tenancy#scope-every-use-case-to-its-tenant-reachScope Every Use Case to Its Tenant Reachruleanyapplicationrecord:use-casefullruleguidanceEach use case declares own, cross, public, or none in its access tenant scope.
litespec/ext/tenancy#scope-tenant-operationsScope Tenant Operationsruleanyapplicationrecord:runbookfullruleguidanceThe backup, restore, replay, deletion, export, support, and investigation procedures each state one-tenant or all-tenant scope.
litespec/ext/tenancy#scope-tenant-owned-recordsScope Tenant-Owned RecordsruleanyapplicationanyfullruleguidanceThe documents, queries, constraints, cache keys, outbox records, reactions, jobs, exports, and storage paths in code each carry tenant scope.
litespec/ext/tenancy#use-one-tenant-accessorUse One Tenant AccessorconventionanyapplicationanyfulldefaultguidanceOne current-tenant accessor serves the trusted host boundary, or the tenant-access convention names where readers find the tenant.
litespec/ext/tenancy#use-selected-tenant-storage-supportUse Selected Tenant Storage SupportruleanyapplicationanyfullruleguidanceThe session-creation code of each provider resolves the tenant through that provider's tenancy support.
litespec/ext/tenancy#use-typed-tenant-identitiesUse Typed Tenant IdentitiesconventionanyapplicationanyfulldefaultguidanceTenant references carry the TenantId type, or the tenant-identity convention names another type.
litespec/ext/tenancy#verify-actor-and-target-tenancyVerify Actor and Target Tenancyruleanyapplicationcommand-handler, query-handlerfullruleguidanceThe authorization tests fail a protected operation whose actor and target tenants mismatch.

frontend#

IDProvisionKindStackLayerArtifactConformanceStrengthMarkEvidence
litespec/frontend/components#add-a-missing-composite-to-the-shared-packageAdd a Missing Composite to the Shared Packageruleanyfrontend-uicomponentfullruleguidanceWhich layout, control, or surface drawn by two pages is missing from the shared package exports? Look in the shared package exports and the drawing pages.
litespec/frontend/components#compose-composites-in-page-codeCompose Composites in Page Coderuleanyfrontend-uicomponentfullrulecheckablelitespec model check reports [litespec/frontend/components#compose-composites-in-page-code] with the file and the refused import. Run it at the consumer root.
litespec/frontend/components#expose-card-and-section-titles-as-headingsExpose Card and Section Titles as Headingsconventionanyfrontend-uicomponentfulldefaultguidanceWhich visible card, panel, or section titles render as non-heading elements? Look in the route suite output, which resolves each as a heading.
litespec/frontend/components#keep-component-inputs-narrowKeep Component Inputs Narrowruleanyfrontend-uicomponentfullruleguidanceWhich composite inputs name a client, a store, or an aggregate instead of values and callbacks? Look in the shared package component signatures.
litespec/frontend/components#keep-domain-values-typed-until-displayKeep Domain Values Typed Until Displayconventionanyfrontend-uicomponentfulldefaultguidanceWhich display strings are produced before the presentation boundary, or without an explicit locale and zone? Look in the presentation boundary and the components feeding it.
litespec/frontend/components#keep-error-boundaries-scopedKeep Error Boundaries Scopedconventionanyfrontend-uicomponent, routefulldefaultguidanceWhich route failures render outside the route error surface, and which component boundaries leave their surroundings unusable? Look in the route error surfaces and the boundary components.
litespec/frontend/components#keep-shared-ui-in-one-packageKeep Shared UI in One Packageruleanyfrontend-uianyfullruleguidanceWhich shared primitives or composites live outside the shared package? Look in the workspace packages and the application sources.
litespec/frontend/components#name-components-for-their-roleName Components for Their Roleconventionanyfrontend-uicomponentfulldefaultguidanceWhich component names hide the role they play? Look in the shared package and module sources.
litespec/frontend/components#place-a-drawing-no-composite-makes-in-an-exception-filePlace a Drawing No Composite Makes in an Exception Fileruleanyfrontend-uicomponentfullruleguidanceWhich custom styling sits outside the files whose names mark drawings outside the composites, or uses values other than semantic theme tokens? Look in the exception files each stack page names.
litespec/frontend/components#prefer-a-composite-over-a-primitivePrefer a Composite over a Primitiveruleanyfrontend-uicomponentfullruleguidanceWhich page sources import a primitive where the shared package provides a composite? Look in route and module imports.
litespec/frontend/components#render-control-statesRender Control Statesruleanyfrontend-uicomponentfullruleguidanceWhich controls miss a disabled or pending state, allow a second submission while one is in flight, or leave recovery unusable? Look in the shared package components.
litespec/frontend/components#render-data-statesRender Data Statesruleanyfrontend-uicomponentfullruleguidanceWhich data components miss a loading, empty, error, forbidden, or ready state, or name a state outside the glossary? Look in the shared package components and the glossary.
litespec/frontend/components#sanitize-untrusted-rich-contentSanitize Untrusted Rich Contentruleanyfrontend-uicomponentfullruleguidanceWhich untrusted rich content renders without a recorded decision naming the sanitizer, the allowed elements and attributes, the link policy, and the test cases? Look in the decision records and the rendering components.
litespec/frontend/components#support-keyboard-focus-labels-and-announcementsSupport Keyboard, Focus, Labels, and Announcementsruleanyfrontend-uicomponent, routefullruleguidanceWhich interactive UI lacks keyboard operation, visible focus, semantic elements, programmatic labels, or status announcements? Look in the route suite output.
litespec/frontend/components#use-a-composite-for-a-content-imageUse a Composite for a Content Imageruleanyfrontend-uicomponentfullruleguidanceWhich content images render outside the shared image component or against the text policy for their kind? Look in page sources for unwrapped images.
litespec/frontend/components#use-composites-for-layout-and-interaction-in-page-codeUse Composites for Layout and Interaction in Page Coderuleanyfrontend-uicomponentfullruleguidanceWhich layout or interactive elements appear in route and module sources? Look in route and module sources; each stack page names the refused elements and the composite each refusal names.
litespec/frontend/components#use-declared-visual-variantsUse Declared Visual Variantsruleanyfrontend-uicomponentfullruleguidanceWhich repeated variants bypass the shared variant helper or carry literal values in composites? Look in the shared package components.
litespec/frontend/components#write-no-class-name-in-page-codeWrite No Class Name in Page Coderuleanyfrontend-uicomponentfullruleguidanceWhich class or style bindings appear in route and module sources? Look in route and module sources; each stack page names the bindings its lint refuses.
litespec/frontend/data#announce-the-outcome-of-an-optimistic-updateAnnounce the Outcome of an Optimistic Updateruleanyfrontend-datacomponent, routefullruleguidanceWhich reconciled outcomes differing from the shown value announce through no live region? Look in the route tests asserting the announcement.
litespec/frontend/data#assign-state-to-the-narrowest-ownerAssign State to the Narrowest Ownerruleanyfrontend-datacomponent, route, formfullruleguidanceWhich values live above their narrowest owner instead of the query cache, the address, form state, or component state? Look in the state declarations.
litespec/frontend/data#build-a-form-on-the-shared-form-libraryBuild a Form on the Shared Form Libraryconventionanyfrontend-dataformfulldefaultguidanceWhich forms bypass the shared package form entry point or its registered field components? Look in the form sources and the shared package form entry point.
litespec/frontend/data#classify-stateClassify Stateruleanyfrontend-dataaggregatefullruleguidanceWhich aggregates introducing state name no durable, device-local, or derived classification on their page? Look on the aggregate pages.
litespec/frontend/data#generate-the-client-from-the-published-contractGenerate the Client from the Published Contractruleanyfrontend-dataanyfullruleguidanceWhich client, type, schema, or operation option is handwritten instead of generated from the published OpenAPI document? Look in the generated client directory and the contract it names.
litespec/frontend/data#keep-schemas-use-case-specificKeep Schemas Use-Case Specificconventionanyfrontend-dataanyfulldefaultguidanceWhich form schemas or view models sit in a shared location with only one use case reading them? Look in the use-case folders and the shared schema locations.
litespec/frontend/data#keep-secrets-out-of-browser-storageKeep Secrets Out of Browser Storageruleanyfrontend-dataanyfullruleguidanceWhich refresh tokens, provider secrets, or privileged credentials sit in browser storage or browser-visible variables? Look in the storage writes and the public variables.
litespec/frontend/data#keep-the-client-boundary-in-the-frameKeep the Client Boundary in the Frameconventionanyfrontend-dataanyfulldefaultguidanceWhich client configuration, problem mapping, or download helpers sit in a use-case folder instead of the frame root? Look in the frame root and the use-case folders.
litespec/frontend/data#keep-the-session-in-an-api-owned-cookieKeep the Session in an API Owned Cookieruleanyfrontend-dataanyfullruleguidanceWhich tokens sit in frontend sources instead of the API-owned HTTP-only cookie? Look in the API session handling and the frontend sources.
litespec/frontend/data#localize-copy-through-locale-dictionariesLocalize Copy Through Locale Dictionariesruleanyfrontend-datacomponent, route, formfullruleguidanceWhich copy bypasses the locale dictionaries, or misses fill, plural, chunking, typed keys, or a declared fallback? Look in the locale dictionaries and the copy call sites.
litespec/frontend/data#make-optimistic-behavior-recoverableMake Optimistic Behavior Recoverableruleanyfrontend-datacomponent, routefullruleguidanceWhich optimistic updates lack a declared client identity, conflict behavior, rollback, or reconciliation path, and which money, irreversible, or uncertainly authorized actions run optimistically instead of waiting for the server? Look in the optimistic update definitions.
litespec/frontend/data#map-every-failure-to-one-problem-typeMap Every Failure to One Problem Typeruleanyfrontend-datacomponent, routefullruleguidanceWhich failures render outside the one problem type, or hide the trace identifier from the detail? Look in the frame problem mapping and the error surfaces.
litespec/frontend/data#name-the-zone-for-every-timestampName the Zone for Every Timestampruleanyfrontend-datacomponent, routefullruleguidanceWhich timestamp formatters run without an explicit IANA zone resolved from the shown record? Look in the formatter call sites.
litespec/frontend/data#place-a-field-refusal-on-its-fieldPlace a Field Refusal on Its Fieldruleanyfrontend-dataformfullruleguidanceWhich field problems miss their fields, bypass the frame helper, or close the form? Look in the forms and the frame helper.
litespec/frontend/data#place-a-refusal-beside-what-was-refusedPlace a Refusal Beside What Was Refusedruleanyfrontend-datacomponent, routefullruleguidanceWhich refusals render away from the refused record or control, or without the application's sentence and code in the markup? Look in the screen's page files beside the refusing controls.
litespec/frontend/data#read-a-permission-from-the-sessionRead a Permission from the Sessionruleanyfrontend-dataroutefullruleguidanceWhich offered commands exceed the permissions the session actor holds at the record scope? Look in the page command guards and the session shape.
litespec/frontend/data#regenerate-the-client-rather-than-editing-itRegenerate the Client Rather Than Editing Itconventionanyfrontend-dataanyfulldefaultguidanceWhich hand edits sit below the generated directory, making the committed client differ from fresh generation output? Look in the generated directory and the generator command.
litespec/frontend/data#route-a-personal-value-in-a-headerRoute a Personal Value in a Headerruleanyfrontend-datacomponent, routefullruleguidanceWhich person-naming values travel in the query string instead of contract-declared headers? Look in the contract headers and the call sites.
litespec/frontend/data#route-use-cases-through-applicationRoute Use Cases Through Applicationruleanyfrontend-datacomponent, routefullruleguidanceWhich screens or components compose Domain calls or write storage instead of invoking an Application handler carrying a Command or Query role suffix? Look in the screen and component sources.
litespec/frontend/data#set-the-write-marker-on-every-requestSet the Write Marker on Every Requestruleanyfrontend-datacomponent, routefullruleguidanceWhich writes lack the configured marker header of the form X-<Project>-Request? Look in the client configuration and the API write acceptance.
litespec/frontend/data#update-the-cache-a-command-changedUpdate the Cache a Command Changedruleanyfrontend-datacomponent, routefullruleguidanceWhich successful commands leave a changed query cached, or invalidate a query their answers left unchanged? Look in the command call sites and the cache keys.
litespec/frontend/data#use-one-configured-client-per-applicationUse One Configured Client per Applicationruleanyfrontend-datacomponent, routefullruleguidanceWhich reads or writes bypass the one configured client? Look in the frame client configuration and the call sites.
litespec/frontend/data#validate-a-form-with-the-generated-schemaValidate a Form with the Generated Schemaruleanyfrontend-dataformfullruleguidanceWhich forms validate against a handwritten restatement instead of the generated request schema extended with application rules? Look in the form sources and the generated schemas.
litespec/frontend/mobile/data#call-the-server-only-through-the-generated-clientCall the Server Only Through the Generated Clientruleanyfrontend-data-fullruleguidanceWhich backend calls in a server app bypass the generated client in {ProjectName}.Client? Look in the backend call sites.
litespec/frontend/mobile/data#copy-picked-media-into-the-appCopy Picked Media into the Appruleanyfrontend-data-fullruleguidanceWhich imported media keeps a stored picker URI instead of a copy in app-private storage? Look in the media imports.
litespec/frontend/mobile/data#keep-persisted-state-in-app-private-storageKeep Persisted State in App-Private Storageruleanyfrontend-data-fullruleguidanceWhich persisted state or user-added media lives outside app-private storage, or writes without a temporary file? Look in the storage writes.
litespec/frontend/mobile/data#load-persisted-state-onceLoad Persisted State Onceruleanyfrontend-data-fullruleguidanceWhich persisted state loads outside startup, or renders a screen before the typed store is ready? Look in the startup sequence and the screen loading states.
litespec/frontend/mobile/data#make-refusals-explicitMake Refusals Explicitruleanyfrontend-data-fullruleguidanceWhich handler unions miss success or a named refusal, and which screens leave a refusal unmapped to a message? Look in the handler result types and the screens.
litespec/frontend/mobile/data#refuse-commands-while-offlineRefuse Commands While Offlineconventionanyfrontend-data-fulldefaultguidanceWhich screens queue a command while offline without a recorded departure naming the queued commands and their replay order, and which offline screens show no failure state? Look in the command call sites and the offline screens.
litespec/frontend/mobile/device#declare-only-used-permissionsDeclare Only Used Permissionsruleanyfrontend-ui-fullruleguidanceWhich app manifest permissions do no current features use? Look in the app manifest beside the features.
litespec/frontend/mobile/device#hold-audio-focus-while-playing-soundHold Audio Focus While Playing Soundruleanyfrontend-ui-fullruleguidanceWhich audible playback skips audio focus or keeps playing on focus loss? Look in the playback code.
litespec/frontend/mobile/device#keep-device-work-in-the-foregroundKeep Device Work in the Foregroundconventionanyfrontend-ui-fulldefaultguidanceWhich background services, scheduled jobs, or push handlers run without a project decision naming them? Look in the background work beside the decision records.
litespec/frontend/mobile/device#pause-media-in-the-backgroundPause Media in the Backgroundruleanyfrontend-ui-fullruleguidanceWhich sound or video keeps playing out of the foreground, or resumes before return? Look in the lifecycle handling.
litespec/frontend/mobile/device#prefer-permissionless-system-pickersPrefer Permissionless System Pickersruleanyfrontend-ui-fullruleguidanceWhich photo or file picking bypasses the permissionless system picker where the platform offers one? Look in the picking call sites.
litespec/frontend/mobile/device#request-a-permission-at-the-point-of-useRequest a Permission at the Point of Useruleanyfrontend-ui-fullruleguidanceWhich runtime permission requests fire at launch instead of from the action needing them? Look in the permission requests.
litespec/frontend/mobile/screens#draw-edge-to-edge-with-insetsDraw Edge to Edge with Insetsruleanyfrontend-ui-fullruleguidanceWhich screens clip controls or text under the system bars without applying the insets? Look in the screen layouts.
litespec/frontend/mobile/screens#follow-the-system-back-gestureFollow the System Back Gestureruleanyfrontend-ui-fullruleguidanceWhich back gestures skip the overlay, jump more than one screen, or leave the app from a deeper screen? Look in the back handling.
litespec/frontend/mobile/screens#honor-reduced-motionHonor Reduced Motionruleanyfrontend-ui-fullruleguidanceWhich screens keep looping motion or video with animations off instead of showing a still state? Look in the screens with animations off.
litespec/frontend/mobile/screens#meet-touch-and-text-accessibilityMeet Touch and Text Accessibilityruleanyfrontend-ui-fullruleguidanceWhich interactive views lack a content description or the platform-minimum touch target, and which text ignores the system font scale? Look in the views, the text styles, and the accessibility device tests the Mobile Testing page names.
litespec/frontend/mobile/screens#own-navigation-in-one-controllerOwn Navigation in One Controllerruleanyfrontend-ui-fullruleguidanceWhich navigation state lives outside the one controller, and which screens navigate instead of raising events? Look in the controller and the screens.
litespec/frontend/mobile/screens#release-media-with-its-screenRelease Media with Its Screenruleanyfrontend-ui-fullruleguidanceWhich players, animators, or decoded images survive their view leaving the window? Look in the view teardown.
litespec/frontend/mobile/screens#render-with-the-platforms-own-viewsRender with the Platform's Own Viewsruleanyfrontend-ui-fullruleguidanceWhich product screens render in a WebView or a cross-platform UI layer instead of the platform's native UI toolkit? Look in the screen implementations.
litespec/frontend/mobile/screens#restore-the-visitors-placeRestore the Visitor's Placeconventionanyfrontend-ui-fulldefaultguidanceWhich process recreations drop the visitor outside the screen the saved navigation state names? Look in the saved-state handling.
litespec/frontend/mobile/screens#route-app-links-to-journey-entry-screensRoute App Links to Journey Entry Screensruleanyfrontend-ui-fullruleguidanceWhich journey entry screens open the first screen instead of the screen and record their app link names, and which links resolve outside the one controller? Look in the app link handling and the controller.
litespec/frontend/mobile/structure#hold-the-domain-in-the-app-only-without-a-serverHold the Domain in the App Only Without a Serverruleanyfrontend-ui-fullruleguidanceWhich client-only solutions miss a Domain, Application, or Infrastructure project, and which server solutions miss the Client project or hold a Domain copy? Look in the solution tree.
litespec/frontend/mobile/structure#keep-core-projects-platform-freeKeep Core Projects Platform-Freeruleanyfrontend-ui-fullruleguidanceWhich core projects target a platform SDK or reference a platform SDK type? Look in the core project files and sources.
litespec/frontend/mobile/structure#organize-screens-by-moduleOrganize Screens by Moduleruleanyfrontend-ui-fullruleguidanceWhich screens sit outside Screens/, or outside their module folder in a multi-module product? Look in the platform project tree.
litespec/frontend/mobile/structure#place-platform-adapters-in-the-platform-projectPlace Platform Adapters in the Platform Projectconventionanyfrontend-ui-fulldefaultguidanceWhich platform API surfaces lack one adapter type in the platform project behind an interface Application owns? Look in the platform project adapters.
litespec/frontend/mobile/structure#use-the-mobile-solution-treeUse the Mobile Solution Treeruleanyfrontend-ui-fullruleguidanceWhich mobile apps sit outside the one solution at apps/mobile/, or miss the core projects under src/ or the {ProjectName}.{Platform} app project? Look in the apps/mobile/ tree.
litespec/frontend/mobile/testing#prove-screens-on-a-device-or-emulatorProve Screens on a Device or Emulatorruleanytests-fullruleguidanceWhich screens a use case reaches lack a device test driving them on an emulator or device? Look in the device tests beside the screens.
litespec/frontend/mobile/testing#prove-touch-and-text-accessibility-on-a-deviceProve Touch and Text Accessibility on a Deviceruleanytests-fullruleguidanceWhich screens lack a device test checking content descriptions, platform-minimum touch targets, and text scaling with the system font scale? Look in the device tests beside the screens.
litespec/frontend/mobile/testing#run-the-release-build-before-a-releaseRun the Release Build Before a Releaseconventionanytests-fulldefaultguidanceWhich releases publish without a record naming one physical device per platform and the walk result? Look in the release records.
litespec/frontend/mobile/testing#test-the-core-as-plain-netTest the Core as Plain .NETruleanytests-fullruleguidanceWhich core test projects need an emulator instead of running on the plain .NET runner? Look in the core test projects.
litespec/frontend/patterns#declare-the-compact-behaviorDeclare the Compact Behaviorruleanyfrontend-uianyfullrulecheckablelitespec model check reports [litespec/frontend/patterns#declare-the-compact-behavior] for a breakpoint outside the breakpoints map or a compact option naming no recorded option. Run it at the consumer root.
litespec/frontend/patterns#implement-a-chosen-pattern-onceImplement a Chosen Pattern Onceruleanyfrontend-uicomponentfullrulecheckablelitespec model check reports [litespec/frontend/patterns#implement-a-chosen-pattern-once] for a named component path that does not exist or an adopted status with no components. Run it at the consumer root.
litespec/frontend/patterns#keep-a-visual-registryKeep a Visual Registryconventionanyfrontend-uianyfulldefaultguidanceWhich product-added options miss the registry at compact or full widths? Look at the registry command or path the catalog names.
litespec/frontend/patterns#keep-one-pattern-catalogKeep One Pattern Catalogruleanyfrontend-uianyfullrulecheckablelitespec model check reports [litespec/frontend/patterns#keep-one-pattern-catalog] for a missing catalog, a duplicate id, an unknown group, an unknown library pattern, or a renamed option. Run it at the consumer root.
litespec/frontend/patterns#keep-the-catalog-platform-neutralKeep the Catalog Platform Neutralruleanyfrontend-uianyfullruleguidanceWhich patterns name a component library outside their implementations? Look in the catalog entries outside implementations.
litespec/frontend/patterns#promote-pattern-improvementsPromote Pattern Improvementsconventionanyfrontend-uianyfulldefaultguidanceWhich accepted product-neutral proposals never reached the LiteSpec pattern page as new or refined options? Look in the LiteSpec pattern pages and the accepted proposals.
litespec/frontend/patterns#record-every-option-consideredRecord Every Option Consideredruleanyfrontend-uianyfullrulecheckablelitespec model check reports [litespec/frontend/patterns#record-every-option-considered] for a choice or extension naming no recorded option, and the catalog schema requires at least two options with rationale and cost. Run it at the consumer root.
litespec/frontend/patterns#record-who-choseRecord Who Choseruleanyfrontend-uianyfullruleguidanceWhich decisions lack owner or recommended, pose an agent proposal as an owner choice, or change the choice without naming their record? Look in the catalog decisions.
litespec/frontend/patterns#report-pattern-feedback-after-the-workReport Pattern Feedback After the Workconventionanyfrontend-uianyfulldefaultguidanceWhich completion reports carry a pattern proposal without its pattern id, change, reason, or affected option? Look in the completion reports.
litespec/frontend/patterns#start-from-a-litespec-patternStart from a LiteSpec Patternconventionanyfrontend-uianyfulldefaultguidanceWhich entries lack library without recording why no pattern fits, or rename the pattern option ids and names? Look in the catalog entries.
litespec/frontend/patterns#state-the-implementation-statusState the Implementation Statusruleanyfrontend-uianyfullrulecheckablelitespec model check reports [litespec/frontend/patterns#state-the-implementation-status] for a partial or pending entry with no gap. Run it at the consumer root.
litespec/frontend/patterns#update-the-catalog-with-the-codeUpdate the Catalog with the Coderuleanyfrontend-uianyfullruleguidanceWhich option switches, added options, or extensions land without their implementation, and which single-route departures name no decision record? Look in the change diffs and the catalog entries.
litespec/frontend/patterns/admin-screens#api-keys-and-webhooksAPI Keys and Webhookspatternanyfrontend-ui-fulldefaultguidanceWhich built credential or delivery list breaks from the chosen wireframe? Open the built keys screen, with grants in line, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/admin-screens#bringing-data-from-spreadsheetsBringing Data from Spreadsheetspatternanyfrontend-ui-fulldefaultguidanceWhich built column match or refused row breaks from the chosen wireframe? Open the built import flow beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/admin-screens#budget-codes-and-advancesBudget Codes and Advancespatternanyfrontend-ui-fulldefaultguidanceWhich built code table or claims list breaks from the chosen wireframe? Open the built budget screens beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/admin-screens#connecting-the-payment-accountConnecting the Payment Accountpatternanyfrontend-ui-fulldefaultguidanceWhich built connection step or method list breaks from the chosen wireframe? Open the built payment setup beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/admin-screens#show-a-new-secret-onceShow a New Secret Onceruleanyfrontend-ui-fullruleguidanceWhich newly created credential stays readable after its creation dialog closes? Open the creation flow for keys and secrets on a built settings screen.
litespec/frontend/patterns/admin-screens#show-what-a-role-allows-before-granting-itShow What a Role Allows Before Granting Itruleanyfrontend-ui-fullruleguidanceWhich invitation or role change goes out without listing the chosen capabilities? Open the invite and role-change flows on a built team screen.
litespec/frontend/patterns/admin-screens#supplier-invoiceSupplier Invoicepatternanyfrontend-ui-fulldefaultguidanceWhich built invoice sheet or usage line breaks from the chosen wireframe? Open the built billing screens beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/admin-screens#team-members-and-their-rolesTeam Members and Their Rolespatternanyfrontend-ui-fulldefaultguidanceWhich built staff list or invitation breaks from the chosen wireframe? Open the built team screen, with its invitations, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#changing-a-record-that-already-existsChanging a Record That Already Existspatternanyfrontend-ui-fulldefaultguidanceWhich built edit flow differs from the wireframe its catalog entry chose? Open the built save, autosave, and blocked edits beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#changing-something-that-has-already-happenedChanging Something That Has Already Happenedpatternanyfrontend-ui-fulldefaultguidanceWhich built correction flow differs from the wireframe its catalog entry chose? Open the built past-change edits, reverses, and version histories beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#confirm-or-undo-every-removalConfirm or Undo Every Removalruleanyfrontend-ui-fullruleguidanceWhich built removal runs without asking and offers no way back? Open the archive, delete, void, and suspend flows on built screens.
litespec/frontend/patterns/create-edit-remove#creating-a-record-and-then-filling-it-inCreating a Record and Then Filling It Inpatternanyfrontend-ui-fulldefaultguidanceWhich built draft-first flow differs from the wireframe its catalog entry chose? Open the built name-first creates and setup guides beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#creating-one-recordCreating One Recordpatternanyfrontend-ui-fulldefaultguidanceWhich built creation form differs from the wireframe its catalog entry chose? Open the built dialog, page, and inline starts beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#duplicating-a-recordDuplicating a Recordpatternanyfrontend-ui-fulldefaultguidanceWhich built copy flow differs from the wireframe its catalog entry chose? Open the built duplicate dialogs and row-menu copies beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#inviting-a-team-memberInviting a Team Memberpatternanyfrontend-ui-fulldefaultguidanceWhich built join flow differs from the wireframe its catalog entry chose? Open the built email invites, links, and pending lists beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#publishing-and-unpublishing-a-policyPublishing and Unpublishing a Policypatternanyfrontend-ui-fulldefaultguidanceWhich built policy-state flow differs from the wireframe its catalog entry chose? Open the built publish, pause, and per-channel controls beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#putting-a-list-in-order-by-handPutting a List in Order by Handpatternanyfrontend-ui-fulldefaultguidanceWhich built manual ordering differs from the wireframe its catalog entry chose? Open the built drag handles, move commands, and pinned rows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#removing-several-at-onceRemoving Several at Oncepatternanyfrontend-ui-fulldefaultguidanceWhich built bulk removal differs from the wireframe its catalog entry chose? Open the built count-and-money dialogs and background jobs beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#removing-somethingRemoving Somethingpatternanyfrontend-ui-fulldefaultguidanceWhich built single removal differs from the wireframe its catalog entry chose? Open the built archive, delete, and trash flows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#restoring-an-archived-recordRestoring an Archived Recordpatternanyfrontend-ui-fulldefaultguidanceWhich built restore flow differs from the wireframe its catalog entry chose? Open the built archived views and undo toasts beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#scheduling-a-change-for-laterScheduling a Change for Laterpatternanyfrontend-ui-fulldefaultguidanceWhich built dated change differs from the wireframe its catalog entry chose? Open the built live windows and scheduled codes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/create-edit-remove#show-the-created-recordShow the Created Recordruleanyfrontend-ui-fullruleguidanceWhich built create flow ends away from its new record? Open the create dialogs, pages, and bulk flows on built screens.
litespec/frontend/patterns/dialogs-and-overlays#bar-that-stays-while-the-reader-worksBar That Stays While the Reader Workspatternanyfrontend-ui-fulldefaultguidanceWhich built persistent band departs from the wireframe its catalog entry chose? Open the built unsaved-work, deadline, and read-only bars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#bottom-sheet-on-a-phoneBottom Sheet on a Phonepatternanyfrontend-ui-fulldefaultguidanceWhich built thumb-reach sheet departs from the wireframe its catalog entry chose? Open the built half, full, and filter sheets beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#confirming-a-command-that-cannot-be-taken-backConfirming a Command That Cannot Be Taken Backpatternanyfrontend-ui-fulldefaultguidanceWhich built irreversible step departs from the wireframe its catalog entry chose? Open the built typed confirms and undo offers beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#context-menu-where-the-pointer-isContext Menu Where the Pointer Ispatternanyfrontend-ui-fulldefaultguidanceWhich built right-click menu departs from the wireframe its catalog entry chose? Open the built row, bulk, and empty-space menus beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#dialog-with-a-long-body-and-a-sticky-footerDialog with a Long Body and a Sticky Footerpatternanyfrontend-ui-fulldefaultguidanceWhich built scrolling dialog departs from the wireframe its catalog entry chose? Open the built pinned footers and collapsed sections beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#drawer-beside-the-listDrawer Beside the Listpatternanyfrontend-ui-fulldefaultguidanceWhich built side preview departs from the wireframe its catalog entry chose? Open the built drawer variants over and next to the list, with the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#keyboard-shortcut-help-overlayKeyboard Shortcut Help Overlaypatternanyfrontend-ui-fulldefaultguidanceWhich built shortcut list departs from the wireframe its catalog entry chose? Open the built grouped grids and palette shortcut views beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#menu-of-a-rows-commandsMenu of a Row's Commandspatternanyfrontend-ui-fulldefaultguidanceWhich built row menu departs from the wireframe its catalog entry chose? Open the built grouped menus, split buttons, and search fields beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#name-the-command-on-a-confirm-actionName the Command on a Confirm Actionruleanyfrontend-ui-fullruleguidanceWhich built confirmation labels its commit button with a bare Yes or OK? Open the confirm dialogs on built screens.
litespec/frontend/patterns/dialogs-and-overlays#return-focus-when-an-overlay-closesReturn Focus When an Overlay Closesruleanyfrontend-ui-fullruleguidanceWhich built overlay leaves focus lost after it closes? Open and dismiss each dialog, drawer, popover, menu, and toast on built screens with a keyboard.
litespec/frontend/patterns/dialogs-and-overlays#short-panel-that-opens-beside-a-controlShort Panel That Opens Beside a Controlpatternanyfrontend-ui-fulldefaultguidanceWhich built hover card or hint departs from the wireframe its catalog entry chose? Open the built popovers, previews, and coach marks beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#short-task-in-a-dialogShort Task in a Dialogpatternanyfrontend-ui-fulldefaultguidanceWhich built two-input task departs from the wireframe its catalog entry chose? Open the built small dialogs and palette runs beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/dialogs-and-overlays#toast-at-the-edge-of-the-screenToast at the Edge of the Screenpatternanyfrontend-ui-fulldefaultguidanceWhich built edge notice departs from the wireframe its catalog entry chose? Open the built confirmations, undos, and refusal slots beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#back-office-is-down-for-a-short-whileBack Office Is Down for a Short Whilepatternanyfrontend-ui-fulldefaultguidanceWhich built maintenance screen departs from the wireframe its catalog entry chose? Open the built countdowns and read-only windows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#command-that-workedCommand That Workedpatternanyfrontend-ui-fulldefaultguidanceWhich built success notice departs from the wireframe its catalog entry chose? Open the built confirmations, toasts, and quiet saves beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#command-the-api-refusedCommand the API Refusedpatternanyfrontend-ui-fulldefaultguidanceWhich built refusal notice departs from the wireframe its catalog entry chose? Open the built refused commands, with codes and fixes, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#connection-is-goneConnection Is Gonepatternanyfrontend-ui-fulldefaultguidanceWhich built offline screen departs from the wireframe its catalog entry chose? Open the built stale banners and queued commands beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#fact-somebody-has-to-read-before-actingFact Somebody Has to Read Before Actingpatternanyfrontend-ui-fulldefaultguidanceWhich built must-read notice departs from the wireframe its catalog entry chose? Open the built callouts, hints, and banners beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#keep-the-readers-input-through-a-failureKeep the Reader's Input Through a Failureruleanyfrontend-ui-fullruleguidanceWhich built form drops typed values after a refused save? Open the failed submits on built forms and check every field.
litespec/frontend/patterns/feedback-and-states#loadingLoadingpatternanyfrontend-ui-fulldefaultguidanceWhich built waiting state departs from the wireframe its catalog entry chose? Open the built skeletons, spinners, and progress bars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#nothing-has-ever-existedNothing Has Ever Existedpatternanyfrontend-ui-fulldefaultguidanceWhich built first-run screen departs from the wireframe its catalog entry chose? Open the built empty lists and setup guides beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#nothing-matches-what-was-asked-forNothing Matches What Was Asked Forpatternanyfrontend-ui-fulldefaultguidanceWhich built no-results screen departs from the wireframe its catalog entry chose? Open the built filtered empties and suggestion rows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#reader-may-not-do-thisReader May Not Do Thispatternanyfrontend-ui-fulldefaultguidanceWhich built forbidden view departs from the wireframe its catalog entry chose? Open the built refused pages, absent tabs, and read-only sections beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#sign-in-ran-outSign-In Ran Outpatternanyfrontend-ui-fulldefaultguidanceWhich built expired session departs from the wireframe its catalog entry chose? Open the built sign-out pages and re-auth dialogs beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#somebody-else-saved-firstSomebody Else Saved Firstpatternanyfrontend-ui-fulldefaultguidanceWhich built conflict screen departs from the wireframe its catalog entry chose? Open the built field-by-field merges and presence cues beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#something-went-wrong-on-our-sideSomething Went Wrong on Our Sidepatternanyfrontend-ui-fulldefaultguidanceWhich built server-failure screen departs from the wireframe its catalog entry chose? Open the built outage pages and retrying bars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#state-what-failed-and-the-next-stepState What Failed and the Next Stepruleanyfrontend-ui-fullruleguidanceWhich built failure message omits the cause or the way forward? Open the refused commands and failed reads on built screens.
litespec/frontend/patterns/feedback-and-states#this-record-does-not-existThis Record Does Not Existpatternanyfrontend-ui-fulldefaultguidanceWhich built missing-record screen departs from the wireframe its catalog entry chose? Open the built not-found and gone states beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#too-many-triesToo Many Triespatternanyfrontend-ui-fulldefaultguidanceWhich built rate-limit screen departs from the wireframe its catalog entry chose? Open the built waits, queues, and 429 pages beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/feedback-and-states#work-that-runs-without-youWork That Runs Without Youpatternanyfrontend-ui-fulldefaultguidanceWhich built background job departs from the wireframe its catalog entry chose? Open the built trays, job sections, and progress rows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#address-fieldAddress Fieldpatternanyfrontend-ui-fulldefaultguidanceWhich built location input breaks from the wireframe its catalog entry chose? Open the built lookups, country shapes, and map pins beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#capacity-fieldCapacity Fieldpatternanyfrontend-ui-fulldefaultguidanceWhich built ceiling input breaks from the wireframe its catalog entry chose? Open the built splits, steppers, and overage messages beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#choosing-a-recordChoosing a Recordpatternanyfrontend-ui-fulldefaultguidanceWhich built record picker breaks from the wireframe its catalog entry chose? Open the built searchable pickers and recent lists beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#choosing-one-of-a-few-optionsChoosing One of a Few Optionspatternanyfrontend-ui-fulldefaultguidanceWhich built single-choice control breaks from the wireframe its catalog entry chose? Open the built radios, segments, and plan cards beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#color-field-for-the-mail-accentColor Field for the Mail Accentpatternanyfrontend-ui-fulldefaultguidanceWhich built accent picker breaks from the wireframe its catalog entry chose? Open the built swatches, wells, and contrast readouts beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#date-and-time-fieldDate and Time Fieldpatternanyfrontend-ui-fulldefaultguidanceWhich built calendar input breaks from the wireframe its catalog entry chose? Open the built date, duration, and range fields beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#email-body-editorEmail Body Editorpatternanyfrontend-ui-fulldefaultguidanceWhich built message composer breaks from the wireframe its catalog entry chose? Open the built subject-plus-body forms and variable chips beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#keep-entered-values-after-a-refused-submitKeep Entered Values After a Refused Submitruleanyfrontend-ui-fullruleguidanceWhich built form drops typed values after a refused submit? Open the refused submits on built forms and check every field.
litespec/frontend/patterns/forms-and-fields#money-fieldMoney Fieldpatternanyfrontend-ui-fulldefaultguidanceWhich built amount input breaks from the wireframe its catalog entry chose? Open the built amount, currency, and total fields beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#name-every-field-with-a-visible-labelName Every Field with a Visible Labelruleanyfrontend-ui-fullruleguidanceWhich built input lacks a shown label naming its value? Open every form on built screens and read each field's label.
litespec/frontend/patterns/forms-and-fields#picking-a-periodPicking a Periodpatternanyfrontend-ui-fulldefaultguidanceWhich built range picker breaks from the wireframe its catalog entry chose? Open the built presets, month pickers, and painted calendars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#repeatable-group-for-budget-codesRepeatable Group for Budget Codespatternanyfrontend-ui-fulldefaultguidanceWhich built code group breaks from the wireframe its catalog entry chose? Open the built stacked cards and inline tables beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#reporting-a-refused-submitReporting a Refused Submitpatternanyfrontend-ui-fulldefaultguidanceWhich built submit-error report breaks from the wireframe its catalog entry chose? Open the built summaries and per-field messages beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#slug-or-url-field-with-a-previewSlug or URL Field with a Previewpatternanyfrontend-ui-fulldefaultguidanceWhich built address input breaks from the wireframe its catalog entry chose? Open the built slugs, transliterations, and availability checks beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#switch-or-a-checkboxSwitch or a Checkboxpatternanyfrontend-ui-fulldefaultguidanceWhich built toggle breaks from the wireframe its catalog entry chose? Open the built switches, checkboxes, and instant applies beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#tag-inputTag Inputpatternanyfrontend-ui-fulldefaultguidanceWhich built label chip breaks from the wireframe its catalog entry chose? Open the built chips, popover lists, and inherited tags beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#text-field-and-its-statesText Field and Its Statespatternanyfrontend-ui-fulldefaultguidanceWhich built text input breaks from the wireframe its catalog entry chose? Open the built labels, counts, and growing areas beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#upload-fieldUpload Fieldpatternanyfrontend-ui-fulldefaultguidanceWhich built file input breaks from the wireframe its catalog entry chose? Open the built drop zones, CSV reads, and progress rows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/forms-and-fields#work-that-is-not-savedWork That Is Not Savedpatternanyfrontend-ui-fulldefaultguidanceWhich built unsaved marker breaks from the wireframe its catalog entry chose? Open the built dirty flags, drafts, and save bars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#align-money-to-the-right-with-its-currencyAlign Money to the Right with Its Currencyruleanyfrontend-ui-fullruleguidanceWhich built money column centers its figures or hides a currency? Open the money columns on built tables.
litespec/frontend/patterns/lists-and-tables#bulk-action-barBulk Action Barpatternanyfrontend-ui-fulldefaultguidanceWhich built selection bar breaks from the wireframe its catalog entry chose? Open the built count bars, pills, and dropdowns beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#choosing-the-columnsChoosing the Columnspatternanyfrontend-ui-fulldefaultguidanceWhich built column set breaks from the wireframe its catalog entry chose? Open the built choosers and saved views beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#exporting-the-listExporting the Listpatternanyfrontend-ui-fulldefaultguidanceWhich built download flow breaks from the wireframe its catalog entry chose? Open the built CSV buttons, dialogs, and histories beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#filtersFilterspatternanyfrontend-ui-fulldefaultguidanceWhich built filter control breaks from the wireframe its catalog entry chose? Open the built chips, panels, and facet buttons beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#grouped-rowsGrouped Rowspatternanyfrontend-ui-fulldefaultguidanceWhich built group header breaks from the wireframe its catalog entry chose? Open the built day, trip, and state groups beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#inline-row-expansionInline Row Expansionpatternanyfrontend-ui-fulldefaultguidanceWhich built expandable row breaks from the wireframe its catalog entry chose? Open the built expense lines, timelines, and expand-all controls beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#keep-a-lists-view-in-its-addressKeep a List's View in Its Addressruleanyfrontend-ui-fullruleguidanceWhich built list loses its filters, sort, or page on refresh? Open built lists, change the view, and reload the address.
litespec/frontend/patterns/lists-and-tables#list-on-a-phoneList on a Phonepatternanyfrontend-ui-fulldefaultguidanceWhich built narrow list breaks from the wireframe its catalog entry chose? Open the built two-line rows, cards, and sticky columns at 390 pixels beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#money-columnMoney Columnpatternanyfrontend-ui-fulldefaultguidanceWhich built amount column breaks from the wireframe its catalog entry chose? Open the built aligned figures, shares, and totals footers beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#paginationPaginationpatternanyfrontend-ui-fulldefaultguidanceWhich built page control breaks from the wireframe its catalog entry chose? Open the built chevrons, load-more buttons, and compact pagers beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#pinned-and-resizing-columnsPinned and Resizing Columnspatternanyfrontend-ui-fulldefaultguidanceWhich built fixed column breaks from the wireframe its catalog entry chose? Open the built frozen first columns and resize handles beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#row-actionsRow Actionspatternanyfrontend-ui-fulldefaultguidanceWhich built row command breaks from the wireframe its catalog entry chose? Open the built inline actions and row menus beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#row-densityRow Densitypatternanyfrontend-ui-fulldefaultguidanceWhich built row height breaks from the wireframe its catalog entry chose? Open the built 24, 32, 40, and 48 pixel rows beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#searching-with-highlighted-matchesSearching with Highlighted Matchespatternanyfrontend-ui-fulldefaultguidanceWhich built list search breaks from the wireframe its catalog entry chose? Open the built highlighted cells and match columns beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#sortingSortingpatternanyfrontend-ui-fulldefaultguidanceWhich built sort control breaks from the wireframe its catalog entry chose? Open the built arrows, stacks, and phone sort controls beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#status-in-a-columnStatus in a Columnpatternanyfrontend-ui-fulldefaultguidanceWhich built state badge breaks from the wireframe its catalog entry chose? Open the built tones, dots, and progress steps beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#tables-own-statesTable's Own Statespatternanyfrontend-ui-fulldefaultguidanceWhich built table state breaks from the wireframe its catalog entry chose? Open the built no-data, failed-read, and slow-read states beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/lists-and-tables#trips-as-a-gridTrips as a Gridpatternanyfrontend-ui-fulldefaultguidanceWhich built trip overview breaks from the wireframe its catalog entry chose? Open the built cards, calendars, and table-grid toggles beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#choosing-a-periodChoosing a Periodpatternanyfrontend-ui-fulldefaultguidanceWhich built period control differs from the wireframe its catalog entry chose? Open the built chevrons, tabs, and painted calendars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#counting-thingsCounting Thingspatternanyfrontend-ui-fulldefaultguidanceWhich built tally differs from the wireframe its catalog entry chose? Open the built sidebar counts, tiles, and dated claims beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#figure-against-an-earlier-periodFigure Against an Earlier Periodpatternanyfrontend-ui-fulldefaultguidanceWhich built comparison tile differs from the wireframe its catalog entry chose? Open the built deltas, sparklines, and KPI tables beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#how-much-fits-before-it-breaksHow Much Fits Before It Breakspatternanyfrontend-ui-fulldefaultguidanceWhich built dense table differs from the wireframe its catalog entry chose? Open the built 390-pixel lists and pinned first columns beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#numbers-at-phone-widthNumbers at Phone Widthpatternanyfrontend-ui-fulldefaultguidanceWhich built narrow figure differs from the wireframe its catalog entry chose? Open the built pairs, per-row figures, and halved charts at 390 pixels beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#show-the-currency-of-every-amountShow the Currency of Every Amountruleanyfrontend-ui-fullruleguidanceWhich built figure hides its currency? Open the amounts on built tables, statements, and charts.
litespec/frontend/patterns/money-time-density#showing-an-identifierShowing an Identifierpatternanyfrontend-ui-fulldefaultguidanceWhich built code display differs from the wireframe its catalog entry chose? Open the built monospaced, labeled, and copyable codes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#spend-against-the-budgetSpend Against the Budgetpatternanyfrontend-ui-fulldefaultguidanceWhich built fill-rate view differs from the wireframe its catalog entry chose? Open the built bars, countdowns, and capacity tables beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#spending-by-expense-kindSpending by Expense Kindpatternanyfrontend-ui-fulldefaultguidanceWhich built mix chart differs from the wireframe its catalog entry chose? Open the built bars, tiles, and donuts beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#spending-over-timeSpending over Timepatternanyfrontend-ui-fulldefaultguidanceWhich built trend chart differs from the wireframe its catalog entry chose? Open the built columns, areas, and sparklines beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#state-the-time-zone-of-a-shared-momentState the Time Zone of a Shared Momentruleanyfrontend-ui-fullruleguidanceWhich built shared moment omits its zone? Open the dates and times on built screens read across zones.
litespec/frontend/patterns/money-time-density#statement-that-adds-upStatement That Adds Uppatternanyfrontend-ui-fulldefaultguidanceWhich built totals page differs from the wireframe its catalog entry chose? Open the built groups, subtotals, and payout endings beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#two-vat-rates-on-one-pageTwo VAT Rates on One Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built mixed-rate view differs from the wireframe its catalog entry chose? Open the built splits, badges, and per-rate summaries beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#vendors-invoice-to-the-companyVendor's Invoice to the Companypatternanyfrontend-ui-fulldefaultguidanceWhich built supplier bill differs from the wireframe its catalog entry chose? Open the built documents, states, and usage lines beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#when-the-money-arrivesWhen the Money Arrivespatternanyfrontend-ui-fulldefaultguidanceWhich built payout view differs from the wireframe its catalog entry chose? Open the built upcoming, weekly, and journey views beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#writing-a-momentWriting a Momentpatternanyfrontend-ui-fulldefaultguidanceWhich built date text differs from the wireframe its catalog entry chose? Open the built absolute, relative, and weekday forms beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/money-time-density#writing-an-amountWriting an Amountpatternanyfrontend-ui-fulldefaultguidanceWhich built money text differs from the wireframe its catalog entry chose? Open the built codes, symbols, and red negatives beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#account-menuAccount Menupatternanyfrontend-ui-fulldefaultguidanceWhich built sign-in menu differs from the wireframe its catalog entry chose? Open the built account controls, in the sidebar foot or header, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#breadcrumbBreadcrumbpatternanyfrontend-ui-fulldefaultguidanceWhich built parent chain differs from the wireframe its catalog entry chose? Open a built four-level trail, with its truncation and parent links, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#command-paletteCommand Palettepatternanyfrontend-ui-fulldefaultguidanceWhich built jump-to dialog breaks from the wireframe its catalog entry chose? Open the built palette, with its grouped results and recent items, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#give-every-page-its-own-addressGive Every Page Its Own Addressruleanyfrontend-ui-fullruleguidanceWhich built screen cannot be opened directly from its copied link? Paste three copied addresses into a fresh tab.
litespec/frontend/patterns/navigation#header-barHeader Barpatternanyfrontend-ui-fulldefaultguidanceWhich built top band breaks from the wireframe its catalog entry chose? Open the built trip header, with its company name and deployment identity, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#help-and-supportHelp and Supportpatternanyfrontend-ui-fulldefaultguidanceWhich built guidance entry differs from the wireframe its catalog entry chose? Open the built help surfaces, from sidebar entry to contextual hints, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#icons-in-the-frameIcons in the Framepatternanyfrontend-ui-fulldefaultguidanceWhich built label or action carries an icon outside the recorded set? Open the built frame, with its labeled actions and marked current item, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#language-and-themeLanguage and Themepatternanyfrontend-ui-fulldefaultguidanceWhich built switch differs from the wireframe its catalog entry chose? Open the built locale and appearance controls, in the header and account menu, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#mark-the-current-sectionMark the Current Sectionruleanyfrontend-ui-fullruleguidanceWhich built screen fails to highlight the area holding its open page? Open three built screens reached by link, notification, and search.
litespec/frontend/patterns/navigation#notification-inboxNotification Inboxpatternanyfrontend-ui-fulldefaultguidanceWhich built attention list breaks from the wireframe its catalog entry chose? Open the built inbox and bell, with triage and unread states, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#phone-navigationPhone Navigationpatternanyfrontend-ui-fulldefaultguidanceWhich built narrow-screen frame differs from the wireframe its catalog entry chose? Open the built phone layout, with its bottom bar or sheet, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#sidebarSidebarpatternanyfrontend-ui-fulldefaultguidanceWhich built area list breaks from the wireframe its catalog entry chose? Open the built console frame, with its grouped areas and marked item, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#tabs-within-a-pageTabs Within a Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built tab row differs from the wireframe its catalog entry chose? Open the built in-page tabs, with the active tab in the URL, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/navigation#workspace-switcherWorkspace Switcherpatternanyfrontend-ui-fulldefaultguidanceWhich built cost centre picker breaks from the wireframe its catalog entry chose? Open the built switcher, with recent workspaces first, beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#calendar-or-schedule-pageCalendar or Schedule Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built date view breaks from the wireframe its catalog entry chose? Open the built month grids, agendas, and week lanes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#editor-pageEditor Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built preview screen breaks from the wireframe its catalog entry chose? Open the built form-plus-preview splits and device frames beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#error-or-not-found-pageError or Not-Found Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built dead end breaks from the wireframe its catalog entry chose? Open the built not-found, outage, and refused views beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#form-pageForm Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built input screen breaks from the wireframe its catalog entry chose? Open the built sections, steppers, and save bars beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#home-pageHome Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built start screen breaks from the wireframe its catalog entry chose? Open the built queues, tiles, and next actions beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#list-pageList Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built collection screen breaks from the wireframe its catalog entry chose? Open the built searches, views, and play modes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#live-operations-pageLive Operations Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built wall display breaks from the wireframe its catalog entry chose? Open the built counts, cost centres, and exception views beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#name-the-page-in-one-headingName the Page in One Headingruleanyfrontend-ui-fullruleguidanceWhich built screen splits its title across headings or omits it? Open every built page and read its top-level heading.
litespec/frontend/patterns/page-frames#onboarding-or-setup-pageOnboarding or Setup Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built first-run guide breaks from the wireframe its catalog entry chose? Open the built checklists, wizards, and templates beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#outcome-pageOutcome Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built result screen breaks from the wireframe its catalog entry chose? Open the built statements, references, and refusal outcomes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#queueQueuepatternanyfrontend-ui-fulldefaultguidanceWhich built batch-selection screen breaks from the wireframe its catalog entry chose? Open the built select-all banners and play modes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#record-drawerRecord Drawerpatternanyfrontend-ui-fulldefaultguidanceWhich built side record breaks from the wireframe its catalog entry chose? Open the built read-only, edit, and timeline drawers beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#record-pageRecord Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built single-record screen breaks from the wireframe its catalog entry chose? Open the built summaries, tabs, and asides beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#report-pageReport Pagepatternanyfrontend-ui-fulldefaultguidanceWhich built figures screen breaks from the wireframe its catalog entry chose? Open the built period pickers and breakdown tabs beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#settings-homeSettings Homepatternanyfrontend-ui-fulldefaultguidanceWhich built setup index breaks from the wireframe its catalog entry chose? Open the built grouped links, cards, and checklists beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/page-frames#show-one-primary-action-in-a-page-frameShow One Primary Action in a Page Frameruleanyfrontend-ui-fullruleguidanceWhich built frame carries two primary actions outside rows and overlays? Open every built page frame and count the primary actions.
litespec/frontend/patterns/record-detail#expense-recordExpense Recordpatternanyfrontend-ui-fulldefaultguidanceWhich built worked expense differs from the wireframe its catalog entry chose? Open the built summary, tabs, and phone expense screens beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#hold-built-record-headers-to-one-primary-actionHold Built Record Headers to One Primary Actionruleanyfrontend-ui-fullruleguidanceWhich built record header holds more than one primary action? Open the built record screens and count the primary actions.
litespec/frontend/patterns/record-detail#keep-destructive-commands-out-of-the-primary-placeKeep Destructive Commands Out of the Primary Placeruleanyfrontend-ui-fullruleguidanceWhich built record header hands a destructive command the primary style? Open the headers on built record screens and read each command's tone.
litespec/frontend/patterns/record-detail#previous-and-next-recordPrevious and Next Recordpatternanyfrontend-ui-fulldefaultguidanceWhich built neighbor step differs from the wireframe its catalog entry chose? Open the built chevrons, drawers, and jump searches beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#property-list-with-copyProperty List with Copypatternanyfrontend-ui-fulldefaultguidanceWhich built copyable fact differs from the wireframe its catalog entry chose? Open the built identifiers, hovers, and truncations beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-asideRecord Asidepatternanyfrontend-ui-fulldefaultguidanceWhich built side column differs from the wireframe its catalog entry chose? Open the built history, decisions, and related asides beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-attachmentsRecord Attachmentspatternanyfrontend-ui-fulldefaultguidanceWhich built file section differs from the wireframe its catalog entry chose? Open the built lists, thumbnails, and drop zones beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-change-historyRecord Change Historypatternanyfrontend-ui-fulldefaultguidanceWhich built audit trail differs from the wireframe its catalog entry chose? Open the built tabs, panels, and per-field histories beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-headerRecord Headerpatternanyfrontend-ui-fulldefaultguidanceWhich built title row differs from the wireframe its catalog entry chose? Open the built states, facts, and overflow menus beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-header-on-a-phoneRecord Header on a Phonepatternanyfrontend-ui-fulldefaultguidanceWhich built narrow title row differs from the wireframe its catalog entry chose? Open the built stacked headers and foot action bars at 390 pixels beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-notesRecord Notespatternanyfrontend-ui-fulldefaultguidanceWhich built annotation feed differs from the wireframe its catalog entry chose? Open the built composers, mixes, and resolved piles beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-summaryRecord Summarypatternanyfrontend-ui-fulldefaultguidanceWhich built fact block differs from the wireframe its catalog entry chose? Open the built key values, figures, and tiles beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-tabsRecord Tabspatternanyfrontend-ui-fulldefaultguidanceWhich built facet row differs from the wireframe its catalog entry chose? Open the built counts, icons, and phone selects beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-the-reader-may-not-changeRecord the Reader May Not Changepatternanyfrontend-ui-fulldefaultguidanceWhich built locked record differs from the wireframe its catalog entry chose? Open the built refused commands, banners, and withheld fields beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#record-timelineRecord Timelinepatternanyfrontend-ui-fulldefaultguidanceWhich built event feed differs from the wireframe its catalog entry chose? Open the built day groups, diffs, and note mixes beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#related-recordsRelated Recordspatternanyfrontend-ui-fulldefaultguidanceWhich built relation link differs from the wireframe its catalog entry chose? Open the built chains, cards, and counts beside the catalog entry recording the chosen option and its reason.
litespec/frontend/patterns/record-detail#show-one-primary-action-in-a-record-headerShow One Primary Action in a Record Headerruleanyfrontend-ui-fullrulecheckablelitespec-maintain validate emits PATTERN_INVALID for a wireframe header holding two primary actions.
litespec/frontend/rendering#build-the-server-data-cache-per-requestBuild the Server Data Cache per Requestruleanyfrontend-uianyfullruleguidanceWhich server rendering reuses a data cache across requests instead of constructing it inside each request? Look in the server request setup.
litespec/frontend/rendering#keep-address-parameters-validated-by-a-schemaKeep Address Parameters Validated by a Schemaruleanyfrontend-uiroutefullruleguidanceWhich routes leave address parameters, filters, or page outside a validated schema? Look in the route parameter schemas.
litespec/frontend/rendering#keep-authenticated-caching-explicitKeep Authenticated Caching Explicitruleanyfrontend-uicomponent, routefullruleguidanceWhich cached actor-specific reads lack a declared cache key, partition, invalidation owner, or security review beside the read definition? Look in the read definitions setting cache keys.
litespec/frontend/rendering#keep-layouts-stableKeep Layouts Stableconventionanyfrontend-uiroutefulldefaultguidanceWhich layouts carry a provider that some child route never needs? Look in the layout definitions.
litespec/frontend/rendering#keep-proxy-behavior-at-the-edgeKeep Proxy Behavior at the Edgeruleanyfrontend-uianyfullruleguidanceWhich proxy rules decide identity or authorization instead of routing only? Look in the proxy rules.
litespec/frontend/rendering#keep-server-only-code-identifiableKeep Server-Only Code Identifiableconventionanyfrontend-uianyfulldefaultguidanceWhich modules reading request headers, cookies, or server secrets sit in files unnamed or unplaced for the server? Look in the server file names and places.
litespec/frontend/rendering#load-each-route-and-each-language-separatelyLoad Each Route and Each Language Separatelyruleanyfrontend-uiroutefullruleguidanceWhich routes or languages ship in a shared download, or load an icon set or language whole? Look in the route bundles and the dictionary loader.
litespec/frontend/rendering#load-route-data-before-renderingLoad Route Data Before Renderingruleanyfrontend-uiroutefullruleguidanceWhich routes render before their reads load through the one shared cache? Look in the route loaders and the cache definitions.
litespec/frontend/rendering#prefetch-a-route-on-intentPrefetch a Route on Intentruleanyfrontend-uiroutefullruleguidanceWhich route prefetches land outside the shared cache, or feed a second router cache? Look in the router prefetch wiring.
litespec/frontend/rendering#read-route-data-from-the-route-cacheRead Route Data from the Route Cacheruleanyfrontend-uiroutefullruleguidanceWhich views read under another key than the cache entry their route filled, or handle a failed read outside the route error boundary? Look in the view data reads and the route loaders.
litespec/frontend/rendering#represent-route-statesRepresent Route Statesruleanyfrontend-uiroutefullruleguidanceWhich data-driven routes miss a loading, empty, error, forbidden, not-found, or ready behavior, or leave an absent address outside the shared outcome page? Look in the route state definitions.
litespec/frontend/rendering#use-a-shared-layout-for-a-shellUse a Shared Layout for a Shellconventionanyfrontend-uiroutefulldefaultguidanceWhich shells sit outside a shared layout, or add an address segment? Look in the layout definitions.
litespec/frontend/structure#keep-a-route-entry-thinKeep a Route Entry Thinruleanyfrontend-uiroutefullruleguidanceWhich route entries hold reusable logic or reference another route entry? Look in the route entries.
litespec/frontend/structure#keep-a-use-case-folder-flatKeep a Use Case Folder Flatruleanyfrontend-uianyfullruleguidanceWhich use-case folders hold a subfolder? Look in the module tree.
litespec/frontend/structure#keep-applications-independentKeep Applications Independentruleanyfrontend-uianyfullruleguidanceWhich frontends import source from another frontend? Look in the import statements.
litespec/frontend/structure#keep-shared-packages-non-application-specificKeep Shared Packages Non Application Specificruleanyfrontend-uianyfullruleguidanceWhich shared packages hold page composition, feature state, authentication policy, or application components? Look in the shared package sources.
litespec/frontend/structure#locate-cross-route-values-in-the-frameLocate Cross-Route Values in the Frameruleanyfrontend-uianyfullruleguidanceWhich client configuration, session read, language choice, permissions, formatting, shell data, or browser uses sit outside the frame? Look in the frame.
litespec/frontend/structure#mark-each-route-with-its-screenMark Each Route with Its Screenruleanyfrontend-uiroutefullrulecheckablelitespec model check reports mark-missing (level S) for a route entry with no mark, mark-count-invalid (level S) for one with more than one, and mark-unknown (level S) for a mark naming no screen of the route's entry point.
litespec/frontend/structure#mirror-the-backend-use-case-path-in-kebab-caseMirror the Backend Use Case Path in Kebab Caseruleanyfrontend-uianyfullruleguidanceWhich use-case folders sit outside {module}/{aggregate}/{use-case}/ in kebab case, or resolve to no backend folder of the same names? Look in the module tree and the structure test proving the mirror.
litespec/frontend/structure#order-imports-from-routes-to-shared-packagesOrder Imports from Routes to Shared Packagesruleanyfrontend-uianyfullruleguidanceWhich imports point against the route to module to frame to shared package direction? Look in the import statements.
litespec/frontend/structure#organize-a-frontend-into-frame-routes-and-modulesOrganize a Frontend into Frame, Routes, and Modulesruleanyfrontend-uianyfullruleguidanceWhich frontend files sit outside the frame, routes, and use-case modules split? Look in the frontend folder roots.
litespec/frontend/structure#place-a-shared-file-in-the-folder-that-owns-itPlace a Shared File in the Folder That Owns Itruleanyfrontend-uianyfullruleguidanceWhich files read by several use cases sit outside the narrowest folder holding every reader? Look in the aggregate and module folders.
litespec/frontend/structure#place-tests-at-their-ownership-boundaryPlace Tests at Their Ownership Boundaryconventionanyfrontend-uitestfulldefaultguidanceWhich logic tests sit outside their module, and which browser suites sit outside the one tests root per frontend? Look in the module folders and the tests roots.
litespec/frontend/structure#reject-a-folder-name-that-owns-nothingReject a Folder Name That Owns Nothingruleanyfrontend-uianyfullruleguidanceWhich folders under an application's src carry a refused name? Look in the application folder tree.
litespec/frontend/structure#use-explicit-public-entry-points-for-shared-packagesUse Explicit Public Entry Points for Shared Packagesconventionanyfrontend-uianyfulldefaultguidanceWhich application imports reach past the documented public entry points of shared packages? Look in the application imports and the package manifests.
litespec/frontend/testing#assert-each-declared-refusal-by-its-codeAssert Each Declared Refusal by Its Coderuleanytests-fullruleguidanceWhich declared refusals do no evidence specifications reach and assert by result code? Look in the evidence specifications.
litespec/frontend/testing#assert-the-result-a-scenario-ends-inAssert the Result a Scenario Ends Inruleanytests-fullrulecheckablelitespec model check reports proves-unreached (level S) for a browser test reaching the screen whose assertions in the same test hold neither the refusal code nor the success result's declared text or code.
litespec/frontend/testing#isolate-browser-testsIsolate Browser Testsruleanytests-fullruleguidanceWhich browser tests depend on another test's data, authentication context, or expected state? Look in the browser specifications.
litespec/frontend/testing#keep-mocks-at-owned-boundariesKeep Mocks at Owned Boundariesruleanytests-fullruleguidanceWhich mocks replace generated contract types, private functions, or stack-named libraries? Look in the test doubles.
litespec/frontend/testing#keep-test-support-narrowKeep Test Support Narrowconventionanytests-fulldefaultguidanceWhich test support files hold more than render helpers, one shared API helper, and locator helpers? Look in the test support files.
litespec/frontend/testing#mark-the-scenario-a-browser-test-provesMark the Scenario a Browser Test Provesruleanytests-fullrulecheckablelitespec model check reports mark-unknown (level S) for a proves annotation naming no record a test may prove, or naming a journey.
litespec/frontend/testing#match-test-level-to-riskMatch Test Level to Riskruleanytests-fullruleguidanceWhich pure logic lacks a logic test, which navigation or integration lacks a browser specification, and which address lacks the route contract? Look in the test files beside the modules and under the tests roots.
litespec/frontend/testing#name-the-journey-a-journey-test-walksName the Journey a Journey Test Walksruleanytests-fullruleguidanceWhich browser tests that walk several screens carry a journey annotation naming the journey and a proves mark for each scenario they drive and assert? Look in the browser tests and their annotations.
litespec/frontend/testing#prove-each-scenario-at-one-boundaryProve Each Scenario at One Boundaryruleanytests-fullrulecheckablelitespec model check reports proves-duplicate (level A) for a scenario with proves marks on more than one test.
litespec/frontend/testing#prove-the-module-mirror-in-a-structure-testProve the Module Mirror in a Structure Testruleanytests-fullruleguidanceWhich module folders does the structure test fail to resolve to backend use-case folders, and which refused folders does it name? Look in the structure test.
litespec/frontend/testing#reach-a-screen-that-offers-the-scenarios-use-caseReach a Screen That Offers the Scenario's Use Caseruleanytests-fullrulecheckablelitespec model check reports proves-unreached (level S) for a browser test whose page.goto targets match no screen offering the claimed scenario's use case.
litespec/frontend/testing#read-the-deployment-for-its-identifiersRead the Deployment for Its Identifiersconventionanytests-fulldefaultguidanceWhich browser tests hard-code a record identifier instead of reading it from the running deployment? Look in the browser specifications.
litespec/frontend/testing#run-browser-checks-through-the-command-lineRun Browser Checks Through the Command Lineruleanytests-fullruleguidanceWhich browser suites run outside the command line, or without per-route and per-file addressing? Look in the suite runner and the CI invocation.
litespec/frontend/testing#test-observable-statesTest Observable Statesruleanytests-fulladviceguidanceWhich tests assert internal state instead of observable behavior in the states their situation reaches? Look in the test assertions.
litespec/frontend/testing#use-network-mocks-for-component-testsUse Network Mocks for Component Testsruleanytests-fullruleguidanceWhich component or logic tests needing HTTP answer without contract-generated network mocks, or with the generated client out of the path? Look in the component tests and the mock generation.
litespec/frontend/ui#check-every-routeCheck Every Routeruleanyfrontend-uiroutefullruleguidanceWhich discovered routes fail a route suite check? Look in the suite output and the CI job logs.
litespec/frontend/ui#compose-each-route-from-one-floorplanCompose Each Route from One Floorplanruleanyfrontend-uiroutefullruleguidanceWhich routes render zero or several floorplans without recording a freestyle decision? Look in the route sources and the suite output reading the floorplan name from each frame.
litespec/frontend/ui#declare-a-closed-floorplan-setDeclare a Closed Floorplan Setruleanyfrontend-uianyfullruleguidanceWhich floorplans miss the design contract Patterns section or their when-to-use rule? Look in the design contract.
litespec/frontend/ui#derive-each-page-type-from-a-named-referenceDerive Each Page Type from a Named Referenceruleanyfrontend-uiroutefullruleguidanceWhich routes name neither their page type reference nor, for a freestyle route, their decision record? Look in the route sources.
litespec/frontend/ui#govern-behavior-packagesGovern Behavior Packagesruleanyfrontend-uianyfullruleguidanceWhich behavior packages name no decision record justifying them, or render outside baseline components and tokens? Look in the package declarations and the decision records.
litespec/frontend/ui#hold-the-declared-base-colorHold the Declared Base Colorruleanyfrontend-uianyfullruleguidanceWhich token values sit outside the declared baseline without a recorded exception? Look in the token definitions and the exception records.
litespec/frontend/ui#keep-a-blocked-command-visible-with-its-reasonKeep a Blocked Command Visible with Its Reasonconventionanyfrontend-uicomponent, routefulldefaultguidanceWhich commands blocked only by state or role vanish instead of staying visible and disabled with the reason beside them? Look in the command surfaces.
litespec/frontend/ui#keep-layout-inside-floorplansKeep Layout Inside Floorplansruleanyfrontend-uiroutefullruleguidanceWhich route files declare layout outside floorplan and display composites? Look in the route sources.
litespec/frontend/ui#keep-separators-at-the-subtle-stepKeep Separators at the Subtle Stepruleanyfrontend-uianyfullruleguidanceWhich structural separators or input borders run darker than the published border step? Look in the token definitions and the rendered separators.
litespec/frontend/ui#keep-tokens-in-one-definitionKeep Tokens in One Definitionruleanyfrontend-uianyfullruleguidanceWhich applications declare their own token value, and which shipped definitions carry a literal color? Look in the application and shared token definitions.
litespec/frontend/ui#pin-the-baseline-in-the-shared-packagePin the Baseline in the Shared Packageruleanyfrontend-uianyfullruleguidanceWhich pinned manifest baselines install outside the shared UI package, or install more than once? Look in the shared package manifest and lock, and the application manifests.
litespec/frontend/ui#prove-every-result-a-route-callsProve Every Result a Route Callsruleanyfrontend-uiroutefullrulecheckablelitespec model check reports refusal-sentence-missing (level A) for a refusal reachable through a screen's computed calls with neither a dictionary sentence nor a browser test asserting its code.
litespec/frontend/ui#prove-ui-behavior-and-appearanceProve UI Behavior and Appearanceruleanyfrontend-uianyfullruleguidanceWhich changes name no evidence the matrix assigns to their class? Look in the change descriptions and the named evidence.
litespec/frontend/ui#publish-a-design-contractPublish a Design Contractruleanyfrontend-uianyfullrulecheckablelitespec model check reports [litespec/frontend/ui#publish-a-design-contract] for a missing contract, a missing metadata block, a package mismatch, or a missing required section. Run it at the consumer root.
litespec/frontend/ui#record-a-freestyle-routeRecord a Freestyle Routeruleanyfrontend-uiroutefullruleguidanceWhich freestyle routes name no decision record justifying their layout? Look in the freestyle routes and the decision records.
litespec/frontend/ui#record-a-frontend-outside-the-controlled-contractRecord a Frontend Outside the Controlled Contractruleanyfrontend-uirecord:entry-pointfullruleguidanceWhich frontends outside the controlled platforms declare no entry point record naming their platform and replacement boundaries? Look in the entry point records.
litespec/frontend/ui#restrict-styling-to-semantic-tokensRestrict Styling to Semantic Tokensruleanyfrontend-uianyfullruleguidanceWhich styles use raw values instead of semantic tokens? Look in the stylesheets and the shared package definition.
litespec/frontend/ui#select-a-command-surface-by-sizeSelect a Command Surface by Sizeruleanyfrontend-uicomponent, routefullruleguidanceWhich commands use a surface other than the one the Concepts table assigns to their input? Look in the command surfaces.
litespec/frontend/ui#select-a-tone-from-the-closed-setSelect a Tone from the Closed Setruleanyfrontend-uicomponent, routefullruleguidanceWhich applications lack a state-to-tone mapping, or map a state outside the exhaustive table of glossary terms? Look in the application state mapping.
litespec/frontend/ui#select-one-visual-authoritySelect One Visual Authorityruleanyfrontend-uianyfullrulecheckablelitespec model check reports controlled frontends with no paths.uiPackage in .litespec/project.json, and [litespec/frontend/ui#select-one-visual-authority] for a second general-purpose visual dependency. Run it at the consumer root.
litespec/frontend/ui#show-the-trace-id-in-error-detailShow the Trace ID in Error Detailruleanyfrontend-uicomponent, routefullruleguidanceWhich visible errors hide the trace identifier from copyable detail? Look in the error surfaces.
litespec/frontend/ui#use-the-product-profilesUse the Product Profilesconventionanyfrontend-uianyfulldefaultcheckablelitespec model check reports a controlled frontend with no ui block declaring its density profile or a profile outside public-light, application-balanced, admin-dense. Run it at the consumer root.
litespec/frontend/web/components#keep-component-boundaries-typedKeep Component Boundaries Typedruleanyfrontend-uicomponentfullrulecheckablesvelte-check fails on an untyped Svelte prop, event, or snippet, and pnpm type-check fails on an untyped React prop or event.
litespec/frontend/web/components#refuse-page-code-violations-with-eslintRefuse Page Code Violations with ESLintruleanyfrontend-uicomponentfullrulecheckablepnpm eslint reports no refused element, binding, or layout utility outside visual files in route and module code.
litespec/frontend/web/rendering#define-route-metadata-deliberatelyDefine Route Metadata Deliberatelyruleanyfrontend-uiroutefullruleguidanceWhich public routes miss a title, description, canonical address, or indexing policy, and which private routes miss a noindex marker? Look in the route metadata.
litespec/frontend/web/structure#generate-the-records-file-into-the-frameGenerate the Records File into the Frameruleanyfrontend-uianyfullrulecheckablelitespec model render writes each frontend's file into its frame from its own entry points, and litespec model check reports mark-unknown (level S) for a mark naming a use case or screen outside its frontend's entry points.
litespec/frontend/web/structure#locate-the-frame-in-the-app-folderLocate the Frame in the App Folderruleanyfrontend-uianyfullruleguidanceWhich cross-route values or browser uses sit outside the frame folder their stack page names? Look in the frame folder and the route and module sources.
litespec/frontend/web/structure#mark-each-use-case-module-with-its-use-caseMark Each Use-Case Module with Its Use Caseruleanyfrontend-uianyfullrulecheckablelitespec model check reports mark-missing (level S) for a use-case folder exporting no litespec constant, and mark-unknown (level S) for one naming a use case its path does not mirror; for a folder at {module}/use-cases/{use-case}/ the mirrored use case is the one its module and use-case segments name, with no aggregate segment.
litespec/frontend/web/structure#refuse-stack-specific-folder-namesRefuse Stack-Specific Folder Namesruleanyfrontend-uianyfullruleguidanceWhich React folders take the name lib, and which Svelte folders under src/lib take the name stores? Look in the frontend tree.
litespec/frontend/web/structure#use-the-frontend-application-treeUse the Frontend Application Treeruleanyfrontend-uianyfullruleguidanceWhich frontend trees break from the frame, routes, and modules layout their stack page states? Look in the frontend tree.
litespec/frontend/web/structure#use-the-generated-route-treeUse the Generated Route Treeconventionanyfrontend-uiroutefulldefaultguidanceWhich build or type-check scripts skip the router's generate command, and which generated artifacts stay tracked? Look in the package scripts and the version control status.
litespec/frontend/web/svelte/components#write-components-in-runes-modeWrite Components in Runes Moderulesveltefrontend-uicomponentfullrulecheckablesvelte-check fails on a legacy reactive statement or an untyped $props call.
litespec/frontend/web/testing#refuse-a-test-without-an-assertionRefuse a Test Without an Assertionruleanytests-fullrulecheckablepnpm eslint reports vitest/expect-expect for each test that contains no assertion.
litespec/frontend/web/ui#mark-the-route-suite-and-goldens-with-what-they-proveMark the Route Suite and Goldens with What They Proveruleanyfrontend-uitestfullrulecheckablelitespec model check reports mark-missing (level S) for a test in a frontend's routeSuite or visualGoldens with no proves annotation, and mark-unknown (level S) for one naming a scenario.
litespec/frontend/web/ui#publish-one-registry-item-per-floorplanPublish One Registry Item per Floorplanruleanyfrontend-uianyfullrulecheckableshadcn build on React or shadcn-svelte build on Svelte exits zero, and registry.json lists one item per declared floorplan.
litespec/frontend/web/ui#restrict-css-decisionsRestrict CSS Decisionsruleanyfrontend-uicomponent, routefullrulecheckablelitespec model check reports each arbitrary value, raw palette value, important modifier, and inline style with its file.
litespec/frontend/web/ui#track-source-changesTrack Source Changesruleanyfrontend-uianyfullrulecheckablelitespec model check recomputes each digest and reports changed primitive source.
litespec/frontend/web/ui#use-the-source-update-procedureUse the Source Update Procedureconventionanyfrontend-uianyfulldefaultguidanceWhich update branches miss the pinned CLI, the dry-run output, or the separate review of regenerated files and local composites? Look in the update branches.

quality#

IDProvisionKindStackLayerArtifactConformanceStrengthMarkEvidence
litespec/quality/ci#check-documentation-on-every-pull-requestCheck Documentation on Every Pull Requestruleanyoperations-fullrulecheckablelitespec model check fails on a page that breaks the page contract, configuration, language, or prose rules.
litespec/quality/ci#keep-generated-contracts-freshKeep Generated Contracts Freshruleanyoperations-fullruleguidanceRegenerating OpenAPI and API types from source on the pull request produces no diff.
litespec/quality/ci#refuse-backend-calls-outside-the-generated-clientRefuse Backend Calls Outside the Generated Clientruleanyoperations-fullruleguidanceThe contract job report shows a clean regeneration and a lint report with no backend call outside the generated client.
litespec/quality/ci#run-applicable-gates-on-every-pull-requestRun Applicable Gates on Every Pull Requestruleanyoperations-fullruleguidanceThe pull request checks list shows each selected job passing, with skipped jobs recorded with their reason.
litespec/quality/ci#run-measured-checks-on-every-pull-requestRun Measured Checks on Every Pull Requestruleanyoperations-fullrulecheckablelitespec model check reports requirement-measure-missing for a measured requirement with no check or no passing run.
litespec/quality/operations#apply-schema-changes-outside-request-startupApply Schema Changes Outside Request StartupruleanyoperationsmigrationfullruleguidanceThe schema step runs before traffic shifts, with no schema work at replica startup.
litespec/quality/operations#bound-external-callsBound External CallsruleanyoperationsanyfullruleguidanceEach network call declares a timeout, a cancellation path, and bounded retries for idempotent operations only.
litespec/quality/operations#cover-every-quality-requirement-with-an-alert-or-a-checkCover Every Quality Requirement with an Alert or a Checkruleanyoperationsrecord:requirementfullrulecheckablelitespec model check reports quality-alert-missing (level G) for a quality requirement that no alert rule names in its requirement label, whose check matches no measured-check or check result the model read, and that no gap exception covering quality-alert-missing lists in its subject.
litespec/quality/operations#emit-correlated-diagnosticsEmit Correlated DiagnosticsruleanyoperationsanyfullruleguidanceLogs and traces carry correlation identifiers, and metrics carry service labels.
litespec/quality/operations#keep-production-secrets-out-of-the-repositoryKeep Production Secrets Out of the RepositoryruleanyoperationsanyfullruleguidanceProduction values live on the host, with only placeholders in the repository example file.
litespec/quality/operations#keep-runbooks-near-project-documentationKeep Runbooks Near Project Documentationconventionanyoperationsrecord:runbookfulldefaultguidanceEach runbook sits under .litespec/implementation/runbooks/ or its module's runbooks folder with its fields, or the runbook-layout convention names another arrangement.
litespec/quality/operations#list-every-sub-processorList Every Sub-Processorruleanyoperationsrecord:actorfullruleguidanceEach provider the release calls appears on the generated sub-processor list.
litespec/quality/operations#name-every-runbook-from-an-alert-job-reaction-or-failure-policyName Every Runbook from an Alert, Job, Reaction or Failure Policyruleanyoperationsrecord:runbookfullrulecheckablelitespec model check reports runbook-unused (level A) for a runbook record that no alert label, job, reaction or failure policy names.
litespec/quality/operations#name-the-requirement-and-runbook-on-every-alertName the Requirement and Runbook on Every Alertruleanyoperationsanyfullrulecheckablelitespec model check reports alert-link-missing (level S) for an alert rule in the files paths.alerts names whose requirement label is missing or names no quality requirement, or whose runbook label is missing or names no runbook.
litespec/quality/operations#operate-background-work-independentlyOperate Background Work IndependentlyruleanyoperationsanyfullruleguidanceThe Worker publishes its own health, rates, counts, oldest pending age, and shutdown behavior.
litespec/quality/operations#pass-trace-context-in-the-w3c-formatPass Trace Context in the W3C FormatruleanyoperationsanyfullruleguidanceOne propagator reads and writes W3C trace context on every host.
litespec/quality/operations#point-each-operations-file-at-its-decisionPoint Each Operations File at Its Decisionruleanyoperationsanyfullrulecheckablelitespec model check reports mark-missing (level S) for a file in paths.operations with no follows mark and mark-unknown (level S) for a mark naming no decision, exception, or provision, and counts the file toward decision-unimplemented.
litespec/quality/operations#point-every-runtime-record-at-its-use-casePoint Every Runtime Record at Its Use CaseruleanyoperationsanyfullruleguidanceWhich pipeline stage reads the registry and stamps litespec.use_case on the span, the log scope, and the error report of each mediated message? Look at the mediator pipeline and one error report per host.
litespec/quality/operations#separate-liveness-and-readinessSeparate Liveness and ReadinessruleanyoperationsanyfullruleguidanceLiveness answers without dependency checks while readiness includes the critical ones.
litespec/quality/operations#start-the-stack-with-one-local-commandStart the Stack with One Local CommandruleanyoperationsanyfullruleguidanceOne command named in the consumer AGENTS.md starts WebApi, PostgreSQL, the frontends, and the Worker.
litespec/quality/security#apply-erasure-and-export-to-every-storeApply Erasure and Export to Every Storeruleanyapplicationuse-casefullruleguidanceErasure and export reach every store on the inventory, with backups expiring inside their bound.
litespec/quality/security#authorize-each-target-resourceAuthorize Each Target Resourceruleanyapplicationuse-case, command-handler, query-handlerfullruleguidanceEach protected operation passes the application guard from its use case's declared permissions.
litespec/quality/security#bound-abuse-at-exposed-endpointsBound Abuse at Exposed EndpointsruleanyapplicationendpointfullruleguidanceEach public, authentication, webhook, search, and upload endpoint declares its setting with key and rejection response.
litespec/quality/security#derive-the-actor-from-claimsDerive the Actor from Claimsruleanyapplicationcommand-handler, query-handler, endpointfullruleguidanceActor resolution in WebApi maps verified claims through the one current-actor accessor.
litespec/quality/security#keep-a-personal-data-inventory-per-storeKeep a Personal-Data Inventory per StoreruleanyapplicationanyfullruleguidanceThe inventory names the fields, purposes, and retention of each store holding personal data.
litespec/quality/security#keep-backend-authentication-provider-neutralKeep Backend Authentication Provider-NeutralruleanyapplicationanyfullruleguidanceThe backend authentication setup validates issuer, audience, signature, lifetime, and required claims, with no identity header accepted.
litespec/quality/security#keep-one-limit-store-across-replicasKeep One Limit Store Across ReplicasruleanyapplicationanyfullruleguidanceThe deployment reads rate and concurrency counters from one store on every replica.
litespec/quality/security#keep-personal-data-out-of-logsKeep Personal Data Out of LogsruleanyapplicationanyfullruleguidanceLogs, traces, and diagnostic records carry no personal data in clear.
litespec/quality/security#keep-secrets-out-of-tracked-and-observable-dataKeep Secrets Out of Tracked and Observable DataruleanyapplicationanyfullruleguidanceSource, logs, traces, messages, files, URLs, snapshots, layers, and browser storage hold no secret.
litespec/quality/security#keep-secure-headers-in-host-configurationKeep Secure Headers in Host ConfigurationconventionanyapplicationanyfulldefaultguidanceThe secure headers sit in one host location, or the secure-headers convention names another arrangement.
litespec/quality/security#limit-public-error-detailLimit Public Error DetailruleanyapplicationendpointfullruleguidanceEach public error carries the HTTP API error contract shape.
litespec/quality/security#minimize-sensitive-dataMinimize Sensitive Dataruleanyapplicationuse-case, command-handler, query-handlerfullruleguidanceEach use case collects, returns, logs, exports, and retains only its declared fields.
litespec/quality/security#parameterize-database-inputParameterize Database InputruleanyapplicationrepositoryfullruleguidanceEach external value reaches the database through a query API call or a SQL parameter.
litespec/quality/security#protect-browser-boundariesProtect Browser Boundariesruleanyapplicationcomponent, route, formfullruleguidanceEach frontend ships framework escaping, a Content Security Policy, secure headers, redirect validation, forgery protection, and rich-content sanitization.
litespec/quality/security#protect-live-data-at-restProtect Live Data at RestruleanyapplicationanyfullruleguidanceEach live store carries encryption, or an exception record covers this provision.
litespec/quality/security#record-security-audit-eventsRecord Security Audit EventsruleanyapplicationanyfullruleguidanceEach security audit event records actor, action, target, outcome, timestamp, trace identifier, and reason.
litespec/quality/security#report-a-breach-within-its-deadlineReport a Breach Within Its DeadlineruleanyapplicationanyfullruleguidanceThe breach procedure names the person who acts, a backup person, and the deadline the constraint record states.
litespec/quality/security#restrict-a-protected-collection-in-the-databaseRestrict a Protected Collection in the Databaseruleanyapplicationquery-handlerfullruleguidanceEach protected collection query carries its authorization scope as a database predicate before paging.
litespec/quality/security#restrict-cross-origin-accessRestrict Cross-Origin AccessruleanyapplicationanyfullruleguidanceThe cross-origin policy lists origins, methods, headers, and credential mode with no wildcard origin.
litespec/quality/security#rotate-production-secretsRotate Production SecretsruleanyapplicationanyfullruleguidanceEach production secret carries a secret-inventory entry with location and rotation date beside its revocation runbook.
litespec/quality/security#scan-every-pull-request-with-a-free-static-analyzerScan Every Pull Request with a Free Static AnalyzerruleanyapplicationanyfullruleguidanceThe static analysis report for the pull request shows its findings with a gap exception for each accepted one.
litespec/quality/security#scan-every-release-with-the-zap-baselineScan Every Release with the ZAP BaselineruleanyapplicationanyfullruleguidanceThe ZAP result file under TestResults/ shows no medium or high alert for the pull request.
litespec/quality/security#set-an-asvs-level-as-the-security-targetSet an ASVS Level as the Security Targetruleanyapplicationrecord:requirementfullruleguidanceThe security quality requirement names its ASVS level with a passing check.
litespec/quality/security#test-the-resource-authorization-matrixTest the Resource Authorization MatrixconventionanyapplicationtestfulldefaultguidanceEach protected operation passes every caller in the matrix, or the authorization-matrix convention names another set.
litespec/quality/security#treat-an-unsalted-digest-as-personal-dataTreat an Unsalted Digest as Personal DataruleanyapplicationanyfullruleguidanceEach unsalted digest of personal data receives the handling its source data receives.
litespec/quality/security#use-deny-by-default-policiesUse Deny-by-Default PoliciesconventionanyapplicationendpointfulldefaultguidanceNew endpoints require authentication by default, or the endpoint-protection convention names another arrangement.
litespec/quality/security#use-one-current-actor-abstractionUse One Current Actor AbstractionconventionanyapplicationanyfulldefaultguidanceWebApi exposes one current-actor accessor, or the current-actor convention names another arrangement.
litespec/quality/security#validate-at-trust-boundariesValidate at Trust BoundariesruleanyapplicationendpointfullruleguidanceEach trust boundary validates transport shape and file metadata before use.

workspace#

IDProvisionKindStackLayerArtifactConformanceStrengthMarkEvidence
litespec/workspace/config#keep-documentation-directories-out-of-build-artifact-ignore-rulesKeep Documentation Directories Out of Build-Artifact Ignore Rulesconventionanyworkspace-fulldefaultguidanceEach documentation directory stays tracked; git check-ignore reports no match for the record paths under docs/.
litespec/workspace/config#keep-environment-examples-beside-applicationsKeep Environment Examples Beside Applicationsconventionanyworkspace-fulldefaultguidanceEach frontend and deployable host directory holds a .env.example with required names and safe values; where replaced, the project documentation names the central example location.
litespec/workspace/config#keep-local-overrides-untrackedKeep Local Overrides Untrackedconventionanyworkspace-fulldefaultguidanceDeveloper overrides live in ignored local files or a platform secret store, with no second tracked environment-specific source.
litespec/workspace/config#keep-logging-configuration-provider-neutralKeep Logging Configuration Provider-Neutralconventionanyworkspace-fulldefaultguidanceApplication source logs through standard abstractions, with exporter configuration in hosts; where replaced, the host configuration names the project's own logging setup.
litespec/workspace/config#keep-secrets-outside-source-controlKeep Secrets Outside Source Controlruleanyworkspace-fullruleguidanceEach tracked configuration file carries only safe defaults and placeholders; real values live in user secrets or the deployment platform.
litespec/workspace/config#pin-the-javascript-toolchainPin the JavaScript Toolchainruleanyworkspace-fullruleguidanceRoot package.json declares packageManager and a Node.js engine matching the manifest releases; CI provisions the same releases.
litespec/workspace/config#pin-the-react-version-in-the-eslint-flat-configPin the React Version in the ESLint Flat Configruleanyworkspace-fullruleguidanceEach React ESLint flat config sets a concrete settings.react.version.
litespec/workspace/config#use-one-frontend-dependency-graphUse One Frontend Dependency Graphruleanyworkspace-fullruleguidanceThe workspace holds one root package.json, pnpm-workspace.yaml, and pnpm-lock.yaml, with no nested lockfile tracked.
litespec/workspace/config#validate-backend-configuration-at-startupValidate Backend Configuration at Startupruleanyworkspace-fullruleguidanceEach backend section binds a settings type that fails startup on a missing field, a bad range, or a bad format; read the settings types beside the backend host.
litespec/workspace/config#validate-frontend-environment-accessValidate Frontend Environment Accessruleanyworkspace-fullruleguidanceEach frontend reads environment values only through src/lib/env.ts, with server-only values apart from browser-visible ones.
litespec/workspace/dependencies#approve-new-packages-explicitlyApprove New Packages Explicitlyruleanyworkspace-fullrulecheckablelitespec model check reports dependency-undeclared (level S) for a direct package in the bill of materials that the manifest does not pin and no decision admits, and admission-invalid (level G) for an admits entry missing any of its six facts.
litespec/workspace/dependencies#assign-each-baseline-package-to-its-owning-layerAssign Each Baseline Package to Its Owning Layerconventionanyworkspace-fulldefaultguidanceEach baseline package sits in the owning layer the table in this section assigns; where replaced, the admitting decision names the project's own owning layer.
litespec/workspace/dependencies#follow-the-declared-dependency-graphFollow the Declared Dependency Graphruleanyworkspace-fullruleguidanceEach layer and module dependency follows the declared graph; read the references between layer folders under apps/api/src and the imports in apps/.
litespec/workspace/dependencies#keep-application-free-of-provider-packagesKeep Application Free of Provider Packagesruleanyworkspace-fullruleguidanceThe Application layer folders reference only messaging abstractions, read abstractions, and the declared read boundary; read those folders and the manifests that serve them.
litespec/workspace/dependencies#keep-domain-dependency-freeKeep Domain Dependency-Freeruleanyworkspace-fullruleguidanceNo Domain layer folder needs an external package or framework; read the Domain layer folders and the manifests that serve them.
litespec/workspace/dependencies#keep-frontend-applications-isolatedKeep Frontend Applications Isolatedruleanyworkspace-fullruleguidanceNo import in one frontend names another application's source or another module's internal feature files.
litespec/workspace/dependencies#keep-generated-packages-dependency-lightKeep Generated Packages Dependency-Lightconventionanyworkspace-fulldefaultguidanceThe generated API types package carries no dependencies, and the shared client carries only the generator runtime, its query plugin, and those types; where replaced, the client package manifest names the project's own client dependency set.
litespec/workspace/dependencies#keep-providers-in-infrastructureKeep Providers in Infrastructureruleanyworkspace-fullruleguidanceDatabase providers, external SDKs, and resilience, discovery, and serialization adapters appear only in the Infrastructure layer folders; read those folders and the manifests that serve them.
litespec/workspace/dependencies#keep-test-dependencies-in-test-projectsKeep Test Dependencies in Test Projectsconventionanyworkspace-fulldefaultguidanceNo production project manifest references an assertion, substitution, host, container, or architecture-test package; where replaced, the project documentation names the shipped helper and its reason.
litespec/workspace/dependencies#keep-the-approved-web-ui-dependency-boundaryKeep the Approved Web UI Dependency Boundaryruleanyworkspace-fullruleguidanceEach React frontend manifest takes UI packages only from uiBaseline, and each Svelte one only from uiBaselineSvelte, in litespec.manifest.json.
litespec/workspace/dependencies#pin-every-dependency-version-centrallyPin Every Dependency Version Centrallyruleanyworkspace-fullruleguidanceEvery version resolves through central management or the committed lockfile at the manifest pin where one exists; no version sits inline in a module file.
litespec/workspace/naming#align-business-names-across-layersAlign Business Names Across Layersconventionanyworkspacerecord:modulefulldefaultguidanceOne business name for each module spans Domain, Application, endpoints, features, and documentation; where replaced, the project documentation names the project's own per-layer names.
litespec/workspace/naming#anchor-aggregate-owned-types-on-the-aggregate-rootAnchor Aggregate-Owned Types on the Aggregate RootruleanyworkspaceaggregatefullruleguidanceEach aggregate-owned type name in apps/api/src begins with its aggregate root name, through nesting or prefix.
litespec/workspace/naming#avoid-generic-type-namesAvoid Generic Type Namesconventionanyworkspaceaggregate, state-record, value-object, domain-event, use-case, command-handler, query-handler, validator, reaction, port, repository, endpoint, migration, jobfulladviceguidanceEach type name in apps/api/src avoids the listed generic names where a narrower name exists; where replaced, the project documentation names the kept name and its reason.
litespec/workspace/naming#derive-boundary-names-from-the-ubiquitous-termDerive Boundary Names from the Ubiquitous Termconventionanyworkspaceuse-case, endpointfulldefaultguidanceEach route segment and JSON field name derives from its current aggregate or ubiquitous term; where replaced, the project documentation names the project's own boundary naming.
litespec/workspace/naming#group-event-handlers-by-the-fact-they-handleGroup Event Handlers by the Fact They Handleruleanyworkspacereactionfullrulecheckablelitespec model check reports code-placement-drift (level S) for an event handler declared outside the On{Fact} folder its event names.
litespec/workspace/naming#keep-namespaces-aligned-with-foldersKeep Namespaces Aligned with Foldersconventionanyworkspaceaggregate, state-record, value-object, domain-event, use-case, command-handler, query-handler, validator, reaction, port, repository, endpoint, migration, jobfulldefaultguidanceEach namespace starts with its product name and follows the folders beneath the project root; where replaced, the project documentation names the project's own namespace root.
litespec/workspace/naming#name-asynchronous-operations-completelyName Asynchronous Operations Completelyruleanyworkspacecommand-handler, query-handler, validator, reaction, port, repository, endpoint, migration, jobfullruleguidanceEach asynchronous operation name reveals asynchrony, and each cancelable operation signature takes cancellation explicitly; read the public signatures in apps/api/src.
litespec/workspace/naming#name-exceptions-by-failed-ruleName Exceptions by Failed RuleruleanyworkspaceaggregatefullruleguidanceEach exception name states its failed rule, with Domain rejections in {DomainType}{Reason}Exception form leading with the aggregate root.
litespec/workspace/naming#name-repository-variables-after-their-interfaceName Repository Variables After Their Interfaceruleanyworkspacecommand-handler, query-handler, validator, reaction, repository, jobfullrulecheckabledotnet build reports LS2010 for a repository parameter, field, or local whose name does not follow its interface, in the dotnet stack.
litespec/workspace/naming#name-result-parts-after-their-resultName Result Parts After Their Resultruleanyworkspaceuse-casefullrulecheckabledotnet build reports LS2009 for a type a use-case result reaches through its properties whose name does not start with the result name, in the dotnet stack.
litespec/workspace/naming#use-architectural-suffixesUse Architectural Suffixesruleanyworkspacestate-record, domain-event, use-case, command-handler, query-handler, validator, reaction, repository, endpoint, jobfullrulecheckabledotnet build reports LS2005 for a handler missing its command or query suffix, LS2006 for an endpoint missing its suffix, and LS2007 for a reaction or job whose name hides its kind, in the dotnet stack; each other type name in apps/api/src and each frontend file name carries the suffix its role assigns in the Role Suffixes table.
litespec/workspace/naming#use-current-language-featuresUse Current Language Featuresruleanyworkspaceaggregate, state-record, value-object, domain-event, use-case, command-handler, query-handler, validator, reaction, port, repository, endpoint, migration, jobfulladviceguidanceProduction code targets the pinned language version and uses its current constructs; read the toolchain pins and the language idioms in apps/api/src.
litespec/workspace/naming#use-intent-revealing-boolean-namesUse Intent-Revealing Boolean Namesruleanyworkspaceaggregate, state-record, value-object, domain-event, use-case, command-handler, query-handler, validator, reaction, port, repository, endpoint, migration, jobfulladviceguidanceEach boolean property and method name in apps/api/src starts with Is, Has, Can, or a precise verb.
litespec/workspace/naming#use-predictable-frontend-namesUse Predictable Frontend Namesruleanyworkspacecomponent, route, formfullruleguidanceEach frontend folder uses kebab-case, each component file and export uses PascalCase, and each React hook file uses use-{name}.
litespec/workspace/structure#declare-size-and-application-stacks-in-project-configDeclare Size and Application Stacks in Project Configruleanyworkspace-fullruleguidance.litespec/project.json at the workspace root declares size and one stack for the backend and for each frontend.
litespec/workspace/structure#keep-consumer-documentation-at-the-rootKeep Consumer Documentation at the Rootruleanyworkspace-fullruleguidanceEvery record path sits under the root .litespec/ directory.
litespec/workspace/structure#keep-generated-api-contracts-in-packagesKeep Generated API Contracts in Packagesconventionanyworkspace-fulldefaultguidanceGenerated OpenAPI types sit in packages/api-types/ and the thin client in packages/api-client/ once two frontends consume the API; with one frontend, that frontend keeps both outputs.
litespec/workspace/structure#keep-orientation-documents-separate-from-canonical-recordsKeep Orientation Documents Separate from Canonical Recordsruleanyworkspace-fullruleguidanceEach README.md under .litespec/ links to its record and restates no record content.
litespec/workspace/structure#keep-production-and-test-code-separateKeep Production and Test Code Separateruleanyworkspace-fullruleguidanceProduction files sit under apps/api/src/ and test files under apps/api/tests/, with no test helper shipped beside production code.
litespec/workspace/structure#keep-runnable-applications-under-appsKeep Runnable Applications Under Appsruleanyworkspace-fullruleguidanceEach directory under apps/ runs on its own, and each directory under packages/ is imported by an application.
litespec/workspace/structure#keep-the-generated-model-out-of-source-controlKeep the Generated Model Out of Source Controlruleanyworkspace-fullruleguidanceNo path under .litespec/model/ is tracked in git; git ls-files .model prints nothing.
litespec/workspace/structure#limit-shared-typescript-packagesLimit Shared TypeScript Packagesruleanyworkspace-fullruleguidanceEach package under packages/ is imported by at least two consumers, or carries generated output shared by design; read the imports in apps/.
litespec/workspace/structure#name-frontends-by-audienceName Frontends by Audienceconventionanyworkspace-fulldefaultguidanceEach directory under apps/ carries an audience name; where replaced, paths.frontends in .litespec/project.json names the project's own frontend names.
litespec/workspace/structure#use-the-canonical-root-treeUse the Canonical Root Treeruleanyworkspace-fullruleguidanceThe workspace tree matches the canonical tree in this section, with each record at its type's home under .litespec/.

Reference#

None.

Learn#

None.

LiteSpec's Own Records#

None.