본문으로 건너뛰기
cccskills
무료GitHub에 공개

create-demo-model-from-ivp-file

Create a Diff Studio demo model TS file and register it in the package, using equations from an IVP file

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Create Demo Model from IVP File

Create a Diff Studio demo model using equations extracted from the IVP file, and register it in the package.

Naming Conventions

Throughout this skill, the model name extracted from the IVP file is transformed into three forms:

FormExampleUsage
Original (as in IVP)Acid BaseDecorator name
kebab-caseacid-baseFile name, import path
camelCaseacidBaseMethod name, decorator name
UPPER_SNAKE_CASEACID_BASEConstant prefixes

Instructions

  1. Parse input: extract:

    • First argument (required): path to the IVP file. Verify the file exists and has an .ivp extension.
    • Second argument (optional): path to a PNG file (icon). Verify the file exists and has a .png extension if provided.
  2. Read the IVP file:

    • Extract the model name from the #name: block (e.g., #name: Acid Base → Acid Base).
    • Extract the model description from the #description: block, if present.
    • Read the entire file content as a raw string (it will be used as the equations constant).
  3. Generate TS file: create src/demos/<kebab-case>.ts with the following content:

    import {LINK} from '../ui-constants';
    import {ModelInfo} from '../model';
    
    export const <UPPER_SNAKE_CASE>_MODEL = `<entire IVP file content>`;
    
    const UI_OPTS = {
      inputsTabDockRatio: 0.17,
      graphsDockRatio: 0.85,
    };
    
    const INFO = `# Model
    <model-description or remove this line if not available>
    # Try
    Interactive results based on input changes.
    # Performance
    Nonlinear systems of differential equations are solved within milliseconds.
    # No-code
    [Diff Studio](${LINK.DIF_STUDIO})
    enables the creation of complex models without writing code.
    # Learn more
    * [Sensitivity analysis](${LINK.SENS_AN})
    * [Parameter optimization](${LINK.FITTING})`;
    
    export const <UPPER_SNAKE_CASE>_MODEL_INFO: ModelInfo = {
      equations: <UPPER_SNAKE_CASE>_MODEL,
      uiOptions: UI_OPTS,
      info: INFO,
    };
    

    Note: when embedding the IVP file content inside a template literal, escape any backticks (`) and ${ sequences found in the file.

  4. Update the package file src/package.ts:

    a. Add import for use in the class method:

    import {<UPPER_SNAKE_CASE>_MODEL_INFO} from './demo/<kebab-case>';
    

    b. Add method to the PackageFunctions class (in alphabetical order among existing model methods):

    @grok.decorators.model({
      name: '<Original model name from IVP>',
      description: '<model-description>',
      icon: '<path-to-png-file>',
    })
    static async <camelCase>(): Promise<void> {
      const model = new Model(<UPPER_SNAKE_CASE>_MODEL_INFO);
      await model.run();
    }
    
    • Omit description from the decorator if no description was found in the IVP file.
    • Omit icon from the decorator if no PNG file was provided.

Example

Given: src/ivp/acid-base.ivp with content:

#name: Acid Base
#description: Acid-base equilibrium model
...

And optional PNG: images/acid-base.png

Generated file src/demo/acid-base.ts:

import {LINK} from '../ui-constants';
import {ModelInfo} from '../model';

export const ACID_BASE_MODEL = `#name: Acid Base
#description: Acid-base equilibrium model
...`;

// ... UI_OPTS, INFO, and ACID_BASE_MODEL_INFO as described above

In src/package.ts:

import {ACID_BASE_MODEL_INFO} from './demo/acid-base';

// Inside PackageFunctions:
@grok.decorators.model({
  name: 'Acid Base',
  description: 'Acid-base equilibrium model',
  icon: 'images/acid-base.png',
})
static async acidBase(): Promise<void> {
  const model = new Model(ACID_BASE_MODEL_INFO);
  await model.run();
}

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 23일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 23일 업데이트

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월 23일 업데이트

Add unit tests to a Datagrok package

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 23일 업데이트

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; the same scenarios, filmed in help mode, are the GIFs of the help pages

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datagrok-ai/public742026년 10월 23일 업데이트

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월 23일 업데이트

datagrok-ai의 스킬 모두 보기

이 스킬의 문제 신고