From 913be9d528aea12cff49e26c2270958ca3807545 Mon Sep 17 00:00:00 2001 From: "Tobias J. Endres" Date: Sun, 23 Aug 2026 17:45:55 +0200 Subject: [PATCH] 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. --- corentic-package-manager/README.md | 12 +++- .../examples/microsoft-design-review/apm.yml | 20 ++++++ .../microsoft-design-review/team-profile.yaml | 52 +++++++++++++++ .../microsoft-issue-autopilot/apm.yml | 29 +++++++++ .../team-profile.yaml | 65 +++++++++++++++++++ 5 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 corentic-package-manager/examples/microsoft-design-review/apm.yml create mode 100644 corentic-package-manager/examples/microsoft-design-review/team-profile.yaml create mode 100644 corentic-package-manager/examples/microsoft-issue-autopilot/apm.yml create mode 100644 corentic-package-manager/examples/microsoft-issue-autopilot/team-profile.yaml diff --git a/corentic-package-manager/README.md b/corentic-package-manager/README.md index 394328b..1489a45 100644 --- a/corentic-package-manager/README.md +++ b/corentic-package-manager/README.md @@ -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 \ diff --git a/corentic-package-manager/examples/microsoft-design-review/apm.yml b/corentic-package-manager/examples/microsoft-design-review/apm.yml new file mode 100644 index 0000000..744901d --- /dev/null +++ b/corentic-package-manager/examples/microsoft-design-review/apm.yml @@ -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 diff --git a/corentic-package-manager/examples/microsoft-design-review/team-profile.yaml b/corentic-package-manager/examples/microsoft-design-review/team-profile.yaml new file mode 100644 index 0000000..d8e54c8 --- /dev/null +++ b/corentic-package-manager/examples/microsoft-design-review/team-profile.yaml @@ -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: [] diff --git a/corentic-package-manager/examples/microsoft-issue-autopilot/apm.yml b/corentic-package-manager/examples/microsoft-issue-autopilot/apm.yml new file mode 100644 index 0000000..f5120bd --- /dev/null +++ b/corentic-package-manager/examples/microsoft-issue-autopilot/apm.yml @@ -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 diff --git a/corentic-package-manager/examples/microsoft-issue-autopilot/team-profile.yaml b/corentic-package-manager/examples/microsoft-issue-autopilot/team-profile.yaml new file mode 100644 index 0000000..97f8ecc --- /dev/null +++ b/corentic-package-manager/examples/microsoft-issue-autopilot/team-profile.yaml @@ -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: []