T01 · Skill Instruction Hijacking
- Location
SKILL.md:150- Finding
Untrusted GitHub Template Descriptions Can Hijack Agent Instructions
- Content
View full analysis
/manifest.yaml Read: templates//description.md ``` ``` ```markdown Users can create their own design templates. A custom template needs at minimum a `manifest.yaml` with `meta.name` and `meta.id`, plus a `description.md` for the AI to understand the design intent. ### Adding Templates from GitHub (`add-temp`) When a user asks to add templates from a GitHub URL (e.g., "add this template: https://github.com/xxx/yyy", or "/bold-ui add-temp https://github.com/xxx/yyy"), follow this workflow: **Step A — Parse the GitHub URL** The URL can be any of these forms: - `https://github.com/owner/repo` — entire repo is a template collection - `https://github.com/owner/repo/tree/branch/path/to/template` — a specific template subdirectory - `https://github.com/owner/repo` where the repo root IS a single template (has `manifest.yaml`) **Step B — Fetch and Validate** Clone the repo to a temporary location (use `git clone --depth 1`), then validate each template candidate: ``` # Clone shallow for speed git clone --depth 1 /tmp/boldui-temp-import ``` ``` ```markdown | Rule | Required? | Check | |------|-----------|-------| | `manifest.yaml` exists | **Required** | File must be present and valid YAML | | `meta.name` | **Required** | Non-empty string | | `meta.id` | **Required** | Non-empty string, kebab-case recommended (e.g., `my-brand-style`) | | `meta.id` unique | **Required** | Must not conflict with existing template IDs (check `templates/index.yaml` + `~/.claude/bold-ui/templates/`) | | `description.md` | Recommended | Warn if missing, but don't reject | ``` ```sh mkdir -p ~/.clau ...[truncated 2807 chars]- Remediation
View remediation
