TDD
RafaelGB/Obsidian-ZettelFlow
The test-driven development workflow for ZettelFlow — write a failing test first, run jest, use the Obsidian mock and the bare-specifier alias mappings, and know which code is unit-testable.
Verify a Nexus change — pick a Jest lane, write a test that can actually fail, run the in-app Obsidian CLI loop, drive the eval harness, or fix a shipped-docs drift failure.
$ npx skills add ProfSynapse/nexus --skill nexus-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ProfSynapse/nexus nexus-testing --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/ProfSynapse/nexus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.skills/nexus-testing .claude/skills/nexus-testing && 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 "nexus-testing" agent skill from https://github.com/ProfSynapse/nexus/tree/main/.skills/nexus-testing into .claude/skills/nexus-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nexus-testing", 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/ProfSynapse/nexus/tree/main/.skills/nexus-testingType 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 ProfSynapse/nexus --skill nexus-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ProfSynapse/nexus nexus-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ProfSynapse/nexus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.skills/nexus-testing .agents/skills/nexus-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nexus-testing" agent skill from https://github.com/ProfSynapse/nexus/tree/main/.skills/nexus-testing into .agents/skills/nexus-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nexus-testing", 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 ProfSynapse/nexus --skill nexus-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ProfSynapse/nexus nexus-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ProfSynapse/nexus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.skills/nexus-testing .cursor/skills/nexus-testing && 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 "nexus-testing" agent skill from https://github.com/ProfSynapse/nexus/tree/main/.skills/nexus-testing into .cursor/skills/nexus-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nexus-testing", 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/ProfSynapse/nexus.git --path .skills/nexus-testing--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 ProfSynapse/nexus --skill nexus-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ProfSynapse/nexus nexus-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ProfSynapse/nexus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.skills/nexus-testing .gemini/skills/nexus-testing && 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 "nexus-testing" agent skill from https://github.com/ProfSynapse/nexus/tree/main/.skills/nexus-testing into .gemini/skills/nexus-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nexus-testing", 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 ProfSynapse/nexus nexus-testingInstalls 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 ProfSynapse/nexus --skill nexus-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ProfSynapse/nexus.git skills-src && mkdir -p .github/skills && cp -r skills-src/.skills/nexus-testing .github/skills/nexus-testing && 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 "nexus-testing" agent skill from https://github.com/ProfSynapse/nexus/tree/main/.skills/nexus-testing into .github/skills/nexus-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nexus-testing", 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 ProfSynapse/nexus --skill nexus-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ProfSynapse/nexus nexus-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ProfSynapse/nexus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.skills/nexus-testing .opencode/skills/nexus-testing && 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 "nexus-testing" agent skill from https://github.com/ProfSynapse/nexus/tree/main/.skills/nexus-testing into .opencode/skills/nexus-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nexus-testing", 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.
nexus-testingVerify a Nexus change — pick a Jest lane, write a test that can actually fail, run the in-app Obsidian CLI loop, drive the eval harness, or fix a shipped-docs drift failure.
Nexus Testing is an agent skill from ProfSynapse/nexus. Verify a Nexus change — pick a Jest lane, write a test that can actually fail, run the in-app Obsidian CLI loop, drive the eval harness, or fix a shipped-docs drift failure. Use when adding or changing tests, when a mock might be deciding the outcome, when a change has to be proven in the running plugin, or when the guidance gate fails.
Its SKILL.md is about 990 tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts and reference files (for example `protocols/fix-shipped-docs-drift.md`, `protocols/headless-obsidian.md` and `protocols/live-loop.md`).
It sits in Testing & QA, covering Unit testing and LLM evaluation. It works with Obsidian and Jest. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6cb7bce. 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 2 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.
Nexus Testing loads about 994 tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 88 tokens; SKILL.md has 457 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 ProfSynapse/nexus at commit 6cb7bce, republished under its MIT licence (© ProfSynapse). 457 words, ~994 tokens.
.claude/skills/nexus-testing/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.Context: every Jest lane resolves obsidian to a hand-written mock — see
moduleNameMapper in jest.config.js. A green suite therefore proves the code
agrees with tests/mocks/obsidian/, not with Obsidian. Three ranking defects
shipped past that suite. Everything below exists to close the gap between what
Jest can prove and what the running plugin does.
Pick the job and open its protocol. Work from the protocol, not from this router — the router names procedures, it does not contain them.
| Job | Protocol |
|---|---|
| Add or change a test | protocols/write-a-test.md |
| Prove a change works in the running plugin | protocols/live-loop.md |
| No Obsidian here (container / cloud session) | protocols/headless-obsidian.md |
| Run a gated live-smoke lane or the eval harness | protocols/run-gated-lanes.md |
shippedGuidanceCommands or ToolManagerCliSyntax is red | protocols/fix-shipped-docs-drift.md |
| Merge a PR (what to run first, how to gate on CI) | protocols/merge-a-pr.md |
| A symptom you cannot place | references/troubleshooting.md |
Derive every list from the tree, never from a document. This skill states no
test counts, no lane inventory and no env-var table on purpose, and you MUST
NOT add one — those rot silently and a rotted list is worse than none.
references/lanes.md holds the discovery commands.
Before calling a testing change done, run both checks from the repo root and fix anything they print:
python3 .claude/skills/nexus-testing/scripts/check_live_lane_gates.py
python3 .claude/skills/nexus-testing/scripts/check_catalog_target.pyNEVER claim a change is verified in the app on the strength of Jest alone.
If the change touches load order, rendering, hydration or anything that only
exists once the plugin is running, protocols/live-loop.md is the proof and
nothing else is.
At the end of a session that used this skill, run protocols/self-refine.md.
protocols/ the procedures: write-a-test, live-loop, headless-obsidian,
run-gated-lanes, fix-shipped-docs-drift, self-refine.references/ read on demand: lanes.md (where a test goes and how to find
what exists), mock-honesty.md (the two habits that make a test able to fail),
troubleshooting.md (symptom → cause).scripts/ the mechanical checks named in step 3. Run them; do not
reimplement them.refinement-log.md what past sessions changed here and why.nexus-eval-harness — configuring, extending and debugging the eval harness.
This skill covers only running it and the two knobs that surprise people.nexus-model-eval — grading specific models.nexus-tool-schemas — regenerating the tool catalog (no running vault needed).nexus-agents — the two-tool contract and the useTools payload shape a test
has to build.nexus-mobile-compat — the mobile failure class the in-app loop cannot see.nexus-storage — resetting persisted state when a plugin reload is not enough.Exercised 2026-08-14 against Obsidian 1.13.7 in a headless Linux container
and 2026-08-21 against Obsidian 1.12.7 on macOS. Setup, vault-targeted
plugin:reload, dev:errors, dev:console, dev:screenshot, dev:debug, and
synchronous eval are confirmed working. The first run found a startup-ordering
bug that every Jest lane was blind to; the macOS run confirmed explicit
vault=<name> targeting and clean repeated reloads.
© ProfSynapse, MIT. 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 13 other files (scripts, references) in .skills/nexus-testing of ProfSynapse/nexus.
Open the folder on GitHubat commit 6cb7bce
Nexus Testing 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 |
|---|---|---|---|---|---|---|
| Nexus Testing this skillProfSynapse/nexus | 154 | — | ~994 | Automated safety check: Pass | MIT | |
| TDDRafaelGB/Obsidian-ZettelFlow | 174 | — | ~724 | Automated safety check: Pass | MIT | |
| Jest Testing PatternsChrisWiles/claude-code-showcase | 6.1k | 7 repos | ~1.5k | Automated safety check: Pass | None | |
| Test GuardamElnagdy/guard-skills | 1.3k | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Vitestpixel-point/animate-text | 149 | 2 repos | ~1.3k | Automated safety check: Pass | None | |
| Test Guidelinesgetsentry/sentry-react-native | 1.8k | — | ~1.3k | Automated safety check: Pass | MIT |
RafaelGB/Obsidian-ZettelFlow
The test-driven development workflow for ZettelFlow — write a failing test first, run jest, use the Obsidian mock and the bare-specifier alias mappings, and know which code is unit-testable.
ChrisWiles/claude-code-showcase
Jest patterns for React Native style tests: TDD discipline, mock factory functions, module and GraphQL hook mocking, custom render helpers and anti-patterns to avoid.
amElnagdy/guard-skills
Reviews newly written or edited tests against nine rules that cut test bloat, such as mock-heavy checks and near-duplicate cases, before they are committed.
pixel-point/animate-text
Vitest testing framework patterns for test setup, async testing, mocking with vi., snapshots, and test performance (formerly test-vitest).
getsentry/sentry-react-native
Enforce Sentry React Native SDK test conventions for naming, structure, mocking, and fixtures with Jest.
CloudAI-X/claude-workflow-v2
Designs and implements testing strategies for any codebase. An agent skill from CloudAI-X/claude-workflow-v2.
ProfSynapse/nexus
How to add, change and verify a Nexus agent or tool, and the contract every tool must satisfy.
ProfSynapse/nexus
Work on the Nexus LLM eval harness in tests/eval/ — author or fix a scenario fixture, write an eval config, change the executors, assertions or reports, or explain a run that produced nothing…
ProfSynapse/nexus
Grade how well a model drives the Nexus two-tool protocol (getTools/useTools) and decide whether a low score is the model's fault or the harness's.
ProfSynapse/nexus
Add, change or verify a Nexus LLM model definition — the registry entry, the provider default, and proof the model id actually works against the live endpoint.
ProfSynapse/nexus
Cut a Nexus release — bump the version with the repo's own machinery, get the docs and generated sources right, push a tag the GitHub Actions workflow will actually pick up, and recover when it does…
ProfSynapse/nexus
How to change, persist, migrate and recover Nexus data without losing it.
Categories
Verify a Nexus change — pick a Jest lane, write a test that can actually fail, run the in-app Obsidian CLI loop, drive the eval harness, or fix a shipped-docs drift failure. Nexus Testing is an agent skill from ProfSynapse/nexus. Verify a Nexus change — pick a Jest lane, write a test that can actually fail, run the in-app Obsidian CLI loop, drive the eval harness, or fix a shipped-docs drift failure.
Nexus Testing fits situations like: A mock might be deciding the outcome; A change has to be proven in the running plugin; the guidance gate fails.
Run `npx skills add ProfSynapse/nexus --skill nexus-testing -a claude-code`. Or copy the skill folder (.skills/nexus-testing in ProfSynapse/nexus) into .claude/skills/nexus-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ProfSynapse/nexus --skill nexus-testing -a codex`. Or copy the skill folder (.skills/nexus-testing in ProfSynapse/nexus) into .agents/skills/nexus-testing 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 ProfSynapse/nexus --skill nexus-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nexus-testing, .gemini/skills/nexus-testing, .github/skills/nexus-testing and .opencode/skills/nexus-testing in your project.
Going by SKILL.md and its folder, Nexus Testing 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.
Nexus Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 994 tokens (SKILL.md is roughly 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.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Nexus Testing: TDD (RafaelGB/Obsidian-ZettelFlow, 174 stars), Jest Testing Patterns (ChrisWiles/claude-code-showcase, 6.1k stars), Test Guard (amElnagdy/guard-skills, 1.3k stars) and Vitest (pixel-point/animate-text, 149 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ProfSynapse (a GitHub user) maintains it in ProfSynapse/nexus, which has 154 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 2, 2026.
Source: ProfSynapse/nexus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.