Roadmap item 6: Add the inactive alternative profile assembly (Codex CLI producer) - #247
Merged
Merged
Conversation
…CLI producer) What: adds profiles/alternative/v1/ — a second six-role profile that is the default team with one swap. The producer is the Codex CLI harness instead of Claude Code: its manifest points at adapters/codex-cli-producer/v1/normalize.jq at the durable main commit that carries it, and its binding asks for the openai provider, the codex.gpt-5 model, and pins profiles/alternative/v1/producer-config.json by Git object. The other five manifests (CI, forge, publisher, reviewer, verifier) are the default ones byte for byte. The producer keeps its own principal.codex-producer and boundary.codex-producer so protected roles stay separated. A new focused suite mirrors the default one and also asserts the two profiles differ only in the producer binding and the profile id. README, RESTORE, and ci/required-files.txt record the new block. Why: item 6 asks for a second harness under the same core contract. Until a profile actually binds the Codex CLI producer payload, nothing proves one core contract can drive either harness. This is the wiring that proves it. This is source data only. The profile is inactive: it selects nothing, is not resolved, qualified, installed, or activated, grants no authority, and cannot invoke a model, use a credential, contact a provider, publish, or touch a target. GitLab stays an observation payload, the same way the GitHub forge does. Proof (run on this tree before commit): - /opt/homebrew/bin/shellcheck -x -S style scripts/test/alternative-profile-assembly.test.sh — clean (shellcheck 0.11.0) - bash scripts/test/alternative-profile-assembly.test.sh — alternative profile assembly: 10 focused checks passed - bash scripts/test/default-profile-assembly.test.sh — default profile assembly: 7 focused checks passed - bash scripts/check-rename.sh — clean, no old names in tracked files Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Deploying ystack with
|
| Latest commit: |
8dc8bd5
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://252f1319.fabrica-6yx.pages.dev |
| Branch Preview URL: | https://ystack-roadmap-6-alternative-6kxc.fabrica-6yx.pages.dev |
…rnative-profile-assembly-v1
Owner
Author
Codex reviewer (cross-vendor, read-only)Reviewed-head: 8dc8bd5 Posted verbatim by I did not identify any discrete correctness, security, or maintainability issues introduced by this diff. The new inactive alternative profile data and focused test are consistent with the existing default profile assembly patterns. |
yihanzhu
deleted the
ystack/roadmap-6/alternative-profile-assembly-v1
branch
September 6, 2026 15:44
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.
Assembles the alternative profile: the same six-role team as the default profile with one swap, the Codex CLI producer (openai provider) in place of Claude Code. Its producer manifest points at
adapters/codex-cli-producer/v1/normalize.jqat the durable main commit that carries it, and the producer binding pinsprofiles/alternative/v1/producer-config.json(#246) by Git object. The other five manifests are byte-identical copies of the default ones. This is the item 6 wiring that shows one core contract drives either harness.The profile is inactive and selects nothing: not resolved, qualified, installed, or activated; grants no authority; invokes no model, credential, provider, publisher, or target. GitLab remains an observation payload like the GitHub forge.
Review-size note: 525 net lines, of which 467 are the focused suite mirroring
default-profile-assembly.test.sh(resolution through the inactive resolver, exact Git identities of every ref against origin/main, the producer manifest contract, end-to-end normalization of changed and unchanged Codex CLI snapshots, and a diff assertion that the only differences from the default profile are the producer binding and the profile id).Proof run on 0de1d55:
bash scripts/test/alternative-profile-assembly.test.sh(10/10) andbash scripts/test/default-profile-assembly.test.sh(7/7)shellcheck -x -S style scripts/test/alternative-profile-assembly.test.sh(ShellCheck 0.11.0)bash scripts/test/portable-core-schema.test.sh→ failures: 0bash scripts/check-rename.sh; required-files structure check, each path listed onceConstruction mode: inactive output, no human gate.
🤖 Generated with Claude Code