Use this file to discover all available pages before exploring further.
Different AI models respond better to different prompting styles. This guide covers model-specific techniques and provides ready-to-use prompt refiner skills.
Works everywhere: These prompting techniques apply to both CLI and Factory App.
Weak: “Fix the bug in auth”Strong: “Fix the login timeout bug where users get logged out after 5 minutes of inactivity. The session should persist for 24 hours.”
Provide context before instructions
Weak: “Add error handling”Strong: “This API endpoint handles payment processing. It currently crashes silently on network errors. Add error handling that logs the error, returns a user-friendly message, and triggers an alert.”
Include acceptance criteria
Weak: “Make it faster”Strong: “Optimize the search query. Success criteria: query time under 100ms for 10k records, no change to result accuracy, passes existing tests.”
Specify constraints explicitly
Weak: “Refactor this code”Strong: “Refactor this code to use the repository pattern. Constraints: don’t change the public API, maintain backward compatibility, keep the same test coverage.”
Claude responds exceptionally well to XML-style tags for organizing complex prompts:
<context>This is a React application using TypeScript and Zustand for state management.The auth module handles user sessions and JWT tokens.</context><task>Add a "remember me" checkbox to the login form that extends session duration to 30 days.</task><requirements>- Store preference in localStorage- Update JWT expiration accordingly- Add unit tests for the new functionality</requirements>
2
Put examples in dedicated sections
When you want specific output formats, show examples:
<example>Input: "user not found"Output: { code: "USER_NOT_FOUND", message: "The specified user does not exist", httpStatus: 404 }</example>Now handle these error cases following the same pattern:- Invalid password- Account locked- Session expired
3
Use thinking prompts for complex reasoning
For complex decisions, ask Claude to think through options:
Before implementing, analyze:1. What are the tradeoffs between approach A and B?2. Which approach better fits our existing patterns?3. What edge cases should we consider?Then implement the better approach.
Copy the prompt refiner skills below to ~/.factory/skills/ to use them. Learn more about skills in the Skills documentation.
---name: prompt-refiner-claudedescription: Refine prompts for Claude models (Opus, Sonnet, Haiku) using Anthropic's best practices. Use when preparing complex tasks for Claude.---# Claude Prompt Refiner## When to UseInvoke this skill when you have a task for Claude that:- Involves multiple steps or files- Requires specific output formatting- Needs careful reasoning or analysis- Would benefit from structured context## Refinement Process### 1. Analyze the Draft PromptReview the user's prompt for:- [ ] Clear outcome definition- [ ] Sufficient context- [ ] Explicit constraints- [ ] Success criteria### 2. Apply Claude-Specific Patterns**Structure with XML tags:**- `<context>` - Background information, codebase state- `<task>` - The specific action to take- `<requirements>` - Must-have criteria- `<constraints>` - Limitations and boundaries- `<examples>` - Sample inputs/outputs if helpful**Ordering matters:**1. Context first (what exists)2. Task second (what to do)3. Requirements third (how to do it)4. Examples last (clarifying edge cases)### 3. Enhance for ReasoningFor complex tasks, add:- "Think through the approach before implementing"- "Consider these edge cases: ..."- "Explain your reasoning for key decisions"### 4. Output the Refined PromptPresent the improved prompt with:- Clear section headers- XML tags where beneficial- Specific, measurable criteria## Example Transformation**Before:**"Add caching to the API"**After:**
GPT models respond well to clear role definitions:
You are a senior TypeScript developer reviewing code for a production e-commerce platform.Focus on: type safety, error handling, and performance.Review this checkout flow implementation...
2
Use numbered steps for procedures
GPT follows numbered instructions reliably:
Complete these steps in order:1. Read the current implementation in src/auth/2. Identify all places where tokens are validated3. Create a centralized token validation utility4. Update all call sites to use the new utility5. Add unit tests for the utility6. Run the test suite and fix any failures
3
Be explicit about output format
Specify exactly what you want:
Return your analysis as a markdown document with these sections:## Summary (2-3 sentences)## Issues Found (bulleted list)## Recommended Changes (numbered, in priority order)## Code Examples (if applicable)
---name: prompt-refiner-gptdescription: Refine prompts for GPT models (GPT-5, GPT-5.1, Codex) using OpenAI's best practices. Use when preparing complex tasks for GPT.---# GPT Prompt Refiner## When to UseInvoke this skill when you have a task for GPT that:- Requires a specific persona or expertise- Involves procedural steps- Needs structured output- Benefits from explicit examples## Refinement Process### 1. Analyze the Draft PromptReview for:- [ ] Clear role/persona definition- [ ] Step-by-step breakdown (if procedural)- [ ] Output format specification- [ ] Concrete examples### 2. Apply GPT-Specific Patterns**Role framing:**Start with "You are a [specific role] working on [specific context]..."**Numbered procedures:**Break complex tasks into numbered steps that build on each other.**Output specification:**Be explicit: "Return as JSON", "Format as markdown with headers", etc.**Chain of thought:**For reasoning tasks, add: "Think through this step by step."### 3. Structure the Prompt**Effective order for GPT:**1. Role definition (who/what)2. Context (background info)3. Task (what to do)4. Steps (how to do it, if procedural)5. Output format (what to return)6. Examples (optional clarification)### 4. Output the Refined PromptPresent with:- Clear role statement- Numbered steps where applicable- Explicit output requirements## Example Transformation**Before:**"Review this code for security issues"**After:**
You are a senior security engineer conducting a security audit of a Node.js payment processing service.Context: This service handles credit card transactions and communicates with Stripe’s API. It runs in AWS ECS.Task: Review the code in src/payments/ for security vulnerabilities.Steps:
Check for proper input validation on all endpoints
Verify secrets are not hardcoded or logged
Review authentication and authorization logic
Check for SQL injection and XSS vulnerabilities
Verify proper error handling that doesn’t leak sensitive info
Output format:
Return a security report in markdown with:
Critical: Issues that must be fixed before deployment
High: Significant risks that should be addressed soon
For team-specific needs, create a custom prompt refiner:
---name: prompt-refiner-teamdescription: Refine prompts using our team's conventions and project context.---# Team Prompt Refiner## Our Conventions- We use the repository pattern- All services have interfaces defined first- Tests use our custom test utilities from @/test-utils## Checklist for Prompts1. [ ] References relevant existing code2. [ ] Specifies which layer (API, service, repository)3. [ ] Mentions related tests to update4. [ ] Includes acceptance criteria## Template
Context: [What exists, what module/layer]
Task: [Specific action]
Patterns to follow: [Reference existing similar code]
Tests: [What tests to add/update]
Done when: [Acceptance criteria]