Skip to content

Make the feature pipeline stack-agnostic via per-stack profiles

Yegor Cheprasov requested to merge feat/pipeline-stack-profiles into main

modsen-core (1.0.0 → 1.0.1), modsen-kmp (1.0.0 → 1.0.1), modsen-flutter (2.0.0 → 2.0.1)

The pipeline spine was Kotlin/Compose-hardcoded: feature-architect planned in Koin/SerializersModule/MVI terms, feature-developer preloaded compose-screen-architecture, test-planner and test-writer assumed commonTest + kotlin.test + MockEngine, and agent-resolution declared those roles non-escalating — so a Flutter run broke at five phases with no way to swap them.

Introduce a stack profile instead of cloning the spine per technology:

  • modsen-core: references/stack-profile.md defines the contract — stack detection markers, profile resolution, the STATE.md fields, how the profile is passed to a spine agent, the no-profile fallback, and the 11 items a profile must cover. Phase 0 of /feature and /bugfix resolves it; every spine phase passes it on.
  • modsen-kmp / modsen-flutter: kmp-pipeline-profile and flutter-pipeline-profile carry the layer vocabulary, the architecture-plan stack sections, the area→skill table, the presentation pattern, the design mapping, test location and framework, verification steps, escalation targets and the finalizer checklist.
  • The spine agents lose their stack specifics and load the profile first; architect, test-planner and test-writer gain the Skill tool for it.
  • agent-resolution: spine roles specialise by profile rather than by agent swap; the stale "test-run has no closure" gap is replaced by the stack layers' own test-runner agents.

Gates, complexity bands, checkpoints and commit discipline stay in a single copy in feature-pipeline, so a new stack is one profile file, not another spine.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

Merge request reports