feat(linkedin-studio): SB-S3a — wire strategy-advisor as first brain/profile.md reader [skip-docs]
The second brain now feeds generation: strategy-advisor reads brain/profile.md as evidence-to-test (anti-sycophancy default, graceful absence on fresh installs). First end-to-end proof of capture → consolidate → read-back-into-generation. - agents/strategy-advisor.md: brain/profile.md added to Step 0 Load Context + a consumption subsection (Static/Dynamic layers, evidence_count/last_seen weighting, anti-sycophancy counter-pressure, silent degrade when the file is absent). - scripts/test-runner.sh: new Section 16d (Brain Profile Reader) — 2 UNCONDITIONAL checks (non-vacuity self-test with legacy-path/lowercase decoy + exact-literal wiring grep on strategy-advisor.md), ASSERT_BASELINE_FLOOR 78→80, header enumeration extended. Gate 93→95/0/0; brain floor 82 untouched. - docs/second-brain/consolidation-loop.md: reconciled the stale "no reader yet" honest-limit to the true partial state (one reader; broader consumption deferred). TDD: RED (only the wiring grep failed, exit 1) → GREEN (95/0/0). READ-only — the brain consolidate --apply --confirm gate stays the sole writer. SC4 (graceful absence) verified by inspection; SC5 (read-back) deferred to a reloaded session (honest — agent prompts load at session start). S3a scope held: one reader, no parser, no id-threading. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RigJBiRFNtFZKCz21qNbQ4
This commit is contained in:
parent
fbfbf71cdd
commit
4fa411f13c
3 changed files with 76 additions and 6 deletions
|
|
@ -44,10 +44,24 @@ ${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/audience-insights/engagem
|
|||
${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/examples/high-engagement-posts.md → proven patterns from top posts
|
||||
${CLAUDE_PLUGIN_ROOT}/references/trajectory-strategy-adjustments.md → trajectory-to-action mappings
|
||||
~/.claude/linkedin-studio.local.md → user state + posting history
|
||||
${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/brain/profile.md → evolving second-brain profile (consolidated, evidence-weighted facts about the user)
|
||||
```
|
||||
|
||||
Use demographics data to compare the user's **intended** audience vs **actual** engagers when making strategic recommendations.
|
||||
|
||||
### Consuming the evolving profile (brain/profile.md)
|
||||
|
||||
The second-brain profile is a consolidated, evidence-weighted picture of the user, grown over time by the brain motor (mutated ONLY via `brain consolidate --apply --confirm` — you never write it). It has two layers:
|
||||
|
||||
- **`## Static`** — stable, high-confidence facts about the user.
|
||||
- **`## Dynamic`** — emerging facts still accruing evidence.
|
||||
|
||||
Each fact line carries `evidence_count` and `last_seen`. Weight by strength and recency: a higher `evidence_count` and a more recent `last_seen` are a stronger, fresher signal than a thin or stale one.
|
||||
|
||||
**Anti-sycophancy (binding):** Treat every profile fact as **evidence to TEST**, not flattery — counter-pressure it against the analytics and state each time you use it (e.g. *the profile says you lean toward X, but your recent imports show Y — test that before recommending*). The profile informs your recommendations; it never dictates them and never flatters the user.
|
||||
|
||||
**Graceful absence:** If `brain/profile.md` is missing or empty (fresh installs have no brain yet), proceed silently on the other context sources — no error, and no note about a missing profile.
|
||||
|
||||
### New Creator Advantage Detection
|
||||
|
||||
From the state file, extract `first_post_date`. Calculate the creator window status:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue