Skip to content

Add local IDE deployment artifact generation - #24

Merged
JTNing merged 38 commits into
mvpfrom
feature/local-ide-artifacts-generation
Jul 27, 2026
Merged

Add local IDE deployment artifact generation#24
JTNing merged 38 commits into
mvpfrom
feature/local-ide-artifacts-generation

Conversation

@JTNing

@JTNing JTNing commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add an export-time deployment-mode axis for local Docker and local IDE development.
  • Generate an IDE-focused package with a deterministic IntelliJ run configuration, semantic Spring profile ordering, feature-model overlay loading, demo placeholder defaults, and developer instructions.
  • Add deployment-target selection to the review page and a one-command demo startup script for the local Docker package.

Branch scope

This branch builds on feature/automated-feature-extraction. Extraction-related changes visible in the diff against mvp are inherited; the deployment-mode and local IDE artifact changes above are the functionality introduced by this branch.

JTNing added 30 commits July 16, 2026 04:34
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.
@JTNing
JTNing merged commit 917c14f into mvp Jul 27, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant