Automated summary
Analyzes sustainability report excerpts for greenwashing: it extracts ESG commitment sentences, scores four fields (promise/timeline/evidence), derives a deterministic risk level through scripts, and generates anti-hallucination-validated rewrite suggestions.
Strengths
- Hard split between deterministic scripts (constraint fixing, risk classification, rewrite validation) and model judgment, so identical four-field inputs always yield the same risk verdict
- Rewrite loop where validate_rewrite.py returns violations to the model, capped at two rounds before flagging the sentence for human review
- Fixed-seed regression evaluation with per-field thresholds, producing an accuracy × model-version curve as evidence of improvement
- RAG retrieval backed by a ChromaDB collection plus 13 golden few-shot examples covering all label combinations
Limitations
- Requires heavy local assets (ChromaDB, sentence-transformers, licensed TEJ data) and a Windows/PowerShell setup with Python 3.11+
- The talk−walk greenwash index is explicitly experimental and statistically unsupported (ρ=-0.014, p=0.92, n=49), so it cannot anchor a main conclusion
- Rewrites contain only numeric placeholders; the tool never estimates figures and always needs human sign-off
Use it to assess greenwashing risk in sustainability report paragraphs and to draft rewrites that pass a deterministic validation gate.
Avoid it when you need audited compliance conclusions, real ESG figures, or a final regulatory sign-off.
Security analysis
SafeThe skill is a local, deterministic ESG analysis pipeline. Bash is used solely to run auditable bundled scripts on local files; the only network touch is a standard pip install. It contains explicit anti-leakage and non-commercialization rules and mandates human review, with no destructive, exfiltrating, or obfuscated behavior. No meaningful execution risk.
- •Uses Bash only to invoke bundled, deterministic Python scripts (rag_query.py, apply_constraints.py, classify_risk.py, validate_rewrite.py, talk_walk.py, eval_regression.py) — no destructive commands, no curl|sh, no base64 payloads
- •Installs dependencies via `pip install -r requirements.txt` (network access) but only for standard packages (chromadb, sentence-transformers, pandas, numpy, pyarrow)
- •Explicit guardrail against data leakage: TEJ data must be shown only as percentiles/z-scores, never raw values; requires fixed AI-assisted/human-review disclaimer
- •No instruction to read secrets, tokens, or send data externally; all I/O confined to local work/ directory and local config.json paths
Examples
用 ESG 漂綠分析 skill 判斷這段永續報告書段落的漂綠風險:『本公司承諾於 2050 年前達成淨零碳排,並持續深化減碳作為。』請輸出四欄位初評與風險等級。跑工作流 A:先執行 rag_query.py 召回相似案例,再對 work/claims.txt 的每句承諾評 promise/timeline/evidence_status/evidence_quality,最後依序跑 apply_constraints.py 與 classify_risk.py 產出 risked.jsonl。從 work/risked.jsonl 取出所有高風險與中風險句,依 references/rewrite_guide.md 產生改寫,並用 validate_rewrite.py 驗證;未通過的帶著 violations 重寫,最多兩輪。name: esg-greenwash-analyzer version: 2.0.0 description: > ESG 漂綠分析專家。從永續報告書段落或全文中抽取 ESG 承諾句,評判 promise/evidence/timeline/quality 四欄位,套用確定性規則產出漂綠風險等級, 並生成經反幻覺驗證的改寫建議。源自 AI CUP 2026 ESG 永續承諾驗證競賽 (TEAM_10858, 6/143)。v2 架構:確定性歸腳本,判斷歸模型。 category: finance tags: [esg, greenwash, sustainability, tej, csr, compliance, audit, rag] allowed-tools:
- Read
- Bash
- Glob
- Grep
ESG 漂綠分析專家 v2
分工鐵則:確定性歸腳本,判斷歸模型
執行本 skill 的 LLM(你)只做三件事:
- 承諾句抽取——從段落判斷哪些是 ESG 承諾句
- 四欄位初評——promise / timeline / evidence_status / evidence_quality
- 改寫文字生成——對高/中風險句寫改寫建議
其餘一律呼叫 scripts/ 腳本,嚴禁在腦中套規則:約束修正、風險分類、改寫驗證、talk-walk 計算、回歸評分,全部有確定性實作。這保證同樣的四欄位輸入永遠得到同樣的風險結論,而模型升級只會改善上面三件事的品質。
環境
$SKILL = "$env:USERPROFILE\.agents\skills\_finance\esg-greenwash-analyzer"
$env:PYTHONUTF8 = "1" # 必設,否則中文輸出在 cp950 console 會炸
cd $SKILL\scripts
Python 3.11+,需要 chromadb、sentence-transformers、pandas、numpy、pyarrow。首次安裝:
cd $SKILL
python -m pip install -r requirements.txt
所有路徑集中在 config.json:upstream 與 local 均指向本包內的相對路徑。換機器通常不需要改路徑;若要替換資料資產,只改這一檔。
工作流 A:判斷(段落 → 風險分級)
1. RAG 召回 python rag_query.py --text "<承諾句或段落>" --k 5 --out ..\work\fewshot.json
(快速模式加 --no-semantic,跳過 36 秒模型載入,只用關鍵詞+金標)
2. LLM 判斷 讀 fewshot.json 的相似案例與 golden 範例,對每句評四欄位
→ 寫 ..\work\judged.jsonl(schema 見下)
★ 判斷前必讀 references/label_guide.md(稀有標籤與慣例)
3. 約束修正 python apply_constraints.py --in ..\work\judged.jsonl --out ..\work\constrained.jsonl
4. 風險分類 python classify_risk.py --in ..\work\constrained.jsonl --out ..\work\risked.jsonl
judged.jsonl 每行一筆:
{"claim_id": "p48-1", "claim_text": "原句", "page_no": 48, "esg_type": "E",
"promise_status": "Yes", "verification_timeline": "more_than_5_years",
"evidence_status": "No", "evidence_string": "", "evidence_quality": "N/A",
"judge_rationale": "一句話理由(繁中)"}
工作流 B:改寫協助(高/中風險句 → 驗證過的改寫)
1. 取目標 risked.jsonl 中 risk_level ∈ {高, 中} 的句子
2. LLM 改寫 ★ 必讀 references/rewrite_guide.md(占位符鐵則+規則碼對照)
→ 寫 ..\work\rewrites.jsonl(schema 見 rewrite_guide)
3. 驗證門檻 python validate_rewrite.py --in ..\work\rewrites.jsonl --out ..\work\rewrites_checked.jsonl
4. 重寫循環 rewrite_pass=false 的句子,帶著 violations 重寫,回到步驟 3
最多 2 輪;仍未過 → 標記「人工覆核」,絕不硬塞進報告
工作流 C:公司級 talk−walk(實驗性)
python talk_walk.py --claims ..\work\risked.jsonl --ticker 2454 --pages 120
輸出含 z_talk 成分、z_walk(TEJ 產業內 robust-z)、greenwash_index 與 caveat。 T7 預登記驗證未支持此指數與問題率的相關性(ρ=-0.014, p=0.92, n=49), 報告中此節必須標示「實驗性指標,僅供參考」,不得作為主要結論。
工作流 D:回歸評測(換模型必跑)
1. 出題 python eval_regression.py --make-sample 50 --seed 42
2. 作答 讀 work\eval_questions.json,依工作流 A 的判斷規範逐筆評四欄位
→ 寫 work\eval_preds.jsonl({id, 四欄位})
★ 絕對不可讀 work\eval_gold.json
3. 對分 python eval_regression.py --score ..\work\eval_preds.jsonl
門檻(config.json thresholds):promise 0.85 / timeline 0.55 / evidence_status 0.65 / evidence_quality 0.45。固定 seed 使歷次評測可比,報告存 work\eval_report_*.json——這條「模型版本 × 準確率」曲線就是產品自我改善的證據。
自我測試(改動腳本後跑)
python apply_constraints.py --self-test
python classify_risk.py --self-test # 15 unit + 120 組合窮舉
python validate_rewrite.py --self-test
資產索引
| 資產 | 位置 | 用途 |
|---|---|---|
| ChromaDB 向量庫 | data/chroma_db(collection: esg_train_claims) | train_1000 語意檢索,384 維 MiniLM |
| 金標 few-shot | data/golden_fewshot.json | 13 筆涵蓋全部 (promise,timeline,quality) 組合 |
| 關鍵詞倒排索引 | data/index.json | 149 個 ESG 關鍵詞 → record ids |
| TEJ 摘要 | data/tej_summary.json | 2,804 家公司硬指標 |
| 產業對照 | data/industry_map.json | top-50 ticker → 產業/板塊 |
| 本地大資產 | config.json upstream | train/val 1000、TEJ parquet(17,753列)、top-50 產業對照 |
| 回饋報告模板 | references/report_template.md | 產出 HTML/MD 報告時的固定結構 |
產品原則
- 不商業化;TEJ 數據只能以百分位/z 分數呈現,不得揭露原始數值。
- 改寫建議所有數值都是〔占位符〕,由報告書編製者填入,本工具不提供推估數字。
- 報告固定聲明:AI 輔助分析、需人工覆核、方法源自競賽第 6 名方案。
競賽基準(參考,與本 skill 的 accuracy 不可直接比較)
v43 ensemble Test Weighted Score:promise 0.7853 / timeline 0.6032 / evidence 0.6872 / quality 0.4353;Overall Private 0.6457(6/143)。
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/esg-greenwash-analyzer-mrx3xwwl/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/esg-greenwash-analyzer-mrx3xwwl' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/esg-greenwash-analyzer-mrx3xwwl/download' --output '.skill-downloads/esg-greenwash-analyzer-mrx3xwwl/SKILL.md.part' && mv '.skill-downloads/esg-greenwash-analyzer-mrx3xwwl/SKILL.md.part' '.skill-downloads/esg-greenwash-analyzer-mrx3xwwl/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
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/esg-greenwash-analyzer-mrx3xwwl/SKILL.md' && test -s '.skill-downloads/esg-greenwash-analyzer-mrx3xwwl/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/esg-greenwash-analyzer' && cp -R '.skill-downloads/esg-greenwash-analyzer-mrx3xwwl' '.claude/skills/esg-greenwash-analyzer'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/esg-greenwash-analyzer-mrx3xwwl'openskills read 'esg-greenwash-analyzer-mrx3xwwl'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual 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/esg-greenwash-analyzer-mrx3xwwl/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.