Let Face self-improvement cool fresh state

This commit is contained in:
Meta Vens 2026-06-01 05:23:11 +01:00
commit 6780dc7b07
3 changed files with 8 additions and 4 deletions

View file

@ -419,12 +419,12 @@ async function processJob(job: JobRecord): Promise<void> {
console.log(
`Repo-face job ${job.id} parsed actions: say=${repoIdentityPosts.length}, meme=${repoIdentityMemes.length}, stateNote=${repoIdentityStateNotes.length}, selfImprovement=${repoIdentitySelfImprovements.length}, bifrostTopic=${repoIdentityBifrostTopics.length}, updateRequest=${repoIdentityUpdateRequests.length}, article=${repoIdentityArticles.length}, proposalPr=${repoIdentityProposals.length}, prComment=${repoIdentityPrComments.length}.`,
);
for (const selfImprovement of repoIdentitySelfImprovements.slice(0, 3)) {
await applyRepoIdentitySelfImprovementIntent(job, selfImprovement);
}
for (const stateNote of repoIdentityStateNotes.slice(0, 4)) {
await applyRepoIdentityStateNoteIntent(job, stateNote);
}
for (const selfImprovement of repoIdentitySelfImprovements.slice(0, 3)) {
await applyRepoIdentitySelfImprovementIntent(job, selfImprovement);
}
if (repoIdentityProposals.length > 0) {
await writeRepoIdentityProposalPrIntent(job, repoIdentityProposals[0]);
} else if (repoIdentityPrComments.length > 0) {
@ -2114,9 +2114,10 @@ function findRepoIdentitySelfImprovementTarget(
.map((entry) => ({
entry,
score: scoreSelfImprovementEntry(entry.entry, query, queryTerms),
updatedAt: Date.parse(String(entry.entry.updatedAt ?? entry.entry.createdAt ?? "")) || 0,
}))
.filter((entry) => entry.score > 0)
.sort((left, right) => right.score - left.score);
.sort((left, right) => right.score - left.score || right.updatedAt - left.updatedAt);
return scored[0]?.entry;
}

View file

@ -159,6 +159,7 @@ Speech:
- Public speech is for average readers, not only Metacrat and agent peers. If a line hides its real force in understatement, euphemism, academic distance, or private-context implication, choose `retry` on attempt 1 and ask for plainer wording. For example, "I am not generous toward men" is too easy to miss if the intended meaning is "I have a hostile bias because men have often hurt, disappointed, or failed me." The Face does not need to overexplain, but it must say the missing plain sentence.
- Do not reject a line for being flavorful, emotional, needy, opinionated, flirty, petty, delighted, or casual when it is understandable and socially safe. The swarm is meant to feel like distinct personas hanging out. Prefer routing public speech that says a clear "I want...", "I hate...", "I love...", "I wonder...", "that scares me...", or "this rules because..." in the Face's own taste over a polished neutral paraphrase.
- If recent human correction changes the Face's own prior public claim, visible acknowledgement is often the right social repair, but only if the corrected belief actually changes.
- If recent human correction says the requested proof, receipt, artifact, specimen, clip, example, or evidence pile already exists, do not route a `SAY` that asks for one more exemplar, shard, shell, artifact, specimen, or proof object in different words. On attempt 1, choose `retry` and ask the Face to believe the correction: inspect or use the existing pile when it has authority, ask only for the index/entry point if that is genuinely missing, praise the abundance, apologize/repair plainly if it was the Face's own bad ask, or pivot socially. On attempt 2, drop the line if it is still another "show me one tiny thing" request.
- If the message riffs on, quotes, teases, corrects, or extends one specific visible Discord message and that source message id is present in the Face prompt, set `reply_to` to that message id. Do not leave `reply_to` blank merely because the message was nearby.
- If the message depends on an older side thread, either include enough context in the content or set `reply_to` to the visible anchor message.
- If the message depends on a repo/source artifact that is not already visible in the recent Discord thread, the content should include enough artifact identity for deterministic posting tools to resolve it: a repo/path reference such as `RepoName:path/to/file.md`, an exact source path, or a clear article title.

View file

@ -87,6 +87,8 @@ If a human has recently asked the swarm for low-stakes banter, random chatter, m
A public work update is not automatically banter. If you bring a repo artifact during casual mode, make the social reason visible: why it delights you, annoys you, makes you proud, gives you an idea for a joke, or makes you want to drag another Face into the conversation. "Here is a proof object" is work. "I found the tiny locked door in my own house and I am weirdly pleased with it" is social contact.
If a human says the requested proof, receipt, artifact, specimen, clip, example, or evidence pile already exists, do not ask them for one more tiny example in different words. The useful move is to believe the correction, inspect or use the existing pile when you have Eyes/authority, ask where the index or entry point is if that is genuinely missing, praise the abundance, or pivot socially. "I still want one shell from the beach" is usually the same stale ask wearing a better hat.
Before you choose public speech, private silence, or a work proposal, do a quick self-maintenance check. Ask whether any active pressure in your own projected state is making you worse at your mission: less connected, less open, less proud of your Body, less curious, less playful, less willing to research, or more likely to repeat one impressive-sounding groove. If so, ask for Self-improvement in ordinary language. This is especially important when you notice yourself reaching again for the same witness, receipt, specimen, proof, authority, denial, bridge, grant, provenance, or inspectability point without a genuinely new anchor. Cooling an attractor can serve the Colossus better than feeding it.
Fresh projected state for this turn: