extract-parameters-from-digest
GitHub从PlanExe实验生成的摘要文档中提取参数,替代全量HTML报告。通过读取压缩和原始章节,合并重复项并映射标签,输出符合规范的JSON参数集,用于后续建模分析。
Trigger Scenarios
Install
npx skills add PlanExeOrg/PlanExe --skill extract-parameters-from-digest -g -y
SKILL.md
Frontmatter
{
"name": "extract-parameters-from-digest",
"description": "Use when the user wants to extract parameters from a PlanExe extraction-input digest (the markdown produced by experiments\/napkin_math\/prepare_extract_input.py — the 137-recommended section bundle, with the four \"Keep or compress\" sections compressed) instead of the full PlanExe HTML report"
}
Extract Parameters from a PlanExe Extraction-Input Digest
Overview
A drop-in alternative to extract-parameters-from-full that reads the digest
produced by prepare_extract_input.py (see
experiments/napkin_math/prepare_extract_input.py) rather than the full
PlanExe HTML report.
The digest is the 137-recommended extraction bundle in 137's order: Executive Summary, Project Plan, Selected Scenario, Assumptions, Review Plan, Premortem, Expert Criticism, Data Collection. Strategic Decisions is replaced by Selected Scenario per proposal 139.
It mixes two formats:
- Compressed sections (Selected Scenario, Review Plan, Premortem,
Expert Criticism) — produced by
compress_report_section. Bullets carry inline epistemic tags of the form[<source_status> | e=N r=N | quote: verified|unverified]. - Raw sections (Executive Summary, Project Plan, Assumptions, Data Collection) — passed through unchanged from the PlanExe source. No inline tags.
The system prompt at system-prompt.txt explains how to read both
formats.
Output schema and hard limits are identical to extract-parameters-from-full, so the
two skills can be compared head-to-head on the same plan.
When to Use
- The user has run
prepare_extract_input.pyagainst a PlanExe sample and wants parameters extracted from the resulting digest - The user is comparing whether this pipeline produces better parameters than feeding the full HTML report
For plain PlanExe HTML/text reports, use extract-parameters-from-full instead.
Workflow
- Get the digest path. Usually
experiments/napkin_math/output/<plan-name>/extract_parameters_input.md. If the user did not provide one, ask. Do not guess. - Read
system-prompt.txt(sibling of this SKILL.md). Treat it as the authoritative extraction instructions. - Read the digest file. Mid-sized — much smaller than a raw PlanExe HTML report. Compressed sections (Selected Scenario, Review Plan, Premortem, Expert Criticism) carry inline tags; raw sections (Executive Summary, Project Plan, Assumptions, Data Collection) do not.
- Canonicalize across sections. The four compressed sections often surface the same real-world quantity under different phrasings ("minimum viable rental rate" / "off-peak hourly price" / "speculative high hourly rate" all name one rate). Merge near-duplicates into a single canonical snake_case id before writing the JSON. Prefer framings closest to a modelling primitive (rate, count, fraction, amount-per-period). Two ids for the same quantity will silently fragment downstream bounds and Monte Carlo correlations.
- Produce the JSON following the schema at the end of
system-prompt.txt. For compressed sections, map the inlinesource_statustags to the JSONvalue_typefield:[explicit]→explicit,[derived]→derived,[inferred]→inferred,[missing]items belong inmissing_values_to_estimate,[stress_test]items are scenario-stress inputs (not baselinekey_values). For raw sections, apply general parameter-extraction triage. - Output destination. Default: print JSON to the chat. If the user
asks for a file, write to the path they specify. Default suggestion:
<digest-basename>.parameters.jsonnext to the digest.
Hard Rules (re-stated for emphasis)
- JSON only. No markdown fences, no prose, no explanation.
- Use the digest's tags where they exist. For compressed sections,
prefer
[explicit] + quote: verifieditems for baselinekey_values. Treatquote: unverifieditems with extra scepticism.[missing]items belong inmissing_values_to_estimate.[stress_test]items are downside-scenario inputs, not plan facts. - For raw sections (Executive Summary, Project Plan, Assumptions, Data Collection), apply general triage: prefer numeric anchors, deadlines, denominators, and explicit gate criteria.
- Canonicalize across sections. The compressor over-produces on purpose; collapsing cross-section near-duplicates into one canonical id is your job at this stage, not its job. Never preserve two ids for the same real-world quantity.
- Percentages as fractions between 0 and 1 with
unit: "fraction". - No invented ids in
formula_hint— every variable must be declared inkey_values,missing_values_to_estimate, or the object's owndepends_on. - Every entry with a non-null
formula_hintMUST also declareoutput_name(snake_case id of the computed value) andoutput_unit(e.g."DKK","people","fraction"). Downstream consumers — generate-calculations, run-scenarios, monte-carlo — read these directly and do not parseformula_hintor pattern-match on tokens. The LLM is the single authority for both fields.
Reference
- System prompt (authoritative):
system-prompt.txt - Producer of the input digest:
experiments/napkin_math/prepare_extract_input.py - Parallel skill for full HTML reports:
../extract-parameters-from-full/SKILL.md - Background:
docs/proposals/137-section_filtering_for_parameter_extraction.md,docs/proposals/139-compress-for-monte-carlo.md
Version History
- 846f612 Current 2026-08-20 11:18


