| name | mkdraft |
| description | Creates a timestamped markdown draft file for iterating on long-form content like PR descriptions, release notes, or issue descriptions |
Create Draft
Use this skill when you need to create and iterate on long-form content that will eventually be used with other commands or tools.
When to Use
Use this skill when:
- Writing PR descriptions, issue descriptions, or release notes
- Creating content that may need multiple rounds of feedback or iteration
- Writing anything longer than a few lines that might benefit from being refined before final use
- The final content will be passed to a command that accepts file input (e.g.,
gh pr create --body-file)
This approach is better than generating large content directly because it:
- Gives the user a dedicated file to review and edit
- Allows for iterative improvements without rewriting everything
- Keeps drafts organized by date for future reference
How the Skill Works
- The skill runs the mkdraft command to reserve a timestamped filename
- The command outputs a filename in format
drafts.local/YYYY-MM-DD_NNN.md - Draft content is written to that file
- The file can be reviewed, edited, and refined iteratively
- Once ready, the file path can be used with other commands
Implementation Details
The mkdraft command:
- Takes no arguments - invoke as
mkdraftdirectly - IMPORTANT: The command is already in your $PATH. Just run
mkdraftfrom anywhere - do NOT cd to the skill directory - Manages numbered drafts automatically within each day
- Handles file existence checking to avoid overwrites
- Persists state in
drafts.local/state.json - Draft numbering resets daily (increments within a day, resets next day)
Example Workflow
When writing a PR description:
- Use this skill to get a reserved draft filename
- Write the PR description content to that file
- User can review and optionally edit the draft
- Pass the file to
gh pr create --body-file <draft-file>
Or for release notes, issue descriptions, or any other long-form content that needs iteration.