Skip to content
manage-files logo

Manage Files Skill

manage-files

Generic file I/O operations for plan directories

SKILL.md

Full skill instructions

Manage Files Skill

Generic file operations for plan directories. Provides basic CRUD operations for any file within a plan directory.

What This Skill Provides

  • Generic file read/​write/​remove operations
  • Directory listing and creation
  • File existence checking
  • Plan directory create-or-reference (atomic check/​create)
  • No content validation (caller provides complete content)

When to Activate This Skill

Activate this skill when:

  • Reading or writing arbitrary files in a plan directory
  • Creating subdirectories within a plan
  • Listing plan contents
  • Checking if files exist

Note: For typed plan documents (request.md, solution_outline.md), use pm-workflow:manage-plan-documents instead. For domain-specific files (config.toon, references.toon, status.toon), use the dedicated manage-* skills.


Storage Location

Files are stored in plan directories:

.plan/​plans/​{plan_id}/
  request.md
  solution_outline.md
  config.toon
  references.toon
  status.toon
  tasks/

Operations

Script: pm-workflow:manage-files:manage-files

read

Read file content from a plan directory.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files read \
  --plan-id {plan_id} \
  --file notes.md

Output: Raw file content (no wrapping)

write

Write content to a file in a plan directory.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files write \
  --plan-id {plan_id} \
  --file request.md \
  --content "# Request Title

Task description with multiline content.

## Section

More content here..."

Parameters:

  • --plan-id (required): Plan identifier
  • --file (required): Relative file path within plan directory
  • --content: Content to write (mutually exclusive with --stdin)
  • --stdin: Read content from stdin instead of --content

Note: The --content parameter supports multiline content. Do NOT use --stdin with shell heredocs or cat commands.

Output: Prints "Created: {path}" to stderr, exit code 0 on success

remove

Remove a file from a plan directory.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files remove \
  --plan-id {plan_id} \
  --file old-file.md

Output: Confirmation message to stderr, exit code 0 on success

list

List files in a plan directory.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files list \
  --plan-id {plan_id} \
  [--dir subdir]

Output: Simple file listing, one per line

exists

Check if a file exists.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files exists \
  --plan-id {plan_id} \
  --file config.toon

Output: Exit code 0 if exists, 1 if not

mkdir

Create a subdirectory in a plan directory.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files mkdir \
  --plan-id {plan_id} \
  --dir requirements

Output: Confirmation message to stderr, exit code 0 on success

create-or-reference

Create a plan directory if it doesn't exist, or reference an existing one. This is an atomic operation that replaces the two-step pattern of listing plans and checking for conflicts.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files create-or-reference \
  --plan-id {plan_id}

Output (TOON format):

When plan is newly created:

status: success
plan_id: my-feature
action: created
path: /​path/​to/​.plan/​plans/​my-feature

When plan already exists:

status: success
plan_id: my-feature
action: exists
path: /​path/​to/​.plan/​plans/​my-feature
current_phase: refine
domain: java

Use case: Called by plan-init to atomically check/​create plan directories.

delete-plan

Delete an entire plan directory. Used when user selects "Replace" for an existing plan during plan-init.

python3 .plan/​execute-script.py pm-workflow:manage-files:manage-files delete-plan \
  --plan-id {plan_id}

Output (TOON format):

On success:

status: success
plan_id: my-feature
action: deleted
path: /​path/​to/​.plan/​plans/​my-feature
files_removed: 5

On error (plan not found):

status: error
plan_id: my-feature
error: plan_not_found
message: Plan directory does not exist: /​path/​to/​.plan/​plans/​my-feature

Use case: Called by plan-init when user selects "Replace" to delete existing plan before creating new one. See pm-workflow:phase-1-init/​standards/​plan-overwrite.md for the full workflow.


Scripts

ScriptPurposeUsage
pm-workflow:manage-files:manage-filesAll file operations via subcommandspython3 .plan/​execute-script.py pm-workflow:manage-files:manage-files {subcommand} --help

Key Design Principles

  1. plan_id only - Never pass full paths, script resolves base via base_path()
  2. Relative file paths - --file accepts relative paths within plan dir (e.g., requirements/​REQ-001.toon)
  3. Generic file operations - Not domain-specific (no parse-plan, write-config)
  4. Plain output - read returns raw content; mutations return minimal status
  5. No validation - Caller provides complete content; no content validation

Validation Rules

CheckValidation
plan_id formatkebab-case, no special chars
file pathNo .., no absolute paths
directoryMust exist (unless mkdir)
contentNon-empty for write

Error Handling

status: error
plan_id: my-feature
file: nonexistent.md
error: file_not_found
message: File does not exist

suggestions[2]:
- Check file name spelling
- Use list subcommand to see available files

Integration Points

With Domain Skills

Domain-specific skills (manage-config, manage-references, manage-lifecycle) may use this skill for basic file operations, or import shared libraries directly.

With Orchestration Skills

Plan orchestration skills (plan-init, solution-outline, task-plan, plan-execute) use this skill for generic file I/​O.


Relationship to Domain Skills

SkillManagesUse manage-files for
manage-configconfig.toonN/​A (use manage-config)
manage-referencesreferences.toonN/​A (use manage-references)
manage-lifecyclestatus.toonN/​A (use manage-lifecycle)
manage-plan-documentsrequest.mdN/​A (use manage-plan-documents)
manage-solution-outlinesolution_outline.mdN/​A (use manage-solution-outline)
manage-taskstasks/​*.toonN/​A (use manage-tasks)
manage-filesany other fileGeneric read/​write/​list

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View