> tkr-skill-writer
Guide for creating and structuring skills with consistent formatting, clear documentation, and proper reference organization. Use when creating new skills or updating existing skill documentation.
curl "https://skillshub.wtf/tomkrikorian/visionOSAgents/tkr-skill-writer?format=md"TKR Skill Writer
Description and Goals
This skill provides guidelines and templates for creating well-structured skills that follow consistent patterns in this repository while staying aligned with the current Codex skill guide. Skills should be clear, discoverable, and provide actionable guidance for developers.
Goals
- Standardize skill structure across all skills in the repository
- Ensure skills are discoverable and easy to navigate
- Provide clear "when to use" guidance for each skill
- Maintain consistent reference file organization
- Keep repo conventions separate from actual Codex requirements
- Include optional Codex metadata when it improves discovery and presentation
- Enable efficient skill creation and maintenance
What This Skill Should Do
When creating or updating a skill, this skill guides you to:
-
Start from the official minimum:
- A skill folder with a
SKILL.mdfile - Frontmatter with
nameanddescription - Instructions that explain exactly when the skill should trigger
- A skill folder with a
-
Apply this repo's preferred structure:
- Description and Goals
- What This Skill Should Do
- Information About the Skill (with subcategories)
-
Create reference files that are:
- One level deep from SKILL.md (e.g.,
references/filename.md) - Use relative paths from the skill root
- Avoid deeply nested reference chains
- One level deep from SKILL.md (e.g.,
-
Organize component/system references in tables with:
- Component/System name as a clickable link:
[ComponentName](references/componentname.md) - "When to Use" descriptions that clearly explain when to load each reference
- Component/System name as a clickable link:
-
Add optional metadata when useful:
- Create
agents/openai.yamlfor UI metadata in the Codex app - Set
interface.display_name,short_description,icon_small,icon_large, andbrand_color - Add
interface.default_promptonly when a starter prompt will improve skill discoverability or invocation clarity - Add
policyordependenciesonly when the skill genuinely needs them
- Create
-
Follow consistent formatting:
- Use markdown links for file references
- Keep tables readable and scannable
- Provide clear, actionable descriptions
Information About the Skill
Skill Structure Template
Every SKILL.md must satisfy the official minimum format. In this repo, the preferred structure is the three-section layout below:
skill-name/
├── SKILL.md
├── agents/
│ └── openai.yaml
├── assets/
│ └── logo.svg
└── references/
└── reference.md
---
name: skill-name
description: Brief description of what the skill does and when to use it.
---
# Skill Name
## Description and Goals
[Description of the skill, its purpose, and goals]
### Goals
- Goal 1
- Goal 2
- Goal 3
## What This Skill Should Do
[Clear explanation of what the skill accomplishes and how it should be used]
## Information About the Skill
### Core Concepts
[Important concepts and principles]
### Reference Tables
[Tables organizing references with clickable links and "When to Use" descriptions]
### Implementation Patterns
[Code examples and patterns]
### Pitfalls and Checks
[Common mistakes and things to watch for]
File Reference Guidelines
- Use relative paths from the skill root directory
- Keep references one level deep:
references/filename.md - Avoid nested chains: Don't create references that point to other references that point to more references
- Use markdown links:
[ComponentName](references/componentname.md)
Optional Metadata
Codex supports optional skill metadata in agents/openai.yaml. Use it when the skill benefits from a polished display name, icon, short description, brand color, invocation policy, or declared tool dependencies.
interface:
display_name: "Optional user-facing name"
short_description: "Optional user-facing description"
icon_small: "../assets/small-logo.svg"
icon_large: "../assets/large-logo.png"
brand_color: "#3B82F6"
default_prompt: "Optional surrounding prompt to use the skill with"
policy:
allow_implicit_invocation: false
dependencies:
tools:
- type: "mcp"
value: "openaiDeveloperDocs"
description: "OpenAI Docs MCP server"
transport: "streamable_http"
url: "https://developers.openai.com/mcp"
Use policy and dependencies only when they materially improve the skill. Do not add them by default just because the fields exist.
Table Format
Reference tables should use this format:
| Component | When to Use |
|-----------|-------------|
| [`ComponentName`](references/componentname.md) | Clear description of when to use this component. |
Reference File Naming
- Component files:
{name}component.md(e.g.,modelcomponent.md) - System files:
system.md(consolidate all system info in one file) - Other references: Use descriptive, lowercase names with hyphens
Best Practices
- Keep "When to Use" descriptions concise but informative
- Group related components/systems into logical categories
- Provide code examples in implementation patterns sections
- Document common pitfalls and how to avoid them
- Update the skill description in the frontmatter to match the content
- Keep each skill focused on one job
- Prefer instructions over scripts unless deterministic tooling is required
- Write imperative steps with explicit inputs and outputs
- Test prompts against the skill description to confirm the trigger behavior is correct
- Use
$skill-creatorfirst when you want a starting point from the official Codex workflow - Treat repo-specific layout rules as conventions, not as requirements imposed by Codex itself
> related_skills --same-repo
> visionos-widgetkit-developer
Build and debug WidgetKit widgets for Apple Vision Pro (visionOS), including mounting styles (elevated/recessed), textures (glass/paper), proximity-aware layouts via LevelOfDetail, and timeline update troubleshooting.
> visionos-immersive-media-developer
Implement immersive and spatial video experiences on Apple Vision Pro (visionOS), including RealityKit VideoPlayerComponent setup, portal/progressive/full immersive viewing modes, transitions and events, comfort mitigation, and Apple Immersive Video authoring workflows.
> usd-editor
Guide for modifying USD ASCII (.usda) files, including prims, properties, composition arcs, variants, and transforms. Use when editing or reviewing .usda files by hand.
> spatial-swiftui-developer
Design and implement visionOS SwiftUI scenes that integrate RealityKit content. Use when building spatial UI with RealityView, Model3D, attachments, volumetric windows, ImmersiveSpace, or spatial gestures, or when choosing SwiftUI vs RealityKit APIs for 3D presentation.