跳到正文
cccskills
免费在 GitHub 公开

critical-invariants

Kern engine critical invariants: coordinate system, UI Toolkit positioning, RenderTexture blit, LifetimeScope/scene structure, VolumeProfile editor API, camera pixel-grid alignment, performance analysis rules, profiler interpretation, and the no-fallback policy. Use when touching coordinates, WorldToScreen, UI element anchoring, RenderTexture, LifetimeScope, VolumeProfile, camera, FPS analysis, Profiler markers, or any code near an "invariant" comment. Triggers on: CoordinateUtils, MapManager.WorldHeight, RuntimePanelUtils, CameraTransformWorldToPanel, WorldToLocal, PositionWriteEpsilon, CameraPixelGridAligner, LifetimeScope, RegisterComponent, VolumeProfile, AssetDatabase.AddObjectToAsset, EditorLoop, VSync, fallback, paper white, FPS, frame time.

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop星标 4(GitHub 4 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md4.3 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Critical engine invariants

Coordinates

  • Server coordinates have their origin at the top-left with Y pointing down.
  • Perform all transformations exclusively via CoordinateUtils with MapManager.WorldHeight.

UI Toolkit

  • Single style tree via KernTheme.tss; static structure lives in UXML.
  • Toggle visibility with the is-hidden class via UIState.
  • Screen coordinates via RuntimePanelUtils.ScreenToPanel.
  • An element anchored to a world point must be positioned exactly like WorldLabels.LateTick: RuntimePanelUtils.CameraTransformWorldToPanel for the point, then WorldToLocal of the container.
  • Rolling your own WorldToScreenPoint + ScreenToPanel is FORBIDDEN: left/top are relative to the parent, not the panel.
  • Position and size styles are written only when the change exceeds half a pixel (PositionWriteEpsilon). Writing unconditionally every frame shakes the element and keeps the panel style-dirty.

RenderTexture / blit

  • Blitting into a RenderTexture for a UI element must use Blend Off. With blending enabled, each frame accumulates on top of the previous contents — nobody clears the texture.

Scene / LifetimeScope

  • Every scene has exactly one root — its own LifetimeScope; all authored objects live beneath it.
  • Objects placed next to the scope are invisible to the container.
  • Guarded by ProductionSceneContractValidator.ValidateSingleRoot, fixable via Kern/Architecture/Move Scene Roots Under Composition Root.

VolumeProfile

  • VolumeProfile.Add<T>() creates the component in memory only; editor code must add it via AssetDatabase.AddObjectToAsset() before saving.

Camera

  • The camera moves with smoothing and snaps to the pixel grid (CameraPixelGridAligner.SnapPosition).

Performance and diagnostics

  • Do not mask defects by clearing Unity cache, recompiling, applying FPS caps, frame skipping, or throttling.
  • Only change hot paths after reproducing the issue or strictly confirming the root cause.
  • If performance worsened or did not improve after the agent's own change, the agent MUST explain the reason from the change itself: exactly what it added per frame (dispatch count and threads, marching steps, texture reads/writes, sizes of new textures and buffers) and why there was no gain. Shifting root-cause analysis onto the user is FORBIDDEN.
  • Before changing a GPU hot path — calculate its per-frame cost and compare it with what it replaces.

Lighting (update rate)

  • Lighting is FORBIDDEN from being rate-limited (timer, Hz cap, solve-frequency setting) — for neither light sources nor geometry.
  • Dynamic lights (robot light sources) must not be tied to entering a new cell.
  • Light is recalculated every frame together with the robot's smooth movement. Expensive passes must be made cheaper, not skipped.

Profiler / measurements

  • VSync NEVER explains performance. Forbidden to mention as a cause of low FPS, a "ceiling", "waiting for display", a measurement caveat, a recommendation, a code comment, or a line in a report.
  • "Editor overhead" (EditorLoop, Scene view GPU, PlayerConnection socket) is NEVER an explanation for low in-game FPS. These are measurement artifacts of Play Mode inside the Editor — look for the cause in Scripts, Rendering, Physics, GarbageCollector.

Fallbacks

  • Fallbacks are FORBIDDEN everywhere, always: no fallback values, simplified paths, or silent substitutions when primary data is absent. No texel — black. No data — error or empty. Masking missing data with a fallback is a bug, not resilience.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Refactor bloated AGENTS.md, CLAUDE.md, or similar agent instruction files to follow progressive disclosure principles. Splits monolithic files into organized, linked documentation.

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop42026年10月26日 更新

Build and operate a live game using Unity Services. Use when the user needs to implement, connect, or debug backend-driven features — battle passes, achievements, player progression, cloud saves, leaderboards, matchmaking, virtual economies, server-authoritative logic, anti-cheat, player accounts and authentication, remote configuration, feature flags, A/B testing, analytics, or cloud resource deployment. Triggers on live-ops, live service, backend, server authority, cloud code, cloud save, remote config, player data, retention, monetization loop, season pass, ranking, multiplayer sessions, lobbies, or any Unity Services integration.

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop42026年10月26日 更新

Kern project C# conventions, namespace rules, DI/VContainer patterns, and assembly layer boundaries. Use when writing, editing, or reviewing any C# file — MonoBehaviours, ScriptableObjects, services, contracts, factories, or editor scripts. Triggers on: namespace, nullable, asmdef, VContainer, RegisterComponent, IObjectResolver, composition root, Kern.Contracts, primary constructor, record struct, SA1513, _camelCase, PascalCase, asmref, MonoScript.GetClass.

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop42026年10月26日 更新

fmod-sync

免费

Synchronize and compile FMOD Studio banks into StreamingAssets

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop42026年10月26日 更新

Kern HDR/color pipeline contract: scene-referred linear working space, paper white units, radiance format rules, URP output transform ownership, DisplayFinal perceptual/linear space, UI brightness, HDR calibration screen, safe-start HDR switch, and HDROutputController usage. Use when touching lighting shaders, glow, bloom, tonemapping, post-processing, color grading, LUT, display output, UI colors, calibration, or any code with DisplaySettings / HDROutput / PaperWhite / Tonemapping / CompositeFinal / DisplayFinal / VisualTuning. Triggers on: saturate on radiance, clamp color, sRGB in shader, UNorm light buffer, ARGBHalf, paper white, HDROutputReconciler, VisualTuning, BT2390, detectPaperWhite, HDRCalibrationScreen, HDRSwitchPending, HDROutputSettings.

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop42026年10月26日 更新

Implement, configure, and debug Unity In-App Purchases (IAP) — store connection, product catalog, consumable/non-consumable/subscription purchases, two-step pending-confirm flow, receipt validation, entitlement checking, restore transactions, Apple extensions (promotional purchases, Ask-to-Buy, code redemption), and Google Play extensions (subscription upgrade/downgrade), D2C Capabilities(direct to customer), 3rd party payment provider (Stripe/Coda) via Unity IAP/Unity Cloud. Use when the user needs to add, modify, debug, or migrate from native Android/iOS billing, 3rd party packages(RevenueCat/Adapty/Essential Kit/Unipay supported) to IAP. Triggers on microtransactions (MTX), monetization, real-money purchases, store purchases, buying items, support D2C, purchase via Stripe/Coda, migrate from native billing(Google's BillingClient or Apple's StoreKit/SKPaymentQueue/SKProduct)/RevenueCat/Adapty/EssentialKit/Unipay.

中文简介正在准备中。当前显示原文说明。

MinesReborn/Fodislop42026年10月26日 更新

查看 MinesReborn 的全部技能

报告此技能的问题