本文へ移動
cccskills
無料GitHub で公開

planning-guidelines

Core planning principles for Portfolio Buddy 2 development. Use when: planning any feature implementation, modification, or refactoring. Ensures code preservation, mobile/desktop optimization, and thorough requirement gathering.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md11.8 KB
  • skill-report.json40.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Planning Guidelines for Portfolio Buddy 2

Core Principles

When planning and implementing features for Portfolio Buddy 2, always follow these fundamental principles:

  1. Preserve Existing Code - Default to extending rather than replacing
  2. Optimize for Mobile & Desktop - Every feature must work well on both
  3. Ask Clarifying Questions - Gather complete context before execution
  4. Integrate Seamlessly - New code should feel native to the existing codebase

Code Preservation Strategy

Default Behavior: Always Preserve

Rule: Preserve existing code unless explicitly instructed to refactor or rewrite.

When implementing new features or fixes:

  • ✅ Extend existing components
  • ✅ Add new functions alongside existing ones
  • ✅ Preserve existing patterns and conventions
  • ✅ Maintain backward compatibility
  • ❌ Don't refactor working code "just because"
  • ❌ Don't introduce new patterns without justification

Exception: Massively Better Options

You MAY propose improvements to existing code ONLY when ALL conditions are met:

  1. Very Low Risk - Change is isolated, well-understood, easily reversible
  2. Massive Upside - Significant benefit (correctness, performance, maintainability)
  3. No Unnecessary Complexity - Solution is simpler or equal complexity
  4. Clear Justification - Can explain why exception applies

When exception applies, you MUST:

  • Explain the problem with current implementation
  • Show the proposed improvement
  • Demonstrate why it meets all three criteria
  • Get user approval before implementing

Real Example: Annual Growth Rate Fix

Situation: During implementation of Trading Days update, discovered Annual Growth Rate calculation was mathematically incorrect.

Current (incorrect) code:

const tradingPeriodDays = uniqueTradingDates.size || 1;  // 150 days
const annualGrowthRate = (totalPnl / startingCapital / tradingPeriodDays) * 365 * 100;
// Result: Inflated by mixing trading days (denominator) with calendar day annualization (365)

Why exception applied:

  1. Very Low Risk ✅

    • Isolated calculation (one line)
    • Easy to understand (calendar days vs trading days)
    • Easily reversible if wrong
  2. Massive Upside ✅

    • Fixes incorrect financial metric (accuracy critical)
    • Returns were inflated by ~2.4x
    • Aligns with financial industry standards
  3. No Unnecessary Complexity ✅

    • Added 9 lines (calendar day calculation)
    • Clearer, more correct logic
    • No new dependencies

Result: User approved fix immediately because exception criteria were clearly met.


Mobile & Desktop Optimization

Every feature must be optimized for both mobile and desktop experiences.

Quick Reference Checklist

✅ Use Responsive Tailwind Classes

  • Base styles for mobile (no prefix)
  • sm: for small screens (640px+)
  • md: for medium screens (768px+)
  • lg: for large screens (1024px+)

✅ Touch Targets

  • Minimum 44x44 pixels for all interactive elements
  • Use touch-manipulation CSS class for better touch response

✅ Test Both Viewports

  • Verify layout works on mobile and desktop before completion
  • Check that text is readable on small screens
  • Ensure buttons/inputs are appropriately sized

Existing Patterns to Follow

Portfolio Buddy 2 already has excellent responsive patterns. Reference these:

Example 1: Responsive Text Sizing

className="text-xs sm:text-sm"        // Smaller on mobile
className="text-base sm:text-lg"      // Larger on desktop

Example 2: Responsive Spacing

className="gap-1 sm:gap-2"           // Tighter gaps on mobile
className="px-2 sm:px-4 py-2 sm:py-3" // Smaller padding on mobile

Example 3: Responsive Layout

className="flex flex-col sm:flex-row"  // Stack on mobile, row on desktop

Example 4: Responsive Visibility

<span className="hidden sm:inline">Total Margin</span>  // Hide text on mobile, show on desktop

See: src/components/PortfolioSection.tsx for comprehensive examples of responsive patterns throughout the application.


Clarifying Questions Framework

When to Ask Questions

Ask clarifying questions BEFORE executing when:

  • Requirements are ambiguous
  • Multiple valid approaches exist
  • Decision affects architecture or user experience
  • User's request could be interpreted multiple ways
  • You need context about business logic or domain knowledge

Question Format Template

Use this structure for ALL clarifying questions:

## Clarifying Question: [Topic]

[Brief context about why you need to ask]

**Option A: [Approach Name]** ✅ (Recommended)
- [Detail about approach]
- [Key characteristics]
- **Pros:** [Benefits]
- **Cons:** [Trade-offs]
- **Why experts prefer this:** [Technical reasoning from domain expert perspective]

**Option B: [Alternative Approach]**
- [Detail about approach]
- [Key characteristics]
- **Pros:** [Benefits]
- **Cons:** [Trade-offs]
- **Trade-offs:** [Why this isn't the top choice]

**Option C: [Another Alternative]** (if applicable)
- [Detail about approach]
- [Key characteristics]
- **Pros:** [Benefits]
- **Cons:** [Trade-offs]
- **Trade-offs:** [Why this isn't the top choice]

Key Requirements

  1. Mark Best Option - Use ✅ to indicate expert-recommended choice
  2. Explain Reasoning - "Why experts prefer this" section required
  3. Unbiased Options - Present all options fairly, let marking indicate preference
  4. Complete Context - User should understand trade-offs without additional research

Real Example: Trading Days Calculation

From today's conversation about how to calculate Trading Days:

## Clarifying Question 2: Trading Days Calculation with Date Filters

When the user sets a custom date range (Start Date/End Date), should Trading Days represent:

**Option A: The number of calendar days in the selected date range** ✅ (Recommended)
- Example: Jan 1 to Jan 31 = 31 days
- **Pros:** Simple, matches user's mental model of "days in range"
- **Cons:** Doesn't account for non-trading days
- **Why experts prefer this:** For portfolio analysis, calendar days provide accurate time-based performance metrics and match financial industry standards for annualized returns.

**Option B: The number of actual trading days (days with trades) within the date range**
- Example: Jan 1 to Jan 31 = only count days where trades occurred (e.g., 18 days)
- **Pros:** Reflects actual market activity
- **Cons:** Can be misleading - a strategy might not trade every day by design
- **Trade-offs:** Better for measuring trading frequency, not time-based performance

Outcome: User chose Option B, demonstrating how clear options enable informed decisions.


Decision Criteria

When to Preserve vs Improve

Use this decision tree:

Is the code broken or incorrect?
├─ YES → Fix it (with explanation)
└─ NO → Is there a massively better option?
    ├─ YES → Does it meet ALL exception criteria?
    │   ├─ YES → Propose improvement (get approval)
    │   └─ NO → Preserve existing code
    └─ NO → Preserve existing code

Risk Assessment Checklist

Before proposing any change to existing code, verify:

  • Change is isolated to specific files/functions
  • No ripple effects on other features
  • TypeScript compilation succeeds
  • No breaking changes to interfaces
  • Existing tests still pass (if tests exist)
  • Can be reverted with single git revert

Complexity Evaluation

Avoid unnecessary complexity:

  • ❌ Adding new libraries when existing ones suffice
  • ❌ Introducing new patterns when existing patterns work
  • ❌ Over-engineering simple features
  • ❌ Premature optimization
  • ✅ Using existing utilities and components
  • ✅ Following established patterns
  • ✅ Simple, readable solutions

Integration with Other Skills

This skill works alongside other Portfolio Buddy 2 skills:

  • Use with planning-framework - Apply Musk's 5-step algorithm and ICE scoring for feature planning
  • Reference coding-standards - Follow React 19 and TypeScript standards during implementation
  • Check architecture-reference - Understand component hierarchy and existing patterns before adding code
  • Consult migration-tracker - Verify feature parity and check for known issues before starting
  • Load portfolio-context - Get tech stack and architectural constraints context

Workflow:

  1. Load planning-guidelines (this skill) → Understand principles
  2. Load planning-framework → Plan the feature approach
  3. Check architecture-reference → Find where code goes
  4. Apply coding-standards → Write the code correctly
  5. Update migration-tracker → Document what was added

Real Portfolio Buddy 2 Examples

Example 1: Risk-Free Rate Default (Code Preservation)

Task: Set Risk-Free Rate default to 4%

Approach: Pure preservation

  • Found existing code: useState<number>(0)
  • Changed ONLY the default value: useState<number>(4)
  • Preserved everything else: input field, validation, usage in Sortino Ratio
  • Result: One line changed, zero risk

Example 2: Trading Days Update (Code Preservation)

Task: Make Trading Days recalculate when date range changes

Approach: Extend existing calculation

  • Kept existing tradingPeriodDays variable and display
  • Added new logic to count unique dates from filtered trades
  • Preserved all downstream usage (Annual Growth Rate, etc.)
  • Result: Extended, didn't replace

Example 3: Total Margin Button (Seamless Integration)

Task: Add "Set to Total Margin" button for Starting Capital

Approach: Mobile/desktop optimized integration

  • Added button next to existing Starting Capital input
  • Used existing Portfolio Buddy 2 responsive patterns:
    • className="flex items-center gap-1 sm:gap-2" (responsive spacing)
    • <span className="hidden sm:inline">Total Margin</span> (hide text on mobile)
    • className="h-3 w-3 sm:h-3.5 sm:w-3.5" (smaller icon on mobile)
    • touch-manipulation class for better mobile interaction
  • Matched existing blue theme and styling
  • Only appears when portfolioData exists (conditional rendering)
  • Result: Feels native, works on both viewports

Example 4: Annual Growth Rate Fix (Exception Case)

Task: Originally just fixing Trading Days calculation

Discovery: Found Annual Growth Rate calculation was mathematically incorrect

Exception Applied:

  • Very Low Risk: Isolated calculation, 9 lines added, clear logic
  • Massive Upside: Fixed inflated returns (was ~2.4x too high), critical for financial accuracy
  • No Complexity: Simpler logic (calendar days vs trading days), more maintainable

Approach:

  1. Explained the problem clearly
  2. Showed incorrect vs correct formula with examples
  3. Demonstrated exception criteria were met
  4. Got user approval
  5. Implemented fix

Result: User approved immediately because criteria were objective and clearly met.


Summary

Always:

  • Preserve existing code by default
  • Optimize for mobile AND desktop
  • Ask clarifying questions with ✅ marked recommendations
  • Integrate seamlessly with existing patterns

Only when ALL criteria met:

  • Propose improvements (low risk + massive upside + no added complexity)
  • Get user approval before implementing

Never:

  • Refactor working code without justification
  • Add complexity unnecessarily
  • Guess at requirements when you could ask
  • Ignore mobile or desktop experience

This skill ensures Portfolio Buddy 2 remains maintainable, consistent, and user-friendly across all devices while preserving the stability of working code.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Trigger for: explaining current FAR, DFARS, or agency-supplement text; determining documented acquisition-policy status for an agency and FAR part; comparing codified text, RFO model text, and agency deviations; tracing acquisition rulemaking; finding procurement comment periods; analyzing public comments; refreshing prior policy analysis; or producing an Acquisition Policy Impact Brief. Use published federal sources and supplied policy documents without making legal or procurement-specific applicability determinations. Do not use for clause selection, market research execution, opportunities, pricing, grants, or cooperative agreements.

日本語の概要は準備中です。原文の説明を表示しています。

aiskillstore/marketplace4322026年10月12日 更新

Systematic framework for extracting actionable items from documents and organizing them into prioritized, trackable checklists. Use when converting reports, meeting notes, audits, or any document with embedded action items into structured TODO lists.

日本語の概要は準備中です。原文の説明を表示しています。

aiskillstore/marketplace4322026年10月12日 更新

Browser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video

日本語の概要は準備中です。原文の説明を表示しています。

aiskillstore/marketplace4322026年10月12日 更新

This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.

日本語の概要は準備中です。原文の説明を表示しています。

aiskillstore/marketplace4322026年10月12日 更新

Run AI apps via inference.sh CLI - image generation, video creation, LLMs, search, 3D, Twitter automation. Models: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter, and many more. Use when running AI apps, generating images/videos, calling LLMs, web search, or automating Twitter. Triggers: inference.sh, infsh, ai model, run ai, serverless ai, ai api, flux, veo, claude api, image generation, video generation, openrouter, tavily, exa search, twitter api, grok

日本語の概要は準備中です。原文の説明を表示しています。

aiskillstore/marketplace4322026年10月12日 更新

Agile ceremonies and sprint management specialist. Use when running standups, retrospectives, sprint planning, or tracking sprint progress.

日本語の概要は準備中です。原文の説明を表示しています。

aiskillstore/marketplace4322026年10月12日 更新

aiskillstore のスキルをすべて見る

このスキルの問題を報告する