Conversation
On client work the caller id is the seller's, so a prompt keyed on the caller gave a client's content the house's Blogger brief and the seller's 30-day plan and post voice. A turn is client work when it carries faceOf or sellerSweep (content_for); there the Blogger gets the client's brief (blogger_brief_is_house) and the seller's plan stays out (seller_plan_in_prompt). Content: what the seller said about this client, else the client's profile and plan, else neutral. Tests: 18 of 18 pass (t27c test-report); 0 of 18 vacuous; negative control (content_for without seller_sweep) turns one test red. Closes #5892 phi^2 + 1/phi^2 = 3 | TRINITY Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-10-04 05:19:34 UTC
Summary
Seal Status
|
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
…name on client work Two of the house's marks still reached client work after v6. A StoryReel rendered for a client with no end card, or a card short of a colour, stood on the house's card (gold on black, a green button): the composition fills whatever is missing with it. On client work her colours are kept, a missing one is the neutral ink or ground that reads against hers, and a call with no card stands on the neutral card -- settled before the twin lookup and the charge (story_card_from, STORY_CARD_*, NEUTRAL_CARD_DARK / NEUTRAL_CARD_LIGHT). The prompt told the model on every turn that the bot in speech is the house's; on client work that line is not said (bot_named_in_speech). VERSION stays 6: the v6 note is extended (same day, same PR, unmerged). Tests: 20 of 20 pass (t27c test-report); 0 of 20 vacuous (validate-vacuity over this spec alone). Negative controls: story_card_from returning AS_GIVEN for her card, and bot_named_in_speech returning true, each turn exactly one test red. Refs #5892 phi^2 + 1/phi^2 = 3 | TRINITY Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR DashboardGenerated at: 2026-10-04 08:07:37 UTC
Summary
Seal Status
|
PR DashboardGenerated at: 2026-10-04 09:59:07 UTC
Summary
Seal Status
|
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Closes #5892
What
specs/automation/crm-client-workspace.t27v6: client work carries the client's marks.The owner, 2026-10-03, on a client's reel that ended with his call to action: why does it make my CTA and not the client's?
On client work the caller id is the seller's. A prompt keyed on the caller therefore gave a client's content the house's Blogger brief (the house blog, the house offer and the house triptych). It also gave it the seller's 30-day plan and post voice.
What v6 adds
content_for(face_of, seller_sweep): a turn is client work when it carries either mark, never because of the caller id.blogger_brief_is_house(client_work): on client work the Blogger gets the client's brief.seller_plan_in_prompt(seller_soul, client_work): the seller's plan and post voice go only into his own turns. His SOUL still speaks the words sent in his name (SELLER_SOUL_SPEAKS_HIS_OWN_WORDS).CLIENT_CONTENT_FROM: what the seller said about this client, else the client's profile and plan, else a neutral default.VERSIONis 6, with a matching header note.Review round 2 (head
1219feb0a)The host review found two more house marks on client work. Both are now rules in this spec.
story_card_from(client_work, card_given, call_given)decides which end card a client's story reel stands on (CLIENT_STORYREEL_NO_HOUSE_PALETTE):STORY_CARD_HERS: her own card, with missing colours completed from the neutral pair.STORY_CARD_NEUTRAL: a call with no card gets the neutral card.STORY_CARD_NONE: neither gives no card.STORY_CARD_AS_GIVEN: the seller's own work goes as given.NEUTRAL_CARD_DARK#1f1f1fandNEUTRAL_CARD_LIGHT#f5f5f5. It is never the house palette.bot_named_in_speech(client_work): the prompt names the house bot only on the seller's own turns (CLIENT_PROMPT_NO_HOUSE_BOT_NAME).Review round 3 (head
a682d9e5b)The host review refused round 2. The rule fired only on a turn carrying a client mark,
face_oforseller_sweep. A reel ordered through the CRM template carries neither: the seller presses,crm_story_reelruns, or she presses herself. The job runs as its payer. So doesstory_reelcalled withfor_leadfrom the seller's own thread. On all of these roads her reel still went out on the house card.v6 now decides the card by whose reel it is. VERSION stays 6, and the v6 header note is extended.
reel_is_clients(client_turn, lead_named, lead_is_seller, lead_is_payer) -> client_turn || (lead_named && !lead_is_seller). A reel about a lead who is not the seller is hers, whoever pays. On her own press she is the payer, so whether the lead is the payer is passed in and must change nothing.CLIENT_REEL_ISandCLIENT_REEL_ROUTESname the roads: the client mark, the seller's CRM press,crm_story_reel, her own press, andstory_reelwithfor_lead.CLIENT_REEL_BY_PAYERisfalse: who pays never decides whose reel it is.Checks
t27c test-report: 21 of 21 pass.tri spec-check ... --seal: 21 of 21 tests, 0 of 21 vacuous, 22 of 22 controls go red on their mutation. The controls live in the host filecrm-client-workspace.controls.json.031fa8478618826d1ce886daecaa20225aab34b3026dea771ae2ac1ddbee20e9. The seal records 21 of 21 tests. It was written with a t27c built after fix(seal): seal --save runs the spec's tests and refuses on FAIL (refs #5577) #5605, because older builds drop thetestsblock.docs/now/2026-10-04-crm-client-workspace-v6-a-client-s-reel-on-every-road.mdis included.t27c test-report20 of 20, sealed at094798669699aed8baa07fa53964bed949e8086990aad1f849f522e7e035f491.seller_sweepwas dropped. After merging master7943bc412,sync --checkandmutants --checkpassed.spec-guardsis red on this PR and on master (e7ccf9e5d,aca71b57f,17779ec77) for the same reason: ring-090 disagrees withspecs/fpga/simulator.t27. It does not involve this spec.Host binding
gHashTag/999-multibots-telegraf#3569, branch
fix/house-marks-audit-wave-2.chat.ts:marketplaceAgentPrompt,systemPrompt,runAgent, andbotNamedInSpeech/systemFor.client-work.ts:onClientWork, plusreelIsClients, which mirrorsreel_is_clients.story-template.ts: the story job marks its turnclientReelfrom lead versus seller, never from the payer.story-reel-tool.ts:ctx.clientReel ?? reelIsClients(...), passed on toreel_render. AlsostoryCardFrom,clientStoryCardandclientStoryReelProps.tools.ts:reel_renderfills her card when the turn has a client mark orclientReel. The fill runs before the fingerprint, the twin lookup and the charge.render/src/spec/crm-client-workspace.t27is byte-identical to this PR's heada682d9e5b(sha256031fa847…20e9).crm-client-workspace.test.ts, 21 of 21.check-t27-specs.mjsreturns rc 0 and reports 19 specs bound with every law holding.crm_story_reel, throughstory_reel, toreel_render.The host PR carries the house-marks classification table. That table records an open question for the owner: should the farm's catalogue and the farm's bots count as house marks? The shared detector (crm-story-reel
HOUSE_MARKS) does not read them today.🤖 Generated with Claude Code