Skip to main content
Custom prompts let you replace the built-in prompt template for any phase with your own version. This gives advanced users full control over LLM instructions without forking the project.

How It Works

When a phase runs, Skaro loads its prompt template using a two-step lookup:
  1. Project override.skaro/prompts/{name}.md
  2. Built-in defaultskaro_core/prompts/{name}.md (inside the package)
If a project-level file exists, it is used instead of the built-in. If not, the built-in template is used as usual. This means existing projects are not affected — the feature is fully opt-in.

Quick Start

1

Create the prompts directory

mkdir .skaro\prompts
2

Copy the built-in prompt you want to customize

Find the original in the Skaro package (src/skaro_core/prompts/) and copy it:
# Example: customize the Clarify phase prompt
cp (pip show skaro | Select-String Location).ToString().Split()[-1]\skaro_core\prompts\clarify.md .skaro\prompts\clarify.md
Or simply create a new file from scratch — only the filename must match.
3

Edit the prompt

Open .skaro/prompts/clarify.md in your editor and modify the instructions as needed.
4

Run the phase

The next time the Clarify phase runs, Skaro will use your custom prompt automatically. No configuration changes required.

Available Prompts

Each filename corresponds to a specific phase or sub-action:
FilePhaseDescription
clarify.mdClarifyQuestions to find gaps in the task spec
plan.mdPlanStage-by-stage implementation plan
implement.mdImplementCode generation instructions
review.mdReviewCross-validation and code review
architecture.mdArchitectureArchitecture document review
architecture-chat.mdArchitectureInteractive architecture chat
architecture-apply.mdArchitectureApply review recommendations
adr-generate.mdArchitectureGenerate Architecture Decision Records
devplan.mdDevPlanCreate a development plan
devplan-imported.mdDevPlanPlan for imported projects
devplan-update.mdDevPlanUpdate an existing plan
repo-analyze.mdImportAnalyze existing repository
repo-architecture.mdImportExtract architecture from code
repo-completed-work.mdImportDetect completed work
repo-constitution.mdImportGenerate constitution from code

Placeholders

Some prompts contain placeholders that Skaro replaces at runtime (e.g., {spec_template}, {review_section}, {user_guidance}). Keep these placeholders intact in your custom prompt — Skaro substitutes them with actual content before sending to the LLM. If you remove a placeholder, the corresponding context will not be injected.

Skills vs Custom Prompts

Skills and custom prompts both customize LLM behavior, but at different levels:
SkillsCustom Prompts
ScopeAppended to the system promptReplace the entire phase prompt
FormatYAML with instructions fieldFull Markdown prompt template
GranularityAdditive — multiple skills combineOne override per phase
Use caseAdd conventions and patternsChange the fundamental instructions
Start with skills for most customization needs. Custom prompts are for cases where you need to fundamentally change how a phase asks the LLM to behave — for example, changing the output format, adding domain-specific reasoning steps, or restructuring the prompt flow entirely.

Version Control

The .skaro/prompts/ directory can be committed to Git if prompts are shared across the team, or added to .gitignore if they are personal preferences.
# Personal prompt overrides (optional)
.skaro/prompts/