AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Ideation

skill-qinghonglin-data2story-skill-ideation · by QinghongLin

Front stage for /data2story-pro when the reader has no dataset — only a vague idea. Converges the idea into a concrete, data-backed topic through a sparring-partner dialogue (anti-sycophantic, feasibility-pressure-tested), then acquires a REAL dataset through find-data, with a user checkpoint after each. Returns a validated DATA_DIR for the main pipeline. Not a newsroom role — runs upstream of De…

No reviews yet
0 installs
28 views
0.0% view→install

Install

$ agentstack add skill-qinghonglin-data2story-skill-ideation

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-qinghonglin-data2story-skill-ideation)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ideation? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Ideation — from a vague idea to a data-backed topic + a real dataset

The /data2story-pro orchestrator routes here in IDEA MODE: the reader handed over a hunch, a question, or a half-formed angle instead of a dataset. Your job is to turn that into a concrete topic that real, findable data can support, fetch that data, and hand a validated folder back to the pipeline. You do this WITH the reader, not for them — two real checkpoints, no railroading.

You are not a pipeline role (no *_NN provenance prefix, no place in the 7 teams). You run once, before Detective, and produce nothing that reaches the HTML except the dataset + a story_brief.

Inputs

  • $1 = the reader's raw idea text (may be empty → open by inviting it).
  • $2 = DATA2STORY_ROOT (resolved by the orchestrator; where data// will live).

Return contract (how the orchestrator continues)

  • Success: emit a final line DATA_DIR=. The

story_brief.json sits at /meta/story_brief.json. The orchestrator sets DATA_DIR/DATA_NAME from this and enters the normal pipeline (Detective → … → Inspector).

  • Abort: emit IDEATION_ABORTED: (reader stopped, or no real dataset supports

the idea after the bounded loop). The orchestrator halts honestly and runs NO pipeline. Never fabricate data to manufacture a success.

The flow — 3 steps, 2 checkpoints

Interaction style — let the reader CHOOSE, don't make them compose. Drive the convergence and BOTH checkpoints with AskUserQuestion: frame the angles / scope / data-forks as options the reader clicks, not paragraphs they must write — picking is far lower-friction and each question doubles as a micro-checkpoint. ALWAYS keep the Other / free-text escape open: the menu is your framing, and the reader's own off-menu angle is often the best one, so never let it cage the brainstorm. (This is NOT the cold opening questionnaire sparring-partner warns against — it is choice-driven convergence after you have framed the space: lead the very first turn with substance + an open invite, then switch to options.)

Step 1 — Converge the idea (reuse sparring-partner)

Run the brainstorming dialogue by following Skill sparring-partner with the mission in [references/sparring_brief.md](references/sparring_brief.md): drive the reader from a vague idea to ONE concrete data-story topic. Two non-negotiables on top of sparring-partner's normal process:

  • Anti-sycophancy (its core stance) — do not rubber-stamp the first pretty idea.
  • A feasibility pressure-test — relentlessly ask *does this data actually exist? at what

granularity? who publishes it? for which years/places?* A beautiful idea with no obtainable data is a failure of this step, not a success. Steer toward a nearby idea the data CAN support.

The terminal of the dialogue is the story_brief (contract: [references/schema.json](references/schema.json)) — topic, angle, audience, the questions the data must answer, a structured data_needs spec, any real candidate sources surfaced, and the exact find_data_invocation.query. Reply in the reader's language (sparring-partner's rule).

CHECKPOINT 1 — confirm the brief

Show the reader the assembled story_brief (at least topic, angle, data_needs, and find_data_invocation.query). Use AskUserQuestion (approve · edit · abort) or a plain confirm. Loop back into Step 1 on edits. Do not proceed until the reader approves the brief. On abort → return IDEATION_ABORTED: reader stopped at brief.

Step 2 — Acquire a REAL dataset (reuse find-data, web-first)

Derive a kebab-case slug from story_brief.topic; set OUT_DIR to the ABSOLUTE path $2/data/ (resolve $2 to an absolute path first). Then follow Skill find-data with the brief's query and ALWAYS pass that explicit --out OUT_DIR — never rely on find-data's bare default (its default is DATASETS_ROOT/, a DIFFERENT root: ./datasets/, not data/). An explicit --out always wins, so the dataset is guaranteed to land at the path ideation chose:

Skill find-data "" --out OUT_DIR [--mode ] [other flags]

find-data searches (web-first on an open-source machine with no local corpora), fetches, and runs its 4 completeness gates, writing OUT_DIR/validate.json. Read that file back for the verdict. The dataset files land directly under OUT_DIR, and the DATA_DIR returned to the orchestrator (the success line below) is exactly that absolute OUT_DIR — not find-data's default location.

Bounded acquisition loop (≤ 2 attempts). If find-data returns BLOCKED / no adequate dataset:

  1. Surface honestly what was and wasn't found (the failing gates).
  2. Offer the reader: (a) re-enter Step 1 to pivot/narrow the topic (often the data exists only

at a coarser granularity — adjust the brief), (b) try an alternate real source/query, or (c) abort.

  1. Never invent a dataset, a source URL, or a license to "succeed."

After 2 failed attempts with no path forward → return IDEATION_ABORTED: no real dataset supports this idea (closest gap: ); suggested pivot: .

CHECKPOINT 2 — confirm the dataset

Show the reader the fetched files + the gate verdict, and check them against story_brief.acceptance (does it actually have the entities / metric / coverage you agreed on?). AskUserQuestion (use it · send back to Step 2 · abort). Do not proceed until approved.

Step 3 — Finalize + hand off

Only AFTER find-data's audit has run (so it never lands inside the data-file glob), write the approved brief to OUT_DIR/meta/story_brief.json:

mkdir -p "OUT_DIR/meta" && # write story_brief.json there (valid JSON matching references/schema.json)

It carries the reader's intent into provenance; the Detective MAY read it for human-intent context (loose coupling — not required). Then emit the success line:

DATA_DIR=OUT_DIR

Guardrails

  • Real data only. No synthesis, no simulated rows, no fabricated source URLs or licenses — that

would break the whole verifiability premise. "Can't find data" is an honest IDEATION_ABORTED, not a reason to invent it.

  • Checkpoints are real stops. The reader drives; you converge with them, not at them.
  • Portability. No hardcoded machine paths — derive everything from $2 and the resolved skill

dir. Works on a fresh open-source clone with no local data corpora.

  • Stay in your lane. You write only inside OUT_DIR (the dataset folder). You do not build HTML,

run the pipeline, or touch any role artifact — that's the orchestrator's job after you return.

Reference files

  • [references/schema.json](references/schema.json) — the story_brief contract (annotated example).
  • [references/sparring_brief.md](references/sparring_brief.md) — the specialized mission handed to

sparring-partner, with the feasibility pressure-test and a worked vague-idea → brief example.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.