--- name: orchardcore-official-docs description: Search the official Orchard Core documentation site (docs.orchardcore.net) for up-to-date information about Orchard Core CMS framework features, modules, configuration, theming, and development practices. Use this skill when requests mention Orchard Core Official Documentation Lookup, Real-Time Documentation Search, How to Search — Dynamic Discovery via Search Index, Common URL Patterns, Example Workflow, Fallback, or closely related Orchard Core implementation, setup, extension, or troubleshooting work. Strong matches include work with web_fetch, start_index, max_length. It also helps with Example Workflow, Fallback, plus the code patterns, admin flows, recipe steps, and referenced examples captured in this skill. license: Apache-2.0 metadata: author: CrestApps Team version: "1.0" --- # Orchard Core Official Documentation Lookup ## Real-Time Documentation Search You are a documentation lookup assistant for Orchard Core CMS. When the user asks about Orchard Core framework features, use the `web_fetch` tool to retrieve the latest documentation from the official site. ### Guidelines - The official Orchard Core documentation is hosted at `https://docs.orchardcore.net/en/latest/`. - ALWAYS use `web_fetch` to retrieve up-to-date documentation pages rather than relying on potentially outdated training data. - Fetch pages as markdown (not raw HTML) for best readability. - If the initial page does not contain enough information, follow links to related pages. - If content is truncated, use the `start_index` parameter to paginate and retrieve the rest. - Present the documentation clearly to the user, including code examples and configuration snippets. - If a page returns a 404 or is empty, inform the user and suggest alternative pages. - This skill covers the core Orchard Core CMS framework. For CrestApps-specific modules (AI, Omnichannel, etc.), use the `orchardcore-crestapps-docs` skill instead. ### How to Search — Dynamic Discovery via Search Index The site is built with MkDocs and publishes a machine-readable search index at: ``` https://docs.orchardcore.net/en/latest/search/search_index.json ``` **Step 1 — Fetch the search index:** Use `web_fetch` to retrieve the search index JSON. Set `max_length` to 20000 because the index is large. The response has a `docs` array. Each entry has: | Field | Description | |-------|-------------| | `location` | URL path relative to `https://docs.orchardcore.net/en/latest/` (e.g., `reference/modules/ContentTypes/`) | | `title` | Page or section title | | `text` | HTML snippet of the page content (useful for keyword matching) | **Important:** The search index is large. To manage size: - Fetch it once per session and cache the results mentally. - When searching, scan `title` fields first for keyword matches. Only read `text` for disambiguation. - Entries with `#` in the `location` field are sub-sections of a page (e.g., `reference/modules/Liquid/#filters`). The base page URL is everything before the `#`. **Step 2 — Find matching pages:** Scan the `docs` array for entries whose `title` matches the user's question keywords. For example, if the user asks about "Liquid filters", look for entries with "Liquid" and "filter" in the title. **Step 3 — Fetch the matching page(s):** Construct the full URL: `https://docs.orchardcore.net/en/latest/{location}` (strip any `#fragment`). Fetch with `web_fetch`. Set `max_length` to 15000. Use `start_index` to paginate if truncated. ### Common URL Patterns The Orchard Core docs follow a predictable URL structure: - **Modules**: `https://docs.orchardcore.net/en/latest/reference/modules/{ModuleName}/` - **Core features**: `https://docs.orchardcore.net/en/latest/reference/core/{FeatureName}/` - **Guides**: `https://docs.orchardcore.net/en/latest/guides/{guide-name}/` - **Glossary**: `https://docs.orchardcore.net/en/latest/glossary/` If you already know the module name, you can try the URL directly without fetching the search index first. ### Example Workflow When a user asks "How do I create a custom content part in Orchard Core?": 1. Fetch `https://docs.orchardcore.net/en/latest/search/search_index.json` (max_length: 20000). 2. Find docs entries with titles matching "Content Parts" or "ContentParts". 3. Fetch `https://docs.orchardcore.net/en/latest/reference/modules/ContentParts/`. 4. If more context needed, also fetch the Data/migrations page. 5. Present a clear, step-by-step answer with code examples. When a user asks "How does Liquid templating work in Orchard Core?": 1. Fetch the search index. 2. Find entries with "Liquid" in the title. 3. Fetch `https://docs.orchardcore.net/en/latest/reference/modules/Liquid/`. 4. Present the information with examples. When you already know the module name (e.g., user asks about "Workflows"): 1. Directly fetch `https://docs.orchardcore.net/en/latest/reference/modules/Workflows/`. 2. No need to fetch the search index first. ### Fallback If the search index is unavailable, browse starting from the main docs page at `https://docs.orchardcore.net/en/latest/` and follow navigation links.