AUTHORITATIVE REFERENCE for WebWorks AutoMap CLI. Use when working with .waj/.wep/.wrp/.wxsp files, executing builds, detecting installation, creating job files, or automating CI/CD publishing workflows.
npx claudepluginhub quadralay/webworks-claude-skills --plugin webworks-claude-skillsThis skill uses the workspace's default tool permissions.
<objective>
references/cli-reference.mdreferences/cli-vs-administrator.mdreferences/installation-detection.mdreferences/job-file-guide.mdscripts/automap-wrapper.shscripts/create-job.pyscripts/detect-installation.shscripts/lib/__init__.pyscripts/lib/constants.pyscripts/lib/logging.pyscripts/lib/validators.pyscripts/lib/xml_utils.pyscripts/list-job-targets.pyscripts/parse-job.pyscripts/parse-stationery.pyscripts/requirements.txtscripts/validate-job.pytests/sample.wajtests/sample.wxspCreates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Build automation for WebWorks ePublisher using AutoMap command-line interface. Execute builds, detect installations, and automate publishing workflows.
Do not use training data for ePublisher or AutoMap. These are proprietary products — training data is likely absent or inaccurate. Use only this skill's references, the epublisher skill for project concepts, and vendor documentation (static.webworks.com).
AutoMap is the command-line build tool for ePublisher. It processes source documents and generates output without requiring the GUI application.
-t option to specify which target(s) to build.build="True" attribute in the job file itself—the -t option is an optional override.Job files inherit format configuration from Stationery projects (.wxsp), enabling:
For job file details, see: references/job-file-guide.md
Always use the wrapper script to execute builds. The wrapper:
AUTOMAP_EXE_PATHDo NOT use detect-installation.sh to find the CLI path and call it directly. The wrapper is the execution interface.
<script_paths>
All scripts/ paths in this skill are relative to the skill's base directory (the directory containing this SKILL.md file). When the skill loads, the base directory is provided in the "Base directory for this skill" header.
When executing scripts, always use the full path from the base directory:
# Correct: use the skill's base directory
bash /path/to/automap/scripts/automap-wrapper.sh [options] /absolute/path/to/project.waj
# Wrong: assumes scripts/ exists in the current working directory
bash scripts/automap-wrapper.sh project.waj
Do NOT cd to a project directory before calling scripts. Pass project and job file paths as arguments — they can be absolute or relative to the current working directory. The wrapper resolves all paths internally.
</script_paths>
<related_skills>
| Skill | Relationship |
|---|---|
| epublisher | Use first to understand project structure, target names, and product foundations; see ../epublisher/references/product-foundations.md for cross-cutting product knowledge |
| reverb2 | Use after building Reverb output to test and customize |
</related_skills>
<quick_start>
Project files (.wep, .wrp) - Use -t to specify target:
# Build single target (safe defaults: clean, no-deploy, skip-reports)
bash scripts/automap-wrapper.sh -t "WebWorks Reverb 2.0" project.wep
# CI/CD: Build all targets explicitly
bash scripts/automap-wrapper.sh --all-targets project.wep
# Production: Deploy with reports
bash scripts/automap-wrapper.sh --deploy --with-reports -t "Target" project.wep
Job files (.waj) - Targets determined by build="True" in file:
# Build job file (targets set in file, no -t needed)
bash scripts/automap-wrapper.sh job.waj
# With deployment
bash scripts/automap-wrapper.sh -l -d /path/to/deploy job.waj
The wrapper automatically detects the AutoMap installation and applies safe defaults.
The wrapper now applies these options by default:
| Default | Opt-Out Flag | Description |
|---|---|---|
-c (clean) | --no-clean | Clean build for consistency |
-n (no deploy) | --deploy | Prevent accidental overwrites |
--skip-reports | --with-reports | Faster builds (2025.1+) |
When using project files (.wep, .wrp) with no target specified:
-t, --target=, or --all-targetsNote: Job files (.waj) do not need target selection options — see overview for details.
Use AUTOMAP_EXE_PATH to bypass auto-detection:
# Cache detected path for multiple builds
export AUTOMAP_EXE_PATH=$(bash scripts/detect-installation.sh)
# Or point to a development/debug build
export AUTOMAP_EXE_PATH="/c/builds/debug/net48/WebWorks.Automap.exe"
To check if AutoMap is installed and where:
bash scripts/detect-installation.sh --verbose
</quick_start>
<job_files>
Job files (.waj) are lean automation files that reference a Stationery project for format configuration.
To create a job file from scratch:
The skill will guide you through:
# Parse Stationery to see available formats and settings
python scripts/parse-stationery.py stationery.wxsp
# Create job file interactively
python scripts/create-job.py --stationery stationery.wxsp
# Create job from config file
python scripts/create-job.py --config config.json --output job.waj
# Generate a config template from Stationery
python scripts/create-job.py --template --stationery stationery.wxsp > template.json
# Parse job file to view configuration
python scripts/parse-job.py job.waj
# Export to editable config format
python scripts/parse-job.py --config job.waj > job-config.json
# Validate job file before building
python scripts/validate-job.py job.waj
# Validate with full checks
python scripts/validate-job.py --check-documents --check-stationery job.waj
# List targets with build status
python scripts/list-job-targets.py job.waj
# Show only enabled targets
python scripts/list-job-targets.py --enabled job.waj
Job files reference Stationery via <Project path="..."/>:
<cli_reference>
# Project files (.wep, .wrp) - target selection required
bash scripts/automap-wrapper.sh [options] <project-file> [-t <target-name>]
# Job files (.waj) - targets set in file (no -t needed)
bash scripts/automap-wrapper.sh [options] <job-file>
These options apply primarily to project files (.wep, .wrp). When used with job files, they override the build="True" settings.
| Option | Description |
|---|---|
-t <name> | Build single target |
--target=<name1>,<name2> | Build multiple specific targets |
--all-targets | Build all targets (bypasses interactive selection) |
| Option | Default | Opt-Out | Description |
|---|---|---|---|
-c, --clean | Enabled | --no-clean | Clean build |
-n, --nodeploy | Enabled | --deploy | Skip deployment |
--skip-reports | Enabled | --with-reports | Skip report pipelines (2025.1+) |
-l, --cleandeploy | Disabled | - | Clean deployment location |
| Option | Description |
|---|---|
--verbose | Show all build output (default: minimal) |
--deployfolder PATH | Override deployment destination |
For complete CLI reference with examples, see: references/cli-reference.md </cli_reference>
| Script | Purpose |
|---|---|
detect-installation.sh | Find AutoMap installation |
automap-wrapper.sh | Execute builds with error handling |
parse-stationery.py | Extract formats/settings from Stationery |
create-job.py | Create job files interactively or from config |
parse-job.py | Parse existing job files |
validate-job.py | Validate job files before building |
list-job-targets.py | List targets with build status |
bash scripts/detect-installation.sh
# Project files - use -t to specify targets
bash scripts/automap-wrapper.sh [options] <project-file> [-t <target-name>]
# Job files - targets set in file (no -t needed)
bash scripts/automap-wrapper.sh [options] <job-file>
Supports both project files (.wep, .wrp) and job files (.waj). For project files with multiple targets, use --target="Name1","Name2" or --all-targets.
cli-reference.md - Complete CLI options and syntaxcli-vs-administrator.md - When to use CLI vs GUIinstallation-detection.md - Installation paths and detection logicjob-file-guide.md - Job file structure and Stationery inheritance
Install required packages before using job file scripts:
pip install -r scripts/requirements.txt
Or install directly:
pip install defusedxml
<exit_codes>
| Code | Meaning |
|---|---|
| 0 | Build successful |
| 1 | Build failed |
| 2 | Invalid arguments / user cancelled |
| 3 | AutoMap not installed |
| 4 | Project file not found |
| </exit_codes> |
<common_workflows>
#!/bin/bash
# Project files: use --all-targets
if bash scripts/automap-wrapper.sh --all-targets project.wep; then
echo "Build successful"
else
echo "Build failed" && exit 1
fi
# Job files: targets set in file, no -t needed
if bash scripts/automap-wrapper.sh -l -d /deploy/path job.waj; then
echo "Build successful"
else
echo "Build failed" && exit 1
fi
# Cache installation path for efficiency
export AUTOMAP_EXE_PATH=$(bash scripts/detect-installation.sh)
for project in projects/*.wep; do
# --all-targets required in non-interactive (CI) mode
bash scripts/automap-wrapper.sh --all-targets "$project" || echo "Failed: $project"
done
# No target specified - prompts for selection if multiple targets exist
bash scripts/automap-wrapper.sh project.wep
# Incremental build (skip clean)
bash scripts/automap-wrapper.sh --no-clean -t "WebWorks Reverb 2.0" project.wep
</common_workflows>
<common_mistakes>
Do not call the AutoMap CLI directly. Always use automap-wrapper.sh, which handles installation detection, path conversion, safe defaults, and error handling. The detect-installation.sh script is for the wrapper's internal use and environment variable caching — not for building a manual CLI invocation.
Do not use -t with job files expecting it to work like project files. Job files (.waj) control which targets to build via build="True" attributes in the file itself. The -t option with job files is an override, not the primary mechanism. If a build seems to skip targets, check the job file's build attributes first.
Do not cd to a project directory before calling the wrapper. The wrapper accepts project file paths as arguments. Changing the working directory before calling the script causes scripts/automap-wrapper.sh to fail because scripts/ is relative to the skill directory, not the project directory. Always use the full path to the wrapper script.
</common_mistakes>
Cause: AutoMap not installed or not in expected location.
Solutions:
HKLM\SOFTWARE\WebWorks\ePublisher AutoMapC:\Program Files\WebWorks\ePublisher\[version]\--verbose flag for detailed detection outputCause: ePublisher build encountered errors.
Solutions:
-c (clean) flagCause: Specified target name doesn't exist in project.
Solutions:
parse-targets.py to list available targets<Format> elementsStationery not found
Error: Stationery file not found: ..\stationery\main.wxsp
<Project path="..."/> in job filepython scripts/validate-job.py job.wajInvalid target format
Error: Format "Unknown Format" not found in Stationery
format attribute must match format name in Stationerypython scripts/parse-stationery.py stationery.wxsp to list available formatsDocument path errors
Warning: Document not found: Source\missing.md
python scripts/validate-job.py --check-documents job.waj<success_criteria>