mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-07 07:36:54 +01:00
Narrow AL development to read-only plan guidance
Retain shared knowledge enrichment and review guidance; defer standalone implementation and source-ingestion tracking. Add runner-owned baseline evidence, contract regressions, and explicit consumer/pilot boundaries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
f6fca1d56d
commit
1deac52a53
26 changed files with 1486 additions and 11037 deletions
|
|
@ -5,36 +5,18 @@
|
|||
"minimumKnowledgePrecision": 0.67,
|
||||
"cases": [
|
||||
{
|
||||
"id": "bcapps-filtered-batch-bug-plan",
|
||||
"title": "Select guidance from a BCFIX-HANDOFF v1 payload",
|
||||
"id": "synthetic-normal-initial-plan",
|
||||
"title": "Anonymized normal initial-plan consumer boundary",
|
||||
"evidenceType": "integration-shaped-synthetic",
|
||||
"boundary": "A synthetic consumer produces metadata plus a markdown plan body, serializes the full document, and passes that document as the generic existing development-plan. This is not an external real pilot and contains no consumer workflow-state schema.",
|
||||
"expectedKind": "bug",
|
||||
"development-plan": {
|
||||
"format": "BCFIX-HANDOFF",
|
||||
"version": 1,
|
||||
"issue": 4312,
|
||||
"phase": "implement",
|
||||
"status": "paused",
|
||||
"baton": 2,
|
||||
"rootCause": "The routine calls FindFirst and updates the current record without entering an enumerator loop, so only the first record in the supplied filtered set is modified.",
|
||||
"harnessMap": {
|
||||
"testCodeunit": "Update Selected Entries Tests",
|
||||
"libraries": [
|
||||
"Library - Random"
|
||||
],
|
||||
"pages": [],
|
||||
"handlers": []
|
||||
},
|
||||
"iterationsUsed": 1,
|
||||
"filesCommitted": [
|
||||
"test/Batch/UpdateSelectedEntries.Codeunit.al"
|
||||
],
|
||||
"lastTestResult": "1 failing, 4 passing; the red test shows only the first of three selected records is updated.",
|
||||
"deadEnds": [
|
||||
"Changing the page selection did not help because the codeunit discarded the supplied enumerator."
|
||||
],
|
||||
"nextStep": "Replace the single-record read with an update-safe FindSet/Next loop that preserves the supplied filters, then rerun the red test."
|
||||
},
|
||||
"expectedOutcome": "completed",
|
||||
"expectedUnknown": [],
|
||||
"requiresUnresolved": false,
|
||||
"requiresMaterialUnresolved": false,
|
||||
"development-plan": "{\"metadata\":{\"kind\":\"bug\",\"request\":\"Update every entry in the supplied filtered record set while preserving the caller's selection.\",\"origin\":\"anonymized synthetic initial plan\"},\"body\":\"## Root cause and design\\nThe routine reads and updates only the first record rather than iterating the supplied filtered set. Preserve the supplied filters and update each selected row.\\n\\n## Proposed fix\\nUse an update-safe FindSet/Next loop with an explicit update on each selected entry.\\n\\n## Affected files\\n- src/Batch/UpdateSelectedEntries.Codeunit.al\\n- test/Batch/UpdateSelectedEntriesTests.Codeunit.al\\n\\n## Test strategy\\nUse existing AL test library codeunits to arrange three selected rows and an excluded row. Assert all selected rows are updated and the excluded row is unchanged. This is a proposed test, not a reported result.\\n\\n## Acceptance criteria\\n- Every selected entry is updated exactly once.\\n- The supplied filters remain effective.\\n- No excluded entry changes.\\n- Empty selections cause no changes.\\n\"}",
|
||||
"context": {
|
||||
"bc-version": "28",
|
||||
"technologies": [
|
||||
"al"
|
||||
],
|
||||
|
|
@ -43,7 +25,8 @@
|
|||
],
|
||||
"application-area": [
|
||||
"all"
|
||||
]
|
||||
],
|
||||
"unknown": []
|
||||
},
|
||||
"requiredKnowledge": [
|
||||
"microsoft/knowledge/performance/pair-findset-with-next-loop.md",
|
||||
|
|
@ -58,6 +41,10 @@
|
|||
"id": "versioned-upgrade-plan-guidance",
|
||||
"title": "Select guidance for a versioned data upgrade",
|
||||
"expectedKind": "upgrade",
|
||||
"expectedOutcome": "completed",
|
||||
"expectedUnknown": [],
|
||||
"requiresUnresolved": false,
|
||||
"requiresMaterialUnresolved": false,
|
||||
"development-plan": {
|
||||
"kind": "upgrade",
|
||||
"request": "Migrate existing customer tier text values to a new enum field in an app upgrade.",
|
||||
|
|
@ -78,6 +65,7 @@
|
|||
]
|
||||
},
|
||||
"context": {
|
||||
"bc-version": "28",
|
||||
"technologies": [
|
||||
"al"
|
||||
],
|
||||
|
|
@ -86,7 +74,8 @@
|
|||
],
|
||||
"application-area": [
|
||||
"all"
|
||||
]
|
||||
],
|
||||
"unknown": []
|
||||
},
|
||||
"requiredKnowledge": [
|
||||
"microsoft/knowledge/upgrade/use-upgrade-tags-not-version-checks.md",
|
||||
|
|
@ -97,6 +86,90 @@
|
|||
"microsoft/knowledge/upgrade/datatransfer-skips-triggers-and-subscribers.md",
|
||||
"microsoft/knowledge/upgrade/appversion-meaning-depends-on-execution-context.md"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "no-additional-knowledge",
|
||||
"title": "Honest empty enrichment does not prohibit ordinary work",
|
||||
"expectedKind": "maintenance",
|
||||
"expectedOutcome": "no-knowledge",
|
||||
"expectedUnknown": [],
|
||||
"requiresUnresolved": false,
|
||||
"requiresMaterialUnresolved": false,
|
||||
"development-plan": {
|
||||
"kind": "maintenance",
|
||||
"request": "Correct a spelling error in an existing internal explanatory comment in an AL procedure. Do not change the explanation, executable code, UI captions, schema, diagnostic text, configuration or behavior.",
|
||||
"affected-files": ["src/Batch/EntryProcessor.Codeunit.al"],
|
||||
"proposed-changes": ["Replace the misspelled word in the existing comment; add no new advice."],
|
||||
"test-strategy": "Inspect the diff to confirm that only the comment spelling changes.",
|
||||
"acceptance-criteria": ["Only the intended comment spelling changes; executable AL remains identical."]
|
||||
},
|
||||
"context": {
|
||||
"bc-version": "28",
|
||||
"technologies": ["al"],
|
||||
"countries": ["w1"],
|
||||
"application-area": ["all"],
|
||||
"unknown": []
|
||||
},
|
||||
"requiredKnowledge": [],
|
||||
"optionalKnowledge": []
|
||||
},
|
||||
{
|
||||
"id": "unknown-material-version",
|
||||
"title": "Materially unresolved version-sensitive guidance stays partial",
|
||||
"expectedKind": "feature",
|
||||
"expectedOutcome": "partial",
|
||||
"expectedUnknown": ["bc-version"],
|
||||
"requiresUnresolved": true,
|
||||
"requiresMaterialUnresolved": true,
|
||||
"development-plan": {
|
||||
"kind": "feature",
|
||||
"request": "Add an expensive Sum FlowField as the source of a usually-hidden page control. The proposed design relies on visibility suppressing calculation.",
|
||||
"affected-files": ["src/Pages/EntryOverview.Page.al"],
|
||||
"proposed-changes": ["Bind the page control directly to the FlowField and set Visible to a conditional expression."],
|
||||
"test-strategy": "Verify aggregate queries are not executed while the control is hidden.",
|
||||
"acceptance-criteria": ["Hidden controls do not cause expensive aggregate queries."],
|
||||
"unknown": ["The deployment BC version and visible-only calculation feature state cannot be established from this fixture. Do not invent either."]
|
||||
},
|
||||
"context": {
|
||||
"bc-version": "unknown",
|
||||
"technologies": ["al"],
|
||||
"countries": ["w1"],
|
||||
"application-area": ["all"],
|
||||
"unknown": ["bc-version"]
|
||||
},
|
||||
"requiredKnowledge": [
|
||||
"microsoft/knowledge/performance/hidden-flowfields-still-calculate-before-bc26-opt-in.md"
|
||||
],
|
||||
"optionalKnowledge": []
|
||||
},
|
||||
{
|
||||
"id": "partial-plan-decision",
|
||||
"title": "Known platform context does not resolve an incomplete plan decision",
|
||||
"expectedKind": "refactor",
|
||||
"expectedOutcome": "partial",
|
||||
"expectedUnknown": [],
|
||||
"requiresUnresolved": true,
|
||||
"requiresMaterialUnresolved": true,
|
||||
"development-plan": {
|
||||
"kind": "refactor",
|
||||
"request": "Refactor a record read helper currently using FindFirst followed by Next. The caller contract does not establish whether to return one row or enumerate the entire filtered set.",
|
||||
"affected-files": ["src/Queries/EntryReader.Codeunit.al"],
|
||||
"proposed-changes": ["Choose the read method consistent with the intended cardinality after that decision is clarified."],
|
||||
"test-strategy": "Add cardinality assertions after the caller contract is decided.",
|
||||
"acceptance-criteria": ["The method and enumeration agree with the clarified caller contract."],
|
||||
"unknown": ["Single-record versus multi-record caller intent remains materially unresolved."]
|
||||
},
|
||||
"context": {
|
||||
"bc-version": "28",
|
||||
"technologies": ["al"],
|
||||
"countries": ["w1"],
|
||||
"application-area": ["all"],
|
||||
"unknown": []
|
||||
},
|
||||
"requiredKnowledge": [
|
||||
"microsoft/knowledge/performance/pair-findset-with-next-loop.md"
|
||||
],
|
||||
"optionalKnowledge": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue