mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 06:36:55 +01:00
Strengthen review contracts and add AL reliability guidance (#196)
* Strengthen review contracts and HTTP guidance - add outbound HttpClient transport and HTTP status review rules with paired fixtures`n- resolve layered action-skill overrides deterministically across enabled layers`n- validate findings reports and enforce measurable changed-fixture coverage * Add data handling and test isolation guidance - add SCM guidance for deriving base quantities through line unit-of-measure validation`n- add security guidance for parameterizing SetFilter with external text`n- add test isolation guidance for resetting per-test state before initialization guards`n- add web-service guidance for JSON null handling and invariant standard format 9`n- route and cover all five rules with paired evaluation fixtures * Fix findings report rollup validation * Validate findings report rollups * Enforce merged finding identity * Fix locationless finding deduplication * Reject conflicting merged corrections * Detect conflicting leaf corrections * Route HTTP error checks to canonical web-services knowledge Let the Error Handling leaf conditionally retrieve the existing HTTP owner articles, preserving applicability and exact-path provenance. Add deterministic source-contract and retrieval regressions without duplicating knowledge rules. Copilot-Session-Id: a92a7788-103e-4651-9b84-19e34caffb94 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: wenjiefan <wenjiefan@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
This commit is contained in:
parent
130d5de6c4
commit
4287233f80
41 changed files with 1974 additions and 38 deletions
|
|
@ -44,6 +44,15 @@ Otherwise the layers are additive. A matching filename alone does not suppress
|
|||
an article; the [READ contract](../skills/read.md#layer-precedence) governs
|
||||
knowledge conflicts. Review reports record displaced knowledge in `suppressed`.
|
||||
|
||||
Action skills use the same layer order but override by frontmatter `id`. A
|
||||
custom leaf with the same `id` as a Community or Microsoft leaf replaces that
|
||||
leaf in every super-skill slot while its layer is enabled. The files may have
|
||||
different names. IDs must remain unique within each layer. Disabling the custom
|
||||
layer or the custom skill path makes composition fall back to the next enabled
|
||||
implementation. Hosts should build the skill index and use
|
||||
`tools/Resolve-SkillWorklist.ps1`; they must not implement this selection from
|
||||
filenames.
|
||||
|
||||
Layer selection is **not an access-control boundary**. A plugin installation
|
||||
still contains excluded layers on disk. An integration requiring genuine
|
||||
exclusion must remove denied files from its own content copy before the agent
|
||||
|
|
|
|||
|
|
@ -49,16 +49,20 @@ only result.
|
|||
action skills to run. Do not reproduce its routing logic.
|
||||
3. Execute every dispatched action skill with the exact input subset in its
|
||||
dispatch record. Read `skills/read.md` and `skills/do.md` on demand.
|
||||
4. When an action skill declares `sub-skills`, execute every relevant leaf as a
|
||||
discrete invocation. Leaves are independent and may be scheduled serially
|
||||
or concurrently.
|
||||
4. When an action skill declares `sub-skills`, resolve its ordered leaf slots
|
||||
with `tools/Resolve-SkillWorklist.ps1`, passing the enabled layers and
|
||||
disabled skill paths from the task context. Execute every resolved leaf as
|
||||
a discrete invocation. Leaves are independent and may be scheduled serially
|
||||
or concurrently.
|
||||
5. Capture the exact Task return as the immutable raw audit payload and primary
|
||||
transport. Preserve it unchanged in private artifacts or host logs. Before
|
||||
the full DO acceptance gate, create a normalized candidate only for DO's
|
||||
bounded optional-range case, record that normalization separately in private
|
||||
telemetry, and accept the candidate only if the entire copy passes the
|
||||
unchanged strict gate. The accepted report contains no undeclared telemetry
|
||||
fields.
|
||||
unchanged strict gate. Use `tools/Validate-FindingsReport.ps1`, passing the
|
||||
exact source paths and fully retrieved article paths; pass `-SkillKind super`
|
||||
for the final rolled-up report. The accepted report contains no undeclared
|
||||
telemetry fields.
|
||||
6. Collect each accepted findings-report into `sub-results` in the declared
|
||||
`sub-skills` order, not completion order. Run the super-skill self-review
|
||||
only after all leaves have finished.
|
||||
|
|
@ -92,6 +96,8 @@ A compatible runner:
|
|||
|
||||
- invokes every worklisted leaf exactly once unless a documented retry replaces
|
||||
a failed attempt;
|
||||
- resolves same-ID leaf implementations by `custom > community > microsoft`,
|
||||
preserves declared slot order, and falls back when a higher layer is disabled;
|
||||
- keeps leaf contexts isolated and passes only the inputs they declare;
|
||||
- preserves each raw Task return unchanged for audit and distinguishes it from
|
||||
any normalized accepted copy;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue