Agent skill

precision-mastery

ALWAYS load before starting any task. Maximizes token efficiency for all file operations, searches, and command execution. Covers extract modes (content, outline, symbols, ast, lines), verbosity tuning, multi-file batching, and discover tool orchestration. Ensures agents spend tokens on outcomes, not overhead.

Stars 6
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/mgd34msu/goodvibes-plugin/tree/main/plugins/goodvibes/skills/protocol/precision-mastery

Metadata

Additional technical details for this skill

tags
precision tools verbosity batching token-efficiency extract-modes
version
1.0.0
category
protocol

SKILL.md

Resources

scripts/
  validate-precision-usage.sh
references/
  tool-reference.md

Precision Mastery

The precision engine provides token-efficient alternatives to native tools (Read, Edit, Write, Grep, Glob, WebFetch). When used correctly, you save 75-95% of tokens on file operations. This skill teaches optimal usage.

Verbosity Cheat Sheet

Use the lowest verbosity that meets your needs. Verbosity directly impacts token consumption.

Operation Default Recommended Why
precision_write standard count_only You provided the content; just confirm success
precision_edit with_diff minimal Confirm applied; skip diffs unless debugging
precision_read standard standard You need the content
precision_grep (discovery) standard files_only via output.format Discovery phase, not content phase
precision_grep (content) standard matches via output.format Need actual matched lines
precision_glob standard paths_only via output.format You need file paths, not stats
precision_exec (verify) standard minimal Unless you need full stdout/stderr
precision_exec (debug) standard standard Need output to diagnose
precision_fetch standard standard You need the content
discover files_only (verbosity param) files_only Discovery phase, not content phase
precision_symbols locations (verbosity param) locations File:line is usually enough

Token Multipliers:

  • count_only: ~0.05x tokens
  • minimal: ~0.2x tokens
  • standard: ~0.6x tokens
  • verbose: 1.0x tokens

Golden Rule: Use count_only for writes/edits where you don't need to read back what you just wrote.

Extract Mode Selection (precision_read)

Before reading a file, decide what you need from it. Extract modes reduce tokens by 60-95% compared to full content.

Mode When to Use Token Savings Example Use Case
content Need full file to read/understand 0% Reading config files, reading code to edit
outline Need structure without content 60-80% Understanding file organization, finding functions
symbols Need exported symbols for imports 70-90% Building import statements, API surface analysis
ast Need structural patterns 50-70% Refactoring, pattern detection
lines Need specific line ranges 80-95% Reading specific functions after grep

Best Practices:

  1. Start with outline to understand file structure
  2. Use symbols when building imports or understanding API surface
  3. Use lines with range: { start, end } after grep finds a location
  4. Only use content when you actually need the full file
yaml
# Step 1: Get structure
precision_read:
  files: [{ path: "src/components/Button.tsx", extract: outline }]
  verbosity: standard

# Step 2: If you need full content, read it
precision_read:
  files: [{ path: "src/components/Button.tsx", extract: content }]
  verbosity: standard

Batching Patterns

Batching is the single most important token saving technique. Always batch operations when possible.

1. Multi-File Read (Single Call)

Read 5-10 files in one precision_read call instead of 5-10 separate calls.

yaml
# Bad (5 separate calls)
precision_read:
  files: [{ path: "file1.ts" }]
precision_read:
  files: [{ path: "file2.ts" }]
# ...

# Good (1 batched call)
precision_read:
  files: [
    { path: "file1.ts", extract: outline },
    { path: "file2.ts", extract: outline },
    { path: "file3.ts", extract: outline },
    { path: "file4.ts", extract: outline },
    { path: "file5.ts", extract: outline }
  ]
  verbosity: minimal

2. Multi-Query Discover (Single Call)

Run grep + glob + symbols queries simultaneously in one discover call. This is the most powerful discovery pattern.

yaml
discover:
  queries:
    - id: find_components
      type: glob
      patterns: ["src/components/**/*.tsx"]
    - id: find_api_routes
      type: glob
      patterns: ["src/api/**/*.ts", "src/app/api/**/*.ts"]
    - id: find_auth_usage
      type: grep
      pattern: "useAuth|getSession|withAuth"
      glob: "src/**/*.{ts,tsx}"
    - id: find_hooks
      type: symbols
      query: "use"
      kinds: ["function"]
  verbosity: files_only

Why this matters: Parallel execution means all 4 queries finish in ~50ms instead of ~200ms sequential.

3. Multi-Edit Atomic Transaction (Single Call)

Apply multiple edits across files in one precision_edit call with atomic transaction. If any edit fails, all roll back.

yaml
precision_edit:
  edits:
    - path: "src/components/Button.tsx"
      find: "export default Button"
      replace: "export { Button as default }"
    - path: "src/components/index.ts"
      find: "export { default as Button } from './Button'"
      replace: "export { Button } from './Button'"
  transaction:
    mode: "atomic"
  verbosity: minimal

4. Multi-File Write (Single Call)

Create multiple files in one precision_write call.

yaml
precision_write:
  files:
    - path: "src/features/user/index.ts"
      content: |
        export * from './types';
        export * from './api';
        export * from './hooks';
    - path: "src/features/user/types.ts"
      content: |
        export interface User {
          id: string;
          email: string;
          name: string;
        }
    - path: "src/features/user/api.ts"
      content: |
        import type { User } from './types';
        export const getUser = async (id: string): Promise<User> => { /* ... */ };
  verbosity: count_only

5. Batching Precision Tools (Optimal)

The highest form of batching: wrap multiple precision calls in a single transaction.

Each operation type (read, write, exec, query) uses the corresponding precision_engine tool's schema. For example:

  • read operations use precision_read schema (with files array)
  • write operations use precision_write schema (with files array)
  • exec operations use precision_exec schema (with commands array)
  • query operations use precision_grep/precision_glob schemas
yaml
batch:
  operations:
    read:
      - files:
          - path: "src/types.ts"
            extract: symbols
    write:
      - files:
          - path: "src/features/auth/types.ts"
            content: |
              export interface User {
                id: string;
                email: string;
                name: string;
              }
    exec:
      - commands:
          - cmd: "npm run typecheck"
            expect:
              exit_code: 0
  config:
    transaction:
      mode: atomic
  verbosity: minimal

Token Budget & Pagination

For large files or batch reads, use token_budget to control output size.

yaml
# Read up to 20 files, but cap total output at 5K tokens
precision_read:
  files: [
    { path: "file1.ts" },
    { path: "file2.ts" },
    # ...
  ]
  token_budget: 5000
  page: 1  # Start with page 1
  verbosity: standard

If results are truncated, increment page to get the next batch.

Output Format Selection (precision_grep)

precision_grep has multiple output formats: count_only, files_only, locations, matches, context.

Format Use Case Token Cost
count_only Gauge scope Very Low
files_only Discovery phase Low
locations Find where something exists Medium
matches Need actual matched lines High
context Need surrounding code Very High

Progressive Disclosure: Start with count_only to gauge scope, then files_only to build a target list, then matches to get content.

Discover Tool Orchestration

The discover tool is a meta-tool that runs multiple queries (grep, glob, symbols) in parallel. Always use it BEFORE implementation.

Discovery Pattern:

  1. Run discover with multiple queries
  2. Analyze results to understand scope
  3. Plan work based on discovery findings
  4. Execute with batching
yaml
# Step 1: Discover
discover:
  queries:
    - id: existing_files
      type: glob
      patterns: ["src/features/auth/**/*.ts"]
    - id: existing_patterns
      type: grep
      pattern: "export (function|const|class)"
      glob: "src/features/**/*.ts"
  verbosity: files_only

# Step 2: Read key files with outline based on discovery
precision_read:
  files: [{ path: "src/features/auth/index.ts", extract: outline }]
  verbosity: minimal

# Step 3: Execute based on what was discovered
precision_write:
  files:
    - path: "src/features/auth/middleware.ts"
      content: "..."
  verbosity: count_only

precision_exec Patterns

1. Background Processes

Run long-running processes in the background to avoid blocking.

yaml
precision_exec:
  commands:
    - cmd: "npm run dev"
      background: true
  verbosity: minimal

2. Retry Patterns

Automatically retry flaky commands.

yaml
precision_exec:
  commands:
    - cmd: "npm install"
      retry:
        max: 3
        delay_ms: 1000
  verbosity: minimal

3. Until Patterns

Poll until a condition is met.

yaml
precision_exec:
  commands:
    - cmd: "curl http://localhost:3000/api/health"
      until:
        pattern: "ok"
        timeout_ms: 30000
  verbosity: minimal

precision_fetch Patterns

1. Batched URLs

Fetch multiple URLs in one call.

yaml
precision_fetch:
  urls:
    - url: "https://api.example.com/users"
    - url: "https://api.example.com/posts"
    - url: "https://api.example.com/comments"
  verbosity: standard

2. Extract Modes

Extract specific data from JSON responses.

yaml
precision_fetch:
  urls:
    - url: "https://api.example.com/users"
      extract: json  # Extract mode: raw, text, json, markdown, structured, etc.
  verbosity: standard

3. Service Registry Auth

Use pre-configured services for automatic authentication.

yaml
precision_fetch:
  urls:
    - url: "https://api.openai.com/v1/models"
      service: "OpenAI"  # Auto-applies bearer token from config
  verbosity: standard

Anti-Patterns (NEVER DO THESE)

  1. Using native tools: Read, Edit, Write, Glob, Grep, WebFetch should be avoided. Use precision equivalents.

  2. Setting verbosity to "verbose" for writes/edits: Wastes tokens. You just wrote the content, why read it back?

  3. Reading entire files when you only need outline/symbols: Use extract modes.

  4. Running discover queries one at a time: Batch them.

  5. Using precision_read when precision_grep would find it faster: Grep is optimized for search.

  6. Reading a file you just wrote: You already know the content.

  7. Not using discover before implementation: Blind implementation leads to mismatched patterns.

  8. Making multiple sequential precision tool calls that could be batched: If 3+ calls to the same tool, batch them.

  9. Using verbosity: verbose as default: Only use it when debugging.

  10. Ignoring token_budget for large batch reads: Without a budget, you might get truncated results.

Escalation Procedure

If a precision tool fails:

  1. Check the error: Is it user error (wrong path, bad syntax)? Fix and retry.

  2. If tool genuinely fails: Use native tool for THAT SPECIFIC TASK only.

  3. Return to precision tools: For the next operation.

  4. Log the failure: To .goodvibes/memory/failures.json.

Example:

  • precision_read fails on a specific file => Use Read for that file only, return to precision_read for other files.
  • precision_edit fails on a specific edit => Use Edit for that edit only, return to precision_edit for other edits.

NEVER: Abandon precision tools entirely because one call failed.

Decision Tree: Which Tool?

Do I know the exact file paths?
  |-- Yes -- precision_read (with appropriate extract mode)
  +-- No -- Do I know a pattern?
      |-- Yes -- precision_glob
      +-- No -- Am I searching for content?
         |-- Yes -- precision_grep
         +-- No -- Am I searching for symbols?
            |-- Yes -- precision_symbols
            +-- No -- Use discover with multiple query types

Special-purpose tools (not in tree above):

  • precision_notebook — Jupyter notebook cell operations (replace/insert/delete with cell_id targeting)
  • precision_agent — Spawn headless Claude sessions with dossier-based context injection
  • precision_config — Runtime configuration (get/set/reload)

Performance Benchmarks

Token Savings:

  • outline vs content: 60-80% savings
  • symbols vs content: 70-90% savings
  • count_only vs verbose: 95% savings
  • Batched 5 files vs 5 separate calls: 40-60% savings (overhead reduction)
  • Parallel discover 4x vs sequential: 75% speedup, similar token cost

Time Savings:

  • Parallel discover (4 queries): ~50ms vs ~200ms sequential
  • Batched writes (5 files): ~80ms vs ~400ms separate
  • Batched edits with transaction: atomic rollback on failure

Quick Reference

Most common patterns:

yaml
# 1. Discover before implementing
discover:
  queries:
    - id: files
      type: glob
      patterns: ["pattern"]
    - id: patterns
      type: grep
      pattern: "regex"
  verbosity: files_only

# 2. Read with outline first
precision_read:
  files: [{ path: "file.ts", extract: outline }]
  verbosity: minimal

# 3. Batch writes with count_only
precision_write:
  files:
    - { path: "file1.ts", content: "..." }
    - { path: "file2.ts", content: "..." }
  verbosity: count_only

# 4. Batch edits with atomic transaction
precision_edit:
  edits:
    - { path: "f1.ts", find: "...", replace: "..." }
    - { path: "f2.ts", find: "...", replace: "..." }
  transaction: { mode: "atomic" }
  verbosity: minimal

# 5. Verify with minimal output
precision_exec:
  commands:
    - { cmd: "npm run typecheck", expect: { exit_code: 0 } }
  verbosity: minimal

Remember: The precision engine saves tokens, but only when you choose the right verbosity, extract modes, and batching patterns. Use this skill as a cheat sheet for efficient tool usage.

Expand your agent's capabilities with these related and highly-rated skills.

mgd34msu/goodvibes-plugin

testing-strategy

Load PROACTIVELY when task involves writing tests, improving coverage, or test infrastructure. Use when user says "add tests", "write unit tests", "set up E2E testing", "improve coverage", or "add mocks". Covers Vitest/Jest unit tests, React Testing Library component tests, Playwright E2E tests, MSW API mocking, test organization and naming, fixture management, coverage targets and thresholds, snapshot testing, and CI integration.

6 1
Explore
mgd34msu/goodvibes-plugin

api-design

Load PROACTIVELY when task involves building or modifying API endpoints. Use when user says "build an API", "add an endpoint", "create a REST route", "set up GraphQL", or "add tRPC procedures". Covers route design and file organization, request validation with Zod, response formatting, error handling patterns, middleware composition, authentication guards, rate limiting, pagination, and API documentation generation.

6 1
Explore
mgd34msu/goodvibes-plugin

ai-integration

Load PROACTIVELY when task involves AI, LLM, or machine learning features. Use when user says "add AI chat", "implement streaming responses", "build a RAG pipeline", "add embeddings", or "integrate OpenAI". Covers chat interfaces, streaming with Vercel AI SDK, retrieval-augmented generation, vector search, embeddings pipelines, tool/function calling, and provider abstraction for OpenAI, Anthropic, and local models.

6 1
Explore
mgd34msu/goodvibes-plugin

payment-integration

Load PROACTIVELY when task involves payments, billing, or subscriptions. Use when user says "add payments", "integrate Stripe", "set up subscriptions", "add a checkout flow", or "handle billing webhooks". Covers Stripe, LemonSqueezy, and Paddle integration, checkout sessions, subscription lifecycle management, webhook verification and handling, customer portal, metered billing, refunds, and PCI compliance considerations.

6 1
Explore
mgd34msu/goodvibes-plugin

state-management

Load PROACTIVELY when task involves application state, data fetching, or form handling. Use when user says "manage state", "add data fetching", "set up Zustand", "handle form validation", or "add React Query". Covers server state (TanStack Query with caching, optimistic updates), client state (Zustand stores), form state (React Hook Form with Zod validation), URL state (search params, routing), and choosing between state solutions.

6 1
Explore
mgd34msu/goodvibes-plugin

database-layer

Load PROACTIVELY when task involves database design, schemas, or data access. Use when user says "set up the database", "create a schema", "add a migration", "write a query", or "set up Prisma". Covers schema design and normalization, ORM setup (Prisma, Drizzle), migration workflows, connection pooling, query optimization, indexing strategies, seeding, and transaction patterns for PostgreSQL, MySQL, SQLite, and MongoDB.

6 1
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results