---
status: ACCEPTED
authority:
  proposer: "@architect"
  countersigners:
    - actor: "@ceo"
      date: "2026-05-27"
      grade: "retroactive"
      reference: "Sprint 151"
  trigger: "EndiorBot scaffold output not consumable by Claude Cowork/plugin ecosystem"
  notes: "Adopts Anthropic knowledge-work-plugins format. Base profile only — no MTS-specific fields."
sdlc_framework: "6.3.1"
---

# ADR-056: Plugin Format Compatibility (Base Profile)

## Context

Anthropic's `knowledge-work-plugins` repo (2026-05) establishes a standard plugin format for Claude Code and Cowork. EndiorBot-scaffolded projects are not consumable by this ecosystem — no `.claude-plugin/plugin.json`, no standard `skills/` or `commands/` structure.

Cross-product plan (MTS Governed Plugin Architecture v0.1) defines two profiles:
- **Base** — Anthropic-compatible, OSS-safe
- **Governed** — MTS extension with policy, evidence, trust fields

EndiorBot uses **Base profile only**. Governed profile is SDLC Orchestrator / MTClaw concern.

## Decision

`endiorbot init` (STANDARD+ tiers) generates:

```
.claude-plugin/plugin.json    # Base profile manifest
commands/README.md             # Seed commands directory
skills/README.md               # Seed skills directory
```

### Base profile schema (strict Anthropic-compatible, C2 split applied)

```json
{
  "schema_profile": "base",
  "schema_version": "0.1.0",
  "runtime_compat": ">=0.1.0 <1.0.0",
  "name": "project-name",
  "version": "0.1.0",
  "description": "Generated by EndiorBot",
  "required_context": {
    "filesystem_paths": ["repo"],
    "env_vars": [],
    "secrets_required": false
  }
}
```

- `schema_version` = manifest format SemVer; `runtime_compat` = host version range (C2: evolve independently)
- `name` = kebab-case normalized (reuse `slugify()`)
- No `policy`, `trust`, `permissions`, `required_evidence` fields (Governed profile only)
- EndiorBot metadata stays in `.sdlc-config.json`

### Hard dependency (C3 closure — no draft path)

Depends on Manifest ADR from MTClaw S120 (Base profile freeze by Day-3).
If ADR slips: EndiorBot S151 **pauses for re-scope** — NO "draft + break later" path.
Rationale: OSS users seeing draft schema_profile would have legitimate breaking-change complaints when v0.1 lands.

### Tier scoping

- LITE: no plugin output (per ADR-054, minimal scaffolding)
- STANDARD+: full plugin scaffold

### Backward compatibility

- Re-init without `--force`: additive-only (create if missing, skip if present)
- Exception: `draft` profile auto-upgraded to `base` (D6 migration rule)

## Consequences

### Positive
- Any EndiorBot-scaffolded project instantly consumable by Claude Code/Cowork ecosystem
- Solo devs get distribution capability without MTS ecosystem
- Clear separation: Base (OSS) vs Governed (commercial)

### Negative
- LITE tier UX differs (no plugin output) — intentional, documented

## Files Changed

| File | Change |
|------|--------|
| `src/sdlc/scaffold/templates/plugin-manifest.ts` | **NEW** — `generatePluginManifest()` |
| `src/sdlc/scaffold/structure-generator.ts` | Add plugin scaffold steps (STANDARD+) |
| `src/sdlc/scaffold/index.ts` | Export new generator |
| `tests/sdlc/scaffold/plugin-manifest.test.ts` | **NEW** — manifest validation tests |
