// SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: 2026 SubLang International // // Generated by slc (DR-014): the registry entry exposing the compiled // playbook to `playbook run`. Derived deterministically from the compiled // bundle; recompiling regenerates it. `requiredRoleIds` are the canonical // lowercase local role ids the compiled machine's delegated states name // (DR-024). import createPlaybookRuntime, { validateOptions as linkedValidateOptions } from './release-notes.playbook/release-notes.playbook.ts'; type FactoryInput = NonNullable[0]>; type RuntimeOptions = FactoryInput['configuredOptions']; type HostCapabilities = FactoryInput['hostCapabilities']; const REQUIRED_ROLE_IDS: readonly string[] = ['writer', 'reviewer']; const validateOptions: (value: unknown) => RuntimeOptions = linkedValidateOptions; const entry = { id: 'release-notes', command: 'release-notes', intent: 'Release Notes — When a milestone build is ready, the account lead names the milestone — a tag, or a commit range — and this playbook writes the client-facing release notes, has them reviewed against the commits, and commits them only once the account lead approves. The account lead is Boss; the request naming the milestone is the caller input. No step before the approval writes a file or commits: every draft travels as text in the Writer\'s reply, and only the final Writer step writes RELEASE-NOTES.md and makes the one commit. There are at most two review rounds.', artifactSchema: 3, runtimeProfile: Object.freeze({ kind: 'shared-factory', compat: createPlaybookRuntime.compat, }), concurrentRoleSets: [] as readonly (readonly string[])[], requiredRoleIds: [...REQUIRED_ROLE_IDS], validateOptions, createRuntime(options: { captainOptions?: unknown }, hostCapabilities: HostCapabilities) { const validated = validateOptions(options.captainOptions); return createPlaybookRuntime({ configuredOptions: validated, hostCapabilities, }); }, }; export default entry;