Problem
Governance “system prompt” is split into a mandatory prefix and mandatory suffix. Authors think in one wrap-around policy text; two fields add friction without a clear product win.
Current behaviour
- Schema:
systemPromptConfigSchema with mandatoryPrefixPrompt + mandatorySuffixPrompt (lib/shared/schemas/governance.ts, policy system_prompt).
- Builtin / fixtures:
builtin-configs/governance/system-prompt.json, e2e docs-demo fixture.
- UI:
SystemPromptEditor — two FormSection + textareas; copy keys governance.systemPrompt.prefixLabel|suffixLabel|….
- Runtime:
fetchGovernanceSystemPrompt → prepend prefix / append suffix around agent instructions (governance_prompt.ts, internal_actions.ts, openai-compat path).
- E2E:
governance.spec.ts (systemPromptPrefixField).
Proposed change
- Consolidate to a single system-prompt field in schema, org config, and the governance editor.
- Define apply semantics once (e.g. entire string prepended, or a documented wrap convention) and migrate existing prefix+suffix pairs into that field without dropping content (versioned org-config / data migration as required by
migrations:check).
- Update i18n, docs, and e2e selectors.
Acceptance criteria
Affected service
Platform (web app)
Problem
Governance “system prompt” is split into a mandatory prefix and mandatory suffix. Authors think in one wrap-around policy text; two fields add friction without a clear product win.
Current behaviour
systemPromptConfigSchemawithmandatoryPrefixPrompt+mandatorySuffixPrompt(lib/shared/schemas/governance.ts, policysystem_prompt).builtin-configs/governance/system-prompt.json, e2edocs-demofixture.SystemPromptEditor— twoFormSection+ textareas; copy keysgovernance.systemPrompt.prefixLabel|suffixLabel|….fetchGovernanceSystemPrompt→ prepend prefix / append suffix around agent instructions (governance_prompt.ts,internal_actions.ts, openai-compat path).governance.spec.ts(systemPromptPrefixField).Proposed change
migrations:check).Acceptance criteria
migrations:check/ config gates green.Affected service
Platform (web app)