Agent skill

Create Problem

by PINA-org in PINA-org/PINA

Entry point for creating PINA problems. An agent skill from PINA-org/PINA.

MITAuto-check passedAI & LLM Engineering

Install Create Problem

skills CLI
$ npx skills add PINA-org/PINA --skill create-problem -a claude-code

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

GitHub CLI
$ gh skill install PINA-org/PINA create-problem --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/PINA-org/PINA.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.opencode/skills/create-problem .claude/skills/create-problem && 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
create-problem
GitHub stars
797
Token cost
~1.9k tokens
SKILL.md length
414 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Entry point for creating PINA problems. An agent skill from PINA-org/PINA.

  • Works in 3 steps: Problem nature → Select domain type(s) → Delegate to sub-skills
  • Tasks that involve Deep learning
  • SKILL.md covers Overview, Required attributes per…, Interactive flow and Templates, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Create Problem is an agent skill from PINA-org/PINA. Entry point for creating PINA problems. Routes to sub-skills based on problem type (data-driven vs physics-driven), problem class selection, domain setup, equations, conditions, and discretisation.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: opencode, codex, claude

It sits in AI & LLM Engineering, covering Deep learning. It works with Python. The repository describes itself as: Physics-Informed Neural networks for Advanced modeling. The licence is MIT.

When your agent uses it

  • Tasks that involve Deep learning

Example prompts

  • “/create-problem”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): opencode, codex, claude

Workflow steps

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

  1. Problem nature
  2. Select domain type(s)
  3. Delegate to sub-skills

What it can do on your machine

Read from SKILL.md and the folder at commit 0cd8afb. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

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

  • Network

    No URLs in SKILL.md.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

  • Compatibility

    opencode, codex, claude

    From compatibility in the SKILL.md frontmatter.

Context cost

Create Problem loads about 1.9k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 414 words of instructions outside code blocks.

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

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 PINA-org/PINA at commit 0cd8afb, republished under its MIT licence (© PINA-org). 414 words, ~1,918 tokens.

Download SKILL.mdSave it as .claude/skills/create-problem/SKILL.md (or your agent's skills folder).
name
create-problem
description
Entry point for creating PINA problems. Routes to sub-skills based on problem type (data-driven vs physics-driven), problem class selection, domain setup, equations, conditions, and discretisation.
compatibility
opencode, codex, claude
license
MIT
metadata.audience
users
metadata.workflow
problem-creation

Create a PINA Problem — Entry Point

[!IMPORTANT] Read RULES.md before using this skill — it applies to all skills.

This is the entry-point skill for building PINA Problems. It selects the problem type and routes to sub-skills for the deep work.

Overview

A PINA problem is a Python class that inherits from one or more of:

Base classWhen to use
BaseProblemData-driven (supervised / unsupervised) problems
SpatialProblemPDE/ODE depending only on spatial coordinates
TimeDependentProblemProblems with a time dimension
ParametricProblemProblems with parametric dependencies
InverseProblemProblems with unknown physical parameters

Problems can mix base classes via multiple inheritance (e.g., SpatialProblem + TimeDependentProblem for space-time PDEs).

Required attributes per problem type

Base class(es)Must define
BaseProbleminput_variables, output_variables, conditions with input/target
SpatialProblemoutput_variables, spatial_domain, conditions
TimeDependentProblemoutput_variables, temporal_domain, conditions
ParametricProblemoutput_variables, parameter_domain, conditions
InverseProblemoutput_variables, unknown_parameter_domain, conditions

Interactive flow

Step 1 — Problem nature

Is your problem data-driven (you have input/target data) or physics-driven (you have a PDE/ODE with known equations)?

Data-driven → use BaseProblem. Load the condition-setup sub-skill for data types and conditions.

Physics-driven → go to Step 2.

If the user is unsure:

  • Data-driven: Pairs (input, target), model learns to map one to the other.
  • Physics-driven: Differential equation, model minimises residual at collocation points.
Step 2 — Select domain type(s)

Does your problem involve:

  • Spatial variables only (e.g. x, y, z)? → SpatialProblem
  • Time as well? → also inherit TimeDependentProblem
  • Parameters that vary? → also inherit ParametricProblem
  • Unknown parameters to be discovered? → also inherit InverseProblem

Choose the base class(es) that match.

Show full SKILL.md (171 more words)Show less
Step 3 — Delegate to sub-skills
  1. Load define-domains to create the domain objects (spatial_domain, temporal_domain, etc.).
  2. Load define-equations to define PDEs/ODEs and boundary conditions.
  3. Load condition-setup to bind equations/conditions to domains.
  4. Return to this skill after conditions are defined to handle discretisation (see Step 7 in define-domains) and final verification.

Templates

Template 1: Data-driven (supervised)
python
import torch
from pina import Condition, LabelTensor
from pina.problem import BaseProblem

input_data = LabelTensor(torch.randn(100, 1), "x")
target_data = LabelTensor(torch.randn(100, 1), "y")

class MySupervisedProblem(BaseProblem):
    input_variables = ["x"]
    output_variables = ["y"]
    conditions = {
        "data": Condition(input=input_data, target=target_data),
    }

problem = MySupervisedProblem()
Template 2: Purely spatial (Poisson-like)
python
from pina.problem import SpatialProblem
from pina.domain import CartesianDomain
from pina import Condition
from pina.equation import Equation
from pina.equation.zoo import FixedValue

class MySpatialProblem(SpatialProblem):
    output_variables = ["u"]
    spatial_domain = CartesianDomain({"x": [0, 1], "y": [0, 1]})

    domains = {
        "D": spatial_domain,
        "boundary": spatial_domain.partial(),
    }

    conditions = {
        "boundary": Condition(domain="boundary", equation=FixedValue(0.0)),
        "D": Condition(domain="D", equation=Equation(my_pde)),
    }

    def solution(self, pts):
        ...
Template 3: Space-time (Burgers-like)
python
from pina.problem import SpatialProblem, TimeDependentProblem
from pina.domain import CartesianDomain
from pina import Condition
from pina.equation import Equation
from pina.equation.zoo import FixedValue

class MySpaceTimeProblem(TimeDependentProblem, SpatialProblem):
    output_variables = ["u"]
    spatial_domain = CartesianDomain({"x": [-1, 1]})
    temporal_domain = CartesianDomain({"t": [0, 1]})

    domains = {
        "D": spatial_domain.update(temporal_domain),
        "ic": spatial_domain.update(CartesianDomain({"t": 0})),
        "boundary": spatial_domain.partial().update(temporal_domain),
    }

    conditions = {
        "boundary": Condition(domain="boundary", equation=FixedValue(0.0)),
        "ic": Condition(domain="ic", equation=Equation(initial_cond)),
        "D": Condition(domain="D", equation=Equation(my_pde)),
    }

    def solution(self, pts):
        ...
Template 4: Inverse problem
python
from pina.problem import SpatialProblem, InverseProblem
from pina.domain import CartesianDomain
from pina import Condition
from pina.equation import Equation
from pina.equation.zoo import FixedValue

class MyInverseProblem(SpatialProblem, InverseProblem):
    output_variables = ["u"]
    spatial_domain = CartesianDomain({"x": [-2, 2], "y": [-2, 2]})
    unknown_parameter_domain = CartesianDomain({"mu1": [-1, 1], "mu2": [-1, 1]})

    domains = {
        "D": spatial_domain,
        "boundary": spatial_domain.partial(),
    }

    conditions = {
        "boundary": Condition(domain="boundary", equation=FixedValue(0.0)),
        "D": Condition(domain="D", equation=Equation(laplace_equation)),
        "data": Condition(input=input_data, target=target_data),
    }
Template 5: Parametric problem
python
from pina.problem import SpatialProblem, ParametricProblem
from pina.domain import CartesianDomain

class MyParametricProblem(SpatialProblem, ParametricProblem):
    output_variables = ["u"]
    spatial_domain = CartesianDomain({"x": [0, 1]})
    parameter_domain = CartesianDomain({"mu": [0.5, 2.0]})

    domains = {
        "D": spatial_domain.update(parameter_domain),
        ...
    }
    ...

Checklist

  • output_variables is a list[str] naming the model outputs
  • For data-driven: input_variables is a list[str] naming the inputs
  • For physics-driven: all required domains are defined (spatial_domain, temporal_domain, parameter_domain, or unknown_parameter_domain as appropriate)
  • domains dict contains a key for every domain referenced in conditions
  • If equation was unknown: searched the web, presented the found formulation to the user, and confirmed before using
  • PDE problem includes both the equation AND boundary/initial conditions
  • problem.discretise_domain(n=..., mode=..., domains=...) called for each physics domain
  • problem.are_all_domains_discretised is True after discretisation
  • (Optional) solution(pts) method defined with correct analytical solution returning LabelTensor with output_variables labels

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

Files

Just SKILL.md in .opencode/skills/create-problem of PINA-org/PINA.

Open the folder on GitHubat commit 0cd8afb

Compare with similar skills

Create Problem 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.

Create Problem compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Create Problem this skillPINA-org/PINA797—~1.9kAutomated safety check: PassMIT
Segment Anything Model GuideOrchestra-Research/AI-Research-SKILLs13k9 repos~3.3kAutomated safety check: PassMIT
CLIP Image-Text MatchingOrchestra-Research/AI-Research-SKILLs13k8 repos~1.7kAutomated safety check: PassMIT
Paddle Design DistributedPaddlePaddle/Paddle24k—~660Automated safety check: PassApache-2.0
Onnxtxtonnx/onnx22k—~1.3kAutomated safety check: PassApache-2.0
Scaffold Examplecomet-ml/comet-examples175—~1kAutomated safety check: PassNone

Similar skills

  • Segment Anything Model Guide

    Orchestra-Research/AI-Research-SKILLs

    Guide to using Meta's Segment Anything Model for zero-shot image segmentation with point, box or mask prompts, or automatic mask generation.

    13k GitHub starsUsed in 9 repos~3.3k tokens
    AI & LLM EngineeringAuto-check passed
  • CLIP Image-Text Matching

    Orchestra-Research/AI-Research-SKILLs

    Explains OpenAI's CLIP model for zero-shot image classification, image-text similarity, semantic image search and content moderation, with install steps and code patterns.

    13k GitHub starsUsed in 8 repos~1.7k tokens
    AI & LLM EngineeringAuto-check passed
  • Paddle Design Distributed

    PaddlePaddle/Paddle

    A skill your agent uses when working with Paddle's distributed training system: understanding parallelism strategies (DP, ZeRO, TP, PP, SP), semi-automatic parallel with ProcessMesh + shardtensor…

    24k GitHub stars~660 tokensUpdated 8 days ago
    AI & LLM EngineeringAuto-check passed
  • Onnxtxt

    onnx/onnx

    Read or write ONNX text format ("onnxtxt"). An agent skill from onnx/onnx.

    22k GitHub stars~1.3k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Scaffold Example

    comet-ml/comet-examples

    Scaffold a brand-new Comet example in this repo from the canonical template under templates/integration-example/.

    175 GitHub stars~1k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • PyTorch Lightning Training

    Orchestra-Research/AI-Research-SKILLs

    Shows how to organize PyTorch training with Lightning's LightningModule and Trainer, covering validation, DDP, callbacks and learning-rate scheduling.

    13k GitHub starsUsed in 7 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed

More from PINA-org/PINA

All 10 skills in this repo
  • Create Skill

    PINA-org/PINA

    Create, modify, and improve PINA skills. An agent skill from PINA-org/PINA.

    797 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Pina Workflow

    PINA-org/PINA

    Orchestrates a complete session from problem definition through trained solver.

    797 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Select Model

    PINA-org/PINA

    Guides users through selecting, configuring, or creating a PyTorch model for a PINA problem.

    797 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Select Solver

    PINA-org/PINA

    Guides users through selecting the right PINA solver for their problem, or creating a custom solver when no built-in fits.

    797 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Select Trainer

    PINA-org/PINA

    Guides users through configuring the PINA Trainer for solver training, including batching strategy, data splitting, and Lightning options.

    797 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Skill Sync Checker

    PINA-org/PINA

    Audits SKILL.md files in this repo's skills directory for references to functions, classes, or modules (mentioned by name in prose, e.g.

    797 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Create Problem

What does Create Problem do?

Entry point for creating PINA problems. An agent skill from PINA-org/PINA. Create Problem is an agent skill from PINA-org/PINA. Entry point for creating PINA problems.

When should I use Create Problem?

Create Problem fits situations like: tasks that involve Deep learning.

How do I install Create Problem in Claude Code?

Run `npx skills add PINA-org/PINA --skill create-problem -a claude-code`. Or copy the skill folder (.opencode/skills/create-problem in PINA-org/PINA) into .claude/skills/create-problem in your project. Claude Code loads it when a task matches its description.

How do I install Create Problem in Codex?

Run `npx skills add PINA-org/PINA --skill create-problem -a codex`. Or copy the skill folder (.opencode/skills/create-problem in PINA-org/PINA) into .agents/skills/create-problem in your project. Codex loads it when a task matches its description.

Can I use Create Problem 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 PINA-org/PINA --skill create-problem -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-problem, .gemini/skills/create-problem, .github/skills/create-problem and .opencode/skills/create-problem in your project.

What does Create Problem need to run?

SKILL.md names no scripts, command-line tools or credentials: Create Problem is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): opencode, codex, claude.

Does Create Problem access the network?

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.

Is Create Problem 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 Create Problem use?

Create Problem is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Create Problem use?

About 1.9k tokens (SKILL.md is roughly 7.7k 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 Create Problem?

Skills that share tags, products or a category with Create Problem: Segment Anything Model Guide (Orchestra-Research/AI-Research-SKILLs, 13k stars), CLIP Image-Text Matching (Orchestra-Research/AI-Research-SKILLs, 13k stars), Paddle Design Distributed (PaddlePaddle/Paddle, 24k stars) and Onnxtxt (onnx/onnx, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Create Problem?

PINA-org (a GitHub organization) maintains it in PINA-org/PINA, which has 797 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

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