Add local IDE deployment artifact generation - #24
Merged
Conversation
…les and usage evidence
…m and opt-in smoke run
Slim the authored guided-workflow.json to decision structure and teacher prose: remove option requiresCapabilities and artifactImpacts, the dead option consequences and decision reviewGroupId, the hand-pinned featureModelId and featureModelVersion, and review group featureIds. A new GuidedWorkflowAssembler repopulates the removed wiring from the active feature model at serve time, so the served DTO keeps its shape: capabilities become the union of the selected features' requirements, artifact impacts restate toggle mappings, review group members are the referenced group node children, and the model pin is stamped from the active model. CapabilityResolutionService sources feature capabilities from the model only, and review groups are validated by group node reference instead of copied member lists.
Add a warning channel next to the hard integrity checks: a new GuidedWorkflowDiagnosticsService surfaces selectable functional features without guided coverage, model groups without a review group, capability ids no known deployment profile provides, template select/deselect conflicts, a default template that presets selections, and scaffold TODO prose. Findings are logged by the guided workflow serve path and by the profile availability path and never fail a request; hard reference errors keep throwing. The same finding logic is reused by the extraction pipeline in the generated-model validation.
…ifest Re-include the deferred technical candidates as the first technical features: database with mysql xor postgresql, ci-provider with integrated-code-lifecycle xor jenkins, and the mandatory localvc baseline, all maintainer-only. The manifest schema gains the generation semantics code cannot express: category, default state, relation order, declared artifact-mapping hints mirroring the curated mapping shapes, alternative group types for xor groups, and a constraints section that declares apollon-requires-modeling and the two exclusivity constraints. The loader validates the new fields statically and the curation step carries them into the resolved scope.
Add the E3 generation stage to the extraction pipeline. The assembler turns include entries and conceptual nodes into a complete feature model through the same domain records the bundled model uses: manifest-ordered hierarchy, i18n names with manifest overrides, kind and category based role defaults, auto-derived enabled-key mappings plus declared hints, anchor-grade evidence references, and deterministic depth-first output. The catalog assembler regenerates the config-key catalog from the overlay mappings and scanned YAML defaults and diffs it against the curated catalog. The validator reuses the shared model and guided workflow integrity services, enforces the technical role-visibility rule, cross-checks provided capabilities against the bundled profile, and reports guided coverage findings with an automation status. The diff service classifies every generated-versus-curated difference as intentional-curation, missing-manifest-entry, artemis-drift, or extractor-gap. The writer emits the four new outputs plus an importable snapshot folder, and the catalog domain records no longer serialize derived accessors or null optionals so the generated JSON keeps the curated schema shape.
…tion with tests StaticConfigValidationService keeps the curated classpath catalog as its default but gains a catalog-location property, so a maintainer can point static validation at a regenerated catalog from the extraction output explicitly. Add the generation-stage unit tests: assembler hierarchy, kind defaults, mapping derivation, evidence merging and ordering on fixtures, catalog regeneration with type derivation and diff, validator rules for role visibility, capability cross-check, hard workflow errors and coverage findings, diff classification per class, and loader coverage for the new manifest fields.
Add an opt-in end-to-end proof on the real checkout: run the full generation pipeline, import the produced snapshot folder through the snapshot subsystem, activate it, and spot-check API parity between the curated and the generated model on the curated intersection. The generated snapshot serves every curated feature with matching defaults, its own default selection validates against the mandatory and xor constraints, the served guided workflow carries identical derived wiring, guided option availability is unchanged, and every technical feature stays outside the teacher surface. The smoke test counts follow the technical include entries.
Add the explicitly invoked syncGuidedWorkflowScaffold Gradle task that keeps the authored guided workflow structurally in sync with the manifest include set while never touching prose: a newly included functional feature gains a stub option with filled wiring and TODO prose in the decision covering its model group plus a derived review group entry, an orphan reference is flagged but never deleted, and a single id rename is rewritten mechanically across all reference lists. The writer reproduces the authored file style byte-identically on a no-change run, which the round-trip test pins, and the current bundled workflow syncs with zero changes. The task stays outside the automatic drift scan because it writes to a curated resource.
…lity in project overview
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
Branch scope
This branch builds on
feature/automated-feature-extraction. Extraction-related changes visible in the diff againstmvpare inherited; the deployment-mode and local IDE artifact changes above are the functionality introduced by this branch.