Best for
- Use when writing test specs for NL artifacts, running /nlpm:test, or setting up TDD workflows for skills, agents, commands, rules, hooks, and prompts.
xiaolai/nlpm/skills/nlpm/testing/SKILL.md
Use when writing test specs for NL artifacts, running /nlpm:test, or setting up TDD workflows for skills, agents, commands, rules, hooks, and prompts.
Decision brief
Use when writing test specs for NL artifacts, running /nlpm:test, or setting up TDD workflows for skills, agents, commands, rules, hooks, and prompts.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/xiaolai/nlpm --skill "skills/nlpm/testing"Inspect the Agent Skill "testing" from https://github.com/xiaolai/nlpm/blob/660db42b2f2351b5f21e2022ce8785e66218a724/skills/nlpm/testing/SKILL.md at commit 660db42b2f2351b5f21e2022ce8785e66218a724. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Review the “The NL-TDD Cycle” section in the pinned source before continuing.
Location: .nlpm-test/ directory in the project root (or alongside the artifact).
Review the “triggerson (skills and agents)” section in the pinned source before continuing.
Queries that SHOULD trigger this artifact:
Review the “doesnottriggeron (skills and agents)” section in the pinned source before continuing.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 84/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 104 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
1. Write spec (.nlpm-test/artifact-name.spec.md) — define expectations
2. /nlpm:test — RED: spec fails (artifact doesn't exist)
3. Write the artifact — create the NL artifact
4. /nlpm:test — check if it passes
5. /nlpm:score — check quality score
6. Iterate until GREEN: all specs pass + score ≥ threshold
Location: .nlpm-test/ directory in the project root (or alongside the artifact).
Filename convention: <artifact-name>.spec.md — matches the artifact filename without path.
---
artifact: agents/my-agent.md # path to the artifact being tested
type: agent # agent | skill | command | rule | hook | prompt
min_score: 85 # minimum /nlpm:score threshold for this artifact
---
Body sections (all optional — include what matters for this artifact):
## Triggers On
Queries that SHOULD trigger this artifact:
- "review my database migrations before deploying"
- "check if these schema changes are safe"
- "audit the migration for breaking changes"
## Does Not Trigger On
Queries that should NOT trigger this artifact:
- "write a migration for adding a users table"
- "help me with CSS styling"
- "deploy to production"
## Output Contains
Expected elements in the output:
- "## Migration Review" (heading present)
- "| Table | Change | Risk |" (table structure)
- severity classification (CRITICAL/HIGH/MEDIUM/LOW)
## Output Format
The output should be a markdown report with:
1. Summary section with counts
2. Findings table with columns: File, Finding, Severity
3. Action items list
## Handles Input
| Input | Expected Behavior |
|-------|------------------|
| (empty) | Score all artifacts in cwd |
| directory path | Score artifacts in that directory |
| nonexistent path | Error: "Directory not found: {path}" |
| file path | Score that single file |
## Follows Rules
Code that SHOULD comply:
```python
result: Result[User, AppError] = get_user(id)
Code that SHOULD violate:
user = get_user(id).unwrap() # should be flagged
### frontmatter_valid (all types)
```markdown
## Frontmatter Valid
Required fields:
- description: present and trigger-style ("Use when...")
- model: sonnet
- tools: [Read, Glob, Grep]
- skills: [nlpm:conventions, nlpm:scoring]
NLPM Test Report
Spec Artifact Result Details
─────────────────────────────────────────────────────────────────────────────────
my-agent.spec.md agents/my-agent.md PASS 5/5 checks
my-skill.spec.md skills/core/SKILL.md FAIL 3/5 checks
✗ Trigger: "optimize React hooks" → predicted NO trigger (expected YES)
✗ Score: 68/100 (min: 85)
Overall: 1 passed, 1 failed (50%)
RED items (fix these):
1. skills/core/SKILL.md — trigger gap: "optimize React hooks" not covered by description
2. skills/core/SKILL.md — score 68 < min 85: missing <example> blocks (-15)
handles_input for commandsmin_score should match your project's threshold (default 85 for new artifacts, 70 for legacy)The tester discovers specs by:
.nlpm-test/ directorymy-agent.spec.md → agents/my-agent.md (uses the artifact: frontmatter field)artifact path doesn't exist → spec is RED by default (artifact not yet created — this is the TDD "write test first" state)RED — write the spec first. Create .nlpm-test/my-agent.spec.md with artifact: agents/my-agent.md and a triggers_on: block listing 5 user queries the agent should match. The artifact does not exist yet — /nlpm:test reports RED with one failure: artifact not found.
GREEN — write the artifact. Create agents/my-agent.md with frontmatter (name, description, model, tools) and a body. The description must be specific enough that the listed trigger queries land on it. Re-run /nlpm:test: the agent now exists, the tester predicts triggers, and the spec passes.
REFACTOR — change the body, re-run the spec. Edit the artifact's behavior. The same spec runs unchanged; if a refactor breaks a trigger query or violates a handles_input case, the test goes RED. Fix forward, re-run.
This is the natural-language analogue of pytest or jest — specs are the contract; artifacts are the implementation.
This skill covers the spec format and runner contract for NL-TDD. For the
scoring rubric the tester compares against, see nlpm:scoring. For the
schemas of artifact frontmatter the spec checks, see nlpm:conventions.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).