jonah-fleet 1.35.2 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/index.js +151 -0
- package/dist/lib/memory.d.ts +61 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/runner.d.ts +70 -0
- package/dist/lib/runner.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/docs/AGENTS.template.md +7 -0
- package/templates/docs/LESSONS.template.md +2 -0
- package/templates/prompts/autowork.md +5 -3
- package/templates/prompts/peer-review.md +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to `jonah-fleet` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.37.0](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.36.0...v1.37.0) (2026-10-11)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **prompts,memory:** partition LESSONS.md ingestion by routine role ([#700](https://github.com/Jonah-Projects/jonah-fleet/issues/700)) ([21fe1b2](https://github.com/Jonah-Projects/jonah-fleet/commit/21fe1b21669ee0d7dc470c601732fb395efa0126))
|
|
14
|
+
|
|
15
|
+
## [1.36.0](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.35.2...v1.36.0) (2026-10-11)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **runner:** add head-tail truncation guard for tool outputs ([#698](https://github.com/Jonah-Projects/jonah-fleet/issues/698)) ([2982cda](https://github.com/Jonah-Projects/jonah-fleet/commit/2982cdacbd9b4b20ad808851f044dd19dae4a258))
|
|
21
|
+
|
|
8
22
|
## [1.35.2](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.35.1...v1.35.2) (2026-10-11)
|
|
9
23
|
|
|
10
24
|
|
|
@@ -14,6 +28,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
14
28
|
|
|
15
29
|
## [Unreleased] - 2026-10-11
|
|
16
30
|
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **memory:** partition `LESSONS.md` operational memory ingestion by routine role (`[autowork]`, `[peer-review]`, `[general]`) to prevent unbounded prompt token bloat while maintaining high-signal operational memory
|
|
34
|
+
- **runner:** add head-tail streaming truncation circuit breaker (`DEFAULT_MAX_LINES = 500`, `DEFAULT_MAX_BYTES = 64KB`) for command execution and large tool outputs to prevent context overflow and worker stalls
|
|
35
|
+
|
|
36
|
+
|
|
17
37
|
### Fixed
|
|
18
38
|
|
|
19
39
|
- **terminal-card:** refine backlog triage hints to provide targeted unblock advice for radar digests and `needs-attention` issues instead of generic `needs-human` prompts
|
package/dist/index.js
CHANGED
|
@@ -5241,6 +5241,153 @@ function formatLoopGuardReport(options) {
|
|
|
5241
5241
|
// src/lib/runner.ts
|
|
5242
5242
|
import pc11 from "picocolors";
|
|
5243
5243
|
var execFileAsync5 = promisify5(execFile5);
|
|
5244
|
+
var DEFAULT_MAX_LINES = 500;
|
|
5245
|
+
var DEFAULT_MAX_BYTES = 64 * 1024;
|
|
5246
|
+
var DEFAULT_HEAD_LINES = 50;
|
|
5247
|
+
var DEFAULT_TAIL_LINES = 100;
|
|
5248
|
+
var HeadTailStreamTruncator = class {
|
|
5249
|
+
maxLines;
|
|
5250
|
+
maxBytes;
|
|
5251
|
+
headLines;
|
|
5252
|
+
tailLines;
|
|
5253
|
+
buffer = "";
|
|
5254
|
+
head = [];
|
|
5255
|
+
tail = [];
|
|
5256
|
+
allLines = [];
|
|
5257
|
+
totalLines = 0;
|
|
5258
|
+
totalBytes = 0;
|
|
5259
|
+
hasExceeded = false;
|
|
5260
|
+
flushed = false;
|
|
5261
|
+
constructor(options = {}) {
|
|
5262
|
+
this.maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
|
|
5263
|
+
this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
5264
|
+
this.headLines = options.headLines ?? DEFAULT_HEAD_LINES;
|
|
5265
|
+
this.tailLines = options.tailLines ?? DEFAULT_TAIL_LINES;
|
|
5266
|
+
}
|
|
5267
|
+
feed(chunk) {
|
|
5268
|
+
if (!chunk) return;
|
|
5269
|
+
this.totalBytes += Buffer.byteLength(chunk, "utf8");
|
|
5270
|
+
this.buffer += chunk;
|
|
5271
|
+
const parts = this.buffer.split("\n");
|
|
5272
|
+
this.buffer = parts.pop() ?? "";
|
|
5273
|
+
for (const line of parts) {
|
|
5274
|
+
this.processLine(line);
|
|
5275
|
+
}
|
|
5276
|
+
if (!this.hasExceeded && this.totalBytes > this.maxBytes) {
|
|
5277
|
+
this.triggerExceeded();
|
|
5278
|
+
}
|
|
5279
|
+
}
|
|
5280
|
+
processLine(line) {
|
|
5281
|
+
this.totalLines++;
|
|
5282
|
+
if (!this.hasExceeded) {
|
|
5283
|
+
this.allLines.push(line);
|
|
5284
|
+
if (this.totalLines > this.maxLines || this.totalBytes > this.maxBytes) {
|
|
5285
|
+
this.triggerExceeded();
|
|
5286
|
+
}
|
|
5287
|
+
} else {
|
|
5288
|
+
if (this.head.length < this.headLines) {
|
|
5289
|
+
this.head.push(line);
|
|
5290
|
+
} else {
|
|
5291
|
+
this.tail.push(line);
|
|
5292
|
+
if (this.tail.length > this.tailLines) {
|
|
5293
|
+
this.tail.shift();
|
|
5294
|
+
}
|
|
5295
|
+
}
|
|
5296
|
+
}
|
|
5297
|
+
}
|
|
5298
|
+
triggerExceeded() {
|
|
5299
|
+
this.hasExceeded = true;
|
|
5300
|
+
this.head = this.allLines.slice(0, this.headLines);
|
|
5301
|
+
const remaining = this.allLines.slice(this.headLines);
|
|
5302
|
+
this.tail = remaining.slice(-this.tailLines);
|
|
5303
|
+
this.allLines = [];
|
|
5304
|
+
}
|
|
5305
|
+
flush() {
|
|
5306
|
+
if (this.flushed) return;
|
|
5307
|
+
this.flushed = true;
|
|
5308
|
+
if (this.buffer.length > 0) {
|
|
5309
|
+
const line = this.buffer;
|
|
5310
|
+
this.buffer = "";
|
|
5311
|
+
this.processLine(line);
|
|
5312
|
+
}
|
|
5313
|
+
if (!this.hasExceeded && (this.totalLines > this.maxLines || this.totalBytes > this.maxBytes)) {
|
|
5314
|
+
this.triggerExceeded();
|
|
5315
|
+
}
|
|
5316
|
+
}
|
|
5317
|
+
isTruncated() {
|
|
5318
|
+
if (!this.flushed) {
|
|
5319
|
+
this.flush();
|
|
5320
|
+
}
|
|
5321
|
+
return this.hasExceeded;
|
|
5322
|
+
}
|
|
5323
|
+
getResult() {
|
|
5324
|
+
if (!this.flushed) {
|
|
5325
|
+
this.flush();
|
|
5326
|
+
}
|
|
5327
|
+
if (!this.hasExceeded) {
|
|
5328
|
+
const text2 = this.allLines.join("\n");
|
|
5329
|
+
return {
|
|
5330
|
+
text: text2,
|
|
5331
|
+
truncated: false,
|
|
5332
|
+
totalLines: this.totalLines,
|
|
5333
|
+
totalBytes: this.totalBytes,
|
|
5334
|
+
truncatedLines: 0,
|
|
5335
|
+
truncatedBytes: 0
|
|
5336
|
+
};
|
|
5337
|
+
}
|
|
5338
|
+
let finalHead = this.head.join("\n");
|
|
5339
|
+
let finalTail = this.tail.join("\n");
|
|
5340
|
+
if (this.head.length <= 1 && this.tail.length === 0 && finalHead.length > 0) {
|
|
5341
|
+
const line = finalHead;
|
|
5342
|
+
const targetHead = Math.floor(this.maxBytes * 0.35);
|
|
5343
|
+
const targetTail = Math.floor(this.maxBytes * 0.55);
|
|
5344
|
+
finalHead = Buffer.from(line, "utf8").subarray(0, targetHead).toString("utf8");
|
|
5345
|
+
const lineBuf = Buffer.from(line, "utf8");
|
|
5346
|
+
finalTail = lineBuf.subarray(Math.max(0, lineBuf.length - targetTail)).toString("utf8");
|
|
5347
|
+
} else {
|
|
5348
|
+
const maxAllowedBytes = this.maxBytes;
|
|
5349
|
+
const currentHeadBytes = Buffer.byteLength(finalHead, "utf8");
|
|
5350
|
+
const currentTailBytes = Buffer.byteLength(finalTail, "utf8");
|
|
5351
|
+
if (currentHeadBytes + currentTailBytes > maxAllowedBytes) {
|
|
5352
|
+
const targetHeadBytes = Math.floor(maxAllowedBytes * 0.35);
|
|
5353
|
+
const targetTailBytes = Math.floor(maxAllowedBytes * 0.55);
|
|
5354
|
+
if (currentHeadBytes > targetHeadBytes) {
|
|
5355
|
+
finalHead = Buffer.from(finalHead, "utf8").subarray(0, targetHeadBytes).toString("utf8");
|
|
5356
|
+
}
|
|
5357
|
+
if (currentTailBytes > targetTailBytes) {
|
|
5358
|
+
const tailBuf = Buffer.from(finalTail, "utf8");
|
|
5359
|
+
finalTail = tailBuf.subarray(Math.max(0, tailBuf.length - targetTailBytes)).toString("utf8");
|
|
5360
|
+
}
|
|
5361
|
+
}
|
|
5362
|
+
}
|
|
5363
|
+
const omittedLines = Math.max(0, this.totalLines - (this.head.length + this.tail.length));
|
|
5364
|
+
const retainedBytes = Buffer.byteLength(finalHead, "utf8") + Buffer.byteLength(finalTail, "utf8");
|
|
5365
|
+
const truncatedBytes = Math.max(0, this.totalBytes - retainedBytes);
|
|
5366
|
+
const truncatedKb = (truncatedBytes / 1024).toFixed(1);
|
|
5367
|
+
const separator = `
|
|
5368
|
+
... [${omittedLines} lines / ${truncatedKb} KB truncated to preserve context window] ...
|
|
5369
|
+
`;
|
|
5370
|
+
const text = `${finalHead}${separator}${finalTail}`;
|
|
5371
|
+
return {
|
|
5372
|
+
text,
|
|
5373
|
+
truncated: true,
|
|
5374
|
+
totalLines: this.totalLines,
|
|
5375
|
+
totalBytes: this.totalBytes,
|
|
5376
|
+
truncatedLines: omittedLines,
|
|
5377
|
+
truncatedBytes
|
|
5378
|
+
};
|
|
5379
|
+
}
|
|
5380
|
+
getOutput() {
|
|
5381
|
+
return this.getResult().text;
|
|
5382
|
+
}
|
|
5383
|
+
};
|
|
5384
|
+
function truncateHeadTail(output, options = {}) {
|
|
5385
|
+
if (!output) return "";
|
|
5386
|
+
const truncator = new HeadTailStreamTruncator(options);
|
|
5387
|
+
truncator.feed(output);
|
|
5388
|
+
truncator.flush();
|
|
5389
|
+
return truncator.getOutput();
|
|
5390
|
+
}
|
|
5244
5391
|
var LineBufferedStreamParser = class {
|
|
5245
5392
|
buffer = "";
|
|
5246
5393
|
onLine;
|
|
@@ -5270,6 +5417,9 @@ function parseStreamJsonEvent(line) {
|
|
|
5270
5417
|
try {
|
|
5271
5418
|
const parsed = JSON.parse(line);
|
|
5272
5419
|
if (parsed && typeof parsed === "object") {
|
|
5420
|
+
if (parsed.step_update?.tool_info?.output && typeof parsed.step_update.tool_info.output === "string") {
|
|
5421
|
+
parsed.step_update.tool_info.output = truncateHeadTail(parsed.step_update.tool_info.output);
|
|
5422
|
+
}
|
|
5273
5423
|
return parsed;
|
|
5274
5424
|
}
|
|
5275
5425
|
return null;
|
|
@@ -6042,6 +6192,7 @@ Timeout: ${printTimeout}`,
|
|
|
6042
6192
|
executedAnyTool = true;
|
|
6043
6193
|
lastActionDesc = null;
|
|
6044
6194
|
if (su.tool_info?.output) {
|
|
6195
|
+
su.tool_info.output = truncateHeadTail(su.tool_info.output);
|
|
6045
6196
|
checkTargetDetection(su.tool_info.output);
|
|
6046
6197
|
}
|
|
6047
6198
|
if (spinner) {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operational Memory (LESSONS.md) Partitioning and Filtering
|
|
3
|
+
*
|
|
4
|
+
* Implements role-filtered memory recall inspired by huggingface/funes v1.6.0 (PR #214),
|
|
5
|
+
* allowing autonomous routines (autowork, peer-review, optimizer, etc.) to ingest
|
|
6
|
+
* only role-relevant and general lessons rather than the unbounded file.
|
|
7
|
+
*/
|
|
8
|
+
export declare const KNOWN_ROUTINE_ROLES: Set<string>;
|
|
9
|
+
export interface LessonEntry {
|
|
10
|
+
raw: string;
|
|
11
|
+
role: string;
|
|
12
|
+
tag: string;
|
|
13
|
+
title: string;
|
|
14
|
+
symptom?: string;
|
|
15
|
+
rootCause?: string;
|
|
16
|
+
rule?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface LessonEntryInput {
|
|
19
|
+
role?: string;
|
|
20
|
+
tag?: string;
|
|
21
|
+
title: string;
|
|
22
|
+
symptom: string;
|
|
23
|
+
rootCause: string;
|
|
24
|
+
rule: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parses raw LESSONS.md content into header preamble and array of structured entries.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseLessonsFile(content: string): {
|
|
30
|
+
preamble: string;
|
|
31
|
+
entries: LessonEntry[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Parses structured lesson entries from LESSONS.md body or full file content.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseLessonEntries(content: string): LessonEntry[];
|
|
37
|
+
/**
|
|
38
|
+
* Checks whether a lesson entry matches a given routine role.
|
|
39
|
+
* Includes:
|
|
40
|
+
* - Direct matches (e.g. entry tagged 'autowork' when role is 'autowork')
|
|
41
|
+
* - Composite matches (e.g. entry tagged 'autowork:git')
|
|
42
|
+
* - 'general' entries
|
|
43
|
+
* - General/legacy subsystem entries not claimed by another known routine role
|
|
44
|
+
*/
|
|
45
|
+
export declare function isLessonRelevantForRole(entry: LessonEntry, role: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Filters LESSONS.md content to only entries relevant for the active routine role.
|
|
48
|
+
*/
|
|
49
|
+
export declare function filterLessonsByRole(content: string, role: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Formats a structured 3-line lesson entry under the active routine tag.
|
|
52
|
+
*/
|
|
53
|
+
export declare function formatLessonEntry(input: LessonEntryInput): string;
|
|
54
|
+
/**
|
|
55
|
+
* Appends a new structured lesson entry to LESSONS.md, enforcing the 25-entry hard cap.
|
|
56
|
+
* If adding the entry exceeds maxEntries, the oldest entries are evicted.
|
|
57
|
+
*/
|
|
58
|
+
export declare function appendLessonEntry(content: string, input: LessonEntryInput, options?: {
|
|
59
|
+
maxEntries?: number;
|
|
60
|
+
}): string;
|
|
61
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/lib/memory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,mBAAmB,aAS9B,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAc9F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CA4DjE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAuBjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAczE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAGjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,MAAM,CAoBR"}
|
package/dist/lib/runner.d.ts
CHANGED
|
@@ -90,6 +90,76 @@ export interface StreamJsonEvent {
|
|
|
90
90
|
};
|
|
91
91
|
[key: string]: any;
|
|
92
92
|
}
|
|
93
|
+
export declare const DEFAULT_MAX_LINES = 500;
|
|
94
|
+
export declare const DEFAULT_MAX_BYTES: number;
|
|
95
|
+
export declare const DEFAULT_HEAD_LINES = 50;
|
|
96
|
+
export declare const DEFAULT_TAIL_LINES = 100;
|
|
97
|
+
export interface HeadTailTruncationOptions {
|
|
98
|
+
maxLines?: number;
|
|
99
|
+
maxBytes?: number;
|
|
100
|
+
headLines?: number;
|
|
101
|
+
tailLines?: number;
|
|
102
|
+
}
|
|
103
|
+
export interface HeadTailTruncationResult {
|
|
104
|
+
text: string;
|
|
105
|
+
truncated: boolean;
|
|
106
|
+
totalLines: number;
|
|
107
|
+
totalBytes: number;
|
|
108
|
+
truncatedLines: number;
|
|
109
|
+
truncatedBytes: number;
|
|
110
|
+
}
|
|
111
|
+
export interface CommandExecutionOptions {
|
|
112
|
+
cwd?: string;
|
|
113
|
+
env?: NodeJS.ProcessEnv;
|
|
114
|
+
timeout?: number;
|
|
115
|
+
maxLines?: number;
|
|
116
|
+
maxBytes?: number;
|
|
117
|
+
headLines?: number;
|
|
118
|
+
tailLines?: number;
|
|
119
|
+
}
|
|
120
|
+
export interface CommandExecutionResult {
|
|
121
|
+
stdout: string;
|
|
122
|
+
stderr: string;
|
|
123
|
+
exitCode: number;
|
|
124
|
+
truncated: boolean;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Streaming truncator that preserves head and tail of output when line or byte thresholds are exceeded.
|
|
128
|
+
*/
|
|
129
|
+
export declare class HeadTailStreamTruncator {
|
|
130
|
+
private maxLines;
|
|
131
|
+
private maxBytes;
|
|
132
|
+
private headLines;
|
|
133
|
+
private tailLines;
|
|
134
|
+
private buffer;
|
|
135
|
+
private head;
|
|
136
|
+
private tail;
|
|
137
|
+
private allLines;
|
|
138
|
+
private totalLines;
|
|
139
|
+
private totalBytes;
|
|
140
|
+
private hasExceeded;
|
|
141
|
+
private flushed;
|
|
142
|
+
constructor(options?: HeadTailTruncationOptions);
|
|
143
|
+
feed(chunk: string): void;
|
|
144
|
+
private processLine;
|
|
145
|
+
private triggerExceeded;
|
|
146
|
+
flush(): void;
|
|
147
|
+
isTruncated(): boolean;
|
|
148
|
+
getResult(): HeadTailTruncationResult;
|
|
149
|
+
getOutput(): string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Truncates text output using head-tail preservation when line or byte ceilings are exceeded.
|
|
153
|
+
*/
|
|
154
|
+
export declare function truncateHeadTail(output: string, options?: HeadTailTruncationOptions): string;
|
|
155
|
+
/**
|
|
156
|
+
* Truncates text output returning detailed metadata about lines and bytes truncated.
|
|
157
|
+
*/
|
|
158
|
+
export declare function truncateHeadTailDetails(output: string, options?: HeadTailTruncationOptions): HeadTailTruncationResult;
|
|
159
|
+
/**
|
|
160
|
+
* Safely executes an external command with head-tail streaming truncation on stdout and stderr.
|
|
161
|
+
*/
|
|
162
|
+
export declare function executeCommand(file: string, args: string[], options?: CommandExecutionOptions): Promise<CommandExecutionResult>;
|
|
93
163
|
/**
|
|
94
164
|
* Line buffer for incremental stream-json chunk processing.
|
|
95
165
|
*/
|
package/dist/lib/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAQA,OAAO,EAgBL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QAC7C,SAAS,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE;YACV,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,aAAa,CAAC,EAAE;YACd,SAAS,CAAC,EAAE,KAAK,CAAC;gBAChB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,cAAc,CAAC,EAAE,MAAM,CAAC;gBACxB,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;aACpB,CAAC,CAAC;YACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAC3C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,OAAO,CAAkB;IAEjC,YAAY,OAAO,GAAE,yBAA8B,EAKlD;IAEM,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAe/B;IAED,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;IAQhB,KAAK,IAAI,IAAI,CAanB;IAEM,WAAW,IAAI,OAAO,CAK5B;IAEM,SAAS,IAAI,wBAAwB,CA+D3C;IAEM,SAAS,IAAI,MAAM,CAEzB;CACF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAe1B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA6CjC;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAyB;IAEvC,YAAY,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAEzC;IAEM,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAU/B;IAEM,KAAK,IAAI,IAAI,CAKnB;CACF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAczE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAmDxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAY1F;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAI5D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBhF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL,MAAM,CA6BR;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CA0BpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAUzE;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAa/E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAcxF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAYnF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,IAAI,CAyEN;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAoF,EAC5F,OAAO,GAAE,MAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA0ElB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAoBf;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAEnG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsDzF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CA4D9E;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBzE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0mBrG"}
|
package/package.json
CHANGED
|
@@ -98,3 +98,10 @@ To trigger the Autowork routine manually on any specific issue, use the GitHub A
|
|
|
98
98
|
- Auth boundaries required for all sensitive mutations.
|
|
99
99
|
- Never commit credentials, tokens, or secret keys to version control.
|
|
100
100
|
- Validate request inputs and sanitize outputs.
|
|
101
|
+
|
|
102
|
+
## Operational Memory (LESSONS.md)
|
|
103
|
+
|
|
104
|
+
- **Role-Partitioned Memory**: Standardize lesson entries in `LESSONS.md` using routine role tags: `[autowork]`, `[peer-review]`, `[optimizer]`, or `[general]` (e.g. `### [autowork] Title`, `### [peer-review] Title`, `### [general] Title`). Subsystem composite tags are also supported (e.g. `### [autowork:subsystem] Title`).
|
|
105
|
+
- **Targeted Routine Ingestion**: Autonomous routines ingest general lessons plus routine-specific lessons, omitting unrelated entries to prevent unbounded token expansion while maintaining high-signal operational memory.
|
|
106
|
+
- **Post-Run Recording**: When capturing new non-obvious gotchas or quirks on PR branches, always tag the entry with the active routine's role (or `[general]`) and adhere strictly to the 25-entry hard cap.
|
|
107
|
+
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# Operational Lessons & Repository Heuristics
|
|
2
2
|
<!-- Invariants: Max 25 entries. Hard cap. Older entries graduate or demote to LESSONS_ARCHIVE.md -->
|
|
3
|
+
<!-- Tagging Syntax: Standardize entries with routine role tags [autowork], [peer-review], [optimizer], or [general] (e.g. ### [autowork] Title, ### [peer-review] Title, ### [general] Title). Subsystem suffixes are supported: ### [autowork:subsystem] Title. Each routine ingests only its own role-tagged entries plus [general] and legacy entries. -->
|
|
3
4
|
|
|
4
5
|
### [subsystem] Title
|
|
6
|
+
<!-- Example role-tagged entry: ### [general] Title or ### [autowork] Title -->
|
|
5
7
|
- **Symptom:** <Symptom description or error message>
|
|
6
8
|
- **Root Cause:** <Brief explanation of the underlying cause>
|
|
7
9
|
- **Rule:** <Actionable rule or constraint to follow>
|
|
@@ -43,6 +43,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
43
43
|
- **Anti-Hallucination Disk Read-Back Verification**: Always verify generated code, configs, and artifacts by reading values directly back out of the written artifact on disk, never from in-memory variables or shell command echoes.
|
|
44
44
|
- **Precision Git Scoping**: Never execute bare `git commit` or blind `git add .` without scoping. Always commit designated paths explicitly (`git commit -m "..." -- <paths>`) or verify `git status --porcelain` to avoid sweeping in uncommitted scratch artifacts or concurrent session files.
|
|
45
45
|
- **Incremental Commits**: Commit early and incrementally. Do NOT accumulate dozens of edits across many files without committing. Once your implementation passes the Red Gate test and local tests, commit your changes immediately (`git commit -m "<type>(<scope>): <subject>" -- <paths>`). Then run formatting and linting as a separate commit. This guarantees your work is persisted in git and immune to mid-session crashes.
|
|
46
|
+
- **Streaming Truncation & Log Inspection Guardrail**: When executing commands or inspecting large files, test outputs, or git diffs, never dump unbounded streams that could exhaust the LLM context window or stall IPC buffers. Always inspect voluminous outputs with paging, line/byte limits, or head/tail/grep filters (e.g. `git log -n <N>`, `head -n 50`, `tail -n 100`, `grep`). Tool outputs exceeding 500 lines or 64 KB are automatically truncated by the runner circuit breaker using head-tail preservation to protect context.
|
|
46
47
|
|
|
47
48
|
## Negative examples (DO NOT do these)
|
|
48
49
|
|
|
@@ -65,6 +66,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
65
66
|
- Do not use bare `git commit` or blind `git add .` without scoping specific paths (`git commit -m "..." -- <paths>`).
|
|
66
67
|
- Do not verify generated files by checking in-memory strings or shell variables; read values back out of the file on disk.
|
|
67
68
|
- Do not accumulate changes across many files without committing — commit incrementally as soon as tests pass, then format/lint.
|
|
69
|
+
- Do not dump full unbounded command outputs or large file contents into context — use paging, head/tail, or grep.
|
|
68
70
|
|
|
69
71
|
## Instructions
|
|
70
72
|
|
|
@@ -218,7 +220,7 @@ _Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/ru
|
|
|
218
220
|
`- **Prior Failure Context**: <summary of past error/crash and strategy to avoid repeating it>`
|
|
219
221
|
- If bug: use `/diagnosing-bugs` to establish reproduction test before fixing.
|
|
220
222
|
- If large/complex: use `/domain-modeling` and `/codebase-design`.
|
|
221
|
-
- **Pre-Flight Memory Scan**: If `LESSONS.md` exists, grep matching subsystem tags (`grep -E "^### \[(subsystem)\]" LESSONS.md -A 4`) to incorporate known landmines into implementation plans before writing code.
|
|
223
|
+
- **Pre-Flight Memory Scan**: If `LESSONS.md` exists, grep matching subsystem tags (`grep -E "^### \[(subsystem)\]" LESSONS.md -A 4`) or filter entries tagged for `[autowork]` or `[general]` (e.g. `grep -E "^### \[(autowork|general)\]" LESSONS.md -A 4`), omitting unrelated routine roles to incorporate known landmines into implementation plans before writing code without token bloat.
|
|
222
224
|
- **The Red Gate Protocol (Pre-Implementation Verifier Check)**: Before writing ANY production implementation code, define the verifier or write a reproduction test, and execute it:
|
|
223
225
|
- **The check MUST fail** (red). If the verifier passes before you touch production code, the subsequent work proves nothing.
|
|
224
226
|
- **Already Green Check**: If the verifier passes *before* code changes, stop immediately and evaluate:
|
|
@@ -266,7 +268,7 @@ _Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/ru
|
|
|
266
268
|
- **Diagnostic Reflex**: On unexpected test/build failure during TDD, grep symptom text in `LESSONS.md` before making speculative code edits.
|
|
267
269
|
- Run repository tests and verification.
|
|
268
270
|
- **Disk Read-Back Verification**: Verify written configs, schemas, and generated files by reading values directly back from disk files (`cat`, `jq`, test assertions), never from shell variables or memory.
|
|
269
|
-
- **Pre-PR Lessons Capture Gate**: If solving the issue required overcoming a non-obvious quirk not caught by tests/linters, append a 3-line structured entry on the active PR branch adhering to the 25-entry hard cap. Never write to `LESSONS.md` directly on `main`.
|
|
271
|
+
- **Pre-PR Lessons Capture Gate**: If solving the issue required overcoming a non-obvious quirk not caught by tests/linters, append a 3-line structured entry tagged under the active routine role (`### [autowork] <Title>` or `### [general] <Title>`) on the active PR branch adhering to the 25-entry hard cap. Never write to `LESSONS.md` directly on `main`.
|
|
270
272
|
- **Milestone 2 (Verification & Tests)**: Once implementation passes tests and type checks, emit milestone card if `$ROUTINE_ISSUE_NUMBER` is set:
|
|
271
273
|
```bash
|
|
272
274
|
gh issue comment "$ROUTINE_ISSUE_NUMBER" --body "### 🧪 Milestone: Verification & Tests
|
|
@@ -363,7 +365,7 @@ Cacheable across consecutive runs within the same repository.
|
|
|
363
365
|
In this tier, Autowork ingests semi-stable repository conventions, operational memory, and configuration rules that change infrequently across consecutive runs in the same repository:
|
|
364
366
|
|
|
365
367
|
1. **Repository Conventions (`AGENTS.md`)**: Read `AGENTS.md` (or `CLAUDE.md` / `GEMINI.md`) for build/test/lint commands, code formatting rules, architectural guidelines, and design system tokens.
|
|
366
|
-
2. **Operational Memory (`LESSONS.md`)**: If `LESSONS.md` exists, ingest
|
|
368
|
+
2. **Operational Memory (`LESSONS.md`)**: If `LESSONS.md` exists, ingest role-relevant operational gotchas (`grep -E "^### \[(subsystem)\]" LESSONS.md -A 4`) filtered for the active routine role (`[autowork]` or `[general]`), omitting entries from other routine roles to avoid known pitfalls and regression patterns while minimizing token consumption (enforcing the 25-entry hard cap).
|
|
367
369
|
3. **Fleet Manifest (`agents-manifest.json`)**: Ingest configured presets, model family assignments, and timeout/iteration ceilings.
|
|
368
370
|
4. **Engineering Skills (`.agents/skills/`)**: Leverage domain skills (`code-review`, `codebase-design`, `diagnosing-bugs`, `domain-modeling`, `grill-me`, `resolving-merge-conflicts`, `tdd`, `triage`, `writing-for-agents`).
|
|
369
371
|
|
|
@@ -48,6 +48,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
48
48
|
- **Defect Taxonomy of Bogus Green Checks**: The most expensive errors in agentic engineering come from checks reporting success for work they did not do. Audit verification against the 6 defect shapes (Vacuous assertion, Silent no-match, Errored check, Wrong reference, Stale premise, Scope mismatch). Exit codes and concrete diffs are authoritative; agent summaries are merely intent.
|
|
49
49
|
- **Anti-Hallucination Disk Read-Back Verification**: Verify artifacts, generated configs, or outputs by reading values directly back out of the written artifact on disk, never from an in-memory variable, shell echo, or assumption.
|
|
50
50
|
- **Reader / Writer Separation**: Peer Review is strictly an evaluator and merge authority. Never write or commit code modifications to the PR branch directly; bounce to draft so the author or autowork session applies the fix in their warm context.
|
|
51
|
+
- **Streaming Truncation & Log Inspection Guardrail**: When inspecting command outputs, CI logs, or large diffs, never dump unbounded streams that could exhaust the LLM context window or stall IPC buffers. Always inspect voluminous outputs with paging, line/byte limits, or head/tail/grep filters (e.g. `gh pr diff | head -n 100`, `gh run view --log | tail -n 50`). Tool outputs exceeding 500 lines or 64 KB are automatically truncated by the runner circuit breaker using head-tail preservation to protect context.
|
|
51
52
|
|
|
52
53
|
## Final action: merge, bounce to draft, or approve & defer merge
|
|
53
54
|
|
|
@@ -78,6 +79,7 @@ Every review ends in exactly one of three states:
|
|
|
78
79
|
- On re-review, do not raise new findings in code that was unchanged since the prior review — only inspect the delta commits.
|
|
79
80
|
- Do not bounce a PR for non-blocking style/preference findings when all correctness checks pass.
|
|
80
81
|
- Do not bounce an external contributor PR purely for missing `Closes #N` when the PR description provides a clear specification.
|
|
82
|
+
- Do not dump full unbounded command outputs or large file contents into context — use paging, head/tail, or grep.
|
|
81
83
|
- Do not call `schedule` or yield the turn with plain text while waiting for background verification tasks — stay in the tool loop until the final action is taken.
|
|
82
84
|
- Do not busy-poll `gh run view` or `gh pr checks` in a loop when remote CI is in progress—verify locally once and defer merge, or bounce to draft immediately if blocking findings exist.
|
|
83
85
|
- Do not rerun full local test suites when remote CI checks on the head commit are already green and passing.
|
|
@@ -140,7 +142,7 @@ Check if `$PR_NUMBER` is set:
|
|
|
140
142
|
1. Run `/code-review` over the diff (or delta commits if re-review) evaluating:
|
|
141
143
|
- **Standards**: Conformance to `AGENTS.md` (or `CLAUDE.md`/`GEMINI.md`), conventions, and architecture.
|
|
142
144
|
- **Spec Compliance**: Verification against the linked issue's deliverables (`## Tasks`), or against the PR description's summary/changes if no tracking issue is linked.
|
|
143
|
-
- **Operational Memory & Lessons Invariant**: Inspect `LESSONS.md` diffs in PRs to verify the lesson is accurate, non-trivial, follows the 3-line structured schema, and the file adheres to the 25-entry hard cap.
|
|
145
|
+
- **Operational Memory & Lessons Invariant**: Inspect `LESSONS.md` diffs in PRs to verify the lesson is accurate, non-trivial, follows the 3-line structured schema, tags the originating routine role (e.g. `### [autowork] ...`, `### [peer-review] ...`, or `### [general] ...`), and the file adheres to the 25-entry hard cap. If reviewing code that solves a non-obvious gotcha or recurring architectural trap, ensure a structured 3-line entry tagged with the originating routine role (`### [peer-review] ...` or `### [general] ...`) is appended to `LESSONS.md`.
|
|
144
146
|
2. Run Security Pass: auth gates, permission checks, injection risks, sensitive credentials.
|
|
145
147
|
3. **Design System & Viewport Density Pass** (if PR modifies frontend/rendered UI):
|
|
146
148
|
- **Token Purity**: Check for arbitrary CSS/Tailwind sizing overrides (e.g. `text-[...px]`, `w-[...px]`) or bespoke button styling bypassing standard design system tokens.
|
|
@@ -296,7 +298,7 @@ Cacheable across consecutive runs within the same repository.
|
|
|
296
298
|
In this tier, Peer Review ingests semi-stable repository conventions, operational memory, and configuration rules that change infrequently across consecutive runs in the same repository:
|
|
297
299
|
|
|
298
300
|
1. **Repository Conventions (`AGENTS.md`)**: Read `AGENTS.md` (or `CLAUDE.md` / `GEMINI.md`) for coding standards, architectural patterns, design system token purity, and required CI / test commands.
|
|
299
|
-
2. **Operational Memory (`LESSONS.md`)**:
|
|
301
|
+
2. **Operational Memory (`LESSONS.md`)**: If `LESSONS.md` exists, ingest role-relevant operational gotchas filtered for the active routine role (`grep -E "^### \[(peer-review|general)\]" LESSONS.md -A 4`), omitting unrelated routine roles, and verify that any non-obvious quirks or gotchas captured on the active PR branch adhere to the 25-entry hard cap.
|
|
300
302
|
3. **Fleet Manifest (`agents-manifest.json`)**: Ingest configured review models, round caps, and iteration ceilings.
|
|
301
303
|
4. **Engineering Skills (`.agents/skills/`)**: Leverage `code-review`, `design-critique`, and `writing-for-agents` for structured evaluation.
|
|
302
304
|
|