feat(linkedin-studio): brain Stage 1 finish — title/description + pending-diff typed [skip-docs]

Completes the linkedin-studio in-scope Stage 1 (docs/okf-convergence-brief.md):
- serializeProfile + operations.md seed gain the cheap recommended OKF fields
  `title` + `description` (timestamp/resource intentionally omitted — a timestamp
  would break the pure/deterministic serializer; resource is N/A internally).
- renderDiffMd leads the transient pending-diff.md with `type: PendingDiff`, so
  the brain/ bundle passes okf-check even mid-propose.

Verified: 2 new tests (okf-conform + consolidate-cli); full brain suite 134/134
(0 regressions); cross-tool — okr/scripts/okf-check.mjs validates brain/ exit 0
WITH a pending-diff present.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011vmzxpsFpc8q19LaogAWLD
This commit is contained in:
Kjell Tore Guttormsen 2026-06-26 21:02:26 +02:00
commit e9e183ebb0
5 changed files with 28 additions and 1 deletions

View file

@ -249,7 +249,7 @@ function runReconcile(_flags: Record<string, string>): void {
}
function renderDiffMd(diff: ProfileDiff): string {
const lines = ["# Pending profile diff", "", "> Operator-gated. Review, then `brain consolidate --apply --diff brain/pending-diff.json --confirm`.", ""];
const lines = ["---", "type: PendingDiff", "---", "", "# Pending profile diff", "", "> Operator-gated. Review, then `brain consolidate --apply --diff brain/pending-diff.json --confirm`.", ""];
const section = (title: string, items: string[]) => {
lines.push(`## ${title} (${items.length})`, "");
for (const i of items) lines.push(`- ${i}`);

View file

@ -46,6 +46,8 @@ export function serializeProfile(doc: ProfileDoc): string {
const lines: string[] = [
"---",
"type: Profile",
"title: Profile",
"description: Two-layer semantic profile (static and dynamic) - the distilled who-you-are.",
"---",
"",
"# Profile",

View file

@ -54,6 +54,8 @@ okf_version: 0.1
function operationsSeed(): string {
return `---
type: Operations
title: Operations
description: Plans, ideas, and the current-direction anchor - the operations centre.
---
# Operations