agentsclimarketplace

Test feature local

Skill multiplex-ai/muggle-ai-teams/skills/test-feature-local

Test a feature locally using Muggle AI local MCP. Handles the full flow of listing/creating projects, use cases, and test cases, then generates or replays test scripts. Supports pulling test artifacts from cloud and rewriting URLs for local testing.From its SKILL.md

Install
npx -y skills add multiplex-ai/muggle-ai-teams --skill test-feature-local

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

17.2 KB, ~4.3k tokens by cl100k_base, as published. Nobody here has run it

Test Feature Locally

Test a feature on a local web application using Muggle AI local MCP tools.

Workflow Overview

Login (required) → Authenticate with Muggle AI
      ↓
List Sources (merged) → Present unified local+cloud projects
      ↓
Select Project → User chooses project
      ↓
Sync Local Copy → Pull latest from cloud if both exist
      ↓
Analyze Changes (optional) → Identify impacted features
      ↓
List Use Cases → Find/Create/Pull Use Case(s)
      ↓
List Test Cases → Find/Create/Pull Test Case(s)
      ↓
List Test Scripts → Generate (if none) or Replay (if exists)

Prerequisites

  • Local MCP server running
  • Target web application running (e.g., http://localhost:3999)
  • User describes the feature to test OR has code changes to analyze

Mandatory Result Format (Paths + IDs)

For every Local MCP tool result you report to the user, include:

  1. Result: concise summary of pass/fail or key output
  2. Local File Path(s): paths returned by MCP output
  3. IDs: relevant IDs (project/use case/test case/test script/run)
  4. Path Availability:
    • If MCP returns path(s): mark as reported
    • If path(s) are computed from IDs/input: mark as derived
    • If no path can be obtained: explicitly state path not exposed by MCP output

Never omit this section when presenting Local MCP output.

Hard-Fail Policy (No Browser Fallback)

This skill is Local MCP only. If Local MCP tools are unavailable or a required Local MCP step fails, stop and fail this workflow.

Do not fall back to generic browser testing features/tools to continue execution.

When failing, clearly report:

  1. Which Local MCP step/tool failed
  2. The error message
  3. What user action is needed (for example, start Local MCP, fix auth, or run local app)

Step 0: Login (Required)

Always start by ensuring the user is authenticated. This is mandatory before any testing can begin.

Check Authentication Status

Call muggle_auth_status to check if user is already logged in.

If Not Authenticated

  1. Inform user: "You need to log in to Muggle AI to start testing."
  2. Call muggle_auth_login to initiate the login flow
  3. Wait for authentication to complete
  4. Confirm: "Logged in as [email]. Ready to proceed."

If Already Authenticated

Confirm: "Already logged in as [email]. Let's continue."

Important: Do NOT proceed to any other steps until authentication is confirmed.

Step 1: List All Sources (Local + Cloud)

Always present both local and cloud projects for the user to choose from, with matching projects merged.

List Both Sources

  1. Call muggle_project_list to see existing local projects
  2. Call muggle_cloud_project_list to list cloud projects

Merge Matching Projects

Projects are considered matching when:

  • Local project has cloudSource.projectId matching a cloud project ID
  • OR local project name matches cloud project name (case-insensitive)

Present Unified List

Present projects in a merged format - matching local/cloud projects appear as ONE entry:

Logged in as: [email protected]

PROJECTS:
| # | Name | Local | Cloud | Local URL |
|---|------|-------|-------|-----------|
| 1 | MuggleTest Staging | Yes | Yes | http://localhost:3999 |
| 2 | Admin Portal | No | Yes | - |
| 3 | My Local App | Yes | No | http://localhost:3000 |

Options:
  - Enter a number to use that project
  - Type "new" to create a new project

Column meanings:

  • Local: "Yes" if local copy exists
  • Cloud: "Yes" if cloud version exists
  • Local URL: The localhost URL for testing (or "-" if needs to be set)

User Selection Logic

SelectionLocal?Cloud?Action
NumberYesYesSync first: Pull latest from cloud, then use local
NumberYesNoUse existing local project
NumberNoYesPrompt for localhost URL, pull to local
"new"--Create new local project

Sync Before Testing (Critical)

When a project has both local AND cloud versions, always sync before testing:

  1. Inform user: "Syncing local copy with cloud..."
  2. Call muggle_cloud_pull_project with the cloud project ID and existing local URL
  3. This updates use cases and test cases to match cloud
  4. Confirm: "Local copy synced. Ready to test."

Important: Always wait for user to select a project before proceeding.

Step 2: Analyze Current Changes (Optional but Recommended)

When user asks to "test my changes" or doesn't specify a feature, analyze the codebase changes first.

Gather Change Context

Run these commands to understand what changed:

git status
git diff
git diff --cached
git log -3 --oneline

Identify Impacted Features

From the changes, extract:

  1. Modified components/pages: Which UI components or pages changed?
  2. Modified API endpoints: Which backend routes are affected?
  3. Modified services/logic: What business logic changed?

Map Changes to Test Areas

Change TypeLikely Impacted Tests
Login/auth filesAuthentication use cases
User profile filesUser management use cases
Form componentsData input/validation test cases
API route handlersCRUD operation test cases
Navigation/routingNavigation flow use cases
Payment/checkoutTransaction test cases

Present Findings to User

After analysis, summarize:

  1. What files changed
  2. What features are likely impacted
  3. Suggested use cases/test cases to run

Example output:

Based on your changes:
- Modified: src/components/LoginForm.tsx, src/api/auth.ts
- Impacted features: User authentication, session management
- Suggested tests:
  1. "User can log in with valid credentials"
  2. "User sees error with invalid password"
  3. "User can reset password"

Which test(s) would you like to run?

Step 3: Pull from Cloud (If Selected)

When user selects a cloud project, use case, or test case:

Prompt for Local Testing URL

You selected a cloud project with URL: https://app.example.com

What localhost URL should be used for local testing?
(e.g., http://localhost:3000, http://localhost:3999)

Pull and Rewrite URL

Call muggle_cloud_pull_project with:

{
  "cloudProjectId": "<cloud_project_id>",
  "localUrl": "<user_provided_localhost_url>"
}

What happens:

  1. Downloads project metadata from cloud
  2. Stores originalUrl field with the cloud URL (e.g., https://app.example.com)
  3. Rewrites url field to localhost URL (e.g., http://localhost:3000)
  4. Creates local copies of use cases and test cases with same URL rewriting
  5. Tracks cloudSource mapping for future sync

URL Rewriting Rules

FieldOriginal (Cloud)Rewritten (Local)
project.urlhttps://app.example.comhttp://localhost:3000
project.originalUrl(none)https://app.example.com
testCase.urlhttps://app.example.com/loginhttp://localhost:3000/login
testCase.originalUrl(none)https://app.example.com/login

Path preservation: When rewriting URLs, preserve the path portion:

  • https://app.example.com/dashboard → http://localhost:3000/dashboard
  • https://app.example.com/users/123 → http://localhost:3000/users/123

Step 4: Identify or Create Project

If not pulling from cloud, find or create a local project.

Call muggle_project_list to see existing projects.

Match logic:

  • Match by URL (exact or base domain match)
  • Match by project name (case-insensitive contains)

If match found: Use existing project, confirm with user.

If no match: Call muggle_project_create with:

  • name: Derived from app name or URL
  • url: The localhost URL
  • description: Brief description of the app

Step 5: Identify or Create Use Case(s)

Call muggle_use_case_list with the projectId.

Match logic:

  • Match by goal/title containing key terms from user's feature description
  • Match against impacted features from change analysis (Step 0)
  • Look for similar user personas

If multiple matches found:

  1. List all matching use cases with brief descriptions
  2. Ask user: "Found N use cases that may be impacted. Which would you like to test?"
  3. Allow selecting multiple (e.g., "all", "1,2,3", or specific names)

If single match found: Confirm with user, use existing.

If no match: Call muggle_use_case_save with:

{
  "projectId": "<projectId>",
  "useCase": {
    "title": "<Feature name>",
    "userStory": "<As a user, I want to...>",
    "description": "<Detailed description>",
    "breakdownItems": [{"stepNumber": 1, "action": "...", "expected": "..."}]
  }
}

Step 6: Identify or Create Test Case(s)

Call muggle_test_case_list with projectId and optionally useCaseId.

Match logic:

  • Match by title or goal containing feature keywords
  • Match against impacted features from change analysis (Step 0)
  • Match by URL if provided
  • For each selected use case, find associated test cases

If multiple matches found:

  1. List all matching test cases grouped by use case
  2. Show which are likely impacted based on change analysis
  3. Ask user: "Found N test cases. Run all impacted, or select specific ones?"
  4. Options: "all", "impacted only", or specific IDs

Example output:

Found test cases:

Use Case: User Authentication
  [IMPACTED] tc_001 - Login with valid credentials (login form changed)
  [IMPACTED] tc_002 - Login with invalid password
  [ ] tc_003 - Remember me functionality

Use Case: User Profile
  [ ] tc_004 - Update display name

Run: [all impacted] [all] [select specific]?

If single match found: Confirm with user, use existing.

If no match: Call muggle_test_case_save with:

{
  "projectId": "<projectId>",
  "useCaseId": "<useCaseId>",
  "testCase": {
    "title": "<Test case name>",
    "goal": "<What this test verifies>",
    "url": "<Starting URL - use localhost>",
    "precondition": "<Any setup needed>",
    "instructions": "<Step-by-step instructions>",
    "expectedResult": "<What should happen>"
  }
}

Step 7: Generate or Replay Test Script(s)

For each selected test case, call muggle_test_script_list with projectId and testCaseId.

For multiple test cases:

Process each test case and categorize:

Test execution plan:
  REPLAY (script exists):
    - tc_001: Login with valid credentials
    - tc_002: Login with invalid password
  
  GENERATE (no script):
    - tc_005: New password reset flow

Proceed? [yes/no]

If test script exists:

  1. Confirm with user: "Found existing test script. Replay it?"
  2. If yes, call muggle_execute_replay:
    {
      "projectId": "<projectId>",
      "testScriptId": "<testScriptId>"
    }
    
  3. Report results from the execution

If no test script:

  1. Inform user: "No test script found. Generating one..."
  2. Call muggle_execute_test_generation:
    {
      "projectId": "<projectId>",
      "testCaseId": "<testCaseId>"
    }
    
  3. Wait for generation to complete
  4. Report the generated script details

Batch Execution Order

When running multiple tests:

  1. Replay existing scripts first (faster, validates current behavior)
  2. Generate new scripts after (slower, may need user observation)
  3. Track results for each test case

Step 8: View Results

After execution, call muggle_run_result_list or muggle_run_result_get to show:

  • Pass/fail status
  • Screenshots captured
  • Execution time
  • Any errors encountered

For Multiple Tests - Summary Report

After running multiple tests, provide a summary:

Test Run Summary
================
Total: 4 tests
Passed: 3
Failed: 1

Results:
  [PASS] tc_001 - Login with valid credentials (2.3s)
  [PASS] tc_002 - Login with invalid password (1.8s)
  [FAIL] tc_003 - Remember me functionality (3.1s)
     Error: Checkbox not found on page
  [PASS] tc_005 - Password reset flow (4.2s) [newly generated]

Failed test details:
  tc_003: Element '#remember-me' not found. 
          Screenshot: run_xxx/step_3.png

Suggested Next Actions

Based on results:

ResultSuggested Action
All passed"All tests passed. Ready to commit?"
Some failed"N tests failed. Review failures or re-run?"
New scripts generated"N new scripts created. Replay to verify?"

Example Interactions

Example 1: Test with Existing Synced Project

User: "Test the login feature at localhost:3999"

Agent:

  1. muggle_auth_status → Not authenticated
  2. muggle_auth_login → User completes login
  3. Confirm: "Logged in as [email protected]"
  4. muggle_project_list → Found 1 local project (MuggleTest Staging)
  5. muggle_cloud_project_list → Found cloud project with same name
  6. Present merged list:
    | # | Name | Local | Cloud | Local URL |
    |---|------|-------|-------|-----------|
    | 1 | MuggleTest Staging | Yes | Yes | http://localhost:3999 |
    | 2 | Other App | No | Yes | - |
    
  7. User: "1"
  8. Sync: "Syncing local copy with cloud..."
  9. muggle_cloud_pull_project → Updates local with latest from cloud
  10. Confirm: "Local copy synced. Ready to test."
  11. muggle_use_case_list → Found "User Authentication"
  12. muggle_test_case_list → Found 3 test cases
  13. Run tests against localhost:3999

Example 2: Test Based on Code Changes

User: "Test my changes"

Agent:

  1. muggle_auth_status → Authenticated as [email protected]
  2. Confirm: "Already logged in. Let's continue."
  3. muggle_project_list → Found 1 local project
  4. muggle_cloud_project_list → Found 3 cloud projects
  5. Present combined list: "Which project to use?"
  6. User: "1" (selects local project)
  7. git status → Modified: LoginForm.tsx, AuthService.ts
  8. git diff → Analyze changes (added error handling, updated validation)
  9. muggle_use_case_list → Found 5 use cases
  10. Present: "Your changes affect authentication. Found 2 related use cases:
    • User Authentication (3 test cases)
    • Password Reset (2 test cases) Which to test?"
  11. User: "all"
  12. muggle_test_case_list → 5 test cases total
  13. muggle_test_script_list for each → 4 have scripts, 1 doesn't
  14. Present execution plan, user confirms
  15. Run 4 replays, 1 generation
  16. Report summary: "4 passed, 1 new script generated"

Example 3: Create New Test

User: "Test the login flow on my app at localhost:3000"

Agent:

  1. muggle_auth_status → Not authenticated
  2. muggle_auth_login → User completes login
  3. Confirm: "Logged in as [email protected]"
  4. muggle_project_list → No local projects
  5. muggle_cloud_project_list → Found 1 cloud project (different app)
  6. Present list: "No matching projects found. Create new?"
  7. User: "new"
  8. muggle_project_create with name "Local App", url "http://localhost:3000"
  9. muggle_use_case_save with goal "User can log in to the application"
  10. muggle_test_case_save with login test details
  11. muggle_test_script_list → Empty
  12. muggle_execute_test_generation → Generates script
  13. Report: "Test script generated with 5 steps. Ready to replay."

Quick Reference

ActionTool/Command
Check auth statusmuggle_auth_status
Loginmuggle_auth_login
List local projectsmuggle_project_list
List cloud projectsmuggle_cloud_project_list
Analyze changesgit status, git diff
Pull project from cloudmuggle_cloud_pull_project
Pull use case from cloudmuggle_cloud_pull_use_case
Pull test case from cloudmuggle_cloud_pull_test_case
Create projectmuggle_project_create
List use casesmuggle_use_case_list
Create use casemuggle_use_case_save
List test casesmuggle_test_case_list
Create test casemuggle_test_case_save
List test scriptsmuggle_test_script_list
Generate scriptmuggle_execute_test_generation
Replay scriptmuggle_execute_replay
View resultsmuggle_run_result_get
List recent runsmuggle_run_result_list

Notes

  • Login required: Always authenticate the user first before any testing operations.
  • Project selection required: Always list both local and cloud projects, and wait for user to select one.
  • Merge matching projects: Local and cloud projects with the same name should appear as ONE entry.
  • Sync before testing: When a project has both local and cloud versions, always pull latest from cloud before testing.
  • URL rewriting: When pulling from cloud, rewrite URLs to localhost and store original URL.
  • Change-aware: When user says "test my changes", analyze git diff to identify impacted tests.
  • Batch execution: Can run multiple tests in sequence, with summary report.
  • No auto-publishing: This skill focuses on local testing only. Use publish-to-cloud skill separately.
  • Reuse entities: Always check for existing projects/use cases/test cases before creating new ones.
  • Confirm with user: When matches are ambiguous or multiple options exist, ask user to choose.
  • No browser fallback: If Local MCP flow cannot proceed, fail fast with clear remediation steps.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most test skills give in ~4.3k tokens

Counted across 1,201 of the 2,096 authors here whose files we hold, read 2026-09-06

  • Write a failing test before writing codein 43 of 1201, across 36 files
  • Run the full test suitein 36 of 1201, across 35 files
  • Test only one variable per experimentin 34 of 1201, across 17 files
  • Read product marketing context before asking questionsin 34 of 1201, across 14 files
  • Mock external dependenciesin 34 of 1201, across 30 files
  • Define primary, secondary, and guardrail metricsin 33 of 1201, across 16 files
  • Pre-determine sample size before startingin 31 of 1201, across 14 files
  • Test behavior rather than implementationin 31 of 1201, across 29 files
  • Formulate a hypothesis before designing a testin 30 of 1201, across 13 files
  • Document every test hypothesis, variant, and resultin 29 of 1201, across 11 files
  • Use descriptive test function namesin 25 of 1201, across 21 files
  • Commit to the methodology without stopping earlyin 24 of 1201, across 8 files

Said here and by no other author read

  • List both local and cloud projects for user selection
  • Sync local projects with cloud before testing
  • Analyze git changes to identify impacted features
  • Rewrite cloud URLs to localhost for local testing
  • Check for existing entities before creating new ones
  • Include result summary and file paths in all outputs

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.