Repository navigation
Prompt audit 2026-09-27: facts refuter exceptions, hash prose, split-table log check - #443
Merged
seathatflowsinourveins merged 2 commits intoSep 28, 2026
Merged
Conversation
5 tasks done
…table log check Resolves the template, README and anti-pattern-log items of the 2026-09-27 prompt audit by cross-family convergence: the GPT-6 packaged runner and a Claude evidence-reviewer judged a frozen packet; split items went to one adjudication round, each family twice, in both orders, applied only when unanimous. - templates.json facts: after "Default to refuted=true when uncertain." name the unknown-field, maintenance and license exceptions (F3, X7). The capitals stay (F2). - tests: a facts-refuter test (fails on the base templates), PROMPTS_SHA256_CURRENT recomputed to 11fcd523..., and the license comment made consistent. - landscape-sweep README and the 2026-09-26 run's evidence README: stop quoting the superseded prompt hash as current (N1). - docs/harness-defaults.md: remove the blank line that ended the anti-pattern table, reject a split table in the log check, and add four dated rows (N2, N3). - docs/decisions/2026-09-27-prompt-audit-resolution.md and sanitized evidence under evidence/artifacts/prompt-audit-20260927/. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Hot-file protocol (docs/lanes.md): main's manifests/evidence.json, re-registering the six changed files main already lists, the decision record and the 43 new files under evidence/artifacts/prompt-audit-20260927/; component_matrix.py --write and new_host_grand_list.py --write left their reports unchanged; validate.py passed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
force-pushed
the
claude/prompt-audit-templates-20260927
branch
from
September 28, 2026 02:08
e717e3e to
a7470ba
Compare
seathatflowsinourveins
deleted the
claude/prompt-audit-templates-20260927
branch
September 28, 2026 02:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
/claude-api prompt-auditrun through cross-family convergence.evidence-reviewer.ba1700ad(OSV allowlist: scope each allowed lock to its reviewed advisories, bound to the lock's sha256 and reachability evidence #441). Head:a7470bac, a content commit followed by the registration commit. It was verified onb26add90(GPT-6 gateway lane on the all-engines OmniRoute instance: static headers and a one-slash model #439). The rebase over OSV allowlist: scope each allowed lock to its reviewed advisories, bound to the lock's sha256 and reachability evidence #441 and Capability-gate host receipts round 2 at main eb5ca78a (supersede the first recording; GPT-6 review agree) + dashboard gate row #442 overlapped onlymanifests/evidence.json, which was re-registered by the hot-file protocol.lane:foundationtools/sota-convergence/landscape-sweep/templates.json: thefactskey only (F3, X7). After "Default to refuted=true when uncertain." one sentence now names the exceptions for unknown fields, maintenance and licenses, in line withcommonandfit(Top rule as an upstream-verification procedure, merit-only selection, and a dated anti-pattern log (user-approved global instructions) #371, Landscape-sweep templates: OpenSSF Scorecard maintenance rule; licenses never a refutation reason #385). Its unknown-field wording is broader thancommon's commit-fact rule, which the decision record lists as a limitation. The all-caps scope words stay (F2, kept 4 of 4).tests/test_landscape_sweep_harness.py:PROMPTS_SHA256_CURRENTrecomputed to11fcd523…0107with the test's own helpers (PROMPTS_SHA256_20260926is kept);tools/sota-convergence/landscape-sweep/README.mdandevidence/artifacts/landscape-sweep-20260926/README.md: they no longer present the superseded3adfbed7…as the current template hash (N1).PROMPTS_SHA256_CURRENTand names the ledger entry as the run's registered record.docs/harness-defaults.md: onmaina blank line ends the anti-pattern table after its eighth row, so GitHub renders the remaining rows as plain text. That line is removed (N2), and four dated rows are added (N3).tests/test_adoption_docs_consistency.py: the log check now rejects a split table (N2).docs/decisions/2026-09-27-prompt-audit-resolution.mdand the sanitized evidence underevidence/artifacts/prompt-audit-20260927/: the packet, sources, both rounds' returns, the adjudication inputs and mapping,decisions.json,usage.json, prompt construction, the review round and the controls.manifests/evidence.json: registration only, in the last commit. No generated report changed.SHA256SUMS(X6, X10);CLAUDE.md(X9 split, see Residuals).lane:shared) carries theAGENTS.mditems (F1, F4). It is held as a draft while X9 gets a second, research-convergence round with an executed comparison, whose result lands in Prompt audit rounds 2-3: AGENTS.md F1, F4, S1 and X5b; X9 applied to CLAUDE.md, 4 of 4 blind judgments; dashboard manifest bound #444.SOTA sources
docs/convergence-architecture.md) and its split rule (tools/sota-convergence/README.md: a split stays pending);docs/decisions/2026-09-26-harness-rules-cleanup.md.tools/sota-convergence/landscape-sweep/codex_call.sh/codex_job.py: codex-cli 0.157.1,gpt-6-astraat effortmax, read-only, live web search,--ignore-user-config.f92023a3f77879f96e0c9c1305f289d755be4bb6:docs/checks.md,checks/evaluation/maintained.goandchecker/check_result.go. They cover the Maintained check and what an inconclusive result means.commonandfitrules (Top rule as an upstream-verification procedure, merit-only selection, and a dated anti-pattern log (user-approved global instructions) #371, Landscape-sweep templates: OpenSSF Scorecard maintenance rule; licenses never a refutation reason #385), whichsweep.jssends in the same prompt asfacts.6dc6324f(examples/gpt-5/gpt-5_prompting_guide.ipynb);PROMPTS_SHA256_CURRENTintests/test_landscape_sweep_harness.py, is the one source of the current value.evidence/artifacts/prompt-audit-20260927/sources.json(S1-S14 and seven searches that found nothing) andsources-supplement.json(T1-T3).Evidence-class table
controls/f3x7-1-new-test-on-base-templates.txt(FAILED),f3x7-2-…(OK)controls/f3x7-3-base-pin-on-head-templates.txt: the base pin fails with11fcd523… != f64eec22…controls/n2-1…n2-4: the base check returns[]on the mutant, the new check reports one error,FAILEDon the base page,OKon the headcontrols/pr1-modules-after.txt:Ran 160 tests,OK (skipped=4); the skip reasons are listedround1/,adjudication/,decisions.json,usage.jsoncontrols/env-1-two-failures-on-base.txt)Local commands run
The two unittest failures are this host's, not the change's: both fail identically on the unmodified base
b26add90(evidence/artifacts/prompt-audit-20260927/controls/env-1-two-failures-on-base.txt).Decision record
docs/decisions/2026-09-27-prompt-audit-resolution.md: each item's verdicts, sources, checks with their failing controls, alternatives, overturn conditions and limitations.Review round
evidence-reviewer, covering both diffs, and one read-only GPT-6codex execper head reviewed the first local heads before either was pushed. The prompts and answers are inevidence/artifacts/prompt-audit-20260927/review/.stack-verifierthen re-ran the checks on70a9a271and confirmed 11 of 12 claims: the pin recomputed with the test's own helpers, every control, the table rows as full-line sets, registration hashes, token counts, usage tables, the adjudication tallies resolved throughmapping.json, and the privacy scan.dir="/tmp". The control header and the record now describe each mechanism.Residuals
X9 (
CLAUDE.md:3-4) split 2-2. Both families agree the line asks the model to run commands it cannot type, but the adjudications split on the fallback text, with each family choosing its own lane in both orders. Both texts are in the decision record, and no edit was made here. A second round with an executed comparison follows in Prompt audit rounds 2-3: AGENTS.md F1, F4, S1 and X5b; X9 applied to CLAUDE.md, 4 of 4 blind judgments; dashboard manifest bound #444.X8: "after the current foundation work" is undefined in eight places. It is permission text, so only the user can define or close it.
X5: the portable template's top rule has drifted from the host's user-level file. That is the operator's call.
X6 and X10: decided in round 1, with no change. The scripts are vendored and byte-identity checked, so any change belongs upstream in agent-lab.
Host: a stray
/tmp/.gitdirectory breaks two tests, on the base too. One passesdir="/tmp". The other's fixture starts its runner child withoutTMPDIR, and the child refuses/tmp. Both checks count any.gitentry as a repository (controls/env-1-two-failures-on-base.txt).N1, left unchanged on purpose: some dated records still say the packaged templates reproduce
3adfbed7…:catalogs/saturation/ledger.json:2846;lanes.jsonandcatalogs/sota-convergence/manifest-20260926.json;--limit.The corrected, dated statement is at the top of that README.
Merge order: if this PR and another that adds anti-pattern rows both touch the log, whoever merges second rebases and keeps every row. The new check rejects a table split by a blank line.
Host evidence
Not applicable: no file under
evidence/hosts/changed.Checklist
permissions: contents: read(none changed).scripts/validate.py --scan-file, and host paths and the session URL are replaced with placeholders.🤖 Generated with Claude Code