Troubleshoot and configure Reasonix capabilities: Skills (project/custom/global/builtin priority, discovery dirs), Commands (override order, /dir:file naming),
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-reasonix-guide-ca4180d40947 ,按照其中的说明把「reasonix-guide」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
This skill is inlined. Prefer evidence over guessing.
reasonix doctor capabilities --json
reasonix doctor capabilities --live --timeout 5s --json
Do not invent auto-fixes. Surface stable issue codes, sources, and remediations from the report.
Winner per skill name (highest first):
<workspace>/{.reasonix,.agents,.agent,.claude}/skills/[skills].paths (and plugin package skill roots)<Reasonix home>/skills and home convention dirsSame name: higher scope wins; lower scopes are shadowed. [skills].disabled_skills hides a name from List/Read entirely.
Discovery conventions: .reasonix, .agents, .agent, .claude (see config.ConventionDirs). Layouts: <name>/SKILL.md or flat <name>.md (Claude flat files need skill frontmatter).
| Entry | How |
|---|---|
| CLI | reasonix doctor capabilities → Skills section |
| Desktop | Settings → Skills; Settings → Diagnostics |
| Agent | /skill list, /reasonix-guide, run_skill |
| Symptom | Likely cause | Fix |
|---|---|---|
| Skill missing from index | Disabled, shadowed, missing description, wrong root | Check report codes skill.shadowed, skill.missing_description, disabled list, discovery roots |
| Builtin overridden | Project/global same name | Rename or remove user skill; disable if intentional |
| Flat Claude file ignored | No skill frontmatter under .claude/skills | Add description: / runAs: frontmatter or use SKILL.md folder |
| Body never loads | Expected: bodies are on-demand | Invoke via /name or run_skill |
reasonix doctor capabilities --json → Skillsdisabled_skillsdescription:config.CommandDirsForRoot: home convention commands → Reasonix home commands → project convention commands. Later directory overrides earlier on name clash (command.Load).
Name from path: git/commit.md → /git:commit (slashes → :).
CLI/Desktop Diagnostics → Commands; invoke /name in chat.
| Symptom | Cause | Fix |
|---|---|---|
| Wrong body | Shadowed by later dir | Check command.shadowed winners |
| Missing command | Wrong dir / extension | Place *.md under a scanned commands/ root |
| Parse fail | Unreadable file | Fix permissions / encoding (command.read_failed) |
PreToolUse, PostToolUse, PostToolUseFailure, PermissionRequest, UserPromptSubmit, Stop, StopFailure, PostLLMCall, SessionStart, SessionEnd, SubagentStart, SubagentStop, Notification, PreCompact.
SubagentStart / SubagentStop:
task call fires them; read_only_task, parallel_tasks, fleet, skill sub-agents and background tasks do not.callId to pair them. SubagentStart gets the task arguments in toolArgs.SubagentStop fires on every end (answer, failure, cancel, refusal); error is set when there was no answer.Blocking (exit 2 can gate the loop): PreToolUse, UserPromptSubmit. Others warn or contribute context only.
<workspace>/.reasonix/settings.json — loaded automatically<Reasonix home>/settings.json (always)Match field is an anchored regex: file does not match read_file; use .*file or *. Timeout is milliseconds (defaults 5s gating / 30s other).
/hooks, Settings → Hooks, Diagnostics → Hooks.
| Symptom | Cause | Fix |
|---|---|---|
| Project hooks silent | Wrong workspace / restart required | Confirm the project path and restart Reasonix after saving |
| Matcher never fires | Non-anchored assumption / bad regex | Fix match (hook.invalid_matcher) |
| Command missing | Empty command / missing context file | Fix settings entry |
| Malformed JSON | Invalid settings.json | Repair JSON (file yields no hooks, no crash) |
config.LoadForRoot merges:
[[plugins]] (higher name wins vs later sources when already defined).mcp.json servers not already in TOMLTransports: stdio (default), http / streamable-http, sse. auto_start=false skips startup; nil/true = automatic. Tier eager blocks boot handshake; empty/background connects without blocking chat.
Env/header values may contain secrets — diagnostics list keys only.
| Mode | Behavior |
|---|---|
| Static doctor | Config validity, command path / URL shape, start intent — no subprocess |
CLI --live | Isolated Host via boot.PluginSpecsForRoot + plugin.Start; auto-start only; concurrency 4; always Close |
| Desktop runtime | Read active tab Host only |
| Symptom | Cause | Fix |
|---|---|---|
| Not connected | auto_start=false or failed start | Enable / fix command/URL (mcp.command_not_found, mcp.start_failed) |
| No tools | Connected but empty tools/list | Server config or permissions (mcp.no_tools) |
| Wrong source | Shadowed by TOML vs .mcp.json vs package | Inspect report Source / package owner |
| Invalid transport | Bad type | Use stdio/http/sse (mcp.invalid_transport) |
reasonix-plugin.json.codex-plugin/plugin.json.claude-plugin/plugin.json (+ limited Claude compatibility paths)State: <Reasonix home>/plugin-packages.json. Disabled packages do not contribute skills/hooks/MCP.
Unmapped Claude-only features may appear as compatibility warnings — Reasonix does not invent support.
reasonix plugin doctor <name>, Settings → Plugins, Diagnostics → Plugins.
| Symptom | Cause | Fix |
|---|---|---|
| Package missing | Bad root path | Reinstall / fix root (plugin.missing_root) |
| Invalid manifest | Parse failure | Fix JSON/manifest (plugin.invalid_manifest) |
| Skills missing | Disabled package | Enable package |
User global docs → ancestor chain → project docs → project-local (*.local.md).
Recognized names: REASONIX.md, AGENTS.md, CLAUDE.md (and *.local.md variants). Multiple files in one directory can load; symlink identity is deduped.
Instructions fold into the system prompt at session boot (cache-stable prefix); Hooks remain runtime event handlers loaded from their configured locations.
Diagnostics → Instructions; memory Settings; read files on disk.
| Symptom | Cause | Fix |
|---|---|---|
| Guidance ignored | Wrong filename / empty file | Use recognized names under correct dir |
| Wrong scope won | Local override | Check load order in report |
settings_tab is set<workspace>/…, ~/…, or <external>/…