mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-07 07:36:54 +01:00
Add bounded knowledge retrieval
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0d8b7764-f15a-49ea-8d50-d9147334f8af
This commit is contained in:
parent
c12b2f0a88
commit
6a89831c5c
26 changed files with 1852 additions and 55 deletions
30
skills/do.md
30
skills/do.md
|
|
@ -159,6 +159,36 @@ The emitted document MUST be strict, valid JSON per [RFC 8259](https://www.rfc-e
|
|||
|
||||
AL source is the common failure case. Quoted identifiers (for example `Rec."No."`) and multi-line snippets routinely appear in `message`, `suggested-code`, and `suggested-code-omission-reason`, and each embedded quote or newline MUST be escaped when placed in a string value. A `suggested-code` payload that spans several lines is a single JSON string with `\n` separators, not a literal multi-line block. Emit the document as one JSON value with no trailing commentary, and do not rely on the consumer to repair unescaped output.
|
||||
|
||||
### Consumer acceptance gate
|
||||
|
||||
The exact action-skill return is the primary report transport. Before accepting
|
||||
it as a findings-report, a coordinator or host MUST validate it
|
||||
deterministically:
|
||||
|
||||
1. Parse the exact return as strict JSON and validate every required field,
|
||||
enum, type, conditional requirement, summary count, coverage value, and
|
||||
leaf/super-skill constraint against this output contract.
|
||||
2. For every knowledge-backed finding, verify each `references[].path` is an
|
||||
exact repo-relative knowledge path that exists in the live BCQuality
|
||||
snapshot, and verify `findings[].id` exactly equals
|
||||
`references[0].path`. Verify each path is also present in the coordinator's
|
||||
recorded set of complete article bodies retrieved for that leaf; catalog
|
||||
membership alone is insufficient. Keep optional `references[].sha`
|
||||
separate: it is commit provenance, not an article content hash.
|
||||
3. For every `location`, verify `file` is an exact source path in the supplied
|
||||
review scope, the file exists in that source snapshot, and `line` and any
|
||||
inclusive range identify existing lines with `start-line == line` and
|
||||
`end-line >= start-line`.
|
||||
|
||||
Validation failure invalidates the complete return; consumers MUST NOT salvage
|
||||
individual findings, infer missing fields, reconstruct JSON, clamp ranges,
|
||||
rewrite paths, or otherwise silently repair model output. Preserve the invalid
|
||||
raw payload unchanged in private run artifacts or host logs. Record a separate
|
||||
failed validation result for that leaf with no findings, and derive the
|
||||
super-skill outcome as `partial` or `failed` using the normal rollup rules.
|
||||
Worker-side report-file persistence is optional and never replaces validation
|
||||
of the exact return.
|
||||
|
||||
### Field semantics
|
||||
|
||||
**`outcome`** (required) —
|
||||
|
|
|
|||
|
|
@ -149,3 +149,58 @@ The standard workflow for finding applicable files:
|
|||
4. Resolve conflicts via layer precedence.
|
||||
|
||||
Steps 1–3 are deterministic; step 4 is applied only when conflicts are detected.
|
||||
|
||||
### Bounded retrieval for review skills
|
||||
|
||||
Resolve `$root` to the BCQuality root, not the reviewed source. Entry prepares
|
||||
the index once before dispatch; that prepared index is the catalog snapshot and
|
||||
leaves use it read-only. Catalog retrieval validates the complete index metadata
|
||||
and returned paths without reopening or rehashing article bodies. Post-Entry
|
||||
body changes therefore take effect only after Entry rebuilds the index; exact
|
||||
body retrieval rejects a selected article whose content hash differs from its
|
||||
prepared row. In one PowerShell tool session, invoke the helpers with `&` so
|
||||
array arguments remain arrays:
|
||||
|
||||
```powershell
|
||||
& (Join-Path $root 'tools\Search-Knowledge.ps1') -Domain $domain -Technologies @('al')
|
||||
& (Join-Path $root 'tools\Get-KnowledgeArticles.ps1') -Paths @($exactPath)
|
||||
```
|
||||
|
||||
Pass enabled layers and only task dimensions that are actually known. Catalog
|
||||
retrieval returns every domain and READ-applicable row: it does not rank,
|
||||
sample, apply top-k, deduplicate by basename, or omit rows based on query text.
|
||||
Consume every page by passing `continuation.offset` as `-Offset` and
|
||||
`continuation.snapshot` as `-Snapshot` with the unchanged request until
|
||||
`complete` is `true`. Each page repeats request context, defaults, and totals.
|
||||
An omitted applicability field on a row inherits that page's `defaults`; it
|
||||
does not mean unknown task context. Preserve every row's exact `path`, `layer`,
|
||||
complete `keywords`, `title`, one-line `description`, non-default applicability
|
||||
fields, explicit `applicability`, and `unknownDimensions`.
|
||||
|
||||
Apply the leaf's existing Relevance and Worklist to the complete catalog union.
|
||||
Split the resulting exact paths into stable chunks of at most eight; never pass
|
||||
more paths than `-MaxArticles` (whose maximum is eight). Request article bodies
|
||||
only by one such chunk. Consume every
|
||||
returned `body`, then request `remainingPaths` with
|
||||
`continuation.snapshot` as `-Snapshot` until `complete` is `true`, preserving
|
||||
the other request settings. Continuation is confined to that chunk. Bodies are
|
||||
original strict UTF-8 text with source byte counts and SHA-256 content hashes;
|
||||
they are never summarized or truncated. Samples are not loaded unless
|
||||
requested explicitly with `-Samples` and exact sibling paths; their sibling
|
||||
article must match its prepared hash and contain the exact READ link.
|
||||
|
||||
The default serialized response limit is 16,000 bytes including its output
|
||||
newline. Never combine pages or bodies into an unbounded prompt. A malformed or
|
||||
internally inconsistent prepared index, changed continuation snapshot, selected
|
||||
article hash mismatch, invalid continuation, unsafe or missing path, invalid
|
||||
UTF-8, broken sample link, oversized path chunk, or row/envelope that cannot fit
|
||||
fails explicitly. Entry is the only index preparation point: a leaf does not
|
||||
rebuild. If PowerShell, a helper, or a valid prepared index is unavailable,
|
||||
discover exact paths across the enabled domain folders and use native bounded
|
||||
reads through EOF, validating frontmatter per READ and never treating retrieval
|
||||
failure as an empty result.
|
||||
|
||||
The helpers' `sha256` and `bytes` fields describe the retrieved file content.
|
||||
They are not citation provenance. Optional findings `references[].sha` is the
|
||||
BCQuality commit SHA the skill reviewed; omit it when that provenance is not
|
||||
available or would misrepresent uncommitted content.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue