Update Logic Index
Updates the semantic understanding of the codebase by scanning Python files, extracting function/class signatures, and generating incremental summaries using an OpenAI-compatible LLM API.
Process
You MUST execute the following steps strictly in order.
Step 1: Check Configuration
- Check if
.claude/logic_index_configexists. - If missing:
- Create it from
~/.claude/skills/update-logic-index/default_logic_config.template. - Use
AskUserQuestionto prompt: "Configuration generated. Please review.claude/logic_index_configto exclude unnecessary directories (to save Tokens). Continue?" - Wait for "Yes".
- Create it from
- If exists:
- Read the file content.
- Use
AskUserQuestionto prompt: "Existing configuration found. The scan will run based on these rules (consuming Tokens). Proceed?" - Wait for "Yes".
Step 2: Execute Scanning
- Check if
.claude/logic_tree.mdexists.- If MISSING: Output (in
Simplified Chinese/简体中文): "检测到首次运行。即将执行全量代码库扫描,请耐心等待..."
- If MISSING: Output (in
- Execute the Python indexer:
python "~/.claude/skills/update-logic-index/run.py" - Wait for completion.
Step 3: Injection Strategy
-
Determine the injection policy from
settings.json(envLOGIC_INDEX_AUTO_INJECT).- Default is
ALWAYSif not set.
- Default is
-
Branching Logic:
-
Case A: Policy == ALWAYS
- Execute Injection immediately:
LOGIC_INDEX_AUTO_INJECT=ALWAYS python "~/.claude/hooks/doc_manager/injector.py"
- Execute Injection immediately:
-
Case B: Policy == ASK
- Use
AskUserQuestionto prompt: "Logic Index generated. Inject into CLAUDE.md context?" - Options: ["Yes (Inject)", "No (Skip)"]
- If Yes:
LOGIC_INDEX_AUTO_INJECT=ALWAYS python "~/.claude/hooks/doc_manager/injector.py" - If No:
- Output: "Skipping injection."
- Use
-
Case C: Policy == NEVER
- Output: "Skipping injection (Policy: NEVER)."
-
Configuration (Environment)
Requires the following environment variables (injected via settings.json > env):
OPENAI_API_KEY: API Key for OpenAI-compatible service (e.g., Aliyun Bailian).OPENAI_MODEL: Model name (default:glm-5).OPENAI_MAX_WORKERS: Concurrency limit (default: 5).OPENAI_BASE_URL: API endpoint (default:https://coding.dashscope.aliyuncs.com/v1/chat/completions).
Feature Flags
LOGIC_INDEX_AUTO_INJECT: Controls automated injection oflogic_tree.mdintoCLAUDE.md.ALWAYS: Automatically update CLAUDE.md after indexing.ASK: Prompt user for confirmation before injection.NEVER: Only generate files, do not inject.
LOGIC_INDEX_FILTER_SMALL: Skip LLM summarization for small (< 3 lines) functions without docstrings. (Default:true)
Output
Generates:
.claude/logic_index.json: Incremental cache of AST hashes and summaries..claude/logic_tree.md: Readable Markdown tree for context injection.- Includes
Last Updatedtimestamp. - Includes
Git Commitshort hash (if git is available) for version tracking.
- Includes
