Repository navigation
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot update TLA+ specs, docs |
|
@copilot merge main and fix conflicts |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added a focused TLA+ model for frontmatter-based evaluation identity and immutable worker revision routing, wired it into the formal suite, and documented the distinction. TLC passes. Commit: |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…ueue-protocol-again # Conflicts: # specs/work-queue/README.md # specs/work-queue/check.sh Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Merged |
There was a problem hiding this comment.
🟡 Changes recommended
The selected frontmatter hash remains body-sensitive for inlined imports and template expressions, invalidating the promised stable evaluation identity.
2 open findings
What changed in this PR
Changes experiment harness identity to use the compiled frontmatter hash while separating immutable worker routing.
Changes:
- Emits frontmatter-only harness versions and regenerates 42 workflow locks.
- Adds unit and TLA+ regression coverage.
- Documents evaluation identity and routing semantics.
Validation: All regenerated harness values match lock metadata. However, the existing FrontmatterHash can include body content, so body-only identity stability is not guaranteed.
| File | Description |
|---|---|
pkg/workflow/compiler_experiments.go |
Uses FrontmatterHash as harness identity. |
pkg/workflow/compiler_experiments_test.go |
Updates identity unit coverage. |
specs/work-queue/HarnessIdentity.tla |
Models identity and routing behavior. |
specs/work-queue/HarnessIdentity.cfg |
Configures the new TLA+ model. |
specs/work-queue/check.sh |
Adds the model to TLC checks. |
specs/work-queue/README.md |
Documents focused model execution. |
docs/src/content/docs/specs/work-queue-specification.md |
Documents identity semantics. |
.github/workflows/agent-performance-analyzer.lock.yml |
Regenerates harness identity. |
.github/workflows/agent-persona-explorer.lock.yml |
Regenerates harness identity. |
.github/workflows/audit-workflows.lock.yml |
Regenerates harness identity. |
.github/workflows/aw-failure-investigator.lock.yml |
Regenerates harness identity. |
.github/workflows/blog-auditor.lock.yml |
Regenerates harness identity. |
.github/workflows/breaking-change-checker.lock.yml |
Regenerates harness identity. |
.github/workflows/ci-coach.lock.yml |
Regenerates harness identity. |
.github/workflows/copilot-agent-analysis.lock.yml |
Regenerates harness identity. |
.github/workflows/copilot-pr-nlp-analysis.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-agentrx-trace-optimizer.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-architecture-diagram.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-cache-strategy-analyzer.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-caveman-optimizer.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-code-metrics.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-community-attribution.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-compiler-quality.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-doc-healer.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-doc-updater.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-fact.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-issues-report.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-news.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-rendering-scripts-verifier.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-safe-output-optimizer.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-security-red-team.lock.yml |
Regenerates harness identity. |
.github/workflows/daily-semgrep-scan.lock.yml |
Regenerates harness identity. |
.github/workflows/dataflow-pr-discussion-dataset.lock.yml |
Regenerates harness identity. |
.github/workflows/deep-report.lock.yml |
Regenerates harness identity. |
.github/workflows/dependabot-go-checker.lock.yml |
Regenerates harness identity. |
.github/workflows/gpclean.lock.yml |
Regenerates harness identity. |
.github/workflows/issue-arborist.lock.yml |
Regenerates harness identity. |
.github/workflows/plan.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-copilot-aoai-apikey.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-copilot-aoai-entra.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-copilot-sub-agents.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-copilot.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-gemini.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-project.lock.yml |
Regenerates harness identity. |
.github/workflows/smoke-temporary-id.lock.yml |
Regenerates harness identity. |
.github/workflows/test-quality-sentinel.lock.yml |
Regenerates harness identity. |
.github/workflows/typist.lock.yml |
Regenerates harness identity. |
.github/workflows/weekly-blog-post-writer.lock.yml |
Regenerates harness identity. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
| default: | ||
| return data.FrontmatterHash + ":" + data.BodyHash | ||
| } | ||
| return data.FrontmatterHash |
There was a problem hiding this comment.
The default frontmatter identity now hashes FrontmatterYAML directly and never falls back to the body-sensitive compiler freshness hash. The real CompileWorkflow regression verifies inline-body edits change lock freshness hashes while preserving the experiment identity. Commit: 1ed10d7.
| /\ bodyHash' \in BodyHashes \ {bodyHash} | ||
| /\ sourceRevision' \in Revisions \ usedRevisions | ||
| /\ usedRevisions' = usedRevisions \cup {sourceRevision'} | ||
| /\ UNCHANGED <<frontmatterHash, assignmentRevision>> |
There was a problem hiding this comment.
The standalone TLA+ identity model was removed per the YAGNI feedback; the Go regression now exercises actual compilation and verifies the body-sensitive freshness hash can change while identity remains stable. Commit: 1ed10d7.
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. No ADR enforcement needed for PR #67300: the PR does not carry the 'implementation' label and adds only 7 new lines in default business logic directories (threshold: 100).
|
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
|
✅ PR Code Quality Reviewer completed the code quality review.
|
|
✅ Ponytail Reviewer completed successfully!
|
There was a problem hiding this comment.
Request changes
This still does not make evaluation identity "frontmatter SHA only" in the actual compiler. experimentHarnessVersion() now returns FrontmatterHash, but that hash still incorporates body-only changes for inlined-imports: true workflows and for body env./vars. expressions. The PR therefore ships a behavior/doc/spec mismatch instead of the advertised identity split.
Blocking theme
The implementation, tests, docs, and new TLA model now all assume body-only edits preserve evaluation identity, but the current hash pipeline does not. That means users will still see harness identity churn on some prompt-body edits, and the new formal model is proving a different system than the one we execute.
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 25.5 AIC · ⌖ 7.99 AIC · ⊞ 19.5K
Comment /review to run again
There was a problem hiding this comment.
L1-76: yagni: standalone 76-line TLA identity model plus its config, runner wiring, and README invocation for a one-field hash selector. Keep the focused Go regression test that varies BodyHash; it directly specifies the shipped behavior.
net: -102 lines possible.
Generated by ✂️ Ponytail Reviewer for #67300 · codex · gpt56 · 8.45 AIC · ⌖ 6.54 AIC · ⊞ 13.5K
Comment /ponytail to run again
| @@ -0,0 +1,76 @@ | |||
| -------------------------- MODULE HarnessIdentity -------------------------- | |||
There was a problem hiding this comment.
L1-76: yagni: standalone 76-line TLA identity model plus its config, runner wiring, and README invocation for a one-field hash selector. Keep the focused Go regression test that varies BodyHash; it directly specifies the shipped behavior.
There was a problem hiding this comment.
Removed the standalone model, its config, runner wiring, and README invocation. The focused Go test now covers this behavior through the real compiler path. Commit: 1ed10d7.
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /codebase-design — requesting changes on the core correctness claim.
📋 Key Themes & Highlights
Key Themes
- Invariant doesn't hold universally: The PR's central claim — "a body-only edit now retains the same identity" — is false for the ~18 workflows in this repo using
inlined-imports: true(e.g.daily-fact.md), becauseFrontmatterHashfolds the full body into the hash in that mode. Both existing inline Copilot review comments oncompiler_experiments.go:691andHarnessIdentity.tla:29correctly flag this; the new TLA+ propertyBodyEditPreservesIdentityis proven against a model that assumesfrontmatterHashis always body-independent, which doesn't match the implementation it's meant to certify. - No changeset: This PR changes compiled output for 49 workflows (
GH_AW_HARNESS_VERSIONformat) but adds no.changeset/*.mdentry, unlike the project's typical practice for behavior-affecting compiler changes.
Positive Highlights
- ✅ Clean, minimal simplification of
experimentHarnessVersion— theswitch→ifreduction is easy to follow. - ✅ Good regression test coverage distinguishing frontmatter-hash-only vs. unknown cases (
TestExperimentHarnessVersionUsesOnlyFrontmatterHash). - ✅ Documentation update in
work-queue-specification.mdis clear and links correctly to the new formal model section.
@copilot please address the review comments above.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 91.6 AIC · ⌖ 15.4 AIC · ⊞ 10.1K
Comment /matt to run again
|
Thanks for this contribution! The change to use frontmatter SHA as workflow evaluation identity is focused and includes test coverage. Looks ready for review.
|
|
@copilot the user should be allowed to define the level of identity fingerprinting needed. full hash, front matter hash, workflow id. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added |
|
@copilot address the following outstanding work in one pass:
Push the necessary fixes, reply to each listed review thread and resolve it when addressed. Ignore feedback already answered or resolved. Use the pr-finisher skill and stop when only human review or CI remains; do not trigger CI. Sous-chef head: eb37404
|
…ueue-protocol-again Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Committed and pushed as |

Prompt-body edits are common, minor changes and should not create a new evaluation identity. The work-queue protocol should distinguish that identity from the immutable Git revision used to route workers.