Workflows

This page is auto-generated by scripts/generate_workflow_docs.py. Do not edit by hand.

Operational workflow manifests for the solo-trader OS. Each workflow names the exact skills, decision gates, and artifacts in order. Manifests in workflows/ are the canonical definition; this page is auto-generated from them.


Available workflows

Workflow Cadence Est. min API profile Difficulty
core-portfolio-weekly — Core Portfolio Weekly weekly 60 mixed beginner
market-regime-daily — Market Regime Daily daily 15 no-api-basic beginner
monthly-performance-review — Monthly Performance Review monthly 90 no-api-basic intermediate
multi-asset-opportunity-daily — Multi-Asset Opportunity Daily daily 45 mixed intermediate
swing-opportunity-daily — Swing Opportunity Daily daily 30 fmp-required intermediate
trade-memory-loop — Trade Memory Loop ad-hoc 30 no-api-basic beginner

Core Portfolio Weekly

core-portfolio-weekly · weekly · ~60 min · mixed · beginner

When to run: Once per week, typically on Saturday or Sunday before next week’s market open. Reviews long-term holdings, dividend positions, and overall allocation.

When NOT to run: Do not run as a daily routine. Daily portfolio churn defeats the long-term framing of this workflow.

Required skills: portfolio-manager, trader-memory-core

Optional skills: kanchi-dividend-review-monitor, value-dividend-screener, kanchi-dividend-us-tax-accounting

Artifacts:

Artifact Produced by step Required Downstream hints
holdings_snapshot 1 yes monthly-performance-review
allocation_report 2 yes
dividend_review_findings 3 no
rebalance_actions 4 yes
weekly_journal_entry 5 yes

Steps:

Step 1: Fetch holdings snapshotportfolio-manager

  • produces: holdings_snapshot

Step 2: Review allocation and concentration (decision gate) → portfolio-manager

  • consumes: holdings_snapshot
  • produces: allocation_report
  • Decision: Are sector and single-name concentrations within target bands? If not, what specific reallocation does the trader propose?

Step 3: Check dividend health (T1-T5 anomaly check) (optional) → kanchi-dividend-review-monitor

  • consumes: holdings_snapshot
  • produces: dividend_review_findings

Step 4: Decide rebalance actions (decision gate) → portfolio-manager

  • consumes: allocation_report, dividend_review_findings
  • produces: rebalance_actions
  • Decision: Which rebalance actions (if any) will be executed next week? Confirm explicit buy / sell / hold list with sizing.

Step 5: Journal the weekly reviewtrader-memory-core

  • consumes: rebalance_actions
  • produces: weekly_journal_entry

Manual review:

  • Confirm holdings snapshot reflects the actual brokerage state (Alpaca or CSV).
  • Confirm rebalance actions are entered manually at the broker, not auto-executed.
  • If dividend_review_findings flags T1-T5 issues, defer additional buys until resolved.

Journal destination: trader-memory-core


Market Regime Daily

market-regime-daily · daily · ~15 min · no-api-basic · beginner

When to run: Before considering new swing-trade risk for the day. Run before market open or in the first 30 minutes after.

When NOT to run: Do not use this output as a standalone buy/sell signal. The exposure_decision is a posture (allow / restrict / cash-priority), not a directive.

Required skills: market-breadth-analyzer, uptrend-analyzer, exposure-coach

Optional skills: market-top-detector, macro-regime-detector

Artifacts:

Artifact Produced by step Required Downstream hints
market_breadth_report 1 yes swing-opportunity-daily, monthly-performance-review
uptrend_report 2 yes
top_risk_report 3 no
exposure_decision 4 yes swing-opportunity-daily

Steps:

Step 1: Analyze market breadthmarket-breadth-analyzer

  • produces: market_breadth_report

Step 2: Analyze uptrend participationuptrend-analyzer

  • produces: uptrend_report

Step 3: Check market top risk (optional) → market-top-detector

  • produces: top_risk_report

Step 4: Decide exposure posture (decision gate) → exposure-coach

  • consumes: market_breadth_report, uptrend_report, top_risk_report
  • produces: exposure_decision
  • Decision: Given today’s breadth, uptrend participation, and top risk, is new swing trade risk allowed, restricted, or cash-priority?

Manual review:

  • Confirm output is not used as a buy/sell signal.
  • Confirm whether exposure should be reduced, unchanged, or increased.
  • If exposure_decision is restrictive, defer running swing-opportunity-daily.

Journal destination: trader-memory-core


Monthly Performance Review

monthly-performance-review · monthly · ~90 min · no-api-basic · intermediate

When to run: First weekend of each month, reviewing the prior month’s closed positions, open thesis health, and process improvements. Closes the Plan -> Trade -> Record -> Review -> Improve loop.

When NOT to run: Do not skip this review even in losing months — that is when it matters most. Do not run weekly; the monthly cadence is intentional to filter noise.

Required skills: trader-memory-core, signal-postmortem

Optional skills: trade-performance-coach, backtest-expert, dual-axis-skill-reviewer

Artifacts:

Artifact Produced by step Required Downstream hints
monthly_aggregate 1 yes
aggregate_postmortem 2 yes
monthly_performance_coach_report 3 no
monthly_behavior_patterns 3 no
next_month_operating_rules 3 no
hypothesis_revalidation 4 no
skill_review_findings 5 no
monthly_decision_log 6 yes
rule_changes_for_next_month 6 yes
skill_improvement_backlog 6 no

Steps:

Step 1: Aggregate the month’s trades and thesestrader-memory-core

  • produces: monthly_aggregate

Step 2: Pattern-level postmortem across the month (decision gate) → signal-postmortem

  • consumes: monthly_aggregate
  • produces: aggregate_postmortem
  • Decision: What recurring patterns appear across the month’s outcomes? Classify by thesis quality, execution, market environment, and randomness.

Step 3: Coach monthly process, risk, and behavior patterns (optional) (decision gate) → trade-performance-coach

  • consumes: monthly_aggregate, aggregate_postmortem
  • produces: monthly_performance_coach_report, monthly_behavior_patterns, next_month_operating_rules
  • Decision: Which next-month operating rules should be accepted, modified, deferred, or journaled only?

Step 4: Re-validate hypotheses via backtest (optional) → backtest-expert

  • consumes: aggregate_postmortem
  • produces: hypothesis_revalidation

Step 5: Review which skills helped or hurt (optional) → dual-axis-skill-reviewer

  • consumes: aggregate_postmortem
  • produces: skill_review_findings

Step 6: Produce decision log and rule changes (decision gate) → trader-memory-core

  • consumes: aggregate_postmortem, hypothesis_revalidation, skill_review_findings
  • produces: monthly_decision_log, rule_changes_for_next_month, skill_improvement_backlog
  • Decision: Based on this month’s evidence, what specific rules will change next month? Trade-side rules vs repo-side improvements should stay separate.

Manual review:

  • Distinguish process improvements (rule changes) from outcome accidents (randomness).
  • Trade-side rule changes apply to the trader’s behavior next month.
  • Skill-side improvements are repo-improvement candidates and may or may not be acted on.
  • Be willing to delete or downgrade rules that aren’t working — not just add new ones.

Final outputs:

  • monthly_decision_log — What trades worked / what did not, by category
  • rule_changes_for_next_month — Adjustments to position sizing, entry rules, regime gates
  • skill_improvement_backlog — Optional feedback into repo improvement loop (skills / workflows)

Journal destination: trader-memory-core


Multi-Asset Opportunity Daily

multi-asset-opportunity-daily · daily · ~45 min · mixed · intermediate

When to run: Only after market-regime-daily has produced a non-restrictive exposure decision. Sweeps macro + themes + news to surface multi-asset ideas (equities, commodities-via-equity-proxies, options expressions) and synthesizes them into ranked hypothesis cards.

When NOT to run: Do not run when the latest market-regime-daily exposure_decision is cash-priority. Do not treat hypothesis cards as buy/sell signals — they carry manual_review_required and must pass human sign-off before any capital moves. Forex output is research-only; never feed it into a broker.

Required skills: macro-regime-detector, theme-detector, trade-hypothesis-ideator, position-sizer, trader-memory-core

Optional skills: market-news-analyst, market-environment-analysis, sector-analyst, scenario-analyzer, stanley-druckenmiller-investment

Prerequisite workflows (informational):

  • market-regime-daily expects exposure_decision — Multi-asset opportunity scanning requires a non-restrictive exposure posture. Skip on cash-priority days; reduce scope on restrict days.

Artifacts:

Artifact Produced by step Required Downstream hints
macro_regime_brief 1 yes swing-opportunity-daily, monthly-performance-review
hot_themes 2 yes swing-opportunity-daily
catalyst_news_brief 3 no
hypothesis_cards 4 yes swing-opportunity-daily, trade-memory-loop
sized_hypotheses 5 yes
opportunity_journal_entries 6 yes trade-memory-loop, monthly-performance-review

Steps:

Step 1: Refresh macro regime contextmacro-regime-detector

  • produces: macro_regime_brief

Step 2: Detect hot themes + sector rotationtheme-detector

  • consumes: macro_regime_brief
  • produces: hot_themes

Step 3: Scan news + catalyst landscape (optional) → market-news-analyst

  • consumes: hot_themes
  • produces: catalyst_news_brief

Step 4: Synthesize ranked hypothesis cards (decision gate) → trade-hypothesis-ideator

  • consumes: macro_regime_brief, hot_themes, catalyst_news_brief
  • produces: hypothesis_cards
  • Decision: For each hypothesis, does layer 1 (macro) align with layer 2 (theme) and is what-is-priced-in still favorable? Reject any card where the gap to consensus is unclear or already closed.

Step 5: Apply risk-based sizing to hypothesis cardsposition-sizer

  • consumes: hypothesis_cards
  • produces: sized_hypotheses

Step 6: Persist as IDEA / ENTRY_READY entries (decision gate) → trader-memory-core

  • consumes: hypothesis_cards, sized_hypotheses
  • produces: opportunity_journal_entries
  • Decision: Which hypotheses should be promoted from IDEA to ENTRY_READY, which stay as IDEA pending more confirmation, and which are rejected?

Manual review:

  • Confirm the regime brief does not contradict the exposure_decision from market-regime-daily.
  • Confirm each hypothesis has a written thesis AND a kill criterion.
  • Confirm position sizing respects portfolio risk caps (per-position and per-sector).
  • For forex-related output, confirm research_only=true; never wire to a broker.
  • Confirm IDEA → ENTRY_READY transitions are explicit and reviewed.

Journal destination: trader-memory-core


Swing Opportunity Daily

swing-opportunity-daily · daily · ~30 min · fmp-required · intermediate

When to run: Only after market-regime-daily has produced a non-restrictive exposure decision. Identifies swing trade candidates and builds entry plans.

When NOT to run: Do not run when the latest market-regime-daily exposure_decision is cash-priority or restrictive. Do not use as a standalone screener without the regime gate.

Required skills: vcp-screener, technical-analyst, position-sizer, trader-memory-core

Optional skills: canslim-screener, breakout-trade-planner, theme-detector

Prerequisite workflows (informational):

  • market-regime-daily expects exposure_decision — New swing trade risk requires a non-restrictive exposure decision. Skip this workflow on cash-priority or restrictive days.

Artifacts:

Artifact Produced by step Required Downstream hints
vcp_candidates 1 yes
canslim_candidates 2 no
theme_candidates 3 no
validated_setups 4 yes
position_sizing 5 yes
trade_plans 6 no trade-memory-loop
candidate_journal_entry 7 yes trade-memory-loop

Steps:

Step 1: Run VCP screenervcp-screener

  • produces: vcp_candidates

Step 2: Run CANSLIM screener (optional) → canslim-screener

  • produces: canslim_candidates

Step 3: Theme detection cross-check (optional) → theme-detector

  • produces: theme_candidates

Step 4: Validate setups on weekly chart (decision gate) → technical-analyst

  • consumes: vcp_candidates, canslim_candidates, theme_candidates
  • produces: validated_setups
  • Decision: Which candidates have a clean weekly setup (Stage 2 uptrend, tight base) and pass the manual chart review? Reject candidates that don’t.

Step 5: Calculate position sizeposition-sizer

  • consumes: validated_setups
  • produces: position_sizing

Step 6: Build entry plan (optional) → breakout-trade-planner

  • consumes: validated_setups, position_sizing
  • produces: trade_plans

Step 7: Register thesis in journal (decision gate) → trader-memory-core

  • consumes: position_sizing, trade_plans
  • produces: candidate_journal_entry
  • Decision: For each candidate that survived validation, register the thesis with entry / stop / target. Confirm risk per trade matches position-sizer output and total portfolio heat is within budget.

Manual review:

  • Confirm market-regime-daily exposure_decision allows new risk before acting.
  • Reject any candidate where weekly setup is unclear, even if screener passed.
  • Verify total portfolio heat is within budget before placing any order.
  • All orders are placed manually at the broker; no auto-execution.

Journal destination: trader-memory-core


Trade Memory Loop

trade-memory-loop · ad-hoc · ~30 min · no-api-basic · beginner

When to run: Every time a position is closed (full or partial exit). Records the outcome, generates a postmortem, (optionally) coaches process / risk / execution / behavior patterns, and (optionally) re-validates the original hypothesis via backtest.

When NOT to run: Do not run before a position is closed — use trader-memory-core directly to update an open thesis instead. Do not skip this loop after a closed trade, even on winners.

Required skills: trader-memory-core, signal-postmortem

Optional skills: trade-performance-coach, backtest-expert

Artifacts:

Artifact Produced by step Required Downstream hints
closed_thesis_record 1 yes
postmortem_findings 2 yes monthly-performance-review
performance_coach_report 3 no monthly-performance-review
next_session_operating_rules 3 no monthly-performance-review
backtest_validation 4 no
lessons_log_entry 5 yes monthly-performance-review

Steps:

Step 1: Record closed trade outcometrader-memory-core

  • produces: closed_thesis_record

Step 2: Generate postmortem (decision gate) → signal-postmortem

  • consumes: closed_thesis_record
  • produces: postmortem_findings
  • Decision: What was the root cause of the outcome — thesis quality, execution, market environment, or randomness? Classify and document.

Step 3: Coach process, risk, and behavior patterns (optional) (decision gate) → trade-performance-coach

  • consumes: closed_thesis_record, postmortem_findings
  • produces: performance_coach_report, next_session_operating_rules
  • Decision: Which next-session operating rules should the trader accept, modify, defer, or journal only?

Step 4: Re-validate hypothesis via backtest (optional) → backtest-expert

  • consumes: postmortem_findings
  • produces: backtest_validation

Step 5: Append lessons to journaltrader-memory-core

  • consumes: postmortem_findings, backtest_validation
  • produces: lessons_log_entry

Manual review:

  • Be honest about whether the win was thesis-driven or lucky.
  • Be honest about whether the loss was thesis-flawed or executed poorly.
  • Don’t rationalize randomness as either skill or failure.

Journal destination: trader-memory-core