Import: Skill Creator (OpenAI)
What it does
This import adapter migrates a skill-creation/skill-authoring tool originally built for the OpenAI API into the mini-claude-for-legal standard format. OpenAI-native skill creators typically use GPT-4's function calling, structured JSON output mode, or Assistant API tool definitions to generate skill configurations — these must be translated into the SKILL.md format used by this repository.
The key differences between OpenAI and Anthropic/Louis skill formats that this adapter handles:
| OpenAI format | mini-claude-for-legal equivalent |
|---|---|
function_definitions JSON array |
SKILL.md with ## Capabilities section |
system_message string |
SKILL.md ## Behavior section |
tool_choice schema |
Routing via intent frontmatter field |
response_format: json_object |
Output schema in ## Output format section |
Assistant API instruction |
SKILL.md as standalone skill file |
Import config
| Field | Source mapping | Default if absent |
|---|---|---|
source_format |
Legacy format |
function_calling (most common OpenAI pattern) |
function_definitions |
Legacy functions array |
Extract from source |
system_message |
Legacy system string |
Map to skill body |
response_format |
Legacy response_format |
Map to ## Output format section |
model_hint |
Legacy model field |
claude-sonnet-4-5 (Anthropic equivalent) |
category_detection |
Auto-detect from function names + description | Prompt if ambiguous |
output_format |
Target format | skill_md |
Dry-run preview
IMPORT PREVIEW — skill-creator-openai
Source format : function_calling (GPT-4)
Functions : [count] function definitions detected
System message : [present / absent]
Response format: json_object → mapped to structured output section
Model : gpt-4-turbo → mapped to claude-sonnet-4-5
Category : [detected / needs confirmation]
Output : SKILL.md
Translation pipeline (post-import)
Function definitions → skill body
OpenAI function definitions carry a description (purpose), parameters (inputs), and returns schema. These map as follows:
// OpenAI input:
{
"name": "review_contract",
"description": "Review a contract for legal risks",
"parameters": {
"type": "object",
"properties": {
"contract_text": {"type": "string", "description": "Full contract text"},
"jurisdiction": {"type": "string", "description": "Governing jurisdiction"}
},
"required": ["contract_text"]
}
}
Maps to SKILL.md:
name: review-contract(slugified)## Required inputs→contract_text(required),jurisdiction(optional with default)## Output format→ derived from the function's return type or downstream usage
System message → skill body
The OpenAI system message becomes the core of the SKILL.md body:
- Persona/role description →
## When to use thisor behavioral## Behaviorsection - Step-by-step instructions → appropriate methodology section per category
- Output format instructions →
## Output formatsection - Constraints →
## Do notor## Limits & escalationsection
Model-specific features that do not migrate directly
| OpenAI feature | Migration path |
|---|---|
function_calling |
Convert to Claude tool use or structured output; document in ## Capabilities |
gpt-4-vision |
Claude's native vision capability; may migrate directly |
Assistant API threads |
Stateless SKILL.md; conversation history managed externally |
Code Interpreter |
Not directly available; document as limitation |
Retrieval |
Map to document-ingestion import skills |
Quality validation (post-import)
After translation, verify:
- All function parameters are represented as Required / Optional inputs
- Response format is documented in ## Output format
- MENA jurisdictional context is added where relevant (OpenAI skills are often US-centric)
- No OpenAI-specific syntax remains in the skill body
- Related skills section populated
Failure modes
| Error | Likely cause | Resolution |
|---|---|---|
function_schema_too_complex |
Deeply nested parameter schemas | Flatten; document complex sub-objects as tables |
system_message_too_long |
4000+ token system prompt | Summarise into skill body; move details to ## Document structure |
gpt4_features_not_available |
Code Interpreter or Retrieval used | Document limitation in ## Limits section |
category_ambiguous |
Function names not clearly legal | Prompt user to select category |
us_law_hardcoded |
Source assumed US jurisdiction | Add jurisdictions: [__multi__] and MENA notes |
Related skills
- [[import-skill-creator-anthropic]]
- [[import-skill-optimizer-lawvable]]
- [[import-security-review-openai]]
- [[import-tabular-review-lawvable]]
- [[import-contract-review-anthropic]]