mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-06 07:06:54 +01:00
Add AL implementation guidance skill
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
d608d89cf0
commit
1cb2b32afe
16 changed files with 1120 additions and 31 deletions
120
skills/do.md
120
skills/do.md
|
|
@ -63,15 +63,24 @@ application-area: [all]
|
|||
|
||||
`inputs` is a list of abstract input types the skill **accepts**. Standard values:
|
||||
`pr-diff`, `object-list`, `file-path`, `folder-path`, `repository`,
|
||||
`telemetry-query`, and `development-plan`. Semantics are any-of: the
|
||||
`telemetry-query`, `development-plan`, `implementation-diff`,
|
||||
`decision-context`, and `consumed-guidance`. Semantics are any-of: the
|
||||
orchestrator supplies whichever listed input types it has, and the skill is
|
||||
invoked with a non-empty subset of its declared `inputs`. A skill that cannot
|
||||
proceed with the supplied subset MUST return `outcome: "not-applicable"`.
|
||||
|
||||
`implementation-diff` is the current patch or structured changed-file/source
|
||||
context, including exact affected files. `decision-context` identifies the
|
||||
current phase, bounded next decision, affected symbols, changed AL properties
|
||||
or tokens, tests or acceptance obligations, and stable decision/evidence
|
||||
identifiers. `consumed-guidance` is optional consumer-owned deduplication input;
|
||||
BCQuality does not persist it.
|
||||
|
||||
`outputs` is always a single-element list naming the output kind:
|
||||
|
||||
- `findings-report` — evaluates an input and reports defects or observations.
|
||||
- `development-guidance-report` — selects and summarizes applicable BCQuality knowledge for an existing development plan without changing the target repository.
|
||||
- `implementation-guidance-report` — selects focused, additional BCQuality knowledge for a current implementation or validation decision without changing the target repository.
|
||||
|
||||
`file-path` is one file. `folder-path` is a directory whose recursively
|
||||
contained files form the complete current-state input, such as a Business
|
||||
|
|
@ -340,6 +349,108 @@ The skill is read-only with respect to the target repository: no edits, generate
|
|||
|
||||
Reference SHAs, when present, identify the files read; they do not prove runtime pinning on their own. The consumer records and verifies the actual immutable BCQuality checkout used for both enrichment and final review, plus its filtering policy and run provenance outside the target repository. See [agent-consumption.md](../agent-consumption.md).
|
||||
|
||||
## Implementation-guidance-report contract
|
||||
|
||||
An action skill with `outputs: [implementation-guidance-report]` emits one JSON document:
|
||||
|
||||
```json
|
||||
{
|
||||
"skill": { "id": "al-implementation-guidance", "version": 1 },
|
||||
"outcome": "completed | not-applicable | no-knowledge | partial | failed",
|
||||
"outcome-reason": "string",
|
||||
"summary": {
|
||||
"request": "string",
|
||||
"phase": "string",
|
||||
"decision": "string",
|
||||
"decision-key": "string",
|
||||
"evidence-fingerprint": "string",
|
||||
"candidates": 0,
|
||||
"selected": 0,
|
||||
"omitted-consumed": 0
|
||||
},
|
||||
"pins": {
|
||||
"knowledge-checkout": "full commit SHA | unpinned",
|
||||
"development-plan": "consumer-supplied id/version/digest | unpinned",
|
||||
"implementation-evidence": "consumer-supplied id/digest | unpinned"
|
||||
},
|
||||
"context": {
|
||||
"bc-version": "string",
|
||||
"technologies": ["string"],
|
||||
"countries": ["string"],
|
||||
"application-area": ["string"],
|
||||
"affected-files": ["string"],
|
||||
"affected-symbols": ["string"],
|
||||
"changed-tokens": ["string"],
|
||||
"unknown": ["bc-version | technologies | countries | application-area"]
|
||||
},
|
||||
"knowledge": [
|
||||
{
|
||||
"path": "string",
|
||||
"sha": "string",
|
||||
"used-for": "string",
|
||||
"constraints": ["string"],
|
||||
"sample-paths": ["string"]
|
||||
}
|
||||
],
|
||||
"validation-considerations": [
|
||||
{ "id": "string", "reason": "string", "evidence": "string" }
|
||||
],
|
||||
"deduplication": {
|
||||
"strategy": "omit-exact-consumed-match",
|
||||
"omitted": [
|
||||
{
|
||||
"path": "string",
|
||||
"decision-key": "string",
|
||||
"evidence-fingerprint": "string",
|
||||
"prior-decision": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"suppressed": [
|
||||
{
|
||||
"reference": { "path": "string", "sha": "string" },
|
||||
"reason": "layer-precedence | configuration"
|
||||
}
|
||||
],
|
||||
"unresolved": ["string"]
|
||||
}
|
||||
```
|
||||
|
||||
The report is strict JSON with no surrounding commentary and is read-only with
|
||||
respect to both the target repository and consumer workflow state. Index,
|
||||
report, and scratch artifacts stay outside the target.
|
||||
|
||||
`summary` is the compact current phase/decision record. Its decision key and
|
||||
evidence fingerprint are copied from `decision-context`, not generated by the
|
||||
skill. `pins` preserves consumer-supplied plan and implementation identifiers;
|
||||
`knowledge-checkout` is the actual checkout SHA only when established, otherwise
|
||||
`unpinned`. A pin records identity, not safety or correctness.
|
||||
`candidates` is the number of unique relevant articles before consumed-guidance
|
||||
omission, so `selected + omitted-consumed` cannot exceed it.
|
||||
|
||||
`context.affected-files`, `affected-symbols`, and `changed-tokens` contain exact
|
||||
current implementation evidence, not broad planned domains. Paths use forward
|
||||
slashes and are repository-relative. The knowledge, validation, suppression,
|
||||
unknown-context, and reference-integrity rules from
|
||||
`development-guidance-report` apply unchanged.
|
||||
|
||||
`deduplication.strategy` is always `omit-exact-consumed-match`. An omitted entry
|
||||
must exactly match a supplied consumed article path, decision key, and evidence
|
||||
fingerprint. Its path is absent from `knowledge`. `summary.omitted-consumed`
|
||||
equals `deduplication.omitted.length`. A changed decision key or evidence
|
||||
fingerprint permits the article to be selected again. The consumer owns and
|
||||
persists consumed state; BCQuality remains stateless.
|
||||
|
||||
`completed` requires at least one selected article, complete evaluation, and no
|
||||
material unresolved applicability. `not-applicable` means a required readable
|
||||
repository, plan, implementation diff, or decision context is missing or the
|
||||
task is outside applicability. `no-knowledge` requires empty `knowledge` and
|
||||
means no additional applicable constraints for this exact decision/evidence;
|
||||
it is not a functional-correctness, safety, completeness, or release claim.
|
||||
`partial` keeps incomplete evaluation or materially unresolved applicability
|
||||
explicit. `failed` covers retrieval, reference-integrity, or other errors.
|
||||
`outcome-reason` is required for `partial` and `failed`.
|
||||
|
||||
## Composition (super-skills)
|
||||
|
||||
A **super-skill** is an action skill whose frontmatter declares a non-empty `sub-skills: [...]`. A super-skill does not evaluate knowledge files directly; it invokes other action skills and composes their output.
|
||||
|
|
@ -440,4 +551,9 @@ Conforms to the DO output contract.
|
|||
|
||||
## How orchestrators consume output
|
||||
|
||||
An orchestrator invokes an action skill with an input appropriate to the skill's declared `inputs` and uses the single output kind declared in frontmatter. It maps a `findings-report` to PR comments, build gates, or IDE diagnostics, and a `development-guidance-report` to additional constraints for its existing implementation workflow. These are the two output schemas defined by this contract; the consumer retains ownership of implementation and delivery.
|
||||
An orchestrator invokes an action skill with an input appropriate to the skill's
|
||||
declared `inputs` and uses the single output kind declared in frontmatter. It
|
||||
maps a `findings-report` to PR comments, build gates, or IDE diagnostics; a
|
||||
`development-guidance-report` to constraints for an existing plan; and an
|
||||
`implementation-guidance-report` to focused constraints for the next current
|
||||
decision. The consumer retains ownership of implementation and delivery.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue