Empirically verified: oh-my-opencode-slim preset entries keyed to an
APM-deployed native OpenCode agent (.opencode/agents/*.md) reconfigure
it in place - model override works, no duplicate agents are created.
- new optional role field 'agent_ref: <name>': persona (prompt,
identity) comes from the APM primitive; cpm only resolves model_class
locally and emits a preset entry under the deployed agent's name
- validation: warns when agent_ref target is missing from
.opencode/agents/ (apm install not run yet) and when 'purpose' is
redundantly set on agent_ref roles
- collision warning: inline roles shadowing deployed native agents
suggest using agent_ref instead
- microsoft-design-review example: reviewer role now uses
agent_ref: design-reviewer, showcasing both role forms
- README: new section on the relationship to APM agent primitives
- blog-review.md: verified findings as material for a blog addendum
- apm-omos-agent-teams-v3.md: main blogpost draft (German)
- omos-deep-dive.md: second blogpost on oh-my-opencode-slim capabilities
- blog-review.md: source-of-truth copy of the Ghost draft + numbered
revision proposals from the Perplexity fact-check
- image assets referenced by the blogposts (.jpg/.png)
The rendered preset only configures agents; the skills/instructions
that role allowlists reference are deployed by APM. cpm setup now
detects apm.yml dependencies and offers to run 'apm install' after
rendering (manual command printed when the CLI is missing or stdin
is not a TTY). render/check print it as an explicit next step.
Also:
- next steps now name the absolute directory to start opencode from
(fixes presets appearing 'missing' when opencode runs in the wrong
cwd, as hit during first real-world test)
- init no longer prints literal <package-dir> placeholders
- model list is shown once instead of repeating per class
- README: new 'Using the team' section (primitives -> reload ->
sanity check -> work via orchestrator), activation writes to the
global user config, troubleshooting entry for missing skills
CPM is an international project; only the blogpost stays German.
Translated: cpm.py docstring/messages/help texts, README.md,
cpm-setup skill, all team-profile.yaml files (incl. runtime_agent
comments), example apm.yml wrappers and the model-mapping template.
Also fixes DEFAULT_MAPPING_PATH pointing to ~/.config/apm-team
instead of ~/.config/cpm.
A CPM package is an agent package consisting of an APM manifest plus a
team configuration (team-profile.yaml). The manager translates such a
package into the native config of a target harness. First target:
oh-my-opencode-slim; oh-my-pi, codex, claude and copilot are planned.
- omos/ -> corentic-package-manager/, cpm.py as CLI entry point
- new commands: cpm init [--fill] and cpm setup (guided flow with
interactive model selection from opencode.json(c))
- schema field omos_agent -> harness-neutral runtime_agent
- user mapping moved to ~/.config/cpm/model-mapping.yaml
- provenance suffix .cpm-provenance.json
- skill renamed to cpm-setup
- omos init [--fill]: create user mapping file, interactively resolve
PLACEHOLDER classes by picking from models discovered in
opencode.json(c)
- omos setup: guided flow - show profile summary, create/fill missing
mappings with explicit user choice, then render
- README quickstart updated to the two-command path
- examples/package: copy of the job-application APM package with
corentic.team-profile/v1 declaration (orchestrator, researcher,
writer, checker, notifier)
- examples/model-mapping.yaml: user-side model class mapping with
simple and extended entries
- skills/omos-setup: skill guiding users through
resolve-validate-render and activation
Deterministic translator between APM team profiles and
oh-my-opencode-slim presets. Reads team-profile.yaml, resolves
model classes against a user-local mapping table, generates
namespaced presets plus provenance. Includes check (dry-run),
merge-by-preset-id, custom agent generation from purpose fields,
and MCP availability warnings.