Skip to content

docs(platform): design compass devenv source unify + CI devenv-CLI DRY (RIG-2546) - #602

Open
rigel-mintaka wants to merge 1 commit into
mainfrom
dependencies/rig-2546-devenv-design
Open

docs(platform): design compass devenv source unify + CI devenv-CLI DRY (RIG-2546)#602
rigel-mintaka wants to merge 1 commit into
mainfrom
dependencies/rig-2546-devenv-design

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Follow-up to RIG-2406 (the minimal unblock, PR #518). The logic that
materializes the devenv CLI from a lockfile is duplicated across CI, and
five executable sites hand-pin the fork rev 15a81f3e instead of resolving
it from a devenv.lock — a live drift hazard: the next devenv update
decouples the CI seed/build/publish (and the agent-image-env-gate that
validates the image) from the lock silently.

Design: extract one dependency-free bun TS tool tools/toolchain/devenv-cli/
(parity-gate pattern: pure core.ts + thin index.ts + core.test.ts) that
resolves the devenv source from a named lock and either prints a flakeref
or a single-binary PATH shim. Both workflows collapse to a call into it;
source-agnostic so it holds under either source-unify outcome.

Record drafted by the design subagent, red-teamed by the design-critic
(six findings folded, including a corrected pin inventory: five executable
pins, not the three first named). Both design forks are ruled by Matt and
recorded as Resolved decisions: RD-1 (unify the root devenv source onto the
fork, Option A, no lock reconciliation, both locks kept Renovate-current via
a lockFileMaintenance follow-up — task T7); RD-2 (full drift-class kill —
convert all five executable hand-pins, T2a, plus a repo-wide literal-rev
gate, T2b); RD-3 (bin-dir mode owns the single-binary PATH shim). The record
freezes Active on this merge.

Ledger-impact: none — RD-1/RD-2/RD-3 are RIG-2546-scoped implementation
decisions fully captured in the record's Resolved-decisions section, not
cross-cutting decisions other records cite by id (compass DECISIONS.md:
"absence of a row is not evidence of no ruling"). Same convention as the
sibling ruled-forks record compass-e2e-mention-split-observation, which
froze with a Resolved-Decisions section and no DL rows.

Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Aug 25, 2026

Copy link
Copy Markdown

RIG-2546

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://dependencies-rig-2546-devenv.compass-eng-docs.pages.dev

Deployed from dependencies/rig-2546-devenv-design at 681a562.

Changed pages:

@rigel-mintaka
rigel-mintaka force-pushed the dependencies/rig-2546-devenv-design branch 2 times, most recently from b610ebb to 3db6de7 Compare August 25, 2026 16:29
…Y (RIG-2546)

Follow-up to RIG-2406 (the minimal unblock, PR #518). The logic that
materializes the devenv CLI from a lockfile is duplicated across CI, and
five executable sites hand-pin the fork rev 15a81f3e instead of resolving
it from a devenv.lock — a live drift hazard: the next `devenv update`
decouples the CI seed/build/publish (and the agent-image-env-gate that
validates the image) from the lock silently.

Design: extract one dependency-free bun TS tool tools/toolchain/devenv-cli/
(parity-gate pattern: pure core.ts + thin index.ts + core.test.ts) that
resolves the devenv source from a named lock and either prints a flakeref
or a single-binary PATH shim. Both workflows collapse to a call into it;
source-agnostic so it holds under either source-unify outcome.

Record drafted by the design subagent, red-teamed by the design-critic
(six findings folded, including a corrected pin inventory: five executable
pins, not the three first named). Both design forks are ruled by Matt and
recorded as Resolved decisions: RD-1 (unify the root devenv source onto the
fork, Option A, no lock reconciliation, both locks kept Renovate-current via
a lockFileMaintenance follow-up — task T7); RD-2 (full drift-class kill —
convert all five executable hand-pins, T2a, plus a repo-wide literal-rev
gate, T2b); RD-3 (bin-dir mode owns the single-binary PATH shim). The record
freezes Active on this merge.

Ledger-impact: none — RD-1/RD-2/RD-3 are RIG-2546-scoped implementation
decisions fully captured in the record's Resolved-decisions section, not
cross-cutting decisions other records cite by id (compass DECISIONS.md:
"absence of a row is not evidence of no ruling"). Same convention as the
sibling ruled-forks record compass-e2e-mention-split-observation, which
froze with a Resolved-Decisions section and no DL rows.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the dependencies/rig-2546-devenv-design branch from 3db6de7 to 681a562 Compare August 25, 2026 16:46
@rigel-mintaka
rigel-mintaka marked this pull request as ready for review August 25, 2026 16:47
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