executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
clarion-value-screenerRun a value-quality screen and write a watchlist file. The script accepts either a list of tickers (fundamentals fetched from yfinance) or a JSON input file the chat agent prepared from a screener site (multpl.com, finviz, Yardeni, etc.). Computes the 8-factor composite score (P/E, P/FCF, ROE, ROIC, Operating Margin, D/E, Profit Margin, Insider) per docs/AL…
Independent GitHub snapshot · Automated classification · Original documentation governs
Implements the two-stage pipeline from docs/ALLOCATION-POLICY.md. Stage 1 (cast the net + score + sector cap + watchlist) is the script's job. Stage 2 (filing-level deep dives + thesis starters) is delegated to clarion-single-stock-eval per top candidate.
User asks any of:
Cadence guidance (from AWB):
Resolve scope. If the user named specific tickers, use --tickers. Otherwise, the chat agent should prepare a JSON input by:
clarion-regime-check to confirm regimeclarion-expected-return-calc to confirm hurdleWebFetch on a screener site (multpl.com / Yardeni / finviz) with regime-appropriate filters per docs/ALLOCATION-POLICY.mdRun the script.
# Tickers list mode (script fetches yfinance fundamentals)
python /home/workspace/clarion-intelligence-system/skills/clarion-value-screener/scripts/screen.py \
--tickers NVDA,AAPL,ADBE,LULU,AOS
# JSON input mode (chat agent prepared the candidates)
python ... screen.py --input ~/clarion/queue/screen-input.json
Read the watchlist file the script wrote. Path is printed at the end. The file is the structured output; pass it through to the user verbatim for the tables, then walk them through the [TODO] sections (Sniff Test, Passed On, Existing Theses Impact).
Fill the Sniff Test sections by running clarion-single-stock-eval on each top-cap candidate that isn't already covered by an active thesis. Use the eval output to write the sniff-test snapshot per the AWB watchlist examples.
Existing Theses Impact — list any top candidate that already has a thesis in ~/clarion/theses/. If so, summarize whether the screen confirms or challenges the existing thesis.
SCREEN=python /home/workspace/clarion-intelligence-system/skills/clarion-value-screener/scripts/screen.py
# Tickers mode (most common when user names a list)
$SCREEN --tickers NVDA,AAPL,ADBE,LULU,AOS
# JSON input mode (full S&P 500 screen via WebFetch by chat agent)
$SCREEN --input ~/clarion/queue/screen-input.json
# Override context
$SCREEN --tickers NVDA,AAPL --rf-rate-pct 4.45 --sp500-cape 35.2
# Custom universe label and target size
$SCREEN --tickers NVDA,AAPL,... --universe "Russell 1000" --top-size 15
{
"screen_date": "2026-05-07",
"context": {
"regime_color": "orange",
"danger_state": false,
"rf_rate_pct": 4.45,
"hurdle_rate_pct": 10.45,
"sp500_cape": 35.2,
"sp500_trailing_pe": 28.4,
"implied_return_low_pct": 0.0,
"implied_return_high_pct": 3.0,
"universe": "S&P 500",
"notes": "Mega-cap led rally; verify breadth before sizing."
},
"candidates": [
{
"ticker": "NVDA",
"company": "NVIDIA Corp",
"sector": "Tech",
"pe": 35.2,
"pfcf": 40.0,
"roe": 0.55,
"roic": 0.42,
"op_margin": 0.62,
"profit_margin": 0.55,
"de": 0.25,
"insider_pct": -0.2,
"market_cap": 3000000000000,
"price": 140.50
}
]
}
Margin / yield / return fields are decimals (0.20 = 20%). Insider activity is a signed percent (positive = net buying). Any field can be omitted; the composite formula reduces its weight share when data is missing.
Lead with the regime + screening stance (one line). Then surface the top 3 by composite with the most interesting one-line take. Then point at the watchlist file for the full ranked table and detail.
When the script flags a candidate's contributing_weight as low (< 60), call it out — that means the score is based on partial data and shouldn't be over-weighted.
clarion-sec-research index <TICKER> first if needed.SCREEN_ERROR: regime unavailable — yfinance cache empty for SPY/TLT/RSP. Run clarion-regime-check first.SCREEN_ERROR: --tickers or --input required — supply one of them.SCREEN_ERROR: input file not found — check the --input path._warning: yfinance fetch failed for <TICKER> — non-fatal; that ticker's score will be based on partial data. The script continues.