Skip to content
Back to skills

0xjitsu Jitsu Skills Docs

ASecurity

Step-by-step guide for creating and publishing a new skill in the jitsu-skills ecosystem. ---

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
toolsbashnodegitdatabasesecurity

Works with

  • claude code
  • terminal
  • cli
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill 0xjitsu-jitsu-skills-docs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 0xjitsu Jitsu Skills Docs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 0xjitsu Jitsu Skills Docs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-0xjitsu-jitsu-skills-docs/badge)](https://www.skillsdirectory.com/skills/aibot88-0xjitsu-jitsu-skills-docs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Adding a Skill

Step-by-step guide for creating and publishing a new skill in the jitsu-skills ecosystem.

---

## 1. Choose a Persona

Every skill belongs to one of 7 personas. Pick the one that best matches your skill's domain:

| Persona | ID | Domain |
|---------|-----|--------|
| Campaign Ops | `campaign-ops` | Outbound campaigns, lead enrichment, multi-channel sequencing |
| Ship Captain | `ship-captain` | Open source publishing, npm releases, changelogs |
| Guardian | `guardian` | Security auditing, secret scanning, vulnerability detection |
| Machinist | `machinist` | macOS automation, LaunchAgents, Keychain management |
| Architect | `architect` | Full-stack development, database schemas, data visualization |
| Researcher | `researcher` | R&D proposals, citations, research apps |
| Coordinator | `coordinator` | Meeting prep, team updates, cross-tool orchestration |

If none of these fit, propose a new persona in your PR with an `id`, `label`, `icon`, `color`, and `description`. New personas require maintainer approval.

---

## 2. Create the Skill Directory

```bash
mkdir skills/<skill-name>
```

Use kebab-case for the directory name. Keep it descriptive -- `campaign-sequencer`, not `cs`.

---

## 3. Write SKILL.md

Create `skills/<skill-name>/SKILL.md` with YAML frontmatter followed by the markdown body.

### Frontmatter Schema

```yaml
---
name: my-skill-name
description: >
  What this skill does and when to trigger it. Write in third person.
  Must be under 1024 characters. Include trigger phrases so Claude's
  description-matching can auto-activate the skill. Example: "Scans
  git history for committed secrets and credentials. Triggered when
  the user asks to check for leaked keys, audit git history, or scan
  for secrets."
license: AGPL-3.0-or-later
metadata:
  author: your-github-handle
  version: "1.0.0"
  persona: one-of-seven-personas
---
```

| Field | Required | Notes |
|-------|----------|-------|
| `name` | Yes | Must match the directory name. Kebab-case. |
| `description` | Yes | Under 1024 characters. Third person. Include trigger phrases. |
| `license` | Yes | Always `AGPL-3.0-or-later` for core skills. |
| `metadata.author` | Yes | Your GitHub handle. `0xjitsu` for core skills. |
| `metadata.version` | Yes | Semver string in quotes (e.g., `"1.0.0"`). |
| `metadata.persona` | Yes | One of: `campaign-ops`, `ship-captain`, `guardian`, `machinist`, `architect`, `researcher`, `coordinator`. |

### Body Structure

After the closing `---` of the frontmatter, write the skill's instruction body in markdown. Include these sections:

**When to Trigger** -- List the exact phrases and intents that should activate this skill. Be specific. Claude uses description matching, so the more trigger patterns you list, the better auto-activation works.

```markdown
## When to Trigger

Activate this skill when the user:
- Asks to **scan for secrets** or **audit git history**
- Says "check for leaked keys" or "find exposed credentials"
- Is preparing a repository for open source release
```

**Workflow Steps** -- The numbered sequence of actions the skill performs. Be explicit about tool usage, file operations, and decision points.

```markdown
## Workflow

1. Read the project root to identify language and framework
2. Run `grep -r` patterns for common secret formats
3. Present findings grouped by severity
4. Guide the user through remediation
5. Re-scan to verify all issues are resolved
```

**MCP Tools Used** (if any) -- Wrap MCP-dependent sections in `<!-- claude-code-only -->` tags so they get stripped from the portable version.

```markdown
<!-- claude-code-only -->
## MCP Tools

This skill uses the following MCP servers when available:
- **Supabase MCP** -- for schema introspection
- **Sentry MCP** -- for error context
<!-- /claude-code-only -->
```

**Output Format** -- Describe the expected deliverable: a file, a terminal report, a structured JSON object, etc.

**Safety Rules** -- Hard boundaries the skill must never cross. Examples: "Never delete files without confirmation", "Never commit secrets", "Never push to remote without asking".

**Anti-Patterns** -- Common mistakes to avoid. Examples: "Do not run `git add .`", "Do not skip the verification scan", "Do not suggest disabling security checks".

---

## 4. Generate Portable Versions

Run the build script from the repo root:

```bash
bash scripts/build-universal.sh
```

This iterates over every `skills/*/SKILL.md` and generates two files per skill:

| File | What it contains | Target platform |
|------|-----------------|-----------------|
| `prompt.txt` | Body only, frontmatter stripped | Claude Chat (paste into Project Instructions), Agent SDK (inject as `systemPrompt`) |
| `prompt-portable.txt` | Body with `<!-- claude-code-only -->` sections also stripped | Prompt marketplaces, harnesses without tool access |

Never edit `prompt.txt` or `prompt-portable.txt` by hand -- they are always regenerated from `SKILL.md`.

---

## 5. Add to Skill Tree

Edit `skills/skill-data.json` to register your skill in the dependency graph.

### Add a Node

Add an entry to the `nodes` array:

```json
{
  "id": "my-skill-name",
  "label": "My Skill Name",
  "persona": "guardian",
  "tier": 1,
  "description": "One-line description of what the skill does",
  "status": "available",
  "prerequisites": ["core"],
  "platforms": ["claude-code", "claude-chat", "agent-sdk"]
}
```

| Field | Values | Notes |
|-------|--------|-------|
| `id` | string | Must match the directory name and SKILL.md `name` |
| `label` | string | Human-readable display name |
| `persona` | string | One of the 7 persona IDs |
| `tier` | `0`, `1`, or `2` | `0` = core (reserved), `1` = standalone (depends only on core), `2` = requires other skills as prerequisites |
| `description` | string | Short description for CLI and tree display |
| `status` | `"available"` or `"locked"` | Use `"available"` for tier-1 skills. `"locked"` for tier-2 skills whose prerequisites are not yet mastered |
| `prerequisites` | array of IDs | Skill IDs this skill depends on. At minimum `["core"]` for tier-1 skills |
| `platforms` | array | Subset of `["claude-code", "claude-chat", "agent-sdk"]`. Use only platforms the skill actually works on |

### Add Edges

Add one edge per prerequisite relationship to the `edges` array:

```json
{ "source": "core", "target": "my-skill-name" }
```

If your skill is tier-2 with multiple prerequisites, add one edge for each:

```json
{ "source": "prerequisite-a", "target": "my-skill-name" },
{ "source": "prerequisite-b", "target": "my-skill-name" }
```

---

## 6. Test Locally

Symlink your skill into the Claude Code skills directory:

```bash
ln -s $(pwd)/skills/my-skill-name ~/.claude/skills/my-skill-name
```

Then start a new Claude Code session and test:

- **Slash command**: Type `/my-skill-name` to invoke it directly
- **Auto-trigger**: Describe a task that matches the trigger phrases in your description -- Claude should auto-detect and activate the skill
- **Verify output**: Confirm the skill follows its workflow, respects safety rules, and produces the expected output format

Also verify the CLI recognizes your skill:

```bash
bun bin/cli.js list   # Should show your skill with correct persona
bun bin/cli.js tree   # Should show your skill in the prerequisite graph
```

---

## 7. Submit a PR

1. **Branch from main**: `git checkout -b skill/my-skill-name`
2. **One skill per PR** -- keep the diff focused
3. **Include all generated files**: `SKILL.md`, `prompt.txt`, `prompt-portable.txt`, and the updated `skill-data.json`
4. **PR checklist**:
   - [ ] `SKILL.md` has valid frontmatter (name, description under 1024 chars, license, metadata)
   - [ ] `bash scripts/build-universal.sh` completes with 0 errors
   - [ ] `bun bin/cli.js list` shows the new skill
   - [ ] `bun bin/cli.js tree` renders the prerequisite graph correctly
   - [ ] Skill tested via symlink in a live Claude Code session
   - [ ] MCP-dependent sections wrapped in `<!-- claude-code-only -->` tags
   - [ ] No secrets, PII, or hardcoded credentials in the skill body

Files in this skill

  • SKILL.md7.9 KB
  • source.json1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.