{"id":"2e4adbd1-f6d4-4e9d-9070-e2834e8b9acf","shortId":"NvmLHF","kind":"skill","title":"nium-wiki","tagline":"Analyze source code and produce an enterprise-quality, domain-organized Wiki under `.nium-wiki/`.\n\nTrigger on: \"generate wiki\", \"create docs\", \"update wiki\", \"rebuild wiki\", or any documentation generation request.\n\nCapabilities:\n- Semantic code analysis — understands logic, not ","description":"# Nium Wiki Generator\n\nProduce **professional-grade**, domain-organized project Wiki under the `.nium-wiki/` directory.\n\n> **Core Principle**: Generated documentation must be **detailed, structured, diagrammed, and cross-linked**, meeting enterprise-level technical documentation standards.\n\n## Quality Gate for Generated Documentation\n\n**MANDATORY**: Every piece of generated documentation MUST satisfy the following criteria:\n\n### Depth of Coverage\n- Provide **full context** for every topic — never leave bare lists or placeholder outlines\n- Write **specific, explanatory** descriptions that address the WHY and HOW behind each concept\n- Supply **runnable code examples** paired with their expected output (🔴 secrets must be sanitized - see \"Secret & Credential Sanitization\")\n- Call out **edge cases, caveats, and common mistakes** explicitly\n\n> **Substantive content**: A section has real content if it contains ≥ 3 non-empty, non-heading\n> lines, OR at least one code block, diagram, or table. A heading followed by a single sentence\n> or a bare list does not count.\n\n### Structural Conventions\n- Organize content with **hierarchical headings** (H2 → H3 → H4) to form a clear information hierarchy\n- Summarize key concepts in **tables** for scanability\n- Illustrate processes and flows using **Mermaid diagrams**\n- Interconnect documents via **cross-links**\n\n### 🔴 MANDATORY: Link Path Format\n\n> ALL source file links MUST use project-root-relative POSIX paths starting with `/`.\n> NEVER use `file://` URIs, absolute filesystem paths, or OS-specific paths.\n> The IDE/editor may provide file paths as `file:///Users/.../project/src/foo.ts` — you MUST strip the prefix and convert to `/src/foo.ts`.\n\n| ❌ Wrong | ✅ Correct | Reason |\n|----------|-----------|--------|\n| `[foo.ts](file:///Users/x/project/src/foo.ts#L1-L50)` | `[foo.ts](/src/foo.ts#L1-L50)` | Strip `file://` prefix + absolute path |\n| `[foo.ts](src/foo.ts#L1-L50)` | `[foo.ts](/src/foo.ts#L1-L50)` | Must start with `/` |\n| `[foo.ts](C:\\Users\\x\\project\\src\\foo.ts)` | `[foo.ts](/src/foo.ts)` | No Windows paths |\n\n**Conversion rule**: Given any absolute path, remove everything up to and including the project root directory name, then prepend `/`. Example: `file:///home/user/my-project/src/core/foo.ts` → `/src/core/foo.ts`.\n\n### 🔴 MANDATORY: Secret & Credential Sanitization\n\n> **CRITICAL**: NEVER include actual secrets, credentials, API keys, or sensitive information in generated documentation.\n\n**MANDATORY sanitization rules**:\n\n| Scenario | Action | Example |\n|----------|--------|---------|\n| Hard-coded API keys in source | Replace with placeholders | `sk_live_abc123` → `sk_live_XXXXXXXXXXXX` |\n| Database credentials | Redact or use example values | `password: \"mysecret123\"` → `password: \"***REDACTED***\"` |\n| Private tokens/keys | Mask with descriptive placeholders | `TOKEN=secret123` → `TOKEN=<your-api-token-here>` |\n| Environment vars with secrets | Show safe example values | `AWS_SECRET_ACCESS_KEY=xyz` → `AWS_SECRET_ACCESS_KEY=<your-secret-key>` |\n\n**Sanitization pattern library**:\n- API keys: `sk_live_XXXXXXXX`, `pk_test_XXXXXXXX`, `api_key_XXXXXXXX`\n- Passwords: `***REDACTED***`, `<your-password-here>`\n- Tokens: `<your-access-token>`, `<auth-token-here>`\n- Generic: `XXXXXXXX`, `<secret-value>`, `<sensitive-data>`\n\n**Exception**: Mermaid diagrams, source file path links, and markdown structure MUST still be preserved unchanged (except for secret removal within code blocks).\n\n### Diagram Requirements (at least 2-3 per document)\n| Content Type | Diagram Type | Condition |\n|--------------|--------------|-----------|\n| System architecture | `flowchart TB` with subgraphs | always |\n| Request / data flow | `sequenceDiagram` | always |\n| Lifecycle / state transitions | `stateDiagram-v2` | only for stateful modules |\n| **Class / Interface shape** | `flowchart LR` showing type/module relationships | only when source is read |\n| Module dependencies | `flowchart LR` | always |\n| Data models / ORM | `erDiagram` | when project has database/ORM |\n| Module conceptual relationships | `mindmap` | optional, for abstract module relationships only (NOT file trees) |\n\n> **Diagram diversity**: Count ≥ 2 distinct diagram *types* toward the minimum. Three identical\n> flowcharts do not satisfy the requirement — use `flowchart LR`, `sequenceDiagram`,\n> `stateDiagram-v2`, `erDiagram` as appropriate for the module.\n>\n> **Note**: `mindmap` is optional and does **not** count toward the ≥ 2 distinct types requirement. It may supplement but never replace the required diagram types above.\n\n**Layout rules**: Choose direction by content — `TB` for hierarchies, `LR` for flows/dependencies. Use `subgraph` to group related nodes when count > 6. Apply `style` color coding to highlight key nodes.\n\n> **File/directory structure** MUST use plain-text tree format (`├──` `└──`), NEVER use Mermaid diagrams (including `mindmap`).\n> Mermaid `mindmap` is only for showing abstract conceptual relationships between modules, never for file paths or directory trees.\n\n### 🔴 Mermaid Syntax Safety Rules (MANDATORY — Read Before Every Diagram)\n\n> ⚠️ **HARD REQUIREMENT**: Before generating ANY Mermaid diagram, you MUST read\n> [refs/mermaid-syntax.md](./refs/mermaid-syntax.md) in full. Generating without reading\n> this file is a hard requirement violation.\n\n**✅ Hard Rules** — parser errors (must fix). **⚠️ Suggestions** — best practices.\n\n| Category | Rule | Wrong ❌ | Correct ✅ |\n|----------|------|----------|------------|\n| ✅ | subgraph ID must not collide with node ID | `subgraph CLI[...]\\nCLI[...]` | `subgraph CL[...]\\nCLI[...]` |\n| ✅ | Unescaped quotes in plain labels | `A[Config \"x\" val]` | `A[Config &quot;x&quot; val]` or `A[\"Config \\\"x\\\" val\"]` |\n| ✅ | Reserved keywords as IDs | `class[class]` | `NodeClass[class]` (keywords: `class`, `graph`, `digraph`, `subgraph`, `end`, `click`, `style`, `state`, `note`) |\n| ⚠️ | Plain labels preferred for simple text | `A[\"Label\"]` | `A[Label]` |\n| ⚠️ | Alphanumeric IDs preferred | `Core.1[Core]` | `Core_1[Core]` |\n| ⚠️ | English subgraph IDs preferred | `subgraph 核心层[...]` | `subgraph Core[...]` |\n\n**Complexity grouping** (when nodes > 6):\n\n| Node Count | Strategy |\n|------------|----------|\n| ≤ 6 | Linear — no grouping needed |\n| 7-12 | `subgraph` grouping, 2-4 nodes per group |\n| 13-20 | Layered abstraction (overview + detail) |\n| > 20 | Split into multiple diagrams |\n\n**Example — Grouped vs waterfall**:\n\n```mermaid\n%% WRONG — narrow waterfall\nflowchart TD\n    A --> B --> C --> D --> E --> F --> G --> H\n%% CORRECT — grouped by phase\nflowchart TD\n    subgraph Phase1[Phase 1]\n        A --> B\n    end\n    subgraph Phase2[Phase 2]\n        C --> D --> E\n    end\n    Phase1 --> Phase2\n```\n\n### 🔴 MANDATORY: Source File Back-References\n\n**Each section MUST end with links back to the originating source files** (see \"Link Path Format\" above for path rules):\n\n```markdown\n**Source references**\n- [cli.ts](/src/cli.ts#L1-L50)\n- [index.ts](/src/index.ts#L20-L80)\n\n**Diagram data sources**\n- [core/analyzeProject.ts](/src/core/analyzeProject.ts#L1-L100)\n```\n\n### 🔴 MANDATORY: Source Attribution for Code Block Excerpts\n\nAny code block that is a direct excerpt from a source file (function body, class definition, type definition, import/export statement) MUST carry a source attribution line immediately **above** the code block. This applies to `.ts`, `.js`, `.py`, `.go`, `.rs`, `.java`, and other language source files.\n\n> **⚠️ CRITICAL**: The attribution line MUST be placed **outside** the code fence (above the opening ```), using plain text format **without any language-specific comment syntax** (no `//`, `#`, `/* */`, etc.). The attribution line is plain text, and the Markdown link inside it will be rendered as a clickable link.\n\n**✅ CORRECT format**:\n\n```markdown\n[Source: cli.ts](/src/cli.ts#L42-L67)\n```typescript\nconst result = cli.parse(process.argv);\n```\n```\n\n**❌ WRONG formats (links will NOT be clickable)**:\n\n```markdown\n// Wrong: Inside the code block as a comment — the link won't work\n```typescript\n// Source: [cli.ts](/src/cli.ts#L42-L67)\nconst result = cli.parse(process.argv);\n```\n\n```markdown\n// Wrong: Uses comment syntax (//, #, etc.) — renders as code, not text\n// [Source: cli.ts](/src/cli.ts#L42-L67)\n```typescript\nconst result = cli.parse(process.argv);\n```\n```\n\nAttribution is **not required** for:\n\n| Content type | Example | Why no attribution |\n|---|---|---|\n| Usage / call-site examples | `cli.run(['--help'])` | Calling code, not source excerpt |\n| Teaching / invented examples | Any code that does not exist in the source | Not in any source file |\n| Mermaid / shell / CLI commands | `flowchart TD\\n  A --> B` | Not source code |\n| Output / runtime results | `// Output: { id: 1 }` | Results, not source |\n\n### 🔴 MANDATORY: Complexity-Scaled Quality Targets\n\n**Quality standards scale with module complexity — not fixed numbers.**\n\n| Module Role | Doc Depth | Code Examples | Diagrams |\n|-------------|-----------|---------------|----------|\n| core | Comprehensive (use `module.md`) | 5+ | 2+ |\n| util / config | Concise (use `module-simple.md`) | 1-2 | 1 |\n| test / example | Minimal (use `module-simple.md`) | 1 | optional |\n\n**General rules**: larger source files → longer docs; more exports → more examples; more dependents → more diagrams.\n\n> In incremental mode, these targets are overridden — see [Mode Overrides](#mode-overrides).\n\n### Module Document Sections\n\nUse `module.md` (11 sections) for core modules, `module-simple.md` (6 sections) for util/config/helper modules.\n\n**Full template (`module.md`) — for core modules:**\n\n| # | Section | Content | Lines Target | Diagram |\n|---|---------|---------|-------------|---------|\n| 1 | **Overview** | Intro + value proposition + architecture role | 2-3 paragraphs | — |\n| 2 | **Architecture Position** | Mermaid diagram highlighting module position | — | flowchart TB |\n| 3 | **Feature Table** | Features with related APIs | N features | — |\n| 4 | **File Structure** | File tree + responsibilities | tree | — |\n| 5 | **Core Workflow** | Mermaid flowchart | — | sequenceDiagram |\n| 6 | **State Diagram** | ⚡ OPTIONAL — only for stateful modules | OPTIONAL | stateDiagram-v2 |\n| 7 | **API Summary** | Overview table + link to api.md (no detailed signatures) | table + link | — |\n| 8 | **Usage Examples** | 1-3 examples (first = Quick Start) | 5+ (core) / 1-2 (util) | — |\n| 9 | **Best Practices** | Recommended / avoid patterns | recommended/avoid | — |\n| 10 | **Design Decisions** | ⚡ OPTIONAL — only for core modules with significant choices | OPTIONAL | — |\n| 11 | **Dependencies & Related Docs** | Dependency diagram + cross-links | — | flowchart LR |\n\n**Lightweight template (`module-simple.md`) — for util/config/helper/test modules:**\n\n| # | Section | Content |\n|---|---------|---------|\n| 1 | **Overview** | 1 paragraph |\n| 2 | **API Summary** | Overview table + link to api.md |\n| 3 | **Usage Examples** | 1-2 examples |\n| 4 | **File Structure** | File tree |\n| 5 | **Best Practices** | ⚡ OPTIONAL |\n| 6 | **Related Docs** | Cross-links |\n\n**Template selection**: Before generating each module's documentation, run `cd <skill-root> && node scripts/index.cjs analyze-module <module-path> --json` to get structured signals. Use `docScope` as the primary signal — it appears as `\"docScope\": \"core\"` in the JSON output:\n\n| `docScope` | Use this template | Lines target | Diagrams |\n|---|---|---|---|\n| `core` | `module.md` (11-section) | 400+ | 2+ distinct types required |\n| `overview` | `overview.md` (5-section) | 80-150 | optional |\n| `_index` | `_index.md` only | 30-50 | none |\n\nThe `templateRecommendation` and `roleRecommendation` fields are also present in the output and are based on quantifiable metrics but are **overrideable**: your semantic understanding of the module's business role takes precedence.\n\n> Code provides signals. You make the final decision.\n\n### 🔴 Code Examples\n\nEvery code example must:\n\n1. **Complete and runnable**: Include import, initialization, invocation, result handling\n2. **Cover exported interfaces**: At least 1 example per major exported API\n3. **Include comments**: Explain key steps and design intent\n4. **Match project language**: Follow language best practices\n5. **Tiered examples for core APIs** (minimum 5 examples per core doc): Three levels — basic usage, advanced usage, and error handling — for each major exported function\n6. **Sanitized secrets**: NO actual credentials — use placeholders (see \"Secret & Credential Sanitization\" above)\n\n### Cross-Document Linking\n- Every document MUST contain a **\"Related Documents\"** section at the end\n- Module docs should link outward to: architecture position, API reference, dependency graph\n- API docs should link back to: parent module, usage examples, type definitions\n\n**Path format rules for \"Related Docs\" table (\"Related Docs\" in `module-simple.md` / \"Dependencies & Related Docs\" in `module.md`)**:\n- **Wiki page links**: Use **relative paths** from the current doc's location. E.g., from `modules/badge.md`: `[version]({{ ../api/version.md }})` → resolved to `../api/version.md`\n- **Source file references**: Do NOT put source files (`.ts`, `.js`, etc.) in the Related Docs table. Source files belong in **section footers** with absolute paths: `[version.ts](/src/utils/version.ts#L1)`\n- **Wrong**: `[version.ts](/wiki/utils/version.md)` — mixes wiki path prefix with source file name\n- **Wrong**: `[version.ts](../modules/version.md)` — links to a wiki page, not the source file\n- **Correct (source)**: `[version.ts](/src/utils/version.ts#L1)`\n- **Correct (wiki page)**: `[API reference](../api/version.md)`\n\n### Facts-First Rule\n\nBefore writing any API description, function signature, or export list for a module:\n\n1. Read `.nium-wiki/cache/facts/<module-path-with-slashes-replaced-by-double-underscores>.json`\n2. All export names and signatures in the documentation MUST match `exports[]` in the facts file\n3. If a symbol is not in `exports[]`, do not document it as a public API. If `exports[]` contains symbols not yet in the document, add them.\n4. If the facts file does not exist, run `cd <skill-root> && node scripts/index.cjs analyze-batch <project-root>` before proceeding — this writes facts to `.nium-wiki/cache/facts/`. Do NOT generate documentation without facts.\n\n### Multi-Module Generation Mode\n\nWhen generating documentation for multiple modules at once using `analyze-batch`:\n\n1. Run `cd <skill-root> && node scripts/index.cjs discover-modules <project-root> --json` to get the full module list\n2. Run `cd <skill-root> && node scripts/index.cjs analyze-batch <project-root>` to extract facts for all modules\n3. Output one summary table before starting generation:\n   - Total modules discovered\n   - Modules with `needsReview: true` (list paths and reasons)\n   - Estimated documents to generate\n4. For modules with `needsReview: true`: pause and list them with their reason (`confidence < 0.3` or `secret detected`). Wait for user confirmation before generating those modules. All other modules proceed automatically.\n5. Do NOT output a per-module Exploration Report in Multi-Module Generation Mode — the summary table replaces it.\n\n### Incremental Facts Rule\n\nOn patch operations (updating existing documentation after code changes), run this **before Step 1 (Read the baseline) of the Surgical Edit sequence**:\n\n1. Re-read the module's `facts.json` even if the document already exists\n2. The facts file is the authoritative source for what the current API looks like\n3. The existing document is a starting point for structure, not a source of truth for API signatures\n\n---\n\n## Mode Overrides\n\n> **Applies when**: Running in incremental mode, triggered by the `incremental` pipeline.\n> **Priority**: These overrides take precedence over the Quality Gate rules above.\n> See [Surgical Edit: Modifying Existing Docs](#surgical-edit-modifying-existing-docs) for the full execution guide.\n\n| Quality Gate Rule | Incremental Mode Behavior |\n|---|---|\n| core doc ≥ 5 code examples | Add **0–1 example** only when a new API is introduced by the changed source |\n| ≥ 2 distinct diagram types | **Do NOT regenerate any diagram** — preserve existing diagrams unchanged |\n| Full 11-section `module.md` template | **Patch only the affected section(s)** based on which source files are listed in `triggeredBy` |\n| `flowchart LR` for type/module relationships | **Skip** unless the class was modified **and** its source was read |\n| API summary must cover all exports | **Only cover exports that changed** |\n| core doc ≥ 400 lines | **No minimum** — a 50-line targeted patch is preferable to a 400-line rewrite |\n| ≥ 3 source reference links | **Only links related to changed source files** |\n\n---\n\n## Input Classification\n\nBefore invoking any CLI commands, parse the user input to determine the execution path:\n\n| InputType | Trigger Phrases | Execution Path |\n|-----------|----------------|----------------|\n| `FULL` | \"generate wiki\", \"create docs\", \"rebuild wiki\" | Full pipeline — all modules |\n| `MODULE_TARGETED` | \"generate wiki for X\", \"update X docs\", \"upgrade X docs\" | Module-level pipeline |\n| `MAINTENANCE` | \"upgrade wiki\", \"refresh wiki\", \"audit docs\" | Maintenance pipeline |\n| `EXPLORE` | \"analyze module X\", \"explore X\" | Read-only analysis, no file writes |\n\n---\n\n## Module-Targeted Generation\n\n> **Applies when**: InputType = `MODULE_TARGETED` (user specifies a specific module).\n> **Otherwise**: For `FULL` mode (no module specified, e.g. \"generate wiki\" / \"rebuild wiki\"), skip this entire section and follow [Multi-Module Generation Mode](#multi-module-generation-mode) — the summary table there replaces the per-module Exploration Report.\n\n### Step 0 — Path Resolution\n\nExtract the module path from user input:\n```\n\"generate wiki for src/core/analyzeProject\"  →  src/core/analyzeProject\n\"update modules/auth docs\"                   →  modules/auth\n\"explore utils/fileWalker\"                   →  src/utils/fileWalker\n```\n\nNormalize all paths relative to the project root.\n\n### Step 1 — Pre-flight Check\n\n```bash\ncd <skill-root> && node scripts/index.cjs analyze-module <module-path> --json\n```\n\nRead the returned `docScope` and `roleRecommendation`:\n```\ndocScope: core      →  module.md (11-section, 400+ lines, 2+ diagrams)\ndocScope: overview   →  overview.md (5-section, 80-150 lines)\ndocScope: _index     →  _index.md only\n```\n\nAlso read the module's facts file (Facts-First Rule):\n```\n<project-root>/.nium-wiki/cache/facts/<module-path-with-slashes-as-double-underscores>.json\n```\nIf missing, run `cd <skill-root> && node scripts/index.cjs analyze-batch <project-root>` first.\n\nDetermine document state:\n```\nif wiki file already exists for this module:\n    →  EXPLORE_THEN_PATCH (surgical edit, preserve existing content)\nelse:\n    →  EXPLORE_THEN_GENERATE (first-time generation)\n```\n\n### Step 2 — Code Exploration (Read-Only, No File Writes)\n\nRead the actual source code — do not rely on file names or structure alone:\n```\nread_file: all source files in the module directory (*.ts/*.js, *.py, *.go, *.rs, *.java, *.cs, *.rb, *.php, etc.)\nread_file: entry/index file (index.ts, __init__.py, mod.rs, package-info.java, etc.)\nread_file: type/interface definitions if present (types.ts, types.d.ts, interfaces/, etc.)\n```\n\nAnalyze:\n- Function signatures: purpose, parameters, return values, side effects\n- Class hierarchies and inheritance\n- Data flow paths and state mutations\n- Error handling strategies\n- Design patterns in use\n- 🔴 **Secrets detection**: identify hard-coded credentials, API keys, tokens\n\n### Step 3 — Exploration Report (Output to User, No File Writes)\n\nDisplay a structured report and **await user confirmation before proceeding**:\n\n```markdown\n## Module Exploration Report: <module-name>\n\n**Role**: <roleRecommendation>\n**Template**: <module.md / module-simple.md>\n**State**: <EXPLORE_THEN_GENERATE / EXPLORE_THEN_PATCH>\n\n### Key Findings\n- Exports: N functions, M types\n- Dependents: N modules depend on this\n\n### Recommended Sections\n(see [Module Document Sections](#module-document-sections) for section list, lines targets, and diagram types)\n\n---\nProceed with generation? [yes / no / customize]\n```\n\n**This step is mandatory.** A confirmation gate prevents generating content before understanding the code. Do not skip to Step 4 without presenting this report.\n\n### Step 4 — User Response\n\n| Response | Action |\n|----------|--------|\n| `yes` | Proceed to Step 5 using the recommended template |\n| `no` | Exit — write nothing, report nothing |\n| `customize` | Apply user-specified section additions or removals, then proceed |\n\n### Step 5 — Execution\n\n**If `incremental` returns empty** (no code changes detected, but user explicitly specified a module):\n\n```\nSkip incremental dependency computation\nUse user-specified module path as the sole target\nDo NOT treat as surgical patch (no old doc to compare against)\nResume from Step 1 Pre-flight Check, then proceed to generation\n```\n\n**If `incremental` returns affected docs**: use the pipeline's `triggeredBy` + `updateStrength` to decide full vs. surgical.\n\n---\n\n## Full Decision Tree\n\n```\nUser Input\n  │\n  ├─ \"generate wiki\" (no module specified)\n  │    ├─ .nium-wiki does not exist → init → FULL pipeline (Sections 1–9, + Section 10 if multi-language)\n  │    └─ .nium-wiki exists → FULL pipeline (Sections 1–9, + Section 10 if multi-language)\n  │         │\n  │         ├─ Section 4 runs: build-deps → discover-modules → analyze-batch\n  │         │    └─ Follow Multi-Module Generation Mode rules during Section 8 (Content Generation)\n  │         │\n  │         └─ After Section 4: check project size\n  │              ├─ module count > 10 OR source files > 50 OR LOC > 10,000\n  │              │    └─ Switch to Progressive Scanning (see \"Progressive Scanning for Large Projects\")\n  │              └─ otherwise → continue full pipeline normally\n  │\n  ├─ \"generate wiki for <module>\"\n  │    ├─ .nium-wiki does not exist → init → MODULE_TARGETED\n  │    └─ .nium-wiki exists\n  │         ├─ incremental has changes → affected docs from pipeline\n  │         └─ incremental is empty  → use user-specified module as target\n  │    → Exploration Report → User confirms → Generate\n  │\n  ├─ \"upgrade <module> docs\"\n  │    └─ MODULE_TARGETED + force full regeneration\n  │\n  ├─ \"analyze module X\"\n  │    └─ Run `cd <skill-root> && node scripts/index.cjs analyze-module <module-path> --json` — JSON signals only, no wiki files written\n  │\n  └─ \"refresh / upgrade wiki\" (no module)\n       └─ MAINTENANCE → audit → regenerate failing docs\n```\n\n---\n\n## Workflow\n\n### 1. CLI Commands Quick Reference\n\n> **🔴 Execution context**: Skill CWD is not guaranteed to be the skill root across Coding Agents, so `scripts/index.cjs` cannot be resolved from the default CWD. Every runnable example is written as `cd <skill-root> && node scripts/index.cjs ...` — the Agent MUST `cd` in first, then pass `<project-root>` as an argument.\n>\n> `<skill-root>` is the directory containing this `SKILL.md` file. Resolve it from this file's absolute path, do not guess from agent-specific conventions.\n\n```bash\n# Signatures (paths shown without the `cd <skill-root> &&` prefix for readability)\nnode scripts/index.cjs init <project-root> --lang <code>              # Initialize .nium-wiki directory (lang: zh/en/ja/ko/fr/de)\nnode scripts/index.cjs build-deps <project-root>                      # Build import/require dependency graph\nnode scripts/index.cjs discover-modules <project-root>                # Discover all modules via import graph + directory scan\nnode scripts/index.cjs analyze-batch <project-root> [--force] [--min-confidence <n>]  # Extract facts for all modules\nnode scripts/index.cjs analyze-module <module-path> [--json]          # Analyze one module: classify role, recommend template\nnode scripts/index.cjs incremental <project-root> [--no-commit] [-v]  # Full pipeline: diff → deps → doc-index → affected docs\nnode scripts/index.cjs diff-index <project-root>                      # Detect file changes (--no-update to skip hash write)\nnode scripts/index.cjs build-index <project-root>                     # Build source ↔ doc mapping index\nnode scripts/index.cjs generate-sidebar <wiki-path> [--all]           # Generate sidebar.json for all language directories\nnode scripts/index.cjs audit-docs <wiki-path> [--verbose|--json|--mermaid-strict|--role <role>]  # Check doc quality\nnode scripts/index.cjs serve <wiki-path>                              # Start docsify server\n```\n\nFor detailed usage, see `cd <skill-root> && node scripts/index.cjs --help`\n\n> **⚠️ Path argument convention**: This document uses four distinct path notations — do not confuse them:\n>\n> | Notation | Meaning |\n> |---|---|\n> | `<skill-root>` | **The directory containing this `SKILL.md` file.** Always `cd` here before invoking `node scripts/index.cjs ...` so the relative path `scripts/index.cjs` resolves regardless of the Agent's default CWD |\n> | `<project-root>` | **Absolute path of the user's current workspace root** — the directory the user is working in (e.g. `/Users/alice/repos/my-app`). Passed as a command argument, NOT as CWD |\n> | `<module-path>` | Project-root-relative path to a single module (e.g. `src/core/analyzeProject`). Used only with `analyze-module` |\n> | `<wiki-path>` | Path to the `.nium-wiki` directory, usually `<project-root>/.nium-wiki`. Used with `generate-sidebar`, `audit-docs`, `serve`, `i18n` |\n>\n> The Agent is responsible for substituting every placeholder with a real value before executing. Do NOT\n> pass the placeholder string literally, and do NOT pass `.` — `.` would resolve against an unpredictable\n> CWD depending on the host Agent.\n\n### 2. Language Detection (MANDATORY)\n\n> **⚠️ CRITICAL: This step must be completed BEFORE any other operation.**\n\nBefore running any CLI commands or generating any documentation:\n\n1. Check if `.nium-wiki/config.json` exists\n2. **If exists**: Read the `language` field — this is the **primary documentation language** and the **source of truth**\n3. **If not exists**: You will set it when running `init --lang <code>` (determine from project's natural language + user conversation language)\n\n> **Rule**: The `language` field in `config.json` is the **only authoritative source** for documentation language.\n> Do NOT infer language from source code comments, README, file names, or conversation context.\n\n#### 2.1 Language Conflict Resolution\n\n> **🔴 CRITICAL: Never modify `config.json` directly via file write or text replacement.**\n> Use the following procedures instead:\n\n| Scenario | Action |\n|----------|--------|\n| Config exists, user wants to add a secondary language (e.g. config=`en`, user wants to also generate `zh`) | Run `cd <skill-root> && node scripts/index.cjs init <project-root> --lang zh` — appends `zh` as a secondary language to config |\n| User wants to change the primary language (e.g. config=`en`, user wants `zh` as primary) | Run `cd <skill-root> && node scripts/index.cjs init <project-root> --lang zh --force` — overwrites primary language to `zh` |\n| User wants to generate docs in a language already in config | No config change needed — run `cd <skill-root> && node scripts/index.cjs incremental <project-root>` directly |\n\n**Why**: Direct file edits to `config.json` bypass the CLI's validation and can corrupt the JSON structure. Always go through the CLI.\n\n### 3. Language Configuration\n\nRead `.nium-wiki/config.json` and extract the `language` setting.\nFormat is slash-separated: the first language is the **primary language** (e.g. `zh`, `en`, `zh/en`).\n\n- Generate **all primary documentation** in the primary language to `.nium-wiki/wiki/`.\n- If secondary languages are configured (e.g. `zh/en` means primary=zh, secondary=en), after primary docs are written, translate all wiki documents into `wiki_{lang}/` directories (e.g. `.nium-wiki/wiki_en/`). See **Section 10** for details.\n\n> **Convention**: `wiki/` = primary language, `wiki_{lang}/` = secondary language. The translated directory must mirror the exact same structure and filenames as `wiki/`.\n\n> **🔴 IMPORTANT: Single-language output only.** Templates contain bilingual headings (e.g. `## Architecture Preview / 架构预览`) for reference purposes only. When generating documentation, output **only** the primary language. Do NOT mix languages or copy the `English / 中文` format into the output.\n> - If `language` is `en`: headings should be `## Architecture Preview`, NOT `## Architecture Preview / 架构预览`\n> - If `language` is `zh`: headings should be `## 架构预览`, NOT `## Architecture Preview / 架构预览`\n\n### 4. Project Analysis (Deep)\n\nRun the following commands to build the dependency graph, discover modules, and extract facts:\n\n```bash\ncd <skill-root> && node scripts/index.cjs build-deps <project-root>\ncd <skill-root> && node scripts/index.cjs discover-modules <project-root>\ncd <skill-root> && node scripts/index.cjs analyze-batch <project-root>\n```\n\n> `build-deps` is auto-triggered by `discover-modules` and `analyze-batch` if `dep-graph.json` is missing — you can skip it if the graph is already up to date.\n\n1. **Identify tech stack**: Check dependency manifests (e.g. package.json, requirements.txt, go.mod, Cargo.toml, pom.xml, etc.)\n2. **Find entry points**: Locate main source files (e.g. src/index.ts, main.py, main.go, main.rs, src/main/java/App.java, etc.)\n3. **Identify modules**: Use `discover-modules` output — it merges import-graph discovery with directory scan for full coverage\n4. **Find existing docs**: README.md, CHANGELOG.md, etc.\n\n### 5. Deep Code Analysis (CRITICAL)\n\n**IMPORTANT**: For every module, read the actual source code — do not rely on file names or directory structure alone:\n\n1. **Read source files**: Open key files with read_file tool\n2. **Parse semantics**: Determine what the code does, not merely how it is organized\n3. **Capture details**:\n   - Function signatures: purpose, parameters, return values, side effects\n   - Class hierarchies and inheritance chains\n   - Data flow paths and state mutations\n   - Error handling strategies\n   - Design patterns in use\n   - 🔴 **Secrets detection**: Identify hard-coded credentials, API keys, tokens, and sensitive data that need sanitization\n4. **Map relationships**: Module dependencies, call graphs, data flow\n5. **Flag complexity hotspots**: Functions with deep nesting (> 4 levels), high branching (> 10 conditions), or excessive length (> 100 LOC). Document these in module docs with logic explanations and refactoring suggestions.\n\n### 6. Change Detection\n\nUse the **automated incremental pipeline** to detect changes and compute the precise list of affected docs in one step:\n\n```bash\ncd <skill-root> && node scripts/index.cjs incremental <project-root> [--no-commit] [-v]\n```\n\nThis runs the full pipeline: `diff-index` → `build-deps` → `build-index` → transitive-impact → doc-dep analysis. It outputs:\n- Which source files changed (+added, ~modified, -deleted)\n- Which wiki docs need regeneration (with reason: source_changed, dep_changed, doc_dep_changed, inferred)\n- Which docs will be deleted\n- Which docs are preserved (unchanged)\n\n**If wiki doesn't exist yet**: the pipeline automatically falls back to full-generation mode.\n\n> **IMPORTANT**: Always run `incremental` before generating, not `diff-index` alone.\n> `diff-index` only detects source changes — it does NOT map them to wiki docs.\n> After `incremental` completes, always check i18n sync status (see **Section 10**) before declaring the update done.\n\n### 7. Target Docs (resolved by the pipeline above)\n\nThe `incremental` command in Section 6 already resolves this. Each affected doc includes:\n- `docPath`: relative wiki path (e.g. `modules/core/source-index.md`)\n- `reason`: why it needs updating\n- `triggeredBy`: source files that triggered the update\n\nManual fallback (if pipeline not available): Read `.nium-wiki/cache/doc-index.json` → `sourceToDoc` field. If a changed source file has no entry, infer by naming convention: `src/fooBar.ts` → `modules/foo-bar.md`, and nested paths: `src/core/analyzeProject.ts` → `modules/core/analyze-project.md`.\n\n### 8. Content Generation\n\n> **🔴 Language**: use `language` from `.nium-wiki/config.json` — see Section 3. Do NOT infer from source code or conversation.\n\nGenerate content adhering to the **quality gate** defined above:\n\n#### 8.1 Template Selection Rules\n\nRead the named template file from `templates/` before writing each doc. Not all templates are needed for every project — apply these rules:\n\n| Doc | Template file | When to generate | Notes |\n|---|---|---|---|\n| `index.md` | `templates/index.md` | always | — |\n| `architecture.md` | `templates/architecture.md` | always | — |\n| `modules/<name>.md` | `templates/module.md` (core) or `templates/module-simple.md` (util/config/helper/test) | always (choose by `docScope`) | Module docs only contain an API overview table + link. Detailed signatures and type definitions belong exclusively in `api.md`. |\n| `<domain>/_index.md` | `templates/_index.md` | one per domain directory under `wiki/` | Short overview + architecture diagram + sub-module table. No detailed API docs. |\n| `getting-started.md` | `templates/getting-started.md` | project has install steps OR is a library/framework | — |\n| `api/<name>.md` | `templates/api.md` | project exports programmatic APIs (functions/classes/types) | Single source of truth for all API signatures/types. Mark `@deprecated` with migration guidance. Include parameter constraints where applicable (e.g. \"must not be empty\", \"range 0-100\"). |\n| `doc-map.md` | `templates/doc-map.md` | module count >= 5 | — |\n\n#### 8.2 Source Links\n\nAttach navigable source links next to documented symbols:\n\n```markdown\n### `functionName` [📄](/src/file.ts#L42)\n```\n\n### 9. Save\n\n- Write wiki files to `.nium-wiki/wiki/`\n- Sanitize link paths and build indexes **after** wiki files are written:\n\n```bash\ncd <skill-root> && node scripts/index.cjs sanitize-links <project-root>\ncd <skill-root> && node scripts/index.cjs build-index <project-root>\ncd <skill-root> && node scripts/index.cjs diff-index <project-root>  # --no-update to skip hash write\n```\n\n> `sanitize-links` scans all wiki `.md` files and converts any `file://` absolute paths to project-root-relative paths. **MUST** run before `build-index`.\n> `build-index` scans source path links in wiki files to build `cache/doc-index.json` (source ↔ doc mapping for incremental updates).\n> `diff-index` (without `--no-update`) is called last so the hash snapshot reflects the final state.\n\n- Refresh `meta.json` timestamp\n- 🔴 **MANDATORY** — Generate sidebar:\n\n```bash\ncd <skill-root> && node scripts/index.cjs generate-sidebar <wiki-path> --all\n```\n\n> This generates `sidebar.json` for all language directories. It is **idempotent** — if `sidebar.json` already exists it will be skipped. If a legacy `_sidebar.md` exists it will be migrated automatically. **This step is mandatory after every wiki generation** — the preview server and all modern tooling depend on `sidebar.json`. Do NOT skip it.\n\n### 10. Multi-language Translation\n\n> **Applies to both full generation and incremental updates.** Every time `wiki/` is modified, secondary language files in `wiki_{lang}/` that correspond to changed docs must be kept in sync — do not leave them stale.\n>\n> **Skip this step if `language` contains only one language.**\n\n#### 10.1 Build Translation Task List\n\nRun `cd <skill-root> && node scripts/index.cjs i18n status <wiki-path>` to get the sync report. Extract every file marked `Missing` or `Outdated` into an explicit checklist (e.g. `❌ [Missing] index.md`, `⚠️ [Outdated] architecture.md`).\n\n**You MUST translate every file in this list — no exceptions, no skipping.**\n\n> **Incremental mode**: If this is a partial update (incremental pipeline detected changes), only translate files that are `Outdated` or `Missing` — do NOT re-translate all `Synced` files.\n> **Full generation mode**: Translate all `Missing` files (`Outdated` may not exist yet since memory has not been populated).**\n\n#### 10.2 Translate Files One by One\n\n**🔴 MANDATORY: Process EVERY file in the checklist sequentially.**\n\nFor each file:\n1. Read the primary wiki file from `wiki/`\n2. Translate content to the target language\n3. Write to `wiki_{lang}/` with **identical path and filename** (e.g. `wiki/core/auth.md` → `wiki_en/core/auth.md`)\n4. **Preserve unchanged**: all Mermaid diagrams, code blocks (EXCEPT sanitize any secrets/credentials if found), source path links, and markdown structure\n   - **Secret sanitization exception**: If code blocks contain secrets/credentials, sanitize them using the rules from the \"Secret & Credential Sanitization\" section\n\nAfter each file, report progress: `✅ [3/17] wiki_en/core/_index.md`\n\n> **Batching rule**: If the file count exceeds 10, translate in batches of 5. After each batch, report progress and continue immediately — do NOT stop or ask the user unless you hit a context limit. If you must stop, clearly list the remaining untranslated files so the user can say \"continue\" to resume.\n\n#### 10.3 Finalize\n\nAfter ALL files are translated:\n```bash\ncd <skill-root> && node scripts/index.cjs i18n sync-memory <wiki-path>\n```\n\nRun `cd <skill-root> && node scripts/index.cjs i18n status <wiki-path>` again to verify all files show as `Synced`. If any files are still `Missing` or `Outdated`, go back and translate them.\n\n**Delete rule**: When deleting any file from `wiki/` (e.g. because the source file was deleted), you **MUST** also delete the corresponding file from ALL `wiki_{lang}/` directories.\n\n---\n\n## Surgical Edit: Modifying Existing Docs\n\n> **Applies when**: Updating 1-3 existing wiki documents (incremental pipeline result), not full generation.\n>\n> When an existing doc already exists, your goal is to **patch the minimum surface area**, not regenerate the full file. Every line you leave untouched is a line that does not need to be reviewed, diffed, or reverted.\n\n### 🔴 Quality Gate Disabled During Incremental Updates\n\n> **⚠️ CRITICAL**: When running in incremental mode (triggered by `incremental` pipeline), the\n> **global Quality Gate rules above do NOT apply** to existing docs being surgically patched.\n> Applying those rules blindly is the primary cause of oversized diffs and unnecessary rewrites.\n\n**See [Mode Overrides](#mode-overrides) for the full table of Quality Gate rule overrides in incremental mode.**\n\n**`updateStrength` from the `incremental` pipeline controls patch depth:**\n\n| `updateStrength` | Meaning | Action |\n|-----------------|---------|--------|\n| `full` | Function signature changed OR module role changed | Full regeneration of this doc |\n| `incremental` | Transitive/dep/doc-dep propagation | **Surgical patch only** — no quality gate, no template |\n\n> **Rule**: If the pipeline says `updateStrength: incremental` for a doc, treat it as a targeted\n> patch — update only the section that mentions the triggering source, leave everything else untouched.\n\n### Mandatory Steps (Execute in Order)\n\n**Never start from the template when updating an existing doc.**\n\n**Step 1 — Read the baseline**\n- read_file: the existing wiki doc (read-only, this is what you are preserving)\n- read_file: all source files that triggered the update (from `incremental` output)\n\n**Step 2 — Evaluate match degree**\nCross-read the existing doc against the changed source files. Answer:\n- Which sections of the existing doc directly correspond to the changed code?\n- Which sections are completely unaffected?\n- What is your overall match degree?\n\n**Step 3 — Decide strategy by match degree**\n\n| Match degree | Signals | Action |\n|---|---|---|\n| **≥ 80%** | Internal change only (comment, variable rename, refactor); function signatures unchanged; core topics not touched | **Default: PRESERVE** — update version footer only, do not touch the body. If no version footer exists, create one (a single line). |\n| **40–80%** | One function's behavior changed; new export added; file structure changed | Patch only the affected sections — leave everything else untouched |\n| **< 40%** | Function renamed or signature changed; module role changed; multiple sections invalidated | Full regeneration of this document |\n\n**Step 4 — Write the patched doc**\n- Output MUST be a minimal diff from the original — significantly smaller than a full regeneration\n- Do not use the module template as the starting point for an existing doc\n\n**Step 5 — Self-verify**\nBefore finalizing, mentally check: does the new file differ from the original in anything beyond the source-change-affected sections, newly-added sections, and now-incorrect sections? If yes, you are rewriting too much — restore the preserved sections.\n\n### Principle 1 — Preservation Priority\n\nUnless the source has actually changed, the following MUST be preserved exactly as-is:\n\n| Content type | When to update |\n|---|---|\n| Accurate description paragraphs | Never (unless source logic changed) |\n| Correct code examples | Never (unless the code itself changed) |\n| Mermaid diagrams | Never (unless the underlying flow/calls changed) |\n| File structure tree | Only when files were added/removed |\n| API summary table | Only when function signatures changed |\n| Best practices section | Never (unless the module logic changed) |\n| Cross-links | Only when linked docs were moved/renamed |\n\n### Principle 2 — Change Scope Isolation\n\nBefore editing, write down the minimum scope:\n\n```\nChange type → Minimum doc impact\n\n1. Function logic changed (signature unchanged)\n   → Update only that function's description paragraph\n   → Code example only if the behavior changed in a user-visible way (callers must change)\n   → If change only affects internal call chains, not external callers: update version footer only\n   → Do NOT rewrite other functions' descriptions\n\n2. New exported function added\n   → Append one row to the API summary table\n   → Add one usage example (optional)\n   → Do NOT rewrite existing examples\n\n3. File added/removed\n   → Update the File Structure tree\n   → Do NOT regenerate Architecture Position diagram (unless the module's position actually changed)\n\n4. Bug fix (doc described old/wrong behavior)\n   → Fix only the affected paragraph\n   → Do NOT restructure the entire section\n```\n\n### Principle 3 — When in Doubt, Don't Touch\n\n> **🔴 PRESERVE is the default at ≥ 80% match.** If a paragraph is accurate (correctly describes the code) and not outdated (code hasn't changed in a way that contradicts it), leave it alone. Rewriting for style, phrasing, or \"cleaner\" expression is always wrong — a smaller diff beats a prettier paragraph. The burden of proof is on rewriting, not on preserving.\n\n### Bug-Level Violations (Anti-Patterns + Hard Rules)\n\nTreat the following as bugs, not stylistic choices:\n\n| Violation | Why it's wrong |\n|---|---|\n| Starting from the module template when patching an existing doc | Creates massive diff for no reason; contradicts \"read the baseline first\" |\n| Full regeneration when function signature is unchanged | Internal implementation change ≠ doc invalidation |\n| Rewriting a paragraph that remains accurate | Accurate = leave alone; \"improving\" wording yields diff noise |\n| Rewriting code examples whose code has not changed | Even correct examples get rephrased |\n| Regenerating a Mermaid diagram whose source has not changed | Diagram was fine before |\n| Reordering sections | Changes diff noise, no factual benefit |\n| Rephrasing the file structure tree | Only update when structure changed |\n| Writing to an existing doc without reading it first | You can't preserve what you haven't read |\n\n---\n\n## Output Structure\n\n### 🔴 MANDATORY: Domain-Based Directory Hierarchy (No Flat Layout!)\n\n**Organize by business domain, not flat modules/ directory.**\n\n> **Directory naming rule**: All wiki directory names MUST use **lowercase + hyphens** (kebab-case), e.g. `core/`, `language-handlers/`, `utils/`. Never use PascalCase or camelCase.\n\n```\n.nium-wiki/\n├── config.json\n├── meta.json\n├── cache/\n├── wiki/                              # Primary language docs\n│   ├── index.md                    # Project homepage\n│   ├── architecture.md             # System architecture\n│   ├── getting-started.md          # Quick start\n│   ├── doc-map.md                  # Document relationship map\n│   │\n│   ├── <Domain-1>/                 # Business domain 1\n│   │   ├── _index.md              # Domain overview\n│   │   ├── <Sub-domain>/          # Sub-domain\n│   │   │   ├── _index.md\n│   │   │   └── <module>.md        # 400+ lines\n│   │   └── ...\n│   │\n│   ├── <Domain-2>/                 # Business domain 2\n│   │   └── ...\n│   │\n│   └── api/                        # API reference\n├── wiki_en/                           # Secondary language (if configured)\n│   ├── index.md                    # Same structure as wiki/\n│   ├── architecture.md\n│   └── ...\n```\n\n### Automatic Domain Discovery\n\nInfer business domains from the project's directory structure, package boundaries, and import graph. Group modules that share a cohesive responsibility into the same domain directory. Each domain MUST contain:\n\n| File | Description |\n|------|-------------|\n| `_index.md` | Domain overview, architecture diagram, sub-module list |\n| Sub-domain dirs | Related modules grouped by function |\n| Each document | **Depth scales with module role — see [Complexity-Scaled Quality Targets](#-mandatory-complexity-scaled-quality-targets)** |\n\n---\n\n## Progressive Scanning for Large Projects\n\nWhen module count > 10, source files > 50, or LOC > 10,000, switch to Progressive Scanning:\n\n1. **Prioritize modules** — entry points (weight 5) > dependents (4) > has docs (3) > code size (2) > recently modified (1)\n2. **Generate 1-2 modules per batch** — depth scales with complexity\n3. **Track progress** in `cache/progress.json` — record completed/pending modules and current batch number\n4. **After each batch** — run `cd <skill-root> && node scripts/index.cjs audit-docs <wiki-path> --verbose --mermaid-strict`, report results to user, then prompt:\n   - `\"continue\"` — next batch\n   - `\"audit docs\"` — re-run validation\n   - `\"regenerate <module>\"` — redo a specific module\n   - If `--mermaid-strict` reports errors: **fix them before continuing** — Mermaid syntax errors degrade the diagram catalog silently and accumulate technical debt.\n5. **Resume** — when user says \"continue wiki generation\", read `cache/progress.json` and pick up where you left off\n\n---\n\n## Documentation Upgrade & Maintenance\n\nWhen existing wiki docs are outdated or below quality gate, use one of these strategies:\n\n| Strategy | When to Use | User Command |\n|----------|-------------|--------------|\n| `full_refresh` | Large version gap or poor overall quality | \"refresh all wiki\" |\n| `incremental_upgrade` | Many modules, want to keep existing content | \"upgrade wiki\" |\n| `targeted_upgrade` | Only specific modules need attention | \"upgrade \\<module\\> docs\" |\n\nExecution: scan existing docs with `cd <skill-root> && node scripts/index.cjs audit-docs <wiki-path> --mermaid-strict`, generate an upgrade report, then re-generate failing docs batch by batch. **Always include `--mermaid-strict`** so that Mermaid syntax errors block the upgrade and prevent bad diagrams from entering the wiki.\n\n**Version footer** — append to every generated document:\n`*Generated by [Nium-Wiki v{{ NIUM_WIKI_VERSION }}](https://github.com/niuma996/nium-wiki) | {{ GENERATED_AT }}*`\n\n---\n\n## Finalization Checklist (MANDATORY — Run After Every Generation)\n\n> **Applies after every wiki generation**: full pipeline, module-targeted, incremental, or surgical patch.\n> This checklist is the **last step of every execution path**. Do not skip any item.\n\n- [ ] `cd <skill-root> && node scripts/index.cjs generate-sidebar <wiki-path> --all`\n  → Generates `sidebar.json` for all language directories. Idempotent — safe to run multiple times.\n  → Migrates legacy `_sidebar.md` to `sidebar.json` automatically if encountered.\n  → **⚠️ Do NOT skip**: the preview server and modern tooling depend on `sidebar.json`.\n\n- [ ] `cd <skill-root> && node scripts/index.cjs i18n sync-memory <wiki-path>` (if multi-language)\n  → Updates translation memory so subsequent runs show accurate sync status.\n\n- [ ] `cd <skill-root> && node scripts/index.cjs audit-docs <wiki-path> --mermaid-strict` (full generation only)\n  → Validates all Mermaid diagrams. Mermaid errors block the run — fix them before declaring done.\n\n> **Rule**: These finalization steps must run **after** all wiki content is written and **after** all translation files are updated. They are not optional cleanup — they are part of the generation contract.\n(read version from `scripts/version.json` — `version` field)","tags":["nium","wiki","niuma996","agent-skills","claude-code","code-graph","code2doc","docs","karpathy","llm-wiki","llm-wiki-karpathy","skill"],"capabilities":["skill","source-niuma996","skill-nium-wiki","topic-agent-skills","topic-claude-code","topic-code-graph","topic-code2doc","topic-docs","topic-karpathy","topic-llm-wiki","topic-llm-wiki-karpathy","topic-skill","topic-wiki","topic-wiki-engine","topic-wiki-generator"],"categories":["nium-wiki"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/niuma996/nium-wiki/nium-wiki","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add niuma996/nium-wiki","source_repo":"https://github.com/niuma996/nium-wiki","install_from":"skills.sh"}},"qualityScore":"0.460","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 21 github stars · SKILL.md body (48,698 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:38.507Z","embedding":null,"createdAt":"2026-05-12T13:08:12.361Z","updatedAt":"2026-05-18T19:05:38.507Z","lastSeenAt":"2026-05-18T19:05:38.507Z","tsv":"'-100':4232 '-12':786 '-150':1426,2330 '-2':1154,1297,1353,5836 '-20':795 '-3':463,1226,1289,4787 '-4':790 '-50':1432 '/.nium-wiki':3165 '/.nium-wiki/cache/facts':2347 '/_index.md':4169 '/api/version.md':1628,1631,1693 '/cache/doc-index.json':4048 '/cache/facts':1716,1785 '/config.json':3241,3443,4080 '/home/user/my-project/src/core/foo.ts':338 '/modules/version.md':1673 '/niuma996/nium-wiki)':6053 '/project/src/foo.ts':266 '/refs/mermaid-syntax.md':670 '/src/cli.ts':876,996,1029,1050 '/src/core/analyzeproject.ts':889 '/src/core/foo.ts':339 '/src/file.ts':4251 '/src/foo.ts':275,285,299,314 '/src/index.ts':881 '/src/utils/version.ts':1658,1686 '/users':265 '/users/alice/repos/my-app':3131 '/users/x/project/src/foo.ts':280 '/wiki':3477,4262 '/wiki/utils/version.md':1662 '/wiki_en':3507 '0':2038,2265,4231 '0.3':1875 '000':2759,5810 '1':762,832,1116,1153,1155,1161,1218,1288,1296,1337,1339,1352,1479,1495,1711,1809,1929,1938,2039,2296,2651,2696,2711,2849,3235,3666,3746,4581,4786,4978,5217,5316,5694,5815,5832,5835 '10':1306,2699,2714,2751,2758,3510,3837,3993,4426,4664,5803,5809 '10.1':4474 '10.2':4564 '10.3':4709 '100':3842 '11':1196,1318,1414,2066,2318 '13':794 '2':462,535,573,789,839,1147,1225,1228,1341,1417,1489,1718,1824,1952,2052,2322,2387,3212,3243,3680,3757,4589,5010,5300,5365,5707,5829,5833 '2.1':3310 '20':800 '3':162,1238,1349,1501,1734,1838,1967,2130,2486,3261,3436,3695,3771,4083,4596,5050,5388,5428,5826,5844 '3/17':4654 '30':1431 '4':1247,1355,1510,1761,1861,2568,2574,2720,2745,3598,3715,3816,3833,4610,5136,5409,5823,5856 '40':5096,5118 '400':1416,2114,2127,2320,5703 '5':1146,1254,1294,1360,1423,1518,1525,1892,2034,2327,2583,2606,3722,3825,4237,4669,5171,5821,5913 '50':2119,2755,5806 '6':608,776,780,1202,1260,1364,1544,3855,4012 '7':785,1272,3999 '8':1285,2740,4070 '8.1':4101 '8.2':4238 '80':1425,2329,5060,5097,5440 '9':1299,2697,2712,4253 'abc123':376 'absolut':250,291,322,1655,2911,3114,4311 'abstract':525,638,797 'access':410,415 'accumul':5910 'accur':5240,5446,5554,5555,6149 'across':2866 'action':362,2578,3331,4908,5059 'actual':347,1548,2398,3733,5224,5407 'ad':3913,5105,5198,5369 'add':1759,2037,3337,5378 'added/removed':5272,5390 'addit':2600 'address':118 'adher':4094 'advanc':1534 'affect':2073,2663,2794,3005,3872,4017,5112,5194,5348,5419 'agent':2868,2888,2918,3110,3177,3211 'agent-specif':2917 'alon':2409,3745,3967,5466,5557 'alphanumer':756 'alreadi':1950,2365,3401,3662,4013,4388,4801 'also':1440,2336,3347,4768 'alway':477,482,510,3094,3431,3958,3986,4136,4139,4147,5475,6014 'analysi':39,2207,3600,3725,3906 'analyz':4,1383,1774,1807,1830,2199,2306,2356,2449,2729,2820,2828,2967,2981,2984,3155,3633,3648 'analyze-batch':1773,1806,1829,2355,2728,2966,3632,3647 'analyze-modul':1382,2305,2827,2980,3154 'answer':5025 'anti':5499 'anti-pattern':5498 'anyth':5188 'api':350,367,420,428,1244,1273,1342,1500,1523,1580,1584,1691,1701,1749,1964,1983,2045,2101,2482,3807,4156,4187,4199,4205,4213,5273,5375,5708,5709 'api.md':1279,1348,4168 'appear':1397 'append':3357,5370,6037 'appli':609,932,1987,2215,2595,4124,4431,4783,4859,4866,6063 'applic':4224 'appropri':559 'architectur':472,1223,1229,1578,3545,3580,3583,3595,4179,5399,5684,5761 'architecture.md':4137,4505,5682,5722 'area':4811 'argument':2897,3073,3136 'as-i':5232 'ask':4682 'attach':4241 'attent':5983 'attribut':895,924,947,973,1059,1069 'audit':2194,2844,3047,3172,5865,5880,5996,6156 'audit-doc':3046,3171,5864,5995,6155 'authorit':1958,3291 'auto':3640 'auto-trigg':3639 'autom':3860 'automat':1891,3949,4403,5723,6116 'avail':4043 'avoid':1303 'aw':408,413 'await':2500 'b':816,834,1107 'back':850,858,1588,3951,4747 'back-refer':849 'bad':6029 'bare':108,188 'base':1447,2076,5630 'baselin':1932,4981,5535 'bash':2301,2921,3616,3877,4274,4368,4716 'basic':1532 'batch':1775,1808,1831,2357,2730,2968,3634,3649,4657,4667,4672,5839,5854,5859,5879,6011,6013 'beat':5480 'behavior':2031,5101,5334,5415 'behind':123 'belong':1650,4165 'benefit':5596 'best':690,1300,1361,1516,5281 'beyond':5189 'bilingu':3542 'blind':4869 'block':175,457,898,902,930,1017,4617,4635,6024,6170 'bodi':913,5085 'boundari':5736 'branch':3836 'bug':5410,5495,5507 'bug-level':5494 'build':2723,2945,2947,3025,3027,3607,3621,3636,3895,3898,4267,4285,4323,4326,4336,4475 'build-dep':2722,2944,3620,3635,3894 'build-index':3024,3897,4284,4322,4325 'burden':5485 'busi':1461,5638,5692,5705,5727 'bypass':3420 'c':307,817,840 'cach':5674 'cache/doc-index.json':4337 'cache/progress.json':5848,5922 'call':143,1072,1077,3821,4352,5350 'call-sit':1071 'caller':5342,5354 'camelcas':5668 'cannot':2871 'capabl':36 'captur':3772 'cargo.toml':3677 'carri':921 'case':146,5657 'catalog':5907 'categori':692 'caus':4873 'caveat':147 'cd':1379,1770,1811,1826,2302,2352,2824,2884,2890,2927,3068,3095,3351,3381,3409,3617,3623,3629,3878,4275,4281,4287,4369,4480,4717,4725,5861,5992,6092,6131,6152 'chain':3786,5351 'chang':1924,2050,2111,2138,2614,2793,3014,3368,3406,3856,3865,3912,3924,3926,3929,3974,4053,4453,4529,4912,4916,5022,5036,5062,5102,5108,5123,5126,5193,5225,5247,5256,5264,5280,5289,5301,5311,5319,5335,5344,5346,5408,5457,5546,5570,5584,5591,5606 'changelog.md':3720 'check':2300,2655,2746,3055,3236,3670,3987,5178 'checklist':4500,4576,6057,6078 'choic':1316,5510 'choos':590,4148 'cl':708 'class':493,732,733,735,737,914,2093,2458,3782 'classif':2142 'classifi':2987 'cleaner':5472 'cleanup':6201 'clear':206,4695 'cli':705,1101,2146,2850,3229,3422,3435 'cli.parse':1003,1035,1057 'cli.run':1075 'cli.ts':875,995,1028,1049 'click':742 'clickabl':989,1011 'code':6,38,128,174,366,456,612,897,901,929,954,1016,1045,1078,1086,1110,1139,1465,1473,1476,1923,2035,2388,2400,2480,2562,2613,2867,3302,3724,3735,3763,3805,4089,4616,4634,5037,5249,5254,5329,5450,5454,5564,5567,5827 'cohes':5745 'collid':700 'color':611 'command':1102,2147,2851,3135,3230,3605,4009,5953 'comment':968,1020,1040,1503,3303,5064 'commit':2996,3884 'common':149 'compar':2646 'complet':1480,3221,3985,5041 'completed/pending':5850 'complex':772,1122,1131,3827,5785,5791,5843 'complexity-sc':1121,5784 'comprehens':1143 'comput':2625,3867 'concept':125,211 'conceptu':520,639 'concis':1150 'condit':470,3838 'confid':1874,2972 'config':716,720,725,1149,3332,3342,3364,3373,3403,3405 'config.json':3287,3317,3419,5672 'configur':3438,3482,5716 'confirm':1882,2502,2554,2811 'conflict':3312 'confus':3084 'const':1001,1033,1055 'constraint':4222 'contain':161,1564,1752,2901,3090,3541,4154,4470,4636,5755 'content':153,158,196,466,593,1064,1214,1336,2377,2558,2741,4071,4093,4591,5235,5974,6187 'context':102,2855,3309,4689 'continu':2771,4676,4706,5877,5900,5918 'contract':6208 'contradict':5462,5532 'control':4903 'convent':194,2920,3074,3513,4062 'convers':318,3280,3308,4091 'convert':273,4309 'copi':3565 'core':61,760,761,763,771,1142,1199,1211,1255,1295,1312,1400,1412,1522,1528,2032,2112,2316,4143,5071,5659 'core.1':759 'core/analyzeproject.ts':888 'correct':277,695,823,991,1683,1688,5248,5447,5572 'correspond':4451,4771,5033 'corrupt':3427 'count':192,534,570,607,778,2750,4236,4662,5802 'cover':1490,2104,2108 'coverag':99,3714 'creat':25,2165,5091,5526 'credenti':141,342,349,381,1549,1554,2481,3806,4646 'criteria':96 'critic':344,945,3216,3314,3726,4841 'cross':72,227,1325,1368,1558,5015,5291 'cross-docu':1557 'cross-link':71,226,1324,1367,5290 'cross-read':5014 'cs':2425 'current':1620,1963,3120,5853 'custom':2548,2594 'cwd':2857,2877,3113,3139,3206 'd':818,841 'data':479,511,886,2462,3787,3812,3823 'databas':380 'database/orm':518 'date':3665 'debt':5912 'decid':2672,5051 'decis':1308,1472,2677 'declar':3995,6176 'deep':3601,3723,3831 'default':2876,3112,5075,5438 'defin':4099 'definit':915,917,1595,2442,4164 'degrad':5904 'degre':5013,5048,5055,5057 'delet':3915,3935,4751,4754,4765,4769 'dep':2724,2946,3001,3622,3637,3896,3905,3925,3928 'dep-graph.json':3651 'depend':507,1175,1319,1322,1582,1607,2519,2522,2624,2949,3207,3609,3671,3820,4419,5822,6128 'deprec':4216 'depth':97,1138,4905,5778,5840 'describ':5413,5448 'descript':116,395,1702,5241,5327,5364,5757 'design':1307,1508,2471,3796 'detail':67,799,1281,3065,3512,3773,4160,4186 'detect':1878,2476,2615,3012,3214,3801,3857,3864,3972,4528 'determin':2153,2359,3273,3760 'diagram':69,176,222,438,458,468,532,537,585,629,658,665,804,885,1141,1177,1217,1232,1262,1323,1411,2054,2060,2063,2323,2541,4180,4615,5258,5401,5579,5585,5762,5906,6030,6167 'dif':4832 'diff':3000,3010,3892,3965,3969,4291,4345,4876,5146,5479,5528,5561,5592 'diff-index':3009,3891,3964,3968,4290,4344 'differ':5183 'digraph':739 'dir':5770 'direct':591,906,3318,3413,3415,5032 'directori':60,333,648,2418,2900,2939,2962,3043,3089,3124,3163,3502,3523,3710,3743,4174,4382,4777,5631,5643,5644,5649,5733,5751,6104 'disabl':4837 'discov':1815,1848,2726,2954,2956,3611,3627,3644,3700 'discover-modul':1814,2725,2953,3626,3643,3699 'discoveri':3708,5725 'display':2495 'distinct':536,574,1418,2053,3079 'divers':533 'doc':26,1137,1169,1321,1366,1529,1573,1585,1601,1604,1609,1621,1646,2014,2020,2033,2113,2166,2181,2184,2195,2282,2644,2664,2795,2814,2847,3003,3006,3029,3048,3056,3173,3397,3492,3718,3848,3873,3904,3918,3927,3932,3937,3982,4001,4018,4115,4127,4152,4188,4339,4454,4782,4800,4862,4921,4942,4976,4987,5019,5031,5140,5169,5296,5314,5412,5525,5547,5611,5678,5825,5866,5881,5936,5986,5990,5997,6010,6157 'doc-dep':3903 'doc-index':3002 'doc-map.md':4233,5688 'docpath':4020 'docscop':1391,1399,1405,2312,2315,2324,2332,4150 'docsifi':3062 'document':33,64,79,85,91,224,357,465,1192,1377,1559,1562,1567,1726,1744,1758,1789,1799,1858,1921,1949,1970,2360,2529,2533,3076,3234,3254,3294,3468,3498,3554,3844,4247,4790,5134,5689,5777,5930,6041 'doesn':3943 'domain':14,51,4173,5629,5639,5693,5696,5700,5706,5724,5728,5750,5753,5759,5769 'domain-bas':5628 'domain-organ':13,50 'done':3998,6177 'doubt':5431 'e':819,842 'e.g':1624,2232,3130,3149,3341,3372,3461,3483,3503,3544,3673,3688,4024,4225,4501,4606,4759,5658 'edg':145 'edit':1936,2011,2017,2374,3417,4779,5305 'effect':2457,3781 'els':2378,4960,5116 'empti':165,2611,2800,4229 'en':3343,3374,3463,3489,3576,5712 'en/core/_index.md':4656 'en/core/auth.md':4609 'encount':6118 'end':741,835,843,855,1571 'english':764,3567 'enter':6032 'enterpris':11,76 'enterprise-level':75 'enterprise-qu':10 'entir':2239,5425 'entri':3682,4058,5818 'entry/index':2431 'environ':400 'erdiagram':514,557 'error':686,1537,2468,3793,5896,5903,6023,6169 'estim':1857 'etc':971,1042,1642,2428,2438,2448,3679,3694,3721 'evalu':5011 'even':1946,5571 'everi':87,104,657,1475,1561,2878,3182,3729,4122,4409,4439,4491,4509,4572,4817,6039,6061,6065,6084 'everyth':325,4959,5115 'exact':3527,5231 'exampl':129,337,363,385,406,805,1066,1074,1084,1140,1157,1173,1287,1290,1351,1354,1474,1477,1496,1520,1526,1593,2036,2040,2880,5250,5330,5381,5387,5565,5573 'exceed':4663 'except':436,451,4515,4618,4632 'excerpt':899,907,1081 'excess':3840 'exclus':4166 'execut':2024,2155,2160,2607,2854,3189,4964,5987,6085 'exist':1090,1768,1920,1951,1969,2013,2019,2062,2366,2376,2691,2707,2783,2790,3242,3245,3264,3333,3717,3945,4389,4398,4556,4781,4788,4799,4802,4861,4975,4985,5018,5030,5090,5168,5386,5524,5610,5934,5973,5989 'exit':2589 'expect':133 'explain':1504 'explan':3851 'explanatori':115 'explicit':151,2618,4499 'explor':1900,2198,2202,2262,2284,2370,2379,2389,2487,2507,2808 'export':1171,1491,1499,1542,1706,1720,1729,1741,1751,2106,2109,2514,4203,5104,5367 'express':5473 'extern':5353 'extract':1833,2268,2973,3445,3614,4490 'f':820 'fact':1695,1732,1764,1780,1791,1834,1914,1954,2341,2344,2974,3615 'facts-first':1694,2343 'facts.json':1945 'factual':5595 'fail':2846,6009 'fall':3950 'fallback':4039 'featur':1239,1241,1246 'fenc':955 'field':1438,3249,3285,4050,6214 'file':235,262,440,530,645,677,848,863,911,944,1098,1167,1248,1250,1356,1358,1633,1639,1649,1669,1682,1733,1765,1955,2080,2140,2209,2342,2364,2394,2405,2411,2414,2430,2432,2440,2493,2754,2836,2904,2909,3013,3093,3305,3320,3416,3687,3740,3749,3752,3755,3911,4033,4055,4109,4129,4257,4271,4307,4334,4446,4492,4510,4532,4545,4552,4566,4573,4580,4586,4651,4661,4700,4713,4734,4740,4756,4763,4772,4816,4983,4998,5001,5024,5106,5182,5265,5270,5389,5393,5599,5756,5805,6194 'file/directory':617 'filenam':3531,4605 'filesystem':251 'final':1471,4360,4710,5176,6056,6180 'find':2513,3681,3716 'fine':5587 'first':1291,1696,2345,2358,2383,2892,3455,5536,5615 'first-tim':2382 'fix':688,1133,5411,5416,5897,6173 'flag':3826 'flat':5634,5641 'flight':2299,2654 'flow':219,480,2463,3788,3824 'flow/calls':5263 'flowchart':473,496,508,544,551,813,827,1103,1236,1258,1327,2085 'flows/dependencies':599 'follow':95,181,1514,2242,2731,3327,3604,5227,5505 'foo.ts':279,284,293,298,306,312,313 'footer':1653,5079,5089,5357,6036 'forc':2817,2969,3387 'form':204 'format':232,625,867,962,992,1006,1597,3449,3569 'found':4623 'four':3078 'full':101,672,1207,1821,2023,2065,2162,2169,2227,2673,2676,2693,2708,2772,2818,2998,3713,3889,3954,4434,4546,4795,4815,4888,4909,4917,5130,5154,5537,5954,6068,6161 'full-gener':3953 'function':912,1543,1703,2450,2516,3774,3829,4910,5068,5099,5119,5278,5317,5325,5363,5368,5540,5775 'functionnam':4250 'functions/classes/types':4206 'g':821 'gap':5958 'gate':82,2006,2027,2555,4098,4836,4854,4892,4930,5942 'general':1163 'generat':23,34,45,63,84,90,356,662,673,1373,1788,1795,1798,1845,1860,1884,1906,2163,2175,2214,2233,2246,2251,2275,2381,2385,2545,2557,2659,2681,2735,2742,2775,2812,3035,3038,3169,3232,3348,3396,3465,3553,3955,3962,4072,4092,4132,4366,4373,4377,4411,4435,4547,4796,5834,5920,6001,6008,6040,6042,6054,6062,6067,6096,6099,6162,6207 'generate-sidebar':3034,3168,4372,6095 'generic':434 'get':1387,1819,4486,5574 'getting-started.md':4189,5685 'github.com':6052 'github.com/niuma996/nium-wiki)':6051 'given':320 'global':4852 'go':937,2422,3432,4746 'go.mod':3676 'goal':4804 'grade':49 'graph':738,1583,2950,2961,3610,3660,3707,3822,5739 'group':603,773,783,788,793,806,824,5740,5773 'guarante':2860 'guess':2915 'guid':2025 'guidanc':4219 'h':822 'h2':200 'h3':201 'h4':202 'handl':1488,1538,2469,3794 'handler':5662 'hard':365,659,680,683,2479,3804,5501 'hard-cod':364,2478,3803 'hash':3020,4298,4356 'hasn':5455 'haven':5622 'head':168,180,199,3543,3577,3590 'help':1076,3071 'hierarch':198 'hierarchi':208,596,2459,3783,5632 'high':3835 'highlight':614,1233 'hit':4687 'homepag':5681 'host':3210 'hotspot':3828 'hyphen':5654 'i18n':3175,3988,4483,4720,4728,6134 'id':697,703,731,757,766,1115 'ide/editor':259 'idempot':4385,6105 'ident':543,4602 'identifi':2477,3667,3696,3802 'illustr':216 'immedi':926,4677 'impact':3902,5315 'implement':5545 'import':1484,2960,3534,3706,3727,3957,5738 'import-graph':3705 'import/export':918 'import/require':2948 'improv':5558 'includ':329,346,630,1483,1502,4019,4220,6015 'incorrect':5203 'increment':1179,1913,1991,1996,2029,2609,2623,2661,2791,2798,2993,3412,3861,3881,3960,3984,4008,4342,4437,4518,4526,4791,4839,4845,4849,4896,4901,4922,4939,5007,5966,6073 'index':1428,2333,3004,3011,3026,3031,3893,3899,3966,3970,4268,4286,4292,4324,4327,4346 'index.md':1429,2334,4134,4503,5679,5695,5701,5717,5758 'index.ts':880,2433 'infer':3298,3930,4059,4086,5726 'inform':207,354 'inherit':2461,3785 'init':2434,2692,2784,2933,3271,3354,3384 'initi':1485,2935 'input':2141,2151,2274,2680 'inputtyp':2157,2217 'insid':982,1014 'instal':4193 'instead':3329 'intent':1509 'interconnect':223 'interfac':494,1492,2447 'intern':5061,5349,5544 'intro':1220 'introduc':2047 'invalid':5129,5548 'invent':1083 'invoc':1486 'invok':2144,3098 'isol':5303 'item':6091 'java':939,2424 'js':935,1641,2420 'json':1385,1403,1717,1817,2308,2348,2830,2831,2983,3050,3429 'kebab':5656 'kebab-cas':5655 'keep':5972 'kept':4457 'key':210,351,368,411,416,421,429,615,1505,2483,2512,3751,3808 'keyword':729,736 'l1':282,287,296,301,878,891,1659,1687 'l1-l100':890 'l1-l50':281,286,295,300,877 'l100':892 'l20':883 'l20-l80':882 'l42':998,1031,1052,4252 'l42-l67':997,1030,1051 'l50':283,288,297,302,879 'l67':999,1032,1053 'l80':884 'label':714,747,753,755 'lang':2934,2940,3272,3355,3385,3501,3518,4449,4600,4776 'languag':942,966,1513,1515,2703,2718,3042,3213,3248,3255,3278,3281,3284,3295,3299,3311,3340,3362,3371,3390,3400,3437,3447,3456,3460,3472,3480,3516,3520,3537,3559,3563,3574,3587,4073,4075,4381,4429,4445,4469,4473,4595,5661,5677,5714,6103,6141 'language-handl':5660 'language-specif':965 'larg':2768,5798,5956 'larger':1165 'last':4353,6081 'layer':796 'layout':588,5635 'least':172,461,1494 'leav':107,4462,4820,4958,5114,5464,5556 'left':5928 'legaci':4396,6112 'length':3841 'level':77,1531,2187,3834,5496 'librari':419 'library/framework':4198 'lifecycl':483 'lightweight':1329 'like':1966 'limit':4690 'line':169,925,948,974,1215,1409,2115,2120,2128,2321,2331,2538,4818,4824,5095,5704 'linear':781 'link':73,228,230,236,442,857,865,981,990,1007,1022,1277,1284,1326,1346,1369,1560,1575,1587,1614,1674,2133,2135,4159,4240,4244,4264,4280,4302,4331,4626,5292,5295 'list':109,189,1707,1823,1853,1869,2082,2537,3870,4478,4513,4696,5766 'liter':3196 'live':375,378,423 'loc':2757,3843,5808 'locat':1623,3684 'logic':41,3850,5246,5288,5318 'longer':1168 'look':1965 'lowercas':5653 'lr':497,509,552,597,1328,2086 'm':2517 'main':3685 'main.go':3691 'main.py':3690 'main.rs':3692 'mainten':2189,2196,2843,5932 'major':1498,1541 'make':1469 'mandatori':86,229,340,358,654,846,893,1120,2552,3215,4365,4407,4570,4962,5627,5790,6058 'mandatory-complexity-scaled-quality-target':5789 'mani':5968 'manifest':3672 'manual':4038 'map':3030,3817,3978,4340,5691 'mark':4215,4493 'markdown':444,872,980,993,1012,1037,2505,4249,4628 'mask':393 'massiv':5527 'match':1511,1728,5012,5047,5054,5056,5441 'may':260,578,4554 'md':4141,4200,4306,5702 'mean':3087,3485,4907 'meet':74 'memori':4559,4723,6137,6144 'mental':5177 'mention':4954 'mere':3766 'merg':3704 'mermaid':221,437,628,632,650,664,809,1099,1231,1257,3052,4614,5257,5578,5869,5893,5901,5999,6017,6021,6159,6166,6168 'mermaid-strict':3051,5868,5892,5998,6016,6158 'meta.json':4363,5673 'metric':1450 'migrat':4218,4402,6111 'min':2971 'min-confid':2970 'mindmap':522,564,631,633 'minim':1158,5145 'minimum':541,1524,2117,4809,5309,5313 'mirror':3525 'miss':2350,3653,4494,4502,4537,4551,4743 'mistak':150 'mix':1663,3562 'mod.rs':2436 'mode':1180,1186,1189,1796,1907,1985,1992,2030,2228,2247,2252,2736,3956,4519,4548,4846,4881,4884,4897 'mode-overrid':1188,4883 'model':512 'modern':4417,6126 'modifi':2012,2018,2095,3316,3914,4443,4780,5831 'modul':492,506,519,526,562,642,1130,1135,1191,1200,1206,1212,1234,1267,1313,1334,1375,1384,1459,1572,1591,1710,1794,1802,1816,1822,1837,1847,1849,1863,1886,1889,1899,1905,1943,2172,2173,2186,2200,2212,2218,2224,2230,2245,2250,2261,2270,2307,2339,2369,2417,2506,2521,2528,2532,2621,2630,2684,2727,2734,2749,2785,2805,2815,2821,2829,2842,2955,2958,2977,2982,2986,3148,3156,3612,3628,3645,3697,3701,3730,3819,3847,4140,4151,4183,4235,4914,5124,5160,5287,5404,5519,5642,5741,5765,5772,5781,5801,5817,5837,5851,5890,5969,5981,5985,6071 'module-document-sect':2531 'module-level':2185 'module-simple.md':1152,1160,1201,1331,1606 'module-target':2211,6070 'module.md':1145,1195,1209,1413,1611,2068,2317 'modules/auth':2281,2283 'modules/badge.md':1626 'modules/core/analyze-project.md':4069 'modules/core/source-index.md':4025 'modules/foo-bar.md':4064 'moved/renamed':5298 'much':5211 'multi':1793,1904,2244,2249,2702,2717,2733,4428,6140 'multi-languag':2701,2716,4427,6139 'multi-modul':1792,1903,2243,2732 'multi-module-generation-mod':2248 'multipl':803,1801,5127,6109 'must':65,92,136,237,268,303,446,619,667,687,698,854,920,949,1478,1563,1727,2103,2889,3219,3524,4226,4319,4455,4507,4693,4767,5142,5228,5343,5651,5754,6182 'mutat':2467,3792 'mysecret123':388 'n':1105,1245,2515,2520 'name':334,1670,1721,2406,3306,3741,4061,4107,5645,5650 'narrow':811 'natur':3277 'navig':4242 'ncli':706,709 'need':784,3407,3814,3919,4029,4120,4828,5982 'needsreview':1851,1865 'nest':3832,4066 'never':106,247,345,581,626,643,3315,4967,5243,5251,5259,5284,5664 'new':2044,5103,5181,5366 'newli':5197 'newly-ad':5196 'next':4245,5878 'nium':2,19,43,58,1714,1783,2687,2705,2779,2788,2937,3161,3239,3441,3475,3505,4046,4078,4260,5670,6045,6048 'nium-wiki':1,18,57,1713,1782,2686,2704,2778,2787,2936,3160,3238,3440,3474,3504,4045,4077,4259,5669,6044 'no-commit':2994,3882 'no-upd':3015,4293,4348 'node':605,616,702,775,777,791,1380,1771,1812,1827,2303,2353,2825,2885,2931,2942,2951,2964,2978,2991,3007,3022,3032,3044,3058,3069,3099,3352,3382,3410,3618,3624,3630,3879,4276,4282,4288,4370,4481,4718,4726,5862,5993,6093,6132,6153 'nodeclass':734 'nois':5562,5593 'non':164,167 'non-empti':163 'non-head':166 'none':1433 'normal':2287,2774 'notat':3081,3086 'note':563,745,4133 'noth':2591,2593 'now-incorrect':5201 'number':1134,5855 'old':2643 'old/wrong':5414 'one':173,1840,2985,3875,4171,4472,4567,4569,5092,5098,5371,5379,5944 'open':958,3750 'oper':1918,3225 'option':523,566,1162,1263,1268,1309,1317,1363,1427,5382,6200 'order':4966 'organ':15,52,195,3770,5636 'origin':861,5149,5186 'orm':513 'os':255 'os-specif':254 'otherwis':2225,2770 'outdat':4496,4504,4535,4553,4745,5453,5938 'outlin':112 'output':134,1111,1114,1404,1444,1839,1895,2489,3538,3555,3572,3702,3908,5008,5141,5625 'outsid':952 'outward':1576 'overal':5046,5961 'overrid':1187,1190,1453,1986,2000,4882,4885,4894 'overridden':1184 'overs':4875 'overview':798,1219,1275,1338,1344,1421,2325,4157,4178,5697,5760 'overview.md':1422,2326 'overwrit':3388 'packag':5735 'package-info.java':2437 'package.json':3674 'page':1613,1678,1690 'pair':130 'paragraph':1227,1340,5242,5328,5420,5444,5483,5551 'paramet':2453,3777,4221 'parent':1590 'pars':2148,3758 'parser':685 'part':6204 'partial':4524 'pascalcas':5666 'pass':2894,3132,3192,3200 'password':387,389,431 'patch':1917,2070,2122,2372,2641,4807,4865,4904,4926,4948,5109,5139,5522,6076 'path':231,244,252,257,263,292,317,323,441,646,866,870,1596,1617,1656,1665,1854,2156,2161,2266,2271,2289,2464,2631,2912,2923,3072,3080,3104,3115,3144,3157,3789,4023,4067,4265,4312,4318,4330,4603,4625,6086 'pattern':418,1304,2472,3797,5500 'paus':1867 'per':464,792,1497,1527,1898,2260,4172,5838 'per-modul':1897,2259 'phase':826,831,838 'phase1':830,844 'phase2':837,845 'php':2427 'phrase':2159,5470 'pick':5924 'piec':88 'pipelin':1997,2170,2188,2197,2667,2694,2709,2773,2797,2999,3862,3890,3948,4005,4041,4527,4792,4850,4902,4936,6069 'pk':425 'place':951 'placehold':111,373,396,1551,3183,3194 'plain':622,713,746,960,976 'plain-text':621 'point':1974,3683,5165,5819 'pom.xml':3678 'poor':5960 'popul':4563 'posit':1230,1235,1579,5400,5406 'posix':243 'practic':691,1301,1362,1517,5282 'pre':2298,2653 'pre-flight':2297,2652 'preced':1464,2002 'precis':3869 'prefer':748,758,767,2124 'prefix':271,290,1666,2928 'prepend':336 'present':1441,2444,2570 'preserv':449,2061,2375,3939,4611,4996,5076,5214,5218,5230,5435,5493,5619 'prettier':5482 'prevent':2556,6028 'preview':3546,3581,3584,3596,4413,6123 'primari':1394,3253,3370,3379,3389,3459,3467,3471,3486,3491,3515,3558,4584,4872,5676 'principl':62,5216,5299,5427 'priorit':5816 'prioriti':1998,5219 'privat':391 'procedur':3328 'proceed':1777,1890,2504,2543,2580,2604,2657 'process':217,4571 'process.argv':1004,1036,1058 'produc':8,46 'profession':48 'professional-grad':47 'programmat':4204 'progress':2762,2765,4653,4674,5795,5813,5846 'project':53,240,310,331,516,1512,2293,2747,2769,3141,3275,3599,4123,4191,4202,4315,5680,5731,5799 'project-root-rel':239,3140,4314 'prompt':5876 'proof':5487 'propag':4924 'proposit':1222 'provid':100,261,1466 'public':1748 'purpos':2452,3550,3776 'put':1637 'py':936,2421,2435 'qualiti':12,81,1124,1126,2005,2026,3057,4097,4835,4853,4891,4929,5787,5793,5941,5962 'quantifi':1449 'quick':1292,2852,5686 'quot':711 'rang':4230 'rb':2426 're':1940,4541,5883,6007 're-gener':6006 're-read':1939 're-run':5882 're-transl':4540 'read':505,655,668,675,1712,1930,1941,2100,2205,2309,2337,2391,2396,2410,2429,2439,3246,3439,3731,3747,3754,4044,4105,4582,4979,4982,4989,4997,5016,5533,5613,5624,5921,6209 'read-on':2204,2390,4988 'readabl':2930 'readm':3304 'readme.md':3719 'real':157,3186 'reason':278,1856,1873,3922,4026,5531 'rebuild':29,2167,2235 'recent':5830 'recommend':1302,2525,2586,2989 'recommended/avoid':1305 'record':5849 'redact':382,390,432 'redo':5887 'refactor':3853,5067 'refer':851,874,1581,1634,1692,2132,2853,3549,5710 'reflect':4358 'refresh':2192,2838,4362,5955,5963 'refs/mermaid-syntax.md':669 'regardless':3107 'regener':2058,2819,2845,3920,4813,4918,5131,5155,5398,5538,5576,5886 'relat':242,604,1243,1320,1365,1566,1600,1603,1608,1616,1645,2136,2290,3103,3143,4021,4317,5771 'relationship':500,521,527,640,2089,3818,5690 'reli':2403,3738 'remain':4698,5553 'remov':324,454,2602 'renam':5066,5120 'render':986,1043 'reorder':5589 'rephras':5575,5597 'replac':371,582,1911,2257,3324 'report':1901,2263,2488,2498,2508,2572,2592,2809,4489,4652,4673,5871,5895,6004 'request':35,478 'requir':459,549,576,584,660,681,1062,1420 'requirements.txt':3675 'reserv':728 'resolut':2267,3313 'resolv':1629,2873,2905,3106,3202,4002,4014 'respons':1252,2576,2577,3179,5746 'restor':5212 'restructur':5423 'result':1002,1034,1056,1113,1117,1487,4793,5872 'resum':2648,4708,5914 'return':2311,2454,2610,2662,3778 'revert':4834 'review':4831 'rewrit':2129,4879,5209,5361,5385,5467,5490,5549,5563 'role':1136,1224,1462,2509,2988,3054,4915,5125,5782 'rolerecommend':1437,2314 'root':241,332,2294,2865,3122,3142,4316 'row':5372 'rs':938,2423 'rule':319,360,589,653,684,693,871,1164,1598,1697,1915,2007,2028,2346,2737,3282,4104,4126,4642,4658,4752,4855,4868,4893,4933,5502,5646,6178 'run':1378,1769,1810,1825,1925,1989,2351,2721,2823,3227,3270,3350,3380,3408,3602,3887,3959,4320,4479,4724,4843,5860,5884,6059,6108,6147,6172,6183 'runnabl':127,1482,2879 'runtim':1112 'safe':405,6106 'safeti':652 'sanit':138,142,343,359,417,1545,1555,3815,4263,4279,4301,4619,4631,4638,4647 'sanitize-link':4278,4300 'satisfi':93,547 'save':4254 'say':4705,4937,5917 'scale':1123,1128,5779,5786,5792,5841 'scan':2763,2766,2963,3711,4303,4328,5796,5814,5988 'scanabl':215 'scenario':361,3330 'scope':5302,5310 'scripts/index.cjs':1381,1772,1813,1828,2304,2354,2826,2870,2886,2932,2943,2952,2965,2979,2992,3008,3023,3033,3045,3059,3070,3100,3105,3353,3383,3411,3619,3625,3631,3880,4277,4283,4289,4371,4482,4719,4727,5863,5994,6094,6133,6154 'scripts/version.json':6212 'secondari':3339,3361,3479,3488,3519,4444,5713 'secret':135,140,341,348,403,409,414,453,1546,1553,1877,2475,3800,4630,4645 'secret123':398 'secrets/credentials':4621,4637 'section':155,853,1193,1197,1203,1213,1335,1415,1424,1568,1652,2067,2074,2240,2319,2328,2526,2530,2534,2536,2599,2695,2698,2710,2713,2719,2739,2744,3509,3992,4011,4082,4648,4952,5027,5039,5113,5128,5195,5199,5204,5215,5283,5426,5590 'see':139,864,1185,1552,2009,2527,2764,3067,3508,3991,4081,4880,5783 'select':1371,4103 'self':5173 'self-verifi':5172 'semant':37,1455,3759 'sensit':353,3811 'sentenc':185 'separ':3453 'sequenc':1937 'sequencediagram':481,553,1259 'sequenti':4577 'serv':3060,3174 'server':3063,4414,6124 'set':3267,3448 'shape':495 'share':5743 'shell':1100 'short':4177 'show':404,498,637,4735,6148 'shown':2924 'side':2456,3780 'sidebar':3036,3170,4367,4374,6097 'sidebar.json':3039,4378,4387,4421,6100,6115,6130 'sidebar.md':4397,6113 'signal':1389,1395,1467,2832,5058 'signatur':1282,1704,1723,1984,2451,2922,3775,4161,4911,5069,5122,5279,5320,5541 'signatures/types':4214 'signific':1315,5150 'silent':5908 'simpl':750 'sinc':4558 'singl':184,3147,3536,4207,5094 'single-languag':3535 'site':1073 'size':2748,5828 'sk':374,377,422 'skill':2856,2864 'skill-nium-wiki' 'skill.md':2903,3092 'skip':2090,2237,2565,2622,3019,3656,4297,4393,4424,4465,4517,6089,6121 'slash':3452 'slash-separ':3451 'smaller':5151,5478 'snapshot':4357 'sole':2634 'sourc':5,234,370,439,503,847,862,873,887,894,910,923,943,994,1027,1048,1080,1093,1097,1109,1119,1166,1632,1638,1648,1668,1681,1684,1959,1979,2051,2079,2098,2131,2139,2399,2413,2753,3028,3258,3292,3301,3686,3734,3748,3910,3923,3973,4032,4054,4088,4208,4239,4243,4329,4338,4624,4762,4957,5000,5023,5192,5222,5245,5581,5804 'source-change-affect':5191 'source-niuma996' 'sourcetodoc':4049 'specif':114,256,967,2223,2919,5889,5980 'specifi':2221,2231,2598,2619,2629,2685,2804 'split':801 'src':311 'src/core/analyzeproject':2278,2279,3150 'src/core/analyzeproject.ts':4068 'src/foo.ts':294 'src/foobar.ts':4063 'src/index.ts':3689 'src/main/java/app.java':3693 'src/utils/filewalker':2286 'stack':3669 'stale':4464 'standard':80,1127 'start':245,304,1293,1844,1973,3061,4968,5164,5516,5687 'state':484,491,744,1261,1266,2361,2466,2511,3791,4361 'statediagram':487,555,1270 'statediagram-v2':486,554,1269 'statement':919 'status':3990,4484,4729,6151 'step':1506,1928,2264,2295,2386,2485,2550,2567,2573,2582,2605,2650,3218,3876,4194,4405,4467,4963,4977,5009,5049,5135,5170,6082,6181 'still':447,4742 'stop':4680,4694 'strategi':779,2470,3795,5052,5947,5948 'strict':3053,5870,5894,6000,6018,6160 'string':3195 'strip':269,289 'structur':68,193,445,618,1249,1357,1388,1976,2408,2497,3430,3529,3744,4629,5107,5266,5394,5600,5605,5626,5719,5734 'style':610,743,5469 'stylist':5509 'sub':4182,5699,5764,5768 'sub-domain':5698,5767 'sub-modul':4181,5763 'subgraph':476,601,696,704,707,740,765,768,770,787,829,836 'subsequ':6146 'substant':152 'substitut':3181 'suggest':689,3854 'summar':209 'summari':1274,1343,1841,1909,2102,2254,5274,5376 'supplement':579 'suppli':126 'surfac':4810 'surgic':1935,2010,2016,2373,2640,2675,4778,4864,4925,6075 'surgical-edit-modifying-existing-doc':2015 'switch':2760,5811 'symbol':1737,1753,4248 'sync':3989,4459,4488,4544,4722,4737,6136,6150 'sync-memori':4721,6135 'syntax':651,969,1041,5902,6022 'system':471,5683 'tabl':178,213,1240,1276,1283,1345,1602,1647,1842,1910,2255,4158,4184,4889,5275,5377 'take':1463,2001 'target':1125,1182,1216,1410,2121,2174,2213,2219,2539,2635,2786,2807,2816,4000,4594,4947,5788,5794,5977,6072 'task':4477 'tb':474,594,1237 'td':814,828,1104 'teach':1082 'tech':3668 'technic':78,5911 'templat':1208,1330,1370,1408,2069,2510,2587,2990,3540,4102,4108,4111,4118,4128,4932,4971,5161,5520 'templaterecommend':1435 'templates/_index.md':4170 'templates/api.md':4201 'templates/architecture.md':4138 'templates/doc-map.md':4234 'templates/getting-started.md':4190 'templates/index.md':4135 'templates/module-simple.md':4145 'templates/module.md':4142 'test':426,1156 'text':623,751,961,977,1047,3323 'three':542,1530 'tier':1519 'time':2384,4440,6110 'timestamp':4364 'token':397,399,433,2484,3809 'tokens/keys':392 'tool':3756,4418,6127 'topic':105,5072 'topic-agent-skills' 'topic-claude-code' 'topic-code-graph' 'topic-code2doc' 'topic-docs' 'topic-karpathy' 'topic-llm-wiki' 'topic-llm-wiki-karpathy' 'topic-skill' 'topic-wiki' 'topic-wiki-engine' 'topic-wiki-generator' 'total':1846 'touch':5074,5083,5434 'toward':539,571 'track':5845 'transit':485,3901 'transitive-impact':3900 'transitive/dep/doc-dep':4923 'translat':3495,3522,4430,4476,4508,4531,4542,4549,4565,4590,4665,4715,4749,6143,6193 'treat':2638,4943,5503 'tree':531,624,649,1251,1253,1359,2678,5267,5395,5601 'trigger':21,1993,2158,3641,4035,4847,4956,5003 'triggeredbi':2084,2669,4031 'true':1852,1866 'truth':1981,3260,4210 'ts':934,1640,2419 'type':467,469,538,575,586,916,1065,1419,1594,2055,2518,2542,4163,5236,5312 'type/interface':2441 'type/module':499,2088 'types.d.ts':2446 'types.ts':2445 'typescript':1000,1026,1054 'unaffect':5042 'unchang':450,2064,3940,4612,5070,5321,5543 'under':5262 'understand':40,1456,2560 'unescap':710 'unless':2091,4685,5220,5244,5252,5260,5285,5402 'unnecessari':4878 'unpredict':3205 'untouch':4821,4961,5117 'untransl':4699 'updat':27,1919,2179,2280,3017,3997,4030,4037,4295,4343,4350,4438,4525,4785,4840,4949,4973,5005,5077,5239,5322,5355,5391,5603,6142,6196 'updatestrength':2670,4898,4906,4938 'upgrad':2182,2190,2813,2839,5931,5967,5975,5978,5984,6003,6026 'uri':249 'usag':1070,1286,1350,1533,1535,1592,3066,5380 'use':220,238,248,384,550,600,620,627,959,1039,1144,1151,1159,1194,1390,1406,1550,1615,1805,2474,2584,2626,2665,2801,3077,3151,3166,3325,3698,3799,3858,4074,4640,5158,5652,5665,5943,5951 'user':308,1881,2150,2220,2273,2491,2501,2575,2597,2617,2628,2679,2803,2810,3118,3126,3279,3334,3344,3365,3375,3393,4684,4703,5339,5874,5916,5952 'user-specifi':2596,2627,2802 'user-vis':5338 'usual':3164 'util':1148,1298,5663 'util/config/helper':1205 'util/config/helper/test':1333,4146 'utils/filewalker':2285 'v':2997,3885,6047 'v2':488,556,1271 'val':718,722,727 'valid':3424,5885,6164 'valu':386,407,1221,2455,3187,3779 'var':401 'variabl':5065 'verbos':3049,5867 'verifi':4732,5174 'version':1627,5078,5088,5356,5957,6035,6050,6210,6213 'version.ts':1657,1661,1672,1685 'via':225,2959,3319 'violat':682,5497,5511 'visibl':5340 'vs':807,2674 'wait':1879 'want':3335,3345,3366,3376,3394,5970 'waterfal':808,812 'way':5341,5460 'weight':5820 'whose':5566,5580 'wiki':3,16,20,24,28,30,44,54,59,1612,1664,1677,1689,1715,1784,2164,2168,2176,2191,2193,2234,2236,2276,2363,2682,2688,2706,2776,2780,2789,2835,2840,2938,3162,3240,3442,3476,3497,3500,3506,3514,3517,3533,3917,3942,3981,4022,4047,4079,4176,4256,4261,4270,4305,4333,4410,4441,4448,4585,4588,4599,4608,4655,4758,4775,4789,4986,5648,5671,5675,5711,5721,5919,5935,5965,5976,6034,6046,6049,6066,6186 'wiki/core/auth.md':4607 'window':316 'within':455 'without':674,963,1790,2569,2925,4347,5612 'won':1023 'word':5559 'work':1025,3128 'workflow':1256,2848 'workspac':3121 'would':3201 'write':113,1699,1779,2210,2395,2494,2590,3021,3321,4113,4255,4299,4597,5137,5306,5607 'written':2837,2882,3494,4273,6189 'wrong':276,694,810,1005,1013,1038,1660,1671,5476,5515 'x':309,717,721,726,2178,2180,2183,2201,2203,2822 'xxxxxxxx':424,427,430,435 'xxxxxxxxxxxx':379 'xyz':412 'yes':2546,2579,5206 'yet':1755,3946,4557 'yield':5560 'zh':3349,3356,3358,3377,3386,3392,3462,3487,3589 'zh/en':3464,3484 'zh/en/ja/ko/fr/de':2941 '中文':3568 '架构预览':3547,3585,3593,3597 '核心层':769","prices":[{"id":"4ab65af1-c87a-4d19-b329-d20c831bf608","listingId":"2e4adbd1-f6d4-4e9d-9070-e2834e8b9acf","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"niuma996","category":"nium-wiki","install_from":"skills.sh"},"createdAt":"2026-05-12T13:08:12.361Z"}],"sources":[{"listingId":"2e4adbd1-f6d4-4e9d-9070-e2834e8b9acf","source":"github","sourceId":"niuma996/nium-wiki/nium-wiki","sourceUrl":"https://github.com/niuma996/nium-wiki/tree/main/skills/nium-wiki","isPrimary":false,"firstSeenAt":"2026-05-12T13:08:12.361Z","lastSeenAt":"2026-05-18T19:05:38.507Z"}],"details":{"listingId":"2e4adbd1-f6d4-4e9d-9070-e2834e8b9acf","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"niuma996","slug":"nium-wiki","github":{"repo":"niuma996/nium-wiki","stars":21,"topics":["agent-skills","claude-code","code-graph","code2doc","docs","karpathy","llm-wiki","llm-wiki-karpathy","skill","wiki","wiki-engine","wiki-generator"],"license":"mit","html_url":"https://github.com/niuma996/nium-wiki","pushed_at":"2026-05-17T07:52:08Z","description":"AI coding tool skill (e.g., Claude Code) centered on Karpathy's LLM Wiki pattern turns codebases into wikis, auto-analyzes, and generates docs similar to DeepWiki and ZRead with diagrams.","skill_md_sha":"7eae645213d1a5148aa26a0487e776950a65565c","skill_md_path":"skills/nium-wiki/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/niuma996/nium-wiki/tree/main/skills/nium-wiki"},"layout":"multi","source":"github","category":"nium-wiki","frontmatter":{"name":"nium-wiki","description":"Analyze source code and produce an enterprise-quality, domain-organized Wiki under `.nium-wiki/`.\n\nTrigger on: \"generate wiki\", \"create docs\", \"update wiki\", \"rebuild wiki\", or any documentation generation request.\n\nCapabilities:\n- Semantic code analysis — understands logic, not just structure\n- Auto-generated Mermaid diagrams (architecture, data flow, class, dependency)\n- Bidirectional cross-linking across all documents\n- SHA256-based change detection for incremental rebuilds\n- Every section traces back to source via relative path links\n- Multi-language output (zh/en/ja/ko/fr/de and more)"},"skills_sh_url":"https://skills.sh/niuma996/nium-wiki/nium-wiki"},"updatedAt":"2026-05-18T19:05:38.507Z"}}