FirstSpirit CMS template development using fs-cli. Helps set up fs-cli environment, export templates from FirstSpirit server, modify templates with Claude Code, and import changes back to server. Use when working with FirstSpirit templates, CMS development, or when user mentions fs-cli, FirstSpirit, or template synchronization.
Manages FirstSpirit CMS template development using fs-cli. Guides setup, exports templates from server, enables modifications with Claude Code, and imports changes back. Automatically triggers when user mentions FirstSpirit, fs-cli, or template synchronization.
/plugin marketplace add rawe/claude-dev-skills/plugin install firstspirit-fs-cli@claude-dev-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
reference/fs-cli-installation-guide.mdreference/fs-cli-sync-structure.mdreference/fs-cli-usage.mdscripts/setup-fs-cli.shscripts/validate-environment.shYou are a specialized assistant for working with FirstSpirit templates using the fs-cli tool.
IMPORTANT: To understand the firstspirit teamplate syntax you need also the skill firstspirit-templating.
Before working with FirstSpirit templates, you MUST familiarize yourself with these supporting files in the reference/ directory:
reference/fs-cli-sync-structure.md - Template Structure Guide
reference/fs-cli-installation-guide.md - Setup Guide
reference/fs-cli-usage.md - Command Reference
IMPORTANT: this must done only once per project. NOT every time the user wants to run commands.
Check if fs-cli is configured before running commands:
if [ ! -d .fs-cli ]; then
echo "fs-cli not configured. Starting setup wizard..."
fi
When a user needs to set up fs-cli the first time in their project: read the reference/fs-cli-installation-guide.md file and guide them through.
All fs-cli configuration is stored in .env:
# FirstSpirit Server Configuration
fshost=localhost
fsport=8000
fsmode=HTTP
fsproject=my-project
# FirstSpirit Credentials (KEEP SECRET - DO NOT COMMIT)
fsuser=Admin
fspwd=your_password
# fs-cli Configuration (for reference only, not used by fs-cli)
FS_CLI_VERSION=4.8.6
FS_VERSION=2025.01
IMPORTANT: Never commit .env to git! It contains credentials.
CRITICAL: Read and follow the instructions in reference/fs-cli-usage.md for common commands and usage examples before running any commands.
Always export environment variables from .env before running fs-cli commands:
# Export environment variables from .env (use set -a to auto-export all variables)
set -a && source .env && set +a
# Run fs-cli (connection parameters are read from environment variables)
.fs-cli/bin/fs-cli.sh <command> [args]
Note: Use set -a; source .env; set +a to properly export all variables from the .env file. The .env file uses standard format (lowercase variable names without export keyword).
See reference/fs-cli-usage.md for common commands and examples.
Always export before modifying to get the latest version from the server:
set -a && source .env && set +a && .fs-cli/bin/fs-cli.sh -sd sync_dir/ export
CRITICAL: Read reference/fs-cli-sync-structure.md to understand:
Key files in exported structure:
StoreElement.xml - Contains metadata (name, UID, type)GomSource.xml - Contains template source code (for sections, page templates)Use Glob and Grep to find templates:
# Find all page templates
ls sync_dir/pagetemplate/
# Search for template by name
grep -r "template-name" sync_dir/
# Find by UID
grep -r 'uid="homepage"' sync_dir/
# Find specific input component
grep -r "CMS_INPUT_TEXT" sync_dir/
When editing templates:
Common files to edit:
StoreElement.xml - For metadata changesGomSource.xml - For template logic and HTMLAfter modifying templates:
# Optional: Dry run first
set -a && source .env && set +a && .fs-cli/bin/fs-cli.sh -sd sync_dir/ import --dry-run
# Import for real
set -a && source .env && set +a && .fs-cli/bin/fs-cli.sh -sd sync_dir/ import
.env configuration is correcttelnet ${fshost} ${fsport}java -versionecho $JAVA_HOMEreference/fs-cli-installation-guide.mdAfter setup, the project will look like:
your-project/
├── .env # Configuration + credentials (gitignored)
├── .env.example # Template for team (committed)
├── .gitignore # Updated to ignore .fs-cli/ and .env
│
├── .fs-cli/ # Git-ignored - local fs-cli installation
│ ├── bin/
│ │ └── fs-cli.sh # The CLI executable (for mac and linux)
│ │ └── fs-cli.cmd # The CLI executable (for windows)
│ ├── lib/
│ │ └── fs-isolated-runtime.jar # USER MUST PROVIDE (version-specific)
│ ├── README.txt # fs-cli documentation
│ └── .setup-marker # Tracks setup state (fs-cli version, FS version)
│
├── sync_dir/ # Exported FirstSpirit templates (after export only)
├── pagetemplate/
├── section/
├── formattemplate/
└── ...
For detailed troubleshooting, refer to reference/fs-cli-installation-guide.md.
Located in the skill directory:
reference/fs-cli-sync-structure.md - Template structure documentationreference/fs-cli-installation-guide.md - Detailed setup and troubleshooting guidereference/fs-cli-usage.md - Common fs-cli commands and usage examplesscripts/setup-fs-cli.sh - Automated setup scriptscripts/validate-environment.sh - Environment validation scripttemplates/.env.template - Template for .env filetemplates/.env.example.template - Template for .env.exampletemplates/.gitignore.fs-cli - Lines to add to .gitignoreThis skill will expand to support:
Claude will automatically invoke this skill when:
.env - Contains credentials.fs-cli/ - Downloaded tools, version-specific.env.example should be committed - Template for teamsync_dir/ can be committed - If using external sync for version controlfs-cli-sync-structure.md - Before modifying templates