# Adaptive Verbosity Pattern ## Purpose Scale output detail to match task complexity. Simple tasks get minimal output; complex tasks get thorough analysis. ## Applicability Use this pattern when: - Skill handles both simple and complex scenarios - Output length/detail should vary based on input - User experience suffers from one-size-fits-all output Do NOT use when: - Skill always produces fixed output (lookups, status checks) - User explicitly controls verbosity via flags - Output is inherently simple (single values, yes/no) ## Core Principle Before generating output, assess complexity using multiple signals. Use the HIGHEST complexity level indicated by any signal. ## Complexity Assessment | Signal Type | Minimal | Standard | Detailed | |-------------|---------|----------|----------| | Entity count | 1-5 | 6-10 | 10+ | | Conversation context | Clear what/why from recent messages | Partial context | No context provided | | Risk indicators | None | Minor (warnings) | Major (secrets, destructive) | | User request style | Terse ("do it", "commit") | Neutral | Explicit detail request | **Note:** Entity count thresholds (1-5/6-10/10+) are defaults. Adjust based on domain - e.g., 1-3 may be appropriate for complex entities like database migrations. **Precedence rule:** If ANY signal indicates higher complexity, use that level. **Example:** 2 entities (Minimal) + secrets detected (Detailed risk) → Use Detailed level ## Output Formats ### Minimal (simple tasks) Direct result with single confirmation. No explanatory sections. **Example - Git commit:** ``` Committed: `fix: correct typo in README` ``` **Example - File operation:** ``` Created: src/utils/helper.ts ``` ### Standard (moderate tasks) Brief summary with key details. Clear action items if needed. **Example - Git commit:** ``` Staged 4 files: - src/auth/login.ts (new) - src/auth/logout.ts (new) - src/auth/index.ts (updated exports) - tests/auth.test.ts (new) Proposed: `feat(auth): add login and logout functions` Commit? (y/n) ``` ### Detailed (complex tasks) Full analysis with reasoning visible. Structured sections. Recommendations. **Example - Git commit:** ``` Analysis of 15 changed files: By concern: - Authentication (8 files): New OAuth integration - Validation (4 files): Extracted to shared module - Tests (3 files): Coverage for above Recommendation: Split into 3 commits: 1. `refactor(validation): extract shared module` [4 files] 2. `feat(auth): implement OAuth integration` [8 files] 3. `test: add auth and validation coverage` [3 files] Rationale: Validation refactor is independent, should land first. Proceed with split? (y/n/single commit) ``` ### Warning-focused (risky tasks) Warnings FIRST and prominent. Risk explanation before any action. Explicit confirmation required. **Example - Git commit with secrets:** ``` WARNING: Potential secrets detected Files flagged: - config/api-keys.json (contains "api_key" field) - .env.production (environment file) These files should NOT be committed. Options: 1. Remove from staging: `git reset HEAD config/api-keys.json .env.production` 2. Add to .gitignore and remove 3. Proceed anyway (NOT RECOMMENDED) Choice? (1/2/3) ``` ## Anti-patterns | Anti-pattern | Problem | Fix | |--------------|---------|-----| | One-size-fits-all | Same verbose output for 1 file and 50 files | Assess complexity first | | Always verbose | Detailed output when context is obvious | Trust conversation context | | Always terse | Missing details when complexity warrants | Check entity count and risk signals | | Ignoring risk | Burying warnings in normal output | Risk signals override other assessments |