Not in the top 1,000 by GitHub stars

thePlannerIvan/planners-ppt-hell

A PPT Skill for Planners.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1d5bb51f510d

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 1d5bb51f510d0906aef82ee8f2a96ca40cd72cef

244GitHub stars
1star in 7 days
1skill in this repository
25commits in 30 days

Heat

3.1
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 1, 2026244

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

planners-ppt-hell

When your agent uses it

制作与持续修改 SVG 页面工作台,从逐页内容稿或 video-idea-system 的 visual-plan.json 与素材出发,输出可编辑 PPT 或视频 SVG 文件。用于直接材料或生产包的页面制作、返修、视觉参考复用及需人工确认的模板提炼入库。

What it loads into context

Frontmatter

75 tokens

Always available to the agent

SKILL.md

1,643 tokens

When the skill is activated

Reference documents

179,578 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 1. 接收
  2. 2. 定方向
  3. 3. 工作台
  4. 4. 输出
  5. 按需读取
  6. 运行后迭代

Scripts executed separately

  • GOTCHAS.md
  • agents/openai.yaml
  • assets/review/workbench-tools.js
  • references/domain/svg_to_ppt_rules.md
  • references/maintenance-history.md
  • references/workflow/03_video_route.md
  • scripts/canvas_frame.py
  • scripts/copy_audit.py
  • scripts/generate_review_html.py
  • scripts/generate_template_review_html.py
  • scripts/image_diagnostics.py
  • scripts/import_bypage.py
  • scripts/init_svg_project.py
  • scripts/lib/office.py
  • scripts/lib/planners_modules.py
  • scripts/lib/planners_modules_install.py
  • scripts/lib/planners_modules_install_test.py
  • scripts/lib/svg_style_inline.py
  • scripts/native_svg_to_ppt.py
  • scripts/orchestrate/ppt_pipeline.py
  • scripts/prepare_source_material.py
  • scripts/project_state.py
  • scripts/render_svg_png.py
  • scripts/requirements.txt
  • scripts/review_feedback.py
  • scripts/review_surface.py
  • scripts/template/apply_fidelity_template.py
  • scripts/template/build_fidelity_template.py
  • scripts/template/extract_template_assets.py
  • scripts/template/extract_template_pack.py
  • scripts/template/layout_canvas.py
  • scripts/template/prepare_visual_references.py
  • scripts/template/seal_template_review.py
  • scripts/template/template_library.py
  • scripts/template/template_visual_gate.py
  • scripts/template_feedback.py
  • scripts/test/test_canvas_browser.py
  • scripts/test/test_converter_geometry.py
  • scripts/test/test_design_ownership.py
  • scripts/test/test_human_edit_guard.py
  • scripts/test/test_import_bypage.py
  • scripts/test/test_production_diagnostics.py
  • scripts/test/test_review_browser.py
  • scripts/test/test_review_reported_bugs.py
  • scripts/test/test_review_surface.py
  • scripts/test/test_route_rules.py
  • scripts/test/test_slides_upgrade.py
  • scripts/test/test_source_assets.py
  • scripts/test/test_template_integrity.py
  • scripts/test/test_template_library_integrity.py
  • scripts/test/test_template_review_browser.py
  • scripts/test/test_template_surface.py
  • scripts/test/test_v5.py
  • scripts/test/test_video_route_init.py
  • scripts/test/test_video_route_pipeline.py
  • scripts/test/test_workbench_pipeline.py
  • scripts/test/test_workbench_store.py
  • scripts/test/test_workbench_tools.py
  • scripts/test/test_workbench_ui.py
  • scripts/validate_svg_layout.py
  • scripts/workbench_store.py

Files

  • .gitignoreasset119 bytes
  • CHANGELOG.mddoc70,080 bytes
  • COMMERCIAL.mddoc1,115 bytes
  • GOTCHAS.mdruns62,241 bytes
  • LICENSEasset34,523 bytes
  • NOTICEasset775 bytes
  • README.mddoc10,263 bytes
  • SECURITY.mddoc1,656 bytes
  • SKILL.mdcore6,613 bytes
  • TRADEMARK.mddoc1,355 bytes
  • agents/openai.yamlruns404 bytes
  • assets/review/review.htmlasset160,387 bytes
  • assets/review/workbench-tools.jsruns12,706 bytes
  • assets/template_library/agency-social-proposal/SPEC.mddoc3,702 bytes
  • assets/template_library/agency-social-proposal/anchors/mizuno_ops_svg_p11_architecture_6pillars.pngasset179,995 bytes
  • assets/template_library/agency-social-proposal/anchors/mizuno_v2_pdf_p02_3in1_system.pngasset179,656 bytes
  • assets/template_library/agency-social-proposal/anchors/mizuno_v2_pdf_p13_architecture_house.pngasset183,472 bytes
  • assets/template_library/agency-social-proposal/anchors/mizuno_v2_pdf_p32_table_calendar.pngasset262,812 bytes
  • assets/template_library/agency-social-proposal/anchors/mizuno_v2_pdf_p43_evidence_xhs_demo.pngasset1,150,387 bytes
  • assets/template_library/agency-social-proposal/manifest.jsonasset4,338 bytes
  • assets/template_library/agency-social-proposal/previews/full_deck_contact_sheet.pngasset536,480 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p00_skyline_shell.pngasset113,007 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p01_cover.pngasset195,341 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p02_asymmetric_insight.pngasset307,003 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p03_swiss_editorial_grid.pngasset312,430 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p04_strategy_house.pngasset269,756 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p05_xhs_evidence_split.pngasset316,450 bytes
  • assets/template_library/agency-social-proposal/previews/pages/p06_zebra_battle_table.pngasset281,830 bytes
  • assets/template_library/agency-social-proposal/previews/png_manifest.jsonasset1,288 bytes
  • assets/template_library/agency-social-proposal/primitives/p01_cover.svgasset7,395 bytes
  • assets/template_library/agency-social-proposal/primitives/p02_asymmetric_insight.svgasset9,847 bytes
  • assets/template_library/agency-social-proposal/primitives/p03_swiss_editorial_grid.svgasset13,171 bytes
  • assets/template_library/agency-social-proposal/primitives/p04_strategy_house.svgasset13,598 bytes
  • assets/template_library/agency-social-proposal/primitives/p05_xhs_evidence_split.svgasset10,526 bytes
  • assets/template_library/agency-social-proposal/primitives/p06_zebra_battle_table.svgasset12,976 bytes
  • assets/template_library/agency-social-proposal/skyline_shell.svgasset4,238 bytes
  • assets/template_library/agency-social-proposal/tokens.cssasset1,198 bytes
  • assets/template_library/consulting-product-strategy/SPEC.mddoc3,716 bytes
  • assets/template_library/consulting-product-strategy/anchors/mizuno_ops_svg_p05_evidence_competitor.pngasset141,305 bytes
  • assets/template_library/consulting-product-strategy/anchors/viomi_v4_pdf_p03_comparison_offense_defense.pngasset104,813 bytes
  • assets/template_library/consulting-product-strategy/anchors/viomi_v4_pdf_p04_data_table_evidence.pngasset558,167 bytes
  • assets/template_library/consulting-product-strategy/anchors/viomi_v4_pdf_p12_competitor_teardown.pngasset850,056 bytes
  • assets/template_library/consulting-product-strategy/anchors/viomi_v4_pdf_p23_quadrant_2x2.pngasset156,287 bytes
  • assets/template_library/consulting-product-strategy/manifest.jsonasset4,392 bytes
  • assets/template_library/consulting-product-strategy/previews/full_deck_contact_sheet.pngasset502,016 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p00_skyline_shell.pngasset130,604 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p01_cover.pngasset152,272 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p02_kpi_closed_loop.pngasset346,894 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p03_quadrant_2x2.pngasset344,668 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p04_mechanism_pipeline.pngasset236,946 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p05_asymmetric_comparison.pngasset236,877 bytes
  • assets/template_library/consulting-product-strategy/previews/pages/p06_chart_and_takeaway.pngasset263,407 bytes
  • assets/template_library/consulting-product-strategy/previews/png_manifest.jsonasset1,280 bytes
  • assets/template_library/consulting-product-strategy/primitives/p01_cover.svgasset5,737 bytes
  • assets/template_library/consulting-product-strategy/primitives/p02_kpi_closed_loop.svgasset12,591 bytes
  • assets/template_library/consulting-product-strategy/primitives/p03_quadrant_2x2.svgasset11,492 bytes
  • assets/template_library/consulting-product-strategy/primitives/p04_mechanism_pipeline.svgasset13,951 bytes
  • assets/template_library/consulting-product-strategy/primitives/p05_asymmetric_comparison.svgasset10,386 bytes
  • assets/template_library/consulting-product-strategy/primitives/p06_chart_and_takeaway.svgasset11,998 bytes
  • assets/template_library/consulting-product-strategy/skyline_shell.svgasset4,168 bytes
  • assets/template_library/consulting-product-strategy/tokens.cssasset1,016 bytes
  • assets/template_library/dark-titanium-cockpit/SPEC.mddoc7,128 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_01.pngasset100,531 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_02.pngasset90,229 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_03.pngasset117,477 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_04.pngasset82,512 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_05.pngasset254,354 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_06.pngasset191,052 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_07.pngasset142,509 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_08.pngasset80,566 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_09.pngasset143,633 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_10.pngasset153,837 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_11.pngasset107,055 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_12.pngasset178,715 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_13.pngasset149,509 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_14.pngasset86,007 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_15.pngasset128,836 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_16.pngasset78,073 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_17.pngasset123,016 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_18.pngasset157,241 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_19.pngasset111,618 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_20.pngasset122,772 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_21.pngasset137,630 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_22.pngasset121,776 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_23.pngasset100,328 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_24.pngasset103,728 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_25.pngasset92,317 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_26.pngasset124,762 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_27.pngasset133,243 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_28.pngasset93,403 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_29.pngasset123,584 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_30.pngasset103,113 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_31.pngasset113,666 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_32.pngasset133,300 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_33.pngasset109,689 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_34.pngasset151,337 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_35.pngasset124,470 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_36.pngasset106,909 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_37.pngasset105,191 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_38.pngasset137,644 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_39.pngasset124,264 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_40.pngasset151,152 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_41.pngasset113,589 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_42.pngasset173,117 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_43.pngasset100,128 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_44.pngasset92,934 bytes
  • assets/template_library/dark-titanium-cockpit/anchors/page_45.pngasset196,138 bytes
  • assets/template_library/dark-titanium-cockpit/assets/abstract_placeholder.jpgasset545,658 bytes
  • assets/template_library/dark-titanium-cockpit/manifest.jsonasset23,397 bytes
  • assets/template_library/dark-titanium-cockpit/previews/full_deck_contact_sheet.pngasset956,044 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p01_master_brutalist_cover.pngasset100,719 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p02_monumental_16_9_cover.pngasset85,934 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p03_brutalist_parenthetical_manifesto.pngasset143,738 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p04_broken_syllable_manifesto.pngasset113,761 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p05_radial_sunburst_manifesto.pngasset111,516 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p06_angled_tape_label_manifesto.pngasset122,054 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p07_bidirectional_vector_arrow_manifesto.pngasset99,981 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p08_right_aligned_index_ledger.pngasset129,124 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p09_creative_agenda_pillar.pngasset191,178 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p10_brutalist_web_cockpit_navbar.pngasset133,243 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p11_alternating_horizontal_timeline.pngasset92,755 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p12_monumental_4column_slender.pngasset82,449 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p13_threepillar_mechanism_void.pngasset107,344 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p14_escalating_stat_grid_pillars.pngasset77,862 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p15_circular_step_columns.pngasset133,314 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p16_interlocking_horizontal_blocks.pngasset92,336 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p17_editorial_quote_2x2_wireframe.pngasset122,948 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p18_dual_tier_mega_numeral.pngasset93,179 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p19_airy_floating_ledger.pngasset154,042 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p20_high_density_financial_ledger.pngasset157,211 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p21_digits_data_grid.pngasset142,539 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p22_asymmetric_bipolar_metric_cockpit.pngasset136,837 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p23_diptych_polar_split.pngasset100,328 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p24_glyph_ticker_milestone_ribbon.pngasset123,455 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p25_precision_metric_gauge_spectrum.pngasset109,912 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p26_barcode_pill_metric_array.pngasset124,566 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p27_horizontal_gradient_fade_ledger.pngasset151,252 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p28_horizon_rounded_ascending_bars.pngasset124,132 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p29_stepped_progress_bricks.pngasset173,391 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p30_segmented_arc_milestone_gauge.pngasset151,365 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p31_organic_spline_wave_matrix.pngasset113,608 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p32_human_pictogram_penetration_matrix.pngasset106,978 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p33_geometric_dot_matrix_grid.pngasset137,499 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p34_industrial_specimen_matrix_8grid.pngasset274,372 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p35_editorial_multigrid_moodboard.pngasset196,160 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p36_editorial_asymmetric_moodboard_8grid.pngasset838,935 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p37_asymmetric_dual_detail_hero_collage.pngasset1,045,132 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p38_horizontal_triptych_gallery_strip.pngasset417,282 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p39_monolith_pedestal_showcase_strip.pngasset350,328 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p40_monolithic_numeral_accordion_photo.pngasset434,469 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p41_cybernetic_portrait_split_cockpit.pngasset795,118 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p42_monolithic_facade_telemetry_plaques.pngasset710,187 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p43_horizon_panoramic_strip_sunken_ledger.pngasset667,853 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p44_edge_infiltrated_hardware_hero.pngasset835,093 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p45_center_monumental_portrait_stamp_seal.pngasset726,979 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p46_documentary_anchor_center_triptych.pngasset714,840 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p47_fluorescent_grid_neon_photo_window.pngasset600,951 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p48_scope_big_arrow_break.pngasset149,509 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p49_fluorescent_lime_blast_screen.pngasset105,234 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p50_scientific_tomography_punchcard_plaque.pngasset690,882 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p51_vertical_pillar_grid.pngasset117,154 bytes
  • assets/template_library/dark-titanium-cockpit/previews/p52_aura_horizon_milestone.pngasset254,455 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p01_master_brutalist_cover.svgasset3,369 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p02_monumental_16_9_cover.svgasset2,822 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p03_brutalist_parenthetical_manifesto.svgasset4,314 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p04_broken_syllable_manifesto.svgasset3,423 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p05_radial_sunburst_manifesto.svgasset3,065 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p06_angled_tape_label_manifesto.svgasset3,551 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p07_bidirectional_vector_arrow_manifesto.svgasset4,406 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p08_right_aligned_index_ledger.svgasset5,698 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p09_creative_agenda_pillar.svgasset8,041 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p10_brutalist_web_cockpit_navbar.svgasset5,635 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p11_alternating_horizontal_timeline.svgasset7,306 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p12_monumental_4column_slender.svgasset4,653 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p13_threepillar_mechanism_void.svgasset3,957 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p14_escalating_stat_grid_pillars.svgasset5,077 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p15_circular_step_columns.svgasset6,996 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p16_interlocking_horizontal_blocks.svgasset3,139 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p17_editorial_quote_2x2_wireframe.svgasset4,944 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p18_dual_tier_mega_numeral.svgasset3,128 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p19_airy_floating_ledger.svgasset6,111 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p20_high_density_financial_ledger.svgasset6,714 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p21_digits_data_grid.svgasset6,664 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p22_asymmetric_bipolar_metric_cockpit.svgasset5,938 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p23_diptych_polar_split.svgasset3,598 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p24_glyph_ticker_milestone_ribbon.svgasset5,007 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p25_precision_metric_gauge_spectrum.svgasset4,526 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p26_barcode_pill_metric_array.svgasset10,492 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p27_horizontal_gradient_fade_ledger.svgasset6,319 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p28_horizon_rounded_ascending_bars.svgasset5,622 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p29_stepped_progress_bricks.svgasset7,409 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p30_segmented_arc_milestone_gauge.svgasset6,890 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p31_organic_spline_wave_matrix.svgasset6,664 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p32_human_pictogram_penetration_matrix.svgasset15,738 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p33_geometric_dot_matrix_grid.svgasset5,269 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p34_industrial_specimen_matrix_8grid.svgasset7,907 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p35_editorial_multigrid_moodboard.svgasset11,076 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p36_editorial_asymmetric_moodboard_8grid.svgasset7,113 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p37_asymmetric_dual_detail_hero_collage.svgasset3,908 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p38_horizontal_triptych_gallery_strip.svgasset5,409 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p39_monolith_pedestal_showcase_strip.svgasset6,722 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p40_monolithic_numeral_accordion_photo.svgasset6,046 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p41_cybernetic_portrait_split_cockpit.svgasset5,141 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p42_monolithic_facade_telemetry_plaques.svgasset5,159 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p43_horizon_panoramic_strip_sunken_ledger.svgasset5,870 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p44_edge_infiltrated_hardware_hero.svgasset5,153 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p45_center_monumental_portrait_stamp_seal.svgasset5,446 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p46_documentary_anchor_center_triptych.svgasset5,403 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p47_fluorescent_grid_neon_photo_window.svgasset4,395 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p48_scope_big_arrow_break.svgasset6,903 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p49_fluorescent_lime_blast_screen.svgasset6,199 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p50_scientific_tomography_punchcard_plaque.svgasset4,411 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p51_vertical_pillar_grid.svgasset4,110 bytes
  • assets/template_library/dark-titanium-cockpit/primitives/p52_aura_horizon_milestone.svgasset7,791 bytes
  • assets/template_library/dark-titanium-cockpit/skyline_shell.svgasset1,843 bytes
  • assets/template_library/dark-titanium-cockpit/tokens.cssasset4,230 bytes
  • assets/template_library/pinterest-neo-swiss-video/SPEC.mddoc9,304 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p01_tangle_to_grid.pngasset118,450 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p02_geometric_quadrant.pngasset69,430 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p03_isometric_strata.pngasset50,511 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p04_radial_ray_fan.pngasset117,395 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p05_retro_dialog_cascade.pngasset25,246 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p06_grid_quote_deletion.pngasset49,122 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p07_triptych_cosmos.pngasset55,576 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p08_circular_gauge_meters.pngasset52,501 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p09_petal_spectrum_dial.pngasset55,422 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p10_constellation_network.pngasset38,662 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p11_exploded_axonometric.pngasset67,406 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/p12_crt_terminal_menu.pngasset24,103 bytes
  • assets/template_library/pinterest-neo-swiss-video/anchors/skyline_shell.pngasset176,033 bytes
  • assets/template_library/pinterest-neo-swiss-video/manifest.jsonasset5,315 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p01_tangle_to_grid.svgasset7,369 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p02_geometric_quadrant.svgasset5,242 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p03_isometric_strata.svgasset4,420 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p04_radial_ray_fan.svgasset5,889 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p05_retro_dialog_cascade.svgasset4,030 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p06_grid_quote_deletion.svgasset3,817 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p07_triptych_cosmos.svgasset4,881 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p08_circular_gauge_meters.svgasset4,094 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p09_petal_spectrum_dial.svgasset4,419 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p10_constellation_network.svgasset11,223 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p11_exploded_axonometric.svgasset6,319 bytes
  • assets/template_library/pinterest-neo-swiss-video/primitives/p12_crt_terminal_menu.svgasset4,291 bytes
  • assets/template_library/pinterest-neo-swiss-video/skyline_shell.svgasset4,678 bytes
  • assets/template_library/pinterest-neo-swiss-video/tokens.cssasset4,150 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/full_deck_contact_sheet.pngasset7,782 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/pages/closing_dark.pngasset8,654 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/pages/content_base.pngasset8,700 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/pages/contents_light.pngasset8,700 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/pages/cover_dark.pngasset8,654 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/pages/section_dark.pngasset8,654 bytes
  • assets/template_library/planner-simple-default/fidelity_template/canvas_previews/png_manifest.jsonasset1,029 bytes
  • assets/template_library/planner-simple-default/fidelity_template/components.svgasset787 bytes
  • assets/template_library/planner-simple-default/fidelity_template/layout_canvases/closing_dark.svgasset659 bytes
  • assets/template_library/planner-simple-default/fidelity_template/layout_canvases/content_base.svgasset823 bytes
  • assets/template_library/planner-simple-default/fidelity_template/layout_canvases/contents_light.svgasset825 bytes
  • assets/template_library/planner-simple-default/fidelity_template/layout_canvases/cover_dark.svgasset657 bytes
  • assets/template_library/planner-simple-default/fidelity_template/layout_canvases/section_dark.svgasset659 bytes
  • assets/template_library/planner-simple-default/fidelity_template/template_registry.jsonasset4,580 bytes
  • assets/template_library/planner-simple-default/manifest.jsonasset2,577 bytes
  • assets/template_library/planner-simple-default/template_asset_registry.jsonasset115 bytes
  • assets/template_library/planner-simple-default/template_profile.jsonasset1,194 bytes
  • assets/template_library/planner-simple-default/template_worker_result.jsonasset359 bytes
  • assets/video_style_references/editorial-archive/domain-1-slot-expand-pin26-f03.jpgasset5,184 bytes
  • assets/video_style_references/editorial-archive/domain-1-text-focus-pin05.pngasset599,049 bytes
  • assets/video_style_references/editorial-archive/domain-1-text-focus-solo-pin19.jpgasset149,428 bytes
  • assets/video_style_references/editorial-archive/domain-2-model-build-pin03.webpasset48,594 bytes
  • assets/video_style_references/editorial-archive/domain-2-model-tree-pin16.pngasset63,568 bytes
  • assets/video_style_references/editorial-archive/domain-3-editorial-mix-pin12.pngasset689,947 bytes
  • assets/video_style_references/editorial-archive/domain-3-editorial-mix-pin32-f02.jpgasset77,698 bytes
  • assets/video_style_references/editorial-archive/domain-4-image-archive-pin15-s01.jpgasset221,869 bytes
  • assets/video_style_references/editorial-archive/domain-4-image-archive-solo-pin30.jpgasset156,635 bytes
  • assets/video_style_references/editorial-archive/domain-4-z-stack-drop-pin28-f03.jpgasset59,566 bytes
  • assets/video_style_references/editorial-archive/prototype_7_beats_contact_sheet.pngasset323,784 bytes
  • docs/ARCHITECTURE.mddoc2,004 bytes
  • docs/README.mddoc477 bytes
  • docs/UPGRADE-v5.mddoc1,744 bytes
  • docs/history/2026-07-18-main-release/CHANGE_AND_VALIDATION_LOG.mddoc3,375 bytes
  • docs/history/Template-Runtime-Simplification-Handoff.mddoc21,466 bytes
  • docs/history/architecture-upgrade-20260717/00_BASELINE_AND_ROLLBACK.mddoc3,582 bytes
  • docs/history/architecture-upgrade-20260717/01_CURRENT_ARCHITECTURE.mddoc14,010 bytes
  • docs/history/architecture-upgrade-20260717/02_FILE_AUDIT.mddoc11,929 bytes
  • docs/history/architecture-upgrade-20260717/03_UPGRADE_EXECUTION_AND_ACCEPTANCE.mddoc9,280 bytes
  • docs/history/architecture-upgrade-20260717/04_WORK_LOG.mddoc7,916 bytes
  • docs/history/architecture-upgrade-20260717/05_SUBAGENT_SCRIPT_AUDIT.mddoc3,526 bytes
  • docs/history/architecture-upgrade-20260717/06_SUBAGENT_TEMPLATE_AUDIT.mddoc3,220 bytes
  • docs/history/architecture-upgrade-20260717/07_FINAL_VERIFICATION_AND_DIFF.mddoc5,844 bytes
  • docs/history/architecture-upgrade-20260717/08_TEMPLATE_FEEDBACK_ROUND1.jsonasset5,889 bytes
  • docs/history/architecture-upgrade-20260717/09_WORKFLOW_PROMPT_HANDOFF_AUDIT.mddoc6,525 bytes
  • docs/history/architecture-upgrade-20260717/10_V2PPTTEST3_POST_RUN_AUDIT_CHECKLIST.mddoc1,449 bytes
  • docs/history/legacy-planning/acceptance-remediation-tasks.mddoc13,029 bytes
  • docs/history/legacy-planning/architecture-overview.svgasset42,949 bytes
  • docs/history/legacy-planning/architecture-simplification-report.mddoc10,528 bytes
  • docs/history/legacy-planning/architecture-simplification-workflow.mddoc17,194 bytes
  • docs/history/legacy-planning/failure-mode-scan-v2.mddoc3,950 bytes
  • docs/history/legacy-planning/mece-acceptance-review-v2.mddoc4,275 bytes
  • docs/history/legacy-planning/mece-acceptance-review.mddoc7,011 bytes
  • docs/history/legacy-planning/mece-action-candidates-v2.mddoc5,469 bytes
  • docs/history/legacy-planning/mece-action-candidates.mddoc8,680 bytes
  • docs/history/legacy-planning/mece-duplicate-rule-index-v2.jsonasset6,000 bytes
  • docs/history/legacy-planning/mece-duplicate-rule-index.jsonasset25,074 bytes
  • docs/history/legacy-planning/mece-responsibility-matrix-v2.csvasset8,430 bytes
  • docs/history/legacy-planning/mece-responsibility-matrix.csvasset5,960 bytes
  • docs/history/legacy-planning/mece-scan-results.jsonasset157,143 bytes
  • docs/history/legacy-planning/mece-simplification-report-v2.mddoc9,731 bytes
  • docs/history/legacy-planning/mece-simplification-report.mddoc11,387 bytes
  • docs/history/legacy-planning/mece-simplification-test-workflow.mddoc18,777 bytes
  • docs/history/legacy-planning/redundancy-critique.mddoc14,214 bytes
  • docs/history/legacy-planning/structure-analysis.mddoc19,685 bytes
  • docs/history/legacy-planning/template-asset-extraction-upgrade-plan-v2.mddoc22,138 bytes
  • docs/history/legacy-planning/template-asset-extraction-upgrade-plan.mddoc21,605 bytes
  • docs/history/legacy-planning/template-asset-extraction-v2-task-breakdown.mddoc21,130 bytes
  • docs/history/legacy-planning/upgrade-implementation-log.mddoc26,499 bytes
  • docs/history/legacy-planning/upgrade-plan-v2.mddoc28,563 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/00_PACKAGE_INDEX.mddoc2,985 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/01_TARGET_ARCHITECTURE.mddoc6,761 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/02_PROBLEM_TO_CHANGE_MAP.mddoc4,049 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/03_IMPLEMENTATION_PLAN.mddoc7,459 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/04_ACCEPTANCE_PLAN.mddoc4,881 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/05_RELEASE_AND_ROLLBACK.mddoc2,223 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/06_EXECUTION_PROMPT.mddoc2,707 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/07_PREPARATION_LOG.mddoc2,432 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/PACKAGE_MANIFEST.jsonasset1,287 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/WORKFLOW_MAP.mddoc3,574 bytes
  • docs/history/one-shot-upgrade-vnext-20260717/evals/evals.jsonasset3,260 bytes
  • docs/history/r2-upgrade-logs/01_THREAD_019F6F84_AUDIT.mddoc3,139 bytes
  • docs/history/r2-upgrade-logs/02_R2_CHANGE_AND_TEST_LOG.mddoc2,497 bytes
  • docs/history/run-analysis/LOG_INDEX.mddoc2,116 bytes
  • docs/history/run-analysis/RUN_LOG.mddoc12,635 bytes
  • docs/history/run-analysis/SKILL_EVOLUTION_CAUSAL_AUDIT.mddoc24,909 bytes
  • docs/history/run-analysis/SKILL_RUN_ANALYSIS_AND_OPTIMIZATION_REPORT.mddoc18,998 bytes
  • docs/history/run-analysis/WORK_LOG_DETAILED.mddoc7,889 bytes
  • evals/evals.jsonasset5,036 bytes
  • examples/minimal_deck/expected/notes.mddoc169 bytes
  • examples/minimal_deck/expected/page_content.jsonasset265 bytes
  • examples/minimal_deck/source.mddoc880 bytes
  • references/architecture.mddoc4,391 bytes
  • references/contracts/project_contract.mddoc5,347 bytes
  • references/contracts/template_package.mddoc4,580 bytes
  • references/domain/flagship_layout_examples.mddoc16,756 bytes
  • references/domain/flagship_theme_guidance.mddoc9,204 bytes
  • references/domain/layout_taxonomy.mddoc6,254 bytes
  • references/domain/style_system.mddoc1,160 bytes
  • references/domain/svg_rules.mddoc5,468 bytes
  • references/domain/svg_to_ppt_rules.mdruns6,093 bytes
  • references/domain/video_style_editorial_archive.mddoc10,161 bytes
  • references/maintenance-history.mdruns81,854 bytes
  • references/workflow/00_pipeline_controller.mddoc2,261 bytes
  • references/workflow/01_template_intake.mddoc2,752 bytes
  • references/workflow/02_content_stage.mddoc4,773 bytes
  • references/workflow/03_video_route.mdruns5,070 bytes
  • references/workflow/04_svg_stage.mddoc7,977 bytes
  • references/workflow/07_visual_review.mddoc3,778 bytes
  • references/workflow/08_video_style_extraction_sop.mddoc2,051 bytes
  • scripts/canvas_frame.pyruns2,935 bytes
  • scripts/copy_audit.pyruns3,833 bytes
  • scripts/generate_review_html.pyruns11,500 bytes
  • scripts/generate_template_review_html.pyruns10,445 bytes
  • scripts/image_diagnostics.pyruns4,643 bytes
  • scripts/import_bypage.pyruns9,943 bytes
  • scripts/init_svg_project.pyruns21,886 bytes
  • scripts/lib/office.pyruns1,657 bytes
  • scripts/lib/planners_modules.pyruns6,028 bytes
  • scripts/lib/planners_modules_install.pyruns19,842 bytes
  • scripts/lib/planners_modules_install_test.pyruns16,544 bytes
  • scripts/lib/svg_style_inline.pyruns8,611 bytes
  • scripts/native_svg_to_ppt.pyruns71,973 bytes
  • scripts/orchestrate/ppt_pipeline.pyruns49,179 bytes
  • scripts/prepare_source_material.pyruns14,265 bytes
  • scripts/project_state.pyruns30,778 bytes
  • scripts/render_svg_png.pyruns7,568 bytes
  • scripts/requirements.txtruns66 bytes
  • scripts/review_feedback.pyruns36,186 bytes
  • scripts/review_surface.pyruns12,040 bytes
  • scripts/template/apply_fidelity_template.pyruns2,727 bytes
  • scripts/template/build_fidelity_template.pyruns9,567 bytes
  • scripts/template/extract_template_assets.pyruns45,489 bytes
  • scripts/template/extract_template_pack.pyruns34,578 bytes
  • scripts/template/layout_canvas.pyruns7,723 bytes
  • scripts/template/prepare_visual_references.pyruns8,237 bytes
  • scripts/template/seal_template_review.pyruns1,094 bytes
  • scripts/template/template_library.pyruns28,695 bytes
  • scripts/template/template_visual_gate.pyruns5,462 bytes
  • scripts/template_feedback.pyruns13,036 bytes
  • scripts/test/test_canvas_browser.pyruns1,665 bytes
  • scripts/test/test_converter_geometry.pyruns6,585 bytes
  • scripts/test/test_design_ownership.pyruns7,268 bytes
  • scripts/test/test_human_edit_guard.pyruns5,626 bytes
  • scripts/test/test_import_bypage.pyruns11,476 bytes
  • scripts/test/test_production_diagnostics.pyruns13,613 bytes
  • scripts/test/test_review_browser.pyruns39,549 bytes
  • scripts/test/test_review_reported_bugs.pyruns21,371 bytes
  • scripts/test/test_review_surface.pyruns21,816 bytes
  • scripts/test/test_route_rules.pyruns27,295 bytes
  • scripts/test/test_slides_upgrade.pyruns14,669 bytes
  • scripts/test/test_source_assets.pyruns6,809 bytes
  • scripts/test/test_template_integrity.pyruns8,765 bytes
  • scripts/test/test_template_library_integrity.pyruns2,358 bytes
  • scripts/test/test_template_review_browser.pyruns20,263 bytes
  • scripts/test/test_template_surface.pyruns20,693 bytes
  • scripts/test/test_v5.pyruns38,601 bytes
  • scripts/test/test_video_route_init.pyruns39,802 bytes
  • scripts/test/test_video_route_pipeline.pyruns15,954 bytes
  • scripts/test/test_workbench_pipeline.pyruns25,255 bytes
  • scripts/test/test_workbench_store.pyruns22,806 bytes
  • scripts/test/test_workbench_tools.pyruns24,946 bytes
  • scripts/test/test_workbench_ui.pyruns30,263 bytes
  • scripts/validate_svg_layout.pyruns59,006 bytes
  • scripts/workbench_store.pyruns53,302 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • planners-ppt-hell

Repository facts

License
AGPL-3.0
Created
Jun 26, 2026
Last pushed
Oct 23, 2026
Forks
24
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Show all 444 signals by file

.gitignore

  • Access to secretsline 15
    [Credential-related source omitted]

CHANGELOG.md

  • Network accessline 248
    - **新增 `_internal/05_review/review-surface.json`**(`review-surface/2.0.0`):`id: planners-ppt-hell/visual`、入口 `02_visual_review.html`、反馈文件、`wake: {mode: queue, text: "{unit} 已定;只重出这一页,其余页不要动。"}`、`capabilities: ["asset-upload"]`。**`dir` 取项目根*
  • Network accessline 249
    - **页面换成语桥说话。** 入口只留一个**独立成行**的 `{{REVIEW_BRIDGE}}` 注入点(宿主把它换成整段注入 —— URL 或内联源码,由宿主定;**别塞进 `src="…"`**,见 G-18),**不放桥的副本**(插件模式下页面地址是路由,相对引用的副本会 404)。所有资产走 `await review.asset(rel, {v})`(`v` 沿用上一轮的版本语义:页版本 / 素材 sha256 前 12 位),反馈走 `await revi
  • Network accessline 287
    - **`--assets` 的报错改成说清口径。** 「你给的是素材库,交付包是 `<包>/assets/`」+ **明令禁止为过闸删除源素材**;全等检查本身保留(它防的是静默丢图)。三个路径参数的报错都说清它是相对哪个目录解析出来的。初始化按路线打印交付物:视频路线上不打印 `final_deck.pptx`。 - **新增 `scripts/style/theme_tokens.py`**(视频路线的风格库读法):`list` 报 id/name/nameZh/pre
  • Network accessline 288
    - **新增 `scripts/style/theme_tokens.py`**(视频路线的风格库读法):`list` 报 id/name/nameZh/preview;`show <id>` 把 `tokens.css` 的 `:root` 解析成键值对、**把 `var()` 展开成实际值**,并把**解析不掉的 token 连同缺的那几个名字一起报出来**。目录不写死:`--themes-dir` > `PPT_HELL_THEMES_DIR` > Skill 根的相对
  • Network accessline 289
    - **审阅服务的死活判断只认 HTTP,不认端口探测。** 服务进程写 pidfile,stdout/stderr 走日志文件;`review` 再调用时**真的 GET 一次页面**,并对照 `/health` 报的 `project_dir` 与 `session_id`——对不上就当没有服务;死了就重启并返回新 URL。保留原有两条:起来先自证、端口被占直接报错退出,绝不端出上一个项目的旧页面。**这条保证的是「本 Skill 不被端口探测骗」**:进程被外部清掉之后

COMMERCIAL.md

  • Network accessline 30
    - Xiaohongshu: 阿祖不看 TVC - Email: Lawyif@163.com - Website: https://demyth.info
  • Network accessline 32
    - Website: https://demyth.info

GOTCHAS.md

  • Executable scriptline 1
    Executable file
  • Network accessline 104
    - **module**:`scripts/orchestrate/ppt_pipeline.py` 的 `server_alive`/`start_server`(模板审阅那条线)+ `scripts/review_surface.py` 的 `host_alive`(页面审阅,2026-09-26 换宿主后重落一次) - **现象**:`review` 用 `subprocess.Popen(..., start_new_session=True)` 起审阅服务,服务在那
  • Network accessline 105
    - **现象**:`review` 用 `subprocess.Popen(..., start_new_session=True)` 起审阅服务,服务在那次工具调用结束后**又死了**;而 `nc -z <port>` 仍报 **OPEN**(那个端口上的 socket 还接受 TCP),`curl`/`urllib` 拿到的才是真的(空响应/`RemoteDisconnected`)。作者回到对话准备写意见时,页面已经在空转。

LICENSE

  • Network accessline 4
    Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
  • Network accessline 645
    You should have received a copy of the GNU Affero General Public License     along with this program.  If not, see <https://www.gnu.org/licenses/>.
  • Network accessline 646
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
  • Network accessline 659
    if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <https://www.gnu.org/licenses/>.
  • Network accessline 661
    <https://www.gnu.org/licenses/>.

NOTICE

  • Network accessline 5
    Xiaohongshu: 阿祖不看 TVC Email: Lawyif@163.com Website: https://demyth.info
  • Network accessline 7
    Website: https://demyth.info

README.md

  • Network accessline 3
    [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-2563eb)](LICENSE)
  • Network accessline 4
    [![Skill](https://img.shields.io/badge/Codex%20%2F%20Claude-Skill-111827)](SKILL.md)
  • Network accessline 11
    > 作者:阿祖不看 TVC(小红书同名) · [demyth.info](https://demyth.info) · [Lawyif@163.com](mailto:Lawyif@163.com)
  • Network accessline 32
    - 只需要一份逐页内容稿(用 [Planners Bypage](https://github.com/thePlannerIvan/planners-bypage));
  • Network accessline 41
    npx skills add https://github.com/thePlannerIvan/planners-ppt-hell --skill planners-ppt-hell
  • Network accessline 48
    - [`planners-review-core`](https://github.com/thePlannerIvan/planners-review-core) —— 审阅面契约、桥与本地宿主
  • Network accessline 49
    - [`planners-source-index`](https://github.com/thePlannerIvan/planners-source-index) —— 来源索引契约与唯一校验器
  • Network accessline 50
    - [`planners-fact-check`](https://github.com/thePlannerIvan/planners-fact-check) —— 事实核查契约与校验器
  • Network accessline 51
    - [`planners-report-kit`](https://github.com/thePlannerIvan/planners-report-kit) —— 报告装配与校验(仅带报告出口的 Skill 需要)
  • Network accessline 89
    npx skills add https://github.com/thePlannerIvan/<Skill 名> --skill <Skill 名>
  • Network accessline 95
    git clone --depth 1 https://github.com/thePlannerIvan/<模组名>.git \
  • Network accessline 110
    git clone https://github.com/thePlannerIvan/planners-ppt-hell.git ~/.codex/skills/planners-ppt-hell
  • Network accessline 112
    git clone https://github.com/thePlannerIvan/planners-ppt-hell.git ~/.claude/skills/planners-ppt-hell
  • Network accessline 180
    由阿祖不看 TVC 创建与维护 · https://demyth.info · Lawyif@163.com。

SECURITY.md

  • Network accessline 33
    - Email: Lawyif@163.com - Website: https://demyth.info
  • Network accessline 34
    - Website: https://demyth.info

SKILL.md

  • Network accessline 8
    由阿祖不看 TVC 创建与维护。https://demyth.info · Lawyif@163.com。

TRADEMARK.md

  • Network accessline 34
    - Email: Lawyif@163.com - Website: https://demyth.info
  • Network accessline 35
    - Website: https://demyth.info

agents/openai.yaml

  • Executable scriptline 1
    Executable file

assets/review/review.html

  • Network accessline 1005
    const parsed=new DOMParser().parseFromString(markup,'image/svg+xml');   const source=parsed.documentElement;   const xlink='http://www.w3.org/1999/xlink';
  • Network accessline 1006
    const source=parsed.documentElement;   const xlink='http://www.w3.org/1999/xlink';   // Remove direct image URLs while detached: insertion must not race authenticated asset loading.
  • Network accessline 1007
    const xlink='http://www.w3.org/1999/xlink';
  • Network accessline 1029
    if(url){           imgEl.setAttribute('href',url);           imgEl.setAttributeNS('http://www.w3.org/1999/xlink','xlink:href',url);
  • Network accessline 1030
    imgEl.setAttribute('href',url);           imgEl.setAttributeNS('http://www.w3.org/1999/xlink','xlink:href',url);         }
  • Network accessline 1031
    imgEl.setAttributeNS('http://www.w3.org/1999/xlink','xlink:href',url);
  • Network accessline 2595
    const folder=svgPath.slice(rootPath.length).split('/').slice(0,-1);   for(const el of svg.querySelectorAll('image')){     const href=el.getAttribute('href')||el.getAttributeNS('http://www.w3.org/1999/xlink','href')||'';
  • Network accessline 2596
    for(const el of svg.querySelectorAll('image')){     const href=el.getAttribute('href')||el.getAttributeNS('http://www.w3.org/1999/xlink','href')||'';     if(!href||/^(data:|https?:|#)/.test(href))continue;
  • Network accessline 2597
    const href=el.getAttribute('href')||el.getAttributeNS('http://www.w3.org/1999/xlink','href')||'';

assets/review/workbench-tools.js

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    })());         const href=await thumbnailAssets.get(assetKey);         image.setAttribute('href',href);image.removeAttributeNS('http://www.w3.org/1999/xlink','href');
  • Network accessline 24
    const href=await thumbnailAssets.get(assetKey);         image.setAttribute('href',href);image.removeAttributeNS('http://www.w3.org/1999/xlink','href');       }
  • Network accessline 25
    image.setAttribute('href',href);image.removeAttributeNS('http://www.w3.org/1999/xlink','href');

assets/template_library/agency-social-proposal/primitives/p01_cover.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/agency-social-proposal/primitives/p02_asymmetric_insight.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/agency-social-proposal/primitives/p03_swiss_editorial_grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/agency-social-proposal/primitives/p04_strategy_house.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/agency-social-proposal/primitives/p05_xhs_evidence_split.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/agency-social-proposal/primitives/p06_zebra_battle_table.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/agency-social-proposal/skyline_shell.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/primitives/p01_cover.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/primitives/p02_kpi_closed_loop.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/primitives/p03_quadrant_2x2.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/primitives/p04_mechanism_pipeline.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/primitives/p05_asymmetric_comparison.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/primitives/p06_chart_and_takeaway.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/consulting-product-strategy/skyline_shell.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="var(--font-sans)">

assets/template_library/dark-titanium-cockpit/primitives/p01_master_brutalist_cover.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p02_monumental_16_9_cover.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p03_brutalist_parenthetical_manifesto.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p04_broken_syllable_manifesto.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p05_radial_sunburst_manifesto.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p06_angled_tape_label_manifesto.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p07_bidirectional_vector_arrow_manifesto.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p08_right_aligned_index_ledger.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p09_creative_agenda_pillar.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p10_brutalist_web_cockpit_navbar.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p11_alternating_horizontal_timeline.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p12_monumental_4column_slender.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p13_threepillar_mechanism_void.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p14_escalating_stat_grid_pillars.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p15_circular_step_columns.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p16_interlocking_horizontal_blocks.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p17_editorial_quote_2x2_wireframe.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p18_dual_tier_mega_numeral.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p19_airy_floating_ledger.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p20_high_density_financial_ledger.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p21_digits_data_grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p22_asymmetric_bipolar_metric_cockpit.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p23_diptych_polar_split.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p24_glyph_ticker_milestone_ribbon.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p25_precision_metric_gauge_spectrum.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p26_barcode_pill_metric_array.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p27_horizontal_gradient_fade_ledger.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p28_horizon_rounded_ascending_bars.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p29_stepped_progress_bricks.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p30_segmented_arc_milestone_gauge.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p31_organic_spline_wave_matrix.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p32_human_pictogram_penetration_matrix.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p33_geometric_dot_matrix_grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p34_industrial_specimen_matrix_8grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p35_editorial_multigrid_moodboard.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p36_editorial_asymmetric_moodboard_8grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p37_asymmetric_dual_detail_hero_collage.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p38_horizontal_triptych_gallery_strip.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p39_monolith_pedestal_showcase_strip.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p40_monolithic_numeral_accordion_photo.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p41_cybernetic_portrait_split_cockpit.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p42_monolithic_facade_telemetry_plaques.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p43_horizon_panoramic_strip_sunken_ledger.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p44_edge_infiltrated_hardware_hero.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p45_center_monumental_portrait_stamp_seal.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p46_documentary_anchor_center_triptych.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p47_fluorescent_grid_neon_photo_window.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p48_scope_big_arrow_break.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p49_fluorescent_lime_blast_screen.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p50_scientific_tomography_punchcard_plaque.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p51_vertical_pillar_grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/primitives/p52_aura_horizon_milestone.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/dark-titanium-cockpit/skyline_shell.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p01_tangle_to_grid.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p02_geometric_quadrant.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p03_isometric_strata.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p04_radial_ray_fan.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p05_retro_dialog_cascade.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p06_grid_quote_deletion.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p07_triptych_cosmos.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p08_circular_gauge_meters.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p09_petal_spectrum_dial.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p10_constellation_network.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p11_exploded_axonometric.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/primitives/p12_crt_terminal_menu.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">

assets/template_library/pinterest-neo-swiss-video/skyline_shell.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080"

assets/template_library/planner-simple-default/fidelity_template/components.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg"><g id="bg_dark"><rect data-template-component="bg_dark" data-template-origin="built_in" x="0" y="0" width="1920" height="1080" fill="#17212B" stroke="none" stroke-width="0.00"/></g><g id="bg_light"><r

assets/template_library/planner-simple-default/fidelity_template/layout_canvases/closing_dark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" data-layout-id="closing_dark" data-template-canvas-version="1"><g data-template-lock="background"><rect width="1920" height="1080" fill="#F7F8FA"/><r

assets/template_library/planner-simple-default/fidelity_template/layout_canvases/content_base.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" data-layout-id="content_base" data-template-canvas-version="1"><g data-template-lock="background"><rect width="1920" height="1080" fill="#F7F8FA"/><r

assets/template_library/planner-simple-default/fidelity_template/layout_canvases/contents_light.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" data-layout-id="contents_light" data-template-canvas-version="1"><g data-template-lock="background"><rect width="1920" height="1080" fill="#F7F8FA"/>

assets/template_library/planner-simple-default/fidelity_template/layout_canvases/cover_dark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" data-layout-id="cover_dark" data-template-canvas-version="1"><g data-template-lock="background"><rect width="1920" height="1080" fill="#F7F8FA"/><rec

assets/template_library/planner-simple-default/fidelity_template/layout_canvases/section_dark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" data-layout-id="section_dark" data-template-canvas-version="1"><g data-template-lock="background"><rect width="1920" height="1080" fill="#F7F8FA"/><r

docs/history/architecture-upgrade-20260717/04_WORK_LOG.md

  • Network accessline 70
    - 已在 staging 修复:适配器强制读取当前页 wireframe,校验 layout id,拒绝空 wireframe/缺失 title-body 区域;smoke 和 forward 直接断言 SVG 文字坐标。 - 修复后真实 forward:只传 `content_base.svg`;title `(140,100)`、body `(140,270)` 与 wireframe 一致;validator 0 error;PNG 成功。 - 重建外部人工审阅项目:`
  • Network accessline 71
    - 修复后真实 forward:只传 `content_base.svg`;title `(140,100)`、body `(140,270)` 与 wireframe 一致;validator 0 error;PNG 成功。 - 重建外部人工审阅项目:`Test-023ffae3-human-review`;Server `http://127.0.0.1:8772/template` 健康。源图 2–6 和 canvas 依赖媒体均返回 HTTP 200。 - 真实内置浏
  • Network accessline 72
    - 重建外部人工审阅项目:`Test-023ffae3-human-review`;Server `http://127.0.0.1:8772/template` 健康。源图 2–6 和 canvas 依赖媒体均返回 HTTP 200。

docs/history/architecture-upgrade-20260717/07_FINAL_VERIFICATION_AND_DIFF.md

  • Network accessline 15
    - 真实 `content_base` forward:PASS;SVG task 只带 `content_base.svg`;title `(140,100)`、body `(140,270)` 与 Layout Plan wireframe 一致;validator errors 0;PNG 生成。 - 默认模板应用:PASS;内置包为 5 个真实 canvas,包含 `content_base`,不再包含伪别名 `two_column_light` / `data_li
  • Network accessline 16
    - 默认模板应用:PASS;内置包为 5 个真实 canvas,包含 `content_base`,不再包含伪别名 `two_column_light` / `data_light`;smoke 直接验证应用、最小 task、wireframe 坐标、locked/required validator。 - Server:`http://127.0.0.1:8772/health` 返回 running;`/template` 可用。 - 图片资源:源页 2–6 均为 HTT
  • Network accessline 17
    - Server:`http://127.0.0.1:8772/health` 返回 running;`/template` 可用。
  • Network accessline 93
    1. 在 `http://127.0.0.1:8772/template` 审阅返修后的 5 个 Layout;每个选 Yes/No,可填单独反馈,并保留模板命名与整体反馈。

docs/history/legacy-planning/acceptance-remediation-tasks.md

  • Network accessline 326
    "port": 8765,   "session_id": "...",   "layout_url": "http://127.0.0.1:8765/",
  • Network accessline 327
    "session_id": "...",   "layout_url": "http://127.0.0.1:8765/",   "visual_review_url": "http://127.0.0.1:8765/review",
  • Network accessline 328
    "layout_url": "http://127.0.0.1:8765/",
  • Network accessline 329
    "visual_review_url": "http://127.0.0.1:8765/review",
  • Network accessline 330
    "health_url": "http://127.0.0.1:8765/health",
  • Network accessline 350
    test -f examples/minimal_deck_work/_internal/00_project/review_server.json python -c "import json,urllib.request; d=json.load(open('examples/minimal_deck_work/_internal/00_project/review_server.json')); print(urllib.request.urlopen(d['healt
  • Network accessline 351
    python -c "import json,urllib.request; d=json.load(open('examples/minimal_deck_work/_internal/00_project/review_server.json')); print(urllib.request.urlopen(d['health_url'], timeout=3).read().decode())"

docs/history/legacy-planning/architecture-overview.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1850" width="1600" height="1850">

docs/history/legacy-planning/mece-scan-results.json

  • Network accessline 2071
    "file": "SKILL.md",           "line": 8,           "text": "> 来源识别:Planner's PPT Hell 由阿祖不看 TVC 创建与维护。小红书同名账号,个人网站 https://demyth.info,联系邮箱 Lawyif@163.com。该信息用于确认 Skill 来源、开源归属与项目支"
  • Network accessline 2072
    "line": 8,           "text": "> 来源识别:Planner's PPT Hell 由阿祖不看 TVC 创建与维护。小红书同名账号,个人网站 https://demyth.info,联系邮箱 Lawyif@163.com。该信息用于确认 Skill 来源、开源归属与项目支"         },
  • Network accessline 2073
    "text": "> 来源识别:Planner's PPT Hell 由阿祖不看 TVC 创建与维护。小红书同名账号,个人网站 https://demyth.info,联系邮箱 Lawyif@163.com。该信息用于确认 Skill 来源、开源归属与项目支"

docs/history/legacy-planning/template-asset-extraction-v2-task-breakdown.md

  • Dangerous shell operationline 508
    rm -rf "$TEST1" "$TEST2"
  • Dangerous shell operationline 549
    rm -rf "$TEST1"

docs/history/run-analysis/RUN_LOG.md

  • Network accessline 56
    - Final template feedback saved successfully: all 5 layouts Yes, template name `Test`, overall feedback recorded; Parent advanced to Layout. - Layout Worker completed 6-page plan; all pages use `content_base` because no specialized model ma
  • Network accessline 57
    - Layout Worker completed 6-page plan; all pages use `content_base` because no specialized model matched precisely. Layout contract and capacity validation passed. - Fresh Layout Review Server is healthy at `http://127.0.0.1:8768/` and awai
  • Network accessline 58
    - Fresh Layout Review Server is healthy at `http://127.0.0.1:8768/` and awaits human approval of layout and final on-slide copy.
  • Network accessline 79
    - All six SVGs passed validator with `0 errors`; visual renders and self-reviews completed. PNG previews are 1920×1080 and valid for all six pages. - Initial visual-review generation was blocked by page_06 SVG warnings: footer invasion, sli
  • Network accessline 80
    - Initial visual-review generation was blocked by page_06 SVG warnings: footer invasion, slight title overlap, and excessive font tiers. Original batch_02 Worker made a minimal page_06 visual correction without changing approved content or 
  • Network accessline 81
    - Final visual review HTML generated at `02_visual_review.html`; Visual Review Server is ready at `http://127.0.0.1:8768/review`. Full-deck human visual approval remains pending.

docs/history/run-analysis/SKILL_RUN_ANALYSIS_AND_OPTIMIZATION_REPORT.md

  • Network accessline 65
    - review server 曾出现“记录显示复用、实际 curl 为 000”的陈旧进程状态。

docs/history/run-analysis/WORK_LOG_DETAILED.md

  • Network accessline 12
    - PNG previews: 6 files, all `1920x1080`, valid size - Visual review HTML: `02_visual_review.html` - Review URL: `http://127.0.0.1:8768/review`
  • Network accessline 13
    - Visual review HTML: `02_visual_review.html` - Review URL: `http://127.0.0.1:8768/review` - Human visual approval: pending; not auto-submitted or auto-approved
  • Network accessline 14
    - Review URL: `http://127.0.0.1:8768/review`
  • Network accessline 121
    Open `http://127.0.0.1:8768/review`, inspect the full deck, and submit the final visual decision. The project must not advance past Visual Review without that human decision.

references/domain/svg_to_ppt_rules.md

  • Executable scriptline 1
    Executable file

references/maintenance-history.md

  • Executable scriptline 1
    Executable file

references/workflow/03_video_route.md

  • Executable scriptline 1
    Executable file

scripts/canvas_frame.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/copy_audit.py

  • Executable scriptline 1
    Executable file

scripts/generate_review_html.py

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    SNAPSHOT_REL = f'{REVIEW}/snapshot.json' VERSIONS_REL = f'{REVIEW}/versions' XLINK_HREF = '{http://www.w3.org/1999/xlink}href'
  • Network accessline 28
    VERSIONS_REL = f'{REVIEW}/versions' XLINK_HREF = '{http://www.w3.org/1999/xlink}href' SVG_NS = 'http://www.w3.org/2000/svg'
  • Network accessline 29
    XLINK_HREF = '{http://www.w3.org/1999/xlink}href'
  • Network accessline 30
    SVG_NS = 'http://www.w3.org/2000/svg'
  • Network accessline 32
    ET.register_namespace('xlink', 'http://www.w3.org/1999/xlink')

scripts/generate_template_review_html.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    ET.register_namespace('', 'http://www.w3.org/2000/svg')
  • Network accessline 22
    ET.register_namespace('xlink', 'http://www.w3.org/1999/xlink')
  • Network accessline 65
    scoped_tokens = tokens.replace(':root', 'svg')         style = ET.Element('{http://www.w3.org/2000/svg}style')
  • Network accessline 66
    style = ET.Element('{http://www.w3.org/2000/svg}style')
  • Network accessline 70
    if node.tag.split('}')[-1] != 'image':             continue         attr = 'href' if 'href' in node.attrib else '{http://www.w3.org/1999/xlink}href'
  • Network accessline 71
    continue         attr = 'href' if 'href' in node.attrib else '{http://www.w3.org/1999/xlink}href'         href = node.get(attr, '')
  • Network accessline 72
    attr = 'href' if 'href' in node.attrib else '{http://www.w3.org/1999/xlink}href'

scripts/image_diagnostics.py

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    hidden = hidden or node.tag.split('}')[-1] in {'defs', 'clipPath', 'mask', 'pattern', 'symbol'}         if node.tag.split('}')[-1] == 'image' and not hidden:             href = node.get('href', node.get('{http://www.w3.org/1999/xlink}href',
  • Network accessline 51
    if node.tag.split('}')[-1] == 'image' and not hidden:             href = node.get('href', node.get('{http://www.w3.org/1999/xlink}href', ''))             slot = {key: number(node.get(key, '0' if key in {'x', 'y'} else '')) for key in ('x', 
  • Network accessline 52
    href = node.get('href', node.get('{http://www.w3.org/1999/xlink}href', ''))
  • Possible obfuscationline 61
    data = base64.b64decode(payload, validate=True) if ';base64' in header else unquote_to_bytes(payload)

scripts/import_bypage.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]

scripts/init_svg_project.py

  • Executable scriptline 1
    Executable file

scripts/lib/office.py

  • Executable scriptline 1
    Executable file

scripts/lib/planners_modules.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 72
    [Credential-related source omitted]

scripts/lib/planners_modules_install.py

  • Executable scriptline 1
    Executable file
  • Network accessline 73
    def repo_url(name):     return 'https://github.com/' + REPO_OWNER + '/' + name + '.git'
  • Network accessline 74
    return 'https://github.com/' + REPO_OWNER + '/' + name + '.git'
  • Access to secretsline 82
    [Credential-related source omitted]
  • Access to secretsline 160
    [Credential-related source omitted]
  • Access to secretsline 279
    [Credential-related source omitted]

scripts/lib/planners_modules_install_test.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 200
    self.assertIn('自动安装', message)         self.assertIn('unable to access repository', message)         self.assertIn('git clone --depth 1 https://github.com/thePlannerIvan/', message)
  • Network accessline 201
    self.assertIn('unable to access repository', message)         self.assertIn('git clone --depth 1 https://github.com/thePlannerIvan/', message)         self.assertIn('npx skills add ', message)
  • Network accessline 202
    self.assertIn('git clone --depth 1 https://github.com/thePlannerIvan/', message)
  • Network accessline 221
    for candidate in candidates:             self.assertIn(str(candidate), message)         self.assertIn('npx skills add https://github.com/thePlannerIvan/planners-source-index', message)
  • Network accessline 222
    self.assertIn(str(candidate), message)         self.assertIn('npx skills add https://github.com/thePlannerIvan/planners-source-index', message)         self.assertIn('git clone --depth 1 ', message)
  • Network accessline 223
    self.assertIn('npx skills add https://github.com/thePlannerIvan/planners-source-index', message)
  • Network accessline 342
    self.assertEqual(             commands['npx'],             'npx skills add https://github.com/thePlannerIvan/planners-source-index --skill planners-source-index')
  • Network accessline 343
    commands['npx'],             'npx skills add https://github.com/thePlannerIvan/planners-source-index --skill planners-source-index')         self.assertEqual(
  • Network accessline 344
    'npx skills add https://github.com/thePlannerIvan/planners-source-index --skill planners-source-index')
  • Network accessline 345
    self.assertEqual(             commands['git'],             'git clone --depth 1 https://github.com/thePlannerIvan/planners-source-index.git '
  • Network accessline 346
    commands['git'],             'git clone --depth 1 https://github.com/thePlannerIvan/planners-source-index.git '             '"/tmp/pm-home/.planners-modules/planners-source-index"')
  • Network accessline 347
    'git clone --depth 1 https://github.com/thePlannerIvan/planners-source-index.git '

scripts/lib/svg_style_inline.py

  • Executable scriptline 1
    Executable file

scripts/native_svg_to_ppt.py

  • Executable scriptline 1
    Executable file
  • Network accessline 1295
    href = node.attrib.get('href') or node.attrib.get('{http://www.w3.org/1999/xlink}href')

scripts/orchestrate/ppt_pipeline.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/prepare_source_material.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 19
    W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
  • Network accessline 20
    A_NS = "http://schemas.openxmlformats.org/drawingml/2006/main"
  • Network accessline 21
    R_NS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
  • Network accessline 22
    PR_NS = "http://schemas.openxmlformats.org/package/2006/relationships"
  • Network accessline 23
    WP_NS = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"

scripts/project_state.py

  • Executable scriptline 1
    Executable file
  • Network accessline 269
    for i,node in enumerate(ET.parse(svg).getroot().iter()):         if node.tag.split('}')[-1] != 'image': continue         href = node.get('href',node.get('{http://www.w3.org/1999/xlink}href',''))
  • Network accessline 270
    if node.tag.split('}')[-1] != 'image': continue         href = node.get('href',node.get('{http://www.w3.org/1999/xlink}href',''))         if not href or href.startswith(('data:','http:','https:','#')): raise ValueError('Use local project im
  • Network accessline 271
    href = node.get('href',node.get('{http://www.w3.org/1999/xlink}href',''))

scripts/render_svg_png.py

  • Executable scriptline 1
    Executable file

scripts/requirements.txt

  • Executable scriptline 1
    Executable file

scripts/review_feedback.py

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    INTAKE_LOG = 'wake-log.jsonl' TREE_PATH_RE = re.compile(r'^0(?:\.\d+)*$') SVG_NS = 'http://www.w3.org/2000/svg'
  • Network accessline 30
    TREE_PATH_RE = re.compile(r'^0(?:\.\d+)*$') SVG_NS = 'http://www.w3.org/2000/svg' ET.register_namespace('', SVG_NS)
  • Network accessline 31
    SVG_NS = 'http://www.w3.org/2000/svg'
  • Network accessline 33
    ET.register_namespace('xlink', 'http://www.w3.org/1999/xlink')

scripts/review_surface.py

  • Executable scriptline 1
    Executable file

scripts/template/apply_fidelity_template.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 10
    SVG_NS = "http://www.w3.org/2000/svg"
  • Network accessline 36
    destination.parent.mkdir(parents=True, exist_ok=True)     for image in list(svg_root.iter(f"{{{SVG_NS}}}image")) + list(svg_root.iter("image")):         for attribute in ("href", "{http://www.w3.org/1999/xlink}href"):
  • Network accessline 37
    for image in list(svg_root.iter(f"{{{SVG_NS}}}image")) + list(svg_root.iter("image")):         for attribute in ("href", "{http://www.w3.org/1999/xlink}href"):             value = str(image.get(attribute, "")).strip()
  • Network accessline 38
    for attribute in ("href", "{http://www.w3.org/1999/xlink}href"):

scripts/template/build_fidelity_template.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 182
    symbols.append(f'<g id="{component["component_id"]}">{markup}</g>')     (output / "components.svg").write_text(         '<svg xmlns="http://www.w3.org/2000/svg">' + "".join(symbols) + '</svg>\n', encoding="utf-8")
  • Network accessline 183
    (output / "components.svg").write_text(         '<svg xmlns="http://www.w3.org/2000/svg">' + "".join(symbols) + '</svg>\n', encoding="utf-8")     print(output)
  • Network accessline 184
    '<svg xmlns="http://www.w3.org/2000/svg">' + "".join(symbols) + '</svg>\n', encoding="utf-8")

scripts/template/extract_template_assets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 108
    ns = "http://schemas.openxmlformats.org/drawingml/2006/main"
  • Network accessline 142
    ns = "http://schemas.openxmlformats.org/drawingml/2006/main"
  • Network accessline 700
    ns = {"svg": "http://www.w3.org/2000/svg"}
  • Network accessline 702
    for text_el in root.iter("{http://www.w3.org/2000/svg}text"):
  • Network accessline 832
    _DECORATION_SHAPE_TYPES = {     "{http://www.w3.org/2000/svg}rect",
  • Network accessline 833
    "{http://www.w3.org/2000/svg}rect",
  • Network accessline 834
    "{http://www.w3.org/2000/svg}line",
  • Network accessline 835
    "{http://www.w3.org/2000/svg}circle",
  • Network accessline 836
    "{http://www.w3.org/2000/svg}ellipse",
  • Network accessline 863
    ns = "http://www.w3.org/2000/svg"
  • Network accessline 885
    if tag == "{http://www.w3.org/2000/svg}rect":
  • Network accessline 888
    w = float(el.get("width", canvas_w))             h = float(el.get("height", canvas_h))         elif tag == "{http://www.w3.org/2000/svg}line":
  • Network accessline 889
    h = float(el.get("height", canvas_h))         elif tag == "{http://www.w3.org/2000/svg}line":             x = min(float(el.get("x1", 0)), float(el.get("x2", 0)))
  • Network accessline 890
    elif tag == "{http://www.w3.org/2000/svg}line":

scripts/template/extract_template_pack.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 70
    DRAWINGML_NS = "http://schemas.openxmlformats.org/drawingml/2006/main"

scripts/template/layout_canvas.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 58
    backgrounds = [item for item in components if item.get("placement") == "background"]     foregrounds = [item for item in components if item.get("placement") != "background"]     return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAM
  • Network accessline 59
    foregrounds = [item for item in components if item.get("placement") != "background"]     return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}" '             f'data-layout-id
  • Network accessline 60
    return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}" '

scripts/template/prepare_visual_references.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/template/seal_template_review.py

  • Executable scriptline 1
    Executable file

scripts/template/template_library.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/template/template_visual_gate.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/template_feedback.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/test/test_canvas_browser.py

  • Executable scriptline 1
    Executable file

scripts/test/test_converter_geometry.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/test/test_design_ownership.py

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    checkout = store.commit(root, {'op': 'checkout', 'operation_id': 'checkout1', 'page_key': 'p1'})         candidate = Path(checkout['candidate'])         candidate.write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="
  • Network accessline 42
    candidate = Path(checkout['candidate'])         candidate.write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">'                              f'<rect id="p1-bg" width="{width}
  • Network accessline 43
    candidate.write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">'
  • Access to secretsline 92
    [Credential-related source omitted]
  • Network accessline 119
    (pack / 'SPEC.md').write_text('Cover only; verified for short titles.')         (pack / 'tokens.css').write_text(':root { --ink: #111111; }')         svg = '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 192
  • Network accessline 120
    (pack / 'tokens.css').write_text(':root { --ink: #111111; }')         svg = '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080"><rect width="1920" height="1080" fill="#fff"/></svg>'         (pack / 's
  • Network accessline 121
    svg = '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080"><rect width="1920" height="1080" fill="#fff"/></svg>'

scripts/test/test_human_edit_guard.py

  • Executable scriptline 1
    Executable file

scripts/test/test_import_bypage.py

  • Executable scriptline 1
    Executable file

scripts/test/test_production_diagnostics.py

  • Executable scriptline 1
    Executable file
  • Network accessline 96
    def tearDown(self): self.tmp.cleanup()     def write_svg(self,body):         self.svg.write_text('<svg xmlns="http://www.w3.org/2000/svg">'+body+'</svg>')
  • Network accessline 97
    def write_svg(self,body):         self.svg.write_text('<svg xmlns="http://www.w3.org/2000/svg">'+body+'</svg>')     def test_crop_and_fill_share_same_measurement(self):
  • Network accessline 98
    self.svg.write_text('<svg xmlns="http://www.w3.org/2000/svg">'+body+'</svg>')
  • Network accessline 115
    self.assertTrue(all(r['status']=='unmeasured' and r['issues'] for r in image_frames(self.svg)))     def test_nested_svg_dimensions(self):         (self.root/'vector.svg').write_text('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 
  • Network accessline 116
    def test_nested_svg_dimensions(self):         (self.root/'vector.svg').write_text('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 200"/>')         self.write_svg('<image href="vector.svg" width="400" height="200"/>')
  • Network accessline 117
    (self.root/'vector.svg').write_text('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 200"/>')

scripts/test/test_review_browser.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 34
    [Credential-related source omitted]

scripts/test/test_review_reported_bugs.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 51
    [Credential-related source omitted]

scripts/test/test_review_surface.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 50
    data = raw if raw is not None else (json.dumps(body).encode('utf-8') if body is not None else None)     headers = {'content-type': 'application/json'} if data is not None else {}     request = urllib.request.Request(url, data=data, headers=
  • Network accessline 51
    headers = {'content-type': 'application/json'} if data is not None else {}     request = urllib.request.Request(url, data=data, headers=headers, method=method)     with urllib.request.urlopen(request, timeout=10) as response:
  • Network accessline 52
    request = urllib.request.Request(url, data=data, headers=headers, method=method)
  • Network accessline 53
    with urllib.request.urlopen(request, timeout=10) as response:
  • Network accessline 327
    def test_a_busy_port_fails_loudly_instead_of_serving_someone_elses_page(self):         import socket         blocker = socket.socket(); blocker.bind(('127.0.0.1', 0)); blocker.listen(1)
  • Network accessline 328
    import socket         blocker = socket.socket(); blocker.bind(('127.0.0.1', 0)); blocker.listen(1)         taken = blocker.getsockname()[1]
  • Network accessline 329
    blocker = socket.socket(); blocker.bind(('127.0.0.1', 0)); blocker.listen(1)
  • Possible obfuscationline 352
    body = b'<!doctype html><html><body>\xe5\x88\xab\xe4\xba\xba\xe7\x9a\x84\xe9\xa1\xb5\xe9\x9d\xa2</body></html>'
  • Network accessline 358
    threading.Thread(target=foreign.serve_forever, daemon=True).start()         try:             stolen = {**state, 'url': f'http://127.0.0.1:{foreign.server_port}/02_visual_review.html'}
  • Network accessline 359
    try:             stolen = {**state, 'url': f'http://127.0.0.1:{foreign.server_port}/02_visual_review.html'}             self.assertIsNone(review_host.host_alive(self.root / review_surface.SURFACE_REL, stolen), '端的是别人的页面就不认')
  • Network accessline 360
    stolen = {**state, 'url': f'http://127.0.0.1:{foreign.server_port}/02_visual_review.html'}
  • Access to secretsline 367
    [Credential-related source omitted]

scripts/test/test_route_rules.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 19
    SCRIPTS = Path(__file__).resolve().parents[1] HEAD = (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '
  • Network accessline 20
    HEAD = (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '

scripts/test/test_slides_upgrade.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 43
    TORTURE_SVG = """<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">
  • Network accessline 44
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">
  • Access to secretsline 91
    [Credential-related source omitted]
  • Network accessline 168
    p = Path(tmp) / "bad.svg"             p.write_text(                 '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">'
  • Network accessline 169
    p.write_text(                 '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">'                 '<rect x="0" y="0" width="1920" height="1080" fill="#FFFFFF"/>'
  • Network accessline 170
    '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080">'
  • Network accessline 234
    root = fixture.root.resolve()             (root / ps.SVG / "alpha.svg").write_text(                 '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">'
  • Network accessline 235
    (root / ps.SVG / "alpha.svg").write_text(                 '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">'                 '<rect width="1920" height="1080" fill="#FFFFFF"/>'
  • Network accessline 236
    '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">'

scripts/test/test_source_assets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 87
    root.mkdir()             source = Path(raw) / "brief.docx"             document = """<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
  • Network accessline 88
    source = Path(raw) / "brief.docx"             document = """<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"               xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
  • Network accessline 89
    document = """<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
  • Network accessline 90
    xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
  • Network accessline 91
    xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
  • Network accessline 92
    xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
  • Network accessline 95
    <a:blip r:embed="rId5"/></a:graphicData></a:graphic></wp:inline></w:drawing></w:r></w:p></w:body>               </w:document>"""             rels = """<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
  • Network accessline 96
    </w:document>"""             rels = """<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">               <Relationship Id="rId5" Target="media/image1.png" Type="image"/></Relationships>"""
  • Network accessline 97
    rels = """<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">

scripts/test/test_template_integrity.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 39
    with self.assertRaisesRegex(ValueError, "no data-template-lock layer"):             locked_sha256('<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10"/></svg>')
  • Network accessline 40
    locked_sha256('<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10"/></svg>')
  • Network accessline 154
    def test_components_svg_matches_the_registry(self):         reg = registry()         expected = ("<svg xmlns=\"http://www.w3.org/2000/svg\">"
  • Network accessline 155
    reg = registry()         expected = ("<svg xmlns=\"http://www.w3.org/2000/svg\">"                     + "".join(f'<g id="{item["component_id"]}">'
  • Network accessline 156
    expected = ("<svg xmlns=\"http://www.w3.org/2000/svg\">"

scripts/test/test_template_library_integrity.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/test/test_template_review_browser.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 79
    calls.push({method,payload});     if(method==='asset'){       const response=await fetch('/'+payload.rel);
  • Network accessline 80
    if(method==='asset'){       const response=await fetch('/'+payload.rel);       if(!response.ok)throw new Error('asset '+response.status);
  • Network accessline 81
    const response=await fetch('/'+payload.rel);
  • Network accessline 85
    }     if(method==='read'){       const response=await fetch('/'+payload.rel);
  • Network accessline 86
    if(method==='read'){       const response=await fetch('/'+payload.rel);       if(!response.ok)throw new Error('read '+response.status);
  • Network accessline 87
    const response=await fetch('/'+payload.rel);
  • Access to secretsline 103
    [Credential-related source omitted]
  • Network accessline 289
    served = True         try:             urllib.request.urlopen(state['url'], timeout=2).read()
  • Network accessline 290
    try:             urllib.request.urlopen(state['url'], timeout=2).read()         except (urllib.error.URLError, OSError):
  • Network accessline 291
    urllib.request.urlopen(state['url'], timeout=2).read()

scripts/test/test_template_surface.py

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    CANVAS = ('<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" data-template-canvas-version="v?">'
  • Network accessline 115
    self.assertEqual(page.count('localStorage'), 0, '不透明源里顶层读存储会直接抛')         self.assertNotIn('window.port', page)         self.assertNotIn('fetch(\'/template-feedback\'', page, '旧的服务器路由不许再出现(那条服务器已退役)')
  • Network accessline 117
    self.assertNotIn('fetch(\'/template-feedback\'', page, '旧的服务器路由不许再出现(那条服务器已退役)')
  • Network accessline 131
    try:             state = review_surface.open_review(self.root, open_browser=False, name='template')             with urllib.request.urlopen(state['url'], timeout=5) as response:
  • Network accessline 132
    state = review_surface.open_review(self.root, open_browser=False, name='template')             with urllib.request.urlopen(state['url'], timeout=5) as response:                 body = response.read().decode('utf-8')
  • Network accessline 133
    with urllib.request.urlopen(state['url'], timeout=5) as response:
  • Network accessline 144
    served = True         try:             urllib.request.urlopen(state['url'], timeout=2).read()
  • Network accessline 145
    try:             urllib.request.urlopen(state['url'], timeout=2).read()         except (urllib.error.URLError, OSError):
  • Network accessline 146
    urllib.request.urlopen(state['url'], timeout=2).read()
  • Network accessline 174
    canvas = fidelity / 'layout_canvases' / f'{layout}.svg'             canvas.write_text(                 f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '
  • Network accessline 175
    canvas.write_text(                 f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '                 f'data-template-canvas-version="{TEMPLATE_CANVAS_VERSION}">'
  • Network accessline 176
    f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '

scripts/test/test_v5.py

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    def tearDown(self):self.tmp.cleanup()     def svg(self,k,text='Evidence'):         (self.root/SVG/(k+'.svg')).write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}"><rect 
  • Network accessline 33
    def svg(self,k,text='Evidence'):         (self.root/SVG/(k+'.svg')).write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}"><rect width="{FRAME_W_INT}" height="{FRAME_H_INT
  • Network accessline 34
    (self.root/SVG/(k+'.svg')).write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}"><rect width="{FRAME_W_INT}" height="{FRAME_H_INT}" fill="#FFFFFF"/><text x="120" y="180" 
  • Network accessline 318
    self.assertEqual(review_snapshot(self.root)['template_sha256'],template_fingerprint())     def test_missing_image_and_stretch_rejected(self):         svg=self.root/SVG/'alpha.svg';svg.write_text('<svg xmlns="http://www.w3.org/2000/svg"><ima
  • Network accessline 319
    def test_missing_image_and_stretch_rejected(self):         svg=self.root/SVG/'alpha.svg';svg.write_text('<svg xmlns="http://www.w3.org/2000/svg"><image href="missing.png"/></svg>')         with self.assertRaisesRegex(ValueError,'Missing ima
  • Network accessline 320
    svg=self.root/SVG/'alpha.svg';svg.write_text('<svg xmlns="http://www.w3.org/2000/svg"><image href="missing.png"/></svg>')
  • Network accessline 337
    head=(f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '
  • Network accessline 492
    picture=self.root/SVG/'photo.png';Image.new('RGB',(40,20),'green').save(picture)         (self.root/SVG/'alpha.svg').write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}"
  • Network accessline 493
    (self.root/SVG/'alpha.svg').write_text(f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" viewBox="{FRAME_VIEWBOX}"><rect width="{FRAME_W_INT}" height="{FRAME_H_INT}" fill="#FFFFFF"/><image href="photo.pn

scripts/test/test_video_route_init.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 299
    Path(checked['candidate']).parent.mkdir(parents=True,exist_ok=True)         Path(checked['candidate']).write_text(             '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080">'
  • Network accessline 300
    Path(checked['candidate']).write_text(             '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080">'             '<rect width="1920" height="1080" fill="#FFFFFF"/>'
  • Network accessline 301
    '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080">'

scripts/test/test_video_route_pipeline.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 26
    def svg_markup(text="Evidence"):     return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '
  • Network accessline 27
    return (f'<svg xmlns="http://www.w3.org/2000/svg" width="{FRAME_W_INT}" height="{FRAME_H_INT}" '

scripts/test/test_workbench_pipeline.py

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    def svg(text='Original'):     return ('<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" '
  • Network accessline 28
    return ('<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" '
  • Access to secretsline 289
    [Credential-related source omitted]

scripts/test/test_workbench_store.py

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    self.write('_internal/00_project/page_manifest.json', json.dumps({'version': '5.0', 'route': 'slides'}))         for key in ('p1', 'p2'):             self.write(f'{store.VIEW}/{key}.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100"
  • Network accessline 22
    for key in ('p1', 'p2'):             self.write(f'{store.VIEW}/{key}.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">'                        '<text id="title" x="10" y="20">Original</text><rect id="box" width="10" h
  • Network accessline 23
    self.write(f'{store.VIEW}/{key}.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">'
  • Network accessline 53
    def add_page(self, key='p2', before=None):         candidate = self.write('new-page.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><text id="new-title" x="10" y="20">New page</text></svg>')
  • Network accessline 54
    candidate = self.write('new-page.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><text id="new-title" x="10" y="20">New page</text></svg>')
  • Network accessline 84
    result = self.add_page('new')         self.assertTrue(result['ok'])         candidate = self.write('new2.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><text id="new-title" x="10" y="20">New page</text></svg>')
  • Network accessline 85
    self.assertTrue(result['ok'])         candidate = self.write('new2.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><text id="new-title" x="10" y="20">New page</text></svg>')         result = store.commit(self.root, {
  • Network accessline 86
    candidate = self.write('new2.svg', '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><text id="new-title" x="10" y="20">New page</text></svg>')
  • Network accessline 367
    def test_nested_svg_asset_dependencies_are_pinned(self):         self.write('nested/pic.png', 'first nested image')         self.write('nested/icon.svg', '<svg xmlns="http://www.w3.org/2000/svg"><image href="pic.png"/></svg>')
  • Network accessline 368
    self.write('nested/pic.png', 'first nested image')         self.write('nested/icon.svg', '<svg xmlns="http://www.w3.org/2000/svg"><image href="pic.png"/></svg>')         current = store.get_page(self.root, 'p1')
  • Network accessline 369
    self.write('nested/icon.svg', '<svg xmlns="http://www.w3.org/2000/svg"><image href="pic.png"/></svg>')
  • Network accessline 381
    def test_nested_svg_image_cycles_are_rejected(self):         self.write('loop.svg', '<svg xmlns="http://www.w3.org/2000/svg"><image href="loop.svg"/></svg>')
  • Network accessline 382
    self.write('loop.svg', '<svg xmlns="http://www.w3.org/2000/svg"><image href="loop.svg"/></svg>')

scripts/test/test_workbench_tools.py

  • Executable scriptline 1
    Executable file

scripts/test/test_workbench_ui.py

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    for key in ('alpha', 'omega'):             (self.root / SVG / (key + '.svg')).write_text(                 '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">'
  • Network accessline 31
    (self.root / SVG / (key + '.svg')).write_text(                 '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">'                 '<defs><clipPath id="clip"><rect width="300" height="100"/></clipPa
  • Network accessline 32
    '<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">'
  • Network accessline 76
    stored = get_page(self.root, 'alpha')         tree = ET.fromstring(stored['svg'])         ET.SubElement(tree, '{http://www.w3.org/2000/svg}style').text = '#heading {fill:red}'
  • Network accessline 77
    tree = ET.fromstring(stored['svg'])         ET.SubElement(tree, '{http://www.w3.org/2000/svg}style').text = '#heading {fill:red}'         stored['svg'] = ET.tostring(tree, encoding='unicode')
  • Network accessline 78
    ET.SubElement(tree, '{http://www.w3.org/2000/svg}style').text = '#heading {fill:red}'
  • Network accessline 86
    stored = get_page(self.root, 'alpha')         tree = ET.fromstring(stored['svg'])         ET.SubElement(tree, '{http://www.w3.org/2000/svg}text').set('fill', 'var(--nope)')
  • Network accessline 87
    tree = ET.fromstring(stored['svg'])         ET.SubElement(tree, '{http://www.w3.org/2000/svg}text').set('fill', 'var(--nope)')         stored['svg'] = ET.tostring(tree, encoding='unicode')
  • Network accessline 88
    ET.SubElement(tree, '{http://www.w3.org/2000/svg}text').set('fill', 'var(--nope)')
  • Access to secretsline 115
    [Credential-related source omitted]
  • Network accessline 137
    transport:window.__transport||'postMessage', capabilities:window.__capabilities||['command','draft','asset-upload'],             command:body=>window.__storeCommand(body),             asset:async rel=>'data:image/svg+xml,'+encodeURIComponen
  • Network accessline 138
    command:body=>window.__storeCommand(body),             asset:async rel=>'data:image/svg+xml,'+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="192" height="108"><rect width="192" height="108" fill="white"/></svg>'),       
  • Network accessline 139
    asset:async rel=>'data:image/svg+xml,'+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="192" height="108"><rect width="192" height="108" fill="white"/></svg>'),
  • Network accessline 203
    def test_model_add_delete_updates_open_workbench(self):         candidate=self.root / 'new.svg'         candidate.write_text('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080"><text id="new" x="100" y="100">New page</text></sv
  • Network accessline 204
    candidate=self.root / 'new.svg'         candidate.write_text('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080"><text id="new" x="100" y="100">New page</text></svg>')         result=commit(self.root, {'op':'add_page','operatio
  • Network accessline 205
    candidate.write_text('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080"><text id="new" x="100" y="100">New page</text></svg>')
  • Access to secretsline 409
    [Credential-related source omitted]
  • Access to secretsline 436
    [Credential-related source omitted]
  • Access to secretsline 437
    [Credential-related source omitted]

scripts/validate_svg_layout.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 603
    image_nodes = [         n for n in (list(root.findall(".//{http://www.w3.org/2000/svg}image")) or list(root.findall(".//image")))
  • Network accessline 604
    n for n in (list(root.findall(".//{http://www.w3.org/2000/svg}image")) or list(root.findall(".//image")))
  • Network accessline 606
    ]     for idx, node in enumerate(image_nodes, 1):         href = (node.get("href") or node.get("{http://www.w3.org/1999/xlink}href") or "").strip()
  • Network accessline 607
    for idx, node in enumerate(image_nodes, 1):         href = (node.get("href") or node.get("{http://www.w3.org/1999/xlink}href") or "").strip()         if not href or href.startswith(("data:", "http://", "https://", "#")):
  • Network accessline 608
    href = (node.get("href") or node.get("{http://www.w3.org/1999/xlink}href") or "").strip()
  • Network accessline 649
    text_nodes = [         n for n in (list(root.findall(".//{http://www.w3.org/2000/svg}text")) or list(root.findall(".//text")))
  • Network accessline 650
    n for n in (list(root.findall(".//{http://www.w3.org/2000/svg}text")) or list(root.findall(".//text")))
  • Network accessline 725
    visible_rect_nodes = [         n for n in (root.findall(".//{http://www.w3.org/2000/svg}rect") or root.findall(".//rect"))
  • Network accessline 726
    n for n in (root.findall(".//{http://www.w3.org/2000/svg}rect") or root.findall(".//rect"))
  • Network accessline 728
    ]     visible_line_nodes = [         n for n in (root.findall(".//{http://www.w3.org/2000/svg}line") or root.findall(".//line"))
  • Network accessline 729
    visible_line_nodes = [         n for n in (root.findall(".//{http://www.w3.org/2000/svg}line") or root.findall(".//line"))         if not is_in_non_rendering_container(n, parent_map)
  • Network accessline 730
    n for n in (root.findall(".//{http://www.w3.org/2000/svg}line") or root.findall(".//line"))

scripts/workbench_store.py

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    PNG = '_internal/03_png_preview/pages' ID_ATTR = 'data-workbench-id' XLINK = '{http://www.w3.org/1999/xlink}href'
  • Network accessline 22
    ID_ATTR = 'data-workbench-id' XLINK = '{http://www.w3.org/1999/xlink}href' KEY = re.compile(r'[A-Za-z][A-Za-z0-9_-]{0,63}')
  • Network accessline 23
    XLINK = '{http://www.w3.org/1999/xlink}href'
  • Network accessline 24
    KEY = re.compile(r'[A-Za-z][A-Za-z0-9_-]{0,63}') ET.register_namespace('', 'http://www.w3.org/2000/svg') ET.register_namespace('xlink', 'http://www.w3.org/1999/xlink')
  • Network accessline 25
    ET.register_namespace('', 'http://www.w3.org/2000/svg')
  • Network accessline 26
    ET.register_namespace('xlink', 'http://www.w3.org/1999/xlink')

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 16 facts
Signal confidence: 337 facts

and 287 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.