DeepTutor CLI
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
[OMX] Socratic deep interview with mathematical ambiguity gating before execution
$ npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yangyuan-zhen/PolyWeather deep-interview --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/deep-interview .claude/skills/deep-interview && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "deep-interview" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interview into .claude/skills/deep-interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deep-interview", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yangyuan-zhen/PolyWeather deep-interview --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/deep-interview .agents/skills/deep-interview && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "deep-interview" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interview into .agents/skills/deep-interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deep-interview", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yangyuan-zhen/PolyWeather deep-interview --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/deep-interview .cursor/skills/deep-interview && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "deep-interview" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interview into .cursor/skills/deep-interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deep-interview", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yangyuan-zhen/PolyWeather.git --path .codex/skills/deep-interview--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yangyuan-zhen/PolyWeather deep-interview --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/deep-interview .gemini/skills/deep-interview && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "deep-interview" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interview into .gemini/skills/deep-interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deep-interview", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yangyuan-zhen/PolyWeather deep-interviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/deep-interview .github/skills/deep-interview && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "deep-interview" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interview into .github/skills/deep-interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deep-interview", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yangyuan-zhen/PolyWeather deep-interview --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yangyuan-zhen/PolyWeather.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/deep-interview .opencode/skills/deep-interview && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "deep-interview" agent skill from https://github.com/yangyuan-zhen/PolyWeather/tree/main/.codex/skills/deep-interview into .opencode/skills/deep-interview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deep-interview", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
deep-interview[OMX] Socratic deep interview with mathematical ambiguity gating before execution
Deep Interview is an agent skill from yangyuan-zhen/PolyWeather. [OMX] Socratic deep interview with mathematical ambiguity gating before execution
Its SKILL.md is about 11k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Education, covering Tutoring and explanations. The repository describes itself as: polymarket Intelligent Weather Quant Analysis Bot. The licence is AGPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 43e658b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json and toml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Deep Interview loads about 11k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 4,855 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yangyuan-zhen/PolyWeather at commit 43e658b, republished under its AGPL-3.0 licence (© yangyuan-zhen). 4,855 words, ~10,614 tokens.
.claude/skills/deep-interview/SKILL.md (or your agent's skills folder).<Purpose>
Deep Interview is an intent-first Socratic clarification loop before planning or implementation. It turns vague ideas into execution-ready specifications by asking targeted questions about why the user wants a change, how far it should go, what should stay out of scope, and what OMX may decide without confirmation.
</Purpose>
<Use_When>
ralplan, autopilot, ralph, or team
</Use_When><Do_Not_Use_When>
plan instead)<Why_This_Exists> Execution quality is usually bottlenecked by intent clarity, not just missing implementation detail. A single expansion pass often misses why the user wants a change, where the scope should stop, which tradeoffs are unacceptable, and which decisions still require user approval. This workflow applies Socratic pressure + quantitative ambiguity scoring so orchestration modes begin with an explicit, testable, intent-aligned spec. </Why_This_Exists>
<Depth_Profiles>
--quick): fast pre-PRD pass; target threshold <= 0.30; max rounds 5--standard, default): full requirement interview; target threshold <= 0.20; max rounds 12--deep): high-rigor exploration; target threshold <= 0.15; max rounds 20--autoresearch): same interview rigor as Standard, but specialized for $autoresearch mission readiness and .omx/specs/ artifact handoffProfile max rounds is a hard cap, not a target. Do not continue only to reach a numbered round count. Extra Socratic rigor does not override the active threshold unless the profile/config changes.
If no flag is provided, use Standard.
<Mode_Flags>
--autoresearch: switch the interview into autoresearch-intake mode for $autoresearch handoff. In this mode, the interview should converge on a validator-ready research mission, write canonical artifacts under .omx/specs/, and preserve the explicit refine further vs launch boundary for downstream skill intake.
</Mode_Flags>
</Depth_Profiles><Execution_Policy>
questions[] form)explore before asking user about internalsomx explore is deprecated. Use normal repository inspection tools/subagents for simple read-only brownfield fact gathering; use omx sparkshell only for explicit shell-native read-only evidence, and keep ambiguous or non-shell-only investigation on the richer normal path.AGENTS.md files, README/getting-started docs, relevant docs/ contracts/plans/ADRs, existing .omx/context/ snapshots, and any project-local glossary/context files such as CONTEXT.md or CONTEXT-MAP.md when present.$best-practice-research as the bounded evidence wrapper before crystallizing requirements or handing off to planning/execution.omx question source values, and never replace the runtime source: "deep-interview" contract for user-facing deep-interview questions:[from-code][auto-confirmed] — exact, high-confidence codebase facts from manifests/configs or direct source evidence, with no prescription attached.[from-code] — codebase findings that are useful but inferred, pattern-based, or low/medium confidence and therefore need a confirmation-style user-facing round before being treated as settled.[from-research] — externally sourced facts such as API limits, compatibility, or public documentation; facts only, not decisions.[from-user] — goals, preferences, business logic, scope, non-goals, acceptance criteria, tradeoffs, and any decision-bearing interpretation.[from-code][auto-confirmed] and other non-user fact discoveries as context/transcript updates, not interview rounds: do not call omx question, do not create a pending deep-interview question obligation, and do not increment the user-facing round number for facts the agent can safely establish.[from-user] even when code or research facts are available.omx question as the required OMX-owned structured questioning path for every interview roundomx question through attached-tmux Bash/tool paths, preserve the leader-pane return target by prefixing the command with OMX_QUESTION_RETURN_PANE=$TMUX_PANE (or a concrete %pane value)omx question in a background terminal, immediately wait for that background terminal to finish and read its JSON answer before scoring ambiguity, asking another round, or handing offanswers[] as the primary omx question success contract. For a single interview round, read answers[0].answer; use legacy top-level answer only as a compatibility fallback when needed.omx question, use the native structured question tool when available; otherwise ask exactly one concise plain-text question and wait for the answermax_rounds as a stop cap, not evidence that more rounds are needed.Non-goals or Decision Boundaries remain unresolved, even if the weighted ambiguity threshold is metomx state write/read --input '<json>' --json); use state_write / state_read only when explicit MCP compatibility is enabled
</Execution_Policy><Steps>
{{ARGUMENTS}} and derive a short task slug..omx/context/{slug}-*.md.not_needed, needed, or recorded)AGENTS.md files and template/runtime instruction surfaces that apply to the touched pathsdocs/, especially contracts, plans, ADR-like records, and workflow docs.omx/context/ snapshots, .omx/specs/, and planning artifacts relevant to the slugCONTEXT.md, CONTEXT-MAP.md, or context-specific docs when they exist.omx/context/{slug}-{timestamp}.md (UTC YYYYMMDDTHHMMSSZ) and reference it in mode state.{{ARGUMENTS}} and depth profile (--quick|--standard|--deep).explore to classify brownfield (existing codebase target) vs greenfield.omx state write --input '{"mode":"deep-interview","active":true}' --json:{
"active": true,
"current_phase": "deep-interview",
"state": {
"interview_id": "<uuid>",
"profile": "quick|standard|deep",
"type": "greenfield|brownfield",
"initial_idea": "<user input>",
"rounds": [],
"current_ambiguity": 1.0,
"threshold": 0.3,
"max_rounds": 5,
"challenge_modes_used": [],
"codebase_context": null,
"current_stage": "intent-first",
"current_focus": "intent",
"context_snapshot_path": ".omx/context/<slug>-<timestamp>.md"
}
}Repeat until ambiguity <= threshold, the pressure pass is complete, the readiness gates are explicit, the user exits with warning, or max rounds are reached. This is a stop condition: below threshold, do not open a new ordinary interview branch.
If the initial context is oversized and no prompt-safe summary has been recorded yet, the next question must be only a summary request. Do not score ambiguity, do not run readiness gates, and do not hand off to $ultragoal, $ralplan, $autopilot, $ralph, or $team until that summary answer is captured.
Use:
Target the lowest-scoring dimension, but respect stage priority:
Follow-up pressure ladder after each answer:
Prefer staying on the same thread for multiple rounds when it has the highest leverage. Breadth without pressure is not progress.
Maintain a Breadth Ledger across independent ambiguity tracks: scope, constraints, outputs, verification, brownfield integration, and any user-mentioned deliverable tracks. The ledger is a guard, not a mandatory rotation rule: stay deep on the current thread until it has been pressure-tested, then zoom out only when another material track remains unresolved and would change execution.
Maintain a Docs/Terminology Ledger for brownfield interviews:
Detailed dimensions:
Non-goals and Decision Boundaries are mandatory readiness gates. Ask about them early and keep revisiting them until they are explicit.
Use the surface-appropriate structured questioning path for every interview round. In attached-tmux sessions, use OMX-owned structured questioning via omx question (this is the required structured-question equivalent and required AskUserQuestion equivalent for deep-interview). Outside tmux, use native structured input when available; otherwise ask exactly one concise plain-text question and wait for the answer. Present:
Round {n} | Target: {weakest_dimension} | Ambiguity: {score}%
{question}omx question payload guidance for interview rounds:
questions[] to combine multiple interview rounds, even though omx question supports batch forms for other workflows.type values instead of authoring raw multi_select flags by hand. type: "single-answerable" is the default for one-path decisions; type: "multi-answerable" is the canonical shape for bounded multi-select rounds. The runtime will keep multi_select aligned with type.single-answerable when exactly one answer should drive the next branch, the options are mutually exclusive, or selecting more than one answer would blur the decision boundary. Typical cases: handoff lane selection, choosing the primary failure mode, or confirming which of several competing interpretations is correct.multi-answerable when multiple options may all be true at once and you need to capture a bounded set of coexisting constraints, non-goals, risks, or acceptance checks in one round. Typical cases: selecting all out-of-scope items, all success metrics that must hold, or all deployment constraints that apply together.single-answerable round now and ask the follow-up next. Do not hide a branching interview tree inside one overloaded multi-select prompt.allow_other: false; only leave allow_other: true when the interview genuinely needs one user-supplied option that cannot be enumerated in advance.answers[] array. For a normal single-round interview response, use answers[0].answer as the source of truth; the top-level answer field is a legacy single-question projection/fallback only.single-answerable, expect one decisive selection in the value field of answers[0].answer plus its selected-values metadata. For multi-answerable, treat the selected-values field inside answers[0].answer as the source of truth for all chosen constraints/non-goals and preserve the full set in the transcript/spec. In legacy single-question projections, this is equivalent to: For multi-answerable, treat answer.selected_values as the source of truth.Canonical bounded single-choice payload:
{
"question": "Which execution lane should own this once the interview is complete?",
"type": "single-answerable",
"options": [
{
"label": "Plan first",
"value": "ralplan",
"description": "Need architecture and test-shape review before execution"
},
{
"label": "Execute directly",
"value": "autopilot",
"description": "Requirements are already explicit enough for planning plus execution"
},
{
"label": "Refine further",
"value": "refine",
"description": "Clarification is still needed before any handoff"
}
],
"allow_other": false,
"other_label": "Other",
"source": "deep-interview"
}Canonical bounded multi-select payload:
{
"question": "Which non-goals must stay out of scope for the first pass?",
"type": "multi-answerable",
"options": [
{
"label": "No UI redesign",
"value": "no-ui-redesign",
"description": "Keep layout and styling unchanged"
},
{
"label": "No new dependencies",
"value": "no-new-dependencies",
"description": "Work within the existing toolchain"
},
{
"label": "No API contract changes",
"value": "no-api-contract-changes",
"description": "Preserve external request and response shapes"
}
],
"allow_other": false,
"other_label": "Other",
"source": "deep-interview"
}Canonical answer-shape reminders:
{
"answer": {
"kind": "option",
"value": "ralplan",
"selected_labels": ["Plan first"],
"selected_values": ["ralplan"]
}
}{
"answer": {
"kind": "multi",
"value": ["no-new-dependencies", "no-api-contract-changes"],
"selected_labels": ["No new dependencies", "No API contract changes"],
"selected_values": ["no-new-dependencies", "no-api-contract-changes"]
}
}Score each weighted dimension in [0.0, 1.0] with justification + gap.
Greenfield: ambiguity = 1 - (intent × 0.30 + outcome × 0.25 + scope × 0.20 + constraints × 0.15 + success × 0.10)
Brownfield: ambiguity = 1 - (intent × 0.25 + outcome × 0.20 + scope × 0.20 + constraints × 0.15 + success × 0.10 + context × 0.10)
Readiness gate:
Non-goals must be explicitDecision Boundaries must be explicit<= 0.10, another user-facing question is allowed only as that final closure question; otherwise crystallize immediately.Show weighted breakdown table, readiness-gate status (Non-goals, Decision Boundaries), and the next focus dimension.
Append round result and updated scores via omx state write --input '<json>' --json; use state_write only when explicit MCP compatibility is enabled.
[from-code][auto-confirmed], [from-code], or [from-research]). After 3 consecutive non-user or confirmation answers, the next material user-facing round must solicit direct human judgment ([from-user]) unless the closure audit says the interview is ready to crystallize.max_rounds; never treat this cap as a desired interview length or quotaUse each mode once when applicable. These are normal escalation tools, not rare rescue moves:
Track used modes in state to prevent repetition.
When threshold is met (or user exits with warning / hard cap):
.omx/interviews/{slug}-{timestamp}.md.omx/specs/deep-interview-{slug}.mdSpec should include:
When the clarified task is specifically about $autoresearch, or the skill is invoked with --autoresearch, keep the interview domain-specific and emit skill-consumable artifacts without skipping clarification.
topic, evaluator, keep-policy, slug, existing mission draft text, and prior evaluator examples/templates.omx/specs/deep-interview-autoresearch-{slug}.md.omx/specs/autoresearch-{slug}/mission.md, .omx/specs/autoresearch-{slug}/sandbox.md, and .omx/specs/autoresearch-{slug}/result.json.omx/specs/autoresearch-{slug}/Mission DraftEvaluator DraftLaunch ReadinessSeed InputsConfirmation Bridge.omx/specs/autoresearch-{slug}/:mission.mdsandbox.mdresult.json<...>, TODO, TBD, REPLACE_ME, CHANGEME, or your-command-hereresult.json should point to the draft + mission/sandbox artifacts and carry the finalized topic, evaluatorCommand, keepPolicy, slug, launchReady, and blockedReasons fields so $autoresearch can consume it directlyrefine further and launch; do not run direct CLI launch or detached/split tmux launch, and only hand off to $autoresearch after explicit confirmationPresent execution options after artifact generation using explicit handoff contracts. Treat the deep-interview spec as the current requirements source of truth and preserve intent, non-goals, decision boundaries, acceptance criteria, docs/terminology grounding, and any residual-risk warnings across the handoff.
When an Autopilot/deep-interview handoff explicitly requires a stride contract, emit it as structured data rather than prose. This is a validation foundation, not a broadness-inference feature: do not infer stride from task length, phase labels, snapshots, or freeform wording.
Canonical location under Autopilot state:
{
"handoff_artifacts": {
"deep_interview": {
"execution_contract_required": true,
"execution_contract": {
"version": 1,
"execution_stride": "task",
"source": "deep-interview",
"selected_by": "user",
"allow_task_shrink": true,
"completion_unit": "One focused task",
"stop_condition": "Stop after that task is implemented and verified",
"acceptance_coverage_scope": "task",
"shrink_policy": "allowed"
}
}
}
}Stride meanings:
task: conservative, small-step execution; allow_task_shrink:true, acceptance_coverage_scope:"task", shrink_policy:"allowed".deliverable: finish the named deliverable before stopping; allow_task_shrink:false, acceptance_coverage_scope:"deliverable", shrink_policy:"ask_before_shrink".milestone: finish the larger approved milestone unless blocked; allow_task_shrink:false, acceptance_coverage_scope:"milestone", shrink_policy:"deny_unless_blocked".Only set execution_contract_required:true when the selected downstream workflow needs this explicit stride/stop-condition guard. New artifacts must write the canonical snake_case schema shown above under handoff_artifacts.deep_interview; runtime readers may accept legacy camelCase field/marker aliases and direct/nested execution_contract locations only as compatibility input. If execution_contract_required is absent or false, downstream Autopilot compatibility behavior is unchanged.
Include these product-facing suggestions when they fit the clarified spec, without removing the existing $ultragoal, $ralplan, $autopilot, $ralph, and $team handoff options:
$ultragoal — default goal-mode follow-up for implementation or general goal-oriented follow-up specs that should be converted into durable Codex/OMX goals with sequential completion tracking.$autoresearch-goal — use when the clarified context is a research project: a research question, reference/literature gathering, evaluator-backed analysis, or professor/critic-style deliverable.$performance-goal — use when the clarified context is an optimization or performance project with measurable speed, latency, throughput, memory, benchmark, or evaluator criteria.Recommend $ultragoal as the default durable goal-mode follow-up because it supersedes Ralph for goal tracking. Preserve $team for coordinated parallel implementation and keep $ralph only as an explicit fallback for persistent single-owner execution/verification when the user specifically selects it.
$ultragoal (Default durable execution follow-up).omx/specs/deep-interview-{slug}.md (optionally accompanied by the transcript/context snapshot for traceability)$ultragoal create-goals --brief-file <spec-path> followed by $ultragoal complete-goals in the active execution lane.omx/ultragoal/brief.md, .omx/ultragoal/goals.json, .omx/ultragoal/ledger.jsonl, implementation evidence, verification evidence, and final cleanup/review-gate evidence$team only inside an active Ultragoal story when parallel lanes are warranted, and use $ralph only as an explicit fallback when the user asks for that legacy persistence mode$ralplan (Recommended when architecture/test-shape review is still needed).omx/specs/deep-interview-{slug}.md (optionally accompanied by the transcript/context snapshot for traceability)$plan --consensus --direct <spec-path>.omx/plans/, especially prd-*.md and test-spec-*.md$ultragoal as the default durable goal-mode follow-up (optionally with $team for parallel lanes); choose $autoresearch-goal for research validation or $performance-goal for measurable optimization, and use $ralph only as an explicit fallback when a narrow single-owner persistence loop is requested$autopilot.omx/specs/deep-interview-{slug}.md$autopilot <spec-path>$team under a leader-owned $ultragoal ledger, using $ralph only as an explicit fallback when a narrow single-owner persistence loop is requested$ralph (Explicit fallback only).omx/specs/deep-interview-{slug}.md$ralph <spec-path>$ultragoal for durable goal tracking and completion checkpoints$team under $ultragoal checkpointing rather than promoting Ralph as the next default$team.omx/specs/deep-interview-{slug}.md$team <spec-path>$ultragoal by default, escalating to a separate Ralph loop only when the user explicitly asks for that persistent verification/fix ownerResidual-Risk Rule: If the interview ended via early exit, hard-cap completion, or above-threshold proceed-with-warning, explicitly preserve that residual-risk state in the handoff so the downstream skill knows it inherited a partially clarified brief.
IMPORTANT: Deep-interview is a requirements mode. On handoff, invoke the selected skill using the contract above. Do NOT implement directly inside deep-interview.
</Steps>
<Tool_Usage>
explore for codebase fact gatheringomx question as the OMX-native structured user-input tool for each interview round when an attached tmux renderer is availableOMX_QUESTION_RETURN_PANE=$TMUX_PANE omx question ... unless an explicit %pane return target is already knownomx question, use native structured input when available; otherwise ask exactly one concise plain-text question and wait for the answeromx question returns JSON, prefer answers[0].answer / answers[]; use legacy answer only as a fallback for older recordsomx state write/read --input '<json>' --json for resumable mode state; state_write / state_read are explicit MCP compatibility fallbacks onlyomx question round, persist the blocker as terminal state with active: false and current_phase: "blocked"; do not write a terminal blocked phase with active: true.omx/context/.omx/interviews/ and .omx/specs/
</Tool_Usage><Escalation_And_Stop_Conditions>
<Final_Checklist>
.omx/context/{slug}-{timestamp}.md.omx/interviews/{slug}-{timestamp}.md.omx/specs/deep-interview-{slug}.md$ultragoal, $ralplan, $autopilot, $ralph, $team) plus context-sensitive goal-mode suggestions ($autoresearch-goal, $performance-goal) when applicable<Advanced>
## Suggested Config (optional)
Deep-interview reads runtime defaults from the first existing config source in this order:
.omx/config.tomlomx.toml~/.omx/config.tomlThis section is currently a deep-interview-specific runtime override surface, not a general replacement for Codex config.toml or .omx-config.json model/env routing.
Malformed config files are ignored fail-soft so $deep-interview activation can continue with built-in defaults.
Explicit --quick, --standard, or --deep invocation flags override defaultProfile.
[omx.deepInterview]
defaultProfile = "standard"
quickThreshold = 0.30
standardThreshold = 0.20
deepThreshold = 0.15
quickMaxRounds = 5
standardMaxRounds = 12
deepMaxRounds = 20
enableChallengeModes = trueIf interrupted, rerun $deep-interview. Resume from persisted mode state via omx state read --input '{"mode":"deep-interview"}' --json.
deep-interview -> ralplan -> autopilot</Advanced>
© yangyuan-zhen, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .codex/skills/deep-interview of yangyuan-zhen/PolyWeather.
Open the folder on GitHubat commit 43e658b
Deep Interview next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Deep Interview this skillyangyuan-zhen/PolyWeather | 316 | — | ~11k | Automated safety check: Pass | AGPL-3.0 | |
| DeepTutor CLIHKUDS/DeepTutor | 41k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| AI Engineering Project Tutorrohitg00/ai-engineering-from-scratch | 66k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Hung-Yi Lee Teaching Stylevoidful/hung-yi-lee-skill | 1.3k | — | ~13k | Automated safety check: Pass | None | |
| Claude Certification Tutorrohitg00/ai-engineering-from-scratch | 66k | — | ~3k | Automated safety check: Pass | MIT | |
| StudyVault Quiz Tutorbevibing/tutor-skills | 1.3k | — | ~1.4k | Automated safety check: Pass | MIT |
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
rohitg00/ai-engineering-from-scratch
Tutors a learner through one stage of a hands-on AI engineering project per session: lesson, prediction, code, grader run and reflection, with hints but never full solutions.
voidful/hung-yi-lee-skill
Explains machine learning, LLMs, AI agents and speech modeling in a Hung-Yi Lee-inspired teaching style, drawing on a knowledge base built from his lectures and research references.
rohitg00/ai-engineering-from-scratch
Guides a learner through one of four independent Claude certification tracks with onboarding, lessons, practice labs, mock exams and remediation.
bevibing/tutor-skills
Quizzes you on the notes in an Obsidian StudyVault, tracks proficiency per concept and drills weak areas in four-question rounds.
THU-MAIC/OpenMAIC
Designs a review-and-practice lesson around an independent first attempt, targeted feedback, supported practice, a fresh independent check and a next step.
yangyuan-zhen/PolyWeather
[OMX] Run an anti-slop cleanup/refactor/deslop workflow. An agent skill from yangyuan-zhen/PolyWeather.
yangyuan-zhen/PolyWeather
[OMX] Run read-only deep repository analysis and return a ranked synthesis with explicit confidence, concrete file references, and clear evidence-vs-inference boundaries.
yangyuan-zhen/PolyWeather
[OMX] Stateful validator-gated research loop with native-hook persistence
yangyuan-zhen/PolyWeather
[OMX] Bounded best-practice research wrapper using official/upstream evidence first
yangyuan-zhen/PolyWeather
[OMX] Cancel any active OMX mode (autopilot, ralph, ultrawork, ecomode, ultraqa, swarm, ultrapilot, pipeline, team)
yangyuan-zhen/PolyWeather
[OMX] Configure OMX notifications - unified entry point for all platforms
Categories
[OMX] Socratic deep interview with mathematical ambiguity gating before execution. Deep Interview is an agent skill from yangyuan-zhen/PolyWeather.
Deep Interview fits situations like: tasks that involve Tutoring and explanations.
Run `npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a claude-code`. Or copy the skill folder (.codex/skills/deep-interview in yangyuan-zhen/PolyWeather) into .claude/skills/deep-interview in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a codex`. Or copy the skill folder (.codex/skills/deep-interview in yangyuan-zhen/PolyWeather) into .agents/skills/deep-interview in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yangyuan-zhen/PolyWeather --skill deep-interview -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deep-interview, .gemini/skills/deep-interview, .github/skills/deep-interview and .opencode/skills/deep-interview in your project.
SKILL.md names no scripts, command-line tools or credentials: Deep Interview is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Deep Interview is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 11k tokens (SKILL.md is roughly 42k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Deep Interview: DeepTutor CLI (HKUDS/DeepTutor, 41k stars), AI Engineering Project Tutor (rohitg00/ai-engineering-from-scratch, 66k stars), Hung-Yi Lee Teaching Style (voidful/hung-yi-lee-skill, 1.3k stars) and Claude Certification Tutor (rohitg00/ai-engineering-from-scratch, 66k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yangyuan-zhen (a GitHub user) maintains it in yangyuan-zhen/PolyWeather, which has 316 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on September 20, 2026.
Source: yangyuan-zhen/PolyWeather on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.