GS 2.3.0 is a GS-style single-stock research workflow for A-share, Hong Kong, and U.S. equities.
This release combines the best parts of two repo lines:
- the cleaner public
skills/packaging, README structure, scaffold helper, and pipeline wrapper fromgs-2.1 - the deeper
v2.2.0research discipline fromgs-single-stock-pipeline-v2 - a new hard identity gate that prevents ETF / LOF / fund / index products from being forced into fake single-stock valuation
- script compatibility for both older dotted tickers such as
300124.SZ/06656.HKand Tencent-style symbols such assh600519/hk00700
This repo is designed for practical equity research, not generic memo-writing. A completed GS run should force:
- identity confirmation and live-ish market snapshot
- deep research first
- separation of business truth vs market-driving narrative
- competing-narrative generation before the final thesis
- explicit narrative maturity classification
- mandatory fragility audit before valuation
- valuation-router selection
- target price / upside-downside / final stance
- PDF-first publishing when a polished deliverable is useful
skills/
gs/SKILL.md # shortcut alias skill
gs-single-stock-pipeline-v2/
SKILL.md # full v2.3.0 workflow skill
templates/output-template.md # report template
scripts/
quote_snapshot.py # live-ish quote snapshot helper
scaffold_input.py # create starter research input JSON
build_report.py # render markdown report from template + JSON
render_pdf.py # markdown-to-PDF with optional system backends
run_pipeline.py # convenience wrapper
examples/
sample-input.json # lightweight Tencent example
a-share-industrial-sample.json # fuller A-share valuation example
requirements.txt # no required Python packages
VERSION
README.md
LICENSE
.gitignore
A completed GS 2.3.0 run should answer:
- What is this company really?
- What is the market trading right now?
- Is the provided code actually a company, or an ETF / fund / index product?
- What narrative is driving the stock now, and is it different from business truth?
- Is the narrative already in the financials, becoming material, or still optionality?
- What fragility can break the thesis?
- What valuation method actually fits this business?
- What target price follows from the assumptions?
This repo is most useful when you want repeatable single-name analysis rather than ad hoc one-off writeups.
Read:
skills/gs/SKILL.mdskills/gs-single-stock-pipeline-v2/SKILL.mdskills/gs-single-stock-pipeline-v2/templates/output-template.md
This gives you the current workflow logic, output standard, evidence discipline, and publishable report structure.
The core helper scripts use only the Python standard library.
python scripts/quote_snapshot.py --ticker 300124.SZ
python scripts/quote_snapshot.py --ticker 06656.HK
python scripts/quote_snapshot.py --ticker hk00700 --market hk
python scripts/quote_snapshot.py --ticker sh600519 --market cnpython scripts/scaffold_input.py \
--company 腾讯控股 \
--ticker 00700.HK \
--market HK \
--price 462.6 \
--out examples/tencent.jsonpython scripts/build_report.py \
--input examples/sample-input.json \
--out output/report.mdThe older --output flag is also supported:
python scripts/build_report.py \
--input examples/sample-input.json \
--output output/report.mdpython scripts/render_pdf.py \
--input output/report.md \
--output output/report.pdfIf pandoc + weasyprint or pandoc + wkhtmltopdf exists on the machine, the script uses that richer backend. Otherwise it falls back to the bundled dependency-free PDF renderer.
python scripts/run_pipeline.py scaffold --company 阿里巴巴 --ticker 09988.HK --market HK --price 132.8 --out examples/alibaba.json
python scripts/run_pipeline.py build --input examples/alibaba.json --out output/alibaba.md
python scripts/run_pipeline.py pdf --input output/alibaba.md --output output/alibaba.pdfThe core GS 2.3.0 order is:
- Confirm identity and live market snapshot
- Reject fake single-stock analysis for ETFs, LOFs, funds, or indexes
- Deep research the business first
- Separate business truth from market-driving narrative
- Generate competing narratives
- Classify narrative maturity
- Run the fragility audit
- Choose the right valuation router
- Show analyst-style derivation
- End with target price and stance
simple_core_pesegment_sotp_pesegment_sotp_pshybrid_sotp_pe_ps
Every analysis should separate:
business_truth_summarymarket_driving_narrative_summarywhy_they_differ
At minimum, check:
- geographic concentration
- customer / channel concentration
- supply-chain dependency
- litigation / IP risk
- regulatory / policy risk
- inventory / delivery / warranty risk
Use GS 2.3.0 for prompts like:
帮我分析 XXX看看 XXX 值不值得买给我做一下 XXX 的估值/gs 腾讯控股/gs 贵州茅台 重新估值
This is not:
- a fully automated research agent with browsing built in
- a market data vendor SDK
- a guarantee of correct valuation assumptions
- a substitute for company filings, calls, or judgment
It is a workflow package that makes single-stock research more disciplined, auditable, and shareable.
MIT