RFC: APM Strategic Direction — Governance and Composition for AI Agent Plugins #148
Replies: 3 comments 1 reply
-
|
Interesting thoughts. |
Beta Was this translation helpful? Give feedback.
-
Strategy Update: PR #83 Review & Refined PositioningFollowing up on this RFC with findings from the PR #83 review (plugin support) and refined strategic thinking. PR #83 StatusPR #83 implements the decompose-and-normalize approach: plugins are downloaded, their Architecture verdict: correct. The decompose approach preserves APM's composition value. Bundle placement (just copying whole plugins to PR has 6 must-fix items before merge (security: symlink following + non-deterministic glob, test fixes, docs). Full review posted on the PR. Refined Positioning: "Terraform for AI Agents"After deeper analysis, the positioning has crystallized. APM doesn't compete with The value flywheel:
Cherry-Picking: A Key DifferentiatorOne insight that emerged: APM's existing virtual package support (subdirectory and file-level packages) means you can cherry-pick individual primitives from plugins: dependencies:
apm:
- acme-corp/security-plugin@^2.0 # Full plugin
- acme-corp/code-quality/skills/linting # Just the linting skill
- acme-corp/standards/instructions/security.md # Single instruction filePlugins are atomic — you get everything or nothing. APM lets you pick exactly what you need and compose from multiple sources. Priority System AdvantageWhen APM decomposes plugins and scatters primitives to @cteyton — On Security PoliciesGreat question about exclusion policies. This is exactly the direction for
The plugin spec's governance model ( Updated RoadmapNo changes to the priorities proposed in the RFC. PR #83 lands item 1 (output native plugin formats). Next priorities remain lock file extension and governance tooling. |
Beta Was this translation helpful? Give feedback.
-
|
The reproducibility and auditability problem you describe at the plugin layer exists at the prompt layer too. enabledPlugins with no version pin is one form of implicit state. Prompt constraints buried in prose are another. You can't diff them, you can't version them cleanly, and downstream tooling has no reliable way to inspect what the agent was told it could or couldn't do. The same governance instinct that motivated APM applies here: if you separate concerns into explicit typed blocks, role, context, constraints, output format, then the prompt becomes something you can audit, reproduce, and compose from. Right now most prompts are the equivalent of a flat config file with all settings inline. I've been building flompt for exactly this, a visual prompt builder that decomposes prompts into 12 semantic blocks and compiles to Claude-optimized XML. Open-source: github.com/Nyrok/flompt |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Context
The Claude Code plugin specification has shipped — and GitHub Copilot CLI has adopted it. Between
plugin.json, marketplace discovery,enabledPluginsinsettings.json, and enterprise managed settings, the native ecosystem now covers a significant portion of what APM originally set out to do: bundling, sharing, and project-scoped distribution of agent primitives.This is a good thing. It validates the need APM identified. It also means APM's positioning needs to evolve. This RFC proposes a direction and invites feedback before we commit to it.
Proposed Direction
APM becomes the governance and composition layer for AI agent plugins. Not an alternative to plugins. Not a competing format. The tool that makes plugins reproducible, auditable, and composable from heterogeneous sources.
Two pillars:
1. Reproducibility & Governance
enabledPluginsinsettings.jsonis a boolean map —"formatter@acme-tools": true. No version field. No SHA. No lock file. The consuming project can't independently pin versions.APM already ships
apm.lock(since v0.7.2) with commit-pinned versions and resolution metadata. Extending this to plugin references — plus adding drift detection (apm audit --drift) and CI gates (apm audit --ci) — fills a gap that plugin systems won't address. Lock files are a package manager concern, not a runtime concern.The enterprise question this answers: "What agent instructions were active when release 4.2.1 was built?"
2. Multi-Source Composition
Enterprise teams compose agent config from GitHub, Azure DevOps, internal repos, and sub-paths within monorepos. No vendor will build a tool that assembles plugins from competing platforms' sources. APM is the neutral assembler:
Format strategy:
apm.ymlas build manifest,plugin.jsonas outputapm.ymlis where developers declare intent (dependencies, versions, sources).apm installresolves everything and writes valid native config —settings.json, plugin directories, andapm.lock. If you stop using APM, the generated files still work. Zero runtime dependency.Existing
apm_modules/+ compiled output (AGENTS.md,CLAUDE.md) continues working for tools that don't support plugins yet. As plugin support broadens, compiled output can be phased out gradually.Proposed Roadmap (Priority Order)
apm installwrites validsettings.jsonand plugin directories (PR Implement plugin management system and CLI commands #83 direction)apm audit --drift, trusted source enforcementapm build— assemble valid plugin directories from heterogeneous sourcesapm.ymlapm compilefor tools that don't support plugins yet; don't expandWhat's changing in messaging
apm.ymlinstead ofsettings.json"apm.ymladds reproducibility and policy on top ofsettings.json"Known gaps we need to close
plugin.jsonyet. PR Implement plugin management system and CLI commands #83 starts this.What I'd like feedback on
Beta Was this translation helpful? Give feedback.
All reactions