| name | looplia-e2e |
| description | End-to-end testing for looplia CLI from local source. Builds the CLI,
initializes workspace, runs the writing-kit workflow, and verifies outputs.
Use when testing local development or validating workflow execution.
|
| license | MIT |
| compatibility | Requires jq and bun. Works with Claude Code. |
| metadata | {"author":"looplia","version":"0.8.0"} |
Looplia E2E Test Skill
End-to-end testing for looplia CLI from local source.
Quick Start
echo "ZENMUX_API_KEY=your-key" >> .env
.claude/skills/looplia-e2e/scripts/e2e.sh
Running inside Claude Code? Use env -u CLAUDECODE to allow the CLI to spawn a
nested Claude Code subprocess. The CLAUDECODE env var is set by the outer session
and blocks any nested claude invocations:
env -u CLAUDECODE .claude/skills/looplia-e2e/scripts/e2e.sh
The scripts internally unset CLAUDECODE in setup_test_env(), so this is only
needed if you call e2e.sh directly (not via the looplia-e2e skill invocation).
Modular Test Scripts (v0.8.0)
The E2E tests are modular and can be run individually:
Run All Tests
.claude/skills/looplia-e2e/scripts/e2e.sh
Run Specific Tests
./scripts/e2e.sh --test auto
./scripts/e2e.sh --test workflow
./scripts/e2e-auto-discovery.sh
Test Isolation
Tests use LOOPLIA_HOME to isolate from your real workspace:
- Test workspace:
<project>/test-workspace/
- Your workspace:
~/.looplia/ (untouched)
What It Tests
The script performs these steps:
- Build - Compiles the CLI from source
- Reset - Removes test workspace for fresh start
- Init - Initializes workspace with plugins
- Configure - Sets provider to ZenMux MiniMax M2.5
- Build Command - Tests workflow generation with auto-discovery (HN AI news aggregator)
- Run Command - Executes writing-kit workflow with ai-healthcare.md
- Verify - Checks outputs, validation state, and auto-discovery results
Expected Outputs
Build command:
test-workspace/workflows/e2e-auto-discovery-test.md # Generated workflow file
test-workspace/sandbox/build-<id>/
├── validation.json # workflowValidated: true
└── logs/
└── *.log # Execution logs
test-workspace/plugins/auto-discovery-plugin/
├── .claude-plugin/ # Plugin initialized
└── skills/ # Auto-discovered skills
Run command:
test-workspace/sandbox/<run-id>/
├── outputs/
│ ├── summary.json # Stage 1: Content analysis
│ ├── ideas.json # Stage 2: Idea generation
│ └── writing-kit.json # Stage 3: Final output
├── validation.json # All steps validated: true
└── logs/
└── *.log # Execution logs
Success Criteria
Auto-discovery test:
- Workflow file created at
test-workspace/workflows/e2e-auto-discovery-test.md
- validation.json shows
workflowValidated: true
- Auto-discovery plugin initialized
- Skills discovered and cataloged (external dependency)
Workflow test:
- 3 output files created (summary.json, ideas.json, writing-kit.json)
- All 3 steps validated in validation.json
- Final output writing-kit.json exists
Troubleshooting
Transient API errors (retry usually works):
The ZenMux provider may occasionally return transient errors like "duplicate tool_call id".
This is a provider-side issue, not a workflow bug. Simply run the test again:
.claude/skills/looplia-e2e/scripts/e2e.sh
API key issues:
cat .env | grep ZENMUX_API_KEY
Workspace issues:
rm -rf test-workspace && looplia init --yes
Build issues:
rm -rf apps/cli/dist && bun run build
File Structure
.claude/skills/looplia-e2e/
├── SKILL.md # This file
├── scripts/
│ ├── e2e-setup.sh # Shared setup/cleanup
│ ├── e2e-auto-discovery.sh # Auto-discovery focused test
│ └── e2e.sh # Orchestrator (runs all tests)
└── assets/
└── ai-healthcare.md # Test content fixture