night: поручение работнику называет его настоящий предел часов, а не восемь
This commit is contained in:
@@ -2,6 +2,11 @@
|
||||
// написан ему, а не машине. Он не видит ни одного модуля затеи: всё, что он о ней знает, —
|
||||
// написано здесь, а разговаривает он с надзирателем только файлами почтового ящика.
|
||||
|
||||
// 🔴 Единственный ввоз в этот файл, и он нарочно узкий: одно число — предел часов работнику
|
||||
// (решение владельца 37). Числа, которые работник читает про себя, не вписываются сюда
|
||||
// словами: вписанное слово переживает отмену числа молча.
|
||||
import { PREDEL_CHASOV_SUTKI } from './limits.mjs';
|
||||
|
||||
// 🔴 Закрытый список из договора о стыках. Менять нельзя ни в одном слове.
|
||||
// 🆕 Долг перед куском 5 (проверка П4): пара «метка + фраза» в одной записи, а не два
|
||||
// отдельных списка в двух файлах. `text` идёт в текст поручения (ниже), `kind` — та же
|
||||
@@ -119,6 +124,12 @@ export function buildWorkerPrompt({
|
||||
// 🆕 Кусок 6: необязательные доводы. Не поданы — текст поручения ПРЕЖНИЙ, слово в слово.
|
||||
resumeFrom = null,
|
||||
assumptionLenta = null,
|
||||
// 🔴 Решение владельца 37 (08.08.2026). Прежде число часов было ВПИСАНО В ТЕКСТ словом
|
||||
// «восемь» — и это самый вредный род спрятанного числа во всей затее: поручение читает сам
|
||||
// работник, и он поверил бы, что у него восемь часов, даже когда предел уже подняли.
|
||||
// Умолчание берётся из `limits.mjs` — из того же места, откуда запасное число берёт
|
||||
// надзиратель, чтобы обещанное работнику и то, по чему его гасят, не разъехались молча.
|
||||
chasovPredel = PREDEL_CHASOV_SUTKI,
|
||||
}) {
|
||||
if (!item?.tests?.length) {
|
||||
throw new Error(`Для пункта ${item?.id ?? '?'} в плане не записано ни одной проверки — закрыть его нельзя, значит и поручать нечего.`);
|
||||
@@ -389,13 +400,17 @@ ${tests}
|
||||
|
||||
## Сколько у тебя времени
|
||||
|
||||
Часов у тебя восемь. Считается только работа: пока ты ждёшь чужую службу или стоишь
|
||||
без дела в ожидании ответа владельца, это время в восемь часов не идёт. Когда восемь часов
|
||||
Часов у тебя ${chasovPredel}. Считается только работа: пока ты ждёшь чужую службу или стоишь
|
||||
без дела в ожидании ответа владельца, это время в твой предел не идёт. Когда ${chasovPredel} ч
|
||||
выйдут, тебя погасят посреди дела — так задумано. Сделанное останется в твоей ветке,
|
||||
и продолжат с последнего закрытого тобой пункта.
|
||||
|
||||
Ещё одно: **в 8 утра по Москве гасят всех, кто ещё работает**, даже если восемь часов
|
||||
не вышли.
|
||||
🔴 Этот предел — **последняя сеть, а не срок работы**. Тебя не торопят и не обрывают
|
||||
на полпути: работай, пока не доведёшь пункт до конца. Гасят раньше предела только
|
||||
за пустую трату — когда ты топчешься на месте и дело не двигается.
|
||||
|
||||
Ещё одно, и на деле это тебя коснётся раньше предела: **в 8 утра по Москве гасят всех,
|
||||
кто ещё работает**, даже если твои часы не вышли.
|
||||
|
||||
И третье: тебя могут погасить, когда кончится **недельный запас** — общий на всё хозяйство.
|
||||
Его не считают, а спрашивают у самой системы. Это не поломка и не твоя вина, так задумано:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { buildWorkerPrompt, buildSmokePrompt, STOP_AND_ASK, sverkaPometok } from './worker-prompt.mjs';
|
||||
import { PREDEL_CHASOV_SUTKI } from './limits.mjs';
|
||||
|
||||
const base = {
|
||||
workerId: 'w-1',
|
||||
@@ -101,14 +102,34 @@ describe('buildWorkerPrompt', () => {
|
||||
});
|
||||
|
||||
it('говорит, сколько у работника часов и что в 8 утра гасят всех', () => {
|
||||
// 🪤 Прежде работника гасили посреди дела, не сказав ему заранее ни про восемь часов,
|
||||
// 🪤 Прежде работника гасили посреди дела, не сказав ему заранее ни про предел часов,
|
||||
// ни про отсечку. Он и брался за куски, которые заведомо не успевал довести до коммита.
|
||||
//
|
||||
// 🔴 08.08.2026, решение владельца 37: слово «восемь» из ожидания убрано. Проверка
|
||||
// не удалена и замысел её тот же — работник обязан узнать свой предел ЗАРАНЕЕ, — но
|
||||
// требовать в поручении именно восьмёрку значило бы приказывать работнику жить
|
||||
// по отменённому числу.
|
||||
const p = buildWorkerPrompt(base);
|
||||
expect(p).toMatch(/восемь часов/i);
|
||||
expect(p).toMatch(/8 утра|8:00/);
|
||||
expect(p).toMatch(/по одному и целиком/i);
|
||||
});
|
||||
|
||||
it('🔴 решение 37: поручение называет работнику ЕГО СУТКИ, а не заученные восемь часов', () => {
|
||||
// Это не комментарий, а живой текст, который читает сам работник. Останься в нём
|
||||
// «восемь часов» — работник поверил бы, что у него их восемь, и не брался бы
|
||||
// за работу, которую на деле успевает.
|
||||
const p = buildWorkerPrompt(base);
|
||||
expect(p).not.toMatch(/восемь часов/i);
|
||||
expect(p).toMatch(new RegExp(`${PREDEL_CHASOV_SUTKI}`));
|
||||
});
|
||||
|
||||
it('🔴 решение 37: предел в поручении и предел, по которому гасят, — одно число', () => {
|
||||
// Разъедутся молча — работнику пообещают одно, а погасят по другому.
|
||||
const p = buildWorkerPrompt({ ...base, chasovPredel: 11 });
|
||||
expect(p).toMatch(/11/);
|
||||
expect(buildWorkerPrompt(base)).toMatch(new RegExp(`${PREDEL_CHASOV_SUTKI} `));
|
||||
});
|
||||
|
||||
it('даёт слово, которым работник объявляет «дела кончились», — и оно из закрытого списка', () => {
|
||||
// 🪤 Прежде было велено «напиши об этом в status.json», а слова для этого в списке
|
||||
// из пяти нет. Незнакомое слово надзиратель читает как «работает» и ждёт до предела.
|
||||
|
||||
@@ -144,7 +144,7 @@ export function buildWorkerSettings() {
|
||||
//
|
||||
// 🪤 И одних запретов МАЛО. Работник запускается безголово: согласия человека
|
||||
// спросить не у кого. Без явного разрешающего списка `git commit` и прогон проверок
|
||||
// упёрлись бы в отказ, и ни один пункт не закрылся бы за все восемь часов —
|
||||
// упёрлись бы в отказ, и ни один пункт не закрылся бы за всю ночь —
|
||||
// при зелёных проверках на «запреты держат». Поэтому разрешено ровно то, что нужно
|
||||
// для закрытия пункта: правка файлов, свой коммит, свои проверки. Запрет сильнее
|
||||
// разрешения, поэтому push, слияние и «наружу» остаются закрытыми.
|
||||
|
||||
Reference in New Issue
Block a user