chore: PDD sync for #879#1396
Open
prompt-driven-github[bot] wants to merge 3 commits into
Open
Conversation
Add prompts/compression_benchmark_python.prompt, frozen fixture data for the contract-loss-regression scenario, and docs/ci.md updates to document the compression benchmark gate with five strategy modes, five metrics, and three hard-failure conditions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Author
Step 7/8: Review Loop Final ReportPR: #1396 SummaryFixer claude could not address codex's findings. Per-Reviewer Status
Findings
Fixer Rationale
Fixes Attempted
|
PDD-Auto-Heal-Checkpoint: success
Contributor
Author
Step 7/8: Review Loop Final ReportPR: #1396 SummaryFixer claude could not address codex's findings. Per-Reviewer Status
Findings
Fixer Rationale
Fixes Attempted
|
4 tasks
sohni-tagirisa
added a commit
that referenced
this pull request
Jul 10, 2026
…ules (#1980) The branch-diff fast path in run_agentic_sync step 7 committed to modules_to_sync = branch_modules unconditionally, silently under-scoping relative to the modules the issue explicitly requests (repro from the #1868 E2E validation: issue names greeter AND textutil, diff touches only greeter -> only greeter synced, greeter->textutil edge dropped, Success reported). Fix: deterministically extract explicitly-named known modules from the issue title/body and UNION any that the diff missed into the scope — still zero LLM calls. Extraction matches only high-precision token classes against the architecture inventory: 1. backticked inline-code tokens resolving to a known basename (.prompt / language suffixes stripped), 2. prompt-file path tokens (FILES_MODIFIED-style lists), 3. bare word-boundary mentions, only for underscored basenames that cannot be ordinary prose words (a module named 'python' is never pulled in by prose; single-word modules require backticks or a prompt path). When the diff already covers every issue-named module, behavior is byte-for-byte unchanged. The added modules go through the existing normalization / invalid-basename / ambiguity pipeline like every other scope source. The #1396 runtime-LLM-only boundary and the #1883 PDD_CHANGED_MODULES authoritative-override arm are untouched. The mocked E2E suite gains the under-scope repro (test_branch_diff_scope_reconciled_with_issue_named_modules); the resume test's state fixture now marks both fixture modules succeeded since the fixture issue explicitly names both prompts. Fixes #1980 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
sohni-tagirisa
added a commit
that referenced
this pull request
Jul 11, 2026
…ules (#1980) The branch-diff fast path in run_agentic_sync step 7 committed to modules_to_sync = branch_modules unconditionally, silently under-scoping relative to the modules the issue explicitly requests (repro from the #1868 E2E validation: issue names greeter AND textutil, diff touches only greeter -> only greeter synced, greeter->textutil edge dropped, Success reported). Fix: deterministically extract explicitly-named known modules from the issue title/body and UNION any that the diff missed into the scope — still zero LLM calls. Extraction matches only high-precision token classes against the architecture inventory: 1. backticked inline-code tokens resolving to a known basename (.prompt / language suffixes stripped), 2. prompt-file path tokens (FILES_MODIFIED-style lists), 3. bare word-boundary mentions, only for underscored basenames that cannot be ordinary prose words (a module named 'python' is never pulled in by prose; single-word modules require backticks or a prompt path). When the diff already covers every issue-named module, behavior is byte-for-byte unchanged. The added modules go through the existing normalization / invalid-basename / ambiguity pipeline like every other scope source. The #1396 runtime-LLM-only boundary and the #1883 PDD_CHANGED_MODULES authoritative-override arm are untouched. The mocked E2E suite gains the under-scope repro (test_branch_diff_scope_reconciled_with_issue_named_modules); the resume test's state fixture now marks both fixture modules succeeded since the fixture issue explicitly names both prompts. Fixes #1980 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
Adds the
compression_benchmark_python.promptthat generates a benchmark orchestrator comparing five compression strategies across frozen fixtures, plus thecontract_loss_regressionfixture set that proves contract-symbol preservation is required. Updatesdocs/ci.mdwith the new benchmark gate documentation.Closes #879
Changes Made
Prompts Modified
pdd/prompts/compression_benchmark_python.prompt— new prompt generatingpdd/compression_benchmark.py, a benchmark orchestrator with five strategy callables (full_tests,ast_tests,ast_contracts,full_fewshot,compressed_fewshot),CompressionBenchmarkResultdataclass,check_compression_benchmark()gate enforcement, and Markdown+JSON report outputFixtures Added
tests/fixtures/compression_benchmark/contract_loss_regression/source.py— source module with contract symbolstests/fixtures/compression_benchmark/contract_loss_regression/test_file.py— pytest file for the fixture scenariotests/fixtures/compression_benchmark/contract_loss_regression/contract_seeds.json— required contract symbol seedstests/fixtures/compression_benchmark/contract_loss_regression/expected_output.py— canonical expected outputtests/fixtures/compression_benchmark/contract_loss_regression/expected_output_*.py— per-strategy expected outputstests/fixtures/compression_benchmark/contract_loss_regression/expected_results.json— per-strategy pass/token/churn baselines showingast_testsandfull_fewshotfail without contract-source preservationDocumentation Updated
docs/ci.md— new "Compression Benchmark Gate" section documenting five strategies, five metrics, three hard-failure conditions, fixture schema, and CI placement guidanceArchitecture Updated
architecture.json— registerscompression_benchmarkmodule with its dependencies and interfaceReview Checklist
expected_results.jsoncorrectly shows contract-loss failure forast_tests/full_fewshotstrategiesNext Steps After Merge
Created by pdd change workflow