Run Qualitative Diffusion App Designer (QDAD) — a qualitative re-implementation of diffusion for app design.

MITAuto-check passedData & Analytics

Install Qdad

skills CLI
$ npx skills add iblameandrew/open-deepthink --skill qdad -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install iblameandrew/open-deepthink qdad --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/iblameandrew/open-deepthink.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/qdad .claude/skills/qdad && rm -rf skills-src

Use ~/.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/

Facts

Skill name
qdad
GitHub stars
151
Token cost
~5.6k tokens
SKILL.md length
1,568 words
Files
4
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Run Qualitative Diffusion App Designer (QDAD) — a qualitative re-implementation of diffusion for app design.

  • Works in 7 steps: — Capture the Intent Brief → — Phase 0: Foundation (qualitative… → — Phase 1: Agent grid construction → …
  • Designing a new app
  • SKILL.md covers How to execute (build the…, Technique analysis (read this;…, Usage and Step 0 — Capture the Intent…, plus 9 more sections
  • Runs Python scripts from its folder; calls python; reaches openrouter.ai; needs OPENROUTER_API_KEY and API_KEY

What it does

Qdad is an agent skill from iblameandrew/open-deepthink. Run Qualitative Diffusion App Designer (QDAD) — a qualitative re-implementation of diffusion for app design. Turns a vague Midjourney-style product prompt into a concrete, buildable agentic coding prompt via an N×N noun×verb feature grid, high-temperature noise induction, iterative critic reverse diffusion, and final synthesis. Use when designing a new app, expanding a vague product idea, or generating a high-quality build brief for Grok-Build / Cursor / Claude Artifacts. Triggers: /qdad, /app-slot-machine…

Its SKILL.md is about 5.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `CODE_REFERENCE.md`, `INSTALL.md` and `run_template.py`).

It sits in Data & Analytics. It works with Midjourney. The repository describes itself as: A multi-agent research laboratory for data distillation and long evolutionary collaborative reasoning. The licence is MIT.

When your agent uses it

  • Designing a new app
  • Expanding a vague product idea
  • Generating a high-quality build brief for Grok-Build / Cursor / Claude Artifacts

Example prompts

  • “diffuse this app”
  • “slot machine this idea”
  • “turn this vibe into a build prompt”
  • “/qdad”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. — Capture the Intent Brief
  2. — Phase 0: Foundation (qualitative basis)
  3. — Phase 1: Agent grid construction
  4. — Phase 2: Noise induction (forward diffusion)
  5. — Phase 3: Iterative qualitative denoising
  6. — Phase 4: Synthesis (decode)
  7. — Handoff to the coding loop

What it can do on your machine

Read from SKILL.md and the folder at commit b440af1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • openrouter.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OPENROUTER_API_KEY
    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Qdad loads about 5.6k tokens when it runs. Until then it costs about 169 tokens; SKILL.md has 1,568 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~169
When it runs · the whole SKILL.md, loaded when a task matches
~5.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from iblameandrew/open-deepthink at commit b440af1, republished under its MIT licence (© iblameandrew). 1,568 words, ~5,629 tokens.

Download SKILL.mdSave it as .claude/skills/qdad/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
qdad
description
Run Qualitative Diffusion App Designer (QDAD) — a qualitative re-implementation of diffusion for app design. Turns a vague Midjourney-style product prompt into a concrete, buildable agentic coding prompt via an N×N noun×verb feature grid, high-temperature noise induction, iterative critic reverse diffusion, and final synthesis. Use when designing a new app, expanding a vague product idea, or generating a high-quality build brief for Grok-Build / Cursor / Claude Artifacts. Triggers: /qdad, /app-slot-machine, /qualitative-diffusion, "diffuse this app", "slot machine this idea", "turn this vibe into a build prompt", Midjourney-style app prompt → coding prompt.
metadata.short-description
QDAD: vague app vibe → agentic coding prompt via qualitative diffusion
metadata.portable
true
metadata.agent-agnostic
true
metadata.technique
qualitative-diffusion

/qdad — Qualitative Diffusion App Designer

Use Qualitative Diffusion (QDAD) when you need to turn a vague aesthetic or product vibe into a concrete, buildable app specification — the same job Midjourney does for images, but the latent is language and the decode target is an agentic coding prompt.

This skill is portable. You do not need the open-deepthink HTTP server. Same algorithm as App Slot Machine Mode (deepthink/qdad/).

How to execute (build the script on the fly — mandatory)

Do not point the user at a pre-installed CLI path. You write the runner into the workspace, then run it with parsed parameters.

Protocol (every /qdad invoke)
  1. Parse the user message → Midjourney-style prompt + optional
    N=…, steps=…, temperature flags, or --debug.
  2. Materialize the runner:
    • Create .skill-runs/ in the workspace root if missing.
    • Read skill sibling run_template.py (next to this SKILL.md). If missing, write Appendix A from the end of this skill.
    • Write source to .skill-runs/run_qdad.py (overwrite).
  3. Execute:
bash
python .skill-runs/run_qdad.py \
  --prompt "<Midjourney-style app intent>" \
  --n 3 \
  --temperature-scale 1.3 \
  --denoising-steps 2 \
  --noun-verb-temperature 0.6 \
  --out .skill-runs/qdad-result.json

Debug / no API cost:

bash
python .skill-runs/run_qdad.py --prompt "<intent>" --debug --n 2 --denoising-steps 1
  1. Deliver stdout (# App Build Prompt) as the primary answer.
  2. Handoff — only implement the app after the user approves.

The script auto-discovers deepthink (walk parents / OPEN_DEEPTHINK_ROOT).
Engine: deepthink.qdad.run_qdad_pipeline (foundation → grid → noise → denoise → synth).

CLI parameters
FlagParamDefault
--promptuser intentrequired
--ngrid size N4
--temperature-scaleforward noise T1.3
--denoising-stepsreverse rounds3
--noun-verb-temperaturefoundation T0.6
--provider / --api-key / --modelLLMopenrouter + env
--debugmock LLMoff
--outJSON dumpoptional

If you cannot write/run Python, fall back to the manual QDAD procedure below. Prefer materializing and running the script.

Technique analysis (read this; it is the algorithm)

What classical diffusion does
  1. Start from noise in a continuous latent.
  2. Iteratively denoise toward the data manifold (score matching / reverse SDE).
  3. Decode to pixels (or tokens).
What Qualitative Diffusion does
Classical objectQualitative analogue
Continuous latent vectorFeature text at a grid cell
Coordinate basis of latent spaceNouns (rows) × verbs (columns) — orthogonal language basis
Gaussian noise at high σHigh-temperature LLM generation (“wild, imperfect, slightly hallucinated”)
Denoiser / score networkCriticAgent with the same noun×verb signature (reverse diffusion in language)
Decode networkSynthesizer → structured App Build Prompt
Vague caption → imageVague Midjourney-style app intent → buildable coding prompt
Why this is not “just brainstorm features”
  1. Basis structure — Features are not free-floating ideas. Each sits at a forced intersection noun_i × verb_j. That is the qualitative analogue of a tensor product / coordinate system: diversity is systematic, not random.
  2. Forward then reverse — Noise induction explores; critics project back toward intent + implementability. One-shot ideation skips the reverse process.
  3. Signature-locked critics — Critic (i,j) shares the exact signature of FeatureAgent (i,j). Denoising cannot “edit away” the basis; it cleans along that direction (score matching in one local chart of feature space).
  4. Temperature as σ — GUI/params map: high Temperature Scale ≈ more qualitative noise; more Denoising Steps ≈ longer reverse chain.
  5. Decode is separate — Synthesis is not “pick the best cell.” It merges, prioritizes, and architectures the clean matrix into one shippable brief.
Philosophy (strict — do not dilute)
  • Language is the computational medium (not numbers, not embeddings you manipulate by hand).
  • Nouns and verbs act as orthogonal basis directions.
  • High temperature = controlled qualitative noise.
  • Critic agents = qualitative reverse diffusion / score matching.
  • The whole process turns a vague aesthetic prompt into a concrete, buildable app specification the same way Midjourney turns a vague prompt into an image.
When to invoke (and when not)

Invoke when:

  • User has a vibe / Midjourney-style app idea (“cozy night writing app…”)
  • You need a full app build brief, not a single function
  • Product surface is under-specified (features, UX, NFRs all fuzzy)
  • User says /qdad, “diffuse this”, “slot machine”, “turn this into a build prompt”

Do not invoke when:

  • Task is a local bugfix or a single clear feature already specified
  • User asked for an immediate small code edit only
  • /qnn is more appropriate (stuck debug strategy map, not app design)

If the user invokes /qdad explicitly, always run the full procedure.


Usage

/qdad [Midjourney-style app intent]

Examples:

  • /qdad a cozy productivity app for writers who work at night, soft dark mode, gentle notifications, offline-first
  • /qdad N=3 steps=2 — minimal habit tracker that feels like a garden
  • /qdad expand this into a full build prompt: marketplace for local makers
  • /qdad (uses the last vague product idea in the conversation)
Parameters (optional; parse from user text or defaults)
ParamDefaultRangeRole
N (grid size)42–8N×N feature agents
Temperature Scale (noise T)1.30.7–1.8Forward diffusion only
Denoising Steps31–6Reverse diffusion rounds
Noun/Verb Temperature0.60.3–1.0Foundation basis generation

Budget: agents per noise/denoise round = N². Total heavy LLM calls ≈
1 (foundation) + N² (noise) + Steps×N² (critics) + 1 (synth).
Prefer N=3, steps=2 when cost-sensitive; N=4–5, steps=3 for rich apps.

Announce params before running:

QDAD: N×N grid, noise_T=…, steps=…, noun_verb_T=…
Philosophy: language=medium; nouns×verbs=basis; high-T=noise; critics=reverse diffusion

Step 0 — Capture the Intent Brief

Write a short brief (do not solve the product yet):

FieldContent
User promptRaw Midjourney-style intent (verbatim)
Users / jobsWho and what outcome (infer lightly if missing)
ConstraintsPlatform, offline, privacy, stack prefs (if any)
AestheticMood, visual language, interaction feel
Non-goalsWhat this is not (if stated or obvious)
ParamsN, noise T, steps, noun/verb T

If attachments/repo context exist, note paths that should ground features. Present the brief compactly, then proceed unless the user corrects it.


Step 1 — Phase 0: Foundation (qualitative basis)

Generate exactly N distinct nouns and exactly N distinct verbs.

Basis rules
  • Nouns = object / substance / place / affordance axes (rows)
  • Verbs = action / process / transformation axes (columns)
  • Concrete enough to ground features; mutually distinct; span the aesthetic space of the intent (not just synonyms of “app” / “user”)
  • Prefer evocative, implementable words over pure abstractions
Show full SKILL.md (615 more words)Show less
Prompt skeleton (foundation)
You are the QDAD Foundation Generator.

QUALITATIVE COMPUTATION CONTRACT
- Language is the computational medium (not numbers).
- Nouns and verbs are orthogonal basis directions of feature space.
- A feature is a language-vector at the intersection of one noun and one verb.

User prompt:
---
{user_prompt}
---

Generate exactly {N} distinct nouns and {N} distinct verbs.
Output ONLY JSON: {"nouns":[...], "verbs":[...]}

Use noun_verb_temperature if the host supports temperature; otherwise ask for slightly more diverse / surprising basis words when N is small.

Log: nouns = […], verbs = […].

Hard fail: fewer than N unique items, or all generic (“data”, “manage”, “system”).


Step 2 — Phase 1: Agent grid construction

For each i in 0..N-1, j in 0..N-1:

FeatureAgent_{i}_{j}
  noun = nouns[i]
  verb = verbs[j]
  signature = noun × verb

Permanent assignment. No reassignment later. Log a compact grid:

        verb0    verb1    …
noun0   A00      A01
noun1   A10      A11
…

Step 3 — Phase 2: Noise induction (forward diffusion)

In parallel (or sequential if no sub-agents), for every cell (i,j):

FeatureAgent system prompt
You are FeatureAgent_{i}_{j}.
Your unique qualitative signature is noun "{noun}" × verb "{verb}".
Your sole purpose is to invent exactly ONE concrete, implementable feature
for an application. The feature must feel like a natural expression of the
interaction between "{noun}" and "{verb}" given the user intent.

User intent:
---
{user_prompt}
---

FORWARD DIFFUSION: Invent one wild, imperfect, slightly hallucinated but still
related feature. Embrace controlled qualitative noise. Rough edges and odd
metaphors are allowed — they are the language analogue of Gaussian noise.
Stay in orbit of the intent.

Output ONLY the feature (2–6 sentences). No JSON. No headings.

Use noise temperature (Temperature Scale) for these calls.

Collect noisy_features[i][j].

Do not polish yet. Noise is a feature of the algorithm.


Step 4 — Phase 3: Iterative qualitative denoising

For step = 1 .. Denoising_Steps:

In parallel, for every cell (i,j), spawn CriticAgent_{i}_{j} with the exact same noun+verb signature:

You are CriticAgent_{i}_{j}.
You share signature noun "{noun}" + verb "{verb}".
You are the inverse of noise induction: qualitative reverse diffusion / score matching.
Clean imperfections, remove contradictions, sharpen original intent, make the
feature coherent, useful, and implementable — while remaining a true expression
of "{noun}" + "{verb}".

User intent:
---
{user_prompt}
---

Denoising step: {step} of {total_steps}
(Early steps: gross noise. Late steps: fidelity to intent.)

Current feature:
---
{current_feature}
---

Output ONLY the refined feature (2–6 sentences).

Use a cooler temperature than noise (≈ 0.5 × noise_T, clamped to ~0.3–1.0).

Replace features[i][j] with the critic output after each full parallel round.

Optional: keep snapshots step_1, step_2, … for transparency.

After the final step: clean_features = features.


Step 5 — Phase 4: Synthesis (decode)

One Synthesizer agent receives:

  • Original user prompt
  • Nouns, verbs
  • Full clean N×N matrix (each cell labeled with noun×verb)
Required output format (exact)
markdown
# App Build Prompt

## High-Level Vision
[1-2 sentence summary]

## Core Features (synthesized & prioritized from the diffusion matrix)
1. ...
2. ...
...

## Technical Architecture Suggestions
- ...

## UI/UX Direction
- ...

## Non-Functional Requirements
- ...

## Implementation Notes for the Coding Agent
- Build this as a complete, runnable application.
- Prefer modern, clean tech (React/Next.js + Tailwind, or Streamlit, or whatever fits best).
- Make it beautiful and immediately usable.
Synthesizer rules
  • Deduplicate and prioritize — merge related cells; do not dump N² features.
  • Features must feel like coherent expressions of intent, not a laundry list.
  • Be concrete and implementable.
  • Prefer modern clean stacks; match constraints from the brief.
  • Optionally append a ## Diffusion Feature Matrix (transparency) section with nouns, verbs, and each clean cell for auditability.

Step 6 — Handoff to the coding loop

After the App Build Prompt:

  1. Show the App Build Prompt as the primary deliverable.
  2. Optionally show a compact matrix summary (not all raw noise unless asked).
  3. Ask: Build now? / tweak params (N, steps) / re-diffuse a subspace?
  4. If the user says build:
    • Exit QDAD mode
    • Implement with normal agentic coding tools (edit, run, test)
    • Use the App Build Prompt as the system of record for scope
  5. Do not re-run full diffusion for every code tweak unless the product direction changed.

Execution notes (Grok-Build and any host)

CapabilityHow to run QDAD
Parallel sub-agentsSpawn N² FeatureAgents / CriticAgents per phase; gather results
Single agent onlySimulate the grid sequentially; still label every cell (i,j) and preserve phases
TemperatureSet per phase if API allows; else prompt for “wilder” vs “stricter”
Model-agnosticAny capable chat model works; stronger models → better basis + synth
Read-onlyPrefer no workspace mutation until Step 6 handoff
Cost controlDefault N=3–4, steps=2–3; never N=8×steps=6 without explicit ask
Parallelization contract
foundation: 1 call
noise:      N² calls in parallel
for step in 1..Steps:
    denoise: N² calls in parallel
synthesize: 1 call
Sub-agent prompt packaging

When spawning, always include: cell (i,j), noun, verb, user prompt, phase instructions, and (for critics) current feature + step index.


Anti-patterns (do not do these)

  • Flat “list 10 features” without a noun×verb grid
  • Skipping noise (going straight to “good” features) — kills exploration
  • Skipping critics (shipping raw noise) — kills implementability
  • Critics that change the noun/verb signature
  • Synthesizer that pastes all N² cells without prioritization
  • Implementing a full app inside the diffusion steps
  • Using only generic basis words (data, user, manage, system)
  • Running N=8 by default

Quick reference — algorithm

Intent Brief + params (N, noise_T, steps, nv_T)
    → Phase 0 Foundation: N nouns, N verbs   [nv_T]
    → Phase 1 Grid: FeatureAgent_i_j := (nouns[i], verbs[j])
    → Phase 2 Noise: ∀(i,j) parallel feature @ noise_T
    → Phase 3 Denoise: for step in 1..steps:
          ∀(i,j) parallel CriticAgent_i_j (same signature) @ cooler T
    → Phase 4 Synthesize: clean matrix + prompt → App Build Prompt
    → Handoff: user approves → normal build loop
Relation to open-deepthink
ArtifactRole
This skill (/qdad)Portable procedure for any agentic coder
App Slot Machine Mode UIFull server UI + logs + matrix persistence
deepthink/qdad/LangGraph reference implementation
/qnn skillDifferent technique: layered strategy maps for stuck debug / enrich

QDAD designs apps from vibes. QNN maps strategies when stuck. Do not conflate.


Minimal worked sketch (N=2, steps=1)

Intent: “cozy night writing app, soft dark mode, offline-first”

nouns: [lantern, notebook]
verbs: [whisper, weave]

noisy[0][0] lantern×whisper → wild ambient voice notes idea
noisy[0][1] lantern×weave   → wild link-glow between drafts
…
critic cleans each cell toward offline-first + calm UX
synth → App Build Prompt with prioritized features + architecture

End of skill.


Appendix A — Runner source to materialize

If run_template.py is missing from the skill folder, write this exact file to .skill-runs/run_qdad.py:

python
#!/usr/bin/env python3
"""
QDAD / App Slot Machine runner — materialized on-the-fly by the /qdad skill.
Discovers deepthink from the workspace tree; runs qualitative diffusion.
"""

from __future__ import annotations

import argparse
import asyncio
import json
import os
import sys
from pathlib import Path


def _discover_deepthink() -> Path | None:
    env = os.environ.get("OPEN_DEEPTHINK_ROOT", "").strip()
    candidates = []
    if env:
        candidates.append(Path(env))
    here = Path.cwd().resolve()
    candidates.append(here)
    candidates.extend(here.parents)
    skill_file = Path(__file__).resolve()
    candidates.append(skill_file.parent)
    candidates.extend(skill_file.parents)
    for c in candidates:
        if not c:
            continue
        if (c / "deepthink" / "qdad" / "pipeline.py").is_file():
            return c
        if (c / "open-deepthink" / "deepthink" / "qdad" / "pipeline.py").is_file():
            return c / "open-deepthink"
    return None


def _ensure_path() -> None:
    root = _discover_deepthink()
    if root is None:
        print(
            "ERROR: Could not find open-deepthink (deepthink/qdad). "
            "Run from a workspace that contains the repo, or set OPEN_DEEPTHINK_ROOT.",
            file=sys.stderr,
        )
        sys.exit(2)
    sys.path.insert(0, str(root))
    print(f"LOG: using deepthink root {root}", file=sys.stderr)


def _build_llm(args):
    if args.debug:
        try:
            from app import CoderMockLLM  # type: ignore

            return CoderMockLLM()
        except Exception:
            from langchain_core.runnables import Runnable

            class _Stub(Runnable):
                async def ainvoke(self, input_data, config=None, **kwargs):
                    t = str(input_data).lower()
                    if "foundation" in t or "distinct nouns" in t:
                        return json.dumps(
                            {
                                "nouns": ["canvas", "lantern", "notebook", "harbor"],
                                "verbs": ["whisper", "weave", "anchor", "glow"],
                            }
                        )
                    if "featureagent" in t or "forward diffusion" in t:
                        return "A wild mock feature: ambient focus with offline capture."
                    if "criticagent" in t or "reverse diffusion" in t:
                        return "A refined mock feature: offline-first focus mode with soft glow."
                    if "synthesizer" in t or "app build" in t:
                        return (
                            "# App Build Prompt\n\n## High-Level Vision\n"
                            "Cozy offline writing app.\n\n## Core Features\n1. Focus timer\n"
                            "2. Offline draft capture\n"
                        )
                    return "mock feature"

            return _Stub()

    if args.provider == "openrouter":
        from langchain_openai import ChatOpenAI

        key = args.api_key or os.environ.get("OPENROUTER_API_KEY") or os.environ.get("API_KEY")
        if not key:
            raise SystemExit("Need --api-key or OPENROUTER_API_KEY")
        return ChatOpenAI(
            model=args.model,
            openai_api_key=key,
            openai_api_base="https://openrouter.ai/api/v1",
            temperature=0.7,
        )

    if args.provider == "llamacpp":
        from langchain_openai import ChatOpenAI

        return ChatOpenAI(
            model=args.model,
            openai_api_key="no-key",
            openai_api_base=args.base_url.rstrip("/"),
            temperature=0.7,
        )
    raise SystemExit(f"Unknown provider {args.provider}")


async def _main(args) -> int:
    _ensure_path()
    from deepthink.qdad import run_qdad_pipeline

    llm = _build_llm(args)
    params = {
        "grid_size": args.n,
        "n": args.n,
        "temperature_scale": args.temperature_scale,
        "denoising_steps": args.denoising_steps,
        "noun_verb_temperature": args.noun_verb_temperature,
    }
    doc = ""
    if args.context_file:
        doc = Path(args.context_file).read_text(encoding="utf-8", errors="replace")

    def log(msg: str):
        print(msg, file=sys.stderr)

    result = await run_qdad_pipeline(
        llm=llm,
        params=params,
        user_prompt=args.prompt,
        document_context=doc,
        log=log,
        session_id="skill-on-the-fly",
    )
    if args.out:
        Path(args.out).write_text(json.dumps(result, indent=2), encoding="utf-8")
        print(f"Wrote {args.out}", file=sys.stderr)
    print(result.get("proposed_solution") or json.dumps(result, indent=2))
    if args.json:
        print(json.dumps(result, indent=2))
    return 0


if __name__ == "__main__":
    p = argparse.ArgumentParser(description="QDAD pipeline (skill-materialized runner)")
    p.add_argument("--prompt", "-p", required=True)
    p.add_argument("--provider", choices=["openrouter", "llamacpp"], default="openrouter")
    p.add_argument("--api-key", default=None)
    p.add_argument("--model", default="stepfun/step-3.5-flash:free")
    p.add_argument("--base-url", default="http://localhost:8080/v1")
    p.add_argument("--n", type=int, default=4)
    p.add_argument("--temperature-scale", type=float, default=1.3)
    p.add_argument("--denoising-steps", type=int, default=3)
    p.add_argument("--noun-verb-temperature", type=float, default=0.6)
    p.add_argument("--context-file", default=None)
    p.add_argument("--out", default=None)
    p.add_argument("--json", action="store_true")
    p.add_argument("--debug", action="store_true")
    raise SystemExit(asyncio.run(_main(p.parse_args())))

© iblameandrew, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in skills/qdad of iblameandrew/open-deepthink.

  • SKILL.md
  • CODE_REFERENCE.md
  • INSTALL.md
  • run_template.py

Open the folder on GitHubat commit b440af1

Compare with similar skills

Qdad 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.

Qdad compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Qdad this skilliblameandrew/open-deepthink151—~5.6kAutomated safety check: PassMIT
MatplotlibzLanqing/codex-claude-academic-skills4.7k17 repos~2.9kAutomated safety check: PassMIT
Exploratory Data Analysisspacering-net/codeg3.9k14 repos~3.6kAutomated safety check: PassMIT
Scikit LearnzLanqing/codex-claude-academic-skills4.7k16 repos~3.9kAutomated safety check: PassBSD-3-Clause
Chart Visualizationbytedance/deer-flow84k1 repos~840Automated safety check: PassMIT
TimesFM Forecastinggoogle-research/timesfm34k—~4.7kAutomated safety check: PassApache-2.0

Similar skills

  • Matplotlib

    zLanqing/codex-claude-academic-skills

    Low-level plotting library for full customization. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 17 repos~2.9k tokens
    Data & AnalyticsAuto-check passed
  • Exploratory Data Analysis

    spacering-net/codeg

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    3.9k GitHub starsUsed in 14 repos~3.6k tokens
    Data & AnalyticsAuto-check passed
  • Scikit Learn

    zLanqing/codex-claude-academic-skills

    Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 16 repos~3.9k tokens
    Data & AnalyticsAuto-check passed
  • Chart Visualization

    bytedance/deer-flow

    Picks a suitable chart type from 26 options for your data, maps the data to that chart's parameters and generates a chart image through a JavaScript script.

    84k GitHub starsUsed in 1 repo~840 tokens
    Data & AnalyticsAuto-check passed
  • TimesFM Forecasting

    google-research/timesfm

    Forecasts any univariate time series zero-shot with Google's TimesFM model, returning point forecasts and calibrated prediction intervals without training.

    34k GitHub stars~4.7k tokensUpdated 10 days ago
    Data & AnalyticsAuto-check passed
  • Sandbox Bench

    vercel/next.js

    Official

    Benchmark React or Next.js changes on Vercel Sandbox VMs with paired A/B statistics: react PR/commit vs base, or Next.js PR/commit vs base, measured end-to-end through the bench/render-pipeline app…

    143k GitHub stars~4.1k tokensUpdated today
    Data & AnalyticsAuto-check passed

More from iblameandrew/open-deepthink

  • Qnn

    iblameandrew/open-deepthink

    Launch a Qualitative Neural Network (QNN) — a layered, multi-epoch brainstorm of agent personas that maps divergent strategies before implementation.

    151 GitHub stars~7.1k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Qdad

What does Qdad do?

Run Qualitative Diffusion App Designer (QDAD) — a qualitative re-implementation of diffusion for app design. Qdad is an agent skill from iblameandrew/open-deepthink. Run Qualitative Diffusion App Designer (QDAD) — a qualitative re-implementation of diffusion for app design.

When should I use Qdad?

Qdad fits situations like: designing a new app; expanding a vague product idea; generating a high-quality build brief for Grok-Build / Cursor / Claude Artifacts.

How do I install Qdad in Claude Code?

Run `npx skills add iblameandrew/open-deepthink --skill qdad -a claude-code`. Or copy the skill folder (skills/qdad in iblameandrew/open-deepthink) into .claude/skills/qdad in your project. Claude Code loads it when a task matches its description.

How do I install Qdad in Codex?

Run `npx skills add iblameandrew/open-deepthink --skill qdad -a codex`. Or copy the skill folder (skills/qdad in iblameandrew/open-deepthink) into .agents/skills/qdad in your project. Codex loads it when a task matches its description.

Can I use Qdad in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add iblameandrew/open-deepthink --skill qdad -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qdad, .gemini/skills/qdad, .github/skills/qdad and .opencode/skills/qdad in your project.

What does Qdad need to run?

Going by SKILL.md and its folder, Qdad needs Python for the scripts in its folder, the command-line tools its instructions call (python) and credentials named OPENROUTER_API_KEY and API_KEY. Our summary lists: Python 3.

Does Qdad access the network?

SKILL.md names 1 domain. In commands or code: openrouter.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Qdad safe to install?

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.

What licence does Qdad use?

Qdad is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Qdad use?

About 5.6k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Qdad?

Skills that share tags, products or a category with Qdad: Matplotlib (zLanqing/codex-claude-academic-skills, 4.7k stars), Exploratory Data Analysis (spacering-net/codeg, 3.9k stars), Scikit Learn (zLanqing/codex-claude-academic-skills, 4.7k stars) and Chart Visualization (bytedance/deer-flow, 84k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Qdad?

iblameandrew (a GitHub user) maintains it in iblameandrew/open-deepthink, which has 151 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 15, 2026.

Source: iblameandrew/open-deepthink on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.