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.
End-to-end testing for looplia CLI from local source.
# Set API key in .env
echo "ZENMUX_API_KEY=your-key" >> .env
# Run E2E test
.claude/skills/looplia-e2e/scripts/e2e.sh
Running inside Claude Code? Use
env -u CLAUDECODEto allow the CLI to spawn a nested Claude Code subprocess. TheCLAUDECODEenv var is set by the outer session and blocks any nestedclaudeinvocations:env -u CLAUDECODE .claude/skills/looplia-e2e/scripts/e2e.shThe scripts internally
unset CLAUDECODEinsetup_test_env(), so this is only needed if you calle2e.shdirectly (not via thelooplia-e2eskill invocation).
The E2E tests are modular and can be run individually:
.claude/skills/looplia-e2e/scripts/e2e.sh
# Auto-discovery only
./scripts/e2e.sh --test auto
# Workflow execution only
./scripts/e2e.sh --test workflow
# Or run directly
./scripts/e2e-auto-discovery.sh
Tests use LOOPLIA_HOME to isolate from your real workspace:
<project>/test-workspace/~/.looplia/ (untouched)The script performs these steps:
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
Auto-discovery test:
test-workspace/workflows/e2e-auto-discovery-test.mdworkflowValidated: trueWorkflow test:
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:
# Just retry - second run usually succeeds
.claude/skills/looplia-e2e/scripts/e2e.sh
API key issues:
# Verify .env exists and contains ZENMUX_API_KEY
cat .env | grep ZENMUX_API_KEY
Workspace issues:
# Manual reset (test workspace only)
rm -rf test-workspace && looplia init --yes
Build issues:
# Clean rebuild
rm -rf apps/cli/dist && bun run build
.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
npx skills add memorysaver/looplia-e2e下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer