nsfc-roadmap
npx skills add https://github.com/huangwb8/chineseresearchlatex --skill nsfc-roadmap
Agent 安装分布
Skill 文档
NSFC ææ¯è·¯çº¿å¾çæå¨
éè¦å£°æï¼é宿¹ï¼
- æ¬æè½çæçææ¯è·¯çº¿å¾ä» ç¨äºåä½ä¸å±ç¤ºä¼åï¼ä¸ä»£è¡¨ä»»ä½å®æ¹è¯å®¡å£å¾æèµå©ç»è®ºã
å®å ¨ä¸éç§ï¼ç¡¬è§åï¼
- é»è®¤å°æ 书å 容è§ä¸ºææä¿¡æ¯ï¼ä» å¤çç¨æ·æç¡®æä¾çæä»¶/ç®å½ï¼ä¸æ èªæ©å±æ«æèå´ã
- è¾åºä¸é¿å å¤è¿°ä¸å¿ è¦ç个人信æ¯/åä½ä¿¡æ¯ï¼å¾ä¸èç¹ä» ä¿çç§ç ç¸å ³å 容ã
- é»è®¤ä¸èç½è·åå¤é¨æ°æ®ï¼è¥ç¨æ·æç¡®è¦æ±èç½è¡¥å ç´ æï¼å æéé£é©åæ§è¡ã
è¾å ¥
ç¨æ·è³å°æä¾å ¶ä¸ï¼
proposal_pathï¼æ 书ç®å½ï¼å å«.tex/.mdçï¼æ¨èï¼AI å°èªå¨è¯»åç«é¡¹ä¾æ®ä¸ç ç©¶å 容ï¼proposal_fileï¼å个è¾å ¥æä»¶ï¼ä» 卿 æ³æä¾ç®å½æ¶ä½¿ç¨ï¼æ¨èä¼å æä¾proposal_pathï¼spec_fileï¼ç»æåå¾è§æ ¼æä»¶ï¼æ¨èï¼ä¾¿äºå¯æ§è¿ä»£ï¼
å¯éï¼
roundsï¼è¯ä¼°-ä¼å轮次ï¼é»è®¤ 5ï¼åä¸çç¸æ¥æºè§config.yaml:evaluation.max_roundsï¼output_dirï¼è¾åºç®å½ï¼é»è®¤å¨å½åå·¥ä½ç®å½ä¸å建roadmap_output/ï¼layoutï¼å¸å±æ¨¡æ¿åï¼é»è®¤autoï¼è§config.yaml:layoutï¼æ¯æclassic/three-column/layered-pipelineï¼template_refï¼å ·ä½æ¨¡æ¿ idï¼å¦model-02ï¼é«çº§é项ï¼é»è®¤â纯 AI è§åâä¸éè¦ä¹ä¸å»ºè®®è®¾ç½®ï¼
è¾åº
å¨ output_dir ä¸çæï¼é»è®¤å¯ç¨éèä¸é´äº§ç©ï¼ï¼
- äº¤ä»æ ¹ç®å½ï¼å¯ç´æ¥äº¤ä»ï¼ï¼
roadmap.drawioï¼draw.io å¯ç¼è¾æºæä»¶ï¼ç¨äºäººå·¥å¾®è°ï¼roadmap.svgï¼ç¢éè¾åºï¼ä¼å ç¨äº LaTeX/Word åµå ¥ï¼roadmap.pngï¼é«å辨çä½å¾ï¼ç¨äºé¢è§ä¸å åºï¼roadmap.pdfï¼é»è®¤çæï¼æ draw.io CLI æ¶ä¸º PNGâPDF æ æ ¼é级ï¼roadmap-plan.mdï¼è§åé¶æ®µäº§åºï¼å¯å®¡é /ä¿®æ¹ï¼
- éèä¸é´äº§ç©ï¼
output_dir/.nsfc-roadmap/runs/run_YYYYMMDDHHMMSS/ï¼æ¬æ¬¡è¿è¡é离ç®å½ï¼å å«åè½®round_XX/ï¼round_XX/measurements.jsonï¼çº¯åº¦éééï¼å¯åº¦/溢åº/é¶æ®µå¹³è¡¡/è¿çº¿/åä½çï¼ä¸å« P0/P1/P2 å¤å®ï¼round_XX/dimension_measurements.jsonï¼structure/visual/readability ä¸ç»´åº¦åº¦éï¼ä¾å®¿ä¸» AI è¯ä¹è§£è¯»ï¼round_XX/critique_structure.jsonï¼ç»æå®æ´æ§è¯ä¼°ï¼æ¯è¯ä¸è´æ§/éå¤èç¹/é¶æ®µåçæ§çï¼round_XX/critique_visual.jsonï¼è§è§ç¾å¦è¯ä¼°ï¼å¯¹æ¯åº¦/é è²åºå度çï¼round_XX/critique_readability.jsonï¼äººç±»å¯è¯»æ§è¯ä¼°ï¼åå·é¨æ§/å¯åº¦åå¸/è¾¹ç¼æ¥æ¤çï¼
spec_latest.yamlï¼ææ° spec å¿«ç §ï¼å¯å¤ç°ï¼optimization_report.mdï¼è¿ä»£è®°å½ï¼æ¯è½®ç¼ºé·ä¸ä¿®æ¹ç¹ï¼config_used_best.yaml/evaluation_best.jsonï¼best round å¤ç°è¯æ®config_local.yamlï¼å®ä¾çº§å±é¨é ç½®è¦çï¼ç½åååæ®µï¼ç¨äºâåªè¦çæ¬æ¬¡å¾åæ°/忢çç¥âï¼ä¸æ¹å ¨å±config.yamlï¼å ¶ä¸color_scheme.nameä» å 许{academic-blue, tint-layered}ï¼ai/ï¼AI è¯æ®å ä¸ request/response åè®®ï¼ä» å¨stop_strategy=ai_critic工使µä¸ä½¿ç¨ï¼ai/ACTIVE_RUN.txtï¼å½å ai_critic æ´»è· runï¼ç¨äº resumeï¼ai/{run_dir}/ai_pack_round_XX/ï¼æ¬è½® AI è¯æ®å ï¼ä¾å®¿ä¸» AI è¯»å¾æ¹å¤ï¼ai/{run_dir}/ai_critic_request.mdï¼å®¿ä¸» AI 请æ±ï¼åºå®æ ¼å¼ï¼ai/{run_dir}/ai_critic_response.yamlï¼å®¿ä¸» AI ååºï¼ç»æåï¼spec/config_local patch + stop/continueï¼
工使µï¼æ§è¡è§èï¼
读åé ç½®ï¼å¼ºå¶ï¼
å¼å§åå
è¯»åæ¬æè½ç®å½ä¸ config.yamlï¼ä»¥ä¸å段ä½ä¸ºæ§è¡æ¶åä¸çç¸æ¥æºï¼
rendererï¼è¾åºå°ºå¯¸ä¸æ ¼å¼ãåä½ä¸é è²evaluationï¼æå¤§è½®æ¬¡ä¸æåç»æ¢è§ålayoutï¼å¸å±ä¸åå·é¨æ§color_schemeï¼é è²æ¹æ¡
é¶æ®µä¸ï¼è§åï¼æ¨èï¼
è¥ä½ å·²åå¤å¥½ spec_fileï¼å¯è·³è¿è§åé¶æ®µã
纯 AI è§åï¼é»è®¤ï¼
æ¬æè½é»è®¤å¯ç¨ config.yaml:planning.planning_mode=aiï¼è§åé¶æ®µä¸è¦æ±/ä¸å»ºè®®éæ©åä¸ template_refã
工使µï¼
- è¿è¡
plan_roadmap.pyçæè§å请æ±åè®®ï¼plan_request.json/plan_request.md+ 模åç»å»ï¼ã - 宿主 AI æ
plan_request.mdååºroadmap-plan.md + spec_draft.yamlã - 忬¡è¿è¡
plan_roadmap.pyï¼èæ¬å°æ ¡éªspec_draft.yamlæ¯å¦æ»¡è¶³scripts/spec.py:load_spec()约æã
ï¼å
¼å®¹æ§æµç¨ï¼å¦éè®©èæ¬æç¡®å®æ§è§åç´æ¥çæèæ¡ï¼æ¨¡æ¿è§åï¼ï¼ä½¿ç¨ --mode template æè®¾ç½® planning_mode=templateã
æ¥éª¤ 1ï¼è°æ¥æ 书
è¯»åæ ä¹¦ç®å½ä¸çå ³é® tex æä»¶ï¼å½»åºäºè§£æ´ä¸ªæ ä¹¦çæ åµãè³å°è¯»åï¼
extraTex/1.ç«é¡¹ä¾æ®.texï¼æçææä»¶ï¼ï¼ç ç©¶èæ¯ãç§å¦é®é¢ãç ç©¶å说extraTex/2.1.ç ç©¶å 容.texï¼æçææä»¶ï¼ï¼å ·ä½ç ç©¶å å®¹ãææ¯è·¯çº¿
ä» çç ç©¶å 容æ¯ä¸å¤çï¼ç«é¡¹ä¾æ®æä¾äºç§å¦é»è¾çå ¨è²ï¼æå©äºæ´åç¡®å°ææ¡è·¯çº¿å¾çåäºç»æä¸è·¯çº¿åäºè®¾è®¡ã
æ¥éª¤ 2ï¼è§è§åèï¼å¦ä¹ ä¼ç§ç»æï¼ï¼çæ roadmap-plan.md
ä¼å
åºäºâè§è§åèâæ¥å¦ä¹ ä¼ç§ç»æï¼ä¸è¦æ±ä¹ä¸å»ºè®®åºå®å°æä¸ª template_refï¼ï¼
- è¿è¡è§åèæ¬åï¼æ¥ç
output_dir/.nsfc-roadmap/planning/models_contact_sheet.pngï¼æ¨¡åç»å» contact sheetï¼ - æç´æ¥æ¥ç
references/models/ä¸çåå¼ åèå¾
ç¶åå¨ roadmap-plan.md ä¸æç¡®ååºï¼
- è§è§/ç»æå¦ä¹ ç¹ï¼ä¾å¦ï¼ååºæ¹å¼ã主é¾èµ°åãä¿¡æ¯å¯åº¦æ§å¶ãé è²å±çº§ï¼
- è·¯çº¿å¾æ´ä½ç»æè®¾è®¡ï¼ååº/å/主线ãèç¹å¯åº¦ä¸éãé è²å±çº§çï¼
æ¥éª¤ 3ï¼çæ spec.yaml
åºäº roadmap-plan.md çæ spec.yamlï¼ç»æåå¾è§æ ¼ï¼ï¼å¿
须满足ï¼
- 3â5 ä¸ªé¶æ®µï¼phasesï¼ï¼æ¯ä¸ªé¶æ®µ 2â6 个èç¹ï¼boxesï¼
- æ¯è¯ä¸æ£æä¸è´ï¼å䏿¦å¿µä¸åºç°å¤ç§å«æ³ï¼
- è¾å ¥è¾åºéåï¼æ¯ä¸ªæ¨¡å/å ³é®èç¹ææç¡®äº§åºï¼
- é£é©ä¸å¤éæ¹æ¡å¯è§ï¼è³å° 1 个é£é©/å¯¹ç §èç¹ï¼
é¶æ®µäºï¼ä» roadmap-plan.md è½å° specï¼ç»æåå¾è§æ ¼ï¼
ä¼å è·¯å¾ï¼æä¼å 级ï¼ï¼
- ç¨æ·æä¾
spec_fileï¼ç´æ¥ä½¿ç¨ï¼å¯æ§ãå¯å¤ç°ï¼ - é¶æ®µä¸å·²å®æï¼ä½¿ç¨é¶æ®µä¸çæç
spec.yamlï¼æèæ¬è§å产ç©spec_draft.yamlï¼ - è·³è¿é¶æ®µä¸ï¼ä»è¾å ¥æä»¶ä¸èªå¨æ½å”ç ç©¶å 容/ææ¯è·¯çº¿”ç¸å ³æ®µè½çæåç spec
模æ¿å段ï¼å¯éï¼æ¨èå¨ spec ä¸è®°å½ä»¥ä¾¿å¯å¤ç°ä¸å¤çï¼ï¼
layout_template: auto|classic|three-column|layered-pipelineï¼å¯éï¼ä¸åä¹å¯ä»¥ï¼template_ref: model-01..model-10ï¼å¯éï¼é»è®¤ä¸å»ºè®®ä½¿ç¨ï¼ä»¥é¿å æå¤æåºæ¯âæ¡æ»âå¨å䏿¨¡æ¿ä¸ï¼
é¶æ®µä¸ï¼æ¸²æï¼ç¡®å®æ§èæ¬ï¼
ç®æ ï¼ä»¥ spec.yaml 为åä¸çç¸æ¥æºï¼ç¡®å®æ§çæäº¤ä»æä»¶ï¼drawio + svg/png/pdfï¼ã
è¿è¡ï¼ç¤ºä¾ï¼ï¼
python3 nsfc-roadmap/scripts/generate_roadmap.py \
--spec-file ./roadmap_output/spec.yaml \
--output-dir ./roadmap_output \
--rounds 5
èæ¬èè´£ï¼
- å°ææ° spec åºåå°
output_dir/.nsfc-roadmap/spec_latest.yaml - è¾åº
roadmap.drawioï¼å¯ç¼è¾æºæä»¶ï¼ - è¾åº
roadmap.svg/roadmap.png/roadmap.pdfï¼äº¤ä»ç»æï¼
é¶æ®µåï¼è¯ä¼°-ä¼å循ç¯ï¼é»è®¤ 5 è½®ï¼
ç®æ ï¼å´ç»é¶æ®µä¸å¨ roadmap-plan.md ä¸å£°æçåäºä¸çå¼çº¦æï¼è¿ä»£æ¹è¿å¯è¯»æ§ä¸ä¸ä¸æï¼å¿
è¦æ¶åå spec å¹¶å¤è·ã
æ¯è½®å¿ 须产åºç»æåç¼ºé·æ¸ åï¼å»ºè®® JSONï¼ï¼
P0ï¼ä¼è¢«è¯å®¡ç´æ¥æ£åï¼ç¼ºç ç©¶å 容ãé»è¾æè£ãå¤ç«èç¹ãä¸å¯è¯»ï¼P1ï¼æ¾èå½±åä¸ä¸å°è±¡ï¼å¸å±æ··ä¹±ãéå ãåºç¼é è²ãåå·è¿å°ï¼P2ï¼ä¸è¬ä¼åï¼é´è·ä¸åãè¾¹è·åå°ãç®å¤´ä¸æ¸ æ°ãä¿¡æ¯æ¥æ¤ï¼
çº åååï¼é¿å âè¶ä¼åè¶ä¸å¯è¯»âï¼ï¼
- densityï¼æ¥æ¤ï¼é常æ¯å
容é®é¢ï¼ä¼å
æ¹
specï¼ç¼©çèç¹ææ¡/åå¹¶ç¸è¿èç¹/åå°èç¹æ°ï¼ï¼ä¸è¦ç¨ç¼©åå·æ¥âéè¿éå¼âã - overflow ææ¯ç¼©åå·çæ£ç¡®è§¦åæ¡ä»¶ï¼åºç°æå溢åº/æ¥è¿æº¢åºæ¶ï¼æèèååå·æå¢å¤§ box é«åº¦ã
- åå·åå°åºå¢å¤§åä½ï¼å½è¯ä¼°ä¸ºâåå·åå°/è¿å°â䏿²¡æ overflow é£é©æ¶ï¼åºå¢å¤§åå·ï¼ä¼å ä¿è¯ A4 æå°å¯è¯»ã
- é è²å¹²æ°æ¯ spec å±é¢ç kind åé é®é¢ï¼ä¼å åå° kind ç§ç±»ãä¿®æ£ kind è¯ä¹ï¼ä¸è¦ç¨åæ¢å°é»ç½æ¹æ¡æ¿ä»£ç»æä¿®æ£ã
忢çç¥ä»¥ config.yaml:evaluation 为åï¼
early_stopï¼legacy æåç»æ¢è§åï¼å¯éå¼å¯ï¼stop_strategy: plateauï¼é»è®¤å¯ç¨çâ平尿忢âï¼åºäº PNG åå¸ä¸åæ°æåéå¼ï¼stop_strategy: ai_criticï¼AI èªä¸»éç¯ï¼èæ¬ä¸è°ç¨å¤é¨æ¨¡åï¼æ¯è½®çæ request å¹¶æåçå¾ å®¿ä¸» AI ç responseï¼
è¯ä¼°æ¨¡å¼ä»¥ config.yaml:evaluation.evaluation_mode 为åï¼
heuristicï¼é»è®¤ï¼ï¼èæ¬å¯åå¼è¯ä¼° + å¤ç»´åº¦èªæ£ï¼å¯å¤ç°ãå¯ç¦»çº¿ï¼aiï¼é¢å¤å¯¼åºçº¯åº¦éè¯æ®measurements.json/dimension_measurements.jsonä¾å®¿ä¸» AI 解读ï¼å¸¸ä¸stop_strategy=ai_criticæé ï¼
è¡¥å
ï¼å¤ç»´åº¦èªæ£ï¼é»è®¤å¯ç¨ï¼é
ç½®è§ config.yaml:evaluation.multi_round_self_checkï¼ï¼
- 卿¯è½®æ¸²æåå¹¶è¡è¿è¡
structure/visual/readabilityä¸ä¸ªç»´åº¦è¯ä¼° - æ¯ä¸ªç»´åº¦äº§åºç¬ç«ç
critique_*.jsonï¼å¹¶æ±æ»è¿evaluation.json - è¯åéç¨âåºç¡è¯ä¼°åæ° – ç»´åº¦ç¼ºé·æ©ç½âçä¿å®çç¥ï¼é¿å éæ¼äººç±»æç¥é®é¢
AI èªä¸»éç¯ï¼å¯éï¼stop_strategy=ai_criticï¼
å½ä½ 叿æâæä¹ç»å¾/æ¯å¦ç»§ç»/æ¹åªå¿â交ç»å®¿ä¸» AI å³çæ¶ï¼å¯ç¨ ai_critic 模å¼ï¼
- 卿¬æ¬¡è¾åºç®å½çéèä¸é´äº§ç©éå建/ç¼è¾ï¼
output_dir/.nsfc-roadmap/config_local.yaml - å¨å
¶ä¸è®¾ç½®ï¼
evaluation.stop_strategy: ai_criticï¼è¿æ¯å®ä¾çº§å¼å ³ï¼ä¸æ¹å ¨å±config.yamlï¼ - è¿è¡
generate_roadmap.pyåèæ¬ä¼ï¼- åªæ¸²æ 1 è½®ï¼æå¨å·²æ run ä¸ç»§ç»æ¸²æä¸ä¸è½®ï¼
- çæè¯æ®å
ï¼
output_dir/.nsfc-roadmap/ai/{run_dir}/ai_pack_round_XX/ï¼å«roadmap.png/spec_latest.yaml/config_used.yaml/evaluation.json/measurements.json/dimension_measurements.json/critique_*.jsonï¼ - ååºåºå®è¯·æ±ï¼
ai_critic_request.md - æåçå¾
ä½ ï¼å®¿ä¸» AIï¼åå
¥ï¼
ai_critic_response.yaml
- ä½ æå®¿ä¸» AI çç»æåååºåå
¥
ai_critic_response.yamlåï¼å次è¿è¡èæ¬å³å¯èªå¨åºç¨ patch å¹¶è¿å ¥ä¸ä¸è½®ã
ai_critic_response.yaml æå°åè®®ï¼version=1ï¼
version: 1
based_on_round: 1
action: both # spec_only|config_only|both|stop
reason: "ä¸å¥è¯è¯´ææ¬è½®è¡å¨ä¸åæ¢/ç»§ç»ä¾æ®"
# æ¨èï¼ç´æ¥ç»å®æ´ specï¼é¿å
patch åå¹¶æ§ä¹ï¼
# spec:
# title: ...
# phases: ...
# å¯éï¼ç» config_local patchï¼ä»
å
许 renderer/layout/color_scheme/evaluation.stop_strategy çå®å
¨åéï¼
# config_local:
# color_scheme:
# name: tint-layered
é¶æ®µäºï¼äº¤ä»ä¸èªæ£
交ä»åèªæ£æ¸ åï¼
- A4 å¯è¯»ï¼ä¸ä¾èµæ¾å¤§ï¼
- 主æµåæ¸ æ°ï¼ä¸âä¸ãå·¦âå³ï¼
- é è² â¤ 3 ç§ä¸»è²è°ï¼å è®¸è¾ å©ç°ï¼
- èç¹å½å䏿£æä¸è´
- è¾åºå
å«
roadmap.drawioä¸è³å°ä¸ç§å¯åµå ¥æ ¼å¼ï¼svgæpngï¼