Agent skill

Symbolic Check

by flonat in flonat/flonat-research

Use SymPy to prove or refute a self-authored algebraic identity, derivative, limit, comparative-static sign, or closed form.

MITAuto-check: notesResearch & Science

Install Symbolic Check

skills CLI
$ npx skills add flonat/flonat-research --skill symbolic-check -a claude-code

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

GitHub CLI
$ gh skill install flonat/flonat-research symbolic-check --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/flonat/flonat-research.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/symbolic-check .claude/skills/symbolic-check && 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
symbolic-check
GitHub stars
146
Token cost
~1.8k tokens
SKILL.md length
693 words
Files
1
Skills in repo
83
Repo updated
First seen
Licence
MIT

At a glance

Use SymPy to prove or refute a self-authored algebraic identity, derivative, limit, comparative-static sign, or closed form.

  • Works in 6 steps: Transcribe the claim precisely, with… → Prove the core with .equals(), not… → On None, escalate — do NOT guess → …
  • Exact symbolic manipulation can settle the claim
  • SKILL.md covers When to Use, When NOT to Use, Position in the verification… and Procedure, plus 5 more sections
  • Calls uv

What it does

Symbolic Check is an agent skill from flonat/flonat-research. Use SymPy to prove or refute a self-authored algebraic identity, derivative, limit, comparative-static sign, or closed form. Use when exact symbolic manipulation can settle the claim. For parameter sweeps or full theorem proving, use $numerical-check or $lean-check.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Math and symbolic computation. It works with SymPy. The repository describes itself as: Shareable Claude Code + Codex infrastructure for PhD researchers — skills, agents, hooks, and rules for academic workflows. The licence is MIT.

When your agent uses it

  • Exact symbolic manipulation can settle the claim
  • Tasks that involve Math and symbolic computation

Example prompts

  • “/symbolic-check”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, AskUserQuestion

Workflow steps

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

  1. Transcribe the claim precisely, with declared symbol domains
  2. Prove the core with .equals(), not simplify(...)==0
  3. On None, escalate — do NOT guess
  4. Comparative-static / monotonicity signs
  5. Belt-and-suspenders
  6. Emit the verification report

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

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

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    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.

Context cost

Symbolic Check loads about 1.8k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 693 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, AskUserQuestion

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 flonat/flonat-research at commit da27600, republished under its MIT licence (© flonat). 693 words, ~1,778 tokens.

Download SKILL.mdSave it as .claude/skills/symbolic-check/SKILL.md (or your agent's skills folder).
name
symbolic-check
description
Use SymPy to prove or refute a self-authored algebraic identity, derivative, limit, comparative-static sign, or closed form. Use when exact symbolic manipulation can settle the claim. For parameter sweeps or full theorem proving, use $numerical-check or $lean-check.
allowed-tools
Read, Write, Edit, Bash, AskUserQuestion

Symbolic Check: Prove/Refute a Self-Authored Algebra Step with a CAS

Verify a symbolic manipulation you wrote — an identity, a derivative, a limit, a comparative-static sign, a closed form — using sympy. Unlike numerical falsification, this can positively verify the step: a CAS-confirmed identity is correct.

When to Use

  • You wrote A = B, ∂f/∂x = g, lim = L, sign(∂f/∂x) = −, or "the closed form is …" and want it proven before it ships.
  • symbolic-check, "verify this algebra / derivative / limit", "check the comparative-static sign", "does this closed form equal the original".
  • Companion to mark-unverified for self-authored algebra (the derivative-sign / closed-form family the rule explicitly names).

When NOT to Use

SituationUse instead
A full theorem/lemma you want machine-proven end-to-endlean-check (R3)
A distributional / probabilistic claim over a parameter spacenumerical-check (R1)
Re-verify a computed empirical resultcross-language-check
Conceptual / assumption reviewdomain-reviewer

Position in the verification spectrum

R2 — symbolic / CAS. Can VERIFY (prove) or FALSIFY a symbolic step; between numerical falsification (R1) and formal proof (R3) in strength. It proves algebra, not arbitrary theorems — reasoning beyond symbolic manipulation (measure theory, limits sympy can't evaluate) escalates to lean-check or domain-reviewer.

Procedure

1. Transcribe the claim precisely, with declared symbol domains
  • Restate the exact claim: identity A == B, derivative diff(f,x) == g, limit limit(f,x,a) == L, sign sign(diff(f,x)) over a domain, or closed form expr == cf.
  • Declare assumptions on the symbols — symbols('x', positive=True, real=True) etc. Comparative-static signs and simplifications are wrong without the right domain. State them explicitly (they are part of the claim).
2. Prove the core with .equals(), not simplify(...)==0

sympy's simplify is heuristic — a non-zero result does not mean the claim is false, only that simplify gave up. Use (A - B).equals(0), which combines symbolic + random-point numerical testing and returns:

  • True → VERIFIED (identity holds)
  • False → FALSIFIED (a witness point disproves it)
  • None → INCONCLUSIVE (undecided) — go to step 3.

For derivatives: diff(f, x).equals(g). For limits: limit(f, x, a) and compare to L. For a closed form: expr.equals(cf).

3. On None, escalate — do NOT guess
  • Try stronger simplifiers targeted at the form: factor, radsimp, trigsimp, powsimp, together, rewrite(...), assuming(...) with the domain.
  • Numerically substitute several random in-domain points into A - B — if all ≈ 0, report INCONCLUSIVE (numerically consistent, symbolically undecided); if any is far from 0, that's a FALSIFIED witness.
  • Never upgrade None to VERIFIED. Undecided is undecided.
4. Comparative-static / monotonicity signs
  • Compute d = diff(f, x). Ask whether d has a definite sign under the assumptions.
  • Try refine(d > 0, Q.positive(...)) / ask(Q.negative(d), assumptions); if sympy can't decide, sample the domain numerically to conjecture the sign, then report INCONCLUSIVE (sign consistent on N points) — a sign you can't prove symbolically is a candidate for numerical-check (falsify) or lean-check (prove).
Show full SKILL.md (257 more words)Show less
5. Belt-and-suspenders

Even on a .equals() == True, do a quick numerical substitution at one random point as a sanity check against a symbol/transcription bug. A transcription error is the most common real failure.

6. Emit the verification report

Script skeleton (adapt)

python
# uv run --no-project --with sympy python <script>.py
import sympy as sp
mu, mumax, rho = sp.symbols('mu mumax rho', positive=True)   # DECLARE the domain
# --- identity / closed-form ---
A = mu / sp.sqrt(rho); B = mumax                              # claim: threshold solves A == B
rho_star = sp.solve(sp.Eq(A, B), rho)                        # -> [mu**2/mumax**2]
print("rho* =", rho_star, " expected (mu/mumax)**2:", (mu/mumax)**2)
print("identity holds:", (rho_star[0] - (mu/mumax)**2).equals(0))   # True / False / None
# --- derivative sign (monotonicity) ---
Phi = lambda z: (1 + sp.erf(z/sp.sqrt(2)))/2                 # standard normal CDF
Q = Phi(mu/sp.sqrt(rho)); d = sp.diff(Q, rho)
print("dQ/drho =", sp.simplify(d), " sign<0 on domain (mu>0):", sp.ask(sp.Q.negative(d), sp.Q.positive(mu)))

Anti-Patterns

  • Don't read simplify(A - B) != 0 as FALSIFIED — that's simplify giving up. Use .equals().
  • Don't upgrade a None (undecided) to VERIFIED. Report INCONCLUSIVE.
  • Don't verify a sign/closed-form without declaring the symbol assumptions — the domain is part of the claim, and the wrong domain gives the wrong answer.
  • Don't skip the numerical sanity substitution — it catches transcription bugs a symbolic pass can hide.
  • Don't use bare python3 — use uv run --no-project --with sympy python.
  • Don't force a hard theorem through the CAS — if it needs real reasoning (not symbolic manipulation), escalate to lean-check (R3) or domain-reviewer.

Output — Verification Report (shared *-check shape)

Write to reviews/<scope>/verify-symbolic/<YYYY-MM-DD-HHMM>.md:

claim:    <exact symbolic statement + declared symbol domains>
method:   R2 symbolic/CAS (sympy .equals() [+ numeric sanity at <k> points])
verdict:  VERIFIED | FALSIFIED | INCONCLUSIVE (numerically consistent, symbolically undecided) | ERROR
evidence: <simplified form / witness point that disproves / the derived closed form>
reproduce: uv run --no-project --with sympy python experiments/<script>.py

Verification (did this skill work?)

  • Verdict is one of the four; VERIFIED is emitted only on .equals() == True (or an exact solve/limit match), never on None.
  • A numerical sanity substitution accompanies every VERIFIED.
  • If feeding a paper, the confirmed closed form / sign is the value that goes in (and any derived constant is emitted via a macro, no-hardcoded-results).

Worked example — 2026-07-04 (median-collapse paper)

  • Closed-form threshold: claim ρ* = (μ_med/μ_max)² solves Φ(μ_med/√ρ) = Φ(μ_max). solve(μ_med/√ρ = μ_max, ρ) → μ_med²/μ_max²; .equals() → VERIFIED.
  • Homogeneous monotonicity (Prop 3.1): d/dρ Φ(μ/√ρ) = φ(μ/√ρ)·μ·(−½ρ^{-3/2}), negative for μ>0 → sign VERIFIED under Q.positive(mu) (numeric-confirmed on the domain where sympy hesitates).
  • These are the algebra rungs beneath the theorems numerical-check stress-tested and lean-check could formalize.

© flonat, 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 skills/symbolic-check of flonat/flonat-research.

Open the folder on GitHubat commit da27600

Compare with similar skills

Symbolic Check 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.

Symbolic Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Symbolic Check this skillflonat/flonat-research146—~1.8kAutomated safety check: NotesMIT
SympyzLanqing/codex-claude-academic-skills4.7k15 repos~3.4kAutomated safety check: PassMIT
Edu Analytic Geometrywy51ai/edulab1.4k1 repos~1.6kAutomated safety check: PassApache-2.0
Edu Solid Geometrywy51ai/edulab1.4k1 repos~1.1kAutomated safety check: PassApache-2.0
Math Toolsananddtyagi/cc-marketplace6871 repos~1.3kAutomated safety check: PassNone
Edu Chem Reactionwy51ai/edulab1.4k—~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • Sympy

    zLanqing/codex-claude-academic-skills

    A skill your agent uses when working with symbolic mathematics in Python.

    4.7k GitHub starsUsed in 15 repos~3.4k tokens
    Research & ScienceAuto-check passed
  • 把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D Canvas 动态几何画板(椭圆/双曲线/抛物线/圆 + 动直线/动点 + 向量 + 标注 + 画笔涂鸦)。

    1.4k GitHub starsUsed in 1 repo~1.6k tokens
    Research & ScienceAuto-check passed
  • Edu Solid Geometry

    wy51ai/edulab

    把一道立体几何题解成一个自包含的交互教学网页:左侧 MathJax 分步解析, 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种入口——给定文字题目、 随机出题、上传题目图片识别后解题。覆盖正方体/长方体、棱锥/棱柱、圆柱/圆锥上的线面角、 二面角、异面直线夹角、点到平面距离、体积等题型,统一用"建系+向量法",并由 sympy 精确 计算驱动(答案、3D…

    1.4k GitHub starsUsed in 1 repo~1.1k tokens
    Research & ScienceAuto-check passed
  • Math Tools

    ananddtyagi/cc-marketplace

    Deterministic mathematical computation using SymPy. An agent skill from ananddtyagi/cc-marketplace.

    687 GitHub starsUsed in 1 repo~1.3k tokens
    Research & ScienceAuto-check passed
  • Edu Chem Reaction

    wy51ai/edulab

    把一个化学反应做成自包含的微观 3D 交互演示网页:左/上为 Three.js 可交互分子动画 (拖滑块看断键·成键·原子重组,分步高亮),右为 KaTeX 反应方程 + 分步讲解 + 原子守恒计数 + 可选能量-反应进程曲线。支持三入口——给定文字反应/方程、随机出题、上传图片识别后演示。

    1.4k GitHub stars~1.2k tokensUpdated yesterday
    Research & ScienceAuto-check passed
  • Math Computation

    tradecatlabs/vibe-coding-cn

    Runs reproducible math computations and counterexample searches with SymPy, NumPy and mpmath, logging evidence without presenting results as proofs.

    17k GitHub stars~881 tokensUpdated yesterday
    Research & ScienceAuto-check passed

More from flonat/flonat-research

All 83 skills in this repo
  • Latex Posters

    flonat/flonat-research

    Create a large-format academic poster in LaTeX using beamerposter, tikzposter, or baposter.

    146 GitHub stars~1.5k tokensUpdated 11 days ago
    Auto-check: notes
  • Skill Creator

    flonat/flonat-research

    Create, revise, and evaluate reusable AI workflow skills, including trigger-quality tests.

    146 GitHub stars~4.4k tokensUpdated 11 days ago
    Auto-check passed
  • DOCX

    flonat/flonat-research

    Create, read, edit, or convert Microsoft Word documents while preserving professional document structure.

    146 GitHub stars~1.2k tokensUpdated 11 days ago
    Auto-check passed
  • PDF

    flonat/flonat-research

    Read, create, combine, split, rotate, OCR, watermark, secure, or extract content from PDF files.

    146 GitHub stars~488 tokensUpdated 11 days ago
    Auto-check passed
  • Init Project Orchestration

    flonat/flonat-research

    Create or migrate project-level agents, repeatable project workflows, and planning state from one client-neutral contract, then render repository-scoped adapters for both Claude Code and Codex.

    146 GitHub stars~1.6k tokensUpdated 11 days ago
    Auto-check passed
  • Pre Commit Audit

    flonat/flonat-research

    Deliver a fast pre-commit safety scan: file size, anonymity (author / affiliation strings in tex/bib), hardcoded secrets, and invisible-Unicode carriers.

    146 GitHub stars~2.8k tokensUpdated 11 days ago
    Auto-check: notes

Works with

Questions about Symbolic Check

What does Symbolic Check do?

Use SymPy to prove or refute a self-authored algebraic identity, derivative, limit, comparative-static sign, or closed form. Symbolic Check is an agent skill from flonat/flonat-research. Use SymPy to prove or refute a self-authored algebraic identity, derivative, limit, comparative-static sign, or closed form.

When should I use Symbolic Check?

Symbolic Check fits situations like: exact symbolic manipulation can settle the claim; tasks that involve Math and symbolic computation.

How do I install Symbolic Check in Claude Code?

Run `npx skills add flonat/flonat-research --skill symbolic-check -a claude-code`. Or copy the skill folder (skills/symbolic-check in flonat/flonat-research) into .claude/skills/symbolic-check in your project. Claude Code loads it when a task matches its description.

How do I install Symbolic Check in Codex?

Run `npx skills add flonat/flonat-research --skill symbolic-check -a codex`. Or copy the skill folder (skills/symbolic-check in flonat/flonat-research) into .agents/skills/symbolic-check in your project. Codex loads it when a task matches its description.

Can I use Symbolic Check 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 flonat/flonat-research --skill symbolic-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/symbolic-check, .gemini/skills/symbolic-check, .github/skills/symbolic-check and .opencode/skills/symbolic-check in your project.

What does Symbolic Check need to run?

Going by SKILL.md and its folder, Symbolic Check needs the command-line tools its instructions call (uv). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, AskUserQuestion.

Does Symbolic Check access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Symbolic Check safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Symbolic Check use?

Symbolic Check 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 Symbolic Check use?

About 1.8k tokens (SKILL.md is roughly 7.1k 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 Symbolic Check?

Skills that share tags, products or a category with Symbolic Check: Sympy (zLanqing/codex-claude-academic-skills, 4.7k stars), Edu Analytic Geometry (wy51ai/edulab, 1.4k stars), Edu Solid Geometry (wy51ai/edulab, 1.4k stars) and Math Tools (ananddtyagi/cc-marketplace, 687 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Symbolic Check?

flonat (a GitHub user) maintains it in flonat/flonat-research, which has 146 GitHub stars. The repository holds 83 skills in this directory. The repository was last updated on September 29, 2026.

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