Skip to content
Back to skills

Cp Skill Convert

ASecurity

Convert notes between types. Currently supports text to note by adding unverified structured frontmatter, renaming the file to match the title, and fixing backlinks. Use with a note path or note name.

  • 91 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
ai-agentsgobashgit

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add zby/commonplace --skill cp-skill-convert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cp Skill Convert?

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

Security grade badge for Cp Skill Convert
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zby-cp-skill-convert/badge)](https://www.skillsdirectory.com/skills/zby-cp-skill-convert)

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
---
name: cp-skill-convert
description: Convert notes between types. Currently supports text to note by adding unverified structured frontmatter, renaming the file to match the title, and fixing backlinks. Use with a note path or note name.
type: types/instruction.md
user-invocable: true
allowed-tools: Read, Edit, Grep, Glob, Bash
context: fork
model: sonnet
argument-hint: "[note] — path or filename in kb/notes/"
---

## EXECUTE NOW

**Target: $ARGUMENTS**

Parse immediately:
- If target contains just a note name or path: convert text → note
- If target requests another conversion form, explain that only text → note is currently implemented
- If target is empty: ask which note to convert

## Supported conversions

### text → note (current)

The primary conversion. Adds frontmatter to a raw text file, making it structured and connectable.

#### Step 1: Locate and verify

Resolve the target to a file path. If just a name, search `kb/notes/` recursively.

Read the file. Verify it has **no frontmatter** (does not start with `---`). If it already has frontmatter, report that it's already structured and stop.

#### Step 2: Understand the content

Read the full file. Identify:
- The core topic (what is this about?) — needed for writing the description
- Whether the current filename matches the `# Title` heading (see Step 3a)

#### Step 3: Generate frontmatter

Add YAML frontmatter at the top of the file:

```yaml
---
description: [50-250 chars, adds mechanism/scope/implication beyond the title]
type: types/note.md
traits: []
tags: []
---
```

**Rules:**
- Do not add `user-verified` — conversion structures the note but cannot grant human attestation.
- `description` must add information beyond the title. See [note base type](../../types/note.md) for quality criteria.
- `traits` is always `[]` — trait assignment is semantic work, done later by a writer or human reviewer; deterministic validation does not infer traits.
- `tags` is always `[]` — tag assignment is semantic work and remains empty
  until a separately authorized editing task assigns it. `cp-skill-connect`
  reports candidate links only; it does not edit tags or library artifacts.
- Do NOT modify the body content. Conversion adds structure, not editorial changes.

#### Step 3a: Rename the file

After adding frontmatter, check whether the filename matches the `# Title` heading.

The filename should match the title. Whether the title itself is good is a semantic question for a human or a frontmatter review assay; deterministic validation checks only its structural limits.

**Decide whether to rename:**
- If the current filename is already a good slug of the `# Title` — keep it
- If the filename diverges from the title (e.g. file is `connect-pipeline-features.md` but the title is `# Connect pipeline should detect reciprocal links`) — rename it to match

**To rename:**
1. Dry-run the relocation with the `# Title` heading as the new name:
   ```bash
   commonplace-relocate-note old-path/old-filename.md "Title from the heading"
   ```
   It derives the filename from the title, lists every backlink it will rewrite, and adds the published-site redirect.
2. If the dry run is correct, run the same command with `--apply`. Never rename with `git mv` or by editing backlinks by hand: that skips the redirect and the full backlink rewrite.

**Rules:**
- The file stays in its current directory. Rename only, no move.
- If the title heading changed during frontmatter addition (it shouldn't — see "Do NOT modify body content"), use the original title.

#### Step 4: Report

```
=== CONVERTED: filename.md ===

text → note (unverified)

renamed: old-filename.md → new-filename.md  [or "filename unchanged" if no rename]
backlinks updated: 3 files  [or "none" if no backlinks]

description: [the description you wrote]
tags: []

Next steps:
- Run the `cp-skill-connect` skill on `new-filename.md` — report candidate
  connections without mutating the note
- Run the `cp-skill-validate` skill on `new-filename.md` — check deterministic structure and references
- Optionally ask the user to verify the artifact after review; only the human may add `user-verified: true`
===
```

### Unsupported conversions

If a user requests any conversion other than text → note, explain that it is
not implemented and stop. Do not invent a conversion or retain a speculative
feature catalogue. If repeated use establishes a concrete missing conversion,
route that design gap through the repository's normal proposal process before
adding it here.

## Critical Constraints

**Never:**
- Add `user-verified` — that requires explicit human attestation after review
- Modify body content — only add/change frontmatter
- Convert a text file that already has frontmatter (it's not a text file)
- Write a description that merely restates the title
- Move a file to a different directory — rename only changes the filename within its current directory
- Install software — if a required tool is missing, bail with an error

**Always:**
- Leave `user-verified` absent for text → note conversions
- Write a description that adds mechanism, scope, or implication
- Rename the file to match the `# Title` heading (unless it already does)
- Rename with `commonplace-relocate-note`, which rewrites every backlink and adds the redirect
- Commit a relocation alone, with no content edits, so `git log --follow` survives the rename
- Report what was done so the user can review

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.