ralphex-plan
Create structured implementation plan in docs/plans/
What this skill does
# Implementation Plan Creation Create an implementation plan in `docs/plans/YYYYMMDD-<task-name>.md` with interactive context gathering. ## Prerequisites: Verify CLI Installation Check if ralphex CLI is installed (needed to execute the plan after creation): ```bash which ralphex ``` **If not found**, inform user they'll need it to execute the plan: - **macOS (Homebrew)**: `brew install umputun/apps/ralphex` - **Linux (Debian/Ubuntu)**: download `.deb` from https://github.com/umputun/ralphex/releases - **Linux (RHEL/Fedora)**: download `.rpm` from https://github.com/umputun/ralphex/releases - **Any platform with Go**: `go install github.com/umputun/ralphex/cmd/ralphex@latest` Proceed with plan creation regardless, but remind user to install before execution. ## Step 0: Parse Intent and Gather Context Before asking questions, understand what the user is working on: 1. **Parse user's command arguments** to identify intent: - "add feature Z" / "implement W" → feature development - "fix bug" / "debug issue" → bug fix plan - "refactor X" / "improve Y" → refactoring plan - "migrate to Z" / "upgrade W" → migration plan - generic request → explore current work 2. **Launch Explore agent** (via Task tool with `subagent_type: Explore`) to gather relevant context based on intent: **For feature development:** - locate related existing code and patterns - check project structure (README, config files, existing similar implementations) - identify affected components and dependencies **For bug fixing:** - look for error logs, test failures, or stack traces - find related code that might be involved - check recent git changes in problem areas **For refactoring/migration:** - identify all files/components affected - check test coverage of affected areas - find dependencies and integration points **For generic/unclear requests:** - check `git status` and recent file activity - examine current working directory structure - identify primary language/framework from file extensions and config files 3. **Synthesize findings** into context summary: - what work is in progress - which files/areas are involved - what the apparent goal is - relevant patterns or structure discovered ## Step 1: Present Context and Ask Focused Questions Show the discovered context, then ask questions **one at a time** using the AskUserQuestion tool: "Based on your request, I found: [context summary]" **Ask questions one at a time (do not overwhelm with multiple questions):** 1. **Plan purpose**: use AskUserQuestion - "What is the main goal?" - provide multiple choice with suggested answer based on discovered intent - wait for response before next question 2. **Scope**: use AskUserQuestion - "Which components/files are involved?" - provide multiple choice with suggested discovered files/areas - wait for response before next question 3. **Constraints**: use AskUserQuestion - "Any specific requirements or limitations?" - can be open-ended if constraints vary widely - wait for response before next question 4. **Testing approach**: use AskUserQuestion - "Do you prefer TDD or regular approach?" - options: "TDD (tests first)" and "Regular (code first, then tests)" - store preference for reference during implementation - wait for response before next question 5. **Plan title**: use AskUserQuestion - "Short descriptive title?" - provide suggested name based on intent After all questions answered, synthesize responses into plan context. ## Step 1.5: Explore Approaches Once the problem is understood, propose implementation approaches: 1. **Propose 2-3 different approaches** with trade-offs for each 2. **Lead with recommended option** and explain reasoning 3. **Present conversationally** - not a formal document yet Example format: ``` I see three approaches: **Option A: [name]** (recommended) - How it works: ... - Pros: ... - Cons: ... **Option B: [name]** - How it works: ... - Pros: ... - Cons: ... Which direction appeals to you? ``` Use AskUserQuestion tool to let user select preferred approach before creating the plan. **Skip this step** if: - the implementation approach is obvious (single clear path) - user explicitly specified how they want it done - it's a bug fix with clear solution ## Step 2: Create Plan File Check `docs/plans/` for existing files, then create `docs/plans/YYYYMMDD-<task-name>.md`: ### Plan Structure ```markdown # [Plan Title] ## Overview - Clear description of the feature/change being implemented - Problem it solves and key benefits - How it integrates with existing system ## Context (from discovery) - Files/components involved: [list from step 0] - Related patterns found: [patterns discovered] - Dependencies identified: [dependencies] ## Development Approach - **Testing approach**: [TDD / Regular - from user preference in planning] - Complete each task fully before moving to the next - Make small, focused changes - **CRITICAL: every task MUST include new/updated tests** for code changes in that task - tests are not optional - they are a required part of the checklist - write unit tests for new functions/methods - write unit tests for modified functions/methods - add new test cases for new code paths - update existing test cases if behavior changes - tests cover both success and error scenarios - **CRITICAL: all tests must pass before starting next task** - no exceptions - **CRITICAL: update this plan file when scope changes during implementation** - Run tests after each change - Maintain backward compatibility ## Testing Strategy - **Unit tests**: required for every task (see Development Approach above) - **E2E tests**: if project has UI-based e2e tests (Playwright, Cypress, etc.): - UI changes → add/update e2e tests in same task as UI code - Backend changes supporting UI → add/update e2e tests in same task - Treat e2e tests with same rigor as unit tests (must pass before next task) - Store e2e tests alongside unit tests (or in designated e2e directory) ## Progress Tracking - Mark completed items with `[x]` immediately when done - Add newly discovered tasks with ➕ prefix - Document issues/blockers with ⚠️ prefix - Update plan if implementation deviates from original scope - Keep plan in sync with actual work done ## What Goes Where - **Implementation Steps** (`[ ]` checkboxes): tasks achievable within this codebase - code changes, tests, documentation updates - **Post-Completion** (no checkboxes): items requiring external action - manual testing, changes in consuming projects, deployment configs, third-party verifications - **Checkbox placement**: Checkboxes belong only in Task sections (`### Task N:` or `### Iteration N:`). Do not put checkboxes in Success criteria, Overview, or Context — they cause extra loop iterations. ## Implementation Steps <!-- Task structure guidelines: - Each task = ONE logical unit (one function, one endpoint, one component) - Use specific descriptive names, not generic "[Core Logic]" or "[Implementation]" - Aim for ~5 checkboxes per task (more is OK if logically atomic) - **CRITICAL: Each task MUST end with writing/updating tests before moving to next** - tests are not optional - they are a required deliverable of every task - write tests for all NEW code added in this task - write tests for all MODIFIED code in this task - include both success and error scenarios in tests - list tests as SEPARATE checklist items, not bundled with implementation Example (NOTICE: tests are separate checklist items): ### Task 1: Add password hashing utility - [ ] create `auth/hash` module with HashPassword and VerifyPassword functions - [ ] implement secure hashing with configurable cost - [ ] write tests for HashPassword (success + error cases) - [ ] write tests for VerifyPassword (success + error cases) - [ ] run project tests - must pass before task 2 ### Task 2: Add user registration endpoi
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.