@cratis/pi 7.120.0 → 7.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/package/corpus/harnesses/copilot/instructions/authoring-skills.instructions.md +6 -4
  2. package/package/corpus/harnesses/copilot/instructions/code-quality.instructions.md +11 -1
  3. package/package/corpus/harnesses/copilot/instructions/framework.instructions.md +14 -1
  4. package/package/corpus/harnesses/copilot/instructions/git-commits.instructions.md +9 -102
  5. package/package/corpus/harnesses/copilot/instructions/glossary.instructions.md +14 -1
  6. package/package/corpus/harnesses/copilot/instructions/pull-requests.instructions.md +18 -170
  7. package/package/corpus/harnesses/copilot/instructions/review-reports.instructions.md +14 -3
  8. package/package/corpus/harnesses/copilot/instructions/rtk.instructions.md +6 -41
  9. package/package/corpus/prompts/ship-changes.prompt.md +1 -1
  10. package/package/corpus/rules/authoring-skills.md +6 -4
  11. package/package/corpus/rules/code-quality.md +11 -1
  12. package/package/corpus/rules/framework.md +14 -1
  13. package/package/corpus/rules/general.md +11 -10
  14. package/package/corpus/rules/git-commits.md +9 -102
  15. package/package/corpus/rules/glossary.md +14 -1
  16. package/package/corpus/rules/issue-assignment.md +6 -26
  17. package/package/corpus/rules/pull-requests.md +18 -170
  18. package/package/corpus/rules/review-reports.md +14 -3
  19. package/package/corpus/rules/rtk.md +6 -41
  20. package/package/corpus/skills/analyzing-dotnet-performance/SKILL.md +1 -1
  21. package/package/corpus/skills/binlog-generation/SKILL.md +1 -1
  22. package/package/corpus/skills/check-bin-obj-clash/SKILL.md +1 -1
  23. package/package/corpus/skills/coverage-analysis/SKILL.md +1 -1
  24. package/package/corpus/skills/cratis-application-react-specifications/SKILL.md +1 -1
  25. package/package/corpus/skills/cratis-application-slice-conformance/SKILL.md +1 -1
  26. package/package/corpus/skills/cratis-application-slice-specifications/SKILL.md +1 -1
  27. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/SKILL.md +1 -1
  28. package/package/corpus/skills/cratis-arc-command/SKILL.md +1 -1
  29. package/package/corpus/skills/cratis-arc-command-execution/SKILL.md +1 -1
  30. package/package/corpus/skills/cratis-arc-command-kotlin/SKILL.md +1 -1
  31. package/package/corpus/skills/cratis-arc-command-operation/SKILL.md +1 -1
  32. package/package/corpus/skills/cratis-arc-command-typescript/SKILL.md +3 -1
  33. package/package/corpus/skills/cratis-arc-command-validation/SKILL.md +1 -1
  34. package/package/corpus/skills/cratis-arc-ef-core-migration/SKILL.md +1 -1
  35. package/package/corpus/skills/cratis-arc-go/SKILL.md +1 -1
  36. package/package/corpus/skills/cratis-arc-hosting/SKILL.md +1 -1
  37. package/package/corpus/skills/cratis-arc-identity-and-tenancy-kotlin/SKILL.md +1 -1
  38. package/package/corpus/skills/cratis-arc-observable-query-http/SKILL.md +1 -1
  39. package/package/corpus/skills/cratis-arc-query-kotlin/SKILL.md +1 -1
  40. package/package/corpus/skills/cratis-arc-query-paging/SKILL.md +1 -1
  41. package/package/corpus/skills/cratis-arc-query-typescript/SKILL.md +1 -1
  42. package/package/corpus/skills/cratis-arc-react-page/SKILL.md +1 -1
  43. package/package/corpus/skills/cratis-arc-spring-data-kotlin/SKILL.md +1 -1
  44. package/package/corpus/skills/cratis-arc-testing-kotlin/SKILL.md +1 -1
  45. package/package/corpus/skills/cratis-arc-validation-kotlin/SKILL.md +1 -1
  46. package/package/corpus/skills/cratis-arc-validation-typescript/SKILL.md +1 -1
  47. package/package/corpus/skills/cratis-chronicle-cli-operations/SKILL.md +1 -1
  48. package/package/corpus/skills/cratis-chronicle-client-dotnet/SKILL.md +1 -1
  49. package/package/corpus/skills/cratis-chronicle-client-elixir/SKILL.md +1 -1
  50. package/package/corpus/skills/cratis-chronicle-client-go/SKILL.md +1 -1
  51. package/package/corpus/skills/cratis-chronicle-client-kotlin/SKILL.md +1 -1
  52. package/package/corpus/skills/cratis-chronicle-client-typescript/SKILL.md +1 -1
  53. package/package/corpus/skills/cratis-chronicle-compliance/SKILL.md +1 -1
  54. package/package/corpus/skills/cratis-chronicle-decision-reads/SKILL.md +1 -1
  55. package/package/corpus/skills/cratis-chronicle-event-constraints/SKILL.md +1 -1
  56. package/package/corpus/skills/cratis-chronicle-event-modeling/SKILL.md +1 -1
  57. package/package/corpus/skills/cratis-chronicle-event-specifications/SKILL.md +1 -1
  58. package/package/corpus/skills/cratis-chronicle-event-type-migration/SKILL.md +1 -1
  59. package/package/corpus/skills/cratis-chronicle-hosting/SKILL.md +1 -1
  60. package/package/corpus/skills/cratis-chronicle-mcp-inspection/SKILL.md +1 -1
  61. package/package/corpus/skills/cratis-chronicle-multi-tenancy/SKILL.md +1 -1
  62. package/package/corpus/skills/cratis-chronicle-projection/SKILL.md +1 -1
  63. package/package/corpus/skills/cratis-chronicle-reactor/SKILL.md +1 -1
  64. package/package/corpus/skills/cratis-chronicle-read-model/SKILL.md +1 -1
  65. package/package/corpus/skills/cratis-chronicle-read-model-specifications/SKILL.md +1 -1
  66. package/package/corpus/skills/cratis-chronicle-reducer/SKILL.md +1 -1
  67. package/package/corpus/skills/cratis-chronicle-web-workbench/SKILL.md +1 -1
  68. package/package/corpus/skills/cratis-ci-pipeline-performance/SKILL.md +1 -1
  69. package/package/corpus/skills/cratis-cli-terminal-workbench/SKILL.md +1 -1
  70. package/package/corpus/skills/cratis-code-review/SKILL.md +1 -1
  71. package/package/corpus/skills/cratis-commits-and-pull-requests/LICENSE +2 -0
  72. package/package/corpus/skills/cratis-commits-and-pull-requests/SKILL.md +48 -0
  73. package/package/corpus/skills/cratis-commits-and-pull-requests/references/commits.md +110 -0
  74. package/package/corpus/skills/cratis-commits-and-pull-requests/references/pr-description.md +90 -0
  75. package/package/corpus/skills/cratis-commits-and-pull-requests/references/pr-labels-and-release.md +82 -0
  76. package/package/corpus/skills/cratis-commits-and-pull-requests/verification.json +11 -0
  77. package/package/corpus/skills/cratis-components-accessibility/SKILL.md +1 -1
  78. package/package/corpus/skills/cratis-components-common-controls/SKILL.md +1 -1
  79. package/package/corpus/skills/cratis-components-data-surfaces/SKILL.md +1 -1
  80. package/package/corpus/skills/cratis-components-schema-editor/SKILL.md +1 -1
  81. package/package/corpus/skills/cratis-components-stepper-command-dialog/SKILL.md +1 -1
  82. package/package/corpus/skills/cratis-components-styling/SKILL.md +1 -1
  83. package/package/corpus/skills/cratis-components-toolbar/SKILL.md +1 -1
  84. package/package/corpus/skills/cratis-content-length/SKILL.md +1 -1
  85. package/package/corpus/skills/cratis-developer-marketing/SKILL.md +1 -1
  86. package/package/corpus/skills/cratis-discoverability/SKILL.md +1 -1
  87. package/package/corpus/skills/cratis-documentation-writing/SKILL.md +1 -1
  88. package/package/corpus/skills/cratis-engineering-ci-gates/SKILL.md +2 -2
  89. package/package/corpus/skills/cratis-engineering-consolidation-guard/SKILL.md +1 -1
  90. package/package/corpus/skills/cratis-engineering-csharp-conventions/SKILL.md +1 -1
  91. package/package/corpus/skills/cratis-engineering-decision-record/SKILL.md +1 -1
  92. package/package/corpus/skills/cratis-engineering-docs-authoring/SKILL.md +1 -1
  93. package/package/corpus/skills/cratis-engineering-effect-boundaries/SKILL.md +1 -1
  94. package/package/corpus/skills/cratis-engineering-issue-hygiene/SKILL.md +18 -4
  95. package/package/corpus/skills/cratis-engineering-issue-hygiene/verification.json +11 -0
  96. package/package/corpus/skills/cratis-engineering-local-cross-repo-verification/SKILL.md +1 -1
  97. package/package/corpus/skills/cratis-engineering-regression-cluster/SKILL.md +1 -1
  98. package/package/corpus/skills/cratis-engineering-release-trains/SKILL.md +1 -1
  99. package/package/corpus/skills/cratis-engineering-review-rounds/NOTICE +31 -0
  100. package/package/corpus/skills/cratis-engineering-review-rounds/SKILL.md +39 -6
  101. package/package/corpus/skills/cratis-event-model-diagram/SKILL.md +1 -1
  102. package/package/corpus/skills/cratis-fundamentals-concept/SKILL.md +1 -1
  103. package/package/corpus/skills/cratis-fundamentals-concept-go/SKILL.md +1 -1
  104. package/package/corpus/skills/cratis-fundamentals-telemetry/SKILL.md +1 -1
  105. package/package/corpus/skills/cratis-fundamentals-type-discovery/SKILL.md +1 -1
  106. package/package/corpus/skills/cratis-governed-release-methodology/SKILL.md +1 -1
  107. package/package/corpus/skills/cratis-lens-browser-extension/SKILL.md +1 -1
  108. package/package/corpus/skills/cratis-llm-friendly-documentation/SKILL.md +1 -1
  109. package/package/corpus/skills/cratis-multi-service-architecture/SKILL.md +1 -1
  110. package/package/corpus/skills/cratis-multi-service-local-orchestration/SKILL.md +1 -1
  111. package/package/corpus/skills/cratis-orchestration-lanes/SKILL.md +1 -1
  112. package/package/corpus/skills/cratis-orchestration-merge-gates/SKILL.md +1 -1
  113. package/package/corpus/skills/cratis-orleans-jobs/SKILL.md +1 -1
  114. package/package/corpus/skills/cratis-performance-review/SKILL.md +1 -1
  115. package/package/corpus/skills/cratis-release-notes/SKILL.md +1 -1
  116. package/package/corpus/skills/cratis-rtk/LICENSE +2 -0
  117. package/package/corpus/skills/cratis-rtk/SKILL.md +59 -0
  118. package/package/corpus/skills/cratis-rtk/verification.json +11 -0
  119. package/package/corpus/skills/cratis-screenplay-automations-and-translations/SKILL.md +1 -1
  120. package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +1 -1
  121. package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +1 -1
  122. package/package/corpus/skills/cratis-screenplay-delivery-planning/SKILL.md +1 -1
  123. package/package/corpus/skills/cratis-screenplay-discovery/SKILL.md +1 -1
  124. package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +1 -1
  125. package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +1 -1
  126. package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +1 -1
  127. package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +3 -3
  128. package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/SKILL.md +1 -1
  129. package/package/corpus/skills/cratis-screenplay-projections/SKILL.md +1 -1
  130. package/package/corpus/skills/cratis-screenplay-read-surface/SKILL.md +1 -1
  131. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +1 -1
  132. package/package/corpus/skills/cratis-screenplay-scenario-coverage/SKILL.md +1 -1
  133. package/package/corpus/skills/cratis-screenplay-slice-design/SKILL.md +1 -1
  134. package/package/corpus/skills/cratis-screenplay-specifications/SKILL.md +1 -1
  135. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +1 -1
  136. package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +1 -1
  137. package/package/corpus/skills/cratis-screenplay-ui-composition/SKILL.md +6 -3
  138. package/package/corpus/skills/cratis-security-review/SKILL.md +1 -1
  139. package/package/corpus/skills/cratis-social-feed-post/SKILL.md +1 -1
  140. package/package/corpus/skills/cratis-specification-by-example/SKILL.md +1 -1
  141. package/package/corpus/skills/cratis-specifications-csharp/SKILL.md +1 -1
  142. package/package/corpus/skills/cratis-specifications-typescript/SKILL.md +1 -1
  143. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +1 -1
  144. package/package/corpus/skills/cratis-studio-mcp-safety-guidance/SKILL.md +1 -1
  145. package/package/corpus/skills/cratis-technical-examples/SKILL.md +1 -1
  146. package/package/corpus/skills/cratis-writing-voice-and-cadence/SKILL.md +1 -1
  147. package/package/corpus/skills/csharp-refactoring/SKILL.md +1 -1
  148. package/package/corpus/skills/directory-build-organization/SKILL.md +1 -1
  149. package/package/corpus/skills/dotnet-aot-compat/SKILL.md +1 -1
  150. package/package/corpus/skills/dotnet-trace-collect/SKILL.md +1 -1
  151. package/package/corpus/skills/dump-collect/SKILL.md +1 -1
  152. package/package/corpus/skills/eliminate-redundant-restores/SKILL.md +1 -1
  153. package/package/corpus/skills/extension-points/SKILL.md +1 -1
  154. package/package/corpus/skills/filter-syntax/SKILL.md +1 -1
  155. package/package/corpus/skills/guiding-refactoring-with-code-health/SKILL.md +1 -1
  156. package/package/corpus/skills/including-generated-files/SKILL.md +1 -1
  157. package/package/corpus/skills/microbenchmarking/SKILL.md +1 -1
  158. package/package/corpus/skills/msbuild/SKILL.md +1 -1
  159. package/package/corpus/skills/orleans/SKILL.md +1 -1
  160. package/package/corpus/skills/platform-detection/SKILL.md +1 -1
  161. package/package/corpus/skills/profiling/SKILL.md +1 -1
  162. package/package/corpus/skills/run-tests/SKILL.md +1 -1
  163. package/package/corpus/skills/safeguarding-ai-generated-code/SKILL.md +1 -1
  164. package/package/corpus/skills/target-authoring/SKILL.md +1 -1
  165. package/package/corpus/skills/vectorization/SKILL.md +1 -1
  166. package/package/profile-catalog.json +90 -1
  167. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: check-bin-obj-clash
3
- description: 'Detects MSBuild projects with conflicting OutputPath or IntermediateOutputPath and fixes the clash. Use when builds fail with ''Cannot create a file when that file already exists'' or ''The process cannot access the file because it is being used by another process'', fail intermittently but pass on retry, or overwrite outputs in multi-project or multi-targeting builds where bin/obj or project.assets.json collide. Not for OS-level file locking, single-project single-TFM builds, or non-MSBuild build systems.'
3
+ description: Use when multi-project or multi-targeted MSBuild builds collide in bin, obj or project.assets.json, overwrite outputs or fail intermittently with file conflicts. Not for OS-only locks or single-project single-TFM builds.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: coverage-analysis
3
- description: 'Interprets supplied .NET coverage reports (Cobertura, line, branch, condition metrics) or collects coverage on request: partial conditions, plateaus, target arithmetic, project-wide coverage-backed CRAP, and refactoring safety. Use when coverage reports, percentages, or an explicit coverage-collection request are present. Analyzes supplied reports directly without rerunning tests or installing tools. Not for requests with no coverage evidence, hypothetical change-survival questions, CRAP for one named target, writing tests (use cratis-specifications-csharp), or running tests (use run-tests).'
3
+ description: Use when interpreting supplied .NET coverage evidence or an explicit coverage-collection request. Not for hypothetical change-survival questions, CRAP for one target, writing tests or running tests without a coverage request.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-application-react-specifications
3
- description: Write specifications for the React and TypeScript surface of a Cratis application slice — view models, helpers, command orchestration, and narrow component behavior — using Vitest with Mocha-style describe/it, Sinon, and the Chai should interface. Use when specifying React view-model decisions, frontend command orchestration or narrow component interactions with Vitest, Sinon and Chai. Do not use for backend pipeline scenarios (use cratis-application-slice-specifications) or framework package specs (use cratis-specifications-typescript).
3
+ description: Use when specifying a Cratis application's React view-model decisions, command orchestration or narrow component interactions. Not for backend pipeline scenarios or framework-package specifications.
4
4
  license: MIT
5
5
  metadata:
6
6
  cratis-hint-paths: "**/for_*/**/*.ts **/for_*/**/*.tsx"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-application-slice-conformance
3
- description: "Reconcile a Cratis slice's hand-written or gap-filled code and specifications with its contract (the `.play` slice and its specifications, else the agreed slice outline) in both directions: every contracted field, rule, event, read-model property and specification has a realization, and nothing in code lacks authority. Use when implementing a slice, re-delivering after a model change, finishing gap-fill after a render, or reviewing slice code. Not for: deciding what the slice should do (use `cratis-chronicle-event-modeling` or `cratis-screenplay-slice-design`), writing the specifications themselves (use `cratis-application-slice-specifications`), or rendering (use `cratis-screenplay-render-and-gap-fill`)."
3
+ description: Use when finishing or reviewing hand-written slice code, gap-fill or re-delivery against its accepted model or outline. Not for deciding behavior, writing specifications or running the renderer.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-application-slice-specifications
3
- description: Specify the backend behavior of an event-sourced Cratis application slice — plain-call specs for pure decisions, plus CommandScenario, EventScenario, ReadModelScenario and ReactorScenario where the pipeline, validation, constraints or projections matter — including what to cover for each slice type and where the specification files live. Use when choosing backend plain-call coverage versus CommandScenario, EventScenario, ReadModelScenario or ReactorScenario for an event-sourced slice. Do not use for frontend interactions (use cratis-application-react-specifications) or framework unit-spec mechanics (use cratis-specifications-csharp).
3
+ description: Use when choosing backend plain-call or pipeline-scenario coverage for an event-sourced Cratis application slice. Not for frontend interactions or language-level framework specification mechanics.
4
4
  license: MIT
5
5
  metadata:
6
6
  cratis-hint-paths: "**/when_*/**/*.cs **/for_*/**/*.cs"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-authentication-authorization-and-identity
3
- description: Wire authentication, authorization and identity in a Cratis Arc application — IProvideIdentityDetails and the /.cratis/me endpoint, Arc's [Authorize]/[Roles]/[AllowAnonymous] attributes and named policies, fallback baselines, observable-query emission guards, IAuthenticationHandler, the Microsoft Identity Platform header contract and its ingress requirements, discovery and introspection exposure, tenant resolution, and the React identity hooks. Use for Arc identity providers, endpoint protection, roles, policies, or frontend identity integration. Do not use for isolated command validation, and do not use for Chronicle tenant namespaces alone.
3
+ description: Use when configuring C# Arc authentication, endpoint authorization, identity providers or React identity integration. Not for command validation or Chronicle tenant namespaces alone.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-command
3
- description: Define a Cratis Arc command — the [Command] record, its Handle() method and return shape, the optional Provide() step, and the generated TypeScript proxy. Use when adding a command, choosing what Handle() should return, deciding which values may reach the causation chain (including API keys and other credentials passed to a command, which need [NotAudited] and, when retained, [Encrypted]), or wiring a form or button to an Arc backend. Do not use for a validation-only change or merely to execute an existing command.
3
+ description: Use when defining a C# Arc command, choosing its handler return shape or audit exposure (such as API keys or other credentials passed to it), or wiring its generated proxy to a form or button. Not for validation-only changes or executing an existing command.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-command-execution
3
- description: Execute an existing Cratis Arc command from backend code through ICommandPipeline — the scopeless and scoped overloads, the typed generic Execute, the pre-flight Validate, validation severity filtering, and how to read CommandResult. Use when a reactor, background job, scheduled task, or backend service must run a command without an HTTP request. Do not use to define a command.
3
+ description: Use when a reactor, job or backend service must execute an existing Arc command without an HTTP request. Not for defining a command or appending another stream's events directly.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-command-kotlin
3
- description: Define a Cratis Arc command in Kotlin or Java — the @Command class, its handle() method, the optional provide() step, Chronicle event responses, and command authorization. Use when adding a command to a Kotlin or Java Arc application, choosing what handle() should return, or wiring Chronicle event append from a command. Do not use for the .NET Arc command shape, for validation-only changes, or for query/read-model definition.
3
+ description: Use when defining a Kotlin or Java Arc command, choosing its handler return shape or returning Chronicle events. Not for validation-only changes or query definitions.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-command-operation
3
- description: Declare immediate inline work as a Cratis Arc ICommandOperation returned by a model-bound command, with optional compensation and commit-aware recovery. Use when moving service writes out of Handle(), choosing operation return shapes, diagnosing recovery, or specifying execution and compensation through CommandScenario. Do not use for durable after-commit delivery, validation-only changes, or framework return-type extensions through response value handlers.
3
+ description: Use when moving immediate service writes into returned Arc command operations or diagnosing their compensation and recovery. Not for durable after-commit delivery or validation-only changes.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-command-typescript
3
- description: Define a Cratis Arc command in a Node.js TypeScript server with Arc for TypeScript — project setup from the source preview, ArcApplication.createBuilder() and discovery, the @command() class with @field inputs, handle() and provide(), outcome helpers, service injection, authorization, returning Chronicle events through withChronicle, generated artifact metadata and proxies, hosting on the standalone host, Express, Fastify, Hono or the Fetch entry, and CommandScenario specs. Use when adding or changing a command in an Arc for TypeScript server, or bootstrapping such a server. Do not use for the .NET or Kotlin/Java Arc command shapes, for a React frontend that calls generated proxies, for validation-only changes, or for query/read-model definition.
3
+ description: Use when bootstrapping an Arc Node.js server or defining its TypeScript commands. Not for frontend proxy consumption, validation-only changes or server queries; use the corresponding Arc sibling.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -55,6 +55,8 @@ when returning or specifying Chronicle events.
55
55
 
56
56
  ## Set up and bootstrap
57
57
 
58
+ Start the server's builder with `ArcApplication.createBuilder()`.
59
+
58
60
  Read [references/project-setup.md](references/project-setup.md) when consuming the source preview in a project, choosing compiler and decorator settings, or wiring `main.ts` and the builder calls (`useGeneratedMetadata` before `discover()`; `build()` validates the graph before any listener opens).
59
61
 
60
62
  ## Secure discovery defaults
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-command-validation
3
- description: Add a rejection rule to an existing Arc command — choosing between ConceptValidator, CommandValidator, a short-circuiting Provide, and a read-model-injected Handle returning a Result of either the event or a ValidationResult. Use when placing a C# business rejection in ConceptValidator, CommandValidator, Provide() or a Handle() result containing ValidationResult. Do not use for JVM validators (use cratis-arc-validation-kotlin), Node.js ruleFor (use cratis-arc-validation-typescript), new commands (use cratis-arc-command), or append-time uniqueness (use cratis-chronicle-event-constraints).
3
+ description: Use when adding a business rejection or value invariant to an existing C# Arc command. Not for Kotlin or TypeScript validators, defining a new command or enforcing append-time uniqueness.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-ef-core-migration
3
- description: Change an Entity Framework Core schema in a Cratis Arc application — the DbContext base types Arc provides, the cross-database column helpers, JSON columns, how a migration is created and applied, and how an EF Core read model becomes injectable into a command. Use when adding or changing a table, column, relationship, or index behind an Arc application. Do not use for Chronicle read models or for query paging.
3
+ description: Use when adding or changing an EF Core table, column, relationship or index behind an Arc application. Not for Chronicle read-model projections or query paging.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-go
3
- description: Build a Go HTTP CQRS application with Arc.Go commands, read-model queries, validation, identity and explicit hosting lifecycle. Use for the tagged root module and handwritten typed adapters. Do not use for Chronicle-only clients, C# or JVM Arc, or unpublished Go integration and generator modules.
3
+ description: Use when building an Arc.Go HTTP command or read-model query with handwritten typed adapters and the root module. Not for Chronicle-only clients or unpublished Go integrations and generators.
4
4
  license: MIT
5
5
  compatibility: Go 1.26 or later; root module only.
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-hosting
3
- description: Bootstrap and configure a Cratis Arc .NET host — choose AddCratis versus AddCratisArc or ArcApplication, activate Chronicle and storage integrations, disable controllers for trimming/NativeAOT, supply JSON metadata, and check identity/discovery and embedded viewer exposure. Use when creating a host, diagnosing missing endpoints, or preparing a trimmed publish. Do not use for command/query design, running a Chronicle server, or Kotlin/TypeScript hosting.
3
+ description: Use when creating an Arc .NET host, diagnosing missing endpoints or preparing a trimmed publish. Not for command design, running a Chronicle server or Kotlin and TypeScript hosting.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-identity-and-tenancy-kotlin
3
- description: Wire Kotlin or Java Arc authentication, application identity details and tenant resolution — AuthenticationHandler, IdentityDetailsProvider, tenancy.required, resolver precedence, ambient coroutine tenancy and the opt-in trusted platform-header bridge. Use for JVM Arc identity endpoints, tenant isolation or security ingress setup. Do not use for C# Arc identity, command input validation, or standalone Chronicle namespace resolution.
3
+ description: Use when configuring Kotlin or Java Arc identity endpoints, tenant resolution or trusted ingress. Not for C# Arc identity, command input validation or standalone Chronicle namespaces.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-observable-query-http
3
- description: Inspect a Cratis Arc observable query from a terminal with curl or another plain HTTP client — snapshot GET, waiting for the first result, Server-Sent Events streaming, and long polling, plus the exact query-string keys, status codes, and payload shape. Use when debugging or exploring an observable query without writing frontend code. Do not use to implement the query itself.
3
+ description: Use when inspecting or debugging an existing Arc observable query with curl or another plain HTTP client. Not for implementing the query or its frontend consumer.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-query-kotlin
3
- description: Add a query to a Cratis Arc @ReadModel in Kotlin or Java — companion-object or static query methods, GET vs RFC QUERY, and observable queries returning Kotlin Flow, JDK Flow.Publisher, or RxJava 3 Observable over SSE and WebSocket. Use when exposing JVM @ReadModel companion/static methods through KSP, Kotlin Flow, JDK Publisher or RxJava transports. Do not use for Node.js @query() (use cratis-arc-query-typescript), C# query creation (use cratis-chronicle-read-model), or commands (use cratis-arc-command-kotlin); event materialization belongs to cratis-chronicle-client-kotlin.
3
+ description: Use when exposing Kotlin or Java Arc read-model queries, including observable streams. Not for commands, Node.js queries or Chronicle event materialization; use the corresponding sibling.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-query-paging
3
- description: Add server-side paging and sorting to a Cratis Arc read-model query — which return shapes Arc pages, what a query author must not write (Skip, Take, OrderBy), how MongoDB pages and sorts without LINQ, the exact query-string keys, sorting pitfalls per storage provider, and the paged frontend hooks. Use when a list query can grow large enough that returning every row is wasteful, or needs server-side sorting, or a paged query fails with `Expression not supported`. Do not use for general query creation or as a performance review.
3
+ description: Use when an existing Arc list query needs server-side paging or sorting, or a paged query fails with `Expression not supported`. Not for general query creation or a broad performance review.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-query-typescript
3
- description: Expose Arc for TypeScript server reads with argument binding, queryPage paging, storage adapters, authorization and query scenarios. Use when declaring Node.js @readModel()/@query() methods or RxJS observable endpoints over SSE/WebSocket. Do not use for JVM companion/static methods (use cratis-arc-query-kotlin), C# read models (use cratis-chronicle-read-model), server commands (use cratis-arc-command-typescript), React proxy consumption (use cratis-arc-react-page), or event materialization (use cratis-chronicle-client-typescript).
3
+ description: Use when declaring Arc Node.js read-model queries or observable endpoints. Not for React proxy consumption, server commands or Chronicle event materialization.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-react-page
3
- description: "Build a React page in a Cratis Arc application with Cratis Components — DataPage lists, columns, toolbar menu items, command dialogs, confirmation and busy-indicator dialogs, row selection, details panes, snapshot and observable queries, paging, and MVVM view models. Use when building or changing a page that lists or displays data, wiring Add/Edit/Delete actions, connecting a component to a generated Arc query or command proxy, asking the user to confirm something, or implementing a `.play` screen or form as a page. Not for: a multi-step wizard dialog alone (use `cratis-components-stepper-command-dialog`), a canvas tool palette (use `cratis-components-toolbar`), theming (use `cratis-components-styling`), backend commands and read models (use `cratis-arc-command`, `cratis-chronicle-read-model`), or editing the `.play` model itself (use `cratis-screenplay-event-modeling`)."
3
+ description: Use when building an Arc React data page, wiring its command dialogs or connecting generated proxies. Not for editing a .play model, theming alone or a standalone wizard dialog.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-spring-data-kotlin
3
- description: Use Spring Data JPA or MongoDB with Kotlin or Java Arc read models — repository-backed queries and paging, command current-state resolution, observable snapshots, concept converters, certified tenant storage and explicit transaction opt-ins. Use when wiring JVM Arc persistence or database-backed observations. Do not use for Chronicle projections, C# EF Core, query transport alone, or authentication and tenant resolution alone.
3
+ description: Use when wiring Spring Data JPA or MongoDB persistence, current-state injection or storage-backed observations in JVM Arc. Not for Chronicle projections, C# EF Core or query transport alone.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-testing-kotlin
3
- description: Specify Kotlin or Java Arc commands and queries through real in-process pipelines with arc-testing — CommandScenario, QueryScenario, bounded ObservableQueryScenario collection, read-model pins, tenant resolution, and Chronicle append assertions. Use when writing or diagnosing JVM Arc pipeline specifications without Spring Boot or a kernel. Do not use for standalone Chronicle client tests, C# scenarios, or defining the command or query itself.
3
+ description: Use when writing or diagnosing Kotlin or Java Arc pipeline specifications without Spring Boot or a kernel. Not for standalone Chronicle client tests, C# scenarios or defining production commands and queries.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-validation-kotlin
3
- description: Add a rejection rule to a Cratis Arc command or query in Kotlin or Java — FluentModelValidator shared rules that also emit TypeScript, plus the server-only CommandValidator, QueryValidator, ConceptValidator, and ModelValidator. Use when expressing JVM rejection checks with FluentModelValidator or Kotlin/Java server validators for Arc commands and queries. Do not use for C# rejection placement (use cratis-arc-command-validation) or Node.js ruleFor (use cratis-arc-validation-typescript); new command shapes belong to cratis-arc-command-kotlin, append-time uniqueness to cratis-chronicle-event-constraints.
3
+ description: Use when adding shared fluent rules or server-side rejection checks to Kotlin or Java Arc commands and queries. Not for C# or Node.js validators, new command definitions or append-time uniqueness.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-arc-validation-typescript
3
- description: Add rejection checks to Arc for TypeScript servers, including proxy-safe rules and severity filtering. Use when authoring Node.js ruleFor chains, readModelForValidation checks or rejected()/denied() outcomes in provide()/handle(), and asserting them with @cratis/arc.testing. Do not use for C# validation (use cratis-arc-command-validation), JVM FluentModelValidator (use cratis-arc-validation-kotlin), new server commands (use cratis-arc-command-typescript), query definitions (use cratis-arc-query-typescript), or append-time uniqueness (use cratis-chronicle-event-constraints).
3
+ description: Use when adding rejection rules, state checks or validation assertions to an Arc Node.js server. Not for defining commands or queries, C# and JVM validators, or append-time uniqueness.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-cli-operations
3
- description: Inspect and operate a running Chronicle server with the cratis CLI - contexts and connection resolution, machine-readable output, failed partitions, observers, event sequences, read models, projections and jobs, and the authorization discipline for replay, retry, quarantine clearing and other mutations. Use when the question is about the state of a live store rather than source code. Do not use to diagnose a defect that reproduces locally in source.
3
+ description: Use when inspecting a running Chronicle store or performing an authorized store operation through the cratis CLI. Not for source-local defects, MCP tool selection or the browser Workbench.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-client-dotnet
3
- description: Talk to a Chronicle server from a standalone .NET application with the Cratis.Chronicle client - connection strings, ChronicleClient construction outside any host, AddCratisChronicle for a worker or ASP.NET host, [EventType] records, IEventSequence.Append, reactors and reducers found by assembly scanning, the connection lifecycle and registration wait, and the client/server compatibility check. Use when a console, worker, or service app connects to Chronicle directly. Do not use for Arc applications, the Chronicle kernel, or the Kotlin, TypeScript, and Elixir clients.
3
+ description: Use when connecting a standalone .NET console, worker or service directly to Chronicle or diagnosing its client lifecycle. Not for Arc integration, kernel implementation or another language's client.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-client-elixir
3
- description: Connect Elixir applications to Chronicle with the cratis_chronicle Hex client, including events, projections, reactors, concepts, protected values, decision reads, constraints, captures and testing. Use when wiring Chronicle.Client into an Elixir OTP supervision tree, defining EventType structs, or handling append outcomes with cratis_chronicle. Do not use for JVM clients (use cratis-chronicle-client-kotlin) or Node.js clients (use cratis-chronicle-client-typescript); .NET belongs to cratis-chronicle-client-dotnet.
3
+ description: Use when adding Chronicle to an Elixir OTP application, defining its event structs or handling client append outcomes. Not for JVM or Node.js clients; use the corresponding Chronicle client sibling.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-client-go
3
- description: Connect a standalone Go application to Chronicle, register events and observers, append with explicit outcomes, and materialize read models. Use for Chronicle.Go client setup, projections, reactors, gRPC ownership and safe retry decisions. Do not use for Arc HTTP commands or Chronicle kernel implementation.
3
+ description: Use when connecting Go to Chronicle, registering client observers or deciding gRPC ownership and append retries. Not for Arc HTTP commands or Chronicle kernel implementation.
4
4
  license: MIT
5
5
  compatibility: Go 1.26 or later; a Chronicle kernel profile the client supports.
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-client-kotlin
3
- description: Connect Kotlin and Java applications to Chronicle with the standalone client or Spring Boot starter, including events, reactors, reducers, projections and variants. Use when connecting standalone Kotlin coroutines or Java blocking calls to Chronicle through io.cratis:chronicle and classpath discovery. Do not use for Elixir OTP (use cratis-chronicle-client-elixir) or Node.js decorators (use cratis-chronicle-client-typescript); Arc commands belong to cratis-arc-command-kotlin, not this client skill.
3
+ description: Use when connecting a standalone Kotlin or Java application to Chronicle, including client registration and lifecycle issues. Not for Arc commands, Elixir OTP or Node.js clients.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-client-typescript
3
- description: Connect Node.js applications to Chronicle with @cratis/chronicle, including reflect-metadata, compiler settings, camelCase reactor dispatch, projections, reducers, variants and the lazy-connect lifecycle. Use when configuring @cratis/chronicle decorators, glob discovery or eventLog.append in a standalone Node.js process. Do not use for JVM connections (use cratis-chronicle-client-kotlin), OTP supervision (use cratis-chronicle-client-elixir), or React generated proxies (use cratis-arc-react-page).
3
+ description: Use when connecting a standalone Node.js process to Chronicle or diagnosing its decorators, discovery or client lifecycle. Not for React generated proxies or another language's client.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-compliance
3
- description: Model personal data in Chronicle with [PII] and [Subject], and erase it through crypto-shredding with IPIIManager. Use when an event or read model carries data about a natural person, when a subject must be identified for erasure, when a right-to-erasure request must be executed, or when redacting a stored event. Do not use for authorization, authentication, secret handling, or generic data-protection policy.
3
+ description: Use when Chronicle events or read models contain personal data, an erasure subject must be identified or stored events need redaction. Not for authentication, operational secrets or generic data-protection policy.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-decision-reads
3
- description: Choose which mechanism makes a write-side rule hold (constraint, Arc read protection with read-model parameters and validators, per-stream read model, stream decision, aggregate, explicit scope, reactor repair or an advisory read), and guard a Chronicle decision directly with IDecisionReads, projection admission, ambient unit-of-work enrollment and commit conflict handling. Use when an append must remain valid for the facts read, when a rule must hold under concurrent writers, when choosing whole-source versus stream-scoped reads, or diagnosing ReadChanged, DecisionReadRefused and scope conflicts. Do not use for ordinary query reads or append-time uniqueness alone; Arc command shapes belong to cratis-arc-command.
3
+ description: Use when a Chronicle write decision must remain valid under concurrent writers, its read scope is unclear or commit read conflicts occur. Not for ordinary query reads or append-time uniqueness alone.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-event-constraints
3
- description: Enforce append-time uniqueness in Chronicle with the [Unique] attribute, [RemoveConstraint], and IConstraint, and specify the violation with EventScenario. Use when a rule must hold at the event store rather than in a command, so two concurrent appends cannot both win. Do not use for ordinary command input validation and do not use to create a projection.
3
+ description: Use when Chronicle uniqueness or create-once rules must hold across concurrent appends from every writer. Not for ordinary input validation, capacity predicates or projection creation.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-event-modeling
3
- description: Design a Chronicle event model before writing code - stream boundaries and event-source identities, commands, past-tense events, read models, automations and translations, compliance subjects, and the specification outline. Use when behavior, event vocabulary, stream boundaries, or a multi-slice flow is not yet settled. Do not use to draw or update an existing model diagram, and do not use for a mechanical change to a flow that is already decided.
3
+ description: Use when hand-written Chronicle behavior, event vocabulary or stream boundaries are unsettled in a code-first repository. Not for opted-in .play model authoring, diagram-only edits or mechanical wiring.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-event-specifications
3
- description: Specify event-append behavior with EventScenario from Cratis.Chronicle.Testing — seeding prior events through Given, appending through When or the event log, and asserting on the append result including constraint violations. Use when the behavior under specification is what reaches the event store. Do not use for command handling or for read-model projection behavior.
3
+ description: Use when specifying Chronicle event appends or constraint violations through the in-process append path. Not for command handling or how events become read-model state.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-event-type-migration
3
- description: Evolve a Chronicle event schema without breaking replay - add a generation and an EventTypeMigration so stored events upcast into the new shape. Use when an event needs a new required property, a renamed or split property, a structural change, or a changed enum value after events of the prior shape already exist. Do not use for greenfield renames, for read-model changes, or for redacting stored content.
3
+ description: Use when a Chronicle event schema or value meaning must change after prior events have been stored. Not for disposable greenfield renames, read-model changes or stored-content redaction.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-hosting
3
- description: Run the Chronicle kernel with production storage, certificates, TLS or a private h2c proxy, health probes, clustering and observer recovery configuration. Use when deploying the kernel, moving from development images to production, configuring trusted proxies, or diagnosing kernel startup and topology. Do not use for wiring a .NET application client, implementing Orleans grains, or mutating a live store.
3
+ description: Use when deploying the Chronicle kernel, preparing production topology or diagnosing kernel startup, certificates and clustering. Not for application client wiring, Orleans grain implementation or live-store mutation.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-mcp-inspection
3
- description: Inspect a running Chronicle store through MCP using the exact tool-effect inventory, bounded reads and design-time schema tools. Use when choosing an MCP capability, interpreting redacted output, checking deployment profiles or diagnosing the target context. Job-control tools are effectful, not inspection; unknown tools remain evidence-blocked.
3
+ description: Use when selecting a Chronicle MCP inspection tool, checking its target and deployment profile or interpreting redacted output. Not for treating job-control tools as read-only inspection or assuming unknown effects are safe.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-multi-tenancy
3
- description: Isolate tenants in Chronicle with namespaces - what a namespace actually isolates, how a namespace is selected and resolved through IEventStoreNamespaceResolver, how namespaces come into existence, and the code rules that let a single-tenant deployment grow a second tenant. Use when setting up tenancy, when writing code that touches events or data on behalf of a tenant, or when adding a second tenant. Do not use for authentication, authorization, or identity-provider setup.
3
+ description: Use when selecting Chronicle tenant namespaces, resolving tenant-bound events and read models or adding another tenant. Not for caller authentication, authorization or identity-provider setup.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-projection
3
- description: Add Chronicle projection behavior to an existing read model - model-bound attributes first, the fluent IProjectionFor builder when they cannot express the shape. Covers AutoMap, keys, children and nested types, counters, event-sequence selection, variants (VariantOf and EntersOn, as attributes or fluent calls) for an entity with mutually exclusive lifecycle shapes such as a work item that is a backlog entry then a pull request then closed, and the startup-crash traps. Use when populating a read model from events; do not use to create the read model and its query surface, and do not reach for a reducer before exhausting these options.
3
+ description: Use when populating an existing Chronicle read model through event mappings, structured joins or lifecycle variants, or diagnosing projection startup failures. Not for new query surfaces or external side effects.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-reactor
3
- description: Implement a Chronicle IReactor - an automation that causes an external side effect or appends a follow-up event or command, or the adapter side of a translation of outside data into our own facts. Covers handler dispatch and parameter resolution, every supported return type, targeting another event source, replay handling with [OnceOnly] and [Replay], event filtering, failure and quarantine behavior, and the analyzer rules. Use for event-driven side effects; do not use to populate a read model.
3
+ description: Use when Chronicle events must trigger external effects, follow-up commands or translated facts, or a reactor's replay and failure behavior needs diagnosis. Not for populating a queryable read model.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-read-model
3
- description: Create a Chronicle read model and its query surface - past-tense event types, the read-model record and its key, choosing a projection or a reducer to build it, snapshot versus observable queries (including why Arc does not discover a query declared to return Subject or BehaviorSubject), and reading an instance directly through IReadModels. Use when creating a read model from scratch; for changing how an existing model is populated use the projection or reducer skill instead.
3
+ description: Use when creating a Chronicle read model from scratch or choosing its C# Arc query surface. Not for changing only an existing model's event mappings or state transitions; use the projection or reducer sibling.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-read-model-specifications
3
- description: Specify declarative projections and reducer wiring with ReadModelScenario from Cratis.Chronicle.Testing — seeding events through Given and asserting on the materialized instance; start with Specification plus a direct call for pure reducer decisions. Use when the behavior under specification is how events become read-model state. Do not use to create a read model and do not use for raw event append behavior.
3
+ description: Use when specifying how Chronicle events become read-model state, including projection or reducer wiring and pure reducer decisions. Not for creating the production model or testing raw event append behavior.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-reducer
3
- description: Write a Chronicle IReducerFor reducer when model-bound projection attributes and the fluent IProjectionFor builder cannot express a read-model state transition. Covers the admission test, the exact accepted method signatures, the nullable-current requirement, deletion, passivity and event filtering. Use only after the projection options are genuinely exhausted; do not use for ordinary event-to-property mapping.
3
+ description: Use when a Chronicle read-model transition needs branching, calculations or guards over prior state, or a reducer's discovery and delivery need diagnosis. Not for ordinary event-to-property mappings or external side effects.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-chronicle-web-workbench
3
- description: Use the Chronicle browser Workbench - its screens, what each one can read and change, how it is reached and enabled, and the operational discipline for redaction, revision, replay, quarantine clearing and kernel reset. Use when inspecting or operating a running Chronicle store through the browser, or when deciding whether the Workbench should be exposed at all. Do not use for the CLI's terminal Workbench, and do not use for application source changes.
3
+ description: Use when inspecting Chronicle through its browser Workbench, planning an authorized Workbench operation or deciding whether to expose it. Not for the CLI terminal Workbench or application source changes.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-ci-pipeline-performance
3
- description: Make a Cratis repository's GitHub Actions CI/CD faster and cheaper by measuring workflow timings first, picking the lever that fits the measured bottleneck (build once and shard, caching, path filters with an aggregator, concurrency, runner routing, publish from artifacts) and verifying before and after. Use when a workflow is slow, queues, burns runner minutes, reruns or cancels a lot, or when editing .github/workflows to speed up CI. Not for authoring a release (use cratis-governed-release-methodology), recurring regressions on one surface (use cratis-engineering-regression-cluster), runtime performance of application code (use cratis-performance-review), or fixing a red build.
3
+ description: Use when GitHub Actions is slow, queues, wastes runner minutes or repeatedly reruns and cancels work. Not for fixing a red build, runtime application performance or release-assurance planning.
4
4
  license: LICENSE
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-cli-terminal-workbench
3
- description: Navigate the cratis CLI's terminal Workbench - the full-screen TUI launched with `cratis chronicle workbench`. Use when exploring a running Chronicle store interactively rather than answering one question with a single command, when locating an observer, failure, event type, projection or read model by name, or when capturing read-only evidence from a live store. Do not use for the browser Workbench, and do not use for scripted or piped inspection.
3
+ description: Use when interactively exploring Chronicle in the CLI terminal Workbench or locating store objects by name. Not for the browser Workbench or scripted and piped inspection.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-code-review
3
- description: Review changed code in a Cratis application against the architecture, style, and specification-coverage criteria that the compiler cannot check, and produce a structured report with blocking issues separated from suggestions. Use when asked to review, check, or validate a change. Do not substitute it for a focused security audit and do not restate specialist performance findings.
3
+ description: Use when reviewing changed Cratis application code for architecture, style and specification coverage beyond compiler checks. Not for a focused security or scalability audit, or for scheduling review rounds.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -0,0 +1,2 @@
1
+ Copyright (c) Cratis. All rights reserved.
2
+ Licensed under the MIT license. See LICENSE file in the project root for full license information.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: cratis-commits-and-pull-requests
3
+ description: Use before writing commit messages, staging, pushing or creating and editing PRs, including release labels and issue references. Not for candidate assembly, issue status or batching release windows.
4
+ license: LICENSE
5
+ compatibility: Requires git and the GitHub CLI (gh).
6
+ ---
7
+
8
+ <!-- Copyright (c) Cratis. All rights reserved. -->
9
+ <!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
10
+
11
+ # Commits and pull requests
12
+
13
+ Read [git-commits.md](../../rules/git-commits.md) and
14
+ [pull-requests.md](../../rules/pull-requests.md) before acting. Their always-on
15
+ contracts govern history, release notes, labels, authority and required gates.
16
+ Loading this skill grants no permission to push, publish, merge or mutate issues.
17
+
18
+ 1. Inspect the diff and the repository's workflow before choosing the logical
19
+ commit boundaries and release intent. Read [references/commits.md](references/commits.md)
20
+ when staging, writing a message or deciding when to commit. Stage specific
21
+ files and inspect `git diff --cached`; never commit an unbuildable unit.
22
+ 2. Read [references/pr-description.md](references/pr-description.md) when writing
23
+ or editing a PR or manual release note. Write consumer-facing bullets, not a
24
+ work report. Only fully delivered issues get a closing delivery reference.
25
+ 3. Read [references/pr-labels-and-release.md](references/pr-labels-and-release.md)
26
+ when choosing or swapping a label, grouping related work, checking gates or
27
+ handling a release-action window. Confirm publication effects before applying
28
+ the single label. A human confirms and merges a major release.
29
+ 4. Run affected-project gates, then the repository-required checks. Before each
30
+ body edit, compare `git diff --stat origin/main...HEAD` and remove unsupported
31
+ bullets. Validate the description with
32
+ `node .cratis/ai/hooks/scripts/cratis-check-pr.mjs --body-file <file> --label <intent>`.
33
+ A zero exit status is the pass signal; fix the description on failure.
34
+ 5. Create or edit only when authorized. Put verification, review and deployment
35
+ notes in a PR comment, not the published release note. Confirm the applied
36
+ label and body after writing. Never replace history for a tidier PR.
37
+
38
+ Minimal description for a delivered consumer fix without an issue reference:
39
+
40
+ ```markdown
41
+ ## Fixed
42
+
43
+ - Preserve command validation messages when a request is retried.
44
+ ```
45
+
46
+ If the diff only changes non-outward documentation or tooling, choose
47
+ `no-release` rather than manufacturing a patch release. If the workflow or
48
+ impact is unclear, ask about that specific choice rather than guessing.