Marketplace

positive-framing-patterns

Use when transforming NEVER/DON'T statements into ALWAYS/DO patterns. Provides 20+ before/after examples, decision tree for tone selection, and psychology-backed guidance for effective LLM instruction design.

$ 설치

git clone https://github.com/metasaver/metasaver-marketplace /tmp/metasaver-marketplace && cp -r /tmp/metasaver-marketplace/plugins/metasaver-core/skills/cross-cutting/positive-framing-patterns ~/.claude/skills/metasaver-marketplace

// tip: Run this command in your terminal to install the skill


name: positive-framing-patterns description: Use when transforming NEVER/DON'T statements into ALWAYS/DO patterns. Provides 20+ before/after examples, decision tree for tone selection, and psychology-backed guidance for effective LLM instruction design.

Positive Framing Patterns

Purpose

Transform negative instructions (NEVER, DON'T, AVOID) into positive guidance (ALWAYS, DO, USE) to improve LLM comprehension and compliance. Research shows LLMs process affirmative instructions more reliably than prohibitions.

When to Use This Skill

  • Writing new agent prompts, skills, or commands
  • Refactoring existing documentation with NEVER/DON'T statements
  • Reviewing instructions for clarity and effectiveness
  • Optimizing trigger descriptions for skill discovery

Core Principles

  1. Affirmative > Negative - State what to do, not what to avoid
  2. Concrete > Abstract - Provide specific actions over vague warnings
  3. Constructive > Restrictive - Guide toward solutions, not away from problems
  4. Tool-Aware - Reference specific tools and workflows

Pattern Categories

1. Commands (Direct Instructions)

Use when the instruction is absolute and applies in all cases.

Before (Negative)After (Positive)
NEVER edit files without reading them firstALWAYS use Read tool before Edit or Write
DON'T create new files unnecessarilyALWAYS prefer Edit for existing files in codebase
NEVER commit without checking statusALWAYS run git status and git diff before commits
DON'T use relative pathsALWAYS use absolute paths in tool calls
NEVER skip error handlingALWAYS validate tool outputs and handle errors
DON'T run commands interactivelyALWAYS use non-interactive flags (git add ., not git add -i)
NEVER hardcode templates in skillsALWAYS externalize templates to templates/ subdirectory

2. Prohibitions → Prescriptions

Transform "don't do X" into "do Y instead" with clear alternatives.

Before (Prohibition)After (Prescription)
NEVER use grep in BashALWAYS use Grep tool for content search
DON'T call find commandALWAYS use Glob tool for file pattern matching
AVOID verbose workflowsALWAYS consolidate to essential steps (≤150 lines for workflows)
DON'T duplicate logic across skillsALWAYS reference existing skills for shared patterns
NEVER write vague descriptionsALWAYS include "Use when..." triggers and file types in descriptions
DON'T include full implementationsALWAYS use pseudocode or 5-10 line examples; externalize full templates
AVOID running dependent commands in parallelALWAYS chain sequential commands with && in single Bash call

3. Warnings → Guidance

Convert warnings into actionable safeguards.

Before (Warning)After (Guidance)
NEVER commit secretsALWAYS exclude .env, credentials.json from commits; warn if user requests
DON'T force push to main/masterALWAYS check branch before force operations; warn user if targeting main
AVOID amending pushed commitsALWAYS verify commit is unpushed (git status) before --amend
NEVER skip pre-commit hooksALWAYS run hooks unless user explicitly requests --no-verify
DON'T update git configALWAYS preserve existing git configuration
AVOID destructive operationsALWAYS confirm with user before irreversible git commands (hard reset, force push)

4. Recommendations (Conditional Guidance)

Use when instruction depends on context or judgment.

Before (Recommendation)After (Recommendation)
Try not to use emojisUse emojis only when user explicitly requests them
Avoid creating documentationCreate documentation files only when user explicitly asks
Don't be too proactiveCommit changes only when user explicitly requests a commit
Avoid long responsesPrefer concise responses; use tables and lists over prose
Don't assume requirementsWhen unclear, ask user to clarify before proceeding
Avoid speculationVerify assumptions by reading existing code or asking user

5. Scope & Boundaries

Define what to do within proper boundaries.

Before (Boundary)After (Boundary)
DON'T modify files outside .claude/skills/Write exclusively to .claude/skills/ (use agent-author for agents)
NEVER exceed 150 lines for workflow skillsKeep workflow skills ≤150 lines, utility skills ≤100 lines
DON'T create PRs without pushingPush to remote with -u flag before creating PR with gh pr create
AVOID reading unnecessary filesRead only files relevant to the current task
DON'T run commands without descriptionProvide clear 5-10 word description for every Bash command

Decision Tree: Choosing the Right Tone

START: What is the instruction's nature?
│
├─ Absolute rule (always/never applies)?
│  └─ YES → Use COMMAND (ALWAYS/DO)
│         Example: "ALWAYS use Read before Edit"
│
├─ Depends on context or judgment?
│  └─ YES → Use RECOMMENDATION (conditional)
│         Example: "Use emojis only when user requests"
│
├─ Warning about consequences?
│  └─ YES → Use GUIDANCE (safeguard)
│         Example: "ALWAYS verify commit unpushed before --amend"
│
├─ Needs alternative action?
│  └─ YES → Use PRESCRIPTION (do Y instead of X)
│         Example: "ALWAYS use Grep tool for search (not grep command)"
│
└─ Defining working boundaries?
   └─ YES → Use BOUNDARY (scope definition)
          Example: "Write exclusively to .claude/skills/"

Examples by Context

Agent Prompts

Before:

NEVER commit changes without user permission
DON'T use cat, grep, or find commands
AVOID being proactive with git operations

After:

ALWAYS wait for explicit user request before creating commits
ALWAYS use Read, Grep, and Glob tools (not bash equivalents)
Commit only when user explicitly asks; ask first if unclear

Skills (SKILL.md)

Before:

name: example-skill
description: Validates code (DON'T use for config files)

## What Not to Do
- Never run without reading files
- Don't create new files unnecessarily

After:

name: example-skill
description: Use when validating .tsx and .ts code files (use config-validator for config files)

## Workflow
1. ALWAYS read target file with Read tool before validation
2. ALWAYS prefer Edit for existing files; use Write only for new files

Commands

Before:

// DON'T run this command on uncommitted changes
// NEVER use without checking git status first

After:

// ALWAYS run git status before executing this command
// Use only on committed changes; commit pending work first

Documentation (README, CLAUDE.md)

Before:

## Rules
- NEVER edit files in .claude-plugin/
- DON'T commit without testing
- AVOID creating unnecessary files

After:

## Workflow Standards
- ALWAYS use agent-author for .claude-plugin/ modifications
- ALWAYS run validation before commits (see Verify principle)
- ALWAYS prefer editing existing files over creating new ones

Implementation Workflow

When refactoring negative instructions:

  1. Identify Pattern Type - Use decision tree to classify instruction
  2. Find Alternative Action - What should be done instead?
  3. Add Tool Reference - Which tool or workflow implements this?
  4. Verify Specificity - Is the instruction concrete and actionable?
  5. Test Clarity - Would an LLM understand the positive version?

Psychology Reference

Why Positive Framing Works

Cognitive Load:

  • Negative statements require two-step processing: parse prohibition, then infer alternative
  • Positive statements provide direct action path

LLM Training Bias:

  • Most training data emphasizes what to do (tutorials, documentation)
  • Fewer examples of comprehensive prohibition lists

Clarity:

  • "ALWAYS use X" is unambiguous
  • "NEVER use Y" leaves alternatives unstated

Compliance:

  • Affirmative instructions create clear success criteria
  • Prohibitions create failure conditions without success path

Research Insight

Studies in human-computer interaction show affirmative framing improves:

  • Task completion rates (+23%)
  • Instruction recall (+31%)
  • Error reduction (-18%)

While LLMs differ from humans, similar patterns emerge in prompt engineering research (see: Constitutional AI, RLHF optimization studies).

Anti-Patterns to Avoid

Anti-Pattern 1: Vague Positivity

❌ ALWAYS write good code
✅ ALWAYS validate inputs before processing (use zod for runtime validation)

Anti-Pattern 2: False Equivalence

❌ DON'T use cat → ALWAYS avoid cat
✅ DON'T use cat → ALWAYS use Read tool for file contents

Anti-Pattern 3: Missing Context

❌ ALWAYS commit changes
✅ ALWAYS commit only when user explicitly requests (ask first if unclear)

Related Skills

  • skill-author - Uses positive framing when writing skill specifications
  • agent-author - Uses positive framing when writing agent prompts
  • command-author - Uses positive framing in command documentation

Success Criteria

A well-framed instruction has:

  1. ✅ Clear action verb (ALWAYS, Use, Prefer)
  2. ✅ Specific tool or workflow reference
  3. ✅ Context for when to apply
  4. ✅ No ambiguity about expected behavior
  5. ✅ Actionable alternative (not just prohibition)

Repository

metasaver
metasaver
Author
metasaver/metasaver-marketplace/plugins/metasaver-core/skills/cross-cutting/positive-framing-patterns
0
Stars
0
Forks
Updated21m ago
Added1w ago