feat(cpm): official Microsoft APM packages as team examples

Two thin CPM wrappers around official upstream packages, each with a
team-profile mapping their primitives to agent roles:

- microsoft-design-review: wraps microsoft/apm-sample-package#v1.0.0
  (design-standards, design-review, accessibility-audit, style-checker)
  -> roles: reviewer (oracle), style-checker (fixer), accessibility-auditor

- microsoft-issue-autopilot: wraps microsoft/apm/packages/apm-issue-autopilot
  (triage-panel, shepherd-driver, pr-description-skill) + github-mcp-server
  -> roles: triager, shepherd, pr-writer (custom), reviewer

Both validate with cpm check; README examples table added.
This commit is contained in:
Tobias J. Endres 2026-08-23 17:45:55 +02:00
parent 939599441c
commit 913be9d528
5 changed files with 177 additions and 1 deletions

View file

@ -136,13 +136,23 @@ Alle Zusatzfelder werden 1:1 in den Agent-Eintrag des Presets übernommen.
3. MCPs gegen `~/.config/opencode/opencode.json(c)` abgleichen (**Warnung**, kein Abbruch)
4. Rollen ohne MCPs/Skills → Hinweis
## Walkthrough mit dem Beispiel-Package
## Beispiele
| Beispiel | Basis | Team |
|---|---|---|
| `examples/package/` | Eigenes `job-application`-Package (OpenViking + ShareLaTeX) | `acme.job-applications` Researcher, Writer, Checker, Notifier |
| `examples/microsoft-design-review/` | Offizielles [microsoft/apm-sample-package](https://github.com/microsoft/apm-sample-package) | `acme.design-review` Reviewer (Oracle), Style-Checker (Fixer), Accessibility-Auditor |
| `examples/microsoft-issue-autopilot/` | Offizielles [`apm-issue-autopilot`](https://github.com/microsoft/apm/tree/main/packages/apm-issue-autopilot) aus dem microsoft/apm-Repo | `acme.issue-autopilot` Triager, Shepherd, PR-Writer, Reviewer (+ GitHub-MCP) |
Die beiden Microsoft-Beispiele sind dünne CPM-Wrapper: Das eigene `apm.yml` zieht das offizielle Package als versionierte APM-Dependency (`microsoft/apm-sample-package#v1.0.0` bzw. Monorepo-Subpath `microsoft/apm/packages/apm-issue-autopilot`) und liefert nur die Team-Empfehlung dazu.
```bash
cd corentic-package-manager/examples
# Trockenlauf: was würde generiert?
python3 ../cpm.py check --package package --mapping model-mapping.yaml
python3 ../cpm.py check --package microsoft-design-review --mapping model-mapping.yaml
python3 ../cpm.py check --package microsoft-issue-autopilot --mapping model-mapping.yaml
# Rendern in das Beispiel-Projekt
python3 ../cpm.py render --package package \

View file

@ -0,0 +1,20 @@
# CPM-Wrapper um das offizielle Microsoft Sample-Package.
# Installiert dessen Primitives (design-standards, design-review,
# accessibility-audit, style-checker, design-reviewer) und liefert
# die Team-Empfehlung dafür.
#
# Original: https://github.com/microsoft/apm-sample-package
name: acme/design-review-cpm
version: 0.1.0
description: >
Design-Review-Team auf Basis des offiziellen microsoft/apm-sample-package:
Reviewer, Style-Checker und Accessibility-Auditor unter einem Orchestrator.
author: Tobias Endres
license: MIT
type: hybrid
targets:
- opencode
dependencies:
apm:
- microsoft/apm-sample-package#v1.0.0

View file

@ -0,0 +1,52 @@
# team-profile.yaml Design-Review-Team
# Rollen basierend auf den Primitives aus microsoft/apm-sample-package.
schema: corentic.team-profile/v1
id: acme.design-review
description: >
Team für strukturierte Design-Reviews: Style-Guideline-Prüfung,
Design-Review nach Vorlage und Accessibility-Audit unter einem
koordinierenden Reviewer.
roles:
- id: orchestrator
purpose: >-
Nimmt Review-Anfragen an, verteilt Style-Check, Design-Review
und Accessibility-Audit und konsolidiert die Findings zu einem Report.
model_class: strong-generalist
capabilities:
mcps: []
skills: []
- id: reviewer
purpose: >-
Führt das Design-Review gemäß der design-review.prompt.md-Vorlage durch.
Bewertet UI-Konsistenz gegen die design-standards.instructions.md.
Meldet Findings mit Schweregrad, keine eigenmächtigen Codeänderungen.
runtime_agent: oracle # tiefes Prüfen = Oracle-Profil
model_class: high-reasoning
capabilities:
mcps: []
skills: [style-checker]
- id: style-checker
purpose: >-
Prüft Code mechanisch gegen die Style-Guidelines aus dem
style-checker-Skill. Liefert Verstoßliste mit Datei/Zeile. Keine Fixes.
runtime_agent: fixer # schnelle, gezielte Prüfungen
model_class: fast-research
capabilities:
mcps: []
skills: [style-checker]
- id: accessibility-auditor
purpose: >-
Auditet die Oberfläche gemäß accessibility-audit.prompt.md.
Kategorisiert Verstöße (kritisch/warnung/hinweis) und zitiert die
betroffenen Stellen.
runtime_agent: librarian # Recherche-/Prüfprofil
model_class: fast-research
capabilities:
mcps: []
skills: []

View file

@ -0,0 +1,29 @@
# CPM-Wrapper um apm-issue-autopilot aus dem offiziellen microsoft/apm-Repo.
#
# Das Original-Paket orchestriert bereits Skills (apm-triage-panel,
# shepherd-driver, pr-description-skill) und treibt Issues bis zum
# mergebaren PR. Das Team-Profil hier bildet genau diese Phasen auf
# Agentenrollen ab.
#
# Original: https://github.com/microsoft/apm/tree/main/packages/apm-issue-autopilot
# APM unterstützt Monorepo-Subpaths, daher ist die Dependency direkt
# auf das Unterverzeichnis gerichtet.
name: acme/issue-autopilot-cpm
version: 0.1.0
description: >
Issue-Triage-Team auf Basis von microsoft/apm packages/apm-issue-autopilot:
Triage als Gate, Shepherd für den Drive-to-Merge, PR-Beschreibungen und
eine prüfende Gegenstimme. Human-in-the-loop: Escalation an den Maintainer
bei Zweifel.
author: Tobias Endres
license: MIT
type: hybrid
targets:
- opencode
dependencies:
apm:
- microsoft/apm/packages/apm-issue-autopilot
mcp:
- name: io.github.github/github-mcp-server
transport: http

View file

@ -0,0 +1,65 @@
# team-profile.yaml Issue-Autopilot-Team
# Rollen basierend auf den Phasen des offiziellen apm-issue-autopilot-Pakets:
# Triage → Entscheidung → Drive-to-Merge → PR-Beschreibung.
schema: corentic.team-profile/v1
id: acme.issue-autopilot
description: >
Treibt GitHub-Issues vom Intake bis zum mergebaren PR: Triage-Panel
als zentrales Gate, Shepherd für jeden akzeptierten Issue,
PR-Autor mit verankerter Beschreibung. Escaliert standardmäßig beim
Maintainer im Zweifelsfall.
roles:
- id: orchestrator
purpose: >-
Nimmt die Issue-Liste entgegen, startet pro Issue die Triage und fasst
zu EIN konsolidiertem Review zusammen. Eskaliert Zweifelfälle explizit
an den Maintainer statt selbst zu entscheiden.
model_class: strong-generalist
capabilities:
mcps: [github]
skills: []
- id: triager
purpose: >-
Führt die Triage gemäß apm-triage-panel-Rubrik durch. Bewertet
Reproduzierbarkeit, Scope, Priorität und Duplikate. Empfehlung mit
Begründung, keine direkten Fixes.
runtime_agent: oracle # Bewertungs-Gate = Reasoning-Profil
model_class: high-reasoning
capabilities:
mcps: [github]
skills: []
- id: shepherd
purpose: >-
Treibt akzeptierte Issues über shepherd-driver bis zum mergebaren PR:
Branch, Fix, Mutation-Break- und Lint-Gates, CI-Watch, Konfliktauflösung.
Hält bei rotem CI inne.
runtime_agent: fixer # Umsetzung + Korrekturen
model_class: strong-writing
capabilities:
mcps: [github]
skills: []
- id: pr-writer
purpose: >-
Verfasst die PR-Beschreibung mit pr-description-skill. Verankert sie
am Issue mit Acceptance-Kriterien und Testnachweis. Merged nie selbst.
runtime_agent: custom # eigener Custom Agent 'pr-writer'
model_class: strong-writing
capabilities:
mcps: [github]
skills: []
- id: reviewer
purpose: >-
Gegenprobe vor dem Push: prüft Fix gegen Issue-Akzeptanzkriterien
und PRINCIPLES.md-Gate. Findings blockieren den Push, kein Self-Merge.
runtime_agent: oracle
model_class: high-reasoning
capabilities:
mcps: [github]
skills: []