Automated summary
Turns Permanent Portfolio allocation drift analysis into concrete buy and sell recommendations to restore 25/25/25/25 targets.
Strengths
- Calculates exact dollar adjustments per asset class from total portfolio value and targets.
- Prioritizes recommendations by urgency and drift size, with notes on taxes and order of operations.
- Supports optional satellite allocation and margin recommendations.
- Outputs a structured YAML file for manual execution.
Limitations
- Depends on allocation_analysis.yml from the prior step and does not fetch live market prices.
- Share and cost calculations are approximate and should be verified before trading.
- Is not user-invocable and is not tax or financial advice.
Use when allocation drift analysis exists and you need quantified, prioritized rebalancing trades.
Avoid when you lack a recent allocation analysis or need automated trade execution.
Security analysis
SafeThis skill is purely a text-generation/analysis step: it reads a local YAML file produced by a prior step, performs arithmetic on portfolio values, and writes a recommendations YAML. There are no declared tools, no shell/docker/network instructions, no credential or secret handling, no destructive or obfuscated commands, and the output is explicitly framed as recommendations for manual execution. The only mild consideration is the financial-advice framing, which is a domain/liability concern rather than an execution risk.
No concerns found
How this analysis is madeExamples
Run portfolio_balancer.generate_recommendations using my latest portfolio_balancer/data/allocation_analysis.yml and write the prioritized recommendations to portfolio_balancer/data/recommendations.yml.My Permanent Portfolio has drifted from 25/25/25/25; generate specific buy/sell recommendations with dollar amounts, suggested ETF trades, and implementation notes.Generate rebalancing recommendations from my allocation analysis, including satellite allocation adjustments and margin optimization if applicable.name: portfolio_balancer.generate_recommendations description: "Create specific rebalancing recommendations based on drift analysis" user-invocable: false
portfolio_balancer.generate_recommendations
Step 3/4 in portfolio_balancer workflow
Daily Permanent Portfolio analysis with allocation drift and rebalancing recommendations
Prerequisites (Verify First)
Before proceeding, confirm these steps are complete:
/portfolio_balancer.analyze_allocation
Instructions
Goal: Create specific rebalancing recommendations based on drift analysis
Generate Recommendations
Objective
Create specific, actionable rebalancing recommendations based on the allocation drift analysis to restore the 25/25/25/25 Permanent Portfolio targets.
Task
Using the allocation analysis, calculate the exact dollar amounts needed to buy or sell in each asset class to restore target allocations. Generate clear, prioritized recommendations for manual execution.
Process
-
Read the allocation analysis Load
portfolio_balancer/data/allocation_analysis.ymlfrom the analyze_allocation step. -
Determine if rebalancing is needed
- If no asset class exceeds the drift threshold, generate "no action needed" recommendation
- If rebalancing is needed, proceed to calculate specific actions
-
Calculate rebalancing amounts For each asset class:
target_value = total_portfolio_value * 0.25 adjustment = target_value - current_value- Positive adjustment = BUY
- Negative adjustment = SELL
-
Generate specific trade recommendations For each asset class needing adjustment:
- Identify the primary ETF/position to trade
- Calculate shares to buy/sell (if applicable)
- Consider transaction costs and minimums
-
Handle satellite adjustments (if enabled) If satellite allocation is off-target:
- Recommend adjustments within the stock allocation
- Balance between core index and satellite positions
-
Generate margin recommendations Based on margin analysis:
- Recommend reducing margin if cost-ineffective
- Suggest optimal margin usage if beneficial
-
Prioritize recommendations Order recommendations by:
- Assets exceeding threshold (most urgent)
- Largest drift amounts
- Satellite adjustments
- Margin optimization
-
Add implementation notes Include practical considerations:
- Tax implications (wash sale rules, capital gains)
- Order of operations (sell before buy if needed)
- Market timing considerations
Output Format
portfolio_balancer/data/recommendations.yml
A YAML file containing prioritized rebalancing recommendations.
Structure:
recommendation_date: "YYYY-MM-DD"
rebalancing_needed: true
urgency: "moderate" # none, low, moderate, high
summary: "Rebalance stocks and gold to restore 25/25/25/25 allocation"
# Detailed recommendations
recommendations:
- priority: 1
action: "SELL"
asset_class: "stocks"
amount: 3000.00
reason: "Stocks overweight by 3% ($3,000)"
suggested_trade:
symbol: "VTI"
shares: 12
approximate_value: 3000.00
notes: "Consider tax implications of selling"
- priority: 2
action: "BUY"
asset_class: "gold"
amount: 2000.00
reason: "Gold underweight by 2% ($2,000)"
suggested_trade:
symbol: "GLD"
shares: 9
approximate_value: 2070.00
notes: "Round up to whole shares"
- priority: 3
action: "BUY"
asset_class: "long_term_bonds"
amount: 1000.00
reason: "Long-term bonds underweight by 1% ($1,000)"
suggested_trade:
symbol: "TLT"
shares: 8
approximate_value: 960.00
notes: "Slight underbuy due to share price"
# Satellite recommendations (if applicable)
satellite_recommendations:
- action: "BUY"
description: "Increase satellite allocation from 10.7% to 15% of stocks"
amount: 1200.00
notes: "Consider adding to existing satellite positions or new picks"
# Margin recommendations (if applicable)
margin_recommendations:
- action: "REVIEW"
description: "Margin fees ($50/mo) exceed expected cost ($25/mo)"
recommendation: "Consider reducing margin balance or negotiating fees"
potential_savings: 300.00 # annual
# Implementation guidance
implementation:
order_of_operations:
- "1. Execute SELL orders first to generate cash"
- "2. Execute BUY orders with proceeds"
- "3. Adjust satellite positions"
tax_considerations:
- "VTI sale may trigger capital gains - check cost basis"
- "Consider tax-loss harvesting opportunities"
timing_notes:
- "Execute during market hours for best liquidity"
- "Consider limit orders to control execution price"
# No-action scenario (when rebalancing not needed)
# recommendations:
# - priority: 1
# action: "HOLD"
# reason: "All asset classes within 5% drift threshold"
# notes: "Continue monitoring; next review recommended in 30 days"
Quality Criteria
- Clear determination of whether rebalancing is needed
- Specific dollar amounts calculated for each recommended action
- Suggested trades include symbol, shares, and approximate value
- Recommendations prioritized by urgency
- Satellite recommendations included if satellite tracking enabled
- Margin recommendations included if margin analysis flagged issues
- Implementation guidance with order of operations
- Tax and timing considerations noted
- YAML is valid and parseable
- When all criteria are met, include
<promise>✓ Quality Criteria Met</promise>in your response
Context
This step translates analysis into action. The Permanent Portfolio philosophy emphasizes simplicity and discipline - rebalancing only when drift exceeds the threshold, not chasing market movements. Recommendations should be clear enough for manual execution but include enough context for informed decision-making.
Critical Reminder: This system generates RECOMMENDATIONS ONLY. No trades are executed automatically. The user must manually review and execute any trades they agree with.
Job Context
Automated daily portfolio analysis implementing Harry Browne's Permanent Portfolio strategy.
The Permanent Portfolio maintains equal 25% allocations across four asset classes designed to perform in different economic conditions:
- Stocks (25%): Prosperity/Growth
- Long-Term Bonds (25%): Deflation/Recession
- Gold (25%): Inflation
- Cash/Treasuries (25%): Tight Money/Recession
This workflow:
- Collects portfolio data via
bin/robinhood positions --saveCLI - Analyzes current allocation against 25/25/25/25 targets
- Tracks satellite stock picks (optional 10-20% of stock allocation)
- Evaluates margin usage efficiency vs fees paid
- Generates rebalancing recommendations when drift exceeds user-defined threshold
- Produces a human-readable daily report for manual review
IMPORTANT: This system is read-only. No trades are executed automatically. All recommendations require manual review and execution.
Required Inputs
Files from Previous Steps - Read these first:
portfolio_balancer/data/allocation_analysis.yml(fromanalyze_allocation)
Work Branch
Use branch format: deepwork/portfolio_balancer-[instance]-YYYYMMDD
- If on a matching work branch: continue using it
- If on main/master: create new branch with
git checkout -b deepwork/portfolio_balancer-[instance]-$(date +%Y%m%d)
Outputs
Required outputs:
portfolio_balancer/data/recommendations.yml
Guardrails
- Do NOT skip prerequisite verification if this step has dependencies
- Do NOT produce partial outputs; complete all required outputs before finishing
- Do NOT proceed without required inputs; ask the user if any are missing
- Do NOT modify files outside the scope of this step's defined outputs
On Completion
- Verify outputs are created
- Inform user: "Step 3/4 complete, outputs: portfolio_balancer/data/recommendations.yml"
- Continue workflow: Use Skill tool to invoke
/portfolio_balancer.generate_report
Reference files: .deepwork/jobs/portfolio_balancer/job.yml, .deepwork/jobs/portfolio_balancer/steps/generate_recommendations.md
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/portfolio-rebalancing-recommendation-generator-mmlj2p56/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/portfolio-rebalancing-recommendation-generator-mmlj2p56' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/portfolio-rebalancing-recommendation-generator-mmlj2p56/download' --output '.skill-downloads/portfolio-rebalancing-recommendation-generator-mmlj2p56/SKILL.md.part' && mv '.skill-downloads/portfolio-rebalancing-recommendation-generator-mmlj2p56/SKILL.md.part' '.skill-downloads/portfolio-rebalancing-recommendation-generator-mmlj2p56/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/portfolio-rebalancing-recommendation-generator-mmlj2p56/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Create Interactive Maps with kepler.gl
Data & AI
Create interactive map visualizations and export standalone HTML using the keplergl Python package. Use to plot geospatial data from DataFrames, GeoJSON, or CSV.
Agent-Driven Parameter Optimization
Data & AI
Guide for optimizing configurable systems with a measurable objective, using bounded trials and evidence-based recommendations.
ICP Visitor Outreach
Data & AI
Identify signed-up users matching the ideal customer profile but stalled, and draft personalized outreach to re-engage them.