Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Write Skill

ASecurity

Use this when the user wants to create a new shared PersonalOS skill under skills/ or revise a specified PersonalOS skill and the scope is already clear. Do NOT use for raw workflow capture or deciding whether work should become a skill; use skillify first. Do NOT use for repo-local or agent-local skills unless {{user_name}} explicitly wants promotion into PersonalOS.

26 stars
0 votes
0 copies
1 views
Added 9/27/2026
ai-agentspythongoshellbashdocumentation

Security Analysis

A100/100

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

Scanned 9/27/2026

$npx -y skills add vincentmumme/personalos-boilerplate --skill write-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Write Skill?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Write Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vincentmumme-write-skill/badge)](https://www.skillsdirectory.com/skills/vincentmumme-write-skill)

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

Download with Pro
Files
SKILL.md
---
name: write-skill
description: "Use this when the user wants to create a new shared PersonalOS skill under skills/ or revise a specified PersonalOS skill and the scope is already clear. Do NOT use for raw workflow capture or deciding whether work should become a skill; use skillify first. Do NOT use for repo-local or agent-local skills unless {{user_name}} explicitly wants promotion into PersonalOS."
metadata:
  pos_schema_version: pos-v1
  pos_id: 019fecfe-ab8a-7b1c-821f-ae844da9a988
  pos_type: skill
  pos_title: "Skill: write-skill"
  pos_created: "2026-06-21"
  pos_updated: "2026-08-11"
  pos_lifecycle: active
  pos_skill_version: 2.0.1
  pos_system_refs: ["[[system/contracts/core/system-artifact-ownership-and-capability-boundary]]", "[[system/contracts/core/capability-interface]]", "[[system/contracts/core/personalos-mutation-contract]]", "[[system/runbooks/core/personalos-mutation]]", "[[system/runbooks/core/test-before-bulk]]"]
  pos_reads_profile_keys: ["skill", "template", "contract", "runbook", "check"]
  pos_writes_profile_keys: ["skill"]
  pos_template_refs: ["[[system/templates/skill]]"]
  pos_invokes_skill_refs: ["[[skills/pos-verify/SKILL]]"]
  pos_check_refs: ["[[system/checks/pos-v1-contract]]", "[[system/checks/system/capability-control-plane-integrity]]", "[[system/checks/core/personalos-mutation-postflight]]"]
---

# Skill: write-skill

## Purpose

Create or revise one shared PersonalOS skill without inventing a second skill format, duplicating system rules inside the skill, or breaking runtime discovery. `SKILL.md` remains the single canonical skill record; `scripts/`, `references/` and `assets/` are optional local execution resources rather than companion truth records.

## Contract

This skill guarantees:

- A MECE check happens before a new skill folder is created. Extend an existing capability when it already owns the intent.
- The host runtime's authoritative skill-authoring guidance is followed for discovery, instruction quality and resource design.
- Every shared PersonalOS skill uses the runtime envelope from [[system/templates/skill]]: top-level `name` and `description`, plus the closed `pos_*` record namespace inside `metadata`.
- `pos_created` and `pos_updated` are emitted as quoted ISO-date strings so YAML loaders cannot turn them into non-JSON-serializable date objects during Runtime-Agent skill loading.
- `name` matches the lower-kebab skill folder and is not duplicated as `capability_key`.
- POS integration is declared only when present. No empty `pos_system_refs`, I/O, template, invocation or check lists are written.
- `pos_writes_profile_keys` describes POS-record writes only and always has `pos_check_refs`. External side effects are explained in the body and are not collapsed into a generic `mutating` field.
- Persisted POS-record shapes and general POS semantics come from `/system`; skill-local resources contain only execution-specific scripts, references, prompts, examples, fixtures or assets.
- New routable skills are connected to `skills/RESOLVER.md`, `skills/index.md` and representative `routing-eval.jsonl` cases.
- Every write is validated against the runtime contract, the `pos-v1` Registry, resolver health and the explicit POS postflight.

## Workflow

1. **Confirm scope and ownership.**
   Read the request, `skills/RESOLVER.md`, `skills/index.md` and the closest existing skills. If the workflow is still only a candidate, route to `skillify`. If it belongs to one repository or one agent, keep it at that narrower owner unless {{user_name}} explicitly requests a shared POS skill.

2. **Read the governing contracts.**
   Read the direct `pos_system_refs` above, the `skill` profile in `system/data-model/profiles/skill.yaml` and [[system/templates/skill]]. Apply the host's installed skill-authoring guidance when available. General POS semantics come only from the applicable owners under [[system/index]].

3. **Design the capability boundary.**
   Define the positive trigger, nearest non-goals, inputs, outputs, side effects, approval boundary, failure behavior and required resources. Keep `description` focused on selection: what the skill handles and when it must not be selected.

4. **Create or revise the single `SKILL.md`.**
   Use only `name`, `description`, optional `license`, optional `allowed-tools` and `metadata` on top level. Within `metadata`, write the eight required POS fields in Foundation order:

   ```yaml
   metadata:
     pos_schema_version: pos-v1
     pos_id: <uuidv7>
     pos_type: skill
     pos_title: "Skill: <name>"
     pos_created: "YYYY-MM-DD"
     pos_updated: "YYYY-MM-DD"
     pos_lifecycle: active
     pos_skill_version: 1.0.0
   ```

   Preserve `pos_id` and `pos_created` on revision. Add capability fields only for real POS interfaces. Structure the body for the job; there is no universal mandatory H2 list.

5. **Place resources by authority.**
   Put reusable code in `scripts/`, detailed execution documentation or examples in `references/`, and non-context output resources in `assets/`. Move any general rule, convention, framework, runbook, check or persisted POS-record template to its canonical `/system` owner and reference it from the skill.

6. **Update routing surfaces when needed.**
   For a new routable skill, add a precise Resolver route, a navigation entry and at least three realistic positive routing evals. Revisions change these surfaces only when the selection boundary changed. Do not make `skills/index.md` a second resolver.

7. **Validate the smallest representative slice.**
   Run the available host runtime validator for the skill directory. Then run:

   ```bash
   python3 system/data-model/scripts/pos_v1.py validate --files skills/<name>/SKILL.md
   python3 system/checks/system/scripts/check-resolvable.py
   python3 skills/pos-verify/scripts/run.py --files <explicit-changed-files>
   ```

   Run skill-local tests or scripts when present. If several skills or records will change, apply [[system/runbooks/core/test-before-bulk]] before expanding beyond the pilot.

8. **Rebuild exposure.**
   Run `system/checks/system/scripts/check-resolvable.py` when the shared skill surface changed, or report it as an explicit next step if the current environment cannot safely execute it.

## Output Format

A successful run reports:

- created or revised canonical `SKILL.md` and any justified local resources;
- whether Resolver, index and routing evals changed or were explicit no-ops;
- runtime-validator, Registry, resolver, local-test and `pos-verify` results;
- external side effects, approvals or partial writes, if any;
- relink status.

## Anti-Patterns

- Creating a second canonical skill file such as `CAPABILITY.md`.
- Restoring the Legacy flat fields `schema_version`, `type`, `role`, `status`, `version`, `triggers`, `tools` or `mutating` on top level.
- Copying rules or POS-record templates into a skill because the proper `/system` owner is missing.
- Treating every external side effect as a POS-record mutation, or omitting checks when the skill actually writes POS records.
- Requiring every skill to use the same body sections or local resource folders.
- Adding broad discovery language that overlaps another skill without an explicit negative boundary.
- Creating `LEARNINGS.md`, scratch queues, feedback queues or second task lists.
- Bulk-migrating existing skills merely because the new envelope exists.

## Resources

- `filesystem` — reads and writes the explicit skill package and routing surfaces.
- `shell` — runs runtime, Registry, resolver, local test, postflight and relink checks.

## Change History

- **{{install_date}}** | Foundation adopted from PersonalOS Boilerplate.

Attribution

vincentmummevincentmumme
View sourceSee grades on GitHubMore from vincentmumme →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →