Fory Release
apache/fory
Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.
Automatically extract abstract finite-state models in SMV/NuSMV format from source code (C/C++, Java, Python) for formal model checking.
$ npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ArabelaTso/Skills-4-SE smv-model-extractor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/smv-model-extractor .claude/skills/smv-model-extractor && rm -rf skills-srcUse ~/.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/
Install the "smv-model-extractor" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractor into .claude/skills/smv-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smv-model-extractor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ArabelaTso/Skills-4-SE smv-model-extractor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/smv-model-extractor .agents/skills/smv-model-extractor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "smv-model-extractor" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractor into .agents/skills/smv-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smv-model-extractor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ArabelaTso/Skills-4-SE smv-model-extractor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/smv-model-extractor .cursor/skills/smv-model-extractor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "smv-model-extractor" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractor into .cursor/skills/smv-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smv-model-extractor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ArabelaTso/Skills-4-SE.git --path skills/smv-model-extractor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ArabelaTso/Skills-4-SE smv-model-extractor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/smv-model-extractor .gemini/skills/smv-model-extractor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "smv-model-extractor" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractor into .gemini/skills/smv-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smv-model-extractor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ArabelaTso/Skills-4-SE smv-model-extractorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/smv-model-extractor .github/skills/smv-model-extractor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "smv-model-extractor" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractor into .github/skills/smv-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smv-model-extractor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ArabelaTso/Skills-4-SE smv-model-extractor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/smv-model-extractor .opencode/skills/smv-model-extractor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "smv-model-extractor" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/smv-model-extractor into .opencode/skills/smv-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smv-model-extractor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
smv-model-extractorAutomatically extract abstract finite-state models in SMV/NuSMV format from source code (C/C++, Java, Python) for formal model checking.
Smv Model Extractor is an agent skill from ArabelaTso/Skills-4-SE. Automatically extract abstract finite-state models in SMV/NuSMV format from source code (C/C++, Java, Python) for formal model checking. Use when users need to: (1) Generate SMV models from program code for verification, (2) Extract state-transition models from protocol implementations, (3) Analyze control flow and data flow to construct formal models, (4) Create models for checking safety and liveness properties, (5) Convert imperative code to declarative state machines. Particularly effective for protocol…
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/extraction_patterns.md`, `references/smv_syntax.md` and `scripts/cfg_analyzer.py`).
It works with C++, Java and Python. The repository describes itself as: A curated list of 180+ useful Claude Skills for Software Engineering and resources for customizing AI for SE workflows. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4f38503. It shows what the files ask for, not the result of running them.
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.
Ships 4 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Smv Model Extractor loads about 1.8k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 154 tokens; SKILL.md has 551 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from ArabelaTso/Skills-4-SE at commit 4f38503, republished under its Apache-2.0 licence (© ArabelaTso). 551 words, ~1,838 tokens.
.claude/skills/smv-model-extractor/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Automatically extract abstract finite-state models from source code for formal verification with NuSMV model checker.
This skill transforms imperative programs (C/C++, Java, Python) into declarative SMV models suitable for model checking. It analyzes control flow, data flow, and program variables to construct states and transitions, applying appropriate abstraction to make models tractable while preserving properties of interest.
Read and understand the program structure:
# For single file
python3 scripts/extract_model.py program.c -o model.smv
# For multiple files
python3 scripts/extract_model.py file1.c file2.c file3.java -o model.smv
# For entire directory
python3 scripts/extract_model.py src/*.py -o model.smvThe extractor automatically:
The skill uses medium abstraction by default (balanced approach):
Data abstraction:
Control abstraction:
Abstraction levels:
# Low abstraction (more detail, larger state space)
python3 scripts/extract_model.py program.c -o model.smv --abstraction low
# Medium abstraction (recommended, balanced)
python3 scripts/extract_model.py program.c -o model.smv --abstraction medium
# High abstraction (minimal states, protocol phases only)
python3 scripts/extract_model.py program.c -o model.smv --abstraction highThe extractor produces:
model.smv - Complete NuSMV model with:
model_mapping.txt - Human-readable explanation:
Example output structure:
-- SMV Model automatically extracted from source code
MODULE main
VAR
pc : {s0, s1, s2, s3}; -- program counter
flag : boolean;
count : 0..3;
ASSIGN
init(pc) := s0;
init(flag) := FALSE;
init(count) := 0;
next(pc) := case
pc = s0 & !flag : s1;
pc = s1 : s2;
pc = s2 & count < 3 : s3;
pc = s3 : s0;
TRUE : pc;
esac;
next(count) := case
pc = s2 & count < 3 : count + 1;
TRUE : count;
esac;After model generation, add temporal logic specifications to verify:
Safety properties (things that should never happen):
-- No buffer overflow
SPEC AG (count <= 3)
-- Mutual exclusion
SPEC AG !(process1_critical & process2_critical)Liveness properties (things that should eventually happen):
-- Eventually reach goal state
SPEC AF (pc = s3)
-- Request eventually granted
SPEC AG (request -> AF grant)See smv_syntax.md for complete SMV syntax reference.
Verify the model with NuSMV:
# Check all specifications
NuSMV model.smv
# Interactive mode
NuSMV -int model.smv
# Generate counterexample if property fails
NuSMV -dcx model.smvScenario: User has implemented a network protocol and wants to verify correctness.
Approach:
See: extraction_patterns.md for detailed protocol patterns.
Scenario: Multi-threaded program with shared resources.
Approach:
Scenario: Program with explicit state variable and transitions.
Approach:
When codebase is large, focus extraction on relevant functions:
python3 scripts/extract_model.py program.c -o model.smv \
--focus-functions connect disconnect send_messageExplicitly specify which variables to include in state:
python3 scripts/extract_model.py program.c -o model.smv \
--track-vars connection_state buffer_count retry_limitState explosion: Model has too many states, verification is slow or fails.
Over-abstraction: Model is too abstract, properties are trivially true/false.
Missing transitions: Model has deadlocks not present in original program.
© ArabelaTso, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references) in skills/smv-model-extractor of ArabelaTso/Skills-4-SE.
Open the folder on GitHubat commit 4f38503
Smv Model Extractor 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Smv Model Extractor this skillArabelaTso/Skills-4-SE | 253 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Fory Releaseapache/fory | 4.6k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| CodeQL Security Scantrailofbits/skills | 7.4k | — | ~4.6k | Automated safety check: Notes | CC-BY-SA-4.0 | |
| Fory Version Bumpapache/fory | 4.6k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Fory Performance Optimizationapache/fory | 4.6k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| MCP Debuggerdebugmcp/mcp-debugger | 172 | — | ~3.8k | Automated safety check: Pass | MIT |
apache/fory
Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.
trailofbits/skills
Scans a codebase for vulnerabilities with CodeQL's data flow and taint tracking in run-all or important-only modes, including data extensions for project-specific sources and sinks.
apache/fory
Bump Apache Fory release or post-release development versions across Java, Kotlin, Scala, Python, Rust, Go, C++, C, Dart, JavaScript, Swift, integration tests, examples, and source docs.
apache/fory
Run profile-driven bottleneck optimization across Apache Fory implementations (Java, C++, Python/Cython, Go, Rust, Swift, C, JavaScript/TypeScript, Dart, Kotlin, Scala).
debugmcp/mcp-debugger
A skill your agent uses when investigating a bug, failing test, or unexpected runtime behavior and the mcp-debugger MCP server is available — drives real step-through debuggers (breakpoints, stack…
theodo-group/debug-that
Debug applications using the dbg CLI debugger. An agent skill from theodo-group/debug-that.
ArabelaTso/Skills-4-SE
Generate prioritized CVE watchlists and actionable security recommendations for repositories.
ArabelaTso/Skills-4-SE
Automatically migrate Python web applications between frameworks (Flask → FastAPI, Django → FastAPI).
ArabelaTso/Skills-4-SE
Generate test cases using metamorphic testing by applying transformations based on metamorphic properties.
ArabelaTso/Skills-4-SE
Instruments programs to capture execution traces specifically for reproducing reported bugs, enabling consistent replay and diagnosis of failures.
ArabelaTso/Skills-4-SE
Automatically migrate Spring MVC applications to Spring Boot.
ArabelaTso/Skills-4-SE
Instrument programs (Python, C/C++, Java) to capture snapshots of key program states at runtime, including variables, memory, and call stacks.
Automatically extract abstract finite-state models in SMV/NuSMV format from source code (C/C++, Java, Python) for formal model checking. Smv Model Extractor is an agent skill from ArabelaTso/Skills-4-SE. Automatically extract abstract finite-state models in SMV/NuSMV format from source code (C/C++, Java, Python) for formal model checking.
Smv Model Extractor fits situations like: generate SMV models from program code for verification; extract state-transition models from protocol implementations; analyze control flow and data flow to construct formal models; create models for checking safety and liveness properties.
Run `npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a claude-code`. Or copy the skill folder (skills/smv-model-extractor in ArabelaTso/Skills-4-SE) into .claude/skills/smv-model-extractor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a codex`. Or copy the skill folder (skills/smv-model-extractor in ArabelaTso/Skills-4-SE) into .agents/skills/smv-model-extractor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ArabelaTso/Skills-4-SE --skill smv-model-extractor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/smv-model-extractor, .gemini/skills/smv-model-extractor, .github/skills/smv-model-extractor and .opencode/skills/smv-model-extractor in your project.
Going by SKILL.md and its folder, Smv Model Extractor needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
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.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Smv Model Extractor is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Smv Model Extractor: Fory Release (apache/fory, 4.6k stars), CodeQL Security Scan (trailofbits/skills, 7.4k stars), Fory Version Bump (apache/fory, 4.6k stars) and Fory Performance Optimization (apache/fory, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ArabelaTso (a GitHub user) maintains it in ArabelaTso/Skills-4-SE, which has 253 GitHub stars. The repository holds 170 skills in this directory. The repository was last updated on August 21, 2026.
Source: ArabelaTso/Skills-4-SE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.