docs(platform): design compass devenv source unify + CI devenv-CLI DRY (RIG-2546) - #602
Open
rigel-mintaka wants to merge 1 commit into
Open
docs(platform): design compass devenv source unify + CI devenv-CLI DRY (RIG-2546)#602rigel-mintaka wants to merge 1 commit into
rigel-mintaka wants to merge 1 commit into
Conversation
|
Compass engineering docs preview: https://dependencies-rig-2546-devenv.compass-eng-docs.pages.dev Deployed from Changed pages: |
rigel-mintaka
force-pushed
the
dependencies/rig-2546-devenv-design
branch
2 times, most recently
from
August 25, 2026 16:29
b610ebb to
3db6de7
Compare
…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
force-pushed
the
dependencies/rig-2546-devenv-design
branch
from
August 25, 2026 16:46
3db6de7 to
681a562
Compare
rigel-mintaka
marked this pull request as ready for review
August 25, 2026 16:47
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.
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 updatedecouples 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