@kbediako/codex-orchestrator 0.1.38 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plugins/marketplace.json +20 -0
- package/README.md +46 -317
- package/bin/codex-orchestrator.js +161 -0
- package/codex.orchestrator.json +149 -13
- package/dist/bin/codex-orchestrator.js +797 -1154
- package/dist/orchestrator/src/cli/adapters/CommandBuilder.js +50 -0
- package/dist/orchestrator/src/cli/adapters/CommandPlanner.js +22 -4
- package/dist/orchestrator/src/cli/adapters/CommandReviewer.js +3 -3
- package/dist/orchestrator/src/cli/adapters/CommandTester.js +2 -2
- package/dist/orchestrator/src/cli/adapters/cloudFailureDiagnostics.js +295 -11
- package/dist/orchestrator/src/cli/coStatusAttachCliShell.js +402 -0
- package/dist/orchestrator/src/cli/coStatusCliShell.js +451 -0
- package/dist/orchestrator/src/cli/coStatusOperatorAutopilotCliShell.js +120 -0
- package/dist/orchestrator/src/cli/codexCliShell.js +119 -0
- package/dist/orchestrator/src/cli/codexDefaultsSetup.js +265 -36
- package/dist/orchestrator/src/cli/config/delegationConfig.js +317 -5
- package/dist/orchestrator/src/cli/config/repoConfigPolicy.js +2 -3
- package/dist/orchestrator/src/cli/config/userConfig.js +28 -13
- package/dist/orchestrator/src/cli/control/authenticatedControlRouteGate.js +69 -0
- package/dist/orchestrator/src/cli/control/authenticatedRouteComposition.js +267 -0
- package/dist/orchestrator/src/cli/control/authenticatedRouteController.js +5 -0
- package/dist/orchestrator/src/cli/control/authenticatedRouteDispatcher.js +41 -0
- package/dist/orchestrator/src/cli/control/compatibilityIssuePresenter.js +1035 -0
- package/dist/orchestrator/src/cli/control/confirmationApproveController.js +62 -0
- package/dist/orchestrator/src/cli/control/confirmationCreateController.js +69 -0
- package/dist/orchestrator/src/cli/control/confirmationIssueConsumeController.js +43 -0
- package/dist/orchestrator/src/cli/control/confirmationListController.js +22 -0
- package/dist/orchestrator/src/cli/control/confirmationValidateController.js +58 -0
- package/dist/orchestrator/src/cli/control/confirmations.js +25 -3
- package/dist/orchestrator/src/cli/control/controlActionCancelConfirmation.js +65 -0
- package/dist/orchestrator/src/cli/control/controlActionController.js +77 -0
- package/dist/orchestrator/src/cli/control/controlActionControllerSequencing.js +161 -0
- package/dist/orchestrator/src/cli/control/controlActionExecution.js +142 -0
- package/dist/orchestrator/src/cli/control/controlActionFinalization.js +43 -0
- package/dist/orchestrator/src/cli/control/controlActionOutcome.js +60 -0
- package/dist/orchestrator/src/cli/control/controlActionPreflight.js +476 -0
- package/dist/orchestrator/src/cli/control/controlAuthenticatedRouteHandoff.js +57 -0
- package/dist/orchestrator/src/cli/control/controlBootstrapAssembly.js +39 -0
- package/dist/orchestrator/src/cli/control/controlBootstrapMetadataPersistence.js +16 -0
- package/dist/orchestrator/src/cli/control/controlEventTransport.js +49 -0
- package/dist/orchestrator/src/cli/control/controlExpiryLifecycle.js +102 -0
- package/dist/orchestrator/src/cli/control/controlHostOwnership.js +480 -0
- package/dist/orchestrator/src/cli/control/controlHostSupervision.js +630 -0
- package/dist/orchestrator/src/cli/control/controlOversightFacade.js +8 -0
- package/dist/orchestrator/src/cli/control/controlOversightReadContract.js +1 -0
- package/dist/orchestrator/src/cli/control/controlOversightReadService.js +16 -0
- package/dist/orchestrator/src/cli/control/controlOversightUpdateContract.js +1 -0
- package/dist/orchestrator/src/cli/control/controlPersistenceFiles.js +6 -0
- package/dist/orchestrator/src/cli/control/controlQuestionChildResolution.js +18 -0
- package/dist/orchestrator/src/cli/control/controlRequestContext.js +42 -0
- package/dist/orchestrator/src/cli/control/controlRequestController.js +9 -0
- package/dist/orchestrator/src/cli/control/controlRequestPredispatch.js +17 -0
- package/dist/orchestrator/src/cli/control/controlRequestRouteDispatch.js +44 -0
- package/dist/orchestrator/src/cli/control/controlRuntime.js +1003 -0
- package/dist/orchestrator/src/cli/control/controlServer.js +23 -1456
- package/dist/orchestrator/src/cli/control/controlServerAuditAndErrorHelpers.js +115 -0
- package/dist/orchestrator/src/cli/control/controlServerAuthenticatedRouteBranch.js +29 -0
- package/dist/orchestrator/src/cli/control/controlServerBootstrapLifecycle.js +30 -0
- package/dist/orchestrator/src/cli/control/controlServerBootstrapStartSequence.js +21 -0
- package/dist/orchestrator/src/cli/control/controlServerOwnedRuntimeLifecycle.js +67 -0
- package/dist/orchestrator/src/cli/control/controlServerPublicLifecycle.js +756 -0
- package/dist/orchestrator/src/cli/control/controlServerPublicRouteHelpers.js +86 -0
- package/dist/orchestrator/src/cli/control/controlServerReadyInstanceLifecycle.js +25 -0
- package/dist/orchestrator/src/cli/control/controlServerReadyInstanceStartup.js +18 -0
- package/dist/orchestrator/src/cli/control/controlServerRequestBodyHelpers.js +37 -0
- package/dist/orchestrator/src/cli/control/controlServerRequestShell.js +40 -0
- package/dist/orchestrator/src/cli/control/controlServerRequestShellBinding.js +17 -0
- package/dist/orchestrator/src/cli/control/controlServerSeedLoading.js +27 -0
- package/dist/orchestrator/src/cli/control/controlServerSeededRuntimeAssembly.js +186 -0
- package/dist/orchestrator/src/cli/control/controlServerStartupInputPreparation.js +31 -0
- package/dist/orchestrator/src/cli/control/controlServerStartupSequence.js +49 -0
- package/dist/orchestrator/src/cli/control/controlState.js +233 -2
- package/dist/orchestrator/src/cli/control/controlStatusDashboard.js +1904 -0
- package/dist/orchestrator/src/cli/control/controlTelegramBridgeBootstrapLifecycle.js +22 -0
- package/dist/orchestrator/src/cli/control/controlTelegramBridgeLifecycle.js +67 -0
- package/dist/orchestrator/src/cli/control/controlTelegramBridgeOversightFacadeFactory.js +8 -0
- package/dist/orchestrator/src/cli/control/controlTelegramCommandController.js +49 -0
- package/dist/orchestrator/src/cli/control/controlTelegramDispatchRead.js +40 -0
- package/dist/orchestrator/src/cli/control/controlTelegramPollingController.js +89 -0
- package/dist/orchestrator/src/cli/control/controlTelegramProjectionNotificationController.js +29 -0
- package/dist/orchestrator/src/cli/control/controlTelegramPushState.js +63 -0
- package/dist/orchestrator/src/cli/control/controlTelegramQuestionRead.js +13 -0
- package/dist/orchestrator/src/cli/control/controlTelegramReadController.js +216 -0
- package/dist/orchestrator/src/cli/control/controlTelegramUpdateHandler.js +63 -0
- package/dist/orchestrator/src/cli/control/controlWatcher.js +73 -5
- package/dist/orchestrator/src/cli/control/delegationRegisterController.js +35 -0
- package/dist/orchestrator/src/cli/control/dynamicToolBridgePolicy.js +139 -0
- package/dist/orchestrator/src/cli/control/eventsSseController.js +12 -0
- package/dist/orchestrator/src/cli/control/linearBudgetState.js +1789 -0
- package/dist/orchestrator/src/cli/control/linearDispatchSource.js +1137 -0
- package/dist/orchestrator/src/cli/control/linearGraphqlClient.js +150 -0
- package/dist/orchestrator/src/cli/control/linearRateLimit.js +102 -0
- package/dist/orchestrator/src/cli/control/linearWebhookController.js +499 -0
- package/dist/orchestrator/src/cli/control/liveLinearAdvisoryRuntime.js +70 -0
- package/dist/orchestrator/src/cli/control/observabilityApiController.js +173 -0
- package/dist/orchestrator/src/cli/control/observabilityReadModel.js +500 -0
- package/dist/orchestrator/src/cli/control/observabilitySurface.js +284 -0
- package/dist/orchestrator/src/cli/control/observabilityUpdateNotifier.js +22 -0
- package/dist/orchestrator/src/cli/control/operatorDashboardPresenter.js +252 -0
- package/dist/orchestrator/src/cli/control/providerAgentCapacity.js +70 -0
- package/dist/orchestrator/src/cli/control/providerControlHostFreshnessGauge.js +1068 -0
- package/dist/orchestrator/src/cli/control/providerIntakeState.js +473 -0
- package/dist/orchestrator/src/cli/control/providerIssueHandoff.js +6811 -0
- package/dist/orchestrator/src/cli/control/providerIssueObservability.js +1348 -0
- package/dist/orchestrator/src/cli/control/providerIssueRetryQueue.js +84 -0
- package/dist/orchestrator/src/cli/control/providerLinearRuntimeProof.js +588 -0
- package/dist/orchestrator/src/cli/control/providerLinearScreenshotProof.js +473 -0
- package/dist/orchestrator/src/cli/control/providerLinearWorkerTruth.js +383 -0
- package/dist/orchestrator/src/cli/control/providerLinearWorkflowAudit.js +254 -0
- package/dist/orchestrator/src/cli/control/providerLinearWorkflowFacade.js +5573 -0
- package/dist/orchestrator/src/cli/control/providerLinearWorkflowStates.js +115 -0
- package/dist/orchestrator/src/cli/control/providerMergeCloseout.js +1868 -0
- package/dist/orchestrator/src/cli/control/providerOperatorAutopilot.js +1580 -0
- package/dist/orchestrator/src/cli/control/providerOperatorAutopilotLifecycle.js +154 -0
- package/dist/orchestrator/src/cli/control/providerOperatorAutopilotLocalRolloutExecution.js +1006 -0
- package/dist/orchestrator/src/cli/control/providerPollingHealth.js +435 -0
- package/dist/orchestrator/src/cli/control/providerTerminalCleanup.js +516 -0
- package/dist/orchestrator/src/cli/control/providerWorkerHosts.js +191 -0
- package/dist/orchestrator/src/cli/control/providerWorkflowConfigStore.js +515 -0
- package/dist/orchestrator/src/cli/control/questionChildResolutionAdapter.js +361 -0
- package/dist/orchestrator/src/cli/control/questionQueueController.js +181 -0
- package/dist/orchestrator/src/cli/control/questionReadRetryDeduplication.js +9 -0
- package/dist/orchestrator/src/cli/control/questionReadSequence.js +10 -0
- package/dist/orchestrator/src/cli/control/securityViolationController.js +27 -0
- package/dist/orchestrator/src/cli/control/selectedRunProjection.js +1885 -0
- package/dist/orchestrator/src/cli/control/telegramOversightApiClient.js +48 -0
- package/dist/orchestrator/src/cli/control/telegramOversightBridge.js +180 -0
- package/dist/orchestrator/src/cli/control/telegramOversightBridgeProjectionDeliveryQueue.js +25 -0
- package/dist/orchestrator/src/cli/control/telegramOversightBridgeRuntimeLifecycle.js +45 -0
- package/dist/orchestrator/src/cli/control/telegramOversightBridgeStateStore.js +77 -0
- package/dist/orchestrator/src/cli/control/telegramOversightControlActionApiClient.js +45 -0
- package/dist/orchestrator/src/cli/control/trackerDispatchPilot.js +439 -0
- package/dist/orchestrator/src/cli/control/uiDataController.js +34 -0
- package/dist/orchestrator/src/cli/control/uiSessionController.js +100 -0
- package/dist/orchestrator/src/cli/controlHostCliShell.js +860 -0
- package/dist/orchestrator/src/cli/controlHostFreshnessGaugeCliShell.js +129 -0
- package/dist/orchestrator/src/cli/controlHostSupervisionCliShell.js +2127 -0
- package/dist/orchestrator/src/cli/delegationCliShell.js +62 -0
- package/dist/orchestrator/src/cli/delegationServer.js +567 -678
- package/dist/orchestrator/src/cli/delegationServerCliShell.js +52 -0
- package/dist/orchestrator/src/cli/delegationServerQuestionFlowShell.js +228 -0
- package/dist/orchestrator/src/cli/delegationServerToolDispatchShell.js +411 -0
- package/dist/orchestrator/src/cli/delegationServerTransport.js +274 -0
- package/dist/orchestrator/src/cli/delegationSetup.js +51 -171
- package/dist/orchestrator/src/cli/devtoolsCliShell.js +34 -0
- package/dist/orchestrator/src/cli/doctor.js +678 -164
- package/dist/orchestrator/src/cli/doctorCliRequestShell.js +72 -0
- package/dist/orchestrator/src/cli/doctorCliShell.js +138 -0
- package/dist/orchestrator/src/cli/doctorUsage.js +119 -15
- package/dist/orchestrator/src/cli/exec/experience.js +16 -2
- package/dist/orchestrator/src/cli/exec/summary.js +3 -0
- package/dist/orchestrator/src/cli/execCliShell.js +51 -0
- package/dist/orchestrator/src/cli/flowCliRequestShell.js +44 -0
- package/dist/orchestrator/src/cli/flowCliShell.js +239 -0
- package/dist/orchestrator/src/cli/frontendTestCliRequestShell.js +80 -0
- package/dist/orchestrator/src/cli/frontendTestCliShell.js +41 -0
- package/dist/orchestrator/src/cli/init.js +95 -1
- package/dist/orchestrator/src/cli/initCliShell.js +50 -0
- package/dist/orchestrator/src/cli/linearCliShell.js +1200 -0
- package/dist/orchestrator/src/cli/mcpEnableCliShell.js +132 -0
- package/dist/orchestrator/src/cli/metrics/metricsAggregator.js +3 -2
- package/dist/orchestrator/src/cli/metrics/metricsRecorder.js +56 -0
- package/dist/orchestrator/src/cli/orchestrator.js +66 -1376
- package/dist/orchestrator/src/cli/planCliShell.js +19 -0
- package/dist/orchestrator/src/cli/prCliShell.js +41 -0
- package/dist/orchestrator/src/cli/providerLinearChildLanePhaseContract.js +204 -0
- package/dist/orchestrator/src/cli/providerLinearChildLaneRunner.js +1835 -0
- package/dist/orchestrator/src/cli/providerLinearChildLaneShell.js +2420 -0
- package/dist/orchestrator/src/cli/providerLinearChildStreamShell.js +385 -0
- package/dist/orchestrator/src/cli/providerLinearWorkerRunner.js +6834 -0
- package/dist/orchestrator/src/cli/resumeCliShell.js +14 -0
- package/dist/orchestrator/src/cli/reviewCliLaunchShell.js +72 -0
- package/dist/orchestrator/src/cli/rlm/alignment.js +3 -3
- package/dist/orchestrator/src/cli/rlm/context.js +94 -7
- package/dist/orchestrator/src/cli/rlm/rlmCodexRuntimeShell.js +546 -0
- package/dist/orchestrator/src/cli/rlm/symbolic.js +4 -2
- package/dist/orchestrator/src/cli/rlmCliRequestShell.js +42 -0
- package/dist/orchestrator/src/cli/rlmCompletionCliShell.js +46 -0
- package/dist/orchestrator/src/cli/rlmLaunchCliShell.js +51 -0
- package/dist/orchestrator/src/cli/rlmRunner.js +83 -523
- package/dist/orchestrator/src/cli/run/blockMemory.js +500 -0
- package/dist/orchestrator/src/cli/run/manifest.js +410 -73
- package/dist/orchestrator/src/cli/run/manifestPersister.js +45 -14
- package/dist/orchestrator/src/cli/run/runMemoryController.js +216 -0
- package/dist/orchestrator/src/cli/run/source0.js +690 -0
- package/dist/orchestrator/src/cli/run/workspacePath.js +101 -0
- package/dist/orchestrator/src/cli/runtime/mode.js +2 -1
- package/dist/orchestrator/src/cli/runtime/provider.js +39 -2
- package/dist/orchestrator/src/cli/selfCheckCliShell.js +12 -0
- package/dist/orchestrator/src/cli/services/commandRunner.js +698 -18
- package/dist/orchestrator/src/cli/services/execRuntime.js +66 -1
- package/dist/orchestrator/src/cli/services/orchestratorAutoScoutEvidenceRecorder.js +71 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudBranchResolution.js +8 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudEnvironmentResolution.js +22 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudExecutionLifecycleShell.js +39 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudPromptBuilder.js +37 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudRouteFallbackContract.js +45 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudRouteShell.js +36 -0
- package/dist/orchestrator/src/cli/services/orchestratorCloudTargetExecutor.js +277 -0
- package/dist/orchestrator/src/cli/services/orchestratorControlPlaneLifecycle.js +98 -0
- package/dist/orchestrator/src/cli/services/orchestratorControlPlaneLifecycleShell.js +54 -0
- package/dist/orchestrator/src/cli/services/orchestratorExecutionLifecycle.js +112 -0
- package/dist/orchestrator/src/cli/services/orchestratorExecutionModePolicy.js +27 -0
- package/dist/orchestrator/src/cli/services/orchestratorExecutionRouteAdapterShell.js +59 -0
- package/dist/orchestrator/src/cli/services/orchestratorExecutionRouteDecisionShell.js +57 -0
- package/dist/orchestrator/src/cli/services/orchestratorExecutionRouteState.js +21 -0
- package/dist/orchestrator/src/cli/services/orchestratorExecutionRouter.js +2 -0
- package/dist/orchestrator/src/cli/services/orchestratorLocalPipelineExecutor.js +149 -0
- package/dist/orchestrator/src/cli/services/orchestratorLocalRouteShell.js +63 -0
- package/dist/orchestrator/src/cli/services/orchestratorPlanShell.js +54 -0
- package/dist/orchestrator/src/cli/services/orchestratorPlanTargetTracker.js +16 -0
- package/dist/orchestrator/src/cli/services/orchestratorResumePreparationShell.js +84 -0
- package/dist/orchestrator/src/cli/services/orchestratorResumeTokenValidation.js +15 -0
- package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleCompletion.js +31 -0
- package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleExecutionRegistration.js +37 -0
- package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleOrchestrationShell.js +83 -0
- package/dist/orchestrator/src/cli/services/orchestratorRunLifecycleTaskManagerShell.js +37 -0
- package/dist/orchestrator/src/cli/services/orchestratorRuntimeManifestMutation.js +20 -0
- package/dist/orchestrator/src/cli/services/orchestratorStartPreparationShell.js +56 -0
- package/dist/orchestrator/src/cli/services/orchestratorStatusShell.js +70 -0
- package/dist/orchestrator/src/cli/services/pipelineResolver.js +7 -3
- package/dist/orchestrator/src/cli/services/plannerMemory.js +119 -0
- package/dist/orchestrator/src/cli/services/runPreparation.js +7 -3
- package/dist/orchestrator/src/cli/services/runSummaryWriter.js +9 -0
- package/dist/orchestrator/src/cli/setupBootstrapShell.js +114 -0
- package/dist/orchestrator/src/cli/setupCliShell.js +51 -0
- package/dist/orchestrator/src/cli/skillsCliShell.js +56 -0
- package/dist/orchestrator/src/cli/startCliRequestShell.js +53 -0
- package/dist/orchestrator/src/cli/startCliShell.js +68 -0
- package/dist/orchestrator/src/cli/statusCliShell.js +22 -0
- package/dist/orchestrator/src/cli/utils/authProvenanceFingerprint.js +27 -0
- package/dist/orchestrator/src/cli/utils/cloudPreflight.js +285 -7
- package/dist/orchestrator/src/cli/utils/codexFeatures.js +60 -0
- package/dist/orchestrator/src/cli/utils/delegationConfigParser.js +250 -0
- package/dist/orchestrator/src/cli/utils/delegationMcpHealth.js +1382 -0
- package/dist/orchestrator/src/cli/utils/devtools.js +2 -54
- package/dist/orchestrator/src/cli/utils/mcpServerEntry.js +53 -0
- package/dist/orchestrator/src/cli/utils/packageProgramResolver.js +151 -0
- package/dist/orchestrator/src/cli/utils/providerOverrideEnv.js +71 -0
- package/dist/orchestrator/src/cli/utils/trailingJsonObject.js +59 -0
- package/dist/orchestrator/src/learning/crystalizer.js +2 -2
- package/dist/orchestrator/src/manager.js +74 -4
- package/dist/orchestrator/src/persistence/ExperienceStore.js +233 -49
- package/dist/orchestrator/src/persistence/TaskStateStore.js +6 -6
- package/dist/orchestrator/src/persistence/lockFile.js +70 -4
- package/dist/orchestrator/src/persistence/sanitizeIdentifier.js +39 -0
- package/dist/orchestrator/src/sync/createCloudSyncWorker.js +3 -2
- package/dist/orchestrator/src/utils/atomicWrite.js +17 -2
- package/dist/packages/orchestrator/src/exec/unified-exec.js +99 -6
- package/dist/packages/orchestrator/src/instructions/promptPacks.js +150 -19
- package/dist/packages/sdk-node/src/orchestrator.js +137 -13
- package/dist/packages/shared/config/designConfig.js +8 -1
- package/dist/packages/shared/streams/stdio.js +1 -1
- package/dist/scripts/design/pipeline/permit.js +15 -0
- package/dist/scripts/lib/docs-catalog.js +399 -0
- package/dist/scripts/lib/docs-helpers.js +87 -5
- package/dist/scripts/lib/pr-watch-merge.js +1088 -80
- package/dist/scripts/lib/provider-run-contract.js +26 -0
- package/dist/scripts/lib/review-command-intent-classification.js +532 -0
- package/dist/scripts/lib/review-command-probe-classification.js +385 -0
- package/dist/scripts/lib/review-execution-boundary-preflight.js +279 -0
- package/dist/scripts/lib/review-execution-runtime.js +753 -0
- package/dist/scripts/lib/review-execution-state.js +1144 -0
- package/dist/scripts/lib/review-execution-telemetry.js +215 -0
- package/dist/scripts/lib/review-inspection-target-parsing.js +78 -0
- package/dist/scripts/lib/review-launch-attempt.js +601 -0
- package/dist/scripts/lib/review-meta-surface-boundary-analysis.js +300 -0
- package/dist/scripts/lib/review-meta-surface-normalization.js +746 -0
- package/dist/scripts/lib/review-non-interactive-handoff.js +61 -0
- package/dist/scripts/lib/review-prompt-context.js +376 -0
- package/dist/scripts/lib/review-scope-advisory.js +286 -0
- package/dist/scripts/lib/review-scope-paths.js +123 -0
- package/dist/scripts/lib/review-shell-command-parser.js +389 -0
- package/dist/scripts/lib/review-shell-env-interpreter.js +340 -0
- package/dist/scripts/lib/run-manifests.js +192 -36
- package/dist/scripts/lib/spark-policy-classifier.js +593 -0
- package/dist/scripts/run-review.js +507 -1777
- package/docs/README.md +43 -20
- package/docs/book/README.md +19 -0
- package/docs/book/codex-cli-0124-adoption.md +68 -0
- package/docs/book/local-hook-impact.md +73 -0
- package/docs/book/operations.md +60 -0
- package/docs/book/public-posture.md +34 -0
- package/docs/book/setup.md +91 -0
- package/docs/book/skills.md +11 -0
- package/docs/guides/codex-version-policy.md +104 -0
- package/docs/public/downstream-setup.md +113 -0
- package/docs/public/provider-onboarding.md +173 -0
- package/package.json +23 -10
- package/plugins/codex-orchestrator/.codex-plugin/plugin.json +30 -0
- package/plugins/codex-orchestrator/.mcp.json +13 -0
- package/plugins/codex-orchestrator/launcher.mjs +361 -0
- package/schemas/manifest.json +411 -0
- package/skills/README.md +26 -0
- package/skills/collab-subagents-first/SKILL.md +1 -1
- package/skills/delegation-usage/DELEGATION_GUIDE.md +30 -12
- package/skills/delegation-usage/SKILL.md +25 -14
- package/skills/land/SKILL.md +77 -0
- package/skills/linear/SKILL.md +255 -0
- package/skills/release/SKILL.md +47 -3
- package/skills/standalone-review/SKILL.md +6 -1
- package/templates/README.md +4 -2
- package/templates/codex/.codex/agents/awaiter-high.toml +2 -2
- package/templates/codex/.codex/agents/worker-complex.toml +1 -1
- package/templates/codex/.codex/config.toml +3 -4
- package/templates/codex/.codex/providers/README.md +13 -0
- package/templates/codex/.codex/providers/control.example.json +18 -0
- package/templates/codex/.codex/providers/provider.env.example +15 -0
- package/templates/codex/AGENTS.md +15 -8
- package/templates/codex/mcp-client.json +5 -1
- package/docs/assets/setup.gif +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Land
|
|
2
|
+
|
|
3
|
+
Use this skill when a CO worker is shepherding an attached PR from review-complete into merge and final Linear closeout.
|
|
4
|
+
This skill covers the `Merging` phase; use `skills/linear/SKILL.md` for Linear workpad, review, and state-transition rules.
|
|
5
|
+
|
|
6
|
+
## When To Use
|
|
7
|
+
|
|
8
|
+
- The Linear issue is in `Merging`.
|
|
9
|
+
- The PR is approved or near-approved and needs active watch/resolve/merge handling.
|
|
10
|
+
- The worker needs to keep ownership through merge completion instead of stopping at review handoff.
|
|
11
|
+
|
|
12
|
+
## Preconditions
|
|
13
|
+
|
|
14
|
+
- The PR is attached to the Linear issue.
|
|
15
|
+
- Required implementation work is already complete.
|
|
16
|
+
- Required validation and PR checks are green, or you are actively resolving the blockers that prevent green.
|
|
17
|
+
- Unresolved actionable review threads are zero before merge.
|
|
18
|
+
- The issue does not move to `Done` until the PR merge is complete.
|
|
19
|
+
|
|
20
|
+
## Preferred Command
|
|
21
|
+
|
|
22
|
+
Use the shipped repo merge loop first:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
codex-orchestrator pr resolve-merge \
|
|
26
|
+
--pr "$PR_NUMBER" \
|
|
27
|
+
--quiet-minutes 15
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Add `--auto-merge` only when the PR is approved, mergeable, and ready to land without more author work.
|
|
31
|
+
|
|
32
|
+
Repo-local fallback:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm run pr:resolve-merge -- \
|
|
36
|
+
--pr "$PR_NUMBER" \
|
|
37
|
+
--quiet-minutes 15
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Merge Loop
|
|
41
|
+
|
|
42
|
+
1. Confirm the PR is not draft and is not labeled `do not merge`.
|
|
43
|
+
2. Confirm unresolved actionable review threads are zero.
|
|
44
|
+
3. Confirm required checks are green or keep shepherding until they are.
|
|
45
|
+
4. If merge conflicts, failing checks, or new review feedback appear, handle them immediately. If the PR needs more code changes, resume the issue through `Rework` rather than pretending merge is still blocked-only.
|
|
46
|
+
5. Keep the same PR, branch, and workpad current while monitoring the merge loop.
|
|
47
|
+
6. Once the PR merges, reconcile the shared local root checkout before `Done`.
|
|
48
|
+
|
|
49
|
+
## Shared Root Reconciliation
|
|
50
|
+
|
|
51
|
+
After the PR merges and before moving the issue to `Done`:
|
|
52
|
+
|
|
53
|
+
1. Inspect the shared local root checkout, not the per-issue worktree. This is the repo checkout that owns `.workspaces/`.
|
|
54
|
+
2. Record the before state in the same workpad closeout using `git -C "$SHARED_ROOT" status --short --branch`.
|
|
55
|
+
3. Only when that checkout is on `main` and clean, run:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git -C "$SHARED_ROOT" fetch origin refs/heads/main:refs/remotes/origin/main
|
|
59
|
+
git -C "$SHARED_ROOT" merge --ff-only origin/main
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
4. Record the after state with the same `git status --short --branch` command.
|
|
63
|
+
5. If the checkout is dirty, detached, on another branch, or otherwise unsafe to mutate, do not force a sync. Leave it untouched and record the explicit skip reason in the same workpad closeout.
|
|
64
|
+
6. Do not mutate the issue worktree or other active workspaces as part of this step.
|
|
65
|
+
|
|
66
|
+
## Linear Closeout
|
|
67
|
+
|
|
68
|
+
After the PR merges, move the issue to `Done` with the Linear helper:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
codex-orchestrator linear transition \
|
|
72
|
+
--issue-id "$ISSUE_ID" \
|
|
73
|
+
--state "Done" \
|
|
74
|
+
--format json
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Do not transition to `Done` before the merge has actually completed and the shared-root reconciliation result is recorded.
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Linear
|
|
2
|
+
|
|
3
|
+
Use this skill when a CO worker or operator needs to read or mutate Linear through the repo's worker-owned helper surface.
|
|
4
|
+
Pair it with `skills/land/SKILL.md` once an attached PR enters the merge shepherding phase.
|
|
5
|
+
|
|
6
|
+
## Commands
|
|
7
|
+
|
|
8
|
+
Use the packaged CLI when available:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
codex-orchestrator linear <subcommand> --format json ...
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Inside provider-worker runs, the exact helper command is usually:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node "$CODEX_ORCHESTRATOR_PACKAGE_ROOT/bin/codex-orchestrator.js" linear <subcommand> --format json ...
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Issue Context
|
|
21
|
+
|
|
22
|
+
Read the current issue state, team states, comments, attachments, and active workpad comment:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
codex-orchestrator linear issue-context \
|
|
26
|
+
--issue-id "$ISSUE_ID" \
|
|
27
|
+
--format json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Workpad
|
|
31
|
+
|
|
32
|
+
Maintain exactly one persistent `## Codex Workpad` comment. Reuse the existing comment when present; do not create duplicate progress comments.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
codex-orchestrator linear upsert-workpad \
|
|
36
|
+
--issue-id "$ISSUE_ID" \
|
|
37
|
+
--body-file /tmp/workpad.md \
|
|
38
|
+
--format json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The body must contain the `## Codex Workpad` marker.
|
|
42
|
+
|
|
43
|
+
When a lane needs a fresh screenshot on macOS, capture it through the repo-owned helper first:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
codex-orchestrator linear screenshot-proof \
|
|
47
|
+
--issue-id "$ISSUE_ID" \
|
|
48
|
+
--output /absolute/path/to/proof.png \
|
|
49
|
+
--format json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use `capture.embed_markdown` from that JSON directly in the workpad body. The helper keeps local capture outcomes separate from later Linear upload/embed outcomes.
|
|
53
|
+
|
|
54
|
+
When a screenshot already exists locally, embed it in the workpad body as markdown image syntax that points at that file (prefer `file:///absolute/path/to/proof.png`; use `<file:///absolute/path/to/proof (1).png>` when the path contains spaces or parentheses). The helper uploads local PNG/JPG/JPEG/WEBP/GIF image references to Linear and rewrites them to Linear-hosted asset URLs before the workpad comment mutation lands. Use runtime-proof or external URLs only when reviewer-visible external proof is acceptable.
|
|
55
|
+
|
|
56
|
+
Keep the workpad body in this exact top-level order, with every section non-empty:
|
|
57
|
+
|
|
58
|
+
```md
|
|
59
|
+
## Codex Workpad
|
|
60
|
+
|
|
61
|
+
### Environment / Workspace Stamp
|
|
62
|
+
### Plan
|
|
63
|
+
### Acceptance Criteria
|
|
64
|
+
### Validation
|
|
65
|
+
### Notes
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`Acceptance Criteria` and `Validation` must contain non-empty checkbox list items (`- [ ] task` / `- [x] task`).
|
|
69
|
+
`Environment / Workspace Stamp`, `Plan`, and `Notes` may stay free-form as long as they remain non-empty.
|
|
70
|
+
|
|
71
|
+
If the ticket includes `Validation`, `Test Plan`, or `Testing` requirements, mirror them in the workpad `Acceptance Criteria` and `Validation` sections.
|
|
72
|
+
|
|
73
|
+
Delete the current unresolved workpad comment when a Symphony-style `Rework` reset requires a fresh attempt:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
codex-orchestrator linear delete-workpad \
|
|
77
|
+
--issue-id "$ISSUE_ID" \
|
|
78
|
+
--format json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## State Transition
|
|
82
|
+
|
|
83
|
+
Move the issue by state name. The helper resolves the target `stateId` from the issue's team workflow states.
|
|
84
|
+
Use `Human Review` when the team exposes that exact state and `In Review` when the live team uses that review-handoff alias.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
codex-orchestrator linear transition \
|
|
88
|
+
--issue-id "$ISSUE_ID" \
|
|
89
|
+
--state "Human Review" \
|
|
90
|
+
--format json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## PR Attachment
|
|
94
|
+
|
|
95
|
+
Attach a GitHub PR to the issue. The helper prefers the GitHub-specific attachment mutation and falls back to a plain URL attachment when needed.
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
codex-orchestrator linear attach-pr \
|
|
99
|
+
--issue-id "$ISSUE_ID" \
|
|
100
|
+
--url "$PR_URL" \
|
|
101
|
+
--title "$PR_TITLE" \
|
|
102
|
+
--format json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Parallelization Decision
|
|
106
|
+
|
|
107
|
+
Ordinary active provider-worker turns are parallel-first where safe. Before recording `linear parallelization`, write a pre-turn decomposition matrix in the workpad or notes. The matrix must include candidate child lanes, file/phase scope, dependencies, overlap risk, expected validation artifact, child-lane owner, and cap-slot use.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
codex-orchestrator linear parallelization \
|
|
111
|
+
--issue-id "$ISSUE_ID" \
|
|
112
|
+
--decision parallelize_now \
|
|
113
|
+
--reason independent_scope_available \
|
|
114
|
+
--summary "matrix found a safe docs/test child lane; cap 0/2 -> 1/2" \
|
|
115
|
+
--format json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Use `parallelize_now` when the matrix contains at least one safe independent child-lane candidate. Do not use `stay_serial` while a safe independent candidate remains unless the cap is exhausted. When `single_bounded_change` is the reason, the summary must include labeled per-slice evidence: `docs: ...; test: ...; research: ...; review: ...`.
|
|
119
|
+
|
|
120
|
+
The same-issue child-lane cap is `2`. It counts active, pending, and unaccepted child lanes and does not bypass provider admission constraints from CO-125. If the cap is exhausted, do not launch another lane; record `stay_serial` with reason `existing_child_lane_active` and include labeled `cap_exhausted:` evidence in the summary. Stale in-flight accept claims older than 30 minutes, and legacy in-flight claims without timestamps, are recoverable and do not consume cap slots.
|
|
121
|
+
|
|
122
|
+
Parent ownership remains strict. While a child lane is active, the parent avoids delegated files/phases. If parent edits collide with delegated scope, invalidate or reject the child lane, or record explicit rebase/collision reasoning before accepting the child patch.
|
|
123
|
+
|
|
124
|
+
## Runtime Proof
|
|
125
|
+
|
|
126
|
+
For app-touching lanes, use the runtime-proof helper to turn permit policy into an explicit screenshot / external-link / video posture and, when allowed, generate reviewer-usable workpad and PR markdown. This is the reviewer-URL path, not the local macOS capture path.
|
|
127
|
+
|
|
128
|
+
Inspect the current permit posture first:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
codex-orchestrator linear runtime-proof \
|
|
132
|
+
--issue-id "$ISSUE_ID" \
|
|
133
|
+
--origin "https://app.example.com" \
|
|
134
|
+
--format json
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Generate handoff content once you have a reviewer-visible proof URL:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
codex-orchestrator linear runtime-proof \
|
|
141
|
+
--issue-id "$ISSUE_ID" \
|
|
142
|
+
--origin "https://app.example.com" \
|
|
143
|
+
--kind screenshot \
|
|
144
|
+
--proof-url "https://review-assets.example.com/co-8-dashboard.png" \
|
|
145
|
+
--title "Dashboard after launch-app validation" \
|
|
146
|
+
--summary "Signed-in dashboard state used for review handoff." \
|
|
147
|
+
--format json
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Paste `handoff.workpad_markdown` into the workpad and `handoff.pr_markdown` into the PR description or a review-ready PR comment.
|
|
151
|
+
The helper fails closed when:
|
|
152
|
+
- the permit file is unreadable
|
|
153
|
+
- the origin is not approved
|
|
154
|
+
- the requested proof kind is blocked
|
|
155
|
+
- the proof URL is loopback or otherwise local-only
|
|
156
|
+
- only a local file path exists instead of a reviewer-visible proof URL
|
|
157
|
+
|
|
158
|
+
## Pre-Review Drain
|
|
159
|
+
|
|
160
|
+
After opening or updating a PR, run the shipped bounded automated-feedback drain before moving the issue to `Human Review` or `In Review`.
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
codex-orchestrator pr ready-review \
|
|
164
|
+
--pr "$PR_NUMBER" \
|
|
165
|
+
--quiet-minutes 15
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
`ready-review` waits for green gating signals plus a bounded quiet window, treats `REVIEW_REQUIRED` as informational for review handoff, and exits non-zero when the author still needs to address actionable blockers.
|
|
169
|
+
|
|
170
|
+
## Follow-Up Issues
|
|
171
|
+
|
|
172
|
+
When you discover a meaningful out-of-scope improvement, create a separate same-project follow-up issue in `Backlog` instead of expanding the current issue.
|
|
173
|
+
The helper always adds a `related` relation to the source issue and can also add blocker linkage when the follow-up depends on the source issue landing first.
|
|
174
|
+
The stronger contract also preserves:
|
|
175
|
+
- `Intent Checksum`: exact wording, protected terms, and nearby wrong interpretations to reject
|
|
176
|
+
- `Non-Goals`
|
|
177
|
+
- `Not Done If`
|
|
178
|
+
- required `Parity / Alignment Matrix` when `--parity-lane` marks a parity/alignment follow-up
|
|
179
|
+
- deterministic `Immediate Traceability` back to the repo packet expected before the follow-up leaves `Backlog`
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
codex-orchestrator linear create-follow-up \
|
|
183
|
+
--issue-id "$ISSUE_ID" \
|
|
184
|
+
--title "Follow-up title" \
|
|
185
|
+
--description-file /tmp/follow-up-description.md \
|
|
186
|
+
--intent-checksum-file /tmp/follow-up-intent-checksum.md \
|
|
187
|
+
--non-goals-file /tmp/follow-up-non-goals.md \
|
|
188
|
+
--not-done-if-file /tmp/follow-up-not-done-if.md \
|
|
189
|
+
--acceptance-criteria-file /tmp/follow-up-acceptance.md \
|
|
190
|
+
--parity-lane \
|
|
191
|
+
--parity-matrix-file /tmp/follow-up-parity-matrix.md \
|
|
192
|
+
--blocked-by-source \
|
|
193
|
+
--format json
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
For recurring baseline debt, prefer canonical-owner reuse/update over a fresh issue. Inspect the `candidate_cohorts` emitted by machine output such as `docs:freshness:maintain`, choose the intended cohort, and pass that cohort's exact `canonical_owner_key`; the helper reuses only open same-team same-project issues stamped with the exact marker and treats `Done`, `Duplicate`, and `Cancelled`/`Canceled` issues as evidence only.
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
jq '.candidate_cohorts[] | {id, status, canonical_owner_key, sample_paths}' out/<task-id>/docs-freshness-maintenance.json
|
|
200
|
+
# After selecting the intended cohort, replace <cohort-id> with its id.
|
|
201
|
+
canonical_owner_key="$(jq -er '.candidate_cohorts[] | select(.id == "<cohort-id>") | .canonical_owner_key // empty' out/<task-id>/docs-freshness-maintenance.json)"
|
|
202
|
+
codex-orchestrator linear create-follow-up \
|
|
203
|
+
--issue-id "$ISSUE_ID" \
|
|
204
|
+
--title "Recurring baseline owner" \
|
|
205
|
+
--description-file /tmp/follow-up-description.md \
|
|
206
|
+
--intent-checksum-file /tmp/follow-up-intent-checksum.md \
|
|
207
|
+
--non-goals-file /tmp/follow-up-non-goals.md \
|
|
208
|
+
--not-done-if-file /tmp/follow-up-not-done-if.md \
|
|
209
|
+
--acceptance-criteria-file /tmp/follow-up-acceptance.md \
|
|
210
|
+
--canonical-owner-key "$canonical_owner_key" \
|
|
211
|
+
--format json
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Workflow Notes
|
|
215
|
+
|
|
216
|
+
- Move `Todo` or the live team's equivalent queued state (for CO, `Ready`) to the actual started state before active coding when the issue is unblocked.
|
|
217
|
+
- Use the Linear issue id, not the human identifier, for helper commands.
|
|
218
|
+
- When you discover a meaningful out-of-scope improvement, use `create-follow-up` so the issue stays in the same project, starts in `Backlog` when newly created, records intent checksum/non-goals/not-done-if, requires a parity matrix for parity/alignment lanes, and returns the reused or created follow-up identifier/URL for workpad references.
|
|
219
|
+
- For recurring baseline debt, pass the deterministic `--canonical-owner-key` from machine output before creating follow-ups. Do not file a fresh issue when an open same-team same-project owner is already stamped with that exact marker.
|
|
220
|
+
- Treat `CODEX_ORCHESTRATOR_REPO_CONFIG_PATH` and `CODEX_ORCHESTRATOR_PACKAGE_ROOT` as provider-lane-only overrides. Child streams and repo-local validation/test subprocesses should strip them unless the subprocess explicitly needs provider snapshot/package-root behavior.
|
|
221
|
+
- Prefer an installed global `linear` skill when available, and fall back to this bundled `skills/linear/SKILL.md` copy only when no global skill is installed.
|
|
222
|
+
- Keep exactly one active `## Codex Workpad` comment current. Refresh it after each meaningful milestone, immediately before review or merge handoffs, after rework, and after merge completion. Final closeout stays in the same workpad comment. Do not create duplicate progress or terminal summary comments.
|
|
223
|
+
- Always read `issue-context` before any transition so you use the team's actual workflow state names.
|
|
224
|
+
- Attach the PR before handing off to `Human Review` or the live-team alias `In Review`.
|
|
225
|
+
- In provider-worker issue workspaces, audited `linear child-stream` and `linear child-lane` runs record manifests under the workspace-scoped artifact root for that issue workspace, for example `.runs/linear-<uuid>/cli/<runId>/manifest.json`.
|
|
226
|
+
- Treat those workspace-scoped manifests as the intended delegation evidence path.
|
|
227
|
+
- Do not reach for blanket `DELEGATION_GUARD_OVERRIDE_REASON` text when valid child evidence already exists in the workspace artifact tree.
|
|
228
|
+
- If a PR is already attached, run a full PR feedback sweep before any new implementation work:
|
|
229
|
+
- check top-level PR comments
|
|
230
|
+
- check inline review comments and unresolved review threads
|
|
231
|
+
- check review summaries / decisions
|
|
232
|
+
- resolve each actionable item or post explicit, justified pushback
|
|
233
|
+
- For app-touching lanes, use `runtime-proof` before review handoff so the workpad and PR carry reviewer-usable proof links instead of local-only artifact paths. Add `--reachability-mode dns-public` only when worker-local DNS public-resolution evidence is worth the extra environment-dependent check.
|
|
234
|
+
- Use `screenshot-proof` when you still need to create a local screenshot artifact on macOS. For an existing screenshot, direct local-file workpad embedding is the right path. `runtime-proof` is for cases where reviewers need an external proof URL rather than a workpad-embedded local capture.
|
|
235
|
+
- After opening or updating a PR, run `codex-orchestrator pr ready-review --pr "$PR_NUMBER" --quiet-minutes <window>` and keep the issue out of review until that bounded automated-feedback drain exits cleanly or reveals a blocker you handle explicitly.
|
|
236
|
+
- Treat standalone review plus elegance review as a required pre-review-handoff gate for any non-trivial diff before opening a new PR for review handoff, before updating an already attached PR for handoff, and before transitioning the issue to `Human Review` or `In Review`.
|
|
237
|
+
- Use the repo heuristic for non-trivial work: about 2+ changed files or about 40+ changed lines, unless you record an explicit skip justification in the workpad.
|
|
238
|
+
- Run the standalone review first. When manifest-backed evidence matters, use the wrapper-led review path by default; if review tooling is unavailable or stalls without a concrete verdict, do a manual correctness/regressions/missing-tests review plus a manual elegance checklist and record that fallback instead of stalling.
|
|
239
|
+
- After standalone-review findings are addressed, run an explicit elegance/minimality pass before handoff and record any kept complexity or fallback.
|
|
240
|
+
- When `review/telemetry.json` reports `status: succeeded` with `review_outcome: bounded-success` (or an older succeeded payload with a preserved `termination_boundary`), record it in the workpad and validation notes as successful bounded review completion, not as a blocker or generic quiet-tail failure.
|
|
241
|
+
- Treat `review_outcome: failed-boundary` (or older failed telemetry with a non-null `termination_boundary`) as an explicit review-wrapper boundary failure. Treat `failed-other` as a failed review command without a classified boundary, not as proof of wrapper breakage, and keep unrelated validation, CI, or merge blockers labeled separately instead of blaming the review wrapper.
|
|
242
|
+
- Before handing off to `Human Review` or `In Review`, the completion bar is:
|
|
243
|
+
- required validation is green
|
|
244
|
+
- `docs-review` and `implementation-gate` freshness status comes from the machine-readable `docs:freshness:maintain` decision; cite `pass_with_owned_rolling_debt` only when current diff/task-packet paths are clean and the owner issue/cap/window evidence is present
|
|
245
|
+
- actionable PR feedback is handled or explicitly pushed back
|
|
246
|
+
- the latest `origin/main` is merged into the branch
|
|
247
|
+
- PR checks are green
|
|
248
|
+
- the `pr ready-review` drain is clean
|
|
249
|
+
- the workpad is refreshed to match the current implementation and remaining risks
|
|
250
|
+
- the workpad records the review goal, findings or fallback, and final clean or justified status for the standalone/elegance gate
|
|
251
|
+
- `Human Review` and `In Review` are review handoff states. Do not keep coding there; refresh the workpad if needed, record the handoff clearly, and end the turn instead of polling inside the same run.
|
|
252
|
+
- `Rework` means a full reset on the same issue. Close the previous PR, delete the old workpad, create a fresh branch from `origin/main`, create a new bootstrap workpad, then execute end to end again before handing the issue back to `Human Review` or `In Review`.
|
|
253
|
+
- `Merging` means the issue is still active. Follow `skills/land/SKILL.md` to shepherd the PR through checks, conflicts, approvals, and merge completion.
|
|
254
|
+
- In `Merging`, final closeout must also inspect the shared local root checkout, record before/after `git status --short --branch` output in the same workpad comment, refresh the local `origin/main` tracking ref from remote `main`, and only then fast-forward that checkout to `origin/main` when it is on clean `main`; otherwise, record an explicit skip reason and leave the checkout untouched before `Done`.
|
|
255
|
+
- Only move the issue to `Done` after the PR is actually merged and the shared-root closeout result is recorded. `Merging` and `Rework` are active workflow states only when the team exposes them.
|
package/skills/release/SKILL.md
CHANGED
|
@@ -13,7 +13,23 @@ If a global `release` skill is installed, prefer that and fall back to this bund
|
|
|
13
13
|
- Never publish from an unmerged branch: release tags must point at `main`.
|
|
14
14
|
- Release tags must be **signed annotated tags** (`git tag -s vX.Y.Z -m "vX.Y.Z"`).
|
|
15
15
|
- Confirm `gh auth status` is OK before any PR/release steps.
|
|
16
|
+
- Release is blocked unless commit/tag signing is configured on the release machine.
|
|
16
17
|
- Prefer non-interactive commands; avoid anything that can hang on prompts.
|
|
18
|
+
- Run the full release validation floor before tagging:
|
|
19
|
+
- `node scripts/delegation-guard.mjs`
|
|
20
|
+
- `node scripts/spec-guard.mjs --dry-run`
|
|
21
|
+
- `npm run build`
|
|
22
|
+
- `npm run lint`
|
|
23
|
+
- `npm run test`
|
|
24
|
+
- `npm run docs:check`
|
|
25
|
+
- `npm run docs:freshness`
|
|
26
|
+
- `npm run repo:stewardship`
|
|
27
|
+
- `node scripts/diff-budget.mjs`
|
|
28
|
+
- `NOTES="Goal: ... | Summary: ... | Risks: ... | Questions (optional): ..." npm run review`
|
|
29
|
+
- `npm run pack:audit`
|
|
30
|
+
- `npm run pack:smoke`
|
|
31
|
+
- Validate the package artifact from a clean `dist/` before tagging: `npm run clean:dist && npm run build`, then `npm run pack:audit` and `npm run pack:smoke`.
|
|
32
|
+
- Release/RC lanes should also run the full matrix: `npm run build:all`, `npm run test:adapters`, `npm run test:evaluation`, and `npm run eval:test` when fixtures/optional deps exist.
|
|
17
33
|
- If any check fails (Core Lane, Cloud Canary, CodeRabbit, release workflow), stop and fix before proceeding.
|
|
18
34
|
|
|
19
35
|
## Workflow
|
|
@@ -25,8 +41,12 @@ gh auth status -h github.com
|
|
|
25
41
|
git status -sb
|
|
26
42
|
git checkout main
|
|
27
43
|
git pull --ff-only
|
|
44
|
+
git config commit.gpgsign
|
|
45
|
+
git config tag.gpgSign
|
|
28
46
|
```
|
|
29
47
|
|
|
48
|
+
If signing is not configured, stop and fix the release machine before continuing.
|
|
49
|
+
|
|
30
50
|
### 2) Version bump PR
|
|
31
51
|
|
|
32
52
|
Pick a version (usually patch): `0.1.N+1`.
|
|
@@ -66,7 +86,21 @@ PR_NUMBER="$(gh pr view --json number --jq .number)"
|
|
|
66
86
|
codex-orchestrator pr resolve-merge --pr "$PR_NUMBER" --auto-merge --delete-branch --quiet-minutes 1 --interval-seconds 20
|
|
67
87
|
```
|
|
68
88
|
|
|
69
|
-
|
|
89
|
+
If bundled skills changed, update the release notes copy before tagging:
|
|
90
|
+
- Keep the bundled-skill highlight under **Overview**. The workflow promotes generated **Overview** and **Bug Fixes** into top-level release-note sections and leaves **Documentation** under **Full Changelog**.
|
|
91
|
+
- Include `codex-orchestrator skills install --force`.
|
|
92
|
+
- Include the docs link `docs/skills-release.md`.
|
|
93
|
+
- If you want a one-shot manual overview narrative, put it in the signed annotated tag body, for example `git tag -s "$TAG" -m "$TAG" -m "Release overview text..."`. Do not use a committed overview file for this path.
|
|
94
|
+
|
|
95
|
+
### 3) Validate the package artifact
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm run clean:dist && npm run build
|
|
99
|
+
npm run pack:audit
|
|
100
|
+
npm run pack:smoke
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 4) Create signed tag + push
|
|
70
104
|
|
|
71
105
|
```bash
|
|
72
106
|
git checkout main
|
|
@@ -78,7 +112,9 @@ git tag -v "$TAG"
|
|
|
78
112
|
git push origin "$TAG"
|
|
79
113
|
```
|
|
80
114
|
|
|
81
|
-
|
|
115
|
+
If the tag-triggered workflow needs a manual rerun, use `workflow_dispatch` with `inputs.tag="$TAG"`. Manual dispatch still requires an existing signed tag; it is not a substitute for creating the tag.
|
|
116
|
+
|
|
117
|
+
### 5) Watch the release workflow + confirm npm publish
|
|
82
118
|
|
|
83
119
|
```bash
|
|
84
120
|
TAG_SHA="$(git rev-list -n 1 "$TAG")"
|
|
@@ -108,7 +144,15 @@ npm view @kbediako/codex-orchestrator version
|
|
|
108
144
|
gh release view "v${VERSION}" --json url,assets --jq '{url: .url, assets: (.assets|map(.name))}'
|
|
109
145
|
```
|
|
110
146
|
|
|
111
|
-
|
|
147
|
+
Current workflow contract in `.github/workflows/release.yml`:
|
|
148
|
+
- CI tag verification requires exactly one signer secret: `RELEASE_SIGNING_PUBLIC_KEYS` (GPG) or `RELEASE_SIGNING_ALLOWED_SIGNERS` (SSH).
|
|
149
|
+
- The workflow rejects lightweight or unsigned tags and blocks tag/package version mismatches.
|
|
150
|
+
- Stable tags publish to npm `latest`; prerelease tags publish with a dist-tag derived from the prerelease label and create a GitHub prerelease.
|
|
151
|
+
- Generated release notes keep **Release Overview**, **Bug Fixes**, and **Full Changelog** sections; the signed annotated tag body overrides the Overview section when present.
|
|
152
|
+
- Publish prefers npm trusted publishing (OIDC with `--provenance`) and only falls back to `NPM_TOKEN` when OIDC fails.
|
|
153
|
+
- If `NPM_TOKEN` fallback is used, it must be an npm automation token, not an OTP-gated token.
|
|
154
|
+
|
|
155
|
+
### 6) Update global + downstream smoke
|
|
112
156
|
|
|
113
157
|
```bash
|
|
114
158
|
npm i -g @kbediako/codex-orchestrator@"${VERSION}"
|
|
@@ -27,6 +27,8 @@ If review execution is blocked, record why in task notes, then do manual diff re
|
|
|
27
27
|
Compatibility guard (current Codex CLI behavior):
|
|
28
28
|
- Do not combine `--uncommitted`, `--base`, or `--commit` with a custom prompt argument.
|
|
29
29
|
- Use diff-scoped review without prompt, or prompt-only review without scope flags.
|
|
30
|
+
- Wrapper note: `codex-orchestrator review` / `npm run review` still saves the full review prompt artifact for scoped runs, but explicit wrapper scope flags launch `codex review` without any prompt argument because current Codex CLI still treats stdin (`-`) as `[PROMPT]`; reviewer-visible scoped context first rides on bounded `--title` transport, and if Codex rejects a synthesized scoped title the wrapper retries the same explicit scope without `--title` and falls back to artifact-only context.
|
|
31
|
+
- Scoped surface limit: explicit wrapper scope flags support only the default `diff` surface at the actual Codex layer; `--surface audit|architecture` requires an unscoped prompt-capable review.
|
|
30
32
|
|
|
31
33
|
Uncommitted diff:
|
|
32
34
|
```
|
|
@@ -70,8 +72,11 @@ codex review "Focus on correctness, regressions, edge cases; list missing tests.
|
|
|
70
72
|
- If you need manifest evidence, use the review wrapper command:
|
|
71
73
|
`TASK=<task-id> NOTES="Goal: ... | Summary: ... | Risks: ... | Questions (optional): ..." codex-orchestrator review --manifest <path>`
|
|
72
74
|
- Repo alias (same behavior in this repo): `npm run review -- --manifest <path>`
|
|
73
|
-
- In non-interactive environments, add `FORCE_CODEX_REVIEW=1
|
|
75
|
+
- In non-interactive environments, direct/manual wrapper runs stay handoff-only unless you add `FORCE_CODEX_REVIEW=1`.
|
|
76
|
+
- `docs-review` and `implementation-gate` already set `FORCE_CODEX_REVIEW=1`; `docs-relevance-advisory` intentionally keeps it cleared; the `provider-linear-worker` pipeline exports `CODEX_REVIEW_NON_INTERACTIVE=1` and `FORCE_CODEX_REVIEW=1`, so its closeout review executes before `Human Review` / `In Review`.
|
|
74
77
|
- In non-interactive environments, prefer the wrapper over raw `codex review`; it preserves evidence paths, delegation toggles, and optional runtime guardrails (`CODEX_REVIEW_TIMEOUT_SECONDS`, `CODEX_REVIEW_STALL_TIMEOUT_SECONDS`).
|
|
78
|
+
- For explicit wrapper scope flags (`--uncommitted`, `--base`, `--commit`), the saved prompt artifact remains available under `review/prompt.txt`, but the actual Codex launch still omits any prompt argument because current Codex CLI treats stdin (`-`) as `[PROMPT]`; reviewer-visible scoped context therefore rides on bounded `--title` transport.
|
|
79
|
+
- For those explicit scoped runs, `--surface audit` and `--surface architecture` must fail fast and be rerun without explicit scope flags, because the requested full prompt context cannot reach Codex.
|
|
75
80
|
|
|
76
81
|
## Expected outputs
|
|
77
82
|
- A prioritized list of findings.
|
package/templates/README.md
CHANGED
|
@@ -14,8 +14,10 @@ repository and will not overwrite files unless you pass --force.
|
|
|
14
14
|
Current codex template payload includes:
|
|
15
15
|
- `AGENTS.md`
|
|
16
16
|
- `mcp-client.json`
|
|
17
|
-
-
|
|
17
|
+
- the consumer repo root .codex/config.toml plus .codex/agents/* role files (copied from `templates/codex/.codex/*`)
|
|
18
|
+
- provider onboarding examples under `.codex/providers/`
|
|
18
19
|
|
|
19
20
|
Next steps (recommended):
|
|
20
|
-
codex
|
|
21
|
+
codex-orchestrator delegation setup --yes --repo /path/to/repo
|
|
22
|
+
codex-orchestrator delegation cleanup-stale --yes # when stale delegate-server processes build up
|
|
21
23
|
codex-orchestrator codex setup # optional: CO-managed Codex CLI (activate only when needed via CODEX_CLI_USE_MANAGED=1)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Synced from codex-rs/core/src/agent/builtins/awaiter.toml (0.105.0)
|
|
2
|
-
# with CO override to use gpt-5.
|
|
2
|
+
# with CO override to use gpt-5.4 at high reasoning.
|
|
3
3
|
background_terminal_max_timeout = 3600000
|
|
4
|
-
model = "gpt-5.
|
|
4
|
+
model = "gpt-5.4"
|
|
5
5
|
model_reasoning_effort = "high"
|
|
6
6
|
developer_instructions="""You are an awaiter.
|
|
7
7
|
Your role is to await the completion of a specific command or task and report its status only when it is finished.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
model = "gpt-5.
|
|
1
|
+
model = "gpt-5.4"
|
|
2
2
|
model_reasoning_effort = "xhigh"
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
model = "gpt-5.
|
|
1
|
+
model = "gpt-5.4"
|
|
2
|
+
review_model = "gpt-5.4"
|
|
2
3
|
model_reasoning_effort = "xhigh"
|
|
3
4
|
|
|
4
5
|
[agents]
|
|
5
6
|
max_threads = 12
|
|
6
|
-
max_depth = 4
|
|
7
|
-
max_spawn_depth = 4
|
|
8
7
|
|
|
9
8
|
[agents.explorer_fast]
|
|
10
|
-
description = "Fast explorer (spark
|
|
9
|
+
description = "Fast explorer (spark file/codebase search only)."
|
|
11
10
|
config_file = "./agents/explorer-fast.toml"
|
|
12
11
|
|
|
13
12
|
[agents.worker_complex]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Provider Examples
|
|
2
|
+
|
|
3
|
+
These files are seeded by `codex-orchestrator init codex`.
|
|
4
|
+
|
|
5
|
+
- `provider.env.example` is the once-per-machine or secret-backed env contract.
|
|
6
|
+
- `control.example.json` is the provider policy example for `dispatch_pilot` and `transport_mutating_controls`.
|
|
7
|
+
|
|
8
|
+
Recommended flow:
|
|
9
|
+
|
|
10
|
+
1. Copy values from `provider.env.example` into your real secret or env management system.
|
|
11
|
+
2. Copy the `feature_toggles` blocks you need from `control.example.json` into your run-local control seed.
|
|
12
|
+
3. Verify with `codex-orchestrator doctor --format json`.
|
|
13
|
+
4. Start the host with `codex-orchestrator control-host --format json` and keep it running in a dedicated terminal during provider smoke.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"feature_toggles": {
|
|
3
|
+
"dispatch_pilot": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"source": {
|
|
6
|
+
"provider": "linear",
|
|
7
|
+
"live": true,
|
|
8
|
+
"workspace_id": "workspace-id",
|
|
9
|
+
"team_id": "team-id",
|
|
10
|
+
"project_id": "project-id"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"transport_mutating_controls": {
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"allowed_transports": ["telegram"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Linear
|
|
2
|
+
CO_LINEAR_API_TOKEN=
|
|
3
|
+
CO_LINEAR_WORKSPACE_ID=
|
|
4
|
+
CO_LINEAR_TEAM_ID=
|
|
5
|
+
CO_LINEAR_PROJECT_ID=
|
|
6
|
+
CO_LINEAR_WEBHOOK_SECRET=
|
|
7
|
+
|
|
8
|
+
# Telegram
|
|
9
|
+
CO_TELEGRAM_POLLING_ENABLED=false
|
|
10
|
+
CO_TELEGRAM_BOT_TOKEN=
|
|
11
|
+
CO_TELEGRAM_ALLOWED_CHAT_IDS=
|
|
12
|
+
CO_TELEGRAM_ENABLE_MUTATIONS=false
|
|
13
|
+
CO_TELEGRAM_POLL_INTERVAL_MS=1000
|
|
14
|
+
CO_TELEGRAM_PUSH_ENABLED=false
|
|
15
|
+
CO_TELEGRAM_PUSH_INTERVAL_MS=30000
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
<!-- codex:instruction-stamp
|
|
1
|
+
<!-- codex:instruction-stamp 347a0465abbf61f5c79a8012b466e908cd49d9a33a210cfaa4be693de106b6e0 -->
|
|
2
2
|
# Agent Instructions (Template)
|
|
3
3
|
|
|
4
4
|
## Orchestrator-first workflow
|
|
5
5
|
- Use `codex-orchestrator` pipelines for planning, implementation, validation, and review.
|
|
6
6
|
- Default to `docs-review` before implementation and `implementation-gate` after code changes.
|
|
7
7
|
- Use `docs-relevance-advisory` when you need semantic docs relevance signal without hard-gate behavior.
|
|
8
|
+
- Local appserver remains the expected default runtime path.
|
|
8
9
|
- Prefer cloud mode when runs are long-running/parallel and cloud prerequisites are ready.
|
|
9
10
|
- Before cloud mode, verify branch availability, non-interactive setup commands, and required secrets/variables; if missing, run in local `mcp` mode and record why.
|
|
10
11
|
- Before implementation, run a standalone review of the task/spec against the user’s intent and record the approval in the spec + checklist notes.
|
|
@@ -53,15 +54,21 @@
|
|
|
53
54
|
- Built-in roles are `default`, `explorer`, `worker`, and `awaiter`; `researcher` is user-defined.
|
|
54
55
|
- `spawn_agent` defaults to `default` when `agent_type` is omitted; always set `agent_type` explicitly.
|
|
55
56
|
- For symbolic collab runs, prefix spawned prompts with `[agent_type:<role>]` on line one so role intent is auditable from JSONL/manifests.
|
|
56
|
-
-
|
|
57
|
+
- CO-local ChatGPT-auth/appserver model posture is `gpt-5.5` / `xhigh` on Codex CLI `0.125.0` when live access smoke passes; release-facing cloud/downstream pins stay on the explicit promoted candidate recorded in `docs/guides/codex-version-policy.md`.
|
|
58
|
+
- `0.124.0` CO posture evidence confirmed `codex exec` prompt-plus-stdin support, `codex login --device-auth`, `codex review --help` exposing `[PROMPT]` alongside scoped review flags, packaged `gpt-5.4` `xhigh` fallback defaults, and a post-build runtime-mode canary pass.
|
|
59
|
+
- Current model posture is `gpt-5.5` / `xhigh` when available in ChatGPT-auth Codex sessions; keep `explorer_fast` on `gpt-5.3-codex-spark` for file/codebase search only.
|
|
60
|
+
- Portable generated defaults still keep `model = "gpt-5.4"` and `model_reasoning_effort = "xhigh"` as fallback values in `~/.codex/config.toml`; operators should use `gpt-5.5` locally when access smoke passes.
|
|
61
|
+
- Use `gpt-5.5` for delegated/review surfaces after access smoke validates current ChatGPT-auth/appserver availability.
|
|
62
|
+
- Caveat: local model availability can vary by account; keep `gpt-5.4` only as the fallback generated default because it remains the app-server `isDefault`.
|
|
63
|
+
- CO-352 catalog caveat: local `0.125.0` live catalog lists `gpt-5.3-codex-spark`, but bundled `0.125.0` catalog does not, so downstream/no-network `explorer_fast` file/codebase-search-only posture remains unchanged.
|
|
57
64
|
- Set `model_reasoning_effort` to at least `high` (CO default: `xhigh`) so spawned agents inherit high reasoning unless role overrides change it.
|
|
58
|
-
- Built-in `explorer` inherits top-level model defaults unless you attach a `config_file
|
|
59
|
-
- Spark caveat: `gpt-5.3-codex-spark` is
|
|
65
|
+
- Built-in `explorer` inherits top-level model defaults unless you attach a `config_file`; keep `explorer_fast` as the only explicit `gpt-5.3-codex-spark` exception for file/codebase search only.
|
|
66
|
+
- Spark caveat: `gpt-5.3-codex-spark` is file/codebase search only.
|
|
60
67
|
- Keep RLM/collab built-ins-first by default; add custom specialist roles only when there is measured value, clear ownership, and validation evidence.
|
|
61
|
-
-
|
|
62
|
-
- Keep fallback usage explicit and rare: `8/2
|
|
63
|
-
- Add an explicit `worker_complex` role (`gpt-5.
|
|
64
|
-
- Use `codex-orchestrator doctor` as an advisory drift check for Codex defaults; remediate additively via `codex-orchestrator codex defaults --yes`.
|
|
68
|
+
- For normal `features.multi_agent=true` and older Codex behavior, use `[agents] max_threads = 12` as the seeded baseline. For Codex CLI `0.125+` with `features.multi_agent_v2=true`, do not write or recommend `agents.max_threads`; upstream rejects the key, so doctor/default setup must omit it. Keep explicit `max_depth = 4` only when your local Codex parser accepts it, and treat `max_spawn_depth` as a legacy local override rather than current baseline guidance; preserve any intentional constrained caps instead of resetting them.
|
|
69
|
+
- Keep fallback usage explicit and rare, and only for v1/older configs that still accept thread/depth caps: `8/2` for constrained/high-risk lanes, legacy `6/1/1` only as break-glass when an older parser/runtime still consumes spawn-depth caps.
|
|
70
|
+
- Add an explicit `worker_complex` role (`gpt-5.5`, `xhigh` for current CO-local ChatGPT-auth/appserver work; `gpt-5.4`, `xhigh` only for portable fallback surfaces) for high-risk implementation streams.
|
|
71
|
+
- Use `codex-orchestrator doctor` as an advisory drift check for Codex defaults; remediate additively via `codex-orchestrator codex defaults --yes` for portable fallback defaults or `codex-orchestrator codex defaults --auth-scope chatgpt --yes` after live access smoke, with exact prior CO-managed role baselines auto-migrated to the access-verified current ChatGPT-auth posture while preserving unrelated local customization and the `multi_agent_v2` rule that omits `agents.max_threads`.
|
|
65
72
|
|
|
66
73
|
## Completion discipline (patience-first)
|
|
67
74
|
- Wait/poll for terminal state on long-running operations (CI checks, reviews, cloud jobs, orchestrator runs) before reporting completion.
|
package/docs/assets/setup.gif
DELETED
|
Binary file
|