photon-skills 3.0.3.dev3__tar.gz → 3.0.3.dev19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/.gitignore +1 -1
  2. photon_skills-3.0.3.dev19/AGENTS.md +35 -0
  3. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/CHANGELOG.md +37 -0
  4. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/CONTRIBUTING.md +4 -18
  5. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/PKG-INFO +9 -1
  6. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/README.en.md +10 -0
  7. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/README.md +8 -0
  8. photon_skills-3.0.3.dev19/docs/compatibility/agent-client-compatibility.md +14 -0
  9. photon_skills-3.0.3.dev19/docs/design/legacy-parity.md +82 -0
  10. photon_skills-3.0.3.dev19/docs/design/self-repair.md +113 -0
  11. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/legacy-multi-client.md +6 -2
  12. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/releases/v1.0.0.md +5 -0
  13. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/README.md +1 -1
  14. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/paper/main.tex +1 -1
  15. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/pyproject.toml +1 -1
  16. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/SKILL.md +5 -5
  17. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-consistency/SKILL.md +5 -5
  18. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/SKILL.md +5 -5
  19. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/SKILL.md +5 -5
  20. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/SKILL.md +5 -5
  21. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/SKILL.md +5 -5
  22. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/SKILL.md +5 -5
  23. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/SKILL.md +5 -5
  24. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/SKILL.md +5 -5
  25. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/SKILL.md +5 -5
  26. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-memory-pm/SKILL.md +5 -5
  27. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/SKILL.md +5 -5
  28. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-patent-disclosure/SKILL.md +5 -5
  29. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-project-structure/SKILL.md +5 -5
  30. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-ethics/SKILL.md +5 -5
  31. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/SKILL.md +5 -5
  32. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/SKILL.md +5 -5
  33. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/SKILL.md +5 -5
  34. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/SKILL.md +5 -5
  35. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-software-copyright/SKILL.md +5 -5
  36. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/SKILL.md +5 -5
  37. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/SKILL.md +5 -5
  38. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/SKILL.md +5 -5
  39. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/__init__.py +170 -2
  40. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/extensions/academic-skills.zip +0 -0
  41. photon_skills-3.0.3.dev19/src/photon/health.py +537 -0
  42. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/plugin.yaml +1 -1
  43. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/SKILL.md +6 -2
  44. photon_skills-3.0.3.dev19/src/photon/skills/photon-debate-coach/templates/evidence-sheet.md +73 -0
  45. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-orchestrator/SKILL.md +15 -0
  46. photon_skills-3.0.3.dev19/tests/test_health.py +213 -0
  47. photon_skills-3.0.3.dev3/AGENTS.md +0 -39
  48. photon_skills-3.0.3.dev3/docs/compatibility/agent-client-compatibility.md +0 -51
  49. photon_skills-3.0.3.dev3/scripts/bootstrap_agent_skills.py +0 -293
  50. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/.github/workflows/plugin-contract.yml +0 -0
  51. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/.github/workflows/publish.yml +0 -0
  52. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/LICENSE +0 -0
  53. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/SECURITY.md +0 -0
  54. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/README.md +0 -0
  55. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/__init__.py +0 -0
  56. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/__main__.py +0 -0
  57. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/decision_contract.py +0 -0
  58. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/evidence_contract.py +0 -0
  59. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/findings_schema.py +0 -0
  60. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/gate_runner.py +0 -0
  61. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/semantic_sim.py +0 -0
  62. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/status_contract.py +0 -0
  63. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/_shared/visual_qa.py +0 -0
  64. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/assets/logo.png +0 -0
  65. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/assets/research-workflow.en.svg +0 -0
  66. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/assets/research-workflow.zh.svg +0 -0
  67. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/assets/social-preview.png +0 -0
  68. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/assets/wechat-donation.jpg +0 -0
  69. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/assets/wechat-official-account.jpg +0 -0
  70. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/_shared.md +0 -0
  71. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/citation.md +0 -0
  72. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/consistency.md +0 -0
  73. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/data-engineering.md +0 -0
  74. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/experiment-coding.md +0 -0
  75. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/figure.md +0 -0
  76. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/file-reading.md +0 -0
  77. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/frontend-design.md +0 -0
  78. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/idea-critique.md +0 -0
  79. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/idea-generation.md +0 -0
  80. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/literature-search.md +0 -0
  81. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/memory-pm.md +0 -0
  82. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/orchestrator.md +0 -0
  83. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/paper-writing.md +0 -0
  84. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/patent-disclosure.md +0 -0
  85. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/project-structure.md +0 -0
  86. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/research-ethics.md +0 -0
  87. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/research-plan.md +0 -0
  88. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/result-analysis.md +0 -0
  89. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/review-rebuttal.md +0 -0
  90. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/software-copyright.md +0 -0
  91. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/system-design.md +0 -0
  92. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/typesetting.md +0 -0
  93. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/competitors/venue-matching.md +0 -0
  94. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/consistency-round2-e2e.md +0 -0
  95. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/debate-coach.md +0 -0
  96. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/git-persistence.md +0 -0
  97. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/orchestrator-spec.md +0 -0
  98. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/plugin-distribution.md +0 -0
  99. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/safety-privacy.md +0 -0
  100. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/design/student-skill-audit.md +0 -0
  101. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/citation-round2.md +0 -0
  102. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/data-engineering-round2.md +0 -0
  103. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/experiment-coding-round2.md +0 -0
  104. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/ip-extension-gate.md +0 -0
  105. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/orchestrator-round2.md +0 -0
  106. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/paper-writing-round2.md +0 -0
  107. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/project-structure-round2.md +0 -0
  108. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/research-ethics-round2.md +0 -0
  109. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/research-plan-round2.md +0 -0
  110. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/result-analysis-round2.md +0 -0
  111. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/review-rebuttal-round2.md +0 -0
  112. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/round3-release-gate.md +0 -0
  113. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/system-design-round2.md +0 -0
  114. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/typesetting-round2.md +0 -0
  115. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/e2e/venue-matching-round2.md +0 -0
  116. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/learning/ip/ip-upgrade-synthesis.md +0 -0
  117. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/learning/ip/patent-deep-read-report.md +0 -0
  118. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/docs/learning/ip/software-copyright-deep-read-report.md +0 -0
  119. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/.gitignore +0 -0
  120. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/.photon-project +0 -0
  121. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/decisions.md +0 -0
  122. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/mentor-feedback/2026-08-01.md +0 -0
  123. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/mentor-feedback/README.md +0 -0
  124. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/project-card.md +0 -0
  125. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/session-log/2026-07-28.md +0 -0
  126. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/session-log/2026-07-30.md +0 -0
  127. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/session-log/2026-08-01.md +0 -0
  128. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/source-log.md +0 -0
  129. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/demo-student-project/task-log.md +0 -0
  130. /photon_skills-3.0.3.dev3/examples/e2e-research-demo/artifacts/light_e2e_case.md → /photon_skills-3.0.3.dev19/examples/e2e-research-demo/artifacts/photon_e2e_case.md +0 -0
  131. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/data/synthetic_experiment.csv +0 -0
  132. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_a_design_frontier.png +0 -0
  133. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_b_signal_screen.png +0 -0
  134. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_c_calibration.png +0 -0
  135. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_d_evidence_strength.png +0 -0
  136. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_e_failure_map.png +0 -0
  137. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_f_quality_trajectory.png +0 -0
  138. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_g_distribution_shift.png +0 -0
  139. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_h_tradeoff_curve.png +0 -0
  140. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/panels/panel_i_risk_budget.png +0 -0
  141. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/figures/research_figure_gallery.png +0 -0
  142. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/scripts/compose_figure_gallery.py +0 -0
  143. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/scripts/generate_synthetic_data.py +0 -0
  144. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/scripts/python_gallery_panels.py +0 -0
  145. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/scripts/r_gallery_panels.R +0 -0
  146. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/examples/e2e-research-demo/scripts/run_demo.py +0 -0
  147. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/README.md +0 -0
  148. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/data/fitted_rate_constants.csv +0 -0
  149. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/data/synthetic_design_table.csv +0 -0
  150. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/data/synthetic_uvvis_timeseries.csv +0 -0
  151. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/figures/figure1_kinetics.png +0 -0
  152. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/figures/figure2_response_surface.png +0 -0
  153. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/figures/figure3_diagnostics.png +0 -0
  154. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/figures/figure4_scavenger_effects.png +0 -0
  155. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/outputs/analysis_summary.json +0 -0
  156. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/outputs/scavenger_summary.csv +0 -0
  157. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/paper/main-preview.png +0 -0
  158. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/paper/main.md +0 -0
  159. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/paper/main.pdf +0 -0
  160. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/scripts/analyze.py +0 -0
  161. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/scripts/build_paper.py +0 -0
  162. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/scripts/generate_data.py +0 -0
  163. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/scripts/make_figures.py +0 -0
  164. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/scripts/render_preview.py +0 -0
  165. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/projects/photocatalytic-dye-kinetics-study/scripts/run_all.py +0 -0
  166. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/scripts/check_plugin_contract.py +0 -0
  167. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/scripts/release.py +0 -0
  168. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/README.md +0 -0
  169. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/citation-resource-map.md +0 -0
  170. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/references/locator_audit.md +0 -0
  171. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/references/registry_contract.md +0 -0
  172. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/references.md +0 -0
  173. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/templates/citation-four-gate.example.json +0 -0
  174. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/templates/citation_input.json +0 -0
  175. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-citation/templates/claim_citation_review.json +0 -0
  176. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-consistency/examples/fact-bindings.example.json +0 -0
  177. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-consistency/examples/materials_paper.txt +0 -0
  178. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-consistency/examples/materials_ppt.txt +0 -0
  179. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-consistency/references/consistency-resource-map.md +0 -0
  180. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/examples/derive_spec.example.json +0 -0
  181. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/examples/rules.example.yaml +0 -0
  182. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/examples/worked_example.md +0 -0
  183. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/references/data-resource-map.md +0 -0
  184. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/references.md +0 -0
  185. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/templates/annotation_guide.md +0 -0
  186. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-data-engineering/templates/data-identity-fitness.example.json +0 -0
  187. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/references/code_examples.md +0 -0
  188. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/references/debug_protocol.md +0 -0
  189. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/references/experiment-coding-resource-map.md +0 -0
  190. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/references/tdd_redflags.md +0 -0
  191. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/references/tools.md +0 -0
  192. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/templates/experiment-execution-contract.example.json +0 -0
  193. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/templates/run_manifest.md +0 -0
  194. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-experiment-coding/templates/run_manifest.template.json +0 -0
  195. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/examples/bad_figure_example.py +0 -0
  196. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/examples/example_framework.dot +0 -0
  197. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/examples/example_framework_render.py +0 -0
  198. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/examples/example_matplotlib_multipanel.py +0 -0
  199. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/examples/example_seaborn_stats.py +0 -0
  200. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/examples/worked_example.md +0 -0
  201. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/references/figure_integrity.md +0 -0
  202. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/templates/figure-delivery.example.json +0 -0
  203. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/templates/figure_plan_card.md +0 -0
  204. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-figure/templates/table_plan_card.md +0 -0
  205. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/DOCX-REF.md +0 -0
  206. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/IMG-REF.md +0 -0
  207. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/PDF-REF.md +0 -0
  208. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/PPTX-REF.md +0 -0
  209. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/XLSX-REF.md +0 -0
  210. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/reading-resource-map.md +0 -0
  211. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-file-reading/references/tools.md +0 -0
  212. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references/design-systems-map.md +0 -0
  213. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references/ecosystem-2026.md +0 -0
  214. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references/fonts-and-colors.md +0 -0
  215. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references/redesign-audit.md +0 -0
  216. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references/resource-map.md +0 -0
  217. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references/visual-a11y-rules.md +0 -0
  218. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/references.md +0 -0
  219. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-frontend-design/templates/frontend-delivery.example.json +0 -0
  220. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/critique-resource-map.md +0 -0
  221. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/examples/worked_example_dermoscopy.md +0 -0
  222. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/references/contract.md +0 -0
  223. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/references/protocol.md +0 -0
  224. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/references/rubric.md +0 -0
  225. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/references.md +0 -0
  226. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/templates/Revision_Roadmap.md +0 -0
  227. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/templates/novelty-evidence.example.json +0 -0
  228. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-critique/templates/verdict_template.md +0 -0
  229. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/.gitignore +0 -0
  230. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/examples/candidates.example.json +0 -0
  231. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/examples/idea_candidates.example.md +0 -0
  232. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/idea-resource-map.md +0 -0
  233. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/references.md +0 -0
  234. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/templates/idea-gap-evidence.example.json +0 -0
  235. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/templates/idea-genealogy.example.json +0 -0
  236. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/templates/idea_card.md +0 -0
  237. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-idea-generation/templates/innovation-engine.example.json +0 -0
  238. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/examples/goat_littable.md +0 -0
  239. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/examples/goat_search.json +0 -0
  240. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/examples/worked_example_dairy_goat.md +0 -0
  241. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/references.md +0 -0
  242. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/search-resource-map.md +0 -0
  243. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-literature-search/templates/search-protocol.example.json +0 -0
  244. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-memory-pm/references/cross_harness_resume.md +0 -0
  245. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-memory-pm/references/session_handoff.md +0 -0
  246. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/examples/claim_evidence_walkthrough.md +0 -0
  247. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/paper-writing-resource-map.md +0 -0
  248. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/references/argument_review.md +0 -0
  249. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/references/claim_argument_plan.md +0 -0
  250. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/references/guideline_map.md +0 -0
  251. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/references/integrity_gate.md +0 -0
  252. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/references/mandatory_inclusions.md +0 -0
  253. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/references/self_review_checklist.md +0 -0
  254. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/templates/01_imrad.md +0 -0
  255. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/templates/06_conference.md +0 -0
  256. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/templates/argument-outline.example.json +0 -0
  257. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/templates/claim_argument_plan.json +0 -0
  258. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-paper-writing/templates/claim_passport.md +0 -0
  259. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-patent-disclosure/references/patent-interview-and-search.md +0 -0
  260. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-patent-disclosure/references/patent-resource-map.md +0 -0
  261. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-patent-disclosure/templates/patent-disclosure-packet.example.json +0 -0
  262. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-project-structure/references/project-lifecycle-resource-map.md +0 -0
  263. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-project-structure/references/structure-profiles.json +0 -0
  264. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-project-structure/templates/project-policy.template.json +0 -0
  265. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-project-structure/templates/project-structure-governance.example.json +0 -0
  266. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-ethics/references/cn_compliance.md +0 -0
  267. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-ethics/references/decision_trees.md +0 -0
  268. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-ethics/references/ethics-resource-map.md +0 -0
  269. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-ethics/references/retraction_flag_types.json +0 -0
  270. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-ethics/references/tortured_phrases.json +0 -0
  271. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/references/integration-contract.json +0 -0
  272. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/references/orchestrator-resource-map.md +0 -0
  273. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/references/passport.schema.json +0 -0
  274. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/templates/passport.v3.yaml +0 -0
  275. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/templates/task-profile.example.json +0 -0
  276. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-orchestrator/templates/workflow-ledger.example.json +0 -0
  277. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/examples/plan_spec.example.json +0 -0
  278. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/references/research-plan-resource-map.md +0 -0
  279. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/references.md +0 -0
  280. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/experiment_matrix.md +0 -0
  281. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/failure-tree.example.json +0 -0
  282. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/plan_package.manifest.example.json +0 -0
  283. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/preregistration.md +0 -0
  284. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/reproducibility-checklist.md +0 -0
  285. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/reproduction-log.md +0 -0
  286. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/research-plan.md +0 -0
  287. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-research-plan/templates/target-chain.example.json +0 -0
  288. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/examples/analysis_audit.example.json +0 -0
  289. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/examples/method_compatibility.example.json +0 -0
  290. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/examples/stat_spec.example.json +0 -0
  291. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/examples/worked_example.py +0 -0
  292. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/references.md +0 -0
  293. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/result-analysis-resource-map.md +0 -0
  294. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/scripts/r_analysis_crosscheck.R +0 -0
  295. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-result-analysis/templates/result-card.example.json +0 -0
  296. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/agents/openai.yaml +0 -0
  297. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/references/workflow_contract.md +0 -0
  298. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/references.md +0 -0
  299. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/review-rebuttal-resource-map.md +0 -0
  300. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/commitment_ledger.json +0 -0
  301. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/experiment_request.example.json +0 -0
  302. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/rereview_checklist.md +0 -0
  303. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/response_letter_template.md +0 -0
  304. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/response_matrix.md +0 -0
  305. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/review-response-contract.example.json +0 -0
  306. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-review-rebuttal/templates/review_input.json +0 -0
  307. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-software-copyright/references/materials-workflow.md +0 -0
  308. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-software-copyright/references/software-copyright-resource-map.md +0 -0
  309. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-software-copyright/templates/software-copyright-materials.example.json +0 -0
  310. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/references/system-design-resource-map.md +0 -0
  311. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/references.md +0 -0
  312. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/architecture-package.template.md +0 -0
  313. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/decision-authorization.template.json +0 -0
  314. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/design-readiness.example.json +0 -0
  315. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/migration_expand_contract.sql +0 -0
  316. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/openapi.yaml +0 -0
  317. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/rls_policy.sql +0 -0
  318. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/schema.sql +0 -0
  319. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-system-design/templates/system-intake.template.json +0 -0
  320. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/references/build_contract.md +0 -0
  321. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/references/latex_errors.md +0 -0
  322. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/references.md +0 -0
  323. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/acm_sigconf.tex +0 -0
  324. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/ctex_chinese.tex +0 -0
  325. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/elsevier_elsarticle.tex +0 -0
  326. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/ieee_bare_conf.tex +0 -0
  327. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/springer_llncs.tex +0 -0
  328. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/submission-readiness.example.json +0 -0
  329. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/templates/typesetting_input.json +0 -0
  330. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-typesetting/typesetting-resource-map.md +0 -0
  331. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/references/workflow_contract.md +0 -0
  332. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/references.md +0 -0
  333. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/templates/query-privacy.example.json +0 -0
  334. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/templates/user_selection.json +0 -0
  335. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/templates/venue-evidence.example.json +0 -0
  336. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/templates/venue_compare_table.md +0 -0
  337. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/templates/venue_input.json +0 -0
  338. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/skills-academic/photon-venue-matching/venue-resource-map.md +0 -0
  339. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/SOUL.md +0 -0
  340. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/_base.py +0 -0
  341. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-brainstorm/SKILL.md +0 -0
  342. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/references/format-presets.md +0 -0
  343. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/templates/case-map.md +0 -0
  344. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/templates/format.md +0 -0
  345. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/templates/motion-brief.md +0 -0
  346. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/templates/outline.md +0 -0
  347. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/templates/post-match.md +0 -0
  348. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-debate-coach/templates/rebuttal-cards.md +0 -0
  349. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-method-planner/SKILL.md +0 -0
  350. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-pitch-coach/SKILL.md +0 -0
  351. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-pitch-coach/templates/judge-qa-prep.md +0 -0
  352. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-pitch-coach/templates/pitch-deck-outline.md +0 -0
  353. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-pitch-coach/templates/pitch-script-60s.md +0 -0
  354. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-progress-tracker/SKILL.md +0 -0
  355. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-session/SKILL.md +0 -0
  356. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skills/photon-source-filter/SKILL.md +0 -0
  357. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/skillsets.json +0 -0
  358. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/src/photon/workspace.py +0 -0
  359. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/tests/test_cli.py +0 -0
  360. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/tests/test_contract.py +0 -0
  361. {photon_skills-3.0.3.dev3 → photon_skills-3.0.3.dev19}/tests/test_workspace.py +0 -0
@@ -17,7 +17,7 @@ demo_*.png
17
17
  # figure color_palettes/figure_export selftest 渲染的 demo 图(可复现,不入库)
18
18
  _export_demo/
19
19
 
20
- # 本地客户端发现镜像(由 scripts/bootstrap_agent_skills.py 生成;canonical 仍是 skills/)
20
+ # 舊多客戶端鏡像殘留(已退役;勿提交)
21
21
  .agents/
22
22
  .claude/
23
23
  .opencode/
@@ -0,0 +1,35 @@
1
+ # Photon-skills 代理協作說明
2
+
3
+ 本 repo 是科研 / 競賽 / 創新項目的技能包,**以 Hermes 插件交付**(`src/photon/`)。請把 `src/photon/skills/`(8 個學生技能,隨插件安裝)與 `skills-academic/`(23 個進階技能,不隨插件安裝,作 extension 選擇性安裝)視為 canonical 技能源(Issue #47 拆分);不要把維護者私人記憶、對話史、電郵、未公開研究、db01-db09、MCP 設定或本地知識庫內容寫進 repo。
4
+
5
+ ## 交付路徑(Issue #47 / P2)
6
+
7
+ 技能只經 Hermes 插件交付,沒有其他鏡像路徑:
8
+
9
+ - `src/photon/skills/`:8 個學生技能,隨插件複製到 profile 的 `~/.hermes/skills/`(hash manifest 保護,改過的副本不會被覆蓋)。
10
+ - `skills-academic/`:23 個進階技能,**不隨插件安裝**;以 `src/photon/extensions/academic-skills.zip` 靜態出貨,經 `hermes photon-skills extensions install academic-skills` 選裝。
11
+ - 舊的 Codex / Claude Code / OpenCode 鏡像(`.agents/skills`、`.claude/skills`、`.opencode/skills`)與 `scripts/bootstrap_agent_skills.py` 已退役,不要再加回來;記錄見 `docs/legacy-multi-client.md`。
12
+
13
+ ## 開發紀律
14
+
15
+ - commit 只署作者本人;標題和正文寫中文;不要加 Co-Authored-By。
16
+ - 除非使用者明確要求,否則不要 push。
17
+ - Python 命令前先設 `PYTHONUTF8=1`;臨時產物放 `.upgrade/_e2e`。
18
+ - 面向使用者的腳本必須親手跑 `--selftest` 到 exit 0,不能相信「已完成」報告。
19
+ - 動態事實、論文、DOI、star、連結、能力聲明查不到就寫 `unknown/待核查`。
20
+ - 論文數據圖必須程序化生成;禁止 AI 生圖冒充數據圖。
21
+ - R/ggplot2 是增強路徑,不是隱含前提:缺 R 或缺套件時,先給使用者「繼續 matplotlib 誠實降級 / 安裝或設定 R / 提供 Rscript 路徑」的選擇;非互動自動流程預設降級並標 `degraded=True`,不得擅自安裝。
22
+
23
+ ## 快速自測
24
+
25
+ ```powershell
26
+ $env:PYTHONUTF8="1"
27
+ python scripts/check_plugin_contract.py # manifest / 技能結構 / zip parity / 版本同步
28
+ python scripts/release.py --selftest
29
+ python -m pytest tests -q
30
+ hermes plugins validate src/photon # 本機有 Hermes 時
31
+ ```
32
+
33
+ ## 明確邊界
34
+
35
+ `Light0305/Light-skills` 是第三方的獨立專案:不 archive、不改它的 README、不在本 repo 以外動手;`LICENSE` 保留其版權聲明。
@@ -6,6 +6,31 @@ The project follows a pragmatic release-note style rather than claiming strict s
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Added
10
+
11
+ - **`doctor`, `repair`, `feedback export` (P3).** `doctor` checks the bundled
12
+ skills, each profile copy (missing / edited / untracked / stale manifest
13
+ entries), extension payloads, install state, pip-era shims and `light-*`
14
+ leftovers, plus an optional project workspace; it exits 1 on errors so CI can
15
+ use it. `repair` applies only safe fixes (never overwrites an edited skill,
16
+ never touches a project) and takes `--force` for the one destructive action.
17
+ `feedback export` writes a skill diff plus session/mentor evidence to a folder
18
+ for a human-reviewed upstream proposal — nothing is uploaded. Design and
19
+ limits: `docs/design/self-repair.md`; `photon-orchestrator` now points at the
20
+ three commands when a skill misfires.
21
+
22
+ ### Changed
23
+
24
+ - **`doctor` explains drift instead of calling everything an edit.** A copy that
25
+ differs from the bundle now reports `N changed / N extra / N missing` with an
26
+ example path, so a template a student added reads as `1 extra` rather than as
27
+ an edited skill. `repair` also drops profiles from the install state whose home
28
+ is gone, which used to raise a permanent harmless warning.
29
+ - **`photon-debate-coach` ships an evidence sheet** (`templates/evidence-sheet.md`);
30
+ Stage A now produces `debate-prep/evidence-sheet.md` when a case rests on
31
+ numbers — original source, quotable line, denominator, what the evidence does
32
+ *not* prove, and a 待核查 column that never goes on stage.
33
+
9
34
  ### Documentation
10
35
 
11
36
  - **README rewritten as a plugin-first guide** (zh + en): the two real install
@@ -16,6 +41,18 @@ The project follows a pragmatic release-note style rather than claiming strict s
16
41
  `docs/legacy-multi-client.md`; badges no longer claim 30 skills or client
17
42
  readiness.
18
43
 
44
+ ### Removed
45
+
46
+ - **Legacy multi-client path.** `scripts/bootstrap_agent_skills.py` (the Codex /
47
+ Claude Code / OpenCode mirror generator) and its CONTRIBUTING instructions are
48
+ gone; the Hermes plugin is the only supported distribution path, with the old
49
+ route recorded in `docs/legacy-multi-client.md`.
50
+ - **`light_*` file naming.** `examples/e2e-research-demo/artifacts/light_e2e_case.md`
51
+ is now `photon_e2e_case.md`; the 23 academic `SKILL.md` files head that section
52
+ `## Bundled files / 隨附檔案 — Manual mode / 手動模式`, and
53
+ `docs/design/legacy-parity.md` records the 23↔23 mapping plus the 240
54
+ upstream-only references.
55
+
19
56
  ### Changed
20
57
 
21
58
  - **`skillset` removed (P0 cleanup).** The shipped bundle is the 8 student
@@ -59,27 +59,13 @@ python scripts/release.py --selftest
59
59
  python -m pytest tests -q
60
60
  ```
61
61
 
62
- Legacy multi-client mirrors (being retired — the Hermes plugin is the supported
63
- distribution path):
64
-
65
- On Windows PowerShell:
66
-
67
- ```powershell
68
- $env:PYTHONUTF8="1"
69
- python scripts\bootstrap_agent_skills.py --check-only
70
- ```
62
+ Skill changes reach users through the Hermes plugin only; the old Codex /
63
+ Claude Code / OpenCode mirrors are retired — see
64
+ [docs/legacy-multi-client.md](docs/legacy-multi-client.md). The contract script
65
+ already checks skill structure, frontmatter names, and every local reference.
71
66
 
72
67
  If you modify a script, add or run the relevant self-test. A script that claims to support `--selftest` or an equivalent check should run successfully before the change is submitted.
73
68
 
74
- If you modify a skill, manually inspect the generated client layout when relevant:
75
-
76
- ```powershell
77
- $env:PYTHONUTF8="1"
78
- python scripts\bootstrap_agent_skills.py --targets agents --mode auto --force
79
- python scripts\bootstrap_agent_skills.py --targets claude --mode auto --force
80
- python scripts\bootstrap_agent_skills.py --targets opencode --mode auto --force
81
- ```
82
-
83
69
  ## Skill quality rules
84
70
 
85
71
  Every skill should be:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: photon-skills
3
- Version: 3.0.3.dev3
3
+ Version: 3.0.3.dev19
4
4
  Summary: Photon — STEAM research, debate, and pitch competition companion for primary/secondary students
5
5
  Author-email: Uniterra Solutions Limited <harryw07801@uniterra-solutions.com>
6
6
  License-Expression: MIT
@@ -146,6 +146,9 @@ hermes photon-skills sync --remote water-filter # 發佈到 GitHub(預設 priv
146
146
  | `mentor-summary [--dir ...]` | 一頁導師摘要 |
147
147
  | `sync [--message ...] [--remote <repo>] [--public]` | 本地 commit / 建 GitHub remote 並 push / 離線模式 |
148
148
  | `extensions list\|install\|remove <name> [--profiles A,B]` | 選裝技能包(目前:`academic-skills`) |
149
+ | `doctor [--dir ...] [--json]` | 診斷技能同步、state、extension、舊安裝與專案狀態(有 error 時 exit 1) |
150
+ | `repair [--profile ...] [--force]` | 套用安全修復;`--force` 才會覆蓋你改過的技能 |
151
+ | `feedback export [--dir ...] [--since ...] [--out ...]` | 匯出技能 diff + 專案證據供人審閱(不上傳) |
149
152
  | `selftest` | 快速自測 workspace 邏輯(exit 0) |
150
153
 
151
154
  ## 技能
@@ -215,6 +218,8 @@ hermes photon-skills extensions remove academic-skills
215
218
  | `status` 顯示 `0 tracked` | 技能未同步:跑 `hermes photon-skills setup --yes` |
216
219
  | 版本顯示舊版 | 裝的是舊 wheel 或舊 pin:`pip install --upgrade photon-skills`,或 `plugins install ... --ref <新 SHA> --force` |
217
220
  | 你改過的技能沒有更新 | `setup` 會保留你的副本並報告(`kept your edited copy of …`),這是設計;要取回官方版就備份後刪掉該技能目錄再 `setup` |
221
+ | `doctor` 報 `skill sync` warning | 你的副本與官方版本不同:保留改動就繼續用,想交回上游就跑 `feedback export`,想還原官方版就跑 `repair --force` |
222
+ | 不確定哪裡壞了 | 先跑 `hermes photon-skills doctor`(加 `--json` 可貼給我);安全修復用 `repair` |
218
223
  | 完全載入不到 | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` 看發現/載入日誌;`hermes logs --level WARNING \| grep -i plugin` |
219
224
 
220
225
  **手動 fallback**(插件連載入都失敗時):刪 `~/.hermes/plugins/photon-skills/`
@@ -253,3 +258,6 @@ X.Y.Z`),commit,再 tag `vX.Y.Z`。CI 會驗證 tag = tree 才發佈,CI 不會改
253
258
 
254
259
  MIT — 見 [LICENSE](LICENSE)。作者:Uniterra Solutions Ltd;原始 Light-skills
255
260
  作者:Light0305。
261
+
262
+ Photon 是獨立衍生專案,與原作者的 `Light0305/Light-skills` repo 無隸屬或背書
263
+ 關係;該 repo 未被本專案修改。MIT 要求保留上述版權聲明,授權檔亦隨 wheel 附上。
@@ -140,6 +140,9 @@ hermes photon-skills sync --remote water-filter # publish to GitHub (private b
140
140
  | `mentor-summary [--dir ...]` | One-page mentor summary |
141
141
  | `sync [--message ...] [--remote <repo>] [--public]` | Local commit / create a GitHub remote and push / offline mode |
142
142
  | `extensions list\|install\|remove <name> [--profiles A,B]` | Optional skill packs (currently `academic-skills`) |
143
+ | `doctor [--dir ...] [--json]` | Diagnose skill sync, state, extensions, legacy installs, and a project (exit 1 on errors) |
144
+ | `repair [--profile ...] [--force]` | Apply safe fixes; `--force` also restores skills you edited |
145
+ | `feedback export [--dir ...] [--since ...] [--out ...]` | Export skill diffs + project evidence for human review (nothing uploaded) |
143
146
  | `selftest` | Quick workspace self-test (exit 0) |
144
147
 
145
148
  ## Skills
@@ -219,6 +222,8 @@ Mentors do not install anything:
219
222
  | `status` shows `0 tracked` | skills were not synced: run `hermes photon-skills setup --yes` |
220
223
  | Version shows an older release | you have an old wheel or an old pin: `pip install --upgrade photon-skills`, or `plugins install ... --ref <new SHA> --force` |
221
224
  | A skill you edited is not updating | `setup` keeps your copy and reports it (`kept your edited copy of …`) by design; to take the official version, back up and delete that skill directory, then run `setup` |
225
+ | `doctor` reports a `skill sync` warning | your copy differs from the shipped one: keep it, run `feedback export` to propose it upstream, or `repair --force` to restore the official version |
226
+ | You are not sure what is broken | run `hermes photon-skills doctor` (add `--json` to share it); safe fixes are `repair` |
222
227
  | Nothing loads at all | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` for discovery/load logs; `hermes logs --level WARNING \| grep -i plugin` |
223
228
 
224
229
  **Manual fallback** (when even loading fails): delete
@@ -261,3 +266,8 @@ programmatic figures → LaTeX PDF.
261
266
 
262
267
  MIT — see [LICENSE](LICENSE). Author: Uniterra Solutions Ltd; original
263
268
  Light-skills author: Light0305.
269
+
270
+ Photon is an independent derivative: it is not affiliated with or endorsed by
271
+ the original Light-skills author, and that repository is left untouched. MIT
272
+ requires keeping the copyright notice above; the licence file ships inside the
273
+ wheel as well.
@@ -133,6 +133,9 @@ hermes photon-skills sync --remote water-filter # 發佈到 GitHub(預設 priv
133
133
  | `mentor-summary [--dir ...]` | 一頁導師摘要 |
134
134
  | `sync [--message ...] [--remote <repo>] [--public]` | 本地 commit / 建 GitHub remote 並 push / 離線模式 |
135
135
  | `extensions list\|install\|remove <name> [--profiles A,B]` | 選裝技能包(目前:`academic-skills`) |
136
+ | `doctor [--dir ...] [--json]` | 診斷技能同步、state、extension、舊安裝與專案狀態(有 error 時 exit 1) |
137
+ | `repair [--profile ...] [--force]` | 套用安全修復;`--force` 才會覆蓋你改過的技能 |
138
+ | `feedback export [--dir ...] [--since ...] [--out ...]` | 匯出技能 diff + 專案證據供人審閱(不上傳) |
136
139
  | `selftest` | 快速自測 workspace 邏輯(exit 0) |
137
140
 
138
141
  ## 技能
@@ -202,6 +205,8 @@ hermes photon-skills extensions remove academic-skills
202
205
  | `status` 顯示 `0 tracked` | 技能未同步:跑 `hermes photon-skills setup --yes` |
203
206
  | 版本顯示舊版 | 裝的是舊 wheel 或舊 pin:`pip install --upgrade photon-skills`,或 `plugins install ... --ref <新 SHA> --force` |
204
207
  | 你改過的技能沒有更新 | `setup` 會保留你的副本並報告(`kept your edited copy of …`),這是設計;要取回官方版就備份後刪掉該技能目錄再 `setup` |
208
+ | `doctor` 報 `skill sync` warning | 你的副本與官方版本不同:保留改動就繼續用,想交回上游就跑 `feedback export`,想還原官方版就跑 `repair --force` |
209
+ | 不確定哪裡壞了 | 先跑 `hermes photon-skills doctor`(加 `--json` 可貼給我);安全修復用 `repair` |
205
210
  | 完全載入不到 | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` 看發現/載入日誌;`hermes logs --level WARNING \| grep -i plugin` |
206
211
 
207
212
  **手動 fallback**(插件連載入都失敗時):刪 `~/.hermes/plugins/photon-skills/`
@@ -240,3 +245,6 @@ X.Y.Z`),commit,再 tag `vX.Y.Z`。CI 會驗證 tag = tree 才發佈,CI 不會改
240
245
 
241
246
  MIT — 見 [LICENSE](LICENSE)。作者:Uniterra Solutions Ltd;原始 Light-skills
242
247
  作者:Light0305。
248
+
249
+ Photon 是獨立衍生專案,與原作者的 `Light0305/Light-skills` repo 無隸屬或背書
250
+ 關係;該 repo 未被本專案修改。MIT 要求保留上述版權聲明,授權檔亦隨 wheel 附上。
@@ -0,0 +1,14 @@
1
+ # Agent-client compatibility (retired) / 客戶端兼容性(已退役)
2
+
3
+ > **Retired.** Photon is a Hermes plugin now. The Codex / Claude Code / OpenCode
4
+ > discovery paths and `bootstrap_agent_skills.py` are no longer supported: the
5
+ > plugin copies its skills into the active Hermes profile and that is the only
6
+ > supported layout.
7
+ >
8
+ > **已退役。** Photon 現在是 Hermes 插件;Codex / Claude Code / OpenCode 的發現
9
+ > 路徑與 `bootstrap_agent_skills.py` 不再支援。
10
+
11
+ - Record of the old layouts and why they were dropped:
12
+ [docs/legacy-multi-client.md](../legacy-multi-client.md)
13
+ - Supported install and migration:
14
+ [README.md](../../README.md)
@@ -0,0 +1,82 @@
1
+ # Legacy pack parity / 舊版覆蓋報告
2
+
3
+ > Issue #47 follow-up (P2). Answers one question with evidence: **is the old
4
+ > `Light-skills` pack fully covered by Photon?** 23 legacy skills, 23 academic
5
+ > skills, measured on the tree at this commit.
6
+ >
7
+ > Issue #47 後續(P2)。用可重跑的數字回答一個問題:舊 `Light-skills` 包是否已被
8
+ > Photon 完全覆蓋。
9
+
10
+ ## Verdict / 結論
11
+
12
+ | Dimension | Result |
13
+ |---|---|
14
+ | Skill names | **23 / 23 mapped**, no gaps, no extras |
15
+ | Instructions (`SKILL.md` + `references/`) | covered |
16
+ | Executable helpers (`scripts/`, `assets/`, `examples/`) | **not shipped** — 240 referenced paths are upstream-only (manual mode) |
17
+ | Old install path (Codex / Claude Code / OpenCode + bootstrap) | retired — [legacy-multi-client.md](legacy-multi-client.md) |
18
+ | Original repo (`Light0305/Light-skills`) | third-party, left untouched; Photon is an independent derivative (MIT attribution kept) |
19
+
20
+ So "covered" means **naming + instructions**, not tooling. That was a deliberate
21
+ trade-off: shipping the academic helpers pushes the plugin security scan from
22
+ `safe` to `caution`, and a non-catalog git install is refused at `caution`. The
23
+ helpers stay in the repository at `skills-academic/`, and every affected
24
+ `SKILL.md` says so in a `Manual mode` section.
25
+
26
+ ## Mapping / 對照
27
+
28
+ Generated from the tree by `scripts/check_plugin_contract.py`-style inspection
29
+ (regenerate with the snippet at the bottom).
30
+
31
+ | Legacy | Photon | Files in `skills-academic/` | Missing referenced paths |
32
+ |---|---|---|---|
33
+ | `light-citation` | `photon-citation` | 8 | 9 |
34
+ | `light-consistency` | `photon-consistency` | 5 | 10 |
35
+ | `light-data-engineering` | `photon-data-engineering` | 8 | 17 |
36
+ | `light-experiment-coding` | `photon-experiment-coding` | 9 | 26 |
37
+ | `light-figure` | `photon-figure` | 11 | 13 |
38
+ | `light-file-reading` | `photon-file-reading` | 8 | 10 |
39
+ | `light-frontend-design` | `photon-frontend-design` | 9 | 8 |
40
+ | `light-idea-critique` | `photon-idea-critique` | 10 | 11 |
41
+ | `light-idea-generation` | `photon-idea-generation` | 10 | 11 |
42
+ | `light-literature-search` | `photon-literature-search` | 7 | 16 |
43
+ | `light-memory-pm` | `photon-memory-pm` | 3 | 17 |
44
+ | `light-paper-writing` | `photon-paper-writing` | 14 | 11 |
45
+ | `light-patent-disclosure` | `photon-patent-disclosure` | 4 | 1 |
46
+ | `light-project-structure` | `photon-project-structure` | 5 | 2 |
47
+ | `light-research-ethics` | `photon-research-ethics` | 6 | 15 |
48
+ | `light-orchestrator` | `photon-research-orchestrator` | 7 | 8 |
49
+ | `light-research-plan` | `photon-research-plan` | 12 | 9 |
50
+ | `light-result-analysis` | `photon-result-analysis` | 9 | 15 |
51
+ | `light-review-rebuttal` | `photon-review-rebuttal` | 12 | 10 |
52
+ | `light-software-copyright` | `photon-software-copyright` | 4 | 2 |
53
+ | `light-system-design` | `photon-system-design` | 11 | 5 |
54
+ | `light-typesetting` | `photon-typesetting` | 12 | 7 |
55
+ | `light-venue-matching` | `photon-venue-matching` | 9 | 7 |
56
+
57
+ `light-orchestrator` is the one rename that is not a pure prefix swap
58
+ (`photon-research-orchestrator`) because `photon-orchestrator` is the student
59
+ session skill.
60
+
61
+ ## What still says "Light" (and why)
62
+
63
+ | Location | Status |
64
+ |---|---|
65
+ | `LICENSE` | kept — Light0305 is the original author, attribution is required |
66
+ | `docs/competitors/*` | kept — research notes written in the Light era, not installed |
67
+ | `docs/releases/v1.0.0.md` | kept with a historical banner |
68
+ | `examples/e2e-research-demo/artifacts/photon_e2e_case.md` | renamed from `light_e2e_case.md` |
69
+ | `scripts/bootstrap_agent_skills.py` | deleted |
70
+ | `README.md` / `README.en.md` | rewritten plugin-first; old path archived in `legacy-multi-client.md` |
71
+
72
+ ## Regenerate
73
+
74
+ ```python
75
+ import re
76
+ from pathlib import Path
77
+ root = Path("skills-academic")
78
+ REF = re.compile(r"(?<![\w/.-])((?:scripts|templates|references|examples|assets)/[A-Za-z0-9_./-]+)")
79
+ for skill in sorted(root.glob("photon-*")):
80
+ refs = set(REF.findall((skill / "SKILL.md").read_text(encoding="utf-8")))
81
+ print(skill.name, len([r for r in refs if not (skill / r).exists()]))
82
+ ```
@@ -0,0 +1,113 @@
1
+ # Self-diagnosis, repair, and human-gated improvement
2
+
3
+ > P3 deliverable. Three CLI verbs that make a Photon installation inspectable and
4
+ > fixable by the person using it: `doctor`, `repair`, `feedback export`.
5
+ >
6
+ > P3 交付物:三個 CLI 指令,令使用者自己檢查、修復、並把改進交回上游。
7
+
8
+ ## Why this exists
9
+
10
+ Photon copies its skills into the active profile and records a content hash per
11
+ copy. That rule is deliberately non-destructive — a copy the student edited is
12
+ kept and reported, never silently overwritten. The cost is **silent drift**:
13
+
14
+ - a skill can be missing (deleted, partial sync, old install) and nothing says so;
15
+ - a pip-era shim can shadow the real plugin while `plugins list` still shows it
16
+ enabled;
17
+ - an edited skill stops receiving upstream fixes, and neither side can tell;
18
+ - an installed extension can lose its payload or its skills.
19
+
20
+ None of that is fixable by the Hermes core: `hermes plugins validate` checks the
21
+ plugin directory, not the profile copies. Hence a product-level doctor.
22
+
23
+ ## Commands
24
+
25
+ ```bash
26
+ hermes photon-skills doctor [--dir PROJECT] [--json] [--verbose]
27
+ hermes photon-skills repair [--profile NAME] [--force]
28
+ hermes photon-skills feedback export [--dir PROJECT] [--since YYYY-MM-DD] [--out DIR]
29
+ ```
30
+
31
+ `doctor` is read-only and exits `1` when any check is an **error** (usable in
32
+ CI). `repair` only writes inside the profile's `skills/` dir and the plugin
33
+ state file. `feedback export` only writes the output directory you give it.
34
+
35
+ ## What `doctor` checks
36
+
37
+ | Check | What it reports | Severity |
38
+ |---|---|---|
39
+ | `bundled skills` | the plugin dir has skills, and each has `SKILL.md` | error |
40
+ | `profile` | the active profile's home exists | error |
41
+ | `skills dir` | `<profile>/skills` exists | error |
42
+ | `skill sync` | bundled skill missing; a copy that differs from the bundle (per-file `N changed / N extra / N missing`, with an example path); untracked by the manifest; all in sync | error / warn / ok |
43
+ | `manifest` | stale entries pointing at removed skills | warn |
44
+ | `manifest version` | manifest records an older plugin version | warn |
45
+ | `extension` | installed payload missing, payload hash changed, extension skills missing; or none installed | warn / ok |
46
+ | `state` | removed `skillset` key still present; active profile not registered; profiles listed but missing on disk | warn |
47
+ | `legacy install` | a pip-era shim (`from photon import register`) shadows the plugin | error |
48
+ | `legacy skills` | retired `light-*` skill directories in the profile | warn |
49
+ | `distribution` | a pip distribution version differs from the loaded plugin | warn |
50
+ | `project files` | `--dir`: `project-card.md`, logs, `.photon-project`, `session-log/`, `mentor-feedback/` | error |
51
+ | `project git` | `--dir`: not a Git repo, or uncommitted changes | warn / ok |
52
+
53
+ Local edits are detected by comparing the copy with the **bundle**, not with the
54
+ last recorded hash: adopting an edit as the new baseline (which `sync` does) must
55
+ not make the divergence invisible. The comparison is per file, so an added
56
+ template reads as `1 extra`, not as an edit of the whole skill.
57
+
58
+ ## What `repair` does
59
+
60
+ | Situation | Safe (default) | `--force` |
61
+ |---|---|---|
62
+ | bundled skill missing | copy it from the bundle, record its hash | same |
63
+ | skill edited locally | keep the edit, update the baseline hash | restore the bundled copy (destructive) |
64
+ | extra file added to a skill copy | keep it | delete it (the copy is restored from the bundle) |
65
+ | file deleted from a skill copy | restored on the next `setup`; `repair` reports it | restored from the bundle |
66
+ | state lists a profile that is not on disk | drop it from the state | same |
67
+ | skill present but untracked | adopt it only when byte-identical to the bundle | same |
68
+ | stale manifest entry (skill no longer bundled) | drop the entry | same |
69
+ | stale `skillset` key in state | drop it | same |
70
+ | project folder | **never touched** | **never touched** |
71
+
72
+ `repair` never deletes a skill directory it did not create, never edits the
73
+ plugin dir, and never touches a project.
74
+
75
+ ## What `feedback export` produces
76
+
77
+ ```
78
+ photon-feedback-YYYYMMDD/
79
+ ├── skill-patches.diff # unified diff: bundle → your edited copy (per skill)
80
+ ├── EVIDENCE.md # session-log/*.md, mentor-feedback/*.md, audit-report-*.md
81
+ └── manifest.json # changed skills, evidence file names, project path
82
+ ```
83
+
84
+ Nothing is uploaded, and no issue is filed automatically: a human reviews the
85
+ bundle and opens a PR or an issue. That is the deliberate shape of
86
+ "self-improvement" here — the plugin may improve **with** its users, but the
87
+ plugin directory itself stays read-only (Hermes plugin rule: no self-updating
88
+ code).
89
+
90
+ ## Limits worth stating
91
+
92
+ - If the plugin does not load at all, `doctor` cannot run either — the README's
93
+ manual fallback (remove the shim, uninstall, reinstall, enable) is the only
94
+ path, and `doctor` is for "loaded but broken".
95
+ - A local edit still pins that skill to its edited version: upstream fixes arrive
96
+ only after `repair --force` or a manual merge. The doctor warning is the
97
+ signal; `feedback export` is the constructive follow-up.
98
+ - The doctor reads state and disk. It does not inspect Hermes's own logs; use
99
+ `HERMES_PLUGINS_DEBUG=1` for loader problems.
100
+
101
+ ## Verification
102
+
103
+ ```bash
104
+ # unit tests: missing / edited / orphan / stale-state / shim / project / export
105
+ python -m pytest tests/test_health.py -q
106
+
107
+ # on a throwaway home
108
+ HERMES_HOME=$(mktemp -d) hermes photon-skills setup --yes --profiles default --no-soul-md
109
+ HERMES_HOME=... hermes photon-skills doctor
110
+ rm -rf "$HERMES_HOME/skills/photon-session"
111
+ HERMES_HOME=... hermes photon-skills doctor; echo "exit=$?" # 1, skill missing
112
+ HERMES_HOME=... hermes photon-skills repair
113
+ ```
@@ -75,8 +75,12 @@ hermes photon-skills extensions install academic-skills
75
75
  `~/.hermes/skills/`, and `hermes photon-skills setup --yes` keeps them in
76
76
  sync.
77
77
 
78
- The old upstream repository (`Light0305/Light-skills`) is archived and points
79
- here; its history is still readable, but it receives no updates.
78
+ The original project, `Light0305/Light-skills`, belongs to a third party and is
79
+ unchanged by this repository — it is not ours to archive or edit. Photon is an
80
+ independent derivative: the 23 academic skills were renamed `photon-*` and the
81
+ multi-client install path was removed here, while attribution stays in
82
+ [`LICENSE`](../LICENSE) and the README credits. If upstream ever moves, this page
83
+ is the record of what was derived from it.
80
84
 
81
85
  ## Historical note
82
86
 
@@ -1,5 +1,10 @@
1
1
  # Photon Skills v1.0.0 Release Notes
2
2
 
3
+ > **Historical note (2026-10).** This release describes the multi-client era
4
+ > (Codex / Claude Code / OpenCode + `bootstrap_agent_skills.py`). Photon is now a
5
+ > Hermes plugin and that install path is retired — see
6
+ > [docs/legacy-multi-client.md](../legacy-multi-client.md) and the README.
7
+
3
8
  Release date: 2026-07-05
4
9
 
5
10
  Photon Skills v1.0.0 is the first public release of the rebuilt Photon Skills package: a domain-independent AI workflow skill library for research, competitions, and innovation projects.
@@ -11,7 +11,7 @@
11
11
  - `data/synthetic_experiment.csv`:可复现实验数据。
12
12
  - `figures/research_figure_gallery.png`:九宫格科研图廊;每个 panel 使用独立合成数据,图面不写工具名。
13
13
  - `figures/panels/`:九宫格的 9 个单图 panel,其中一部分由 Python/matplotlib 生成,一部分由 R/ggplot2 生成。
14
- - `artifacts/light_e2e_case.md`:把 Photon Skills 的 23 个技能如何接力写成一个端到端案例。
14
+ - `artifacts/photon_e2e_case.md`:把 Photon Skills 的 23 个技能如何接力写成一个端到端案例。
15
15
 
16
16
  ## 一键复现
17
17
 
@@ -24,7 +24,7 @@ This synthetic study demonstrates a reproducible environmental-chemistry workflo
24
24
  \textbf{Honesty boundary.} All concentration traces are synthetic and generated by the repository script. The package demonstrates a science-style workflow: data, analysis, figures, references, manuscript, LaTeX source, PDF, and preview.
25
25
 
26
26
  \section{Introduction}
27
- Semiconductor photocatalysis is a long-running route for light-driven environmental remediation~\cite{fujishima1972,hoffmann1995,pelaez2012}. A realistic computational demonstration should include time-resolved concentration traces, kinetic fitting, design-factor response surfaces, diagnostics, and mechanistic perturbation. This project uses that structure to showcase Light Skills without inventing experimental evidence.
27
+ Semiconductor photocatalysis is a long-running route for light-driven environmental remediation~\cite{fujishima1972,hoffmann1995,pelaez2012}. A realistic computational demonstration should include time-resolved concentration traces, kinetic fitting, design-factor response surfaces, diagnostics, and mechanistic perturbation. This project uses that structure to showcase Photon Skills without inventing experimental evidence.
28
28
 
29
29
  \begin{figure}[htbp]
30
30
  \centering
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "photon-skills"
7
- version = "3.0.3.dev3"
7
+ version = "3.0.3.dev19"
8
8
  description = "Photon — STEAM research, debate, and pitch competition companion for primary/secondary students"
9
9
  authors = [
10
10
  { name = "Uniterra Solutions Limited", email = "harryw07801@uniterra-solutions.com" },
@@ -270,12 +270,12 @@ passes and passport records `delivered`.
270
270
  - [ ] citation gate and stage-10 checkpoint pass.
271
271
  - [ ] typesetting consumed the delivered BibTeX/citekeys.
272
272
 
273
- ## Bundled files / 隨附檔案
273
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
274
274
 
275
- > This build ships this skill's `SKILL.md` and references only. The
276
- > helper files below live in the upstream repository, not in the
277
- > installed plugin (Issue #47 slim build). Run the steps in this
278
- > document manually, or clone upstream when you need them:
275
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
276
+ > The helper files listed below live in the upstream repository, not in the
277
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
278
+ > hand, or clone upstream when you need them:
279
279
 
280
280
  > - `assets/citation_checklist.md`
281
281
  > - `scripts/citation_four_gate.py`
@@ -312,12 +312,12 @@ Round 3.1 再补 `consistency_delta.py`:两次 `light.findings.v1` 直接比
312
312
  - 事实源模板:[`assets/`](assets/)——`glossary.yaml` / `method_lock.yaml` / `metric_registry.yaml` / `claims_registry.yaml`(复制进项目 `.light/consistency/` 填真实值)
313
313
  - 可运行示例:[`examples/`](examples/)——`materials_paper.txt` / `materials_ppt.txt`(论文 vs PPT 指标/术语冲突)
314
314
 
315
- ## Bundled files / 隨附檔案
315
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
316
316
 
317
- > This build ships this skill's `SKILL.md` and references only. The
318
- > helper files below live in the upstream repository, not in the
319
- > installed plugin (Issue #47 slim build). Run the steps in this
320
- > document manually, or clone upstream when you need them:
317
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
318
+ > The helper files listed below live in the upstream repository, not in the
319
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
320
+ > hand, or clone upstream when you need them:
321
321
 
322
322
  > - `assets/claims_registry.yaml`
323
323
  > - `assets/consistency-registry.example.json`
@@ -306,12 +306,12 @@ GX 哲学的轻量同构,纯 pandas+PyYAML)。
306
306
  - 地基契约:[`_shared/README.md`](../../_shared/README.md)(`findings_schema` · `gate_runner` · 规范 bootstrap)
307
307
  - 上游/下游:[`photon-idea-generation`](../photon-idea-generation/)(stage 3,立项卡"数据可行性必答字段",2⊣3 前置回边)· [`photon-research-orchestrator/scripts/run_checkpoint.py`](../photon-research-orchestrator/scripts/run_checkpoint.py)(stage 2 聚合 critical fail→exit 1)· [`reroute.py`](../photon-research-orchestrator/scripts/reroute.py)(ROUTES[2] 建议 2⊣3)· research-plan(stage 5,派生评测集回边)
308
308
 
309
- ## Bundled files / 隨附檔案
309
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
310
310
 
311
- > This build ships this skill's `SKILL.md` and references only. The
312
- > helper files below live in the upstream repository, not in the
313
- > installed plugin (Issue #47 slim build). Run the steps in this
314
- > document manually, or clone upstream when you need them:
311
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
312
+ > The helper files listed below live in the upstream repository, not in the
313
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
314
+ > hand, or clone upstream when you need them:
315
315
 
316
316
  > - `assets/data_card_template.md`
317
317
  > - `scripts/check_access_level.py`
@@ -206,12 +206,12 @@ lineage 与 keep/discard。这里的实际增量是:
206
206
 
207
207
  诚实落后项:没有 MLflow 式查询 UI、DVC remote、GPU scheduler、仓库语义索引或自主 experiment search;静态门仍有边界。
208
208
 
209
- ## Bundled files / 隨附檔案
209
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
210
210
 
211
- > This build ships this skill's `SKILL.md` and references only. The
212
- > helper files below live in the upstream repository, not in the
213
- > installed plugin (Issue #47 slim build). Run the steps in this
214
- > document manually, or clone upstream when you need them:
211
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
212
+ > The helper files listed below live in the upstream repository, not in the
213
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
214
+ > hand, or clone upstream when you need them:
215
215
 
216
216
  > - `assets/project-scaffold/.github/workflows/ci.yml`
217
217
  > - `assets/project-scaffold/.pre-commit-config.yaml`
@@ -226,12 +226,12 @@ python figure_visual_qa.py --shapes shapes.json # 纯几何;或在绘图脚本
226
226
  - **竞品诚实重述(Round 2 R1)**:截轴/双轴/render-then-look/出版规格/色盲是**同类共识**(scipilot 530★ 18-pitfall、davila7 28.2K★ 13-pt checklist 都覆盖),**非 Light 独创**;Light 真增量=把同一 catalog 做成**确定性机读 critical 门 + 绑 result-analysis 证据档(`misrepresent_evidence`,10 同类零覆盖) + 9→7 回炉 + 集合预算**——同类全是 prose 规则 + refusal 启发 + 人工 checklist。见 truth_source §0.A/§0.C。
227
227
  - **零 MCP/零本地库**:framework 图用 Draw.io(diagram-as-code,CLI 导出)/TikZ 程序化生成,不依赖 MCP;venue 规格在线查/用户给,不内嵌本地期刊库。
228
228
 
229
- ## Bundled files / 隨附檔案
229
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
230
230
 
231
- > This build ships this skill's `SKILL.md` and references only. The
232
- > helper files below live in the upstream repository, not in the
233
- > installed plugin (Issue #47 slim build). Run the steps in this
234
- > document manually, or clone upstream when you need them:
231
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
232
+ > The helper files listed below live in the upstream repository, not in the
233
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
234
+ > hand, or clone upstream when you need them:
235
235
 
236
236
  > - `assets/nature.mplstyle`
237
237
  > - `assets/publication.mplstyle`
@@ -320,12 +320,12 @@ Light 的价值**不是会读**,而是把理解落成**有输入画像、有
320
320
  - 理解状态机示例:[`assets/reading-contract.example.json`](assets/reading-contract.example.json)(故意 fail-closed,展示盲测类缺口)
321
321
  - 项目记忆归属:[`../photon-memory-pm/SKILL.md`](../photon-memory-pm/SKILL.md)(理解笔记登记落 `.light/`,本技能不自管台账)
322
322
 
323
- ## Bundled files / 隨附檔案
323
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
324
324
 
325
- > This build ships this skill's `SKILL.md` and references only. The
326
- > helper files below live in the upstream repository, not in the
327
- > installed plugin (Issue #47 slim build). Run the steps in this
328
- > document manually, or clone upstream when you need them:
325
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
326
+ > The helper files listed below live in the upstream repository, not in the
327
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
328
+ > hand, or clone upstream when you need them:
329
329
 
330
330
  > - `assets/extraction-benchmark.example.json`
331
331
  > - `assets/reading-contract.example.json`
@@ -219,12 +219,12 @@ sha256;对比度报告必须是 `light.visual_qa.v1`,浏览器报告必须
219
219
  - **零本地库 = 灵感/版本在线查**:但灵感站多图、可能 WebFetch 受限(Mobbin/Dribbble)→ 诚实降级 unavailable,不假装看到了。
220
220
  - **非 DAG 节点**:本技能不进科研流水线、不产 findings、不阻断;它是「要做界面时叫一下」的按需工具,别期待它像主线技能那样被总控自动编排。
221
221
 
222
- ## Bundled files / 隨附檔案
222
+ ## Bundled files / 隨附檔案 — Manual mode / 手動模式
223
223
 
224
- > This build ships this skill's `SKILL.md` and references only. The
225
- > helper files below live in the upstream repository, not in the
226
- > installed plugin (Issue #47 slim build). Run the steps in this
227
- > document manually, or clone upstream when you need them:
224
+ > This build ships this skill's `SKILL.md` and references only: **manual mode**.
225
+ > The helper files listed below live in the upstream repository, not in the
226
+ > installed plugin (Issue #47 slim build). Run the steps in this document by
227
+ > hand, or clone upstream when you need them:
228
228
 
229
229
  > - `assets/gsap-horizontal-pan.tsx`
230
230
  > - `assets/gsap-sticky-stack.tsx`