{/ This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. /}

One Three One Rule

Structured decision-making framework for technical proposals and trade-off analysis. When the user faces a choice between multiple approaches (architecture decisions, tool selection, refactoring strategies, migration paths), this skill produces a 1-3-1 format: one clear problem statement, three distinct options with pros/cons, and one concrete recommendation with definition of done and implementation plan. Use when the user asks for a "1-3-1", says "give me options", or needs help choosing between competing approaches.

Skill metadata

Source Optional — install with hermes skills install official/communication/one-three-one-rule
Path optional-skills/communication/one-three-one-rule
Version 1.0.0
Author Willard Moore
License MIT
Tags communication, decision-making, proposals, trade-offs

Reference: full SKILL.md

ℹ️ Info

The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.

1-3-1 Communication Rule

Structured decision-making format for when a task has multiple viable approaches and the user needs a clear recommendation. Produces a concise problem framing, three options with trade-offs, and an actionable plan for the recommended path.

When to Use

Do NOT use for simple questions with one obvious answer, debugging sessions, or tasks where the user has already decided on an approach.

Procedure

  1. Problem (one sentence)
  2. State the core decision or desired outcome in a single concise sentence.
  3. Focus on the what, not the how — no implementation details, tool names, or specific technologies.
  4. Keep it tight. If you need "and", you're describing two problems.

  5. Options (exactly three)

  6. Present three distinct, viable approaches labeled A, B, C.
  7. Each option gets a brief description, pros, and cons.
  8. Options should represent genuinely different strategies, not minor variations of the same approach.

  9. Recommendation (one option)

  10. State which option you recommend and why, based on the user's context and priorities.
  11. Be direct — this is your professional judgment, not a hedge.

  12. Definition of Done

  13. List the specific success criteria for the recommended option.
  14. These are concrete, verifiable outcomes — not vague aspirations.
  15. If the user picks a different option, revise this section to match.

  16. Implementation Plan

  17. Concrete steps to execute the recommended option.
  18. Include specific commands, tools, or actions where applicable.
  19. If the user picks a different option, revise this section to match.

Verification

Example

User: "Give me a 1-3-1 for adding retry logic to our API client."

Agent:

Problem: API calls to external services fail intermittently under load and need graceful retry handling.

Options:

Recommendation: Option A. The call volume doesn't justify queue infrastructure, and a shared utility with exponential backoff + jitter covers the failure mode cleanly without new dependencies.

Definition of Done: - api_retry() utility handles transient HTTP errors (429, 502, 503, 504). - Retries up to 3 times with exponential backoff and jitter. - All external API calls route through the retry utility. - Logs each retry attempt with endpoint and attempt number. - Tests cover retry exhaustion, immediate success, and transient-then-success scenarios.

Implementation Plan: 1. Create utils/api_retry.py with configurable max retries, base delay, and retryable status codes. 2. Add jitter using random.uniform(0, base_delay) to prevent thundering herd. 3. Wrap existing API calls in api_client.py with the retry utility. 4. Add unit tests mocking HTTP responses for each retry scenario. 5. Verify under load with a simple stress test against a flaky endpoint mock.