Add acreadiness-cockpit plugin (AgentRC measure -> generate -> maintain) 🤖🤖🤖 (#1593)

* Add acreadiness-cockpit plugin

Adds a new plugin that drives Microsoft AgentRC from Copilot chat,
framing every interaction inside AgentRC's Measure -> Generate ->
Maintain loop.

Custom agent (agents/ai-readiness-reporter.agent.md):
  Runs `agentrc readiness --json`, interprets every result against
  the 9-pillar / 5-level maturity model, then renders a self-contained
  reports/index.html from a fixed HTML/CSS template (bundled with the
  acreadiness-assess skill) so every user gets an identically styled
  dashboard. Honours policies (disabled criteria, overrides, pass-rate
  thresholds) and surfaces extras separately.

Skills:
  - acreadiness-assess: Measure step. Wraps `agentrc readiness --json`
    and hands off to the @ai-readiness-reporter agent. Bundles the
    canonical report-template.html.
  - acreadiness-generate-instructions: Generate step. Wraps
    `agentrc instructions`. Defaults to .github/copilot-instructions.md
    (Copilot-native). Asks flat vs nested. For monorepos, emits per-area
    .github/instructions/<area>.instructions.md files with applyTo
    globs taken from agentrc.config.json.
  - acreadiness-policy: Maintain step. Helps pick, scaffold, or apply an
    AgentRC policy (criteria.disable, criteria.override, extras,
    thresholds) and wire it into CI via --fail-level.

Plugin (plugins/acreadiness-cockpit/):
  Declarative plugin.json referencing the agent and three skills.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review feedback

- Align documented slash-command names with plugin manifest:
  /acreadiness-assess, /acreadiness-generate-instructions,
  /acreadiness-policy (was /assess, /generate-instructions, /policy
  inside SKILL bodies and argument-hints).
- Move the literal % from the report template into the substituted
  values for {{passRate}} and {{threshold}} so an N/A value of '—'
  no longer renders as '—%'. Updated the agent placeholder contract
  accordingly.
- Point the report footer at the canonical plugin folder under
  github/awesome-copilot instead of the personal source fork.
- Add explicit HTML-escaping rules to the agent: HTML-escape every
  {{placeholder}} substitution, and replace </script with <\/script
  inside the embedded JSON block so untrusted repo content cannot
  break the markup or inject scripts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
mvanderbend-msoft
2026-05-04 06:11:14 +02:00
committed by GitHub
parent a1197525bd
commit ebd22496dd
11 changed files with 809 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
# acreadiness-cockpit
Drive [Microsoft AgentRC](https://github.com/microsoft/agentrc) from Copilot chat. Frames every interaction inside AgentRC's **Measure → Generate → Maintain** loop.
## What's in the plugin
### Custom agent
| Agent | What it does |
|---|---|
| `@ai-readiness-reporter` | Runs `agentrc readiness --json`, interprets every result against the 9-pillar / 5-level model, then renders a self-contained `reports/index.html` from a fixed HTML/CSS template so every user gets an identically styled dashboard. Honours policies (disabled criteria, overrides, pass-rate thresholds) and surfaces extras separately. |
### Skills
| Skill | Step | What it does |
|---|---|---|
| `/acreadiness-assess` | **Measure** | Runs the readiness scan and hands off to `@ai-readiness-reporter` to produce the static HTML dashboard. Accepts `--policy <path-or-pkg>` and `--per-area`. |
| `/acreadiness-generate-instructions` | **Generate** | Wraps `agentrc instructions`. Default output is `.github/copilot-instructions.md` (Copilot-native). Asks `flat` vs `nested`. For monorepos, also emits per-area `.github/instructions/<area>.instructions.md` files with `applyTo` globs. |
| `/acreadiness-policy` | **Maintain** | Pick, scaffold, or apply an AgentRC policy. Knows the schema (`criteria.disable`, `criteria.override`, `extras`, `thresholds`), the impact-weight table, and CI gating with `--fail-level`. |
## What gets produced
`reports/index.html` — a single self-contained HTML file rendered from a fixed template (`skills/acreadiness-assess/report-template.html`) so every user gets an identical look & feel. It contains:
- Maturity badge (L1L5) and overall score / grade (AF)
- Pass-rate vs threshold (when a policy sets one)
- Maturity progression table
- **Active policy** summary (disabled/overridden criteria, threshold)
- **Repo Health** breakdown (8 pillars), each with an **AI relevance** badge (High/Medium/Low), *what it measures*, *why it matters for AI*, *current state*, *recommendation*
- **AI Setup** breakdown (AI Tooling pillar)
- **Extras** (informational only — agents-doc, pr-template, pre-commit, architecture-doc)
- **Prioritised Remediation Plan** (🔴 Fix First / 🟡 Fix Next / 🔵 Plan)
- Embedded raw AgentRC JSON for reuse
## Prerequisites
- **Node.js 20+** on PATH (required by AgentRC)
- VS Code with Copilot agent plugins enabled
## Usage
In Copilot chat:
```text
/acreadiness-assess # measure → reports/index.html
/acreadiness-assess --policy ./policies/strict.json
/acreadiness-generate-instructions # asks flat or nested
/acreadiness-generate-instructions --strategy flat
/acreadiness-generate-instructions --strategy nested
/acreadiness-generate-instructions --areas # per-area applyTo files
/acreadiness-policy new my-policy
@ai-readiness-reporter
```
### Flat vs nested instructions
| | **Flat** *(default)* | **Nested** |
|---|---|---|
| Hub file | `.github/copilot-instructions.md` | `.github/copilot-instructions.md` |
| Detail files | — | `.github/instructions/<topic>.instructions.md` (each with `applyTo` glob) |
| Best for | Small / medium repos, single stack | Large or multi-stack repos, monorepos |
| Token cost | Whole file always loads | VS Code only loads topics whose `applyTo` matches |
When the main output is `.github/copilot-instructions.md`, the skill rewrites AgentRC's nested output to VS Code's native `.instructions.md` layout (which Copilot auto-discovers). With `--output AGENTS.md`, nested keeps AgentRC's default `.agents/` layout for agent-agnostic tooling.
### Concepts (cheat sheet)
- **Maturity**: L1 Functional → L2 Documented → L3 Standardized → L4 Optimized → L5 Autonomous
- **Pillars** (Repo Health): Style · Build · Testing · Docs · Dev Environment · Code Quality · Observability · Security
- **Pillars** (AI Setup): AI Tooling
- **Impact weights**: critical 5 · high 4 · medium 3 · low 2 · info 0
- **Grades**: A ≥ 0.9 · B ≥ 0.8 · C ≥ 0.7 · D ≥ 0.6 · F < 0.6
## License
MIT