| name | Engine Creator |
| description | This skill should be used when the user asks to "create a research engine", "build a research plugin", "customize deep research", "make a domain-specific research tool", "design a research pipeline", "create engine", or wants to create specialized deep-research engines as standalone Claude Code plugins. |
| version | 1.9.0 |
Engine Creator
Create domain-specialized deep-research engine plugins through a structured wizard interview. Collects domain identity, scope, source strategy, agent pipeline, quality framework, and output preferences, then generates a complete standalone Claude Code plugin. Two output modes: self-contained (full pipeline) or extension (overlay on base /deep-research). Uses progressive disclosure with domain presets for smart defaults.
Wizard Interview Protocol
Guide the user through 9 sections sequentially. Use AskUserQuestion for every structured choice. Pre-fill sections 4-9 when a domain preset is selected. Skip re-asking confirmed pre-filled fields.
Section 1: Domain Identity
- Engine name -- Ask for kebab-case name (e.g.
patent-intelligence). Validate pattern ^[a-z0-9]+(-[a-z0-9]+)*$; suggest correction if invalid.
- Domain description -- "What field does this engine research?"
- Target audience -- "Who uses the research output?"
- Engine description -- Auto-derive default: "A domain-specialized research engine for {domain}". Show to user: "Engine description for plugin manifest: [default]. Accept or customize?" via AskUserQuestion.
- Author -- Attempt to read from git config:
git config user.name and git config user.email. Show: "Author: {name} <{email}>. Accept or customize?" If git config unavailable, ask for name and email. These are optional — user can skip.
- Keywords -- Auto-derive from domain + question types. Show: "Suggested keywords: [list]. Accept or customize?" via AskUserQuestion.
- Domain preset -- AskUserQuestion: Legal Research, Market Intelligence, Academic Research, OSINT Investigation, Technical Due Diligence, Custom (no preset). If preset selected, read from
${CLAUDE_PLUGIN_ROOT}/skills/engine-creator/domain-presets/{preset-name}.json and pre-fill sections 4-9. Inform user: "Loaded the {preset} preset -- you can accept or customize defaults."
- Output mode -- AskUserQuestion: Self-contained (full pipeline, no dependencies) or Extension (overlay requiring base /deep-research plugin).
Section 2: Research Scope & Objectives
- Question types -- AskUserQuestion multiSelect: Landscape Analysis, Comparative Analysis, Trend Forecasting, Risk Assessment, Literature Review, Investigative/OSINT, Due Diligence, Custom
- Geographic scope -- AskUserQuestion: Global, North America, Europe, Asia-Pacific, Specific Regions (follow-up), Custom
- Temporal focus -- AskUserQuestion: Current State Only, Historical + Current, Trend Forecasting, All Timeframes
- Primary deliverable -- AskUserQuestion: Briefing Document, Comprehensive Report, Analytical Assessment, Literature Review, Investigative Dossier, Custom
Section 3: Sample Research Questions
- Ask for 3-5 example research questions via AskUserQuestion text prompt.
- Analyze samples to auto-suggest: source types needed, agent specializations, search template patterns, output structure elements (e.g., comparison matrix for comparative questions).
- Present: "Based on your sample questions, I recommend..." with categorized suggestions.
- AskUserQuestion: Accept All, Customize, Skip.
Section 4: Source Strategy
Show current hierarchy from preset or sample analysis; build from scratch if no preset.
- Credibility tiers -- For each tier 1-5, show name and sources. AskUserQuestion per tier: Accept or Customize.
- Preferred sources -- "Any additional domains to prioritize?" Free text.
- Excluded sources -- "Any domains to always exclude?" Free text.
- Filters -- AskUserQuestion: No Filters, Language Only (ISO 639-1 codes), Geographic Only (country codes), Both.
- Search templates -- Show existing. AskUserQuestion: Accept Current, Add New, Modify, Remove.
Section 5: Agent Pipeline Design
- AskUserQuestion: Basic (recommended structure, confirm tier assignments) or Advanced (configure each agent individually).
- Basic: Show tier structure and agent list. AskUserQuestion: Accept, Add Agent, Remove Agent, Modify Agent.
- Advanced: Per agent ask: ID (kebab-case), role, sub-agent type (AskUserQuestion: general-purpose, expert-instructor, intelligence-analyst), model (AskUserQuestion: sonnet, opus, haiku), specialization instructions. Then ask tier assignments and follow-up round settings.
- VVC agent: When VVC is enabled (Section 6), automatically include
vvc-specialist as a pipeline agent. This agent is NOT added to any tier's agents array — it runs in Phases 5-6, not Phase 2. Include it in agentPipeline.agents for file generation but do not assign it to tiers. The VVC agent definition uses subagentType: "general-purpose" (needs WebFetch for source verification, Read/Write/Edit for reports). Auto-derive specialization from the engine's domain.
Section 6: Quality Framework
Show preset values or defaults; ask to confirm or customize:
- Confidence scoring -- Show HIGH/MEDIUM/LOW/SPECULATIVE. AskUserQuestion: Accept or Customize per level.
- Minimum evidence -- Show threshold. Accept or customize via free text.
- Validation rules -- Show numbered list. AskUserQuestion: Accept, Add Rule, Remove Rule.
- Citation standard -- AskUserQuestion: APA 7th (default), Bluebook, Chicago, Custom.
Citation Management
After configuring the citation standard, ask about source verification:
Use AskUserQuestion: "How should this engine verify cited sources?"
- Options:
- "Spot-check (Recommended)" -- verify a random sample of HIGH-confidence citations
- "Comprehensive" -- verify every cited source (thorough but slower)
- "None" -- trust agent-reported citations without verification
Use AskUserQuestion: "Should sources be verified immediately when discovered, or in a batch after research?"
- Options:
- "Probe on discovery (Recommended)" -- verify source accessibility when found (prevents wasted analysis on dead sources)
- "Batch verification after research" -- verify all sources in a post-research pass
Use AskUserQuestion: "How should the engine handle dead links?"
- Options:
- "Archive.org fallback (Recommended)" -- attempt Wayback Machine retrieval for dead URLs
- "Flag only" -- mark dead links in the report but don't attempt recovery
- "Exclude from HIGH claims" -- downgrade claims that rely solely on unreachable sources
Use AskUserQuestion: "What source freshness threshold should be enforced?"
- Options:
- "2 years (Recommended)" -- flag sources older than 2 years
- "5 years" -- more lenient for slower-moving domains
- "1 year" -- strict for fast-moving domains
- "No limit" -- no freshness requirement
Use AskUserQuestion: "Generate a standalone Citation Verification Report?"
- Options:
- "Yes, for HIGH-confidence sources (Recommended)" -- audit HIGH-confidence citations
- "Yes, for all sources" -- comprehensive audit
- "No" -- skip verification report
Verification, Validation & Correction (VVC)
After citation management, configure the VVC pipeline:
Use AskUserQuestion: "Enable Verification, Validation & Correction (VVC)? Every deep research tool cites sources, but citations alone don't prevent hallucinations — the AI can cite a URL without accurately representing what it says. VVC goes further: it extracts every factual claim, re-fetches the cited source, and checks two things: (1) Is the source credible for this claim? (2) Was the source accurately represented? Failed claims are auto-corrected or flagged."
- Options:
- "Yes, enable VVC (Recommended)" -- adds Phase 5 (verification) and Phase 6 (correction)
- "No, skip VVC" -- Phase 4 produces the final report directly
If VVC enabled:
Use AskUserQuestion: "What percentage of MEDIUM-confidence claims should be verified? (HIGH is always 100%)"
- Options:
- "100% (Recommended)" -- verify all MEDIUM claims (highest accuracy)
- "75%" -- balanced verification depth
- "50%" -- lighter verification
- Custom (free text, 0-100)
Use AskUserQuestion: "What percentage of LOW-confidence claims should be verified?"
- Options:
- "100% (Recommended)" -- verify all LOW confidence claims
- "50%" -- moderate LOW claim verification
- "25%" -- spot-check LOW claims
- Custom (free text, 0-100)
Use AskUserQuestion: "What percentage of SPECULATIVE-confidence claims should be verified?"
- Options:
- "100% (Recommended)" -- verify all SPECULATIVE claims
- "50%" -- moderate SPECULATIVE claim verification
- "0%" -- skip SPECULATIVE claim verification
- Custom (free text, 0-100)
Use AskUserQuestion: "Customize claim type taxonomy? Default types: [VC] Verifiable Claim, [PO] Professional Opinion, [IE] Inferred/Extrapolated"
- Options:
- "Accept defaults (Recommended)" -- use VC/PO/IE taxonomy
- "Add domain-specific types" -- add custom types (e.g., [LH] Legal Holding, [SD] Statistical Data)
If adding custom types: ask for tag (2-4 uppercase letters), label, description, and whether it requires verification.
Use AskUserQuestion: "VVC tier behavior?"
- Options:
- "Standard defaults (Recommended)" -- Quick: none, Standard: verify-only, Deep: full, Comprehensive: full
- "Customize per tier" -- configure each tier individually
If customizing per tier: for each of Standard, Deep, Comprehensive, ask: none / verify-only / full. Quick is always "none".
Provenance (always on)
Inform the user — this is NOT a question:
- SHA-256 source hashing is enabled for all tiers
- Phase 4.5 provenance audit runs on Standard/Deep/Comprehensive tiers
--reverifiable flag available to retain source snapshots
- No configuration needed — provenance is baked into every generated engine
Section 7: Output Structure
- Report output directory -- AskUserQuestion: "Where should research reports be saved? Each run creates a timestamped subdirectory under this path." Default:
./research-reports. Common alternatives: ./output/reports, docs/research, or a project-specific path. Accept or customize.
- Report sections -- Show ordered list. AskUserQuestion: Accept, Add, Remove, Reorder.
- File naming -- Show template (e.g.
{date}_{topic_slug}_research_report.md). Accept or customize.
- Special deliverables -- "Any special artifacts? (e.g., competitive matrix, patent family tree)" Free text or "None".
Section 8: Advanced Configuration
- AskUserQuestion: "Configure advanced settings?" Yes or No (use defaults).
- If yes: max iterations (1-5, default 3), exploration depth (1-10, default 2), max WebFetch calls per agent (1-50, default 10), max follow-up agents for Comprehensive tier (1-5, default 2), token budgets (planning: 2000, research: 15000, synthesis: 8000, reporting: 10000, vvc: 8000, provenance: 5000), dashboard port (1024-65535, default 3847), custom hooks, MCP server integrations.
- If no: use all defaults.
Section 9: Custom Prompts
- AskUserQuestion: "Customize agent prompts?" Yes or No (use preset defaults).
- If yes: global preamble (free text), per-agent overrides (ask per agent: "Custom instructions for {role}?"), synthesis instructions, reporting tone.
- If no: use preset values or leave empty.
Config Assembly
After all sections complete:
- Assemble
engine-config.json matching schema at ${CLAUDE_PLUGIN_ROOT}/skills/engine-creator/templates/engine-config-schema.json.
- Set
schemaVersion to "1.0".
- Set
engineMeta.createdAt using bash: TZ='America/New_York' date '+%Y-%m-%dT%H:%M:%S%:z'. Never hardcode timestamps.
- Set
engineMeta.createdBy to "deep-research-engine-creator/1.0.0" and version to "1.0.0".
- Derive
displayName from engine name: kebab-case to Title Case.
- Always include
qualityFramework.provenance with these defaults:
"provenance": {
"enabled": true,
"hashAlgorithm": "sha256",
"reverifiableDefault": false,
"auditPhase": {
"tiers": ["standard", "deep", "comprehensive"]
},
"chainFormat": "[SHA-256]|[URL]|[TIMESTAMP]|[AGENT_ID]|[PREV_HASH]"
}
- Fill unanswered optional fields with sensible defaults or omit.
- Validate all required fields. If any missing, ask user before proceeding.
Derived Content Generation
Before preview, compute creative/contextual content that requires LLM judgment
and store in config._derived:
- For each agent in agentPipeline.agents:
- Determine isVvcAgent (id === "vvc-specialist")
- Generate agentExamplesBlock: 3 domain-specific examples using XML blocks
- VVC agent: verification-specific examples
- Research agents: research-specific examples with domain terms
- Generate agentBodyBlock:
- VVC agent: Verification Protocol, WebFetch Budget, Output Format, Context Discipline
- Research agents: Search Protocol, Confidence Scoring, Output Format, Context Discipline
- Generate agentFirstActionsBlock:
- VVC agent: read vvc-pipeline.md, standards.md, draft report
- Research agents: read standards.md, research-protocol.md, research outline
- Generate scopeDisciplineBlock: both standalone and --extend variants,
incorporating domain-specific terminology
- Set operationalLessons: "No entries yet -- update after first research run with
/post-mortem."
Store all values in engine-config.json under "_derived" key.
Preview Protocol
Present to user before generating:
- Engine identity: name, display name, domain, audience, version
- Output mode (self-contained / extension)
- File tree of all files to be generated
- Agent pipeline table: Agent ID, Role, Sub-agent Type, Model, Active Tiers
- Source hierarchy: tier names with top 3 sources each
- Report sections list
- Sample questions from section 3
Ask: "Ready to generate? Confirm or choose a section to modify." AskUserQuestion: Confirm and Generate, Modify a Section. If modifying, re-run that section, update config, re-preview.
Generation Protocol
Execute after user confirms.
Step 1 -- Output directory. Ask where to save. Default: ./generated-engines/{{engineName}}/. Store as OUTPUT_DIR.
Step 2 -- Write engine-config.json. Write the assembled config (including _derived section) as formatted JSON to {OUTPUT_DIR}/engine-config.json.
Step 3 -- Generate engine files. Run the generator script:
python3 ${CLAUDE_PLUGIN_ROOT}/generator/generate.py {OUTPUT_DIR}/engine-config.json {OUTPUT_DIR}
The script reads engine-config.json (including _derived content), loads all templates,
performs placeholder substitution, and writes every output file deterministically.
If the script exits with error code 1 (validation), review the error message and fix
the config. Re-run the script.
If exit code 2 (template error), report the error to the user.
If exit code 0, proceed to Post-Generation.
Post-Generation
After the generator script completes successfully:
- The script has already verified all files exist and printed a summary.
- Suggest: "Run
/test-engine {OUTPUT_DIR} to validate config semantics."
- Copy the install command to the user's project for immediate use:
- Create
.claude/commands/ directory in the user's project if it doesn't exist.
- Copy
${CLAUDE_PLUGIN_ROOT}/commands/install-local-plugin.md to .claude/commands/install-local-plugin.md.
- Inform the user: "Run
/install-local-plugin {OUTPUT_DIR} to register the engine as an installed plugin."
- Suggest: "Alternatively, run
claude --plugin-dir {OUTPUT_DIR} for quick local testing without installation."
- Ask: "Would you like to publish this engine to a marketplace or push to a Git repository?"
Template Reference
Templates at ${CLAUDE_PLUGIN_ROOT}/skills/engine-creator/templates/. The generator script (generate.py) handles all placeholder substitution automatically:
| Template | Purpose |
|---|
orchestrator-skill.md.tmpl | Self-contained engine orchestrator SKILL.md (~150-200 lines) |
standards.md.tmpl | Confidence scoring, source credibility, citation rules |
research-protocol.md.tmpl | Search protocol, iterative refinement, file isolation, WebFetch cap |
provenance.md.tmpl | Phase 2.5 batch hashing, Phase 4.5 provenance audit |
vvc-pipeline.md.tmpl | VVC Phases 5-6 instructions (conditional on VVC enabled) |
extension-skill.md.tmpl | Extension engine SKILL.md |
command-template.md.tmpl | /research command |
sources-command-template.md.tmpl | /sources command |
agent-template.md.tmpl | Per-agent definition |
plugin-json.tmpl | Plugin manifest |
readme-template.md.tmpl | Plugin README |
dashboard-server.js.tmpl | Dashboard SSE server (Node.js, zero dependencies) |
dashboard.html.tmpl | Live research dashboard (self-contained HTML) |
engine-config-schema.json | Config validation schema |
preset-schema.json | Domain preset validation schema |
plugin-manifest-schema.json | Plugin manifest validation schema |
Domain presets at ${CLAUDE_PLUGIN_ROOT}/skills/engine-creator/domain-presets/: legal-research.json, market-intelligence.json, academic-research.json, osint-investigation.json, technical-due-diligence.json.