feat(lifecycle): fine-type CAM/monocarpic/photoperiodic phase sequences with attribute resolver (#616)#670
Merged
nolte-portfolio-app[bot] merged 1 commit intoJul 19, 2026
Conversation
…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>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 1 of Epic #565 left the CAM-succulent and monocarpic cohorts on the generic
evergreen_foliage_perennial/indoor_defaultsequences. This gives the succulent/bromeliad/photoperiodic-ornamental/geophyte cohorts their biologically precise phase-sequence models, seeded from the pre-formulatedspec/analysis/seed-phase-sequence-audit.md§6 drafts, plus an attribute-driven resolver. Also fulfils Workstream 3 of tracking issue #611.Changes
cam_succulent_rest,cam_double_rest,clonal_monocarp,photoperiodic_ornamentalwithcritical_day_length_hours: 12,palm_evergreen,fern_spore,geophyte_fine) + 15 new phase_definitions intophase_sequences.yaml(schema-valid, DE+EN).resolve_phase_sequence_name(precedenceflowering_strategy → photosynthesis_type → photoperiod_type → growth_habit → cycle_type), wired intolink_indoor_species_to_phase_sequencebefore theindoor_defaultblanket 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 existingHAS_PHASE_SEQUENCEedges offindoor_default/evergreen_foliage_perennialonto 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
ruffPASS,phase_sequences.yamlschema validation PASS, discovery + v0027 migration + resolver tests 40/40; broad-k "phase_sequence or seed or migration or resolver"532 passed.Risk / rollout notes
evergreen_foliage_perennial+ 3 phase_definitions already existed (v0022) → reused, not duplicated (hence 7 sequences / 15 defs). Cannabis sativa excluded fromphotoperiodic_ornamental— it is an annual harvest crop and the perennial/non-harvest short-day sequence would break its harvest flow (resolver gates short-day induction to perennials).Anemone hupehensis/Allium cepa/sativumexcluded because WP-8/v0024 already binds them precisely. All migration AQL parametrized. Remaining Tracking: implement seed↔phase-sequence audit (#586) end-to-end — specs, Steckbriefe, seed data + master-data-capture quality sweep #611 workstreams (spec detail, audit close-out, Steckbrief sweep) tracked separately.🤖 Generated with Claude Code