You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[] Task 2: Identify extension points in current DevRail architecture (AC: 1, 4, 5)
33
-
-[] 2.1 Map Makefile extension points: how `_lint`, `_format`, `_test`, `_security`, `_fix` iterate over languages; where a plugin could register a new language block
34
-
-[] 2.2 Map Dockerfile extension points: how tools are installed; options for extending (multi-stage COPY, sidecar containers, volume mounts, runtime install)
35
-
-[] 2.3 Map `.devrail.yml` extension points: how the schema could accept plugin-defined languages; per-language override mechanism
36
-
-[] 2.4 Map pre-commit extension points: how `.pre-commit-config.yaml` includes external repos; how plugins could register hooks
37
-
-[] 2.5 Map CI pipeline extension points: how GitHub Actions/GitLab CI could include plugin-defined jobs
38
-
-[] 2.6 Map `devrail init` extension points: how the init script could discover and scaffold plugin config
-[] 3.2 Define **Makefile integration pattern**: how plugins register language blocks in `_lint`/`_format`/`_test`/`_security` without modifying the core Makefile (options: include files, dynamic target generation, plugin directory scanning)
43
-
-[] 3.3 Define **container integration pattern**: how plugins add tools to the image (options: extending base image, sidecar container, volume-mounted binaries, runtime install via plugin script)
44
-
-[] 3.4 Define **`.devrail.yml` extension mechanism**: how `languages:`accepts plugin-defined entries; how per-language overrides work for plugin languages
45
-
-[] 3.5 Define **`make check` aggregation**: how plugin check results are collected and included in the composite pass/fail decision
46
-
-[] 3.6 Define **plugin versioning and distribution**: how plugins are versioned, discovered, and installed (options: git repos, registry, directory convention)
-[] 4.1 **Option A: Extended image**-- Dockerfile `FROM ghcr.io/devrail-dev/dev-toolchain:v1` + plugin install. Pros: simple, single container. Cons: rebuild per-project, no standard distribution.
50
-
-[] 4.2 **Option B: Sidecar containers**-- Plugin tools run in separate containers alongside dev-toolchain. Pros: isolation, independent versioning. Cons: complex orchestration, shared filesystem issues.
51
-
-[] 4.3 **Option C: Volume-mounted plugins**-- Plugin binaries mounted into dev-toolchain container at runtime. Pros: no image rebuild. Cons: host dependency, platform compatibility.
52
-
-[] 4.4 **Option D: Runtime install**-- `make check` runs plugin install script inside container before execution. Pros: zero build step. Cons: slow first run, network dependency.
53
-
-[] 4.5 **Recommendation**: Evaluate each against DevRail's core constraints (single container, reproducible, CI-compatible, fast) and recommend the winning approach with rationale
- **AC4** (`make check` still aggregates) — covered in *Make-Check Aggregation* (plugin results join existing `ran_languages`/`failed_languages`/JSON summary)
176
+
- **AC5** (compatible with container toolchain) — covered in *Container Integration* with four strategies evaluated; Option A (extended image) recommended
177
+
- **AC6** (example walkthrough) — covered in *Example Walkthrough — An Elixir Plugin* (5 steps from authoring to upgrade)
178
+
- **AC7** (design merged to planning-artifacts) — file lives in `_bmad-output/planning-artifacts/plugin-architecture-design.md`; story moved to `review` status pending acceptance
0 commit comments