Role system_prompts are inert on mission turns, so a team without a recipe has no default brief and every caller must write one (v2 wrote the wrong one: 0/50 calls read the record). The recipe points the phase at /mission/memory/PROJECT-MEMORY.md, requires verbatim quotes only where a pattern is reported, and names the clean-record and no-record outcomes as passes — the v3 condition failed a correct clean audit for paraphrasing. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
47 lines
3.6 KiB
TOML
47 lines
3.6 KiB
TOML
key = "self_audit"
|
|
title = "Self-audit"
|
|
blurb = "Read every judge verdict this repository's missions have earned, find what keeps failing, and propose evidence-backed changes to how the work is set up."
|
|
# The subject is the repo brain, exported into the mission as
|
|
# /mission/memory/PROJECT-MEMORY.md. It exists only for missions with a repo.
|
|
requires_repo = true
|
|
|
|
# `continuous_improvement` existed without a recipe, so every mission that used
|
|
# it had to write its own brief — and the brief is the only thing that aims a
|
|
# mission. Role `system_prompt`s are inert on mission turns (they reach chat,
|
|
# not missions). Measured 2026-09-22: with the role prompts retargeted at the
|
|
# record and a brief left over from v1, 0 of 50 tool calls read the record and
|
|
# the judge passed an audit of a ROSTER.md. With the brief below, the record
|
|
# was read and the audit got the right answer. See docs/TEMPLATE-MATURITY.md.
|
|
default_team_template = "continuous_improvement"
|
|
|
|
[[phases]]
|
|
kind = "research"
|
|
order_idx = 0
|
|
[phases.config]
|
|
default_topology = "pipeline"
|
|
task = """
|
|
Audit what this repository's missions have learned.
|
|
|
|
The record is /mission/memory/PROJECT-MEMORY.md: one line per judged phase of every mission on this repository — MET or UNMET, the phase kind, the completion condition, and the judge's reason. That record is the whole subject of this audit. Do not look for agent brain files, rosters or anything else to audit; there is nothing else.
|
|
|
|
If the file is absent, the repository has no judged history yet. Write that in research/IMPROVEMENT-AUDIT.md and stop — that is a complete audit.
|
|
|
|
Otherwise:
|
|
|
|
1. Count the lines, and how many are MET and how many UNMET. State the numbers.
|
|
2. Look for patterns, not incidents: the same kind of work failing more than once, the judge asking for the same missing thing more than once, a condition that passed only after several iterations. One UNMET line is an incident, not a pattern — name it as an incident and propose nothing for it.
|
|
3. For each pattern, quote the record lines it rests on, copied verbatim as they appear in the file. A paraphrase or a summary table is not evidence; the quoted lines are.
|
|
4. For each pattern, propose ONE change to how the work is set up — a reworded completion condition (old and new wording), a missing skill, a recipe setting, a task brief — and say why it would have turned those UNMET lines into MET. A proposal that fewer than two lines support is dropped, not softened.
|
|
5. If the record shows no failure pattern, say so, and say that no change is warranted. That is a correct result, and on a thin or clean record it is the expected one. Never invent a pattern to have something to report.
|
|
|
|
You cannot apply anything and there is nothing to submit to. Write everything to research/IMPROVEMENT-AUDIT.md; the operator decides.
|
|
"""
|
|
# Wording follows the measured rule: say what the file CONTAINS. The v3 run's
|
|
# condition said "quotes the record lines each finding rests on" and the judge
|
|
# failed an audit with no failure patterns for paraphrasing its observations.
|
|
# The quoting requirement now attaches to what needs evidence — a reported
|
|
# pattern — and the clean-record outcome is named so it reads as a pass.
|
|
done_when = "research/IMPROVEMENT-AUDIT.md exists and either states that no project record was present, or states how many verdict lines the record contains with the MET and UNMET counts and then, for each failure pattern it reports, quotes at least two record lines verbatim and proposes one change, or states that the record shows no failure pattern and no change is warranted"
|
|
max_iterations = 2
|
|
commit_policy = "always"
|