photon-skills 3.0.3.dev0__tar.gz → 3.0.3.dev17__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 (363) hide show
  1. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/.gitignore +1 -1
  2. photon_skills-3.0.3.dev17/AGENTS.md +35 -0
  3. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/CHANGELOG.md +35 -0
  4. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/CONTRIBUTING.md +4 -18
  5. photon_skills-3.0.3.dev17/PKG-INFO +263 -0
  6. photon_skills-3.0.3.dev17/README.en.md +273 -0
  7. photon_skills-3.0.3.dev17/README.md +250 -0
  8. photon_skills-3.0.3.dev17/docs/compatibility/agent-client-compatibility.md +14 -0
  9. photon_skills-3.0.3.dev17/docs/design/legacy-parity.md +82 -0
  10. photon_skills-3.0.3.dev17/docs/design/self-repair.md +109 -0
  11. photon_skills-3.0.3.dev17/docs/legacy-multi-client.md +90 -0
  12. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/releases/v1.0.0.md +5 -0
  13. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/README.md +1 -1
  14. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/paper/main.tex +1 -1
  15. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/pyproject.toml +1 -1
  16. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/SKILL.md +5 -5
  17. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-consistency/SKILL.md +5 -5
  18. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/SKILL.md +5 -5
  19. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/SKILL.md +5 -5
  20. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/SKILL.md +5 -5
  21. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/SKILL.md +5 -5
  22. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/SKILL.md +5 -5
  23. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/SKILL.md +5 -5
  24. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/SKILL.md +5 -5
  25. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/SKILL.md +5 -5
  26. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-memory-pm/SKILL.md +5 -5
  27. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/SKILL.md +5 -5
  28. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-patent-disclosure/SKILL.md +5 -5
  29. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-project-structure/SKILL.md +5 -5
  30. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-ethics/SKILL.md +5 -5
  31. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/SKILL.md +5 -5
  32. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/SKILL.md +5 -5
  33. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/SKILL.md +5 -5
  34. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/SKILL.md +5 -5
  35. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-software-copyright/SKILL.md +5 -5
  36. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/SKILL.md +5 -5
  37. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/SKILL.md +5 -5
  38. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/SKILL.md +5 -5
  39. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/__init__.py +170 -2
  40. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/extensions/academic-skills.zip +0 -0
  41. photon_skills-3.0.3.dev17/src/photon/health.py +498 -0
  42. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/plugin.yaml +1 -1
  43. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-orchestrator/SKILL.md +15 -0
  44. photon_skills-3.0.3.dev17/tests/test_health.py +178 -0
  45. photon_skills-3.0.3.dev0/AGENTS.md +0 -39
  46. photon_skills-3.0.3.dev0/PKG-INFO +0 -408
  47. photon_skills-3.0.3.dev0/README.en.md +0 -421
  48. photon_skills-3.0.3.dev0/README.md +0 -395
  49. photon_skills-3.0.3.dev0/docs/compatibility/agent-client-compatibility.md +0 -51
  50. photon_skills-3.0.3.dev0/scripts/bootstrap_agent_skills.py +0 -293
  51. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/.github/workflows/plugin-contract.yml +0 -0
  52. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/.github/workflows/publish.yml +0 -0
  53. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/LICENSE +0 -0
  54. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/SECURITY.md +0 -0
  55. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/README.md +0 -0
  56. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/__init__.py +0 -0
  57. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/__main__.py +0 -0
  58. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/decision_contract.py +0 -0
  59. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/evidence_contract.py +0 -0
  60. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/findings_schema.py +0 -0
  61. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/gate_runner.py +0 -0
  62. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/semantic_sim.py +0 -0
  63. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/status_contract.py +0 -0
  64. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/_shared/visual_qa.py +0 -0
  65. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/assets/logo.png +0 -0
  66. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/assets/research-workflow.en.svg +0 -0
  67. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/assets/research-workflow.zh.svg +0 -0
  68. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/assets/social-preview.png +0 -0
  69. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/assets/wechat-donation.jpg +0 -0
  70. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/assets/wechat-official-account.jpg +0 -0
  71. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/_shared.md +0 -0
  72. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/citation.md +0 -0
  73. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/consistency.md +0 -0
  74. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/data-engineering.md +0 -0
  75. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/experiment-coding.md +0 -0
  76. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/figure.md +0 -0
  77. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/file-reading.md +0 -0
  78. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/frontend-design.md +0 -0
  79. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/idea-critique.md +0 -0
  80. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/idea-generation.md +0 -0
  81. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/literature-search.md +0 -0
  82. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/memory-pm.md +0 -0
  83. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/orchestrator.md +0 -0
  84. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/paper-writing.md +0 -0
  85. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/patent-disclosure.md +0 -0
  86. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/project-structure.md +0 -0
  87. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/research-ethics.md +0 -0
  88. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/research-plan.md +0 -0
  89. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/result-analysis.md +0 -0
  90. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/review-rebuttal.md +0 -0
  91. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/software-copyright.md +0 -0
  92. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/system-design.md +0 -0
  93. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/typesetting.md +0 -0
  94. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/competitors/venue-matching.md +0 -0
  95. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/consistency-round2-e2e.md +0 -0
  96. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/debate-coach.md +0 -0
  97. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/git-persistence.md +0 -0
  98. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/orchestrator-spec.md +0 -0
  99. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/plugin-distribution.md +0 -0
  100. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/safety-privacy.md +0 -0
  101. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/design/student-skill-audit.md +0 -0
  102. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/citation-round2.md +0 -0
  103. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/data-engineering-round2.md +0 -0
  104. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/experiment-coding-round2.md +0 -0
  105. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/ip-extension-gate.md +0 -0
  106. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/orchestrator-round2.md +0 -0
  107. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/paper-writing-round2.md +0 -0
  108. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/project-structure-round2.md +0 -0
  109. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/research-ethics-round2.md +0 -0
  110. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/research-plan-round2.md +0 -0
  111. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/result-analysis-round2.md +0 -0
  112. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/review-rebuttal-round2.md +0 -0
  113. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/round3-release-gate.md +0 -0
  114. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/system-design-round2.md +0 -0
  115. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/typesetting-round2.md +0 -0
  116. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/e2e/venue-matching-round2.md +0 -0
  117. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/learning/ip/ip-upgrade-synthesis.md +0 -0
  118. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/learning/ip/patent-deep-read-report.md +0 -0
  119. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/docs/learning/ip/software-copyright-deep-read-report.md +0 -0
  120. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/.gitignore +0 -0
  121. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/.photon-project +0 -0
  122. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/decisions.md +0 -0
  123. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/mentor-feedback/2026-08-01.md +0 -0
  124. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/mentor-feedback/README.md +0 -0
  125. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/project-card.md +0 -0
  126. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/session-log/2026-07-28.md +0 -0
  127. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/session-log/2026-07-30.md +0 -0
  128. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/session-log/2026-08-01.md +0 -0
  129. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/source-log.md +0 -0
  130. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/demo-student-project/task-log.md +0 -0
  131. /photon_skills-3.0.3.dev0/examples/e2e-research-demo/artifacts/light_e2e_case.md → /photon_skills-3.0.3.dev17/examples/e2e-research-demo/artifacts/photon_e2e_case.md +0 -0
  132. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/data/synthetic_experiment.csv +0 -0
  133. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_a_design_frontier.png +0 -0
  134. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_b_signal_screen.png +0 -0
  135. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_c_calibration.png +0 -0
  136. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_d_evidence_strength.png +0 -0
  137. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_e_failure_map.png +0 -0
  138. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_f_quality_trajectory.png +0 -0
  139. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_g_distribution_shift.png +0 -0
  140. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_h_tradeoff_curve.png +0 -0
  141. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/panels/panel_i_risk_budget.png +0 -0
  142. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/figures/research_figure_gallery.png +0 -0
  143. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/scripts/compose_figure_gallery.py +0 -0
  144. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/scripts/generate_synthetic_data.py +0 -0
  145. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/scripts/python_gallery_panels.py +0 -0
  146. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/scripts/r_gallery_panels.R +0 -0
  147. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/examples/e2e-research-demo/scripts/run_demo.py +0 -0
  148. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/README.md +0 -0
  149. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/data/fitted_rate_constants.csv +0 -0
  150. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/data/synthetic_design_table.csv +0 -0
  151. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/data/synthetic_uvvis_timeseries.csv +0 -0
  152. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/figures/figure1_kinetics.png +0 -0
  153. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/figures/figure2_response_surface.png +0 -0
  154. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/figures/figure3_diagnostics.png +0 -0
  155. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/figures/figure4_scavenger_effects.png +0 -0
  156. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/outputs/analysis_summary.json +0 -0
  157. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/outputs/scavenger_summary.csv +0 -0
  158. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/paper/main-preview.png +0 -0
  159. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/paper/main.md +0 -0
  160. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/paper/main.pdf +0 -0
  161. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/scripts/analyze.py +0 -0
  162. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/scripts/build_paper.py +0 -0
  163. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/scripts/generate_data.py +0 -0
  164. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/scripts/make_figures.py +0 -0
  165. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/scripts/render_preview.py +0 -0
  166. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/projects/photocatalytic-dye-kinetics-study/scripts/run_all.py +0 -0
  167. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/scripts/check_plugin_contract.py +0 -0
  168. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/scripts/release.py +0 -0
  169. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/README.md +0 -0
  170. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/citation-resource-map.md +0 -0
  171. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/references/locator_audit.md +0 -0
  172. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/references/registry_contract.md +0 -0
  173. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/references.md +0 -0
  174. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/templates/citation-four-gate.example.json +0 -0
  175. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/templates/citation_input.json +0 -0
  176. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-citation/templates/claim_citation_review.json +0 -0
  177. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-consistency/examples/fact-bindings.example.json +0 -0
  178. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-consistency/examples/materials_paper.txt +0 -0
  179. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-consistency/examples/materials_ppt.txt +0 -0
  180. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-consistency/references/consistency-resource-map.md +0 -0
  181. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/examples/derive_spec.example.json +0 -0
  182. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/examples/rules.example.yaml +0 -0
  183. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/examples/worked_example.md +0 -0
  184. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/references/data-resource-map.md +0 -0
  185. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/references.md +0 -0
  186. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/templates/annotation_guide.md +0 -0
  187. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-data-engineering/templates/data-identity-fitness.example.json +0 -0
  188. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/references/code_examples.md +0 -0
  189. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/references/debug_protocol.md +0 -0
  190. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/references/experiment-coding-resource-map.md +0 -0
  191. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/references/tdd_redflags.md +0 -0
  192. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/references/tools.md +0 -0
  193. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/templates/experiment-execution-contract.example.json +0 -0
  194. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/templates/run_manifest.md +0 -0
  195. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-experiment-coding/templates/run_manifest.template.json +0 -0
  196. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/examples/bad_figure_example.py +0 -0
  197. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/examples/example_framework.dot +0 -0
  198. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/examples/example_framework_render.py +0 -0
  199. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/examples/example_matplotlib_multipanel.py +0 -0
  200. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/examples/example_seaborn_stats.py +0 -0
  201. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/examples/worked_example.md +0 -0
  202. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/references/figure_integrity.md +0 -0
  203. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/templates/figure-delivery.example.json +0 -0
  204. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/templates/figure_plan_card.md +0 -0
  205. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-figure/templates/table_plan_card.md +0 -0
  206. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/DOCX-REF.md +0 -0
  207. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/IMG-REF.md +0 -0
  208. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/PDF-REF.md +0 -0
  209. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/PPTX-REF.md +0 -0
  210. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/XLSX-REF.md +0 -0
  211. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/reading-resource-map.md +0 -0
  212. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-file-reading/references/tools.md +0 -0
  213. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references/design-systems-map.md +0 -0
  214. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references/ecosystem-2026.md +0 -0
  215. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references/fonts-and-colors.md +0 -0
  216. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references/redesign-audit.md +0 -0
  217. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references/resource-map.md +0 -0
  218. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references/visual-a11y-rules.md +0 -0
  219. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/references.md +0 -0
  220. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-frontend-design/templates/frontend-delivery.example.json +0 -0
  221. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/critique-resource-map.md +0 -0
  222. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/examples/worked_example_dermoscopy.md +0 -0
  223. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/references/contract.md +0 -0
  224. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/references/protocol.md +0 -0
  225. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/references/rubric.md +0 -0
  226. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/references.md +0 -0
  227. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/templates/Revision_Roadmap.md +0 -0
  228. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/templates/novelty-evidence.example.json +0 -0
  229. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-critique/templates/verdict_template.md +0 -0
  230. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/.gitignore +0 -0
  231. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/examples/candidates.example.json +0 -0
  232. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/examples/idea_candidates.example.md +0 -0
  233. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/idea-resource-map.md +0 -0
  234. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/references.md +0 -0
  235. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/templates/idea-gap-evidence.example.json +0 -0
  236. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/templates/idea-genealogy.example.json +0 -0
  237. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/templates/idea_card.md +0 -0
  238. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-idea-generation/templates/innovation-engine.example.json +0 -0
  239. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/examples/goat_littable.md +0 -0
  240. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/examples/goat_search.json +0 -0
  241. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/examples/worked_example_dairy_goat.md +0 -0
  242. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/references.md +0 -0
  243. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/search-resource-map.md +0 -0
  244. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-literature-search/templates/search-protocol.example.json +0 -0
  245. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-memory-pm/references/cross_harness_resume.md +0 -0
  246. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-memory-pm/references/session_handoff.md +0 -0
  247. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/examples/claim_evidence_walkthrough.md +0 -0
  248. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/paper-writing-resource-map.md +0 -0
  249. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/references/argument_review.md +0 -0
  250. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/references/claim_argument_plan.md +0 -0
  251. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/references/guideline_map.md +0 -0
  252. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/references/integrity_gate.md +0 -0
  253. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/references/mandatory_inclusions.md +0 -0
  254. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/references/self_review_checklist.md +0 -0
  255. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/templates/01_imrad.md +0 -0
  256. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/templates/06_conference.md +0 -0
  257. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/templates/argument-outline.example.json +0 -0
  258. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/templates/claim_argument_plan.json +0 -0
  259. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-paper-writing/templates/claim_passport.md +0 -0
  260. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-patent-disclosure/references/patent-interview-and-search.md +0 -0
  261. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-patent-disclosure/references/patent-resource-map.md +0 -0
  262. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-patent-disclosure/templates/patent-disclosure-packet.example.json +0 -0
  263. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-project-structure/references/project-lifecycle-resource-map.md +0 -0
  264. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-project-structure/references/structure-profiles.json +0 -0
  265. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-project-structure/templates/project-policy.template.json +0 -0
  266. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-project-structure/templates/project-structure-governance.example.json +0 -0
  267. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-ethics/references/cn_compliance.md +0 -0
  268. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-ethics/references/decision_trees.md +0 -0
  269. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-ethics/references/ethics-resource-map.md +0 -0
  270. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-ethics/references/retraction_flag_types.json +0 -0
  271. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-ethics/references/tortured_phrases.json +0 -0
  272. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/references/integration-contract.json +0 -0
  273. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/references/orchestrator-resource-map.md +0 -0
  274. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/references/passport.schema.json +0 -0
  275. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/templates/passport.v3.yaml +0 -0
  276. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/templates/task-profile.example.json +0 -0
  277. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-orchestrator/templates/workflow-ledger.example.json +0 -0
  278. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/examples/plan_spec.example.json +0 -0
  279. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/references/research-plan-resource-map.md +0 -0
  280. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/references.md +0 -0
  281. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/experiment_matrix.md +0 -0
  282. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/failure-tree.example.json +0 -0
  283. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/plan_package.manifest.example.json +0 -0
  284. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/preregistration.md +0 -0
  285. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/reproducibility-checklist.md +0 -0
  286. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/reproduction-log.md +0 -0
  287. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/research-plan.md +0 -0
  288. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-research-plan/templates/target-chain.example.json +0 -0
  289. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/examples/analysis_audit.example.json +0 -0
  290. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/examples/method_compatibility.example.json +0 -0
  291. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/examples/stat_spec.example.json +0 -0
  292. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/examples/worked_example.py +0 -0
  293. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/references.md +0 -0
  294. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/result-analysis-resource-map.md +0 -0
  295. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/scripts/r_analysis_crosscheck.R +0 -0
  296. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-result-analysis/templates/result-card.example.json +0 -0
  297. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/agents/openai.yaml +0 -0
  298. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/references/workflow_contract.md +0 -0
  299. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/references.md +0 -0
  300. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/review-rebuttal-resource-map.md +0 -0
  301. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/commitment_ledger.json +0 -0
  302. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/experiment_request.example.json +0 -0
  303. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/rereview_checklist.md +0 -0
  304. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/response_letter_template.md +0 -0
  305. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/response_matrix.md +0 -0
  306. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/review-response-contract.example.json +0 -0
  307. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-review-rebuttal/templates/review_input.json +0 -0
  308. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-software-copyright/references/materials-workflow.md +0 -0
  309. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-software-copyright/references/software-copyright-resource-map.md +0 -0
  310. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-software-copyright/templates/software-copyright-materials.example.json +0 -0
  311. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/references/system-design-resource-map.md +0 -0
  312. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/references.md +0 -0
  313. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/architecture-package.template.md +0 -0
  314. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/decision-authorization.template.json +0 -0
  315. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/design-readiness.example.json +0 -0
  316. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/migration_expand_contract.sql +0 -0
  317. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/openapi.yaml +0 -0
  318. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/rls_policy.sql +0 -0
  319. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/schema.sql +0 -0
  320. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-system-design/templates/system-intake.template.json +0 -0
  321. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/references/build_contract.md +0 -0
  322. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/references/latex_errors.md +0 -0
  323. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/references.md +0 -0
  324. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/acm_sigconf.tex +0 -0
  325. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/ctex_chinese.tex +0 -0
  326. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/elsevier_elsarticle.tex +0 -0
  327. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/ieee_bare_conf.tex +0 -0
  328. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/springer_llncs.tex +0 -0
  329. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/submission-readiness.example.json +0 -0
  330. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/templates/typesetting_input.json +0 -0
  331. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-typesetting/typesetting-resource-map.md +0 -0
  332. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/references/workflow_contract.md +0 -0
  333. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/references.md +0 -0
  334. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/templates/query-privacy.example.json +0 -0
  335. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/templates/user_selection.json +0 -0
  336. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/templates/venue-evidence.example.json +0 -0
  337. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/templates/venue_compare_table.md +0 -0
  338. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/templates/venue_input.json +0 -0
  339. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/skills-academic/photon-venue-matching/venue-resource-map.md +0 -0
  340. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/SOUL.md +0 -0
  341. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/_base.py +0 -0
  342. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-brainstorm/SKILL.md +0 -0
  343. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/SKILL.md +0 -0
  344. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/references/format-presets.md +0 -0
  345. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/templates/case-map.md +0 -0
  346. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/templates/format.md +0 -0
  347. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/templates/motion-brief.md +0 -0
  348. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/templates/outline.md +0 -0
  349. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/templates/post-match.md +0 -0
  350. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-debate-coach/templates/rebuttal-cards.md +0 -0
  351. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-method-planner/SKILL.md +0 -0
  352. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-pitch-coach/SKILL.md +0 -0
  353. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-pitch-coach/templates/judge-qa-prep.md +0 -0
  354. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-pitch-coach/templates/pitch-deck-outline.md +0 -0
  355. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-pitch-coach/templates/pitch-script-60s.md +0 -0
  356. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-progress-tracker/SKILL.md +0 -0
  357. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-session/SKILL.md +0 -0
  358. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skills/photon-source-filter/SKILL.md +0 -0
  359. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/skillsets.json +0 -0
  360. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/src/photon/workspace.py +0 -0
  361. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/tests/test_cli.py +0 -0
  362. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/tests/test_contract.py +0 -0
  363. {photon_skills-3.0.3.dev0 → photon_skills-3.0.3.dev17}/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,41 @@ 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
+ ### Documentation
23
+
24
+ - **README rewritten as a plugin-first guide** (zh + en): the two real install
25
+ channels (PyPI into Hermes's own venv; git + pinned SHA for schools and
26
+ collaborators), migration from pip+shim and from Light-skills, the actual
27
+ 11-command surface, troubleshooting, and a maintainer section. The retired
28
+ Codex / Claude Code / OpenCode instructions moved to
29
+ `docs/legacy-multi-client.md`; badges no longer claim 30 skills or client
30
+ readiness.
31
+
32
+ ### Removed
33
+
34
+ - **Legacy multi-client path.** `scripts/bootstrap_agent_skills.py` (the Codex /
35
+ Claude Code / OpenCode mirror generator) and its CONTRIBUTING instructions are
36
+ gone; the Hermes plugin is the only supported distribution path, with the old
37
+ route recorded in `docs/legacy-multi-client.md`.
38
+ - **`light_*` file naming.** `examples/e2e-research-demo/artifacts/light_e2e_case.md`
39
+ is now `photon_e2e_case.md`; the 23 academic `SKILL.md` files head that section
40
+ `## Bundled files / 隨附檔案 — Manual mode / 手動模式`, and
41
+ `docs/design/legacy-parity.md` records the 23↔23 mapping plus the 240
42
+ upstream-only references.
43
+
9
44
  ### Changed
10
45
 
11
46
  - **`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:
@@ -0,0 +1,263 @@
1
+ Metadata-Version: 2.5
2
+ Name: photon-skills
3
+ Version: 3.0.3.dev17
4
+ Summary: Photon — STEAM research, debate, and pitch competition companion for primary/secondary students
5
+ Author-email: Uniterra Solutions Limited <harryw07801@uniterra-solutions.com>
6
+ License-Expression: MIT
7
+ License-File: LICENSE
8
+ Requires-Python: >=3.10
9
+ Provides-Extra: dev
10
+ Requires-Dist: pytest>=8.0; extra == 'dev'
11
+ Requires-Dist: pyyaml>=6.0; extra == 'dev'
12
+ Description-Content-Type: text/markdown
13
+
14
+ <div align="center">
15
+
16
+ <img src="assets/logo.png" alt="Photon Skills logo" width="170">
17
+
18
+ # Photon Skills
19
+
20
+ **Hermes Agent 的 STEAM 專案助手:8 個雙語學生技能 + Git 專案工作區**
21
+
22
+ <p align="center">
23
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License"></a>
24
+ <img src="https://img.shields.io/badge/Hermes-plugin-5B6FE0.svg" alt="Hermes plugin">
25
+ <img src="https://img.shields.io/badge/student%20skills-8-22C55E.svg" alt="8 student skills">
26
+ <img src="https://img.shields.io/badge/language-zh--Hant%20%2B%20EN-7C3AED.svg" alt="zh-Hant and English">
27
+ <img src="https://img.shields.io/badge/telemetry-none-6B7280.svg" alt="No telemetry">
28
+ </p>
29
+
30
+ <p><strong>繁體中文</strong> · <a href="README.en.md">English</a></p>
31
+
32
+ </div>
33
+
34
+ ---
35
+
36
+ ## 這是什麼
37
+
38
+ Photon 是一個 **Hermes Agent 插件**。它幫中小學生由真實生活問題出發,完成
39
+ **腦力激盪 → 找資料 → 規劃方法 → 動手做 → 準備 pitch** 的專案旅程,
40
+ 並把整個過程寫入一個由 Git 追蹤的專案資料夾,讓導師/老師看得到進度與 AI 分工。
41
+
42
+ - **學生是工作的擁有者**:Photon 是研究助理,引導但不代勞。
43
+ - **一個專案一個資料夾**:`project-card.md`、`source-log.md`、`task-log.md`、
44
+ `session-log/`、`decisions.md`、`mentor-feedback/`。
45
+ - **Session 連續性**:開始時載入專案脈絡,結束時寫紀錄並自動 commit。
46
+ - **安全與誠信內建**:內容護欄、AI/學生分工標示、`audit-report` 給教育者審查。
47
+ - **零遙測、零第三方依賴**:資料留在學生的電腦,只有主動 `sync` 才會上傳。
48
+
49
+ > 這份 README 是唯一的安裝說明。舊版的多客戶端安裝(Codex / Claude Code /
50
+ > OpenCode + `bootstrap_agent_skills.py`)已退役,見
51
+ > [docs/legacy-multi-client.md](docs/legacy-multi-client.md)。
52
+
53
+ ## 需求
54
+
55
+ | 項目 | 要求 |
56
+ |---|---|
57
+ | Hermes Agent | 需要 `hermes plugins` 子命令(2026-09 之後的版本) |
58
+ | Python | 3.10+(Hermes 自帶的 venv 已滿足) |
59
+ | Git | 2.30+(專案資料夾用 Git 追蹤) |
60
+ | 系統 | macOS、Linux、Windows PowerShell |
61
+
62
+ ## 安裝
63
+
64
+ ### A. 公開安裝(PyPI)— 個人/學生
65
+
66
+ 這個 repo 是 private,公開渠道是 PyPI。**必須裝進 Hermes 自己的 venv**,
67
+ 否則 `import photon` 找不到。
68
+
69
+ ```bash
70
+ # 1) 確認 Hermes 的 venv 位置(通常是 ~/.hermes/hermes-agent/venv)
71
+ dirname "$(dirname "$(which hermes)")"
72
+
73
+ # 2) 裝進去(macOS / Linux)
74
+ ~/.hermes/hermes-agent/venv/bin/pip install --upgrade photon-skills
75
+
76
+ # Windows PowerShell:
77
+ # & "$env:USERPROFILE\.hermes\hermes-agent\venv\Scripts\pip.exe" install --upgrade photon-skills
78
+
79
+ # 3) 啟用
80
+ hermes plugins enable photon-skills
81
+ ```
82
+
83
+ 驗證:
84
+
85
+ ```bash
86
+ hermes plugins list --user --plain | grep photon-skills
87
+ hermes photon-skills status # 應顯示目前版本與 Bundled skills: 8
88
+ ```
89
+
90
+ ### B. 學校/協作者(git,釘 SHA)
91
+
92
+ 有 repo 權限的話,一條指令完成,而且可以釘死某個 commit:
93
+
94
+ ```bash
95
+ hermes plugins install Uniterra-Solutions/Photon-skills/src/photon \
96
+ --ref <40 位 commit SHA> --enable
97
+ ```
98
+
99
+ `src/photon` 是插件目錄;subdir 安裝只會複製該目錄,技能已放在裡面。
100
+ 釘 SHA 之後 `hermes plugins update` 會拒絕移動版本,要換版本就再跑一次
101
+ `plugins install ... --ref <新 SHA> --force`。
102
+
103
+ ### C. 由舊版遷移
104
+
105
+ | 你之前裝過 | 要做什麼 |
106
+ |---|---|
107
+ | pip `photon-skills` + 手寫 `~/.hermes/plugins/photon-skills/` shim | `hermes plugins remove photon-skills` → `rm -rf ~/.hermes/plugins/photon-skills` → `pip uninstall photon-skills` → 用上面 A 或 B 重裝 |
108
+ | `photon` 1.0.0(PR #26 時代) | `pip uninstall photon`,並移除 `~/.hermes/plugins/photon/` |
109
+ | `Light0305/Light-skills` 的本機 clone + `.agents/skills`、`.claude/skills`、`.opencode/skills` | 刪掉**你本機**的 clone 與鏡像目錄(上游 repo 不屬本專案,不受影響);Photon 只用 Hermes profile 的 `~/.hermes/skills/`。舊 `light-*` 技能可直接刪;23 個學術技能已改名 `photon-*` 並改以 extension 提供 |
110
+ | 舊版留在 profile 的 `photon-*` 技能 | 換版本後跑一次 `hermes photon-skills setup --yes`,會按內容 hash 更新;你改過的副本會被保留並報告 |
111
+
112
+ **專案資料夾(`~/Photon/...`、`session-log/`、`source-log.md`)在任何安裝/
113
+ 升級/移除過程中都不會被觸碰。**
114
+
115
+ ## 第一個專案
116
+
117
+ ```bash
118
+ hermes photon-skills start-project "Water Filter Design" --steam SCIENCE
119
+ cd ~/Photon/"Water Filter Design"
120
+
121
+ hermes photon-skills session-start # 載入 project-card 與最近 session
122
+ # … 與 Photon 一起工作 …
123
+
124
+ hermes photon-skills session-end \
125
+ --focus "測試三種濾材" \
126
+ --work-done "完成第一輪過濾實驗" \
127
+ --next "量測濁度" \
128
+ --ai-notes "AI 協助整理變因" \
129
+ --student-notes "我自己設計裝置"
130
+
131
+ hermes photon-skills mentor-summary # 一頁導師摘要
132
+ hermes photon-skills sync --remote water-filter # 發佈到 GitHub(預設 private)
133
+ ```
134
+
135
+ ## 指令
136
+
137
+ | 指令 | 用途 |
138
+ |---|---|
139
+ | `setup [--profiles A,B] [--yes] [--soul-md\|--no-soul-md] [--force-soul-md]` | 把 8 個技能(可選 SOUL.md)同步到 profile |
140
+ | `status` | 每個 profile 的版本、技能數、SOUL.md |
141
+ | `update` | **已棄用**;更新走 `hermes plugins update` 或重新 `pip install --upgrade` |
142
+ | `start-project <名稱> [--steam ...] [--dir ...]` | 建立專案工作區(含 `git init`) |
143
+ | `session-start [--dir ...]` | 載入專案脈絡 |
144
+ | `session-end --focus ... [--source ...] [--decision ...] [--task ...] [--stage ...]` | 寫 session-log、更新來源/決策/任務、自動 commit |
145
+ | `audit-report [--dir ...]` | 教育者審計(AI vs 學生分工) |
146
+ | `mentor-summary [--dir ...]` | 一頁導師摘要 |
147
+ | `sync [--message ...] [--remote <repo>] [--public]` | 本地 commit / 建 GitHub remote 並 push / 離線模式 |
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 + 專案證據供人審閱(不上傳) |
152
+ | `selftest` | 快速自測 workspace 邏輯(exit 0) |
153
+
154
+ ## 技能
155
+
156
+ ### 學生技能(8 個,隨插件安裝,雙語)
157
+
158
+ | 技能 | 作用 |
159
+ |---|---|
160
+ | `photon-orchestrator` | Session 入口:讀 `project-card.md`,決定下一步 |
161
+ | `photon-session` | Session 開始/結束的紀錄與交接 |
162
+ | `photon-brainstorm` | 引導式腦力激盪,產出衝刺/穩妥/保底點子 |
163
+ | `photon-source-filter` | 判斷來源可不可信、有沒有用 |
164
+ | `photon-method-planner` | 把點子變成可執行方法:步驟、材料、變因、對照、安全 |
165
+ | `photon-progress-tracker` | 管理 `task-log.md`,依狀態建議下一步 |
166
+ | `photon-pitch-coach` | Pitch 敘事弧線與排練 |
167
+ | `photon-debate-coach` | 辯論/研討會:雙邊論點地圖、反駁路線、計時大綱 |
168
+
169
+ 詳細設計:[學生技能審計](docs/design/student-skill-audit.md) ·
170
+ [安全與隱私](docs/design/safety-privacy.md) · [Git 持久化](docs/design/git-persistence.md)
171
+
172
+ ### 學術技能(23 個,選裝,manual mode)
173
+
174
+ 研究編排、文獻搜尋、論文寫作、圖表、排版、期刊匹配、專利、軟著等 23 個進階
175
+ 技能**不隨插件安裝**(它們的參考文件會令安裝掃描由 `safe` 變 `caution`,
176
+ 非 catalog 來源會被拒絕)。它們以靜態 zip 隨插件出貨,按需解壓:
177
+
178
+ ```bash
179
+ hermes photon-skills extensions list
180
+ hermes photon-skills extensions install academic-skills
181
+ hermes photon-skills extensions remove academic-skills
182
+ ```
183
+
184
+ > **Manual mode**:這 23 個技能只附 `SKILL.md` 與 `references/`。文中引用的
185
+ > `scripts/`、`assets/` 不隨此建置發佈(共 240 條引用),需要時按文件手動
186
+ > 執行步驟,或到上游 repo 取得。這是刻意的取捨,不是缺漏。完整清單與技能地圖見
187
+ > [skills-academic/README.md](skills-academic/README.md)。
188
+
189
+ <p align="center">
190
+ <img src="assets/research-workflow.zh.svg" alt="Photon 學術版:從問題到交付的七階段可審計流程" width="900">
191
+ </p>
192
+
193
+ ## 隱私與安全
194
+
195
+ - **不收集個資**:不要求、不儲存全名、地址、電話或聯絡方式。
196
+ - **零遙測**:Photon 不對外發送任何資料,亦無任何分析/追蹤碼。
197
+ - **不外傳**:只有明確執行 `sync` 才會 commit/push,而且預設 private。
198
+ - **AI 分工透明**:`session-log` 分開記錄 `ai-notes` 與 `student-notes`;
199
+ `audit-report` 給老師核對 AI 參與程度。
200
+ - 完整版:[docs/design/safety-privacy.md](docs/design/safety-privacy.md)
201
+
202
+ ## 導師怎麼用
203
+
204
+ 導師不需要安裝任何東西:
205
+
206
+ 1. 學生把專案資料夾(或 GitHub repo 網址)給你。
207
+ 2. 直接讀 `project-card.md`、`session-log/`、`source-log.md`、`task-log.md`、
208
+ `mentor-feedback/`。
209
+ 3. 學生用 `hermes photon-skills mentor-summary` 產生一頁摘要;你的回饋由學生
210
+ 記錄進 `mentor-feedback/`。
211
+ 4. 需要核對 AI 參與時,請學生跑 `hermes photon-skills audit-report`。
212
+
213
+ ## 疑難排解
214
+
215
+ | 症狀 | 處理 |
216
+ |---|---|
217
+ | `hermes photon-skills: not a hermes command` | 插件未啟用:先 `hermes plugins list`,再 `hermes plugins enable photon-skills` |
218
+ | `status` 顯示 `0 tracked` | 技能未同步:跑 `hermes photon-skills setup --yes` |
219
+ | 版本顯示舊版 | 裝的是舊 wheel 或舊 pin:`pip install --upgrade photon-skills`,或 `plugins install ... --ref <新 SHA> --force` |
220
+ | 你改過的技能沒有更新 | `setup` 會保留你的副本並報告(`kept your edited copy of …`),這是設計;要取回官方版就備份後刪掉該技能目錄再 `setup` |
221
+ | `doctor` 報 `skill sync` warning | 你的副本與官方版本不同:保留改動就繼續用,想交回上游就跑 `feedback export`,想還原官方版就跑 `repair --force` |
222
+ | 不確定哪裡壞了 | 先跑 `hermes photon-skills doctor`(加 `--json` 可貼給我);安全修復用 `repair` |
223
+ | 完全載入不到 | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` 看發現/載入日誌;`hermes logs --level WARNING \| grep -i plugin` |
224
+
225
+ **手動 fallback**(插件連載入都失敗時):刪 `~/.hermes/plugins/photon-skills/`
226
+ → `pip uninstall photon-skills` → 用上面 A 或 B 重裝 → `hermes plugins enable
227
+ photon-skills`。專案資料夾不受影響。
228
+
229
+ ## 開發與發佈(維護者)
230
+
231
+ ```bash
232
+ python scripts/check_plugin_contract.py # 契約檢查(本機有 hermes 會順便跑 validate)
233
+ python scripts/release.py --selftest
234
+ python -m pytest tests/ -q
235
+ hermes plugins validate src/photon
236
+ ```
237
+
238
+ 發佈流程:先在 default branch 寫入版本(`python scripts/release.py --set
239
+ X.Y.Z`),commit,再 tag `vX.Y.Z`。CI 會驗證 tag = tree 才發佈,CI 不會改寫版本。
240
+ 詳見 [CONTRIBUTING.md](CONTRIBUTING.md) 與
241
+ [docs/design/plugin-distribution.md](docs/design/plugin-distribution.md)。
242
+
243
+ > catalog 上架暫不可行:curated catalog 要求公開 repo,本 repo 是 private。
244
+ > 現時渠道是 PyPI(公開)與 git + SHA(學校/協作者)。
245
+
246
+ ## 論文與圖表示範
247
+
248
+ 學術版技能的完整交付形態:從合成數據、分析、程序化圖表到 LaTeX PDF。
249
+
250
+ <p align="center">
251
+ <a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">
252
+ <img src="projects/photocatalytic-dye-kinetics-study/paper/main-preview.png" alt="English science paper preview" width="540">
253
+ </a><br>
254
+ <sub><a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">閱讀 PDF</a></sub>
255
+ </p>
256
+
257
+ ## 授權
258
+
259
+ MIT — 見 [LICENSE](LICENSE)。作者:Uniterra Solutions Ltd;原始 Light-skills
260
+ 作者:Light0305。
261
+
262
+ Photon 是獨立衍生專案,與原作者的 `Light0305/Light-skills` repo 無隸屬或背書
263
+ 關係;該 repo 未被本專案修改。MIT 要求保留上述版權聲明,授權檔亦隨 wheel 附上。
@@ -0,0 +1,273 @@
1
+ <div align="center">
2
+
3
+ <img src="assets/logo.png" alt="Photon Skills logo" width="170">
4
+
5
+ # Photon Skills
6
+
7
+ **A STEAM project companion for Hermes Agent: 8 bilingual student skills + a Git-backed project workspace**
8
+
9
+ <p align="center">
10
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License"></a>
11
+ <img src="https://img.shields.io/badge/Hermes-plugin-5B6FE0.svg" alt="Hermes plugin">
12
+ <img src="https://img.shields.io/badge/student%20skills-8-22C55E.svg" alt="8 student skills">
13
+ <img src="https://img.shields.io/badge/language-zh--Hant%20%2B%20EN-7C3AED.svg" alt="zh-Hant and English">
14
+ <img src="https://img.shields.io/badge/telemetry-none-6B7280.svg" alt="No telemetry">
15
+ </p>
16
+
17
+ <p><a href="README.md">繁體中文</a> · <strong>English</strong></p>
18
+
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## What this is
24
+
25
+ Photon is a **Hermes Agent plugin**. It takes primary/secondary students from a
26
+ real-life problem through **brainstorming → source exploration → method
27
+ planning → building → pitch preparation**, and writes the whole journey into a
28
+ Git-tracked project folder so mentors and teachers can see the progress and the
29
+ AI/student split of the work.
30
+
31
+ - **Students stay the owners of the work**: Photon is a research assistant — it
32
+ guides, it does not do the work for the student.
33
+ - **One folder per project**: `project-card.md`, `source-log.md`,
34
+ `task-log.md`, `session-log/`, `decisions.md`, `mentor-feedback/`.
35
+ - **Session continuity**: context is loaded at session start; the session is
36
+ recorded and auto-committed at the end.
37
+ - **Safety and integrity built in**: content guardrails, AI/student
38
+ contribution labels, and `audit-report` for educators.
39
+ - **Zero telemetry, zero third-party dependencies**: everything stays on the
40
+ student's machine until they explicitly run `sync`.
41
+
42
+ > This README is the only install guide. The old multi-client setup (Codex /
43
+ > Claude Code / OpenCode + `bootstrap_agent_skills.py`) is retired — see
44
+ > [docs/legacy-multi-client.md](docs/legacy-multi-client.md).
45
+
46
+ ## Requirements
47
+
48
+ | Item | Requirement |
49
+ |---|---|
50
+ | Hermes Agent | must provide the `hermes plugins` subcommand (2026-09 or later) |
51
+ | Python | 3.10+ (the venv Hermes ships already satisfies this) |
52
+ | Git | 2.30+ (project folders are Git-tracked) |
53
+ | OS | macOS, Linux, Windows PowerShell |
54
+
55
+ ## Install
56
+
57
+ ### A. Public install (PyPI) — individuals
58
+
59
+ This repository is private, so the public channel is PyPI. The package **must**
60
+ be installed into Hermes's own venv, or `import photon` will not resolve.
61
+
62
+ ```bash
63
+ # 1) confirm Hermes's venv (usually ~/.hermes/hermes-agent/venv)
64
+ dirname "$(dirname "$(which hermes)")"
65
+
66
+ # 2) install into it (macOS / Linux)
67
+ ~/.hermes/hermes-agent/venv/bin/pip install --upgrade photon-skills
68
+
69
+ # Windows PowerShell:
70
+ # & "$env:USERPROFILE\.hermes\hermes-agent\venv\Scripts\pip.exe" install --upgrade photon-skills
71
+
72
+ # 3) enable
73
+ hermes plugins enable photon-skills
74
+ ```
75
+
76
+ Verify:
77
+
78
+ ```bash
79
+ hermes plugins list --user --plain | grep photon-skills
80
+ hermes photon-skills status # current version and "Bundled skills: 8"
81
+ ```
82
+
83
+ ### B. Schools / collaborators (git, SHA-pinned)
84
+
85
+ With repository access, one command does it, and it pins an exact commit:
86
+
87
+ ```bash
88
+ hermes plugins install Uniterra-Solutions/Photon-skills/src/photon \
89
+ --ref <40-hex commit SHA> --enable
90
+ ```
91
+
92
+ `src/photon` is the plugin directory; a subdir install copies only that
93
+ directory, and the skills live inside it. Once pinned, `hermes plugins update`
94
+ refuses to move the version — install again with
95
+ `plugins install ... --ref <new SHA> --force` to change it.
96
+
97
+ ### C. Migrating from an older install
98
+
99
+ | What you had | What to do |
100
+ |---|---|
101
+ | pip `photon-skills` + a hand-written `~/.hermes/plugins/photon-skills/` shim | `hermes plugins remove photon-skills` → `rm -rf ~/.hermes/plugins/photon-skills` → `pip uninstall photon-skills` → reinstall with A or B |
102
+ | `photon` 1.0.0 (PR #26 era) | `pip uninstall photon` and remove `~/.hermes/plugins/photon/` |
103
+ | A local clone of `Light0305/Light-skills` plus `.agents/skills`, `.claude/skills`, `.opencode/skills` | delete **your local** clone and mirror directories (the upstream repo is third-party and unaffected); Photon only uses the Hermes profile's `~/.hermes/skills/`. The old `light-*` skills can be deleted; the 23 academic skills are now `photon-*` and ship as an extension |
104
+ | Old `photon-*` copies left in a profile | after upgrading, run `hermes photon-skills setup --yes`; it updates by content hash, and a copy you edited is kept and reported |
105
+
106
+ **Project folders (`~/Photon/...`, `session-log/`, `source-log.md`) are never
107
+ touched by install, upgrade, or removal.**
108
+
109
+ ## Your first project
110
+
111
+ ```bash
112
+ hermes photon-skills start-project "Water Filter Design" --steam SCIENCE
113
+ cd ~/Photon/"Water Filter Design"
114
+
115
+ hermes photon-skills session-start # load project-card and recent sessions
116
+ # … work with Photon …
117
+
118
+ hermes photon-skills session-end \
119
+ --focus "testing three filter media" \
120
+ --work-done "finished the first filtration run" \
121
+ --next "measure turbidity" \
122
+ --ai-notes "AI helped organise the variables" \
123
+ --student-notes "I designed the rig myself"
124
+
125
+ hermes photon-skills mentor-summary # one-page mentor summary
126
+ hermes photon-skills sync --remote water-filter # publish to GitHub (private by default)
127
+ ```
128
+
129
+ ## Commands
130
+
131
+ | Command | Purpose |
132
+ |---|---|
133
+ | `setup [--profiles A,B] [--yes] [--soul-md\|--no-soul-md] [--force-soul-md]` | Sync the 8 skills (optionally SOUL.md) into profiles |
134
+ | `status` | Version, skill count, and SOUL.md per profile |
135
+ | `update` | **Deprecated**; update through `hermes plugins update` or `pip install --upgrade` |
136
+ | `start-project <name> [--steam ...] [--dir ...]` | Scaffold a project workspace (incl. `git init`) |
137
+ | `session-start [--dir ...]` | Load project context |
138
+ | `session-end --focus ... [--source ...] [--decision ...] [--task ...] [--stage ...]` | Write session-log, update source/decision/task logs, auto-commit |
139
+ | `audit-report [--dir ...]` | Educator audit (AI vs student split) |
140
+ | `mentor-summary [--dir ...]` | One-page mentor summary |
141
+ | `sync [--message ...] [--remote <repo>] [--public]` | Local commit / create a GitHub remote and push / offline mode |
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) |
146
+ | `selftest` | Quick workspace self-test (exit 0) |
147
+
148
+ ## Skills
149
+
150
+ ### Student skills (8, shipped with the plugin, bilingual)
151
+
152
+ | Skill | Purpose |
153
+ |---|---|
154
+ | `photon-orchestrator` | Session entry point: reads `project-card.md` and decides the next step |
155
+ | `photon-session` | Session start/end recording and handover |
156
+ | `photon-brainstorm` | Guided brainstorming into stretch/solid/safe ideas |
157
+ | `photon-source-filter` | Judges whether a source is credible and useful |
158
+ | `photon-method-planner` | Turns an idea into an executable method: steps, materials, variables, controls, safety |
159
+ | `photon-progress-tracker` | Maintains `task-log.md` and suggests the next step |
160
+ | `photon-pitch-coach` | Pitch narrative arc and rehearsal |
161
+ | `photon-debate-coach` | Debate/symposium: both-side argument maps, rebuttal lines, timed outlines |
162
+
163
+ Design docs: [Student skill audit](docs/design/student-skill-audit.md) ·
164
+ [Safety & privacy](docs/design/safety-privacy.md) ·
165
+ [Git persistence](docs/design/git-persistence.md)
166
+
167
+ ### Academic skills (23, opt-in, manual mode)
168
+
169
+ The 23 advanced skills (research orchestration, literature search, paper
170
+ writing, figures, typesetting, venue matching, patents, software copyright…)
171
+ are **not installed with the plugin**: their reference material moves the
172
+ install scan from `safe` to `caution`, and a non-catalog source is refused at
173
+ `caution`. They ship as a static zip and are unpacked on demand:
174
+
175
+ ```bash
176
+ hermes photon-skills extensions list
177
+ hermes photon-skills extensions install academic-skills
178
+ hermes photon-skills extensions remove academic-skills
179
+ ```
180
+
181
+ > **Manual mode**: these 23 skills ship `SKILL.md` and `references/` only. The
182
+ > `scripts/` and `assets/` they mention are not part of this build (240
183
+ > referenced paths in total) — follow the steps by hand, or take the helpers
184
+ > from the upstream repository. That is a deliberate trade-off, not a gap. Full
185
+ > catalogue and skill map: [skills-academic/README.md](skills-academic/README.md).
186
+
187
+ <p align="center">
188
+ <img src="assets/research-workflow.en.svg" alt="Photon academic pack: seven auditable stages from question to delivery" width="900">
189
+ </p>
190
+
191
+ ## Privacy and safety
192
+
193
+ - **No PII collected**: no full names, addresses, phone numbers, or contact
194
+ details are requested or stored.
195
+ - **Zero telemetry**: Photon sends no data anywhere and contains no analytics or
196
+ tracking code.
197
+ - **No external sharing**: only an explicit `sync` commits/pushes, private by
198
+ default.
199
+ - **Transparent AI split**: `session-log` records `ai-notes` and
200
+ `student-notes` separately; `audit-report` shows educators how much the AI
201
+ contributed.
202
+ - Full version: [docs/design/safety-privacy.md](docs/design/safety-privacy.md)
203
+
204
+ ## How mentors use it
205
+
206
+ Mentors do not install anything:
207
+
208
+ 1. The student shares the project folder (or the GitHub repo URL).
209
+ 2. Read `project-card.md`, `session-log/`, `source-log.md`, `task-log.md`, and
210
+ `mentor-feedback/` directly.
211
+ 3. The student runs `hermes photon-skills mentor-summary` for a one-page
212
+ summary; mentor feedback is recorded by the student into
213
+ `mentor-feedback/`.
214
+ 4. To check the AI/student split, ask the student to run
215
+ `hermes photon-skills audit-report`.
216
+
217
+ ## Troubleshooting
218
+
219
+ | Symptom | Fix |
220
+ |---|---|
221
+ | `hermes photon-skills: not a hermes command` | plugin not enabled: check `hermes plugins list`, then `hermes plugins enable photon-skills` |
222
+ | `status` shows `0 tracked` | skills were not synced: run `hermes photon-skills setup --yes` |
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` |
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` |
227
+ | Nothing loads at all | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` for discovery/load logs; `hermes logs --level WARNING \| grep -i plugin` |
228
+
229
+ **Manual fallback** (when even loading fails): delete
230
+ `~/.hermes/plugins/photon-skills/` → `pip uninstall photon-skills` → reinstall
231
+ with A or B → `hermes plugins enable photon-skills`. Project folders are
232
+ unaffected.
233
+
234
+ ## Development and releases (maintainers)
235
+
236
+ ```bash
237
+ python scripts/check_plugin_contract.py # contract checks (+ real validator when hermes has it)
238
+ python scripts/release.py --selftest
239
+ python -m pytest tests/ -q
240
+ hermes plugins validate src/photon
241
+ ```
242
+
243
+ Release flow: write the version on the default branch
244
+ (`python scripts/release.py --set X.Y.Z`), commit, then tag `vX.Y.Z`. CI
245
+ verifies tag = tree before publishing and never rewrites the version. See
246
+ [CONTRIBUTING.md](CONTRIBUTING.md) and
247
+ [docs/design/plugin-distribution.md](docs/design/plugin-distribution.md).
248
+
249
+ > Catalog admission is not available yet: the curated catalog requires a public
250
+ > repository, and this one is private. The current channels are PyPI (public)
251
+ > and git + SHA (schools/collaborators).
252
+
253
+ ## Paper and figure demo
254
+
255
+ The academic pack's full deliverable shape: synthetic data → analysis →
256
+ programmatic figures → LaTeX PDF.
257
+
258
+ <p align="center">
259
+ <a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">
260
+ <img src="projects/photocatalytic-dye-kinetics-study/paper/main-preview.png" alt="English science paper preview" width="540">
261
+ </a><br>
262
+ <sub><a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">Read the PDF</a></sub>
263
+ </p>
264
+
265
+ ## License
266
+
267
+ MIT — see [LICENSE](LICENSE). Author: Uniterra Solutions Ltd; original
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.