跳到正文
cccskills
免费在 GitHub 公开

testing

Use when testing a bundle-plugin locally before release — generating dev-marketplace environments, verifying component discovery, running hook smoke tests, and validating cross-platform readiness

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md7.2 KB
  • references/platform-test-guides.md4.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Testing Bundle-Plugins

Overview

Dynamic verification of a bundle-plugin project: install it locally, confirm components are discoverable, validate hooks fire correctly, and run cross-platform smoke tests. Complements bundles-forge:auditing (static analysis) with runtime validation.

Core principle: Audit tells you if the structure is correct; testing tells you if it actually works.

Skill type: Flexible — adapt the test scope based on target platforms and project maturity.

Announce at start: "I'm using the testing skill to verify this plugin works correctly."

Step 1: Resolve Input & Detect Scope

Input Normalization

The target must be a local bundle-plugin project (has package.json + skills/). Remote URLs and archives are not supported — testing requires a local working directory.

Scope Detection

TargetMode
Project root with multiple platformsFull testing — all 5 test phases
Project root with single platformPlatform testing — phases 1-4 for the target platform
Single skill directorySkill-only testing — phase 3 (component discovery) only

Phase 1: Local Test Environment

Generate a temporary dev-marketplace for local installation testing.

For Claude Code

  1. Create ../dev-marketplace/ adjacent to the project directory
  2. Generate .claude-plugin/marketplace.json pointing to the project:
{
  "name": "<project-name>-dev",
  "owner": { "name": "dev" },
  "plugins": [
    {
      "name": "<project-name>",
      "source": "../<project-directory-name>"
    }
  ]
}
  1. Instruct the user:
Dev marketplace created at ../dev-marketplace/

To install locally:
  /plugin marketplace add ./dev-marketplace
  /plugin install <project-name>@<project-name>-dev

To reload after changes:
  /plugin marketplace update <project-name>-dev

To clean up when done:
  /plugin marketplace remove <project-name>-dev

For Cursor

Cursor plugins are installed from local paths directly:

To test locally in Cursor:
  1. Open Cursor Settings → Extensions → Install from Path
  2. Select the project root directory
  3. Reload Cursor to pick up changes

For Other Platforms

  • Codex: Symlink skills/ into ~/.agents/skills/ per INSTALL.md
  • OpenCode: Register the plugin path in .opencode/plugins/
  • Gemini CLI: Point the extension config to the local directory

See references/platform-test-guides.md for platform-specific setup instructions.


Phase 2: Hook Smoke Tests

Verify hooks execute without errors by running them directly.

SessionStart Hook

bash hooks/session-start

Expected: Exits 0, prints a one-line prompt containing the project name and available skills. No stderr output.

Verify output format:

  • If CLAUDE_PLUGIN_ROOT is set: valid JSON with hookSpecificOutput.additionalContext
  • If CURSOR_PLUGIN_ROOT is set: valid JSON with additional_context
  • Neither: plain text

Custom Hooks (if configured)

If the project defines PreToolUse or PostToolUse hooks in hooks.json, run each referenced script directly and verify:

  • PreToolUse scripts: exit 0 on a valid project, exit 2 to block writes on critical issues
  • PostToolUse scripts: always exit 0, warnings go to stderr

OpenClaw Hook-Pack (if present)

Verify hooks/openclaw-bootstrap/HOOK.md has valid YAML frontmatter with events declaration, and handler.js uses ESM export default.


Phase 3: Component Discovery

Verify that all declared components can be found by the host platform.

Skills

For each directory under skills/:

  • Contains SKILL.md
  • Frontmatter has name and description
  • name matches directory name
  • description starts with "Use when..."

Agents

For each .md file under agents/:

  • Has YAML frontmatter
  • Body has 5+ non-empty lines (self-contained protocol)

Platform Manifests

For each target platform:

  • Manifest file exists and is valid JSON
  • Paths in manifest resolve to existing files/directories
  • Version matches package.json version

Phase 4: Cross-Platform Readiness

Generate a platform-specific test checklist based on references/platform-test-guides.md and known limitations from bundles-forge:scaffolding — references/platform-adapters.md.

Known Limitations to Verify

PlatformLimitationTest
Claude CodePlugin caching breaks ../ pathsVerify no ../ in hook commands or manifest paths
CursorBootstrap lost after /clearVerify session-start runs independently of prior context
CodexNo hook bootstrapVerify AGENTS.md or INSTALL.md has manual setup instructions
OpenCodePlugin JS must use ESMVerify export default in .opencode/plugins/*.js
Gemini CLIExtension needs contextFileNameVerify gemini-extension.json has contextFileName field
OpenClawHook-pack wiring uncertainDocument as known risk in test report

Phase 5: Test Report

Generate a test report summarizing all findings.

Report Structure

# Test Report: <project-name>

**Date:** YYYY-MM-DD
**Scope:** [Full / Platform / Skill-only]
**Platforms tested:** [list]

## Results

| Phase | Status | Details |
|-------|--------|---------|
| 1. Local Environment | PASS/FAIL/SKIP | ... |
| 2. Hook Smoke Tests | PASS/FAIL/SKIP | ... |
| 3. Component Discovery | PASS/FAIL/SKIP | N skills, K agents |
| 4. Cross-Platform | PASS/FAIL/SKIP | ... |

## Issues Found

### Critical
- (blocks release)

### Warnings
- (should fix before release)

## Recommendations

- ...

Report location: .bundles-forge/audits/<timestamp>-test-report.md


Integration with Releasing

In the releasing pipeline, testing runs after auditing and before version bump:

audit → test → version bump → publish

If testing reveals critical issues, the release pipeline is blocked until they are resolved.


Common Mistakes

MistakeFix
Skipping local install testAlways test with a real dev-marketplace — file discovery differs from file existence
Testing only on one platformRun cross-platform checklist for every target platform
Ignoring hook exit codesHooks must exit 0 to avoid blocking the host; test all code paths
Not cleaning up dev-marketplaceAlways remove dev-marketplace after testing
Testing after version bumpTest before bumping — avoid releasing a broken version

Inputs

  • project-directory (required) — bundle-plugin project root

Outputs

  • test-report — comprehensive test results written to .bundles-forge/audits/
  • dev-marketplace (temporary) — local marketplace directory for installation testing

Integration

Called by:

  • bundles-forge:releasing — pre-release dynamic verification (after audit, before version bump)
  • User directly — standalone local testing during development

Calls:

  • (none — testing is a pure executor, does not dispatch other skills)

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

auditing

免费

Use when reviewing a bundle-plugin for structural issues, version drift, skill quality, workflow integration, or security risks — before releasing, after changes, or after adding skills. Auto-detects scope (full project vs skill vs workflow)

中文简介正在准备中。当前显示原文说明。

OdradekAI/bundles-forge2282026年4月27日 更新

authoring

免费

Use when writing, completing, improving, or adapting SKILL.md and agents/*.md in a bundle-plugin — integrating external skills, filling scaffolded stubs, or rewriting for better triggering and token efficiency

中文简介正在准备中。当前显示原文说明。

OdradekAI/bundles-forge2282026年4月27日 更新

Use when planning new bundle-plugins, splitting complex skills, combining skills into bundles, or exploring a vague idea about packaging skills

中文简介正在准备中。当前显示原文说明。

OdradekAI/bundles-forge2282026年4月27日 更新

Use when optimizing a bundle-plugin or single skill — improving descriptions, reducing tokens, fixing audit findings, restructuring workflows, adding skills to fill gaps, or iterating on user feedback

中文简介正在准备中。当前显示原文说明。

OdradekAI/bundles-forge2282026年4月27日 更新

releasing

免费

Use when releasing a bundle-plugin, bumping versions, fixing version drift across manifests, setting up version sync infrastructure, updating CHANGELOG, publishing to marketplaces, or checking release readiness

中文简介正在准备中。当前显示原文说明。

OdradekAI/bundles-forge2282026年4月27日 更新

Use when generating project structure for new bundle-plugins, adding or removing platform support (Claude Code, Cursor, Codex, OpenCode, Gemini CLI, OpenClaw), updating platform manifests, or migrating hooks and configuration between platforms

中文简介正在准备中。当前显示原文说明。

OdradekAI/bundles-forge2282026年4月27日 更新

查看 OdradekAI 的全部技能

报告此技能的问题