Skip to content

feat(lifecycle): fine-type CAM/monocarpic/photoperiodic phase sequences with attribute resolver (#616)#670

Merged
nolte-portfolio-app[bot] merged 1 commit into
developfrom
feat/616-phase-sequence-fine-typing
Jul 19, 2026
Merged

feat(lifecycle): fine-type CAM/monocarpic/photoperiodic phase sequences with attribute resolver (#616)#670
nolte-portfolio-app[bot] merged 1 commit into
developfrom
feat/616-phase-sequence-fine-typing

Conversation

@nolte

@nolte nolte commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

Phase 1 of Epic #565 left the CAM-succulent and monocarpic cohorts on the generic evergreen_foliage_perennial/indoor_default sequences. This gives the succulent/bromeliad/photoperiodic-ornamental/geophyte cohorts their biologically precise phase-sequence models, seeded from the pre-formulated spec/analysis/seed-phase-sequence-audit.md §6 drafts, plus an attribute-driven resolver. Also fulfils Workstream 3 of tracking issue #611.

Changes

  • Seeded 7 new phase_sequences (cam_succulent_rest, cam_double_rest, clonal_monocarp, photoperiodic_ornamental with critical_day_length_hours: 12, palm_evergreen, fern_spore, geophyte_fine) + 15 new phase_definitions into phase_sequences.yaml (schema-valid, DE+EN).
  • New attribute-driven resolver resolve_phase_sequence_name (precedence flowering_strategy → photosynthesis_type → photoperiod_type → growth_habit → cycle_type), wired into link_indoor_species_to_phase_sequence before the indoor_default blanket fallback, and re-run at the end of the reconcile step so fresh installs bind in one boot.
  • v0027_finetype_cam_monocarp_photoperiodic_sequences.py: idempotent, dry-run-safe rebind migration re-homing existing HAS_PHASE_SEQUENCE edges off indoor_default/evergreen_foliage_perennial onto the resolved target (scope-guarded to not clobber the precise WP-8 bindings). REQ-003 changelog bump.

Linked issues

Closes #616 · advances #611 (WS3)

Testing

  • ruff PASS, phase_sequences.yaml schema validation PASS, discovery + v0027 migration + resolver tests 40/40; broad -k "phase_sequence or seed or migration or resolver" 532 passed.

Risk / rollout notes

🤖 Generated with Claude Code

…es with attribute resolver (#616)

Seed the biologically precise phase-sequence templates (REQ-003 D9-D12,
audit #576) for the indoor cohorts that Epic #565 Phase 1 left on the
generic evergreen_foliage_perennial / indoor_default blankets: CAM
succulent single/double rest, clonal-monocarp (Kindel) continuation,
photoperiodic-ornamental short-day induction, and palm/fern/geophyte.

Add 15 phase_definitions + 7 phase_sequences to phase_sequences.yaml
(evergreen_foliage_perennial already existed). Replace the blanket link
with an attribute-driven resolver (flowering_strategy -> photosynthesis_type
-> photoperiod_type -> growth_habit -> cycle_type) that runs before the
indoor_default last-resort fallback; short-day induction is gated to
perennials so annual cannabis keeps its harvest flow. Additive, idempotent
rebind migration v0025 (provisional number) re-points existing installs off
the blanket sequences, guarded against clobbering the WP-8 outdoor bindings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@nolte nolte added automerge Allow automatic Merge. enhancement New functionality. backend labels Jul 19, 2026
@boring-cyborg boring-cyborg Bot added the spec Touches files under `spec/`. label Jul 19, 2026
@nolte-portfolio-app
nolte-portfolio-app Bot merged commit 7ae0e41 into develop Jul 19, 2026
18 of 19 checks passed
@nolte-portfolio-app
nolte-portfolio-app Bot deleted the feat/616-phase-sequence-fine-typing branch July 19, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge Allow automatic Merge. backend enhancement New functionality. spec Touches files under `spec/`.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(lifecycle): CAM double-rest & monocarpic-kindel phase-sequence fine-typing (REQ-003 D9–D12)

1 participant