# How to Customize the Clone-Website Skill for Different AI Coding Agents

> Customize the clone-website skill for AI coding agents by editing SKILL.md and syncing. Get your website cloned efficiently across platforms.

- Repository: [JCodesMore/ai-website-cloner-template](https://github.com/JCodesMore/ai-website-cloner-template)
- Tags: how-to-guide
- Published: 2026-06-23

---

**You customize the `clone-website` skill by editing the single source-of-truth file at [`.claude/skills/clone-website/SKILL.md`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.claude/skills/clone-website/SKILL.md) and running `node scripts/sync-skills.mjs` to propagate changes across all supported AI coding platforms.**

The `ai-website-cloner-template` repository by JCodesMore implements a deterministic synchronization pipeline that lets you maintain one canonical skill definition while automatically generating platform-specific formats for Claude, Cursor, Gemini, Amazon Q, and others. This architecture eliminates configuration drift and ensures every AI coding agent receives identical logical instructions regardless of their native file format requirements.

## Understanding the Single Source of Truth Architecture

The repository uses a two-tier configuration system where platform-agnostic instructions live in one location and platform-specific wrappers are generated deterministically.

### The Canonical Skill Definition

The file [`.claude/skills/clone-website/SKILL.md`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.claude/skills/clone-website/SKILL.md) contains the complete, authoritative definition of the `/clone-website` command. This markdown file includes YAML front-matter describing the skill name, description, argument hints, and user-invocable status, followed by the prompt body that instructs the AI how to perform website cloning.

When you need to change behavior—whether updating the reverse-engineering workflow or adding new flags like `--dry-run`—you edit only this file. The body uses the `$ARGUMENTS` placeholder to represent user input, which the sync script later substitutes with platform-appropriate syntax.

### The Sync Script Pipeline

The Node.js script at `scripts/sync-skills.mjs` parses the canonical skill, extracts the front-matter and body, and writes nine platform-specific files across different directories. According to the source code, the script handles format conversions such as:

- **Markdown files** for Claude and Codex (`.claude/`, `.codex/`)
- **TOML files** for Gemini ([`.gemini/commands/clone-website.toml`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.gemini/commands/clone-website.toml))
- **JSON files** for Amazon Q CLI ([`.amazonq/cli-agents/clone-website.json`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.amazonq/cli-agents/clone-website.json))
- **Custom formats** for Cursor and GitHub Copilot

The script performs string replacements to adapt placeholders—for example, converting `$ARGUMENTS` to `{{args}}` for Gemini's template syntax—ensuring each AI coding agent receives instructions in its native dialect without manual duplication.

## Step-by-Step: How to Customize the Clone-Website Skill for Different AI Coding Agents

Follow this workflow to modify the skill and propagate changes across all supported platforms.

### 1. Edit the Canonical Skill

Open [`.claude/skills/clone-website/SKILL.md`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.claude/skills/clone-website/SKILL.md) and modify the markdown, front-matter, or `$ARGUMENTS` placeholders. For example, to add a dry-run option:

```markdown
---
name: clone-website
description: Reverse-engineer any site with optional dry-run validation
argument-hint: "<url1> [<url2> ...] [--dry-run]"
user-invocable: true
---

# Clone Website

You are about to reverse-engineer **$ARGUMENTS** using the stack defined in `AGENTS.md`...

```

### 2. Run the Sync Script

Execute the synchronization script to regenerate all platform files:

```bash
node scripts/sync-skills.mjs

```

The script outputs progress showing each platform file being regenerated:

```

Syncing clone-website skill to all platforms...
  Source: .claude/skills/clone-website/SKILL.md

  ✓ .codex/skills/clone-website/SKILL.md
  ✓ .cursor/commands/clone-website.md
  ✓ .gemini/commands/clone-website.toml
  ...
Done! 9 platform command files generated from source skill.

```

### 3. Commit the Generated Files

The generated files in directories like `.cursor/commands/`, `.gemini/commands/`, and `.amazonq/cli-agents/` are the actual files consumed by each AI coding agent. Commit these to version control so agents can fetch the repository without needing to run the build script themselves.

## Adding Support for New AI Coding Platforms

To extend the `clone-website` skill to a proprietary or newly released AI coding agent, extend the sync script with a new output format.

First, create the target directory structure (e.g., `.myagent/cli-agents/`). Then add a new `write` call to `scripts/sync-skills.mjs`:

```javascript
// 10. MyAgent — JSON definition with custom field "category"
write(
  '.myagent/cli-agents/clone-website.json',
  JSON.stringify(
    {
      name: 'clone-website',
      description: shortDesc,
      prompt: noArgs(body),
      category: 'website-cloner',
      fileContext: ['AGENTS.md', 'docs/research/**']
    },
    null,
    2
  ) + '\n'
);

```

Running `node scripts/sync-skills.mjs` now produces [`.myagent/cli-agents/clone-website.json`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.myagent/cli-agents/clone-website.json) with the custom `category` field included, ready for your new agent to consume.

## Platform-Specific Customization Techniques

When you customize the `clone-website` skill for different AI coding agents, you may need to accommodate varying syntax requirements or capability limitations.

### Handling Different Argument Syntax

Different agents use different templating syntax for user arguments. The sync script already handles the Gemini conversion (`$ARGUMENTS` → `{{args}}`). For new platforms requiring different syntax—such as `%ARGS%` or `${input}`—add a substitution function in `scripts/sync-skills.mjs`:

```javascript
const customBody = body.replace(/\$ARGUMENTS/g, '%ARGS%');

```

### Platform-Specific Descriptions

To prepend usage notes for specific agents—for example, adding a warning about URL length limits for a particular IDE—extend the `write` call for that platform to inject a header:

```javascript
const prefixedBody = `# Note: This agent requires HTTPS URLs\n\n${body}`;

write('.customagent/commands/clone-website.md', prefixedBody);

```

### Limiting Functionality Per Platform

If an AI coding agent does not support parallel URL processing, add a conditional block in the sync script that truncates the body before writing:

```javascript
const limitedBody = agentName === 'restricted-agent' 
  ? body.replace(/multiple URLs/g, 'a single URL') 
  : body;
write(`.restricted-agent/skills/clone-website.md`, limitedBody);

```

## Summary

- **Single source of truth**: Edit only [`.claude/skills/clone-website/SKILL.md`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.claude/skills/clone-website/SKILL.md) to change the skill behavior for all platforms simultaneously.
- **Deterministic generation**: Run `scripts/sync-skills.mjs` to convert the canonical markdown into platform-specific formats (TOML for Gemini, JSON for Amazon Q, etc.).
- **Version control**: Commit generated files in `.cursor/`, `.gemini/`, and other platform directories so agents can consume them directly without build steps.
- **Extensibility**: Add new AI coding platforms by extending the sync script with custom `write` calls that transform the canonical body into the required format.

## Frequently Asked Questions

### Can I modify a generated platform file directly without editing the source?

You can edit generated files directly, but those changes will be overwritten the next time you run `scripts/sync-skills.mjs`. To make permanent customizations for a specific platform, modify the sync script to apply post-processing transformations (such as string replacements or header injection) before the `write` call executes.

### How do I add a new argument placeholder beyond `$ARGUMENTS`?

Define the new placeholder in [`.claude/skills/clone-website/SKILL.md`](https://github.com/JCodesMore/ai-website-cloner-template/blob/main/.claude/skills/clone-website/SKILL.md) using a distinct syntax like `$NEW_PARAM`. Then extend `scripts/sync-skills.mjs` to handle substitutions for each target platform—for example, converting `$NEW_PARAM` to `{{new_param}}` for Gemini or removing it entirely for agents that don't support that feature.

### Will the sync script work if I add new front-matter fields to SKILL.md?

Yes. The script reads the entire front-matter block and passes relevant fields (like `name`, `description`, and `argument-hint`) to platform-specific generators. If you add custom fields, update the script's platform generators to utilize them—for instance, mapping a new `category` field to a JSON property for specific agents.

### How do I exclude a platform from receiving the updated skill?

Remove or comment out the corresponding `write` call in `scripts/sync-skills.mjs`. The script only generates files for platforms explicitly defined in its pipeline, so omitting a platform prevents that directory from being updated while leaving other platform files intact.