本文へ移動
cccskills
無料GitHub で公開

create-interactive-scientific-application-spec

Create a specification for an interactive scientific Datagrok application (simulation, ODE/PDE solver, computational tool)

インストール方法を見る

含まれるファイル(4)

  • SKILL.md7.7 KB
  • references/examples/lotka-volterra-spec/lotka-volterra-spec.md35.8 KB
  • references/guide-for-spec.md15.7 KB
  • references/spec-template.md17.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Create Specification for Datagrok Scientific Application

This skill produces a complete, implementation-ready specification for an interactive scientific application on the Datagrok platform.

Output: spec.md saved to the application directory. Next step: Implementation via the implement-interactive-scientific-application-from-spec skill (separate conversation).

Base path: .claude/skills/create-interactive-scientific-application-spec/ (relative to repo root). All file paths below use {SKILL}/ as shorthand.


Step 1: Understand the request

Analyze the user's request and identify:

  • The scientific domain and problem being solved.
  • Core computational model (formulas, equations, algorithms).
  • What the user wants to see and interact with.
  • Complexity level: simple (single reactive task, no workers) vs. complex (multiple tasks, workers, secondary pipelines).

Determine the target package:

  • If the user specifies a package name — use it.
  • If the current working directory is inside an existing package (has package.json with datagrok-api dependency) — add the application to that package.
  • Otherwise — ask the user whether to create a new package or add to an existing one.

If the request is vague (e.g., "build a Lotka-Volterra app"), ask clarifying questions before proceeding — but keep it to 2–3 focused questions, not an interrogation.


Step 2: Read reference materials

Read these files once, in this order:

  1. Spec template (mandatory): {SKILL}/references/spec-template.md — read in full.

  2. Architectural guide (mandatory): {SKILL}/references/guide-for-spec.md — read in full. This is a condensed version of the implementation guide, containing only what is needed to write a correct specification: architecture concepts, port/adapter/coordinator roles, naming conventions, section expectations.

  3. Completed examples (if available): {SKILL}/references/examples/ — list subdirectories, then read the example spec(s) that are closest to the user's request.

Do NOT read the full implementation guide, worker guides, API references, or coding conventions — those belong to the implementation skill.


Step 3: Fill in the specification

Fill in every section of the template. Follow these rules:

Critical sections — fill with maximum detail

  • 1.0 General Information — application name, package, entry function, description.
  • 1.1 Core — task list, computation formulas (Level 1 is MANDATORY before approval), input/output parameters, implementation approach.
  • 3. Controls — every control must have: ID, label, type, data type, default value, min, max, format, tooltip. No placeholders.
  • 4. Display Elements — every viewer/element with ID, type, associated data.
  • 7. Validation — concrete rules with conditions and error messages.
  • 15. Testing — test categories, reference examples, expected coverage.

Sections that may be N/A for simple apps

For applications with a single reactive task, no workers, and no secondary pipelines, the following sections can be marked N/A with a one-line explanation:

  • 1.2 Ports (application-level: Progress, Cancellation)
  • 8.2 Secondary Pipelines
  • 8.4 Computation Blocking
  • 12.2 Worker Termination

Never mark a section N/A without explanation. If unsure whether a section applies — include it.

Computation formulas (Section 1.1) — special attention

This is the most important section. Level 1 must contain:

  • All variables with meaning, units, and valid domains.
  • All equations/relationships connecting inputs to outputs — unambiguously, so that another developer could implement from this description alone.
  • Output properties (invariants): bounds, monotonicity, conservation laws, limiting cases.
  • At least one reference example per computational path: concrete inputs → expected output with source (manual calculation / literature).

Level 2 (full formalization) can be marked as "to be developed incrementally" for the first iteration, but note what it will eventually contain.

Control IDs — naming convention

Use a consistent prefix: ctrl_ for inputs (e.g., ctrl_alpha, ctrl_x0), btn_ for buttons (e.g., btn_optimize, btn_reset), view_ for viewers (e.g., view_line_chart, view_phase_plot).


Step 4: Present for approval

Present the specification to the user in stages:

  1. First: Sections 1.0–1.5 (architecture, computation model, ports, adapters, coordinator, independence principle). Ask for feedback before continuing — this is the foundation.
  2. Then: Sections 2–5 (main view, controls, display, layout).
  3. Then: Sections 6–15 (feedback, validation, pipeline, reactivity, data lifecycle, errors, resources, closure, UX, testing).

At each stage, ask: "Does this look correct? Anything to change?"


Step 5: Save and hand off

When the user approves the full specification:

  1. Save the specification as spec.md in the application source directory (e.g., src/<app-name>/spec.md).

  2. Confirm explicitly:

    Specification approved and saved to src/<app-name>/spec.md.

    To implement, start a new conversation and use the implement-interactive-scientific-application-from-spec skill, or run:

    /implement-interactive-scientific-application-from-spec

Do NOT proceed to implementation in this conversation.


Iteration rules

  • If the user requests changes — update the spec and re-present the changed sections.
  • If you discover ambiguities or inconsistencies while filling in later sections — go back and fix earlier sections, noting the changes.
  • The specification is the single source of truth for implementation.

Reference files summary

FilePurposeRequired
references/spec-template.mdSection structure and expectationsYes
references/guide-for-spec.mdArchitecture concepts for correct spec writingYes
references/examples/Completed spec examplesIf available

What guide-for-spec.md should contain

This file is a trimmed version of the full implementation guide. Keep:

  • Hexagonal architecture overview (Core ↔ Ports ↔ Adapters ↔ Coordinator)
  • Independence principle explanation
  • Task taxonomy (reactive vs. on-demand, simple vs. complex)
  • Port types and their roles (Input, Output, Progress, Cancellation)
  • Adapter responsibilities (what UI adapters do, what worker adapters do)
  • Coordinator responsibilities (high-level, not implementation details)
  • Naming conventions (control IDs, CSS prefixes, file structure)
  • Section-by-section expectations for the spec template
  • Computation blocking concept (what it is, when to specify it)
  • Resource lifecycle concept (subscriptions, workers — what to plan for)

Remove:

  • Code examples and implementation patterns
  • Webpack configuration details
  • CSS implementation rules (selectors, specificity)
  • Worker message protocol and lifecycle management code
  • TypeScript interface definitions
  • Subscription management code (subs[] array patterns)
  • addValidators() implementation
  • onViewRemoved implementation patterns
  • Testing framework setup and test runner details
  • Any section that answers "how to code this" rather than "what to specify"

Target size: ~30–40% of the full guide.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Add support for a new curve data format in the Curves package converter system

日本語の概要は準備中です。原文の説明を表示しています。

datagrok-ai/public742026年10月12日 更新

Create info panels that appear in the context panel based on semantic types

日本語の概要は準備中です。原文の説明を表示しています。

datagrok-ai/public742026年10月12日 更新

Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).

日本語の概要は準備中です。原文の説明を表示しています。

datagrok-ai/public742026年10月12日 更新

Add unit tests to a Datagrok package

日本語の概要は準備中です。原文の説明を表示しています。

datagrok-ai/public742026年10月12日 更新

Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test

日本語の概要は準備中です。原文の説明を表示しています。

datagrok-ai/public742026年10月12日 更新

Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features

日本語の概要は準備中です。原文の説明を表示しています。

datagrok-ai/public742026年10月12日 更新

datagrok-ai のスキルをすべて見る

このスキルの問題を報告する