| name | easyskillz-qa |
| description | Comprehensive QA workflow for easyskillz CLI - build, install locally, and test all flows. |
easyskillz-qa
Comprehensive QA workflow for easyskillz CLI - build, install locally, and test all flows.
Purpose
Automatically build the easyskillz package, install it in a temporary test environment, and run exhaustive tests covering:
- All command flows (skill, tool, project, docs domains)
- AI-first design principles (one-shot execution, AI detection)
- Error handling and edge cases
- Command design philosophy compliance
- User experience friction points
When to Use
Run this skill whenever:
- You've made changes to easyskillz and want to verify everything works
- Before publishing a new version
- After refactoring or adding new features
- When investigating bug reports
- To validate the entire user experience
Workflow
1. Build Package Locally
npm pack
This creates a tarball like easyskillz-2.0.0-alpha.4.tgz in the current directory.
2. Create Temporary Test Environment
mkdir -p .qa-temp/test-project
cd .qa-temp/test-project
npm init -y
echo "# Test Project" > CLAUDE.md
echo "# Test Project" > AGENTS.md
echo "root = true" > .cursorrules
3. Install Local Package
npm install -g ../../easyskillz-*.tgz
4. Test All Command Flows
A. Project Sync Flow (AI One-Shot)
Test: One-shot execution with all flags
easyskillz project sync --docs=yes --docs-strategy=unified --gitignore=full
Expected:
- ✅ No interactive prompts
- ✅ Detects tools (claude, codex, cursor)
- ✅ Creates
.easyskillz/ structure
- ✅ Wires skills via symlinks
- ✅ Centralizes docs to
.easyskillz/docs/
- ✅ Updates
.gitignore
- ✅ Exit code 0
Verify:
B. Project Sync Flow (Interactive - Human)
Test: Interactive prompts for humans
rm .easyskillz/easyskillz.json
echo -e "y\n1\n1\n" | easyskillz project sync
Expected:
- ✅ Prompts: "Manage instruction files? [Y/n]"
- ✅ Prompts: "Strategy? [1=unified, 2=tool-specific]"
- ✅ Prompts: "Gitignore strategy? [1=full, 2=conflict-only, 3=none]"
- ✅ Same outcome as one-shot
Verify:
C. Skill Management Flow
Test: Add skill
easyskillz skill add test-skill
Expected:
- ✅ Creates
.easyskillz/skills/test-skill/SKILL.md
- ✅ Wires to all registered tools
- ✅ Shows confirmation message
Verify:
Test: List skills
easyskillz skill list
Expected:
- ✅ Shows
test-skill in active skills
- ✅ Shows meta-skills (easyskillz-reference, etc.)
Test: Deactivate skill
easyskillz skill deactivate test-skill
Expected:
- ✅ Renames to
.test-skill.disabled
- ✅ Removes symlinks from tools
- ✅ Shows restore command
Verify:
Test: Activate skill
easyskillz skill activate test-skill
Expected:
- ✅ Restores from
.test-skill.disabled to test-skill
- ✅ Re-wires symlinks
Test: Remove skill (AI mode - requires --confirm)
easyskillz skill remove test-skill --confirm
Expected:
- ✅ Permanently deletes skill
- ✅ No prompts (flag provided)
- ✅ Removes all symlinks
Verify:
D. Tool Management Flow
Test: List tools
easyskillz tool list
Expected:
- ✅ Shows registered tools (claude, codex, cursor)
Test: Register new tool
easyskillz tool register windsurf
Expected:
- ✅ Adds to config
- ✅ Wires all existing skills
- ✅ Updates instruction file
- ✅ Updates .gitignore
Test: Unregister tool (AI mode)
easyskillz tool unregister windsurf --mode=revert --confirm
Expected:
- ✅ Removes from config
- ✅ Keeps tool directory (revert mode)
- ✅ No prompts
Test: Unregister tool (full delete)
easyskillz tool register windsurf
easyskillz tool unregister windsurf --mode=full --confirm
Expected:
- ✅ Removes from config
- ✅ Deletes tool directory
E. Docs Management Flow
Test: List docs
easyskillz docs list
Expected:
- ✅ Shows centralized instruction files
- ✅ Shows strategy (unified or tool-specific)
Test: Sync docs
echo "# New Doc" > NEW_INSTRUCTION.md
easyskillz docs sync
Expected:
- ✅ Detects new file
- ✅ Centralizes to
.easyskillz/docs/
F. JSON Output Flow
Test: All commands with --json flag
easyskillz skill list --json
easyskillz tool list --json
easyskillz docs list --json
Expected:
- ✅ Valid JSON output
- ✅ Contains
ok: true field
- ✅ Contains relevant data
Verify:
G. Error Handling Flow
Test: Missing required arguments
easyskillz skill add
easyskillz skill remove
easyskillz tool register
Expected:
- ✅ Clear error message
- ✅ Shows usage
- ✅ Exit code 1
Test: Invalid flag values
easyskillz project sync --docs=invalid
easyskillz project sync --docs-strategy=invalid
easyskillz project sync --gitignore=invalid
Expected:
- ✅ Clear error message
- ✅ Shows valid options
Test: Missing flags in one-shot mode
easyskillz project sync --docs=yes
Expected:
- ✅ Error: "Missing required flags"
- ✅ Shows which flags are required
Test: Non-existent skill/tool
easyskillz skill remove nonexistent --confirm
easyskillz skill activate nonexistent
easyskillz tool unregister nonexistent --mode=full --confirm
Expected:
- ✅ Clear error: "not found"
- ✅ Exit code 1
H. AI Detection Flow
Test: Simulate AI agent (set environment variable)
WINDSURF_CASCADE_TERMINAL=1 easyskillz skill remove test-skill
Expected:
- ✅ Shows AI warning
- ✅ Explains what to do
- ✅ Shows questions to ask user
- ✅ Shows flag explanations
- ✅ Shows recommended command
- ✅ Exit code 1 (blocked)
Test: AI with flags (should work)
WINDSURF_CASCADE_TERMINAL=1 easyskillz skill add ai-test-skill
WINDSURF_CASCADE_TERMINAL=1 easyskillz skill remove ai-test-skill --confirm
Expected:
- ✅ No AI warning (flags provided)
- ✅ Executes successfully
I. Help System Flow
Test: Top-level help
easyskillz
easyskillz --help
Expected:
- ✅ Shows domain-based structure
- ✅ Lists all domains
- ✅ Shows examples
- ✅ Shows supported tools
Test: Domain help (future enhancement)
easyskillz skill --help
easyskillz tool --help
easyskillz project --help
Expected:
- ✅ Shows domain-specific commands
- ✅ Shows flags for each command
5. Philosophy Compliance Checks
A. AI-First Design
B. Domain-Based Organization
C. Destructive Operations
D. Error Messages
E. Flag Consistency
6. Friction Points Check
Look for:
7. Report Generation
Create a report file: .qa-temp/qa-report.md
# QA Report - easyskillz v{version}
**Date:** {date}
**Tester:** AI Agent
**Environment:** {OS}, Node {version}
## Summary
- ✅ Passed: X tests
- ❌ Failed: Y tests
- ⚠️ Warnings: Z issues
## Test Results
### Project Sync Flow
- [✅/❌] One-shot execution
- [✅/❌] Interactive mode
- [✅/❌] Config creation
- [✅/❌] Docs centralization
- [✅/❌] Gitignore update
### Skill Management Flow
- [✅/❌] Add skill
- [✅/❌] List skills
- [✅/❌] Deactivate skill
- [✅/❌] Activate skill
- [✅/❌] Remove skill
### Tool Management Flow
- [✅/❌] List tools
- [✅/❌] Register tool
- [✅/❌] Unregister tool (revert)
- [✅/❌] Unregister tool (full)
### Docs Management Flow
- [✅/❌] List docs
- [✅/❌] Sync docs
### Error Handling
- [✅/❌] Missing arguments
- [✅/❌] Invalid flags
- [✅/❌] Non-existent resources
### AI Detection
- [✅/❌] Blocks interactive mode
- [✅/❌] Shows helpful warnings
- [✅/❌] Allows one-shot execution
## Bugs Found
1. **Bug Title**
- **Severity:** Critical/High/Medium/Low
- **Command:** `easyskillz ...`
- **Expected:** ...
- **Actual:** ...
- **Steps to Reproduce:** ...
## Philosophy Violations
1. **Violation Title**
- **Principle:** AI-First/Domain-Based/etc.
- **Issue:** ...
- **Recommendation:** ...
## Friction Points
1. **Friction Title**
- **Where:** Command/Flow
- **Issue:** ...
- **Impact:** User confusion/Extra steps/etc.
- **Suggestion:** ...
## Recommendations
- [ ] Fix critical bugs before release
- [ ] Update documentation for X
- [ ] Improve error message for Y
- [ ] Add missing flag for Z
8. Cleanup
npm uninstall -g easyskillz
cd ../..
Success Criteria
✅ All tests pass - No critical bugs
✅ Philosophy compliance - All principles followed
✅ No friction - Smooth user experience
✅ AI-first works - One-shot execution for all flows
✅ Error handling - Clear, helpful messages
✅ Documentation accurate - Examples work as shown
Notes
- The
.qa-temp/ directory is gitignored automatically
- Run this skill before every release
- Update this skill when adding new commands
- Test on multiple OS (Windows, macOS, Linux) if possible
- Test with different Node versions if possible
Example Invocation
easyskillz skill add easyskillz-qa
The AI will execute all tests, catch bugs, identify philosophy violations, and report friction points.