photon-skills 3.0.2.dev2__tar.gz → 3.0.3.dev3__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.
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/CHANGELOG.md +10 -0
- photon_skills-3.0.3.dev3/PKG-INFO +255 -0
- photon_skills-3.0.3.dev3/README.en.md +263 -0
- photon_skills-3.0.3.dev3/README.md +242 -0
- photon_skills-3.0.3.dev3/docs/legacy-multi-client.md +86 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/pyproject.toml +1 -1
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/plugin.yaml +1 -1
- photon_skills-3.0.2.dev2/PKG-INFO +0 -408
- photon_skills-3.0.2.dev2/README.en.md +0 -421
- photon_skills-3.0.2.dev2/README.md +0 -395
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/.github/workflows/plugin-contract.yml +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/.github/workflows/publish.yml +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/.gitignore +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/AGENTS.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/CONTRIBUTING.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/LICENSE +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/SECURITY.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/README.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/__init__.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/__main__.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/decision_contract.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/evidence_contract.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/findings_schema.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/gate_runner.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/semantic_sim.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/status_contract.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/_shared/visual_qa.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/assets/logo.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/assets/research-workflow.en.svg +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/assets/research-workflow.zh.svg +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/assets/social-preview.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/assets/wechat-donation.jpg +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/assets/wechat-official-account.jpg +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/compatibility/agent-client-compatibility.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/_shared.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/citation.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/consistency.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/data-engineering.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/experiment-coding.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/figure.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/file-reading.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/frontend-design.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/idea-critique.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/idea-generation.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/literature-search.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/memory-pm.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/orchestrator.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/paper-writing.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/patent-disclosure.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/project-structure.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/research-ethics.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/research-plan.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/result-analysis.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/review-rebuttal.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/software-copyright.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/system-design.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/typesetting.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/competitors/venue-matching.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/consistency-round2-e2e.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/debate-coach.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/git-persistence.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/orchestrator-spec.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/plugin-distribution.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/safety-privacy.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/design/student-skill-audit.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/citation-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/data-engineering-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/experiment-coding-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/ip-extension-gate.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/orchestrator-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/paper-writing-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/project-structure-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/research-ethics-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/research-plan-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/result-analysis-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/review-rebuttal-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/round3-release-gate.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/system-design-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/typesetting-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/e2e/venue-matching-round2.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/learning/ip/ip-upgrade-synthesis.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/learning/ip/patent-deep-read-report.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/learning/ip/software-copyright-deep-read-report.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/docs/releases/v1.0.0.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/.gitignore +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/.photon-project +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/decisions.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/mentor-feedback/2026-08-01.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/mentor-feedback/README.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/project-card.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/session-log/2026-07-28.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/session-log/2026-07-30.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/session-log/2026-08-01.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/source-log.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/demo-student-project/task-log.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/README.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/artifacts/light_e2e_case.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/data/synthetic_experiment.csv +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_a_design_frontier.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_b_signal_screen.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_c_calibration.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_d_evidence_strength.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_e_failure_map.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_f_quality_trajectory.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_g_distribution_shift.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_h_tradeoff_curve.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/panels/panel_i_risk_budget.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/figures/research_figure_gallery.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/scripts/compose_figure_gallery.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/scripts/generate_synthetic_data.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/scripts/python_gallery_panels.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/scripts/r_gallery_panels.R +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/examples/e2e-research-demo/scripts/run_demo.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/README.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/data/fitted_rate_constants.csv +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/data/synthetic_design_table.csv +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/data/synthetic_uvvis_timeseries.csv +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/figures/figure1_kinetics.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/figures/figure2_response_surface.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/figures/figure3_diagnostics.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/figures/figure4_scavenger_effects.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/outputs/analysis_summary.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/outputs/scavenger_summary.csv +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/paper/main-preview.png +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/paper/main.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/paper/main.pdf +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/paper/main.tex +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/scripts/analyze.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/scripts/build_paper.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/scripts/generate_data.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/scripts/make_figures.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/scripts/render_preview.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/projects/photocatalytic-dye-kinetics-study/scripts/run_all.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/scripts/bootstrap_agent_skills.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/scripts/check_plugin_contract.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/scripts/release.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/README.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/citation-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/references/locator_audit.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/references/registry_contract.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/templates/citation-four-gate.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/templates/citation_input.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-citation/templates/claim_citation_review.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-consistency/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-consistency/examples/fact-bindings.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-consistency/examples/materials_paper.txt +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-consistency/examples/materials_ppt.txt +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-consistency/references/consistency-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/examples/derive_spec.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/examples/rules.example.yaml +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/examples/worked_example.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/references/data-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/templates/annotation_guide.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-data-engineering/templates/data-identity-fitness.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/references/code_examples.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/references/debug_protocol.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/references/experiment-coding-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/references/tdd_redflags.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/references/tools.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/templates/experiment-execution-contract.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/templates/run_manifest.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-experiment-coding/templates/run_manifest.template.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/examples/bad_figure_example.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/examples/example_framework.dot +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/examples/example_framework_render.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/examples/example_matplotlib_multipanel.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/examples/example_seaborn_stats.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/examples/worked_example.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/references/figure_integrity.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/templates/figure-delivery.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/templates/figure_plan_card.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-figure/templates/table_plan_card.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/DOCX-REF.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/IMG-REF.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/PDF-REF.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/PPTX-REF.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/XLSX-REF.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/reading-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-file-reading/references/tools.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references/design-systems-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references/ecosystem-2026.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references/fonts-and-colors.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references/redesign-audit.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references/resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references/visual-a11y-rules.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-frontend-design/templates/frontend-delivery.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/critique-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/examples/worked_example_dermoscopy.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/references/contract.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/references/protocol.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/references/rubric.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/templates/Revision_Roadmap.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/templates/novelty-evidence.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-critique/templates/verdict_template.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/.gitignore +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/examples/candidates.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/examples/idea_candidates.example.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/idea-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/templates/idea-gap-evidence.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/templates/idea-genealogy.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/templates/idea_card.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-idea-generation/templates/innovation-engine.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/examples/goat_littable.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/examples/goat_search.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/examples/worked_example_dairy_goat.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/search-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-literature-search/templates/search-protocol.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-memory-pm/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-memory-pm/references/cross_harness_resume.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-memory-pm/references/session_handoff.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/examples/claim_evidence_walkthrough.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/paper-writing-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/references/argument_review.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/references/claim_argument_plan.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/references/guideline_map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/references/integrity_gate.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/references/mandatory_inclusions.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/references/self_review_checklist.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/templates/01_imrad.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/templates/06_conference.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/templates/argument-outline.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/templates/claim_argument_plan.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-paper-writing/templates/claim_passport.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-patent-disclosure/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-patent-disclosure/references/patent-interview-and-search.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-patent-disclosure/references/patent-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-patent-disclosure/templates/patent-disclosure-packet.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-project-structure/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-project-structure/references/project-lifecycle-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-project-structure/references/structure-profiles.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-project-structure/templates/project-policy.template.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-project-structure/templates/project-structure-governance.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-ethics/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-ethics/references/cn_compliance.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-ethics/references/decision_trees.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-ethics/references/ethics-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-ethics/references/retraction_flag_types.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-ethics/references/tortured_phrases.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/references/integration-contract.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/references/orchestrator-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/references/passport.schema.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/templates/passport.v3.yaml +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/templates/task-profile.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-orchestrator/templates/workflow-ledger.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/examples/plan_spec.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/references/research-plan-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/experiment_matrix.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/failure-tree.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/plan_package.manifest.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/preregistration.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/reproducibility-checklist.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/reproduction-log.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/research-plan.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-research-plan/templates/target-chain.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/examples/analysis_audit.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/examples/method_compatibility.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/examples/stat_spec.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/examples/worked_example.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/result-analysis-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/scripts/r_analysis_crosscheck.R +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-result-analysis/templates/result-card.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/agents/openai.yaml +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/references/workflow_contract.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/review-rebuttal-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/commitment_ledger.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/experiment_request.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/rereview_checklist.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/response_letter_template.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/response_matrix.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/review-response-contract.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-review-rebuttal/templates/review_input.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-software-copyright/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-software-copyright/references/materials-workflow.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-software-copyright/references/software-copyright-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-software-copyright/templates/software-copyright-materials.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/references/system-design-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/architecture-package.template.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/decision-authorization.template.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/design-readiness.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/migration_expand_contract.sql +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/openapi.yaml +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/rls_policy.sql +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/schema.sql +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-system-design/templates/system-intake.template.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/references/build_contract.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/references/latex_errors.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/acm_sigconf.tex +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/ctex_chinese.tex +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/elsevier_elsarticle.tex +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/ieee_bare_conf.tex +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/springer_llncs.tex +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/submission-readiness.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/templates/typesetting_input.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-typesetting/typesetting-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/references/workflow_contract.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/references.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/templates/query-privacy.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/templates/user_selection.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/templates/venue-evidence.example.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/templates/venue_compare_table.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/templates/venue_input.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/skills-academic/photon-venue-matching/venue-resource-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/SOUL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/__init__.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/_base.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/extensions/academic-skills.zip +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-brainstorm/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/references/format-presets.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/templates/case-map.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/templates/format.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/templates/motion-brief.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/templates/outline.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/templates/post-match.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-debate-coach/templates/rebuttal-cards.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-method-planner/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-orchestrator/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-pitch-coach/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-pitch-coach/templates/judge-qa-prep.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-pitch-coach/templates/pitch-deck-outline.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-pitch-coach/templates/pitch-script-60s.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-progress-tracker/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-session/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skills/photon-source-filter/SKILL.md +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/skillsets.json +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/src/photon/workspace.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/tests/test_cli.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/tests/test_contract.py +0 -0
- {photon_skills-3.0.2.dev2 → photon_skills-3.0.3.dev3}/tests/test_workspace.py +0 -0
|
@@ -6,6 +6,16 @@ The project follows a pragmatic release-note style rather than claiming strict s
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
### Documentation
|
|
10
|
+
|
|
11
|
+
- **README rewritten as a plugin-first guide** (zh + en): the two real install
|
|
12
|
+
channels (PyPI into Hermes's own venv; git + pinned SHA for schools and
|
|
13
|
+
collaborators), migration from pip+shim and from Light-skills, the actual
|
|
14
|
+
11-command surface, troubleshooting, and a maintainer section. The retired
|
|
15
|
+
Codex / Claude Code / OpenCode instructions moved to
|
|
16
|
+
`docs/legacy-multi-client.md`; badges no longer claim 30 skills or client
|
|
17
|
+
readiness.
|
|
18
|
+
|
|
9
19
|
### Changed
|
|
10
20
|
|
|
11
21
|
- **`skillset` removed (P0 cleanup).** The shipped bundle is the 8 student
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: photon-skills
|
|
3
|
+
Version: 3.0.3.dev3
|
|
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
|
+
| `selftest` | 快速自測 workspace 邏輯(exit 0) |
|
|
150
|
+
|
|
151
|
+
## 技能
|
|
152
|
+
|
|
153
|
+
### 學生技能(8 個,隨插件安裝,雙語)
|
|
154
|
+
|
|
155
|
+
| 技能 | 作用 |
|
|
156
|
+
|---|---|
|
|
157
|
+
| `photon-orchestrator` | Session 入口:讀 `project-card.md`,決定下一步 |
|
|
158
|
+
| `photon-session` | Session 開始/結束的紀錄與交接 |
|
|
159
|
+
| `photon-brainstorm` | 引導式腦力激盪,產出衝刺/穩妥/保底點子 |
|
|
160
|
+
| `photon-source-filter` | 判斷來源可不可信、有沒有用 |
|
|
161
|
+
| `photon-method-planner` | 把點子變成可執行方法:步驟、材料、變因、對照、安全 |
|
|
162
|
+
| `photon-progress-tracker` | 管理 `task-log.md`,依狀態建議下一步 |
|
|
163
|
+
| `photon-pitch-coach` | Pitch 敘事弧線與排練 |
|
|
164
|
+
| `photon-debate-coach` | 辯論/研討會:雙邊論點地圖、反駁路線、計時大綱 |
|
|
165
|
+
|
|
166
|
+
詳細設計:[學生技能審計](docs/design/student-skill-audit.md) ·
|
|
167
|
+
[安全與隱私](docs/design/safety-privacy.md) · [Git 持久化](docs/design/git-persistence.md)
|
|
168
|
+
|
|
169
|
+
### 學術技能(23 個,選裝,manual mode)
|
|
170
|
+
|
|
171
|
+
研究編排、文獻搜尋、論文寫作、圖表、排版、期刊匹配、專利、軟著等 23 個進階
|
|
172
|
+
技能**不隨插件安裝**(它們的參考文件會令安裝掃描由 `safe` 變 `caution`,
|
|
173
|
+
非 catalog 來源會被拒絕)。它們以靜態 zip 隨插件出貨,按需解壓:
|
|
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**:這 23 個技能只附 `SKILL.md` 與 `references/`。文中引用的
|
|
182
|
+
> `scripts/`、`assets/` 不隨此建置發佈(共 240 條引用),需要時按文件手動
|
|
183
|
+
> 執行步驟,或到上游 repo 取得。這是刻意的取捨,不是缺漏。完整清單與技能地圖見
|
|
184
|
+
> [skills-academic/README.md](skills-academic/README.md)。
|
|
185
|
+
|
|
186
|
+
<p align="center">
|
|
187
|
+
<img src="assets/research-workflow.zh.svg" alt="Photon 學術版:從問題到交付的七階段可審計流程" width="900">
|
|
188
|
+
</p>
|
|
189
|
+
|
|
190
|
+
## 隱私與安全
|
|
191
|
+
|
|
192
|
+
- **不收集個資**:不要求、不儲存全名、地址、電話或聯絡方式。
|
|
193
|
+
- **零遙測**:Photon 不對外發送任何資料,亦無任何分析/追蹤碼。
|
|
194
|
+
- **不外傳**:只有明確執行 `sync` 才會 commit/push,而且預設 private。
|
|
195
|
+
- **AI 分工透明**:`session-log` 分開記錄 `ai-notes` 與 `student-notes`;
|
|
196
|
+
`audit-report` 給老師核對 AI 參與程度。
|
|
197
|
+
- 完整版:[docs/design/safety-privacy.md](docs/design/safety-privacy.md)
|
|
198
|
+
|
|
199
|
+
## 導師怎麼用
|
|
200
|
+
|
|
201
|
+
導師不需要安裝任何東西:
|
|
202
|
+
|
|
203
|
+
1. 學生把專案資料夾(或 GitHub repo 網址)給你。
|
|
204
|
+
2. 直接讀 `project-card.md`、`session-log/`、`source-log.md`、`task-log.md`、
|
|
205
|
+
`mentor-feedback/`。
|
|
206
|
+
3. 學生用 `hermes photon-skills mentor-summary` 產生一頁摘要;你的回饋由學生
|
|
207
|
+
記錄進 `mentor-feedback/`。
|
|
208
|
+
4. 需要核對 AI 參與時,請學生跑 `hermes photon-skills audit-report`。
|
|
209
|
+
|
|
210
|
+
## 疑難排解
|
|
211
|
+
|
|
212
|
+
| 症狀 | 處理 |
|
|
213
|
+
|---|---|
|
|
214
|
+
| `hermes photon-skills: not a hermes command` | 插件未啟用:先 `hermes plugins list`,再 `hermes plugins enable photon-skills` |
|
|
215
|
+
| `status` 顯示 `0 tracked` | 技能未同步:跑 `hermes photon-skills setup --yes` |
|
|
216
|
+
| 版本顯示舊版 | 裝的是舊 wheel 或舊 pin:`pip install --upgrade photon-skills`,或 `plugins install ... --ref <新 SHA> --force` |
|
|
217
|
+
| 你改過的技能沒有更新 | `setup` 會保留你的副本並報告(`kept your edited copy of …`),這是設計;要取回官方版就備份後刪掉該技能目錄再 `setup` |
|
|
218
|
+
| 完全載入不到 | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` 看發現/載入日誌;`hermes logs --level WARNING \| grep -i plugin` |
|
|
219
|
+
|
|
220
|
+
**手動 fallback**(插件連載入都失敗時):刪 `~/.hermes/plugins/photon-skills/`
|
|
221
|
+
→ `pip uninstall photon-skills` → 用上面 A 或 B 重裝 → `hermes plugins enable
|
|
222
|
+
photon-skills`。專案資料夾不受影響。
|
|
223
|
+
|
|
224
|
+
## 開發與發佈(維護者)
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
python scripts/check_plugin_contract.py # 契約檢查(本機有 hermes 會順便跑 validate)
|
|
228
|
+
python scripts/release.py --selftest
|
|
229
|
+
python -m pytest tests/ -q
|
|
230
|
+
hermes plugins validate src/photon
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
發佈流程:先在 default branch 寫入版本(`python scripts/release.py --set
|
|
234
|
+
X.Y.Z`),commit,再 tag `vX.Y.Z`。CI 會驗證 tag = tree 才發佈,CI 不會改寫版本。
|
|
235
|
+
詳見 [CONTRIBUTING.md](CONTRIBUTING.md) 與
|
|
236
|
+
[docs/design/plugin-distribution.md](docs/design/plugin-distribution.md)。
|
|
237
|
+
|
|
238
|
+
> catalog 上架暫不可行:curated catalog 要求公開 repo,本 repo 是 private。
|
|
239
|
+
> 現時渠道是 PyPI(公開)與 git + SHA(學校/協作者)。
|
|
240
|
+
|
|
241
|
+
## 論文與圖表示範
|
|
242
|
+
|
|
243
|
+
學術版技能的完整交付形態:從合成數據、分析、程序化圖表到 LaTeX PDF。
|
|
244
|
+
|
|
245
|
+
<p align="center">
|
|
246
|
+
<a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">
|
|
247
|
+
<img src="projects/photocatalytic-dye-kinetics-study/paper/main-preview.png" alt="English science paper preview" width="540">
|
|
248
|
+
</a><br>
|
|
249
|
+
<sub><a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">閱讀 PDF</a></sub>
|
|
250
|
+
</p>
|
|
251
|
+
|
|
252
|
+
## 授權
|
|
253
|
+
|
|
254
|
+
MIT — 見 [LICENSE](LICENSE)。作者:Uniterra Solutions Ltd;原始 Light-skills
|
|
255
|
+
作者:Light0305。
|
|
@@ -0,0 +1,263 @@
|
|
|
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
|
+
| `selftest` | Quick workspace self-test (exit 0) |
|
|
144
|
+
|
|
145
|
+
## Skills
|
|
146
|
+
|
|
147
|
+
### Student skills (8, shipped with the plugin, bilingual)
|
|
148
|
+
|
|
149
|
+
| Skill | Purpose |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `photon-orchestrator` | Session entry point: reads `project-card.md` and decides the next step |
|
|
152
|
+
| `photon-session` | Session start/end recording and handover |
|
|
153
|
+
| `photon-brainstorm` | Guided brainstorming into stretch/solid/safe ideas |
|
|
154
|
+
| `photon-source-filter` | Judges whether a source is credible and useful |
|
|
155
|
+
| `photon-method-planner` | Turns an idea into an executable method: steps, materials, variables, controls, safety |
|
|
156
|
+
| `photon-progress-tracker` | Maintains `task-log.md` and suggests the next step |
|
|
157
|
+
| `photon-pitch-coach` | Pitch narrative arc and rehearsal |
|
|
158
|
+
| `photon-debate-coach` | Debate/symposium: both-side argument maps, rebuttal lines, timed outlines |
|
|
159
|
+
|
|
160
|
+
Design docs: [Student skill audit](docs/design/student-skill-audit.md) ·
|
|
161
|
+
[Safety & privacy](docs/design/safety-privacy.md) ·
|
|
162
|
+
[Git persistence](docs/design/git-persistence.md)
|
|
163
|
+
|
|
164
|
+
### Academic skills (23, opt-in, manual mode)
|
|
165
|
+
|
|
166
|
+
The 23 advanced skills (research orchestration, literature search, paper
|
|
167
|
+
writing, figures, typesetting, venue matching, patents, software copyright…)
|
|
168
|
+
are **not installed with the plugin**: their reference material moves the
|
|
169
|
+
install scan from `safe` to `caution`, and a non-catalog source is refused at
|
|
170
|
+
`caution`. They ship as a static zip and are unpacked on demand:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
hermes photon-skills extensions list
|
|
174
|
+
hermes photon-skills extensions install academic-skills
|
|
175
|
+
hermes photon-skills extensions remove academic-skills
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
> **Manual mode**: these 23 skills ship `SKILL.md` and `references/` only. The
|
|
179
|
+
> `scripts/` and `assets/` they mention are not part of this build (240
|
|
180
|
+
> referenced paths in total) — follow the steps by hand, or take the helpers
|
|
181
|
+
> from the upstream repository. That is a deliberate trade-off, not a gap. Full
|
|
182
|
+
> catalogue and skill map: [skills-academic/README.md](skills-academic/README.md).
|
|
183
|
+
|
|
184
|
+
<p align="center">
|
|
185
|
+
<img src="assets/research-workflow.en.svg" alt="Photon academic pack: seven auditable stages from question to delivery" width="900">
|
|
186
|
+
</p>
|
|
187
|
+
|
|
188
|
+
## Privacy and safety
|
|
189
|
+
|
|
190
|
+
- **No PII collected**: no full names, addresses, phone numbers, or contact
|
|
191
|
+
details are requested or stored.
|
|
192
|
+
- **Zero telemetry**: Photon sends no data anywhere and contains no analytics or
|
|
193
|
+
tracking code.
|
|
194
|
+
- **No external sharing**: only an explicit `sync` commits/pushes, private by
|
|
195
|
+
default.
|
|
196
|
+
- **Transparent AI split**: `session-log` records `ai-notes` and
|
|
197
|
+
`student-notes` separately; `audit-report` shows educators how much the AI
|
|
198
|
+
contributed.
|
|
199
|
+
- Full version: [docs/design/safety-privacy.md](docs/design/safety-privacy.md)
|
|
200
|
+
|
|
201
|
+
## How mentors use it
|
|
202
|
+
|
|
203
|
+
Mentors do not install anything:
|
|
204
|
+
|
|
205
|
+
1. The student shares the project folder (or the GitHub repo URL).
|
|
206
|
+
2. Read `project-card.md`, `session-log/`, `source-log.md`, `task-log.md`, and
|
|
207
|
+
`mentor-feedback/` directly.
|
|
208
|
+
3. The student runs `hermes photon-skills mentor-summary` for a one-page
|
|
209
|
+
summary; mentor feedback is recorded by the student into
|
|
210
|
+
`mentor-feedback/`.
|
|
211
|
+
4. To check the AI/student split, ask the student to run
|
|
212
|
+
`hermes photon-skills audit-report`.
|
|
213
|
+
|
|
214
|
+
## Troubleshooting
|
|
215
|
+
|
|
216
|
+
| Symptom | Fix |
|
|
217
|
+
|---|---|
|
|
218
|
+
| `hermes photon-skills: not a hermes command` | plugin not enabled: check `hermes plugins list`, then `hermes plugins enable photon-skills` |
|
|
219
|
+
| `status` shows `0 tracked` | skills were not synced: run `hermes photon-skills setup --yes` |
|
|
220
|
+
| 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
|
+
| 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` |
|
|
222
|
+
| Nothing loads at all | `HERMES_PLUGINS_DEBUG=1 hermes plugins list` for discovery/load logs; `hermes logs --level WARNING \| grep -i plugin` |
|
|
223
|
+
|
|
224
|
+
**Manual fallback** (when even loading fails): delete
|
|
225
|
+
`~/.hermes/plugins/photon-skills/` → `pip uninstall photon-skills` → reinstall
|
|
226
|
+
with A or B → `hermes plugins enable photon-skills`. Project folders are
|
|
227
|
+
unaffected.
|
|
228
|
+
|
|
229
|
+
## Development and releases (maintainers)
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
python scripts/check_plugin_contract.py # contract checks (+ real validator when hermes has it)
|
|
233
|
+
python scripts/release.py --selftest
|
|
234
|
+
python -m pytest tests/ -q
|
|
235
|
+
hermes plugins validate src/photon
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Release flow: write the version on the default branch
|
|
239
|
+
(`python scripts/release.py --set X.Y.Z`), commit, then tag `vX.Y.Z`. CI
|
|
240
|
+
verifies tag = tree before publishing and never rewrites the version. See
|
|
241
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) and
|
|
242
|
+
[docs/design/plugin-distribution.md](docs/design/plugin-distribution.md).
|
|
243
|
+
|
|
244
|
+
> Catalog admission is not available yet: the curated catalog requires a public
|
|
245
|
+
> repository, and this one is private. The current channels are PyPI (public)
|
|
246
|
+
> and git + SHA (schools/collaborators).
|
|
247
|
+
|
|
248
|
+
## Paper and figure demo
|
|
249
|
+
|
|
250
|
+
The academic pack's full deliverable shape: synthetic data → analysis →
|
|
251
|
+
programmatic figures → LaTeX PDF.
|
|
252
|
+
|
|
253
|
+
<p align="center">
|
|
254
|
+
<a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">
|
|
255
|
+
<img src="projects/photocatalytic-dye-kinetics-study/paper/main-preview.png" alt="English science paper preview" width="540">
|
|
256
|
+
</a><br>
|
|
257
|
+
<sub><a href="projects/photocatalytic-dye-kinetics-study/paper/main.pdf">Read the PDF</a></sub>
|
|
258
|
+
</p>
|
|
259
|
+
|
|
260
|
+
## License
|
|
261
|
+
|
|
262
|
+
MIT — see [LICENSE](LICENSE). Author: Uniterra Solutions Ltd; original
|
|
263
|
+
Light-skills author: Light0305.
|