@cratis/pi 7.121.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 (143) hide show
  1. package/package/corpus/harnesses/copilot/instructions/authoring-skills.instructions.md +6 -4
  2. package/package/corpus/harnesses/copilot/instructions/review-reports.instructions.md +14 -3
  3. package/package/corpus/rules/authoring-skills.md +6 -4
  4. package/package/corpus/rules/review-reports.md +14 -3
  5. package/package/corpus/skills/analyzing-dotnet-performance/SKILL.md +1 -1
  6. package/package/corpus/skills/binlog-generation/SKILL.md +1 -1
  7. package/package/corpus/skills/check-bin-obj-clash/SKILL.md +1 -1
  8. package/package/corpus/skills/coverage-analysis/SKILL.md +1 -1
  9. package/package/corpus/skills/cratis-application-react-specifications/SKILL.md +1 -1
  10. package/package/corpus/skills/cratis-application-slice-conformance/SKILL.md +1 -1
  11. package/package/corpus/skills/cratis-application-slice-specifications/SKILL.md +1 -1
  12. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/SKILL.md +1 -1
  13. package/package/corpus/skills/cratis-arc-command/SKILL.md +1 -1
  14. package/package/corpus/skills/cratis-arc-command-execution/SKILL.md +1 -1
  15. package/package/corpus/skills/cratis-arc-command-kotlin/SKILL.md +1 -1
  16. package/package/corpus/skills/cratis-arc-command-operation/SKILL.md +1 -1
  17. package/package/corpus/skills/cratis-arc-command-typescript/SKILL.md +3 -1
  18. package/package/corpus/skills/cratis-arc-command-validation/SKILL.md +1 -1
  19. package/package/corpus/skills/cratis-arc-ef-core-migration/SKILL.md +1 -1
  20. package/package/corpus/skills/cratis-arc-go/SKILL.md +1 -1
  21. package/package/corpus/skills/cratis-arc-hosting/SKILL.md +1 -1
  22. package/package/corpus/skills/cratis-arc-identity-and-tenancy-kotlin/SKILL.md +1 -1
  23. package/package/corpus/skills/cratis-arc-observable-query-http/SKILL.md +1 -1
  24. package/package/corpus/skills/cratis-arc-query-kotlin/SKILL.md +1 -1
  25. package/package/corpus/skills/cratis-arc-query-paging/SKILL.md +1 -1
  26. package/package/corpus/skills/cratis-arc-query-typescript/SKILL.md +1 -1
  27. package/package/corpus/skills/cratis-arc-react-page/SKILL.md +1 -1
  28. package/package/corpus/skills/cratis-arc-spring-data-kotlin/SKILL.md +1 -1
  29. package/package/corpus/skills/cratis-arc-testing-kotlin/SKILL.md +1 -1
  30. package/package/corpus/skills/cratis-arc-validation-kotlin/SKILL.md +1 -1
  31. package/package/corpus/skills/cratis-arc-validation-typescript/SKILL.md +1 -1
  32. package/package/corpus/skills/cratis-chronicle-cli-operations/SKILL.md +1 -1
  33. package/package/corpus/skills/cratis-chronicle-client-dotnet/SKILL.md +1 -1
  34. package/package/corpus/skills/cratis-chronicle-client-elixir/SKILL.md +1 -1
  35. package/package/corpus/skills/cratis-chronicle-client-go/SKILL.md +1 -1
  36. package/package/corpus/skills/cratis-chronicle-client-kotlin/SKILL.md +1 -1
  37. package/package/corpus/skills/cratis-chronicle-client-typescript/SKILL.md +1 -1
  38. package/package/corpus/skills/cratis-chronicle-compliance/SKILL.md +1 -1
  39. package/package/corpus/skills/cratis-chronicle-decision-reads/SKILL.md +1 -1
  40. package/package/corpus/skills/cratis-chronicle-event-constraints/SKILL.md +1 -1
  41. package/package/corpus/skills/cratis-chronicle-event-modeling/SKILL.md +1 -1
  42. package/package/corpus/skills/cratis-chronicle-event-specifications/SKILL.md +1 -1
  43. package/package/corpus/skills/cratis-chronicle-event-type-migration/SKILL.md +1 -1
  44. package/package/corpus/skills/cratis-chronicle-hosting/SKILL.md +1 -1
  45. package/package/corpus/skills/cratis-chronicle-mcp-inspection/SKILL.md +1 -1
  46. package/package/corpus/skills/cratis-chronicle-multi-tenancy/SKILL.md +1 -1
  47. package/package/corpus/skills/cratis-chronicle-projection/SKILL.md +1 -1
  48. package/package/corpus/skills/cratis-chronicle-reactor/SKILL.md +1 -1
  49. package/package/corpus/skills/cratis-chronicle-read-model/SKILL.md +1 -1
  50. package/package/corpus/skills/cratis-chronicle-read-model-specifications/SKILL.md +1 -1
  51. package/package/corpus/skills/cratis-chronicle-reducer/SKILL.md +1 -1
  52. package/package/corpus/skills/cratis-chronicle-web-workbench/SKILL.md +1 -1
  53. package/package/corpus/skills/cratis-ci-pipeline-performance/SKILL.md +1 -1
  54. package/package/corpus/skills/cratis-cli-terminal-workbench/SKILL.md +1 -1
  55. package/package/corpus/skills/cratis-code-review/SKILL.md +1 -1
  56. package/package/corpus/skills/cratis-commits-and-pull-requests/SKILL.md +1 -1
  57. package/package/corpus/skills/cratis-components-accessibility/SKILL.md +1 -1
  58. package/package/corpus/skills/cratis-components-common-controls/SKILL.md +1 -1
  59. package/package/corpus/skills/cratis-components-data-surfaces/SKILL.md +1 -1
  60. package/package/corpus/skills/cratis-components-schema-editor/SKILL.md +1 -1
  61. package/package/corpus/skills/cratis-components-stepper-command-dialog/SKILL.md +1 -1
  62. package/package/corpus/skills/cratis-components-styling/SKILL.md +1 -1
  63. package/package/corpus/skills/cratis-components-toolbar/SKILL.md +1 -1
  64. package/package/corpus/skills/cratis-content-length/SKILL.md +1 -1
  65. package/package/corpus/skills/cratis-developer-marketing/SKILL.md +1 -1
  66. package/package/corpus/skills/cratis-discoverability/SKILL.md +1 -1
  67. package/package/corpus/skills/cratis-documentation-writing/SKILL.md +1 -1
  68. package/package/corpus/skills/cratis-engineering-ci-gates/SKILL.md +1 -1
  69. package/package/corpus/skills/cratis-engineering-consolidation-guard/SKILL.md +1 -1
  70. package/package/corpus/skills/cratis-engineering-csharp-conventions/SKILL.md +1 -1
  71. package/package/corpus/skills/cratis-engineering-decision-record/SKILL.md +1 -1
  72. package/package/corpus/skills/cratis-engineering-docs-authoring/SKILL.md +1 -1
  73. package/package/corpus/skills/cratis-engineering-effect-boundaries/SKILL.md +1 -1
  74. package/package/corpus/skills/cratis-engineering-issue-hygiene/SKILL.md +1 -1
  75. package/package/corpus/skills/cratis-engineering-local-cross-repo-verification/SKILL.md +1 -1
  76. package/package/corpus/skills/cratis-engineering-regression-cluster/SKILL.md +1 -1
  77. package/package/corpus/skills/cratis-engineering-release-trains/SKILL.md +1 -1
  78. package/package/corpus/skills/cratis-engineering-review-rounds/NOTICE +31 -0
  79. package/package/corpus/skills/cratis-engineering-review-rounds/SKILL.md +39 -6
  80. package/package/corpus/skills/cratis-event-model-diagram/SKILL.md +1 -1
  81. package/package/corpus/skills/cratis-fundamentals-concept/SKILL.md +1 -1
  82. package/package/corpus/skills/cratis-fundamentals-concept-go/SKILL.md +1 -1
  83. package/package/corpus/skills/cratis-fundamentals-telemetry/SKILL.md +1 -1
  84. package/package/corpus/skills/cratis-fundamentals-type-discovery/SKILL.md +1 -1
  85. package/package/corpus/skills/cratis-governed-release-methodology/SKILL.md +1 -1
  86. package/package/corpus/skills/cratis-lens-browser-extension/SKILL.md +1 -1
  87. package/package/corpus/skills/cratis-llm-friendly-documentation/SKILL.md +1 -1
  88. package/package/corpus/skills/cratis-multi-service-architecture/SKILL.md +1 -1
  89. package/package/corpus/skills/cratis-multi-service-local-orchestration/SKILL.md +1 -1
  90. package/package/corpus/skills/cratis-orchestration-lanes/SKILL.md +1 -1
  91. package/package/corpus/skills/cratis-orchestration-merge-gates/SKILL.md +1 -1
  92. package/package/corpus/skills/cratis-orleans-jobs/SKILL.md +1 -1
  93. package/package/corpus/skills/cratis-performance-review/SKILL.md +1 -1
  94. package/package/corpus/skills/cratis-release-notes/SKILL.md +1 -1
  95. package/package/corpus/skills/cratis-rtk/SKILL.md +1 -1
  96. package/package/corpus/skills/cratis-screenplay-automations-and-translations/SKILL.md +1 -1
  97. package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +1 -1
  98. package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +1 -1
  99. package/package/corpus/skills/cratis-screenplay-delivery-planning/SKILL.md +1 -1
  100. package/package/corpus/skills/cratis-screenplay-discovery/SKILL.md +1 -1
  101. package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +1 -1
  102. package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +1 -1
  103. package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +1 -1
  104. package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +3 -3
  105. package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/SKILL.md +1 -1
  106. package/package/corpus/skills/cratis-screenplay-projections/SKILL.md +1 -1
  107. package/package/corpus/skills/cratis-screenplay-read-surface/SKILL.md +1 -1
  108. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +1 -1
  109. package/package/corpus/skills/cratis-screenplay-scenario-coverage/SKILL.md +1 -1
  110. package/package/corpus/skills/cratis-screenplay-slice-design/SKILL.md +1 -1
  111. package/package/corpus/skills/cratis-screenplay-specifications/SKILL.md +1 -1
  112. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +1 -1
  113. package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +1 -1
  114. package/package/corpus/skills/cratis-screenplay-ui-composition/SKILL.md +6 -3
  115. package/package/corpus/skills/cratis-security-review/SKILL.md +1 -1
  116. package/package/corpus/skills/cratis-social-feed-post/SKILL.md +1 -1
  117. package/package/corpus/skills/cratis-specification-by-example/SKILL.md +1 -1
  118. package/package/corpus/skills/cratis-specifications-csharp/SKILL.md +1 -1
  119. package/package/corpus/skills/cratis-specifications-typescript/SKILL.md +1 -1
  120. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +1 -1
  121. package/package/corpus/skills/cratis-studio-mcp-safety-guidance/SKILL.md +1 -1
  122. package/package/corpus/skills/cratis-technical-examples/SKILL.md +1 -1
  123. package/package/corpus/skills/cratis-writing-voice-and-cadence/SKILL.md +1 -1
  124. package/package/corpus/skills/csharp-refactoring/SKILL.md +1 -1
  125. package/package/corpus/skills/directory-build-organization/SKILL.md +1 -1
  126. package/package/corpus/skills/dotnet-aot-compat/SKILL.md +1 -1
  127. package/package/corpus/skills/dotnet-trace-collect/SKILL.md +1 -1
  128. package/package/corpus/skills/dump-collect/SKILL.md +1 -1
  129. package/package/corpus/skills/eliminate-redundant-restores/SKILL.md +1 -1
  130. package/package/corpus/skills/extension-points/SKILL.md +1 -1
  131. package/package/corpus/skills/filter-syntax/SKILL.md +1 -1
  132. package/package/corpus/skills/guiding-refactoring-with-code-health/SKILL.md +1 -1
  133. package/package/corpus/skills/including-generated-files/SKILL.md +1 -1
  134. package/package/corpus/skills/microbenchmarking/SKILL.md +1 -1
  135. package/package/corpus/skills/msbuild/SKILL.md +1 -1
  136. package/package/corpus/skills/orleans/SKILL.md +1 -1
  137. package/package/corpus/skills/platform-detection/SKILL.md +1 -1
  138. package/package/corpus/skills/profiling/SKILL.md +1 -1
  139. package/package/corpus/skills/run-tests/SKILL.md +1 -1
  140. package/package/corpus/skills/safeguarding-ai-generated-code/SKILL.md +1 -1
  141. package/package/corpus/skills/target-authoring/SKILL.md +1 -1
  142. package/package/corpus/skills/vectorization/SKILL.md +1 -1
  143. package/package.json +1 -1
@@ -24,11 +24,13 @@ A code-breaking prerequisite belongs in one `Requires` line with the version-che
24
24
  Use portable fields: `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools`. Keep extension metadata under `metadata` so other harnesses can load the skill.
25
25
 
26
26
  - Match `name` to the directory: 1–64 lowercase letters, digits and single hyphens; no edge hyphen or reserved `anthropic`/`claude` words. These constraints keep discovery portable.
27
- - Lead the description with what the skill does, then `Use when…` and `Not for…` (name the sibling to use). Include concrete words from the user's request so the router can distinguish neighbors.
27
+ - Write only invocation conditions in the description, starting with `Use when…` or `Use before…`. Include concrete words from the user's request so the router can distinguish neighbors. Keep capabilities, outputs, API lists and how-to instructions in the body. Add `Not for…` or a sibling pointer only when it clarifies a real near-miss; an isolated skill may use a positive trigger alone.
28
28
  - Use neutral imperative or third-person phrasing, not `I`/`you`/`your`; descriptions enter instruction context, where shifting voice obscures who acts. Quoted command text and inline code are not the author's voice.
29
- - Aim below 700 characters, within the hard 1–1024 limit. No tag-like text, versions or research-process vocabulary: the listing is for routing, not evidence.
29
+ - Aim for one positive sentence and, where useful, one boundary sentence, normally below 300 characters within the hard 1–1024 limit. No tag-like text, versions or research-process vocabulary: the listing is for routing, not evidence.
30
30
 
31
- An explicit trigger clause (`Use when`, `Load when`, `Read when` or an equivalent) and neutral voice are required even with `SKILL_AUTHORING_MODE=warn`. Negative routing and meta-language findings follow that switch; the 700-character target is guidance, not a gate.
31
+ An anchored `Use when` or `Use before` lead and neutral voice are required even with `SKILL_AUTHORING_MODE=warn`. A summary followed by a trigger is invalid. Meta-language findings follow that switch; brevity is guidance, not a truncation rule. Structural checks cannot prove semantic routing: review every description against its body and nearest sibling.
32
+
33
+ For example: `Use when an existing Arc query needs server-side paging. Not for creating a read model.` An isolated skill can say `Use before leaving a GitHub review comment.` Do not replace a capability summary with a disguised summary such as “Use when a skill that builds, validates and publishes artifacts is needed.”
32
34
 
33
35
  The overlap lint warns when positive trigger token sets have Jaccard similarity (intersection / union) **>= 0.4**, compared before rounding. It lowercases ASCII word tokens, deduplicates them and removes routing boilerplate and common function words. Only the explicit `Use when` (or equivalent) clause counts, stopping at negative routing; empty triggers never match. The warning stays advisory even in strict mode: shared vocabulary is a review signal, not proof of competing scope. Sharpen the trigger and add a sibling pointer rather than padding it with unrelated words.
34
36
 
@@ -74,7 +76,7 @@ When changing a description, run trigger evaluations before and after when autho
74
76
 
75
77
  ## 10. Review checklist
76
78
 
77
- - What, when, when-not and sibling routing are explicit; voice is neutral and routing text has no meta/history claims.
79
+ - The description contains only invocation conditions, starts with `Use when` or `Use before`, and distinguishes real near-misses where useful; voice is neutral with no capability summary or meta/history claims.
78
80
  - Body has headroom; every reference, asset and script is directly named; long references have Contents.
79
81
  - Text is timeless; no research-only pages or verified-source headings remain.
80
82
  - Defaults, escape conditions, adjacent reasons, glossary terms and correct examples are clear.
@@ -70,8 +70,16 @@ Do not append a competing Markdown report or invent envelope fields.
70
70
  ## Rounds
71
71
 
72
72
  A follow-up round reviews only the delta since the last reviewed commit and carries prior
73
- findings forward. Cap the rounds and prefer one structural fix over looping. See
74
- `cratis-engineering-review-rounds`.
73
+ findings forward with stable finding IDs, consequences, evidence, dispositions and
74
+ unresolved gaps. The writer independently verifies feedback and records evidence-backed
75
+ corrections or disagreements. Preserve typed report envelopes without adding fields.
76
+ Dirty-tree feedback is preliminary, never reusable committed approval.
77
+
78
+ Cap review at three total rounds per work item; retries, fallbacks and renaming do
79
+ not reset it. Record failed attempts. Silence, failure, cancellation, missing checks
80
+ and exhaustion never imply approval. Verify cancellation before replacement; escalate
81
+ unresolved disputes instead of looping. Suggestions alone do not justify another round.
82
+ See `cratis-engineering-review-rounds` for dispatch and writer-pause mechanics.
75
83
 
76
84
  ## Reviewer independence
77
85
 
@@ -82,4 +90,7 @@ findings forward. Cap the rounds and prefer one structural fix over looping. See
82
90
  report header and on the Not examined line.
83
91
  - **[contract]** A provider or tool error makes the review **Incomplete**. Fall back once
84
92
  to the other family. Never report a failed verdict, or Approved, because the reviewer
85
- could not run.
93
+ could not run. Verify actual reviewer identity and availability through the host;
94
+ a configured name alone is not proof. A user-named reviewer that is unavailable
95
+ leaves that named loop blocked/Incomplete; identify any separately authorized
96
+ fallback honestly. An independent fallback does not erase the failed attempt.
@@ -23,11 +23,13 @@ A code-breaking prerequisite belongs in one `Requires` line with the version-che
23
23
  Use portable fields: `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools`. Keep extension metadata under `metadata` so other harnesses can load the skill.
24
24
 
25
25
  - Match `name` to the directory: 1–64 lowercase letters, digits and single hyphens; no edge hyphen or reserved `anthropic`/`claude` words. These constraints keep discovery portable.
26
- - Lead the description with what the skill does, then `Use when…` and `Not for…` (name the sibling to use). Include concrete words from the user's request so the router can distinguish neighbors.
26
+ - Write only invocation conditions in the description, starting with `Use when…` or `Use before…`. Include concrete words from the user's request so the router can distinguish neighbors. Keep capabilities, outputs, API lists and how-to instructions in the body. Add `Not for…` or a sibling pointer only when it clarifies a real near-miss; an isolated skill may use a positive trigger alone.
27
27
  - Use neutral imperative or third-person phrasing, not `I`/`you`/`your`; descriptions enter instruction context, where shifting voice obscures who acts. Quoted command text and inline code are not the author's voice.
28
- - Aim below 700 characters, within the hard 1–1024 limit. No tag-like text, versions or research-process vocabulary: the listing is for routing, not evidence.
28
+ - Aim for one positive sentence and, where useful, one boundary sentence, normally below 300 characters within the hard 1–1024 limit. No tag-like text, versions or research-process vocabulary: the listing is for routing, not evidence.
29
29
 
30
- An explicit trigger clause (`Use when`, `Load when`, `Read when` or an equivalent) and neutral voice are required even with `SKILL_AUTHORING_MODE=warn`. Negative routing and meta-language findings follow that switch; the 700-character target is guidance, not a gate.
30
+ An anchored `Use when` or `Use before` lead and neutral voice are required even with `SKILL_AUTHORING_MODE=warn`. A summary followed by a trigger is invalid. Meta-language findings follow that switch; brevity is guidance, not a truncation rule. Structural checks cannot prove semantic routing: review every description against its body and nearest sibling.
31
+
32
+ For example: `Use when an existing Arc query needs server-side paging. Not for creating a read model.` An isolated skill can say `Use before leaving a GitHub review comment.` Do not replace a capability summary with a disguised summary such as “Use when a skill that builds, validates and publishes artifacts is needed.”
31
33
 
32
34
  The overlap lint warns when positive trigger token sets have Jaccard similarity (intersection / union) **>= 0.4**, compared before rounding. It lowercases ASCII word tokens, deduplicates them and removes routing boilerplate and common function words. Only the explicit `Use when` (or equivalent) clause counts, stopping at negative routing; empty triggers never match. The warning stays advisory even in strict mode: shared vocabulary is a review signal, not proof of competing scope. Sharpen the trigger and add a sibling pointer rather than padding it with unrelated words.
33
35
 
@@ -73,7 +75,7 @@ When changing a description, run trigger evaluations before and after when autho
73
75
 
74
76
  ## 10. Review checklist
75
77
 
76
- - What, when, when-not and sibling routing are explicit; voice is neutral and routing text has no meta/history claims.
78
+ - The description contains only invocation conditions, starts with `Use when` or `Use before`, and distinguishes real near-misses where useful; voice is neutral with no capability summary or meta/history claims.
77
79
  - Body has headroom; every reference, asset and script is directly named; long references have Contents.
78
80
  - Text is timeless; no research-only pages or verified-source headings remain.
79
81
  - Defaults, escape conditions, adjacent reasons, glossary terms and correct examples are clear.
@@ -69,8 +69,16 @@ Do not append a competing Markdown report or invent envelope fields.
69
69
  ## Rounds
70
70
 
71
71
  A follow-up round reviews only the delta since the last reviewed commit and carries prior
72
- findings forward. Cap the rounds and prefer one structural fix over looping. See
73
- `cratis-engineering-review-rounds`.
72
+ findings forward with stable finding IDs, consequences, evidence, dispositions and
73
+ unresolved gaps. The writer independently verifies feedback and records evidence-backed
74
+ corrections or disagreements. Preserve typed report envelopes without adding fields.
75
+ Dirty-tree feedback is preliminary, never reusable committed approval.
76
+
77
+ Cap review at three total rounds per work item; retries, fallbacks and renaming do
78
+ not reset it. Record failed attempts. Silence, failure, cancellation, missing checks
79
+ and exhaustion never imply approval. Verify cancellation before replacement; escalate
80
+ unresolved disputes instead of looping. Suggestions alone do not justify another round.
81
+ See `cratis-engineering-review-rounds` for dispatch and writer-pause mechanics.
74
82
 
75
83
  ## Reviewer independence
76
84
 
@@ -81,4 +89,7 @@ findings forward. Cap the rounds and prefer one structural fix over looping. See
81
89
  report header and on the Not examined line.
82
90
  - **[contract]** A provider or tool error makes the review **Incomplete**. Fall back once
83
91
  to the other family. Never report a failed verdict, or Approved, because the reviewer
84
- could not run.
92
+ could not run. Verify actual reviewer identity and availability through the host;
93
+ a configured name alone is not proof. A user-named reviewer that is unavailable
94
+ leaves that named loop blocked/Incomplete; identify any separately authorized
95
+ fallback honestly. An independent fallback does not erase the failed attempt.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: analyzing-dotnet-performance
3
- description: 'Scans .NET code for about 50 performance anti-patterns across async, memory, strings, collections, LINQ, regex, serialization, and input/output, with tiered severity. Use when analyzing .NET code for optimization opportunities, reviewing hot paths, or auditing allocation-heavy patterns. Not for measuring or profiling a running process (use profiling or microbenchmarking) or for SIMD work (use vectorization).'
3
+ description: Use when reviewing .NET hot paths or scanning source for allocation-heavy and inefficient patterns. Not for measuring a running process, benchmark design or SIMD optimization.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: binlog-generation
3
- description: 'Generates MSBuild binary logs (binlogs) by adding /bl:{} to dotnet build, test, pack, publish, or restore commands, capturing a full build trace for later investigation. Use when a build error or build-performance problem needs a binlog and none exists. The {} placeholder needs a recent MSBuild; PowerShell must quote the switch as ''-bl:{}''. Not for analyzing an existing binlog or measuring build performance (use the msbuild skill) or for non-MSBuild build systems such as npm, Maven, or CMake.'
3
+ description: Use when an MSBuild failure or performance investigation needs a binary log and none exists. Not for analyzing existing logs, timing builds or non-MSBuild systems; use msbuild for analysis.
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -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