mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 22:56:55 +01:00
Simplify standalone AL code review skill (#150)
* Simplify standalone AL review skill Rename the host-facing skill to al-code-review, reduce it to a thin Entry adapter, document the architecture, and validate host skill metadata. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: af96bb3d-893a-48a2-8298-c8f4271c162c * Anchor plugin paths at PLUGIN_ROOT and restore the layer-filter caveat The adapter delegated index preparation to Entry's Preparation step, but that step is written for the clone model: it runs `pwsh ./tools/Build-KnowledgeIndex.ps1` from the checkout root. A plugin host's working directory is the user's own project, so the path does not resolve and the index is never built. Because knowledge-index.json is gitignored, a fresh install has none, and READ silently degrades to path-based discovery. The adapter now resolves Entry's repo-relative paths against PLUGIN_ROOT and names the absolute index build; the generator resolves its own root, so it indexes and writes the right tree from any cwd. Entry also asserted that pruning has always happened before it runs, which is false for an installation that ships the whole tree. Entry now scopes that guarantee to consumers that actually prune, and the caveat dropped in the rewrite - that enabled-layers narrows discovery rather than denying access - is restored in the adapter and summarized in the README. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b67b90d-e4b4-4b92-9684-726c72c43b3f --------- Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: af96bb3d-893a-48a2-8298-c8f4271c162c Copilot-Session: 0b67b90d-e4b4-4b92-9684-726c72c43b3f
This commit is contained in:
parent
2439d5c412
commit
bca8f478d8
9 changed files with 203 additions and 109 deletions
|
|
@ -12,6 +12,10 @@ For the high-level framing and repo structure, start with the [README](README.md
|
|||
- **Global skills** in `/skills/` — the `entry.md` entry-point skill plus the READ · DO · WRITE contracts that govern the rest of the repo.
|
||||
- **Layer content** in `/microsoft/`, `/community/`, and `/custom/` — knowledge files and action skills grouped by authority.
|
||||
|
||||
When BCQuality is installed as a standalone plugin, it additionally exposes
|
||||
`skills/al-code-review/SKILL.md`. This is a host-format adapter, not another
|
||||
action skill: it creates the task context and enters the same flow at Entry.
|
||||
|
||||
## The flow
|
||||
|
||||
```mermaid
|
||||
|
|
@ -31,6 +35,12 @@ The orchestrator has a URL setting that points at BCQuality (default: `github.co
|
|||
### 2. Agent invokes Entry
|
||||
The agent reads `/skills/entry.md` and runs it against the task context. Entry applies its Source → Relevance → Worklist → Action steps over the action skills under `*/skills/**/*.md` and returns a **dispatch record**: the set of action skills to invoke, plus a list of candidates it skipped (with reasons). Routing is a skill, not orchestrator logic.
|
||||
|
||||
For a standalone plugin installation, the host activates the
|
||||
`skills/al-code-review/SKILL.md` adapter first. That adapter preserves the
|
||||
caller's actual goal, constructs the task context, and invokes Entry. It does
|
||||
not select the internal `microsoft/skills/review/al-code-review.md` action skill
|
||||
itself or duplicate Entry's preparation, routing, and failure semantics.
|
||||
|
||||
### 3. Agent consumes the dispatch record
|
||||
The dispatch record names one or more action skills and the subset of inputs each should receive. If the outcome is `no-match` or `failed`, the agent returns the record to the orchestrator unchanged.
|
||||
|
||||
|
|
@ -89,6 +99,10 @@ Orchestrators MUST tolerate an absent `domain` in reports from older producers.
|
|||
## Why this architecture
|
||||
|
||||
- **Entry is the only hardcoded thing.** Orchestrators ship with one convention — *"invoke `/skills/entry.md` first"* — and nothing else. New action skills and new knowledge files are picked up automatically because Entry discovers them at dispatch time.
|
||||
- **Standalone installation adds an adapter, not another policy layer.** The
|
||||
plugin's host-format `al-code-review` skill only translates the invocation
|
||||
into Entry's task context. Entry and the dispatched action skills remain
|
||||
authoritative.
|
||||
- **Layers decide authority, not code.** The agent sees `/microsoft/` and `/community/` together; if two files conflict, the precedence rule defined in READ resolves it. A partner fork can disable `/community/` — that's a config choice, not a code change.
|
||||
- **Knowledge and skills evolve independently.** A new knowledge file requires no skill changes — existing skills pick it up via frontmatter filters. A new skill requires no knowledge changes — it sources from what's already there.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue