一键导入
ontologian-search
Use when the user runs /ontologian-search or wants to search for a keyword across all ontology domains (object types, link types, action types).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user runs /ontologian-search or wants to search for a keyword across all ontology domains (object types, link types, action types).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when the user runs /ontologian-add or wants to add a new Object Type, Link Type, or Action Type to an ontology domain.
Use when the user runs /ontologian-analyze or wants to derive an ontology structure from free-form business requirements text.
Use when the user runs /ontologian-validate or wants to check ontology YAML schema correctness and referential integrity across all domains.
Use when the user runs /ontologian or wants to see the overall status of the ontology repository — domain list, type counts, last modified dates, and available commands.
Use when the user runs /ontologian-sync or wants to manually sync local ontology/ to the global ~/.ontologian/ directory.
Use when the user runs /ontologian-visualize or wants to see a visual ASCII diagram of an ontology domain's Object Types, relationships, and actions.
| name | ontologian-search |
| description | Use when the user runs /ontologian-search or wants to search for a keyword across all ontology domains (object types, link types, action types). |
Search the entire ontology by keyword. Perform a case-insensitive search across Object Types, Link Types, and Action Types in all domains, and output results grouped by domain.
Glob ontology/domains/_index.yaml → if missing, output "Ontology is not initialized." and exit.
Parse the keyword and filter options from the arguments.
--type=object|link|action → search only the specified type--domain=<name> → search only the specified domainExample: /ontologian-search User --type=object --domain=ecommerce
If no arguments are given, prompt:
Enter a search keyword:
Store the keyword, type filter, and domain filter, then proceed to Step 3.
Read ontology/domains/_index.yaml. If the domains array is empty, output "No domains registered." and exit.
If a --domain filter is set, process only that domain. Iterate over the domains array and Read each file.
All domains use the directory format:
ontology/domains/<directory>/objects/*.md for object type matchesontology/domains/<directory>/links/*.md for link type matchesontology/domains/<directory>/actions/*.md for action type matchesStore type data in memory per domain. On read failure, log the error for that domain and continue.
Wiki link field parsing: The from, to, and target fields may be wiki links ("[[path|Name]]"). Always extract the Name portion for display and matching. Use the full pattern: if value matches [[<path>|<Name>]] → use <Name>; otherwise use the value as-is.
Iterate over stored data per domain and search for the keyword case-insensitively.
If a --type filter is set, search only that type's array.
Search targets:
| Type | Fields searched |
|---|---|
| Object Type | name, description, properties[].name |
| Link Type | name, description, from, to |
| Action Type | name, description, target, parameters[].name, trigger_condition.field, trigger_condition.from, trigger_condition.to |
Collect matching items grouped by domain.
No results found for '<keyword>'.
Output grouped by domain. Summarize key fields per item with a type label.
Output format:
## Search Results: "<keyword>"
### Domain: <domain_name>
[Object Type] <name>
Description: <description>
Properties: <prop1_name> (<type>[, PK][, computed]), <prop2_name> (<type>), ...
[Link Type] <name>
<from> → <to> (<cardinality>)
Description: <description>
[Action Type] <name>
Description: <description>
Target: <target> / Trigger: <trigger>
### Domain: <domain_name2>
...
Total: <N> result(s) (Object: <N>, Link: <N>, Action: <N>)
(Some domains failed to load: <name1>, <name2>) ← only shown if any domain failed
Result rendering (directory-format domains): Use the multi-line grouped format. For each matched result, render the entity name as a markdown file link within the type header line:
[Object Type] [<name>](ontology/domains/<directory>/objects/<name>.md)[Link Type] [<name>](ontology/domains/<directory>/links/<name>.md)[Action Type] [<name>](ontology/domains/<directory>/actions/<name>.md)The description, properties, and other detail lines below the header remain as plain text. Apply this format only to directory-format domains.
Field output rules:
description.properties on one line. Mark primary: true as PK and computed: true as computed in parentheses. Omit if no properties.cardinality, show only the arrow (→).trigger, show only the target.## Search Results: "User"
### Domain: ecommerce
[Object Type] User
Description: Service user
Properties: user_id (string, PK), email (string), churn_score (float, computed)
[Link Type] places
User → Order (one_to_many)
Description: A user places an order
Total: 2 result(s) (Object: 1, Link: 1, Action: 0)
(Some domains failed to load: <name>).