بنقرة واحدة
lich
يحتوي lich على 6 من skills المجمعة من enchanter-ai، مع تغطية مهنية على مستوى المستودع وصفحات skill داخل الموقع.
Skills في هذا المستودع
Runs M1 Cousot Interval Propagation and M2 Falleri Structural Diff on a code scope, flags runtime-failure candidates (div-zero, null deref, OOB, overflow, resource leak), and hands the flagged sites to lich-sandbox for M5 confirmation. Use when: the user runs /lich-review on a hunk / file / PR, or the PostToolUse hook fires on Write/Edit/MultiEdit. Do not use for: security-taint review (Hydra R3 owns that), change classification (Crow V1/V2 owns that), or rubric-style judgment (lich-rubric skill owns that).
Permanently suppresses a Lich rule for the current developer. Writes to plugins/lich-preference/state/overrides.json with a quarterly re-prompt date — the override auto-expires in 90 days unless the developer renews. Use when: the user runs /lich-disable <rule_id>. Do not use for: ambient preference learning (M6 Bayesian accumulation handles that automatically via accept/reject signals — don't conflate passive priors with explicit disables).
Python language adapter. When the target file is .py, maps the ruff rule catalog (~900 rules) into M-engine outputs and contributes Python-specific idiom checks (pyupgrade, typing, async-await patterns). Use when: lich-core fires on a .py file. Do not use for: non-Python files (lich- typescript covers .ts/.tsx; other languages are Phase 2), or as a replacement for ruff itself — this skill maps ruff outputs into Lich's M-engine vocabulary, it does not re-implement ruff.
Walks through why Lich flagged a specific finding — M1 flag rationale, M5 sandbox witness (if confirmed), M7 rubric scores per axis, Kappa reliability, M6 posterior state. Use when: the user runs /lich-explain <finding_id>, or wants to understand a HOLD/FAIL verdict. Do not use for: general code review (/lich-review handles that), rule disabling (/lich-disable handles that), or modifying rubric axes (rubric-v1.json edits go through a separate migration skill).
Runs M5 Bounded Subprocess Dry-Run. For each M1-flagged runtime-failure candidate, synthesizes a witness input (boundary values: 0, None, "", sys.maxsize, etc.), executes the containing function in a stdlib-only sandbox with resource.setrlimit CPU/AS/NOFILE/FSIZE caps + signal.alarm wall-clock timeout, and records confirmed / timeout / sandbox-error / input-synthesis-failed outcomes. Use when: lich-core emits flags that need confirmation, OR the user runs a skill that explicitly invokes M5. Do not use for: running untrusted code without caps, running on Windows (skip with platform-unsupported), or as a replacement for real test suites.
TypeScript / JavaScript language adapter. When target file is .ts, .tsx, .js, or .jsx, invokes biome (if installed) or tsc --noEmit (substrate fallback), maps findings into M-engine outputs, and contributes TS- specific idiom checks (React hooks deps, JSX a11y, narrow-type-guards). Use when: lich-core fires on a TypeScript/JavaScript file. Do not use for: non-TS/JS files; replacing biome; auto-fix mode (Lich is advisory).