agentic-engineering
A personal collection of agent customizations: plugins, instructions, custom agents, and the marketplace that distributes them. Built around the idea that agent quality comes from explicit workflows, deterministic validation, and small composable primitives — not large prompts.
Repository layout
agentic-engineering/
├── plugins/ # Installable plugins (this is what the marketplace serves)
│ ├── marketplace.json # Auto-generated marketplace descriptor
│ ├── agent-compat/ # Copilot custom agent compatibility for Codex/Claude
│ ├── agent-on-ramp-coach/ # Confidence-graded coding-agent adoption coach
│ ├── ux-gremlin/ # Hostile-but-realistic UX resilience test plans and Playwright generation
│ ├── vibe-sentinel/ # Assumption gate + change-control contract guardrails (vibe-coding sentinel)
│ └── web-ux-test/ # Workflow-enforced Playwright UX testing pack
├── agents/ # Standalone custom agents (not packaged as plugins)
├── instructions/ # Repository-scoped AGENTS.md instructions
│ ├── general-coding/ # Always-on coding discipline
│ └── agentic-tooling/ # Rules for editing agent tooling itself
├── scripts/
│ └── sync-marketplace.mjs # Regenerates plugins/marketplace.json
├── .githooks/ # Repo-managed git hooks (opt-in per clone)
├── .github/
│ └── workflows/ # CI: validate plugins, sync marketplace
└── AGENTS.md # Workspace-wide agent guidance
The two most active areas are plugins/ (full installable packs) and instructions/ (repo-scoped guidance that applies to every change made in this workspace).
Plugins
Each subfolder under plugins/ is a self-contained pack that can be installed independently. Conventions are documented in instructions/agentic-tooling/repo/AGENTS.md, but the highlights:
- One user-facing orchestrator agent per plugin, with private sub-agents for stage work.
- Skills for repeatable steps, including bundled scripts/templates and deterministic validators.
- JSON Schemas + Node validators for any structured artifact a plugin produces.
- Lifecycle hooks for guarantees that instructions alone cannot enforce (credentials, plan validation, dangerous tool calls).
- Optional MCP App for interactive UI.
Current plugins:
| Plugin | Purpose |
|---|
| agent-compat | Convert Copilot *.agent.md custom agents into Codex AGENTS.md and Claude custom-instructions.md overlays. |
| agent-on-ramp-coach | Help engineers adopt coding agents safely through confidence levels and reviewable sessions. |
| ux-gremlin | Turn happy-path web flows into hostile-but-realistic gremlin scenarios with a Playwright recipe DSL and executive reports. |
| vibe-sentinel | One plugin combining the assumption gate (verify assumptions before edits) and the change-control contract (lock scope, detect drift). Replaces the former assumption-killer and change-control-compiler plugins. |
| web-ux-test | Plan, run, classify, repair, and report structured web UX tests with a stateful CLI and MCP workflow server. |
Using the marketplace
The marketplace descriptor lives at plugins/marketplace.json and lists every plugin in plugins/ with a git-subdir source pointing back at this repository. Any Claude Code (or compatible) marketplace reader can install from it.
Add this marketplace locally
Add the entry below to your marketplace file (typically ~/.agents/plugins/marketplace.json for Claude Code):
{
"source": "https-fetch",
"url": "https://raw.githubusercontent.com/SamMRoberts/agentic-engineering/main/plugins/marketplace.json"
}
…or clone this repo and point the host at the file path directly. Then install any listed plugin from the host's marketplace UI.
Per-plugin overrides
The descriptor is generated, but each plugin can pin custom values by adding a marketplace block to its .codex-plugin/plugin.json (or root plugin.json):
{
"name": "my-plugin",
"marketplace": {
"ref": "v0.2.0",
"policy": { "installation": "PREVIEW", "authentication": "NONE" },
"category": "Quality"
}
}
Defaults are ref: main, policy: AVAILABLE / ON_INSTALL, and category inferred from interface.category.
Marketplace sync
plugins/marketplace.json is generated by scripts/sync-marketplace.mjs. Three layers keep it in step with plugins/: