agent-bios 0.15.0 → 0.16.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/DEPENDENCIES.md +35 -12
- package/README.md +346 -31
- package/claude/CLAUDE.md +2 -2
- package/claude/agents/frontier.md +1 -1
- package/claude/agents/sweep.md +3 -3
- package/claude/agents/workhorse.md +2 -2
- package/claude/guides/claude-prompting.md +72 -39
- package/claude/guides/cli-multi-model-workflow.md +33 -15
- package/claude/guides/gpt-prompting.md +103 -39
- package/claude/guides/review-request.md +27 -0
- package/claude/guides/session-distill-workflow.md +54 -2
- package/claude/guides/slide-writing/RUNBOOK.md +137 -0
- package/claude/guides/slide-writing/scripts/pair.py +979 -0
- package/claude/guides/slide-writing/scripts/render.mjs +82 -0
- package/claude/guides/slide-writing.md +195 -0
- package/claude/guides/svg-visualization-guide.md +9 -0
- package/claude/guides/verification-discipline.md +5 -1
- package/claude/hooks/tooling-gotchas-hook.py +7 -5
- package/codex/AGENTS.md +2 -2
- package/codex/agents/frontier.toml +2 -1
- package/codex/agents/reviewer.toml +1 -1
- package/codex/agents/sweep.toml +3 -3
- package/codex/agents/workhorse.toml +1 -1
- package/codex/config-additions.toml +1 -1
- package/codex/guides/claude-prompting.md +72 -39
- package/codex/guides/cli-multi-model-workflow.md +33 -15
- package/codex/guides/gpt-prompting.md +103 -39
- package/codex/guides/review-request.md +27 -0
- package/codex/guides/session-distill-workflow.md +54 -2
- package/codex/guides/slide-writing/RUNBOOK.md +137 -0
- package/codex/guides/slide-writing/scripts/pair.py +979 -0
- package/codex/guides/slide-writing/scripts/render.mjs +82 -0
- package/codex/guides/slide-writing.md +195 -0
- package/codex/guides/svg-visualization-guide.md +9 -0
- package/codex/guides/verification-discipline.md +5 -1
- package/compose/assemble.py +290 -14
- package/compose/bootstrap/SKILL.md +119 -0
- package/compose/check-domains.py +102 -9
- package/compose/corpus-state.py +4 -0
- package/compose/corpus.py +387 -0
- package/compose/corpus_catalog.py +882 -0
- package/compose/corpus_install.py +1617 -0
- package/compose/corpus_session.py +726 -0
- package/compose/corpus_store.py +1414 -0
- package/compose/corpus_transaction.py +236 -0
- package/compose/corpus_ui.py +644 -0
- package/compose/domains.json +101 -100
- package/install.sh +63 -18
- package/launch/agent-launch.py +1216 -179
- package/launch/agent-launch.toml +12 -16
- package/launch/i18n/en.toml +112 -7
- package/launch/i18n/ja.toml +112 -7
- package/launch/i18n/ko.toml +112 -7
- package/learn/collect-learning.py +46 -19
- package/learn/migrate-learnings.py +10 -1
- package/package.json +11 -3
- package/provenance.json +1 -1
- package/session-cost.py +22 -2
- package/wrappers/codex-helm.sh +3 -3
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Render only the sealed HTML and its sealed local assets. No slide styles are injected.
|
|
2
|
+
import {readFile, writeFile, mkdir, realpath} from 'node:fs/promises';
|
|
3
|
+
import {resolve, relative, isAbsolute, sep} from 'node:path';
|
|
4
|
+
import {pathToFileURL, fileURLToPath} from 'node:url';
|
|
5
|
+
import {createRequire} from 'node:module';
|
|
6
|
+
|
|
7
|
+
const [htmlArg, outArg, sealedArg] = process.argv.slice(2);
|
|
8
|
+
if (!htmlArg || !outArg || !sealedArg) throw new Error('Usage: render.mjs SEALED_HTML OUTPUT_DIR SEALED_ROOT');
|
|
9
|
+
const modulePath = process.env.SLIDE_PLAYWRIGHT_MODULE;
|
|
10
|
+
const browserPath = process.env.SLIDE_BROWSER_EXECUTABLE;
|
|
11
|
+
if (!modulePath || !browserPath) throw new Error('SLIDE_PLAYWRIGHT_MODULE and SLIDE_BROWSER_EXECUTABLE are required');
|
|
12
|
+
const {chromium} = await import(pathToFileURL(resolve(modulePath)).href);
|
|
13
|
+
const require = createRequire(resolve(modulePath));
|
|
14
|
+
const {PDFDocument} = require('pdf-lib');
|
|
15
|
+
const html = await realpath(htmlArg), sealed = await realpath(sealedArg), out = resolve(outArg);
|
|
16
|
+
const inside = path => { const r = relative(sealed, path); return r !== '..' && !r.startsWith('..' + sep) && !isAbsolute(r); };
|
|
17
|
+
if (!inside(html)) throw new Error('HTML is outside sealed input root');
|
|
18
|
+
await mkdir(out, {recursive:true});
|
|
19
|
+
const browser = await chromium.launch({headless:true, executablePath:resolve(browserPath)});
|
|
20
|
+
try {
|
|
21
|
+
const page = await browser.newPage({viewport:{width:1400,height:1000}, deviceScaleFactor:1});
|
|
22
|
+
const blocked = [], errors = [];
|
|
23
|
+
page.on('pageerror', e => errors.push(e.message));
|
|
24
|
+
await page.route('**/*', async route => {
|
|
25
|
+
const u = route.request().url();
|
|
26
|
+
if (u.startsWith('data:') || u.startsWith('about:')) return route.continue();
|
|
27
|
+
if (u.startsWith('file:')) {
|
|
28
|
+
try { if (inside(await realpath(fileURLToPath(u)))) return route.continue(); } catch {}
|
|
29
|
+
}
|
|
30
|
+
blocked.push(u); return route.abort();
|
|
31
|
+
});
|
|
32
|
+
await page.emulateMedia({media:'print'});
|
|
33
|
+
await page.goto(pathToFileURL(html).href, {waitUntil:'networkidle'});
|
|
34
|
+
await page.evaluate(() => document.fonts.ready);
|
|
35
|
+
const pages = await page.evaluate(() => [...document.querySelectorAll('section.slide')].map((slide,i) => {
|
|
36
|
+
const rect = slide.getBoundingClientRect(), texts = [], outside = [];
|
|
37
|
+
const walker = document.createTreeWalker(slide, NodeFilter.SHOW_TEXT);
|
|
38
|
+
let node;
|
|
39
|
+
while ((node = walker.nextNode())) {
|
|
40
|
+
const value = node.textContent.trim(); if (!value) continue;
|
|
41
|
+
const parent = node.parentElement, style = getComputedStyle(parent);
|
|
42
|
+
if (style.visibility === 'hidden' || style.display === 'none') continue;
|
|
43
|
+
const range = document.createRange(); range.selectNodeContents(node);
|
|
44
|
+
const bounds = range.getBoundingClientRect(); if (!bounds.width || !bounds.height) continue;
|
|
45
|
+
const transforms = [];
|
|
46
|
+
for (let p=parent; p && p!==slide.parentElement; p=p.parentElement) {
|
|
47
|
+
const transform = getComputedStyle(p).transform;
|
|
48
|
+
if (transform !== 'none') transforms.push(transform);
|
|
49
|
+
}
|
|
50
|
+
const item = {text:value, font_px:parseFloat(style.fontSize), x:bounds.x-rect.x, y:bounds.y-rect.y,
|
|
51
|
+
width:bounds.width, height:bounds.height, alignment:style.textAlign,
|
|
52
|
+
declared_level:parent.closest('[data-level]')?.getAttribute('data-level') ?? null,
|
|
53
|
+
font_family:style.fontFamily, font_weight:style.fontWeight, transforms};
|
|
54
|
+
texts.push(item);
|
|
55
|
+
if (item.x < -1 || item.y < -1 || item.x+item.width > rect.width+1 || item.y+item.height > rect.height+1) outside.push(item);
|
|
56
|
+
}
|
|
57
|
+
const regions = [...slide.querySelectorAll('[data-role]')].map(n => {
|
|
58
|
+
const r=n.getBoundingClientRect(); return {role:n.dataset.role,x:r.x-rect.x,y:r.y-rect.y,width:r.width,height:r.height};
|
|
59
|
+
});
|
|
60
|
+
return {id:'p'+String(i+1).padStart(4,'0'), source_page:slide.dataset.sourcePage ?? '',
|
|
61
|
+
title:slide.querySelector('[data-role="title"],h1,h2')?.textContent.trim() ?? '',
|
|
62
|
+
width:rect.width,height:rect.height,text:texts,outside,regions};
|
|
63
|
+
}));
|
|
64
|
+
if (!pages.length) throw new Error('No section.slide pages were rendered');
|
|
65
|
+
for (const p of pages) {
|
|
66
|
+
if (!(Number.isFinite(p.width) && Number.isFinite(p.height) && p.width>0 && p.height>0)) throw new Error('Invalid page geometry');
|
|
67
|
+
if (Math.abs(p.width-pages[0].width)>1 || Math.abs(p.height-pages[0].height)>1) throw new Error('Pages have different dimensions');
|
|
68
|
+
}
|
|
69
|
+
const slides = page.locator('section.slide');
|
|
70
|
+
for (let i=0; i<pages.length; i++) await slides.nth(i).screenshot({path:resolve(out,`page-${String(i+1).padStart(4,'0')}.png`),animations:'disabled'});
|
|
71
|
+
await page.pdf({path:resolve(out,'deck.pdf'),width:pages[0].width+'px',height:pages[0].height+'px',
|
|
72
|
+
printBackground:true,preferCSSPageSize:false,margin:{top:0,right:0,bottom:0,left:0}});
|
|
73
|
+
const pdf = await PDFDocument.load(await readFile(resolve(out,'deck.pdf')));
|
|
74
|
+
if (pdf.getPageCount() !== pages.length) throw new Error(`PDF page count ${pdf.getPageCount()} differs from HTML page count ${pages.length}`);
|
|
75
|
+
const pdfSizes=pdf.getPages().map(p=>p.getSize());
|
|
76
|
+
for (const size of pdfSizes) if (Math.abs(size.width-pages[0].width*.75)>1 || Math.abs(size.height-pages[0].height*.75)>1) throw new Error('PDF dimensions differ from measured slide dimensions');
|
|
77
|
+
const report={pages, pdf_page_count:pdf.getPageCount(), pdf_sizes_points:pdfSizes,
|
|
78
|
+
font_metric:'font_px is computed CSS size; inspect glyph rectangles, transforms, font loading and actual image separately',
|
|
79
|
+
blocked_requests:blocked, script_errors:errors};
|
|
80
|
+
await writeFile(resolve(out,'measurements.json'),JSON.stringify(report,null,2)+'\n');
|
|
81
|
+
process.stdout.write(JSON.stringify({pages:pages.length,pdf_pages:pdf.getPageCount(),blocked_requests:blocked.length,script_errors:errors.length})+'\n');
|
|
82
|
+
} finally { await browser.close(); }
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
guide_id: slide-writing
|
|
3
|
+
language: en
|
|
4
|
+
status: active
|
|
5
|
+
description: Apply shared source-fidelity, meaning, structure, and layout criteria when creating, revising, or reviewing slides, in any presentation format.
|
|
6
|
+
use_when:
|
|
7
|
+
- creating, revising, or reviewing slides and presentation materials
|
|
8
|
+
- deciding slide headlines, logical relationships, body hierarchy, spacing, or alignment
|
|
9
|
+
resources:
|
|
10
|
+
- Read `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/guides/slide-writing/RUNBOOK.md` only when using the paired static HTML/PDF execution and review path.
|
|
11
|
+
core_rules:
|
|
12
|
+
- Read this primary guide for every slide or presentation task; it is the shared semantic source.
|
|
13
|
+
- Use the companion runbook and scripts only for an explicitly applicable static HTML/PDF job.
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<!-- criterion:c0000 -->
|
|
17
|
+
# Principles for Writing Slides
|
|
18
|
+
|
|
19
|
+
Structure slides so the reader first understands the central judgment, then can verify on the same screen the evidence and conditions supporting it. Visualizations express logical relationships between concepts through position, shape, size, grouping, and connections. The relationship stated by the wording must match the relationship read from the screen.
|
|
20
|
+
|
|
21
|
+
After deciding which meaning from the source must be preserved, design the groupings and relationships, body hierarchy, space, and reading order. Set specific values for presentation specifications for each task. When preserving meaning, readability, and use of space conflict, first reconsider the arrangement and content composition. Do not conceal a space problem by combining independent concepts or by making only a particular body level smaller.
|
|
22
|
+
<!-- /criterion -->
|
|
23
|
+
|
|
24
|
+
<!-- criterion:c0001 -->
|
|
25
|
+
## 1. Define the central judgment of each slide and the role of its body
|
|
26
|
+
|
|
27
|
+
Each slide answers what the reader needs to understand or judge. Groupings in the body connect the evidence, comparisons, processes, and conditions that explain that answer. When independent questions are mixed together, split the slide or define the higher-level question that explains why they belong together.
|
|
28
|
+
|
|
29
|
+
A slide may contain multiple facts. Each fact's role in the central judgment and its relationship to the others must be clear. Make the key relationships findable on the screen before the reader must assemble the content and infer them. Rather than connect every detailed condition with lines, reveal first the relationships needed to understand the central judgment.
|
|
30
|
+
<!-- /criterion -->
|
|
31
|
+
|
|
32
|
+
<!-- criterion:c0002 -->
|
|
33
|
+
## 2. Write headlines so the subject and conclusion are clear even when only the headlines are read
|
|
34
|
+
|
|
35
|
+
For a slide that explains content, state the subject and central judgment in its headline. Replace with a concrete sentence any reference that requires the preceding slide to understand, a title that only previews a count, or wording that omits the subject or predicate excessively. State the judgment within the scope and degree of certainty that the evidence supports.
|
|
36
|
+
|
|
37
|
+
Slides for overview, definition, or transition use a title that reveals their role and the content they convey. Do not force a claim onto a slide that has no conclusion. The sequence of problem framing and judgments must also connect when all headlines are read in order.
|
|
38
|
+
|
|
39
|
+
Headline line breaks follow units of meaning such as phrases and clauses. If only one final character or grammatical ending remains on the next line, adjust the headline width, phrasing, or line break. Distinguish a deliberately short line containing an independent word from a line that remains because a word was split off.
|
|
40
|
+
<!-- /criterion -->
|
|
41
|
+
|
|
42
|
+
<!-- criterion:c0003 -->
|
|
43
|
+
## 3. Preserve the names and distinctions of key concepts
|
|
44
|
+
|
|
45
|
+
Use the same name for the same concept. Explain a technical concept where needed, and do not alternate synonyms merely to vary the writing style. Even when shortening an explanation, retain each item's name and its difference from other items.
|
|
46
|
+
|
|
47
|
+
Before summarizing, identify the concepts, indicators, and conditions that must be read, recorded, or judged independently. An item defined separately in the source must remain findable in the result under its own name and definition. If distinct items are collapsed into one combined name, restore the distinction. Multiple items may appear in the same box; confirm their independence through the correspondence of names, definitions, and values rather than through the number of boxes.
|
|
48
|
+
|
|
49
|
+
Distinguish subjects, roles, activities, outputs, outcomes, and evaluation criteria. Distinguish examples from selection results, hypotheses from confirmed facts, and temporal order from causality. Also retain the conditions, exceptions, and applicable scope under which a relationship holds. When comparing numbers, align units, periods, subjects, and denominators; if the bases differ, state that difference.
|
|
50
|
+
|
|
51
|
+
If the source does not establish a relationship or scope, retain that uncertainty. Do not add an unsupported cause, sequence, or superiority merely to create a connection needed for visualization.
|
|
52
|
+
<!-- /criterion -->
|
|
53
|
+
|
|
54
|
+
<!-- criterion:c0004 -->
|
|
55
|
+
## 4. Create a reading order from conclusion to evidence
|
|
56
|
+
|
|
57
|
+
Arrange information on one screen according to the following roles. Use the roles needed for the slide's purpose, and do not repeat the same content in multiple locations.
|
|
58
|
+
|
|
59
|
+
| Information role | What the reader confirms |
|
|
60
|
+
|---|---|
|
|
61
|
+
| Headline | The subject and central judgment of this slide |
|
|
62
|
+
| Introduction | The judgment's scope and premise, and how to read the body |
|
|
63
|
+
| Current-position indicator | The discussion this slide belongs to in the overall document |
|
|
64
|
+
| Body | The evidence and relationships supporting the judgment |
|
|
65
|
+
| Conclusion or implication | An additional judgment or action derived from the body |
|
|
66
|
+
| Source | The material and location for verifying the evidence |
|
|
67
|
+
|
|
68
|
+
In the body, make visible where reading begins, what is compared together, and where to move next. Put information compared on the same basis in corresponding positions, and reveal any branch or convergence point. If two flows mix, divide the space or redefine the higher-level grouping.
|
|
69
|
+
|
|
70
|
+
Separate conclusions that only hold after reading the body's explanation from source indicators. Make conditions, exceptions, and responsibility scope that change the interpretation readable in the body close to the relevant claim. Set the order of emphasis so decorative position indicators or repeated titles do not draw attention away from the body.
|
|
71
|
+
<!-- /criterion -->
|
|
72
|
+
|
|
73
|
+
<!-- criterion:c0005 -->
|
|
74
|
+
## 5. Design both the composition within groupings and the relationships between them
|
|
75
|
+
|
|
76
|
+
Group the body into units with connected meaning, such as comparison targets, processes, responsibilities by subject, use of results, or common conditions. Arrange them so relationships within a grouping appear closer than relationships between groupings. Elements grouped by the same box, background, or boundary need a reason to be read together.
|
|
77
|
+
|
|
78
|
+
Boxes, background contrast, dividing lines, and whitespace are means to reveal grouping boundaries. A box is unnecessary when alignment, a common axis, connections, or continuity of shape make one object clear. Tables retain the comparison basis and the correspondence of rows and columns. A process may use boxes by step or be divided within one area; either way, the overall flow must read as continuous.
|
|
79
|
+
|
|
80
|
+
Set the unit for dividing boxes according to concepts or steps that must be read independently. Before putting every sentence in a separate box or gathering distinct judgments in one large box, check what distinction the reader gains. If the relationship between boxes must be left only to sentence interpretation, reinforce the arrangement, containment, or connections.
|
|
81
|
+
<!-- /criterion -->
|
|
82
|
+
|
|
83
|
+
<!-- criterion:c0006 -->
|
|
84
|
+
## 6. Express logical relationships through space, shape, and connections
|
|
85
|
+
|
|
86
|
+
First determine what is related to what, and how. Confirm the direction, conditions for holding, and applicable scope of the relationship, then select an expression that makes it readable. A relationship may have several valid arrangements.
|
|
87
|
+
|
|
88
|
+
| Relationship to show | Expressions that can be used | Meaning to preserve |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| Causality | Directional arrangement and connections among cause, action, and result | What affects what, and the strength and conditions of the evidence |
|
|
91
|
+
| Hierarchy or classification | A composition that divides branches or stages beneath a higher-level concept | What is classified according to which criteria |
|
|
92
|
+
| Containment or composition | Nested boxes, common boundaries, and the arrangement of component elements | What is part of what, and the scope of containment |
|
|
93
|
+
| Dependency or reliance | Layers of foundation and dependent elements, and connections showing prerequisites | What requires what; do not turn dependency into causality or containment |
|
|
94
|
+
| Equivalence or parallelism | Same-level columns, rows, comparison tables, or matrices | Independent alternatives or parallel evidence, and the common comparison basis |
|
|
95
|
+
| Equality or correspondence | An equals sign or a correspondence indicator between objects | The scope of the same meaning or value and its distinction from simple correspondence; use equals signs for equality |
|
|
96
|
+
| Correlation | A connection that explicitly states the association, or a chart using actual data | The fact that things vary together or are associated, and its distinction from a causal claim |
|
|
97
|
+
| Sequence or transition | Connected boxes, wedges, flowcharts, or timelines | Direction of progress, branching or convergence, and transition conditions; if using a time axis, periods and points in time |
|
|
98
|
+
| Roles or handoffs | Areas or lanes by subject, and handoff points | Boundaries of execution responsibility and what is handed over |
|
|
99
|
+
| Numeric magnitude, change, or distribution | A chart appropriate to the data and comparison purpose | Actual values and units, axes, and comparison basis |
|
|
100
|
+
|
|
101
|
+
The table's composition is a set of options, not a fixed symbol dictionary. Use visual markers with the same role consistently within a document. If a symbol's meaning could be confused, place a short relationship explanation near the connected objects. When position and connecting lines alone do not settle the meaning, make the wording readable with them.
|
|
102
|
+
|
|
103
|
+
Use nesting and layering to reveal containment, dependency, or differences in level. Do not treat a simple shadow or overlap as evidence of a logical relationship. Adjust the arrangement if boundaries or content are obscured. Make equivalent elements recognizable as being at the same level, but differing amounts of content do not require every box to have the same area. Check that a difference cannot be mistaken for superiority or quantity.
|
|
104
|
+
|
|
105
|
+
### Selection order for directional expressions
|
|
106
|
+
|
|
107
|
+
For a relationship that must show direction, secure both the spacing between boxes and room for their content.
|
|
108
|
+
|
|
109
|
+
1. First check whether changing the box's end or boundary can express the content and direction together. The width for text and the distinction between concepts must remain intact.
|
|
110
|
+
2. If a modified box is unnatural, connect the flow with a short wedge within the standard spacing.
|
|
111
|
+
3. If a wedge cannot make the relationship and connected objects clear, use an arrow. Within the readable range, reduce the connection length and space reserved solely for it.
|
|
112
|
+
|
|
113
|
+
An arrow may be selected directly when it ensures visibility while also minimizing empty space. It is unnecessary to produce every alternative in sequence. Judge appropriateness by the actual screen's relationships, spacing, and readability rather than by the reason a symbol was selected. Do not apply this order to a relationship that does not need direction.
|
|
114
|
+
|
|
115
|
+
It must be clear what arrows, wedges, and pointed ends of boxes point from and to. When connecting lines obscure content or several lines overlap so the target becomes ambiguous, first redesign box positions, groupings, and the branch structure.
|
|
116
|
+
|
|
117
|
+
A step guide that states periods may use equal widths. If using a quantitative axis where length represents time, represent actual periods. Do not use axes, area, or height that makes a concept map appear to be a measured result; if confusion is possible, indicate near the diagram that it is a concept map. Retain the units, axes, and legends necessary to interpret numeric charts.
|
|
118
|
+
<!-- /criterion -->
|
|
119
|
+
|
|
120
|
+
<!-- criterion:c0007 -->
|
|
121
|
+
## 7. Allocate space to the body area and within groupings
|
|
122
|
+
|
|
123
|
+
First determine the area the body will use between the headline and introduction, and the conclusion and source. Allocate area to each grouping according to the amount of information needed to explain the central judgment, the reading order, and the relationship structure. Content slides should align the outer boundaries of higher-level groupings and use the entire body area.
|
|
124
|
+
|
|
125
|
+
Apply consistent horizontal and vertical spacing between groupings at the same level. For areas compared side by side, align their starting points and comparison baselines, and preserve row and column correspondence. Distinguish the internal whitespace of nested groupings from the spacing between higher-level groupings because their roles differ. When spacing differs, check the relationship that the difference conveys.
|
|
126
|
+
|
|
127
|
+
Space allocation must continue from outer boxes to internal titles, tables, rows, and text. If a box with a short explanation is largely empty while another box concentrates essential evidence in small text, reconsider the area allocation. Do not treat the space problem as solved merely because all boxes have the same size or text was moved to vertical center.
|
|
128
|
+
|
|
129
|
+
Check separately the space between the body boundary and the final grouping, and the space between the end of a grouping and its actual content. Also examine the space occupied by connecting symbols. Retain whitespace that distinguishes groupings and supports reading order. Reduce unnecessary empty areas by adjusting the arrangement, content amount, or line breaks, rather than filling them by only expanding spacing between sentences.
|
|
130
|
+
|
|
131
|
+
Cover, transition, or closing slides, and slides focused on one visual object, may use whitespace for attention and distinction. Judge its appropriateness by the slide's reading purpose and actual content arrangement. Do not make one empty-space ratio the passing threshold for every slide.
|
|
132
|
+
<!-- /criterion -->
|
|
133
|
+
|
|
134
|
+
<!-- criterion:c0008 -->
|
|
135
|
+
## 8. Adjust content volume and text arrangement together
|
|
136
|
+
|
|
137
|
+
Information density is achieved when the evidence and conditions needed for a judgment are included faithfully and can be read. In a presentation, the key point and relationships appear first; when read alone, definitions, interpretation, and conditions can be followed.
|
|
138
|
+
|
|
139
|
+
When space is lacking, remove redundant wording and adjust column widths, paragraph divisions, row heights, internal whitespace, and the area of each grouping. Place sentences with different roles separately, as with definitions and interpretations in a comparison table. Do not hide essential evidence by shrinking type or moving it to footnotes.
|
|
140
|
+
|
|
141
|
+
When space remains, first check whether necessary explanation is missing, then adjust grouping proportions, line arrangement, and actual content size. Do not add claims or figures absent from the source, or pad with the same statement. Line breaks in sentences and names follow units of meaning, and related units and conditions must not be read separately from the body.
|
|
142
|
+
|
|
143
|
+
When adjusting size, apply the document-wide criteria for each body level. Do not enlarge or reduce only the same level in a particular slide or box. If a common size changes, check every slide that uses that level.
|
|
144
|
+
|
|
145
|
+
When it is difficult to maintain semantic distinction and readability, simplify the structure or divide the slides at units where meaning is complete. If slide-count or output constraints make resolution impossible, state the conflicting constraints and remaining issue. Confirm readability at the actual delivery size.
|
|
146
|
+
<!-- /criterion -->
|
|
147
|
+
|
|
148
|
+
<!-- criterion:c0009 -->
|
|
149
|
+
## 9. Connect semantic levels within a slide to document-wide text sizes
|
|
150
|
+
|
|
151
|
+
Determine semantic hierarchy within each slide's body. First distinguish what is the higher-level concept and which items and explanations belong below it. Do not determine body text sizes by constructing a hierarchy among concepts across the whole document or by judging which slide's topic is more important.
|
|
152
|
+
|
|
153
|
+
Connect the levels determined on each slide to sizes shared across the document. Within a slide, express a higher level larger than a lower level, and make the difference between levels discernible on the actual screen. Text at the same level uses the same size even when it is on a different slide or in a different box. The number of levels and actual size values are set in the task specification; do not force a level that a slide does not need. If values have not been set, the author selects them based on delivery purpose, screen size, and content volume, then records them as the application standard.
|
|
154
|
+
|
|
155
|
+
| Situation | Basis for setting size |
|
|
156
|
+
|---|---|
|
|
157
|
+
| Different concepts on different slides occupy the same body level | Apply the same size without comparing the concepts' relationship or importance. |
|
|
158
|
+
| The same concept is used as a higher-level grouping on one slide and a detailed explanation on another | Apply the size appropriate to its level within each slide. |
|
|
159
|
+
| Text at the same level is long or differs only in form, such as a sentence versus a word | Keep the same size and adjust through width, line breaks, alignment, and arrangement. |
|
|
160
|
+
|
|
161
|
+
Do not determine a semantic level merely from the form of being a table header or bold. Base it on the actual role it plays in that slide's body. Classify table values and units by their meaning and reading role as well; do not rename a level as lower merely to fit content in smaller type. Manage size criteria for headlines, introductions, and sources separately from body levels.
|
|
162
|
+
|
|
163
|
+
Make the roles of higher-level area titles, column titles, lower-level titles, and body values visible. Distinguish them by adding background contrast, dividing lines, or boldness to size based on semantic level, while using the same emphasis treatment consistently for the same role within the document. Distinguish table headers from the first data row, and do not layer further emphasis when the distinction is already sufficient. Do not rely only on differences in a specific color.
|
|
164
|
+
|
|
165
|
+
Adjust if hierarchy is reversed or blurred on the actual screen even when level names or style settings are correct. Check size consistency and the validity of semantic-level classification separately.
|
|
166
|
+
<!-- /criterion -->
|
|
167
|
+
|
|
168
|
+
<!-- criterion:c0010 -->
|
|
169
|
+
## 10. Align text according to its form and reading purpose
|
|
170
|
+
|
|
171
|
+
Choose alignment according to the content form of the relevant block and the reading or comparison the reader performs. Even at the same semantic level, sentences and short labels may use different alignment.
|
|
172
|
+
|
|
173
|
+
| Content and reading mode | Basis for choosing alignment |
|
|
174
|
+
|---|---|
|
|
175
|
+
| Continuous sentences, long explanations, or multi-line evidence | Use alignment that makes it easy to read from the beginning of each line. Left alignment is usually appropriate. |
|
|
176
|
+
| Short labels, independent words, or a list of similarly sized words | Consider whether center alignment enables faster recognition of the grouping and comparison targets. Do not require it merely because the content is words. |
|
|
177
|
+
| Numbers whose magnitude is compared | Align the baseline needed for comparison, such as digit places or decimal points. Standardize units and notation. |
|
|
178
|
+
| Titles and explanations, table headers and values | Choose alignment appropriate to each role while preserving the correspondence between titles and content. |
|
|
179
|
+
|
|
180
|
+
Choose horizontal and vertical alignment separately. Centering a short label within a cell and aligning the starting line of a long explanation to the top may suit different reading tasks. Within the same comparison, standardize the alignment basis for items with the same role, form, and reading purpose.
|
|
181
|
+
|
|
182
|
+
Vertical centering is a choice that changes position within a cell. It does not justify excessive box height. When line breaks or content volume changes, recheck alignment and row-column correspondence.
|
|
183
|
+
<!-- /criterion -->
|
|
184
|
+
|
|
185
|
+
<!-- criterion:c0011 -->
|
|
186
|
+
## 11. Verify the source, wording, and visual expression separately
|
|
187
|
+
|
|
188
|
+
When comparing against the source, check that key concepts, figures, conditions, subjects, and relationships are preserved. On the screen, read separately the relationship stated by the actual wording and the relationship indicated by the arrangement, shape, and symbols, then check that they agree. Correct the expression if wording states correlation but a symbol implies causality, or if independent alternatives appear to be consecutive stages.
|
|
189
|
+
|
|
190
|
+
First verify the composition method on representative slides, then review the entire document after expansion. Titles, groupings, hierarchy, and flow must be readable without the author's explanation. When changing a common size or style, recheck every affected slide type.
|
|
191
|
+
|
|
192
|
+
In the final delivery format, inspect line breaks, contrast, dividing lines, backgrounds, connection targets, and page breaks. Check versions that omit some elements so they do not leave an empty space or broken reference. Also check whether the screen actually reviewed and the document to be delivered represent the same content.
|
|
193
|
+
|
|
194
|
+
Successful rendering, no overflow beyond the page, and the author's declaration of completion do not replace quality review. Retain evidence from source comparison and screen review, and distinguish items that were not verified from items whose judgment is ambiguous. After correcting remaining issues, recheck, or deliver with unresolved limitations stated.
|
|
195
|
+
<!-- /criterion -->
|
|
@@ -36,6 +36,15 @@ For `IMPLEMENTATION_MAP.html`, include one self-contained SVG service blueprint
|
|
|
36
36
|
that shows the whole service or implemented system at the right level of
|
|
37
37
|
abstraction.
|
|
38
38
|
|
|
39
|
+
## Slide And Presentation Work
|
|
40
|
+
|
|
41
|
+
When creating, revising, or reviewing slides or presentation materials, read the
|
|
42
|
+
normal guide at `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/guides/slide-writing.md` for
|
|
43
|
+
the semantic criteria before choosing a visual expression. Read its companion
|
|
44
|
+
runbook only for an explicitly applicable static HTML/PDF job path. This guide
|
|
45
|
+
helps make logical relationships visually readable; it does not replace the
|
|
46
|
+
that guide's source-fidelity, hierarchy, spacing, or review criteria.
|
|
47
|
+
|
|
39
48
|
## When To Use SVG
|
|
40
49
|
|
|
41
50
|
Prefer SVG when the visual needs any of these:
|
|
@@ -175,7 +175,11 @@ produce a green with no evidence behind it:
|
|
|
175
175
|
healed downstream or coinciding with a default. The runner must report build failure,
|
|
176
176
|
unreachable, and equivalent distinctly from KILLED and SURVIVED, and halt on a moved anchor.
|
|
177
177
|
More tests red than the mutation should touch indicts it; classify a survivor (rebuild,
|
|
178
|
-
discard, genuine gap) before writing a test.
|
|
178
|
+
discard, genuine gap) before writing a test. **Equivalent is a verdict about the probe as
|
|
179
|
+
much as the mutant**: a probe that is dead or returns a constant reports every mutant as
|
|
180
|
+
equivalent, and one aimed at an input the mutant does not affect reports the same. Refuse
|
|
181
|
+
the verdict unless the probe is shown to discriminate on UNMUTATED code and to exercise the
|
|
182
|
+
input the mutant targets — an unusable probe is its own outcome, not an equivalent mutant.
|
|
179
183
|
- **The probe that measured the original.** A copied script that derives its root or targets from
|
|
180
184
|
its own location (`$0`, `BASH_SOURCE`, a `cd` to its parent) scans the original tree, not the
|
|
181
185
|
copy, so its verdict says nothing about the mutation you planted. Pin the subject in the copy,
|
|
@@ -14,8 +14,9 @@ GUIDE = "guides/tooling-gotchas.md"
|
|
|
14
14
|
|
|
15
15
|
# (name, compiled trigger, one-line reminder, guide anchor). Priority order; max 2 injected.
|
|
16
16
|
#
|
|
17
|
-
# The anchor is the heading in tooling-gotchas.md this rule compresses. It exists because
|
|
18
|
-
#
|
|
17
|
+
# The anchor is the heading in tooling-gotchas.md this rule compresses. It exists because
|
|
18
|
+
# agent-bios registers this hook on Claude only — Codex has hooks of its own, they are simply
|
|
19
|
+
# not wired here — so the guide is what a Codex reader gets instead: a rule admitted here
|
|
19
20
|
# with no counterpart there would silently give the two hosts different guidance. The mapping
|
|
20
21
|
# is declared rather than matched, because a rule name and a guide heading do not share a
|
|
21
22
|
# string. --self-test checks every anchor against the guide AND its codex mirror.
|
|
@@ -224,11 +225,12 @@ def main() -> int:
|
|
|
224
225
|
|
|
225
226
|
|
|
226
227
|
def self_test() -> int:
|
|
227
|
-
"""Two halves, because this hook
|
|
228
|
+
"""Two halves, because this hook reaches the two hosts differently.
|
|
228
229
|
|
|
229
230
|
Claude gets the injection, so the first half runs the real entry point over real stdin and
|
|
230
|
-
requires the message out.
|
|
231
|
-
and the second half is the only thing that keeps the two hosts saying the same
|
|
231
|
+
requires the message out. Nothing registers this hook on Codex, so its equivalent is the
|
|
232
|
+
guide — and the second half is the only thing that keeps the two hosts saying the same
|
|
233
|
+
thing. Codex does have hooks; wiring them is open work, not a host limitation.
|
|
232
234
|
"""
|
|
233
235
|
import pathlib, subprocess
|
|
234
236
|
|
package/codex/AGENTS.md
CHANGED
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
## Multi-Model Workflow
|
|
86
86
|
|
|
87
87
|
- Codex-only standing authorization: on root/main local tasks, ordinary subagent dispatch is authorized when the `When To Spawn` gates fire. Explicit no-fan-out wins. Delegated agents may re-delegate only when their role allows. This grants no destructive, remote, credential, install, OAuth, push, live-network-expanding, or broader-sandbox authority.
|
|
88
|
-
- Standing spawn policy: check the spawn gates at every work-unit boundary — judgment latitude applies inside a gate, never to whether the gates are checked. Independence:
|
|
89
|
-
- Down-spawns carry a machine-checkable done-when on decision-complete work with staged output (no external irreversible actions) and
|
|
88
|
+
- Standing spawn policy: check the spawn gates at every work-unit boundary — judgment latitude applies inside a gate, never to whether the gates are checked. Independence: before presenting a load-bearing conclusion or taking an irreversible step, propose the cross-check unprompted; the user should never have to ask for it. Independence comes from the seat you dispatch to, so name it. Parallelism: two or more independent items spawn in parallel — SWEEP when each item applies one explicit rule and returns ambiguity as an exception, else WORKHORSE. Residual context: work whose log dwarfs the conclusion the main needs spawns with a bounded report contract. Escalation: an irreversible or authority-changing action ahead, two failed attempts, or two persisting design alternatives spawns a bounded FRONTIER judgment with a blind packet (evidence, constraints, rubric, neutral alternatives — never your draft conclusion) and a pre-noted change condition. Specifiability/de-minimis: work needing your live context, or whose verification would repeat the reasoning, or whose packet outweighs the work, stays inline.
|
|
89
|
+
- Down-spawns carry a machine-checkable done-when on decision-complete work with staged output (no external irreversible actions) and a tier pinned before dispatch. Record one line per gate decision — `SpawnGate: <gate> <tier> spawn|inline — <why>` — and for FRONTIER record the disposition afterward (what changed, or why nothing did). A launch contract's `Delegation=off` lifts the spawn obligation, not the records; explicit user no-fan-out always wins.
|
|
90
90
|
- For work spanning multiple models or CLI agents, context resets and handoffs, unattended LLM batches (including orchestrated subagent fleets), or parallel worktree branches, read and use `${CODEX_HOME:-$HOME/.codex}/guides/cli-multi-model-workflow.md` as a scoped extension of this section.
|
|
91
91
|
- For composing a prompt, packet, or tool description aimed at a specific model family — including cross-family review dispatch, porting a prompt written for an older model, or choosing a reasoning-effort level for a model family — read and use `${CODEX_HOME:-$HOME/.codex}/guides/gpt-prompting.md` for gpt-family targets and `${CODEX_HOME:-$HOME/.codex}/guides/claude-prompting.md` for claude-family targets as scoped extensions of this section.
|
|
92
92
|
- Allocate models by difficulty × blast radius, not phase name; when implementation ran on a cheaper tier, compensate by raising reviewer effort or adding a reviewer kind — never economize on implementation and verification at once.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name = "reviewer"
|
|
2
2
|
description = "Adversarial review focused on correctness, regressions, security, and missing tests."
|
|
3
3
|
model = "gpt-5.6-terra"
|
|
4
|
-
model_reasoning_effort = "
|
|
4
|
+
model_reasoning_effort = "xhigh"
|
|
5
5
|
sandbox_mode = "read-only"
|
|
6
6
|
|
|
7
7
|
developer_instructions = """
|
package/codex/agents/sweep.toml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
name = "sweep"
|
|
2
|
-
description = "
|
|
2
|
+
description = "Read-only checks applying one explicit rule to each item; report ambiguity as an exception."
|
|
3
3
|
model = "gpt-5.6-luna"
|
|
4
|
-
model_reasoning_effort = "
|
|
4
|
+
model_reasoning_effort = "max"
|
|
5
5
|
sandbox_mode = "read-only"
|
|
6
6
|
|
|
7
7
|
developer_instructions = """
|
|
8
|
-
|
|
8
|
+
Apply one explicit rule to each item in the supplied inputs and stop at the declared boundary. Read-only: do not edit, broaden scope, choose architecture, or seek authority. Use relevant tools, parallelize independent reads, and surface ambiguity instead of inferring intent. Return status, the non-empty items_checked, findings, proving evidence/command, and risks_or_escalations.
|
|
9
9
|
"""
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name = "workhorse"
|
|
2
2
|
description = "Bounded implementation, fixes, and per-item judgment for delegated Codex work."
|
|
3
3
|
model = "gpt-5.6-terra"
|
|
4
|
-
model_reasoning_effort = "
|
|
4
|
+
model_reasoning_effort = "xhigh"
|
|
5
5
|
|
|
6
6
|
developer_instructions = """
|
|
7
7
|
Complete one bounded implementation, fix, or per-item judgment from a packet naming objective, frozen scope/inputs, allowed actions, output, done-when, and verification. Preserve out-of-scope behavior, batch independent reads, and escalate missing decisions/authority. Inherit sandbox; dangerous, remote, credential, install, OAuth, push, or live-network-expanding actions require exact original-user authorization. Run the narrowest reliable changed-path check and report status, files_or_items_touched, evidence, verification or gap, and risks_or_escalations.
|
|
@@ -18,5 +18,5 @@ description = "Bounded implementation, fixes, and per-item judgment for delegate
|
|
|
18
18
|
config_file = "${CODEX_HOME}/agents/workhorse.toml"
|
|
19
19
|
|
|
20
20
|
[agents.sweep]
|
|
21
|
-
description = "
|
|
21
|
+
description = "Read-only checks applying one explicit rule to each item; report ambiguity as an exception."
|
|
22
22
|
config_file = "${CODEX_HOME}/agents/sweep.toml"
|
|
@@ -9,21 +9,26 @@ use_when:
|
|
|
9
9
|
- porting a prompt written for an older claude model
|
|
10
10
|
- deciding a reasoning-effort level for claude work
|
|
11
11
|
core_rules:
|
|
12
|
+
- choose guidance by the actual target model — Fable 5.1 and Opus 5 need different progress, delegation, and verification tuning
|
|
12
13
|
- state the goal, the constraints, and the reason behind the request; let the model choose the route
|
|
13
|
-
-
|
|
14
|
+
- compare inherited process scaffolding on the target model before keeping or removing it
|
|
14
15
|
- put the full task specification in the first turn for long-horizon work rather than revealing it across turns
|
|
15
16
|
- make tool descriptions prescriptive about when to call, not only what the tool does
|
|
16
17
|
- require progress claims to be audited against a tool result from the same session
|
|
17
18
|
- name the boundary explicitly — what to do without asking, and what to stop and ask about
|
|
18
|
-
derived_at: 2026-09-
|
|
19
|
+
derived_at: 2026-09-07
|
|
19
20
|
source_pins:
|
|
20
21
|
- doc: prompting-claude-opus-5
|
|
21
22
|
sha256: 65be3e0b437cbe23cc41bb4f9b7a5031c5a71cd49ab91ec4d19c62738762b086
|
|
22
|
-
pinned_at: 2026-09-
|
|
23
|
+
pinned_at: 2026-09-07
|
|
23
24
|
- doc: claude-prompting-best-practices
|
|
24
|
-
sha256:
|
|
25
|
-
pinned_at: 2026-09-
|
|
25
|
+
sha256: f98aa130a7974b2edf98f8c3babe806ab140d5cdd3933a506f5211335b431c5f
|
|
26
|
+
pinned_at: 2026-09-07
|
|
27
|
+
- doc: prompting-claude-fable-5-1
|
|
28
|
+
sha256: 4aa645dd26fe9efebdaaff7462563bfac1f27782ce2d71dd5afffeaf02a80c62
|
|
29
|
+
pinned_at: 2026-09-07
|
|
26
30
|
targets:
|
|
31
|
+
- claude-fable-5-1
|
|
27
32
|
- claude-fable-5
|
|
28
33
|
- claude-opus-5
|
|
29
34
|
- claude-sonnet-5
|
|
@@ -32,6 +37,7 @@ verification_focus:
|
|
|
32
37
|
- prompt changes are A/B'd against the prior scaffolding rather than assumed
|
|
33
38
|
- effort changes are swept across levels on a real eval set, not chosen by reputation
|
|
34
39
|
- per-model constraints are confirmed against the live surface before use
|
|
40
|
+
- model-specific advice stays within its named section, including after assembly
|
|
35
41
|
---
|
|
36
42
|
|
|
37
43
|
# Claude Prompting Guide
|
|
@@ -41,26 +47,56 @@ composing a prompt for a claude-tier model — a review packet dispatched
|
|
|
41
47
|
cross-family, a subagent brief, or the main's own instructions when the main is
|
|
42
48
|
Claude.
|
|
43
49
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
Use the shared recipe and checklist together with the section for the model being
|
|
51
|
+
prompted, even when a subagent uses a different model from the main. Model-specific
|
|
52
|
+
tuning preserves the corpus's permission boundaries and required verification.
|
|
53
|
+
|
|
54
|
+
| Target | Apply |
|
|
55
|
+
| --- | --- |
|
|
56
|
+
| `claude-fable-5-1` | Shared recipe and Claude Fable 5.1 |
|
|
57
|
+
| `claude-opus-5` | Shared recipe and Claude Opus 5 |
|
|
58
|
+
| `claude-fable-5`, `claude-sonnet-5`, `claude-haiku-4-5` | Shared recipe; consult the target's own guidance before borrowing another model's tuning |
|
|
49
59
|
|
|
50
60
|
## Default prompt recipe
|
|
51
61
|
|
|
52
|
-
- `Goal` and the **reason behind it** —
|
|
53
|
-
context
|
|
54
|
-
"I'm doing X for Y, who needs Z; with that in mind: …" outperforms the bare
|
|
55
|
-
request, most of all for long-running agents holding several workstreams.
|
|
62
|
+
- `Goal` and the **reason behind it** — provide the audience, purpose, and relevant
|
|
63
|
+
context so the model does not have to infer the intent.
|
|
56
64
|
- `Success criteria` — what done means and how it is checked.
|
|
57
|
-
- `Constraints and boundaries` —
|
|
58
|
-
unrequested-but-adjacent actions; naming the boundary is the fix.
|
|
65
|
+
- `Constraints and boundaries` — state the permitted scope and approval conditions.
|
|
59
66
|
- `Tools` — each description states **when to call it**, not only what it does.
|
|
60
|
-
|
|
67
|
+
Name prerequisite retrieval and validation when correctness depends on them.
|
|
61
68
|
- `Output` — the artifact shape and the register.
|
|
62
69
|
|
|
63
|
-
##
|
|
70
|
+
## Claude Fable 5.1
|
|
71
|
+
|
|
72
|
+
- Begin effort experiments at `high`; compare supported levels afresh. Identical
|
|
73
|
+
effort names need not have identical costs across models.
|
|
74
|
+
- Request brief start, progress, and final updates; first verify the client renders
|
|
75
|
+
updates and remove conflicting silence instructions.
|
|
76
|
+
- Batch independent tool calls. Let the lead do independent work while subagents run.
|
|
77
|
+
- Complete authorized requests, including promised next steps. State genuine approval
|
|
78
|
+
boundaries and whether a person is available; avoid unnecessary pauses.
|
|
79
|
+
- Ask for literal prose and useful formatting. Demonstrate how retrieved quotations
|
|
80
|
+
should be marked and attributed.
|
|
81
|
+
- Keep edits targeted and tests proportional to the requested behavior; report
|
|
82
|
+
unrelated issues separately.
|
|
83
|
+
- At `low`, explicitly trigger retrieval for current facts instead of trusting name
|
|
84
|
+
recognition. Compare higher effort when retrieval still fails.
|
|
85
|
+
- Preserve decisions, constraints, open work, and exact details in compaction summaries.
|
|
86
|
+
- Append API history unchanged; use supported compaction instead of replaying thinking
|
|
87
|
+
against an edited prefix.
|
|
88
|
+
- At `xhigh`/`max`, budget tokens for thinking and the deliverable; compare `high` for
|
|
89
|
+
long outputs.
|
|
90
|
+
- Give dense-image work crop and zoom tools.
|
|
91
|
+
|
|
92
|
+
These are prompt and harness tuning choices, not changes to the configured seat's
|
|
93
|
+
effort or permissions. The Opus-specific advice below does not apply to this model.
|
|
94
|
+
|
|
95
|
+
## Claude Opus 5
|
|
96
|
+
|
|
97
|
+
The following behavior claims and tuning recommendations apply to `claude-opus-5`.
|
|
98
|
+
|
|
99
|
+
### When to add blocks
|
|
64
100
|
|
|
65
101
|
- Long-horizon or autonomous work: give the full spec up front in one
|
|
66
102
|
well-specified turn and run at a high effort. Do **not** add a self-check
|
|
@@ -90,21 +126,18 @@ pick the path.
|
|
|
90
126
|
- Progress reporting: require each claim to be traceable to a tool result from
|
|
91
127
|
the session, and unverified work to be labeled as such.
|
|
92
128
|
|
|
93
|
-
|
|
129
|
+
### How to choose prompt shape
|
|
94
130
|
|
|
95
131
|
- One bounded question with a self-contained packet → a single run. Default for
|
|
96
132
|
review.
|
|
97
133
|
- Independent workstreams → delegate, and prefer asynchronous subagents over
|
|
98
134
|
spawn-and-block: long-lived agents keep their context instead of rebuilding it
|
|
99
135
|
per subtask, and the orchestrator is not pinned to the slowest one.
|
|
100
|
-
-
|
|
101
|
-
and
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
often *reduces* turn count and total cost on agentic work, and some tasks land
|
|
106
|
-
equally well a level down. Effort does not control response length — see
|
|
107
|
-
Working rules.
|
|
136
|
+
- Start effort experiments at `high`; compare lower settings on representative
|
|
137
|
+
tasks and step up to `xhigh` for demanding coding or agentic work when quality
|
|
138
|
+
improves. Re-test inherited defaults. The configured seat's effort remains an
|
|
139
|
+
explicit workload choice. Effort does not control response length — see Working
|
|
140
|
+
rules.
|
|
108
141
|
- Per-model constraints differ across the `targets` bindings — thinking
|
|
109
142
|
configuration, sampling parameters, and effort support are not uniform, and
|
|
110
143
|
the sweep binding is the most restricted. On the helm binding, for instance,
|
|
@@ -113,7 +146,7 @@ pick the path.
|
|
|
113
146
|
live surface before relying on it in a dispatch; do not assume the frontier
|
|
114
147
|
binding's rules apply to the sweep one.
|
|
115
148
|
|
|
116
|
-
|
|
149
|
+
### Working rules
|
|
117
150
|
|
|
118
151
|
- Expect long turns. A single request on a hard task at high effort can run for
|
|
119
152
|
minutes; plan timeouts, streaming, and progress UX around that rather than
|
|
@@ -143,7 +176,7 @@ pick the path.
|
|
|
143
176
|
- Instruction following stays consistent across the full context window, so a
|
|
144
177
|
rule does not need restating near the end to survive a long session.
|
|
145
178
|
|
|
146
|
-
|
|
179
|
+
### Running with thinking disabled
|
|
147
180
|
|
|
148
181
|
Disabling thinking is accepted only at `high` effort or below, and it is usually
|
|
149
182
|
the wrong lever: thinking on at `low` effort generally beats thinking off at
|
|
@@ -173,20 +206,20 @@ delete it: that instruction increases tag leakage rather than suppressing it.
|
|
|
173
206
|
2. Name the boundaries — what to do freely, what to stop and ask about.
|
|
174
207
|
3. Give each tool a when-to-call description.
|
|
175
208
|
4. Say how progress claims must be grounded, and how the deliverable should read.
|
|
176
|
-
5.
|
|
177
|
-
|
|
178
|
-
|
|
209
|
+
5. Apply the target model's section and check for contradictions. Compare changes
|
|
210
|
+
on the same tasks; remove inherited scaffolding only when the target benefits,
|
|
211
|
+
keeping required repository checks and permission boundaries intact.
|
|
179
212
|
|
|
180
213
|
## Sources
|
|
181
214
|
|
|
182
|
-
|
|
183
|
-
`claude-
|
|
184
|
-
|
|
185
|
-
|
|
215
|
+
The shared recipe is derived from `claude-prompting-best-practices`; the Fable 5.1
|
|
216
|
+
section from `prompting-claude-fable-5-1`; and the Opus 5 section from
|
|
217
|
+
`prompting-claude-opus-5`. `source_pins` records the exact bytes used for this
|
|
218
|
+
derivation. Fable 5.1 has its own prompting document; model names in `targets` do
|
|
219
|
+
not extend the Opus-specific behavior claims to other models.
|
|
186
220
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
rather than editing around the old rules.
|
|
221
|
+
When a `targets` model changes, re-derive its advice from its own current document
|
|
222
|
+
and check the shared recipe for conflicts.
|
|
190
223
|
`launch/check-prompting-targets.sh` fails when the launch config binds a model
|
|
191
224
|
this guide does not list; that check is about **naming**, and a model added to
|
|
192
225
|
`targets:` satisfies it forever. Whether the guidance was actually re-derived is
|