How to Add Firm-Specific Terminology and Formatting to Existing Skills in Claude Financial Services
Modify the source Markdown skill files in plugins/vertical-plugins/ and run scripts/sync-agent-skills.py to propagate firm-specific language and formatting to all agent bundles.
The anthropics/financial-services repository implements reusable workflow steps as skills—plain Markdown files that define how Claude agents perform specific tasks. To add firm-specific terminology and formatting to existing skills, you edit the canonical vertical-plugin sources and leverage an automated synchronization mechanism that distributes changes across all agent configurations.
Understand the Skill Architecture
The repository maintains a strict separation between source skills and bundled copies. Every skill originates as a Markdown file under plugins/vertical-plugins/<vertical>/skills/. When you need to customize terminology or output formatting, you edit these vertical-plugin files—the single source of truth (as defined in lines 5‑8 of scripts/sync-agent-skills.py).
Agent-specific bundles reside in plugins/agent-plugins/<slug>/skills/, but these directories are auto-generated. The synchronization script removes old copies using shutil.rmtree and creates fresh replicas using shutil.copytree, ensuring perfect fidelity between the vertical source and runtime consumption. At runtime, the Claude engine reads the bundled Markdown directly, so any terminology or formatting changes you inject appear immediately when the skill fires.
Step-by-Step Customization Workflow
Identify the Target Skill
Locate the skill you want to customize within the vertical-plugin hierarchy. For example, the financial-planning skill lives at:
plugins/vertical-plugins/wealth-management/skills/financial-plan/SKILL.md
Verify this is the canonical source, not an agent-bundled copy.
Edit the Skill Markdown
Open the SKILL.md file and add your firm-specific content. Because skills are plain Markdown, you can insert:
- Terminology tables mapping generic terms to firm jargon
- Custom heading structures (H1, H2, H3) matching your document standards
- Template variables using
{{variable_name}}syntax for dynamic substitution - Formatted tables with firm-specific column headers
Run the Sync Script
After saving your edits, propagate the changes to all agents:
python3 scripts/sync-agent-skills.py
This script walks plugins/vertical-plugins/*/skills/* and copies updated directories to every matching plugins/agent-plugins/*/skills/* location. The process is deterministic: it completely replaces old bundled directories with fresh source copies.
Validate the Changes
Launch the relevant agent (e.g., the Pitch Agent) and invoke the skill via its slash command or through a Managed Agent call. Verify that the output contains your firm-specific terminology and formatting. If the sync script reported warnings about missing sources, confirm that skill names match exactly between vertical and agent directories before testing.
Commit the Update
Add the edited vertical-plugin skill file to your pull request. The repository's CI pipeline runs scripts/check.py, which verifies that all bundled skill copies remain synchronized with their vertical sources. Include the sync script's output log if your team requires audit trails for skill propagation.
Customization Examples
Adding Firm-Specific Terminology Tables
Embed a translation table directly in the skill Markdown to standardize language across all agent outputs:
## Firm-Specific Terminology
| Generic term | Firm term |
|--------------|-----------|
| "Net Income" | "Adjusted Net Income" |
| "EBITDA" | "Core EBITDA" |
| "Revenue" | "Top-Line Revenue" |
Place this table anywhere inside plugins/vertical-plugins/wealth-management/skills/financial-plan/SKILL.md. When the skill generates a financial plan, Claude will use your firm's preferred terminology.
Customizing Output Format Templates
Structure the skill's output to match your firm's document templates using YAML front-matter and custom tables:
---
title: Financial Plan – {{client_name}}
date: {{date}}
---
# Executive Summary
{{executive_summary}}
## Detailed Projections
| Year | {{firm_term_revenue}} | {{firm_term_expenses}} | {{firm_term_ebitda}} |
|------|----------------------|------------------------|----------------------|
{{#each projection_years}}
| {{year}} | {{revenue}} | {{expenses}} | {{ebitda}} |
{{/each}}
The triple-dash YAML block and custom table headers ensure generated documents align with your brand standards. The {{…}} placeholders receive runtime substitution from the Claude engine.
Executing the Sync Script
After editing the source file, run the propagation command:
# From repository root
python3 scripts/sync-agent-skills.py
# Expected output:
# synced 23 bundled skill dir(s) from vertical-plugins/
The script outputs the count of synchronized directories. If this count seems low, verify that your skill directory name matches exactly across vertical and agent plugins.
Key Files and Their Roles
Understanding the file hierarchy ensures you edit the correct locations:
-
plugins/vertical-plugins/<vertical>/skills/<skill>/SKILL.md— The canonical Markdown source that defines terminology and formatting. This is the only file you should manually edit. -
scripts/sync-agent-skills.py— The Python script that propagates vertical-plugin edits to all agent-bundled copies usingshutil.copytree. -
plugins/agent-plugins/<slug>/skills/<skill>/— The runtime destination for skills. These directories are auto-generated; never edit them directly. -
scripts/check.py— The CI validator that ensures bundled copies stay synchronized before merge. -
README.md— Contains the overall architecture overview and onboarding documentation.
Summary
- Edit only the vertical-plugin source files located at
plugins/vertical-plugins/<vertical>/skills/<skill>/SKILL.md; agent-bundled copies are auto-generated. - Run
python3 scripts/sync-agent-skills.pyafter every modification to propagate changes across all agents. - Validate changes by invoking the skill through an agent's slash command and verifying firm-specific language appears in the output.
- The CI pipeline enforces synchronization via
scripts/check.py, preventing drift between source and bundled skills. - Skills support full Markdown syntax, including tables, headings, and template variables for complete formatting control.
Frequently Asked Questions
Can I edit the bundled skill files in plugins/agent-plugins/ directly?
No. These directories are auto-generated by scripts/sync-agent-skills.py. The script uses shutil.rmtree to delete and shutil.copytree to recreate these directories during every sync, so manual edits to bundled files will be overwritten. Always modify the source files in plugins/vertical-plugins/ instead.
How do I ensure my terminology changes don't break existing agents?
Validate your changes by launching the agent and invoking the skill via its slash command or Managed Agent call. The changes take effect immediately after syncing because the Claude engine reads the bundled Markdown at runtime. Test with representative prompts that exercise the terminology variables you modified.
What if the sync script reports a warning about a missing source?
Verify that the skill name matches exactly between the vertical-plugin directory and the agent-plugin directory. The script performs name-based matching when determining which source to copy to which destination. Check for subtle differences in spelling, hyphenation, or capitalization in the directory names.
Can I customize skills for specific agents only?
The current architecture propagates changes to all agents using that skill. As implemented in anthropics/financial-services, the sync-agent-skills.py script does not support selective synchronization—it deterministically copies vertical sources to all matching agent bundles. If you need agent-specific variations, create a uniquely named skill variant in the vertical-plugin directory (e.g., financial-plan-custom) and configure only specific agents to use that variant.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →