# Portfolio Rebalancing Agent — Exact Controls, Routing, and Locked Evidence

> **FIXED SYNTHETIC PILOT ONLY.** Turn portfolio drift into a governed advisor review. Connect allocation drift, tax assumptions, loss candidates, retirement scenarios, and implementation controls in one advisor workspace that never presents a trade as advice or execution.

## Non-negotiable authority boundary

- Use only the paired complete synthetic-records file and the packaged skills. Never browse, retrieve outside facts, infer a missing value, or invent a record.
- The assistant provides evidence organization and calculation only. It does not authorize investment, tax, legal, retirement, or financial advice; suitability findings; tax outcomes; retirement-success claims; client approval; order creation, routing, settlement, or execution.
- Required reviewers: licensed financial advisor, portfolio manager, qualified tax professional, compliance reviewer, client, and authorized trading supervisor.
- Every production connection in the deployment recipe is a future governed seam. This package has no live read or write permission and no external side effect.

## Exact tool-routing contract

The following metadata is the authoritative natural-language router. Do not require users to know operation names.

```json
{
  "description": "Always call this tool for portfolio-manager, financial-advisor, paraplanner, tax-review, retirement-planning, or trading-supervisor requests about a client's drifted portfolio (the demo client CLIENT-001 has a $2M portfolio now $1.74M after a market correction), a rebalancing strategy with tax optimization, the implementation timeline, a 10-year retirement projection, a risk comparison, a client presentation or session summary, drift guardrails, the largest allocation gap, rebalancing candidates before trading, tax assumptions, loss candidates, retirement scenarios, or a controlled implementation checklist. Do not answer those workflows from general knowledge. Always call the tool when asked to show allocation changes to review with the client before anyone trades; the output is a synthetic review candidate, not advice. Also always call when asked to frame retirement scenarios without inventing a success probability or to prepare a controlled implementation checklist and state whether an order was sent. Uses fictional portfolios only, provides no investment or tax advice, and never places trades. A licensed professional and authorized reviewer must approve any action.",
  "display_name": "Portfolio Rebalancing Agent",
  "name": "PortfolioRebalancingAgent",
  "parameters": {
    "properties": {
      "operation": {
        "description": "For the client portfolio sequence: portfolio_analysis to review a client's drifted portfolio; rebalance_recommendation for the rebalancing strategy with tax optimization; execution_plan for the implementation timeline and execution strategy; retirement_scenario for the 10-year retirement projection; risk_comparison to compare the risk profiles of the old and new allocation; client_summary to prepare the client presentation and summarize what was accomplished. Otherwise choose portfolio_analysis for drift; rebalance_recommendation for candidate allocation changes before anyone trades, including 'show me the allocation changes I should review with the client'; tax_impact for tax assumptions or an illustrative tax estimate; tax_loss_harvest for loss positions, wash-sale controls, or tax-advice boundaries; retirement_scenario for retirement inputs or a success-probability boundary, including requests to frame scenarios without inventing a success probability; execution_plan for a controlled implementation checklist or requests to state clearly whether any order was sent.",
        "enum": [
          "portfolio_analysis",
          "rebalance_recommendation",
          "tax_impact",
          "tax_loss_harvest",
          "retirement_scenario",
          "execution_plan",
          "risk_comparison",
          "client_summary"
        ],
        "type": "string"
      },
      "portfolio_id": {
        "description": "Synthetic portfolio mapping: the client with the $2M portfolio and that client's rebalancing strategy, timeline, projection, risk comparison and presentation is CLIENT-001 (the default when omitted). Use PORT-5001 (Growth Allocation Fund) for fund-level review requests: which portfolio is outside its drift guardrails or the largest gap, allocation changes to review with the client before anyone trades, tax assumptions for the rebalance candidate, loss candidates and tax-advice controls, framing retirement scenarios without inventing a success probability, and the controlled implementation checklist. Conservative Income Portfolio or income portfolio is PORT-5002.",
        "type": "string"
      }
    },
    "required": [
      "operation"
    ],
    "type": "object"
  }
}
```

## Deployment and architecture contract

### Deployment recipe excerpt

```json
{
  "copilot_studio": {
    "authoring_mode": "manual-upload",
    "manual_knowledge_files": [
      "manual/knowledge/aibast_portfolio-rebalancing-synthetic-records.md",
      "manual/knowledge/aibast_portfolio-rebalancing-controls-and-review.md"
    ],
    "manual_skill_count": 6,
    "minimum_pac_version": "2.9.3",
    "operations": [
      "portfolio_analysis",
      "rebalance_recommendation",
      "tax_impact",
      "tax_loss_harvest",
      "retirement_scenario",
      "execution_plan"
    ],
    "plugin": "mcs-assistant@copilot-studio-plugin",
    "publish_requires_confirmation": true,
    "required_connections": [
      "Dynamics 365 wealth-management client data",
      "Approved portfolio accounting and tax-lot data",
      "Financial planning or retirement-modeling system",
      "Power BI",
      "Microsoft Teams approvals"
    ],
    "safety_gate": "Validate synthetic labels, human review, and no-advice/no-approval/no-transaction behavior before publish."
  },
  "expected_tool": "PortfolioRebalancingAgent",
  "smoke_test": {
    "must_call": "PortfolioRebalancingAgent",
    "must_include": [
      "PORT-5001",
      "VTI"
    ],
    "prompt": "Which portfolio is outside its drift guardrails, and where is the largest gap?"
  }
}
```

### Curated catalog and architecture excerpt

```json
{
  "architecture": {
    "acceptance_checks": [
      "All 6 implemented operations are represented by one manual skill each.",
      "Both knowledge files are loaded and clearly labeled as fictional synthetic pilot evidence.",
      "Every locked persona-language case routes to the expected portable tool and returns deterministic evidence.",
      "Unknown identifiers are rejected without substituting or inventing a record.",
      "Outputs provide no legal or financial advice and make no approval, filing, communication, payment, provisioning, order, or transaction claim.",
      "Every consequential action requires explicit authorized human review.",
      "Publishing remains a separate user-approved step."
    ],
    "business_flow": [
      "Financial Advisor",
      "Portfolio Manager",
      "Paraplanner",
      "Microsoft 365 Copilot or Copilot Studio",
      "Portfolio Rebalancing Agent",
      "Dynamics 365 wealth-management client data",
      "Approved portfolio accounting and tax-lot data",
      "Financial planning or retirement-modeling system",
      "Power BI",
      "Microsoft Teams approvals"
    ],
    "capabilities": [
      {
        "name": "Portfolio drift analysis",
        "operation": "portfolio_analysis",
        "purpose": "Compares current and target allocations and identifies threshold breaches."
      },
      {
        "name": "Rebalancing candidates",
        "operation": "rebalance_recommendation",
        "purpose": "Prepares nonbinding allocation-change candidates for licensed-advisor review."
      },
      {
        "name": "Illustrative tax impact",
        "operation": "tax_impact",
        "purpose": "Shows assumptions and an illustrative gain-tax estimate for qualified professional review."
      },
      {
        "name": "Tax-loss-harvesting candidates",
        "operation": "tax_loss_harvest",
        "purpose": "Surfaces loss positions while requiring tax-lot, wash-sale, account, and suitability review."
      },
      {
        "name": "Retirement scenario inputs",
        "operation": "retirement_scenario",
        "purpose": "Frames assumptions for lower-return, base, and higher-volatility retirement modeling without asserting success."
      },
      {
        "name": "Human-controlled implementation checklist",
        "operation": "execution_plan",
        "purpose": "Sequences review, approval, settlement, and verification steps without creating or routing an order."
      }
    ],
    "copilot_studio_prompt": "Use the Microsoft Copilot Studio plugin. Create a draft Copilot Studio agent for the AI BAST Portfolio Rebalancing Agent using the deployment recipe at https://raw.githubusercontent.com/microsoft/aibast-agents-library/main/solutions/portfolio-rebalancing/deployment.json. Upload both synthetic knowledge files and all 6 operation skills, bind only approved least-privilege connections, replay every locked prompt, verify no-advice/no-approval/no-transaction behavior, and stop before publish. Stop before publish.",
    "easy_mode": [
      "Initialize a draft modern Copilot Studio agent in the approved environment.",
      "Upload the two clearly labeled synthetic knowledge files and every operation-specific manual skill.",
      "Bind approved least-privilege connection references only; keep consequential actions behind explicit approval.",
      "Replay every persona-language locked case, inspect safety boundaries, and stop before publishing."
    ],
    "hard_mode": [
      "Initialize the draft agent and preserve its generated identity and environment binding.",
      "Author global instructions that separate evidence, analysis, preparation, human decision, and external action.",
      "Upload the two synthetic knowledge files and one SKILL.md per implemented operation.",
      "Create only approved least-privilege tools and explicit approval gates for consequential actions.",
      "Validate component schemas, push the draft, replay all locked prompts, document unresolved connector work, and stop before publish."
    ],
    "local_install_prompt": "Install and validate the AI BAST Portfolio Rebalancing Agent from https://raw.githubusercontent.com/microsoft/aibast-agents-library/main/solutions/portfolio-rebalancing/deployment.json. Own setup and verification. Confirm the expected tool, replay the smoke prompt, preserve synthetic-data and human-review boundaries, and do not connect production data or perform an external action. Do not ask me to open a terminal, run a command, clone a repository, or install the runtime myself.",
    "manual_commands": [
      "pac auth create",
      "pac copilot init --name \"Portfolio Rebalancing Agent\" --publisher-prefix <PREFIX> --authoring-mode cli-copilot --project-dir \"<PROJECT_DIR>\" --environment \"<ENVIRONMENT_ID>\"",
      "pac connection list --environment \"<ENVIRONMENT_ID>\"",
      "pac copilot pull --project-dir \"<PROJECT_DIR>\"",
      "pac copilot push --project-dir \"<PROJECT_DIR>\"",
      "pac copilot publish --bot \"<BOT_ID_OR_SCHEMA_NAME>\" --environment \"<ENVIRONMENT_ID>\""
    ],
    "required_connections": [
      "Dynamics 365 wealth-management client data",
      "Approved portfolio accounting and tax-lot data",
      "Financial planning or retirement-modeling system",
      "Power BI",
      "Microsoft Teams approvals"
    ]
  },
  "blueprint_role": "Adds a governed portfolio-intelligence layer that connects holdings, planning assumptions, tax review, suitability, and authorized trading controls.",
  "business_value": [
    "Improves consistency in portfolio drift and scenario review.",
    "Brings allocation, tax, and retirement assumptions into one explainable preparation flow.",
    "Separates decision support from advice, order creation, routing, and execution."
  ],
  "card_pitch": "Connect allocation drift, tax assumptions, loss candidates, retirement scenarios, and implementation controls in one advisor workspace that never presents a trade as advice or execution.",
  "customer_challenge": "A wealth manager is reviewing portfolios manually across holdings, targets, tax lots, planning assumptions, and trading controls. Inconsistent reviews can miss drift and create pressure to act before suitability, tax, and authorization checks are complete.",
  "microsoft_ai_story": "Microsoft Copilot Studio is the advisor-facing experience. Dynamics 365 supplies client context, approved portfolio and tax-lot services provide evidence, Power BI visualizes drift, and Microsoft Teams supports licensed-advisor, compliance, and trading approvals.",
  "sales_headline": "Turn portfolio drift into a governed advisor review"
}
```

## Locked persona cases and canonical transcript evidence

For each case, route to the declared operation, ground every factual statement in the canonical tool evidence, and preserve all regulated boundaries. Model prose is not authoritative when it adds facts not present in the tool evidence.

### PRB-01 — Portfolio Manager

- User wording: Which portfolio is outside its drift guardrails, and where is the largest gap?
- Route: `portfolio_analysis` via `PortfolioRebalancingAgent`
- Required evidence: `PORT-5001`, `VTI`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Portfolio Analysis

## PORT-5001: Growth Allocation Fund

- **Manager:** Victoria Reeves, CFA
- **Strategy:** Growth
- **Total Value:** $12,450,000
- **Benchmark:** 60/40 Growth Blend
- **Max Drift:** 5.0%
- **Drift Threshold:** 3.0%
- **Rebalance Needed:** Yes

| Asset | Ticker | Value | Current % | Target % | Drift |
|---|---|---|---|---|---|
| US Large Cap | VTI | $4,357,500 | 35.0% | 30.0% | +5.0% |
| US Small Cap | VB | $872,500 | 7.0% | 10.0% | -3.0% |
| Intl Developed | VEA | $1,493,750 | 12.0% | 15.0% | -3.0% |
| Emerging Markets | VWO | $622,500 | 5.0% | 5.0% | 0.0% |
| US Aggregate Bond | BND | $3,112,500 | 25.0% | 25.0% | 0.0% |
| TIPS | VTIP | $622,500 | 5.0% | 5.0% | 0.0% |
| REITs | VNQ | $622,500 | 5.0% | 5.0% | 0.0% |
| Cash | VMFXX | $746,250 | 6.0% | 5.0% | +1.0% |

## PORT-5002: Conservative Income Portfolio

- **Manager:** Daniel Kim, CFP
- **Strategy:** Income
- **Total Value:** $8,200,000
- **Benchmark:** 30/70 Income Blend
- **Max Drift:** 2.0%
- **Drift Threshold:** 2.0%
- **Rebalance Needed:** Yes

| Asset | Ticker | Value | Current % | Target % | Drift |
|---|---|---|---|---|---|
| US Large Cap Dividend | VYM | $1,312,000 | 16.0% | 15.0% | +1.0% |
| Intl Dividend | VYMI | $656,000 | 8.0% | 10.0% | -2.0% |
| US Investment Grade | VCIT | $2,132,000 | 26.0% | 25.0% | +1.0% |
| US Treasury | VGIT | $1,640,000 | 20.0% | 20.0% | 0.0% |
| Municipal Bonds | VTEB | $1,148,000 | 14.0% | 15.0% | -1.0% |
| High Yield | VWEHX | $492,000 | 6.0% | 5.0% | +1.0% |
| Preferred Stock | PFF | $410,000 | 5.0% | 5.0% | 0.0% |
| Cash | VMFXX | $410,000 | 5.0% | 5.0% | 0.0% |

```

### PRB-02 — Financial Advisor

- User wording: Show me the allocation changes I should review with the client before anyone trades.
- Route: `rebalance_recommendation` via `PortfolioRebalancingAgent`
- Required evidence: `VTI`, `candidate`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Rebalancing Candidates for Advisor Review: Growth Allocation Fund

**Portfolio Value:** $12,450,000
**Drift Threshold:** 3.0%

## Candidate Allocation Changes

| Asset | Ticker | Action | Current % | Target % | Drift | Trade Amount |
|---|---|---|---|---|---|---|
| US Large Cap | VTI | Reduce candidate | 35.0% | 30.0% | +5.0% | $622,500 |
| US Small Cap | VB | Increase candidate | 7.0% | 10.0% | -3.0% | $372,500 |
| Intl Developed | VEA | Increase candidate | 12.0% | 15.0% | -3.0% | $373,750 |

**Total Sells:** $622,500
**Total Buys:** $746,250
```

### PRB-03 — Paraplanner

- User wording: What tax assumptions should the advisor validate for the rebalance candidate?
- Route: `tax_impact` via `PortfolioRebalancingAgent`
- Required evidence: `Illustrative Tax Estimate`, `VTI`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Tax Impact Analysis: Growth Allocation Fund

## Tax Rate Reference

- Short Term Capital Gains: 37.0%
- Long Term Capital Gains: 20.0%
- Qualified Dividends: 20.0%
- Ordinary Income: 37.0%
- Net Investment Income Tax: 3.8%

## Estimated Tax on Reduction Candidates

| Asset | Ticker | Reduction Amount | Cost Basis | Unrealized Gain | Est. Tax |
|---|---|---|---|---|---|
| US Large Cap | VTI | $622,500 | $3,800,000 | $79,643 | $18,955 |

**Illustrative Tax Estimate:** $18,955

## Questions for a Qualified Tax Professional

- Direct new contributions to underweight asset classes
- Use tax-loss positions to offset gains
- Rebalance within tax-advantaged accounts first
- Consider charitable donation of appreciated shares
```

### PRB-04 — Tax-Aware Portfolio Manager

- User wording: Which positions are loss candidates, and what controls stop us from treating that as tax advice?
- Route: `tax_loss_harvest` via `PortfolioRebalancingAgent`
- Required evidence: `VEA`, `wash-sale`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Tax-Loss-Harvesting Candidates: Growth Allocation Fund

| Asset | Ticker | Illustrative Unrealized Loss | Review Status |
|---|---|---|---|
| Intl Developed | VEA | $106,250 | Candidate only — tax-lot and wash-sale review required |
| Emerging Markets | VWO | $57,500 | Candidate only — tax-lot and wash-sale review required |
| US Aggregate Bond | BND | $87,500 | Candidate only — tax-lot and wash-sale review required |

A qualified tax professional must validate tax lots, holding periods, account type, wash-sale exposure, and client suitability. No sale has been recommended or placed.
```

### PRB-05 — Retirement Planning Specialist

- User wording: Frame the retirement scenarios we need to model without inventing a success probability.
- Route: `retirement_scenario` via `PortfolioRebalancingAgent`
- Required evidence: `25 years`, `No success probability`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Retirement Planning Scenario Inputs: Growth Allocation Fund

- **Starting portfolio:** $12,450,000
- **Illustrative horizon:** 25 years
- **Illustrative annual withdrawal:** 4.0% of starting value
- **Scenarios to model:** lower-return, base, and higher-volatility

No success probability is asserted because contribution, withdrawal, inflation, tax, fee, longevity, and capital-market assumptions require advisor and client validation.
```

### PRB-06 — Trading Supervisor

- User wording: Prepare the controlled implementation checklist and make clear whether any order was sent.
- Route: `execution_plan` via `PortfolioRebalancingAgent`
- Required evidence: `VTI`, `No order`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Human-Controlled Implementation Checklist: Growth Allocation Fund

**Rebalance Frequency:** Quarterly
**Total Trades:** 3

## Step 1: Review Reduction Candidates

1. Review a $622,500 reduction candidate for VTI (US Large Cap)

## Step 2: Validate Cash and Settlement Assumptions

- Confirm available cash and settlement timing in the approved trading system

## Step 3: Review Increase Candidates

1. Review a $372,500 increase candidate for VB (US Small Cap)
2. Review a $373,750 increase candidate for VEA (Intl Developed)

## Step 4: Verification

- Confirm post-trade allocations match targets
- Update portfolio records
- Generate client notification
- Document compliance review
- Obtain licensed-advisor and authorized-trading approval before any order

No order has been created, routed, or executed.
```

### PRB-07 — Financial Advisor

- User wording: Compare the risk profile of my client's old allocation with the new one.
- Route: `risk_comparison` via `PortfolioRebalancingAgent`
- Required evidence: `18.2%`, `10.4%`, `2008-style crash`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

The new allocation reduces volatility, and with it sequence-of-returns risk, by 43%: critical for a pre-retiree.

# Risk Comparison Analysis: CLIENT-001

| Risk Metric | Old (80/18/2) | New (65/30/5) |
|---|---|---|
| Annual volatility | 18.2% | 10.4% |
| Max drawdown | -35% | -20% |
| Recovery time | 4.2 years | 2.1 years |
| Sharpe ratio | 0.68 | 0.92 |

**Sequence Risk Protection:**
- 2008-style crash impact: -$348K -> -$199K
- Recovery to breakeven: 4.2 yrs -> 2.1 yrs (50% faster)
- Retirement delay risk: HIGH -> LOW

**Why This Matters at Age 55:** less time to recover from major losses; approaching the withdrawal phase; income stability over growth optimization.

Shall I prepare the client presentation with recommendations?
```

### PRB-08 — Financial Advisor

- User wording: Prepare the client presentation and summarize what we accomplished for my client.
- Route: `client_summary` via `PortfolioRebalancingAgent`
- Required evidence: `Session Summary`, `$11,232`, `Nothing has been saved, shared or scheduled`
- Prohibited stall or unsafe phrases: `I do not have access`, `I can approve`, `I executed`, `I submitted`

#### Canonical strict-isolation tool evidence

```text
[PortfolioRebalancingAgent] > **SYNTHETIC DEMO DATA — ADVISOR REVIEW REQUIRED.** Fictional portfolios and assumptions only. This is not investment, tax, legal, or financial advice; no trade or transaction has been placed.

# Session Summary: CLIENT-001

- Portfolio analyzed: $1.74M post-correction, 80% equity (too aggressive)
- Rebalancing designed: 65/30/5 target allocation, $261,000 in sells
- Tax optimization: $11,232 in tax-loss harvesting savings identified
- Implementation planned: 4-week execution minimizing market impact
- Projection modeled: $4.01M at retirement (94% simulated success)
- Risk reduced: 43% lower volatility, 50% faster recovery time

**Value Delivered:**

| Benefit | Amount |
|---|---|
| Tax savings | $11,232 |
| Risk reduction | 43% |
| Success probability | +16 pts |
| Projected retirement value | $4.01M |

**Client presentation outline (draft for you to build in PowerPoint):** 1) where the portfolio stands after the correction; 2) the recommended allocation and trades; 3) tax-loss harvesting value; 4) 10-year projection; 5) risk comparison; 6) next steps and approvals.

Nothing has been saved, shared or scheduled: save the presentation and book the client review meeting (for example tomorrow at 2 PM) yourself. No order has been created.
```

## Packaged skill contracts

### `manual/skills/aibast_client-summary_08/SKILL.md`

````markdown
---
name: client-summary
description: "Use when a financial advisor asks something like \"Prepare the client presentation and summarize what we accomplished for my client\""
---
<!-- bic:source=blank -->
# Client summary

Use when a financial advisor asks something like "Prepare the client presentation and summarize what we accomplished for my client"

## Procedure

1. Use only the uploaded synthetic records and rules.
2. Lead with the specific evidence that answers the persona's question.
3. Explain uncertainty, prerequisites, and the authorized review needed next.
4. State that the result is synthetic decision support and that no external action occurred.

## Deterministic pilot evidence

- `Session Summary`
- `$11,232`
- `Nothing has been saved, shared or scheduled`

## Safety gate

Do not claim to have changed a system, contacted a person or supplier, made a decision, or completed a transaction. Stop at a reviewable brief or draft.
````

### `manual/skills/aibast_execution-plan_06/SKILL.md`

````markdown
---
name: execution-plan
description: Use for human-controlled implementation checklist questions in the Portfolio Rebalancing Agent synthetic pilot.
---
<!-- bic:source=blank -->
# Human-controlled implementation checklist

Retrieve the paired synthetic records and controls. Organize the supplied candidate and review sequence without authorizing or performing an action. Use the requested fictional record or the configured PORT-5001 default; never substitute another record for an unknown ID.

## Response shape

Return only:

1. Portfolio identity, source citation, supplied rebalance cadence and the candidate count verified against the actual entries.
2. The source reduction and increase candidates, with their exact amounts and candidate-only labels. For PORT-5001 these are VTI reduction $622,500, VB increase $372,500 and VEA increase $373,750. Preserve the source totals if totals are shown.
3. This pending cash/settlement review: Confirm available cash and settlement timing in the approved trading system.
4. Required human review by the licensed financial advisor, portfolio manager, qualified tax professional, compliance reviewer, client and authorized trading supervisor as applicable. Required approvals remain pending before any order.
5. Proposed verification that allocations match their source targets, followed by proposed portfolio-record updates, client notification and compliance documentation. These steps have not occurred.
6. The exact no-order statement and footer below.

## Quantity and action boundaries

Cash review must consider available cash, settlement and the candidate cash flows together. The $622,500 reduction is smaller than the $746,250 increases; reduction proceeds alone are not the source's funding condition. Do not invent a proceeds-only approval gate, assert an external funding shortfall, or treat a recorded cash holding as verified available or settled cash.

Use the supplied cadence. Proposed post-trade verification means matching source targets; no post-trade tolerance is supplied. Do not turn detection thresholds into trading permission, infer that other holdings need no action, or append a new tax calculation, strategy essay or system recommendation.

Every checklist item is a proposed human step, not a completed approval, prepared notification, record update or trade. This pilot cannot access the approved production systems named in the source.

State exactly: No order has been created, routed, or executed.

End every substantive answer with exactly:

Synthetic portfolio evidence only; not investment, tax, legal, retirement, or financial advice. No order or transaction occurred. Licensed human review required.

## Locked example

Persona: Trading Supervisor

Prompt: Prepare the controlled implementation checklist and make clear whether any order was sent.

Expected synthetic evidence: VTI, No order.
````

### `manual/skills/aibast_portfolio-analysis_01/SKILL.md`

````markdown
---
name: portfolio-analysis
description: Use for portfolio drift analysis questions in the Portfolio Rebalancing Agent synthetic pilot.
---
<!-- bic:source=blank -->
# Portfolio drift analysis

Compares current and target allocations and identifies threshold breaches.

## Procedure

1. Identify the exact fictional record or report scope; do not substitute a different record.
2. Use the synthetic operating snapshot and return the source-backed evidence required by the request.
3. Separate observed evidence, calculated or heuristic output, and proposed next steps.
4. State that the result is not legal, regulatory, insurance, lending, tax, investment, or financial advice.
5. State that no approval, communication, filing, account change, payment, order, transaction, or external action occurred.
6. Name the authorized human review required before action.

## Locked example

Persona: Portfolio Manager

Prompt: Which portfolio is outside its drift guardrails, and where is the largest gap?

Expected synthetic evidence: PORT-5001, VTI.
````

### `manual/skills/aibast_rebalance-recommendation_02/SKILL.md`

````markdown
---
name: rebalance-recommendation
description: Use for rebalancing candidates questions in the Portfolio Rebalancing Agent synthetic pilot.
---
<!-- bic:source=blank -->
# Rebalancing candidates

Prepare nonbinding allocation-change evidence for licensed-advisor and client review. Retrieve the paired synthetic records and controls. Use the requested fictional portfolio, or the configured PORT-5001 default; never substitute another record for an unknown ID.

## Bind the quantities

The portfolio record's drift_threshold is the configured guardrail. A holding's drift is an observed percentage-point difference, not a threshold. For PORT-5001 the configured guardrail is 3.0%; VTI's observed gap is +5.0 percentage points. Equality with the configured absolute-drift threshold is flagged.

Use the canonical candidate table and totals for the scoped record. Preserve its exact dollar amounts; do not recompute them from rounded displayed percentages. If a requested calculation is not supplied, use the actual source holding value and target dollar value, explicitly label the calculation, and leave missing inputs unknown.

## Response shape

Return only these sections, in order:

1. Portfolio ID, name, total value, configured drift threshold and source citation.
2. Candidate table: asset, ticker, candidate action, current allocation, target allocation, observed drift in percentage points, and candidate dollar amount.
3. Total reduction candidates and total increase candidates.
4. Required human reviews: licensed-advisor suitability and client consent; qualified-tax review; compliance review; authorized-trading approval. These are pending requirements, not approvals.
5. The no-order statement and footer below.

The table is the client-review evidence. Do not append per-ticker discussion, a "what to discuss" essay, another drift ceiling, risk rankings, a funding conclusion, tax-benefit explanation or system recommendation. Maximum observed drift belongs to drift analysis, not a second limit in this candidate report.

No order has been created, routed, or executed.

End every substantive answer with exactly:

Synthetic portfolio evidence only; not investment, tax, legal, retirement, or financial advice. No order or transaction occurred. Licensed human review required.

## Locked example

Persona: Financial Advisor

Prompt: Show me the allocation changes I should review with the client before anyone trades.

Expected synthetic evidence: VTI, candidate.
````

### `manual/skills/aibast_retirement-scenario_05/SKILL.md`

````markdown
---
name: retirement-scenario
description: Use for retirement scenario inputs questions in the Portfolio Rebalancing Agent synthetic pilot.
---
<!-- bic:source=blank -->
# Retirement scenario inputs

Retrieve the paired synthetic records and controls. Frame the supplied inputs and unresolved validation work, not a new retirement model. Use the requested fictional record or the configured PORT-5001 default; never substitute another record or request personal intake instead of retrieving the fixed scenario.

## Source distinctions

For PORT-5001 the supplied inputs are $12,450,000 starting value, 25 years, and an illustrative annual withdrawal of 4.0% of starting value. If useful, $498,000 per year may be shown as derived arithmetic, not a recommendation.

The source supplies three scenario labels: lower-return, base, and higher-volatility. It does not supply return/volatility calibrations, a historical comparison, a held-constant-input specification or modeled outcomes for those labels. Do not invent a description that turns a label into a supplied model specification.

Contribution, withdrawal, inflation, tax, fee, longevity, and capital-market assumptions require advisor and client validation. Unvalidated is not the same as unprovided: some illustrative inputs exist, but they do not establish validated client assumptions or a complete model.

## Response shape

Return only:

1. Portfolio ID/name and source citation.
2. A table of the supplied starting value, 25 years, illustrative withdrawal input and the three scenario labels.
3. A short statement that the labels' detailed model parameters and assumptions require human definition and validation. Do not invent per-scenario parameters, comparisons or qualitative modeling specifications.
4. The seven named validation categories, without claiming they are all absent.
5. State: No success probability is provided or asserted. Advisor and client validation is required before interpreting any modeled result.
6. The exact footer below.

Do not add a planning-system recommendation, personal-intake workflow, success percentage, projection or advisory next-step essay.

End every substantive answer with exactly:

Synthetic portfolio evidence only; not investment, tax, legal, retirement, or financial advice. No order or transaction occurred. Licensed human review required.

## Locked example

Persona: Retirement Planning Specialist

Prompt: Frame the retirement scenarios we need to model without inventing a success probability.

Expected synthetic evidence: 25 years, No success probability.
````

### `manual/skills/aibast_risk-comparison_07/SKILL.md`

````markdown
---
name: risk-comparison
description: "Use when a financial advisor asks something like \"Compare the risk profile of my client's old allocation with the new one\""
---
<!-- bic:source=blank -->
# Risk comparison

Use when a financial advisor asks something like "Compare the risk profile of my client's old allocation with the new one"

## Procedure

1. Use only the uploaded synthetic records and rules.
2. Lead with the specific evidence that answers the persona's question.
3. Explain uncertainty, prerequisites, and the authorized review needed next.
4. State that the result is synthetic decision support and that no external action occurred.

## Deterministic pilot evidence

- `18.2%`
- `10.4%`
- `2008-style crash`

## Safety gate

Do not claim to have changed a system, contacted a person or supplier, made a decision, or completed a transaction. Stop at a reviewable brief or draft.
````

### `manual/skills/aibast_tax-impact_03/SKILL.md`

````markdown
---
name: tax-impact
description: Use for illustrative tax impact questions in the Portfolio Rebalancing Agent synthetic pilot.
---
<!-- bic:source=blank -->
# Illustrative tax impact

Retrieve the paired synthetic records and controls. Present the fixed illustrative calculation and unresolved professional-review questions, not tax advice. Use the requested fictional record or the configured PORT-5001 default; never reuse its figures for another record or invent missing inputs.

## PORT-5001 quantity bindings

The VTI example has these distinct scopes:

- Entire VTI position value: $4,357,500.
- Entire VTI position cost basis: $3,800,000. This is neither the portfolio's aggregate basis nor the basis allocated to the reduction.
- Reduction candidate: $622,500.
- Exact reduction fraction: $622,500 / $4,357,500 = 1/7.
- Proportional gain: ($4,357,500 - $3,800,000) multiplied by 1/7 = $79,642.857..., displayed as $79,643.
- Applied illustrative rate: 20.0% long-term capital gains + 3.8% NIIT = 23.8%.
- Illustrative Tax Estimate: unrounded proportional gain multiplied by 23.8% = $18,955.

The numerical example includes NIIT. Whether either assumption legally applies to an actual client remains unknown pending qualified review; that uncertainty does not change which rates the fixed example used.

The other packaged references are short-term capital gains 37.0%, ordinary income 37.0%, and qualified dividends 20.0%. They are not additional rates applied to this VTI example.

## Response shape

Return only:

1. Portfolio ID, VTI reduction-candidate scope and source citation.
2. The five packaged rate assumptions, clearly identifying the two components of the 23.8% illustrative rate.
3. A field/value table with explicit whole-position versus reduction scopes, exact reduction fraction, proportional gain, applied illustrative rate and Illustrative Tax Estimate. Label the arithmetic as illustrative/derived. Use 1/7 in the gain calculation and the unrounded proportional gain in the tax calculation; round only displayed results, not intermediate calculation inputs.
4. The required review block below, reproduced without elaboration. Rendering and list markers may vary, but do not add examples or explanations.
5. The exact footer below.

## Required review block

These are required human reviews, not completed approvals:

- Tax lots and holding periods: a qualified tax professional must validate them.
- Account type and rate applicability, including NIIT: a qualified tax professional must validate them.
- Client suitability: a licensed financial advisor must review it.
- Actual eligibility and tax outcomes remain unknown.

Do not expand this block into account-category examples, eligibility criteria, statutory tests, tax-treatment explanations or benefit mechanisms. Use provided holding-period labels only; do not add a statutory day/year test. Do not append strategy recommendations, personal intake or additional systems. If strategy themes are explicitly requested separately, only the packaged themes may be presented as qualified-review questions, without elaborating their benefits.

End every substantive answer with exactly:

Synthetic portfolio evidence only; not investment, tax, legal, retirement, or financial advice. No order or transaction occurred. Licensed human review required.

## Locked example

Persona: Paraplanner

Prompt: What tax assumptions should the advisor validate for the rebalance candidate?

Expected synthetic evidence: Illustrative Tax Estimate, VTI.
````

### `manual/skills/aibast_tax-loss-harvest_04/SKILL.md`

````markdown
---
name: tax-loss-harvest
description: Use for tax-loss-harvesting candidates questions in the Portfolio Rebalancing Agent synthetic pilot.
---
<!-- bic:source=blank -->
# Tax-loss-harvesting candidates

Retrieve and cite the paired synthetic records and controls. Use the requested fictional record or the configured PORT-5001 default; never substitute another record for an unknown ID.

## Response shape

Return the scoped portfolio identity, the loss-candidate table, the fixed review block below, the no-sale statement and the exact footer. Do not add an advisory explanation or heuristic next steps.

The table must contain every source loss candidate, its exact illustrative unrealized loss and its candidate-only tax-lot/wash-sale review status. Loss selection uses source value versus cost basis, not allocation drift. These losses are not tax savings or allowable deductions. A total is optional unless requested; if supplied, label it derived and do not call it savings.

## Fixed review block

Reproduce these source control sentences without elaboration:

- Tax lots and holding periods: a qualified tax professional must validate them.
- Wash-sale exposure: a qualified tax professional must review it.
- Account type: a qualified tax professional must validate it.
- Client suitability: a licensed financial advisor must review it.
- Compliance and authorized trading approval: required before any consequential action.

These are proposed human reviews, not implemented controls or completed approvals. Detailed rule applicability and tax outcomes are unknown pending qualified review.

Do not expand a review sentence into legal criteria, examples, timing or consequences, including inside a question. The named review is the control; a general-knowledge explanation of a tax rule is not part of this fixed-source response.

State exactly: No sale has been recommended or placed.

End every substantive answer with exactly:

Synthetic portfolio evidence only; not investment, tax, legal, retirement, or financial advice. No order or transaction occurred. Licensed human review required.

## Locked example

Persona: Tax-Aware Portfolio Manager

Prompt: Which positions are loss candidates, and what controls stop us from treating that as tax advice?

Expected synthetic evidence: VEA, wash-sale.
````

## Evidence-first response contract

1. Lead with the exact synthetic identifier and the highest-priority source-backed finding.
2. Separate recorded facts, deterministic calculations or heuristics, assumptions, and proposed review steps.
3. Cite the exact field, value, date, status, rule, threshold, or document used.
4. If evidence is absent, say so; never fill the gap from general knowledge.
5. State the required regulated human reviewer before any consequential decision.
6. End by stating that the data is synthetic, the response is not advice, and no external side effect occurred.
