# Skill Creator

> Create, edit, validate, and package new Tlamatini skills (SKILL.md packages).

- Skill: `xaiht/skill-creator` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add xaiht/skill-creator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xaiht/skill-creator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: XAIHT (https://skillmd.com/u/xaiht)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/xaiht/skill-creator

---

<!--
═══════════════════════════════════════════════════════════════════
  ✦  T L A M A T I N I  ✦   —   "one who knows"
  Created by  Angela López Mendoza   ·   @angelahack1
  Developer · Architect · Creator of Tlamatini
  Tlamatini Author Banner — do not remove (Angela's name is kept in every build)
═══════════════════════════════════════════════════════════════════
-->

# Skill Creator

Use this skill to bootstrap a new skill correctly the first time.

## Procedure

1. Validate the inputs:
   - `skill_name` must be kebab-case, all lowercase, ASCII letters/numbers/dashes only.
   - `runtime` must be `in-process` or `acpx`. If `acpx`, `acpx_agent` is required.

2. Create the directory `Tlamatini/agent/skills_pkg/${input.skill_name}/`.

3. Author `SKILL.md` with this minimal scaffold:

```markdown
---
name: ${input.skill_name}
description: ${input.description}
metadata:
  tlamatini:
    runtime: ${input.runtime}
    acpx_agent: ${input.acpx_agent}     # only if runtime=acpx
    requires_tools: []
    requires_mcps:  []
    budget:
      max_iterations: 8
      max_seconds: 120
      max_tokens: 16000
    permissions:
      filesystem: { read: [], write: [] }
      shell:     []
      network:   deny
      db:        deny
    inputs:  []
    outputs: []
    triggers:
      keywords:   []
      file_globs: []
---

# ${input.skill_name}

Describe the skill. Be concise. Body must stay under 8 KiB.
```

4. Run the linter:

   ```bash
   python Tlamatini/agent/skills_pkg/_meta/lint.py
   ```

5. Return `{ "skill_dir": "<path>", "lint_status": "<linter stdout last line>" }`.

## Constraints

- Do NOT write outside `Tlamatini/agent/skills_pkg/<skill_name>/`.
- Do NOT add a skill whose name collides with an existing one — the registry
  rejects duplicates. The lint step catches this.
- Body length cap is 8 KiB. Long playbooks belong in `references/<file>.md`
  inside the skill directory and should be referenced from the body, not
  inlined.
- Skills with `runtime: acpx` MUST set `acpx_agent` to a registered agent_id
  (see `list_acp_agents`).
- **Scratch/output under `<app>/Temp` (2026-06-02 policy)**: if the skill writes
  any temporary or intermediate file, target `<app>/Temp` — read the
  `TLAMATINI_TEMP` env var, or (in-process) resolve via
  `agent/path_guard.py::resolve_temp_path` — never `C:\Temp` / `%TEMP%`, and
  declare that path in `permissions.filesystem.write`. Files the user keeps
  (deliverables) go to their chosen path; only throwaway artefacts go to Temp.
  See `prompt.pmt` Rule 15.

