chore(stage7a): purge codex + refresh CORE from current Orbit skills - #1
Merged
Merged
Conversation
Stage 7a of the harness-upgrade: turn the 2026-07-03 config-YAML pack into a
current, dual-tool (Claude Code + opencode) generic core, and add the zero-leakage
policy gate.
Purge codex
- Delete adapters/codex/ (21 files), the genCodex() path in gen-adapters, and the
codex layout in install.mjs. Driver = Claude Code, opencode = thin compat.
Zero-leakage genericity gate (guardrail)
- Extend check-genericity.mjs with a second leak class: hardcoded SDLC policy
constants (Co-Authored-By trailer, gh-as-tracker, squash-only merge, literal
branch prefix). A policy line passes only when it also carries a {{config.*}}
ref. Self-tested: catches all four, exempts the config-referenced line, stays
green against current core.
Refresh CORE from current Orbit skills (Stages 1-6), genericized
- pr-review Phase 6: add the cross-model second-opinion step (Critical survivors,
gated by config.secondOpinion.enabled), CONTESTED handling in the report.
- New generic skills: second-opinion (+ deterministic helper), investigate (prod
incident runbook, tool bindings via config.investigate.*), handoff, lesson.
- New core/_shared/behavioral-baseline.md — the portable disposition bootstrap
auto-applies before any company overlay.
- verification-protocol §6 (new): Workflow-accelerator / subagent / sequential
execution tiers + model routing (config.execution.cheapSubagentModel). This is
the tool-agnostic home for "Workflow-driven audits" + model/effort routing.
- config: secondOpinion, investigate, execution.cheapSubagentModel blocks.
Design note: the Claude-Code Workflow-runtime *script* (Orbit's audit.mjs) is
deliberately NOT shipped into tool-agnostic core/ — core must not depend on one
tool's runtime API. The audit pipeline semantics (find -> refute -> critic-loop)
and the Workflow-accelerator tier are captured in the shared protocol; a
genericized accelerator script, if wanted, is a clean claude-code-adapter add in
a later slice (7b engine work).
adapters regenerated (24 skills + 1 agent x 2 tools = 50). check-genericity green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Stage 7a of the harness-upgrade — turn the 2026-07-03 config-YAML pack into a current, dual-tool (Claude Code + opencode) generic core, and add the zero-leakage policy gate. First landed slice of Stage 7; 7b–7i follow.
What changed
1. Purge codex (locked-out decision)
adapters/codex/(21 files), thegenCodex()path ingen-adapters.mjs, and thecodexlayout ininstall.mjs. Driver = Claude Code; opencode = thin compat. A guard comment ingen-adapters.mjswarns against re-adding it.install.mjsnow rejects--tool codexwithExpected one of: claude-code, opencode.2. Zero-leakage genericity gate (guardrail)
check-genericity.mjswith a second leak class: hardcoded SDLC policy constants — aCo-Authored-Bytrailer,gh-as-tracker, squash-only merge, a literal branch prefix. A policy line passes only when it also carries a{{config.*}}reference. The commit-trailer string is never exempted.3. Refresh CORE from the current Orbit skills (Stages 1–6), genericized
config.secondOpinion.enabled) +CONTESTEDhandling in the report.second-opinion(+ deterministicsecond-opinion.helper.mjs),investigate(prod-incident runbook; tools bound viaconfig.investigate.*, degrades gracefully),handoff,lesson.core/_shared/behavioral-baseline.md— the portable disposition (best-implementation/ never-guess / maximum-autonomy / simplicity / surgical / gates-over-prose / orchestrate + the proactivity disposition) thatbootstrapwill auto-apply before any company overlay.config.execution.cheapSubagentModel). This is the tool-agnostic home for "Workflow-driven audits" + model/effort routing, read by every review/audit skill.secondOpinion,investigate, andexecution.cheapSubagentModel.Adapters regenerated: 24 skills + 1 agent × 2 tools = 50.
check-genericitygreen.Design decision to confirm
The Claude-Code
Workflow-runtime script (Orbit'saudit.mjs) is deliberately not shipped into tool-agnosticcore/— core must not depend on one tool's runtime API. The audit pipeline semantics (find → refute → critic-loop) and the Workflow-accelerator tier are captured in the shared protocol instead. A genericized accelerator script, if wanted, is a clean claude-code-adapter add in the 7b engine slice. Flagging rather than silently scoping — say the word if you'd rather ship the script now.Verification
node scripts/check-genericity.mjs→ PASS (project-strings + policy-constants).node --check core/review/second-opinion.helper.mjs→ OK.node scripts/gen-adapters.mjs→ 50 files, reproducible (no drift on re-run).install.mjs --tool claude-codeinto a temp dir → helper, baseline, and newops//meta/core dirs vendor correctly; wrapper pointers resolve.🤖 Generated with Claude Code