From 65fcae6cda1d29076cabf355cf04e7f8fbb385b6 Mon Sep 17 00:00:00 2001 From: Magnus Hedemark Date: Fri, 14 Aug 2026 16:48:49 -0400 Subject: [PATCH] docs(flatten): update repo docs for the flat layout Rewrite README.md Installation prose and references/skill-triggers.md to drop the bundles/ depth and --full-depth guidance, relabel the architecture diagram bundle node, and correct bundle-manifest-design.md to place manifests at /manifest.yaml with the 8-umbrella count. Fix the example manifest and schema descriptions, plus the production-excellence AGENTS.md depth note. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- FAILURE-MODE-INDEX.md | 2 +- README.md | 12 +++++------ docs/architecture.md | 2 +- docs/bundle-manifest-design.md | 25 +++++++++++----------- docs/examples/bundle-manifest.example.yaml | 4 ++-- production-excellence/AGENTS.md | 2 +- references/skill-triggers.md | 12 +++++------ schemas/bundle-manifest-v1.schema.json | 2 +- 8 files changed, 31 insertions(+), 30 deletions(-) diff --git a/FAILURE-MODE-INDEX.md b/FAILURE-MODE-INDEX.md index f9e4d01..85defe1 100644 --- a/FAILURE-MODE-INDEX.md +++ b/FAILURE-MODE-INDEX.md @@ -9,7 +9,7 @@ Use this index when the work is blocked by a recognizable failure pattern rather | Work keeps escalating | Two materially different approaches failed | [systematic-debugging](systematic-debugging/SKILL.md) | | A multi-agent decision is converging too early | One perspective appears sufficient but alternatives have not been tested | [agent-council](agent-council/SKILL.md) | | A contribution may duplicate existing work | The requested feature sounds like something already in the repository | [opensource-contributions](opensource-contributions/SKILL.md) | -| A workflow is repeated manually | The same sequence of skills is executed more than once | [workflow-architect](bundles/workflow-architect/SKILL.md) | +| A workflow is repeated manually | The same sequence of skills is executed more than once | [workflow-architect](workflow-architect/SKILL.md) | | Meaning drifts or disagrees between agents | Agents use the same word for different meanings, or semantic divergence and dead-ends block progress | [semantic-spacetime](semantic-spacetime/SKILL.md) | This is a routing aid, not a replacement for reading the selected skill. Add a row only when the failure mode has a concrete trigger and an existing skill that addresses it. diff --git a/README.md b/README.md index 6690853..c273887 100644 --- a/README.md +++ b/README.md @@ -588,11 +588,11 @@ Paul Graham's "Startup = Growth" framework as an operational weekly practice. Co ### `skills` CLI (cross-harness) -The fastest portable route is the open [`skills` CLI](https://github.com/vercel-labs/skills). The flat top-level skill layout works without a skills.sh-specific manifest. Bundle entry points live one directory deeper under `bundles/`, so include `--full-depth` when listing or selecting them. +The fastest portable route is the open [`skills` CLI](https://github.com/vercel-labs/skills). The flat top-level skill layout works without a skills.sh-specific manifest, so every skill — including the bundle umbrellas — is discovered at the top level. ```bash -# Inspect every available skill name, including bundle entry points -npx skills add magnus919/agent-skills --full-depth --list +# Inspect every available skill name, including the bundle umbrellas +npx skills add magnus919/agent-skills --list # Install one skill into the current project for Codex npx skills add magnus919/agent-skills --skill systematic-debugging --agent codex --yes @@ -600,11 +600,11 @@ npx skills add magnus919/agent-skills --skill systematic-debugging --agent codex # Install one skill globally for Hermes Agent npx skills add magnus919/agent-skills --skill systematic-debugging --agent hermes-agent --global --yes -# Bundle entry points are one directory deeper; select them with --full-depth -npx skills add magnus919/agent-skills --skill neckbeard --full-depth --agent codex --yes +# Bundle umbrellas are top-level skills; select them directly +npx skills add magnus919/agent-skills --skill neckbeard --agent codex --yes ``` -`--skill` matches the `name` in a skill's `SKILL.md`; use the names returned by `--list`. Top-level skills are discovered by default. Use `--full-depth` when selecting a bundle entry point under `bundles/`. +`--skill` matches the `name` in a skill's `SKILL.md`; use the names returned by `--list`. All skills, including the bundle umbrellas, are discovered by default at the top level. For Hermes Agent, keep `--global`: the CLI then installs directly into `$HERMES_HOME/skills/` (normally `~/.hermes/skills/`), which Hermes loads natively. The CLI's project-scoped `.hermes/skills/` target is not auto-discovered by Hermes. diff --git a/docs/architecture.md b/docs/architecture.md index d3b3c39..2703522 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -47,7 +47,7 @@ graph TD end subgraph "Bundles" - BND[bundles/
Multi-skill compositions] + BND[Bundle umbrellas
Multi-skill compositions] end AGENTS --> VS diff --git a/docs/bundle-manifest-design.md b/docs/bundle-manifest-design.md index 71bae19..a7ca2e6 100644 --- a/docs/bundle-manifest-design.md +++ b/docs/bundle-manifest-design.md @@ -12,10 +12,11 @@ repository refactors (see [Non-goals](#non-goals)). ## 1. Problem statement -The repository has seven canonical bundles under `bundles/` (directories with a -`SKILL.md` entrypoint): `product-lifecycle`, `production-excellence`, -`agent-production-operations`, `neckbeard`, `workflow-architect`, `tailscale`, -and `research-and-vault`. Only `workflow-architect` carries a bundle-metadata +The repository has eight canonical bundles — top-level directories with a +`SKILL.md` entrypoint: `product-lifecycle`, `production-excellence`, +`agent-production-operations`, `forward-deployed-engineering`, `neckbeard`, +`workflow-architect`, `tailscale`, and `research-and-vault`. Only +`workflow-architect` carries a bundle-metadata concept today, and that concept is generation-time configuration for its own builder — not a common, machine-readable composition contract. Users and agents cannot consistently discover, from metadata alone, what a bundle is for, which @@ -25,7 +26,7 @@ evaluated. ## 2. Survey of existing bundle metadata -### 2.1 `bundles/workflow-architect/templates/manifest.yaml.tmpl` +### 2.1 `workflow-architect/templates/manifest.yaml.tmpl` The template defines a generation-time manifest with the following fields: @@ -42,7 +43,7 @@ deep-work archetypes, kanban boards). The `skills` entries describe **loading triggers** (keyword → nested skill) for that specific builder — not a general capability contract. -### 2.2 `bundles/workflow-architect/references/example-output/developer-triage/manifest.yaml` (and `developer-pipeline-kanban`) +### 2.2 `workflow-architect/references/example-output/developer-triage/manifest.yaml` (and `developer-pipeline-kanban`) Concrete instances of the template: `bundle_name`, `generated` (e.g. `2026-05-29`), `archetype` (`morning-triage-deep-work`, @@ -54,7 +55,7 @@ generation configuration** — no bundle outside workflow-architect consumes it. ### 2.3 Bundles that carry no manifest today -`bundles/neckbeard/`, `bundles/research-and-vault/`, and `bundles/tailscale/` +`neckbeard/`, `research-and-vault/`, and `tailscale/` carry no manifest of any kind. Their capability description lives only in the `SKILL.md` frontmatter `description` field. `product-lifecycle`, `production-excellence`, and `agent-production-operations` (the three new @@ -84,7 +85,7 @@ schema is therefore warranted — it reuses the repository's schema conventions The contract is `schemas/bundle-manifest-v1.schema.json` (JSON Schema, draft 2020-12, `additionalProperties: false`, versioned filename following the -`evals-v1.schema.json` convention). A manifest lives at `bundles//manifest.yaml` +`evals-v1.schema.json` convention). A manifest lives at `/manifest.yaml` and is validated by `scripts/validate-bundles.rb`. ### 3.1 Fields preserved, dropped, and renamed vs. the existing manifest concept @@ -144,9 +145,9 @@ path with a stated reason and future sequencing: | `research-and-vault` | No manifest added | Minimal bundle (SKILL.md + README only) with no composition surface yet | Add a manifest when it gains references/helpers | The **three new milestone bundles** — `product-lifecycle`, `production-excellence`, -and `agent-production-operations` — ship schema-conformant `manifest.yaml` files -now (`bundles//manifest.yaml`), each resolving `eval_suite` to its own -`bundles//evals/evals.json`. +and `agent-production-operations` — and `forward-deployed-engineering` ship +schema-conformant `manifest.yaml` files now (`/manifest.yaml`), each resolving +`eval_suite` to its own `/evals/evals.json`. For the matrix, bundles without a manifest are rendered with a purpose derived from their `SKILL.md` frontmatter `description` and the remaining cells set to @@ -172,7 +173,7 @@ the documented deferral marker `migration deferred — see docs/bundle-manifest- independent of the generated matrix. Deleting the generated matrix loses no capability description. - **No unrelated refactors.** This issue touches only the changed surface - listed in the PR: `bundles/{product-lifecycle,production-excellence, + listed in the PR: `{product-lifecycle,production-excellence, agent-production-operations}/**` (additive manifest + doc rows), `schemas/`, `scripts/`, `docs/`, and `.github/workflows/validate.yml`. diff --git a/docs/examples/bundle-manifest.example.yaml b/docs/examples/bundle-manifest.example.yaml index 278b24c..5c3037a 100644 --- a/docs/examples/bundle-manifest.example.yaml +++ b/docs/examples/bundle-manifest.example.yaml @@ -8,8 +8,8 @@ # # Paths are relative to the bundle's own directory (this example lives in # docs/examples/, two levels below the repository root, so ../../ resolves to -# the repository root — the same depth as a real bundles//manifest.yaml). -# Canonical manifests live at bundles//manifest.yaml. +# the repository root — the same depth as a real /manifest.yaml). +# Canonical manifests live at /manifest.yaml. schema_version: 1 bundle_name: product-lifecycle diff --git a/production-excellence/AGENTS.md b/production-excellence/AGENTS.md index 0607e50..8210444 100644 --- a/production-excellence/AGENTS.md +++ b/production-excellence/AGENTS.md @@ -11,7 +11,7 @@ point; all routed skills are top-level catalog skills, not nested sub-skills. its frontmatter (`name: production-excellence`). - This bundle does not contain nested skills under a `skills/` directory. All specialist skills are referenced via relative markdown links - (`../..//SKILL.md`) and are resolved by the harness from the catalog. + (`..//SKILL.md`) and are resolved by the harness from the catalog. - When a production concern maps to a single specialist (e.g., a migration plan is needed), load that specialist directly. Use this bundle when cross-domain assembly and a gate decision are required. diff --git a/references/skill-triggers.md b/references/skill-triggers.md index 084ca55..25eec78 100644 --- a/references/skill-triggers.md +++ b/references/skill-triggers.md @@ -51,7 +51,7 @@ Each skill's `description` field is the canonical routing contract. This conveni | "crowdsec", "CrowdSec", "IPS", "IDPS", "WAF", "intrusion prevention", "bouncer", "cscli", "appsec", "LAPI", "remediation component", "community blocklist", "fail2ban", "security engine" | [crowdsec](../crowdsec/SKILL.md) | | "open source", "contributing", "how to contribute", "submit a PR", "file an issue", "CONTRIBUTING.md", "bug report template", "PR template" | [opensource-contributions](../opensource-contributions/SKILL.md) | | "agent eval", "agent evaluation", "LLM eval", "LLM evals", "evaluation dataset", "grader calibration", "model judge", "trajectory review", "agent observability", "agent traces", "agent telemetry", "agent regression", "agent release gate", "privacy-aware telemetry", "prompt evaluation", "model testing" | [agent-evals-and-observability](../agent-evals-and-observability/SKILL.md) | -| "agent production", "agent in production", "agent runtime control", "agent authority", "agent escalation", "agent fallback", "agent disablement", "agent rollout", "agent versioning", "agent cost budget", "agent tool health", "trace-to-eval", "production-to-eval feedback", "agent side-effect contract", "agent production contract" | [agent-production-operations](../bundles/agent-production-operations/SKILL.md) | +| "agent production", "agent in production", "agent runtime control", "agent authority", "agent escalation", "agent fallback", "agent disablement", "agent rollout", "agent versioning", "agent cost budget", "agent tool health", "trace-to-eval", "production-to-eval feedback", "agent side-effect contract", "agent production contract" | [agent-production-operations](../agent-production-operations/SKILL.md) | | "incident learning", "incident follow-up", "incident improvement", "postmortem follow-up", "incident closure", "incident evidence", "escaped from", "escaped requirement", "missing monitoring incident", "unsafe authority", "incident learning record", "causal evidence ledger", "follow-up work map", "verification and closure", "incident-to-improvement", "near-miss learning", "exercise finding follow-up", "incident finding to ticket", "verified closure incident" | [incident-learning](../incident-learning/SKILL.md) | | "implementation plan", "implementation planning", "delivery plan", "execution plan", "work breakdown", "dependency mapping", "critical path", "rollout plan", "rollout strategy", "migration plan", "cross-team plan", "cross-repo plan", "staged rollout", "delivery coordination", "workstream planning" | [implementation-planning](../implementation-planning/SKILL.md) | | "pydanticai", "pydantic AI", "pydantic graph", "AI agent", "LLM agent", "agent framework", "function tool", "tool-using agent", "agent with tools", "agent with dependencies", "structured output", "streaming agent", "agent graph", "state machine graph", "GraphBuilder", "BaseNode", "multi-agent", "agent delegation", "TestModel", "FunctionModel", "capabilities" | [pydanticai](../pydanticai/SKILL.md) | @@ -59,23 +59,23 @@ Each skill's `description` field is the canonical routing contract. This conveni | "product adoption", "user adoption", "activation rate", "time-to-value", "feature discovery", "onboarding plan", "adoption plan", "rollout plan", "cohort rollout", "sustained use", "adoption diagnostic", "adoption evidence", "behavior change product", "in-product education", "adoption segmentation", "pause expansion", "stop adoption", "internal tool adoption", "public service adoption", "enterprise rollout adoption" | [product-adoption](../product-adoption/SKILL.md) | | "product analytics", "product measurement", "metric tree", "leading indicator", "lagging indicator", "countermetric", "tracking plan", "event taxonomy", "instrumentation QA", "analytics QA", "dashboard contract", "product outcome review", "measurement governance", "privacy-aware measurement", "unmeasurable North Star", "North Star measurement", "product funnel", "cohort analysis product", "retention measurement", "adoption measurement" | [product-analytics-and-measurement](../product-analytics-and-measurement/SKILL.md) | | "product experiment", "experiment design", "A/B test design", "hypothesis test product", "feature experiment", "fake door test", "concierge test", "assumption test", "experiment brief", "experiment guardrail", "experiment readout", "ship decision", "no-ship decision", "experiment ethics", "prototype test experiment", "qualitative experiment", "stopping rule experiment", "method selection experiment", "underpowered experiment" | [product-experimentation](../product-experimentation/SKILL.md) | -| "product lifecycle", "product life cycle", "lifecycle phase", "lifecycle routing", "product phase", "phase entry evidence", "phase handoff", "lifecycle evidence ledger", "product lifecycle bundle", "cross-phase routing", "product lifecycle management", "evaluate a new product idea", "product retirement decision", "continue pivot or retire", "product delivery handoff" | [product-lifecycle](../bundles/product-lifecycle/SKILL.md) | +| "product lifecycle", "product life cycle", "lifecycle phase", "lifecycle routing", "product phase", "phase entry evidence", "phase handoff", "lifecycle evidence ledger", "product lifecycle bundle", "cross-phase routing", "product lifecycle management", "evaluate a new product idea", "product retirement decision", "continue pivot or retire", "product delivery handoff" | [product-lifecycle](../product-lifecycle/SKILL.md) | | "product lifecycle learning", "lifecycle learning", "post-launch review", "outcome review", "feature health", "retirement decision", "feature retirement", "deprecation plan", "sunset plan", "assumption ledger", "retained learning", "launch-to-learning", "continue improve harvest pivot pause retire", "migration path retirement", "customer treatment sunset", "epistemic discipline", "expected vs observed" | [product-lifecycle-learning](../product-lifecycle-learning/SKILL.md) | | "product operations", "product governance", "operating model", "decision rights", "product council", "intake review", "portfolio review cadence", "launch review", "experiment review governance", "lifecycle review governance", "evidence standard product", "exception record", "escalation record", "product decision authority", "governance cadence", "product operating model", "lightweight governance", "high-assurance governance", "cross-functional operating contract" | [product-operations-and-governance](../product-operations-and-governance/SKILL.md) | | "product roadmap", "outcome roadmap", "Now/Next/Later", "strategic bet", "bet record", "portfolio roadmap", "roadmap review cadence", "continue/pause/kill criteria", "scenario planning roadmap", "dependency mapping portfolio", "portfolio capacity allocation", "roadmap stakeholder communication" | [product-roadmapping-and-portfolio](../product-roadmapping-and-portfolio/SKILL.md) | | "product UX", "product design", "interaction design", "information architecture", "task flow", "user flow", "state model", "recovery path", "interface contract", "UX handoff", "usability study plan" | [product-design-and-ux](../product-design-and-ux/SKILL.md) | -| "production excellence", "production gate", "launch decision gate", "go no-go defer exception", "production acceptance", "cross-domain evidence", "production evidence packet", "operational handoff", "post-launch learning", "production gate review", "gate model", "escalation decision", "production exception", "cost SLO conflict", "readiness gate", "migration gate review", "recovery evidence gate" | [production-excellence](../bundles/production-excellence/SKILL.md) | +| "production excellence", "production gate", "launch decision gate", "go no-go defer exception", "production acceptance", "cross-domain evidence", "production evidence packet", "operational handoff", "post-launch learning", "production gate review", "gate model", "escalation decision", "production exception", "cost SLO conflict", "readiness gate", "migration gate review", "recovery evidence gate" | [production-excellence](../production-excellence/SKILL.md) | | "production readiness", "launch readiness", "ready to launch", "go no-go", "launch decision", "readiness review", "evidence packet", "launch evidence", "production evidence", "risk-scaled readiness", "readiness record", "launch review board", "missing evidence launch", "exception launch approval" | [production-readiness](../production-readiness/SKILL.md) | | "prioritize", "RICE", "MoSCoW", "opportunity solution tree", "decision log", "write a spec", "product spec", "PRD", "stakeholder communication", "executive brief", "feature prioritization", "backlog ranking", "release scope", "build vs buy", "product decision" | [product-methodology](../product-methodology/SKILL.md) | | "privacy engineering", "privacy requirements", "data lifecycle", "data-lifecycle record", "retention policy engineering", "deletion verification", "data residency", "consent engineering", "privacy acceptance criteria", "privacy change review", "data-flow map privacy", "PII lifecycle", "tenant isolation privacy", "privacy-by-design engineering", "agent trace privacy", "telemetry privacy", "data minimization engineering", "purpose limitation engineering" | [privacy-engineering](../privacy-engineering/SKILL.md) | -| "workflow", "figure out my workflow", "analyze my process", "what do I actually do", "catalog my workflow", "formalize my process", "workflow architect", "onboard me to my own process" | [workflow-architect](../bundles/workflow-architect/SKILL.md) | +| "workflow", "figure out my workflow", "analyze my process", "what do I actually do", "catalog my workflow", "formalize my process", "workflow architect", "onboard me to my own process" | [workflow-architect](../workflow-architect/SKILL.md) | | "write a book", "writing", "novel", "fiction", "nonfiction", "writer's block", "creative block", "writing prompts", "story outline", "character development", "worldbuilding", "edit my draft", "revise my manuscript", "query letter", "book proposal", "synopsis", "find an agent", "publisher", "book deal", "get published" | [writers-helper](../writers-helper/SKILL.md) | | "default alive", "default dead", "runway", "burn rate", "burn multiple", "financial projection", "startup finances", "cash on hand", "breakeven", "how long until", "profitability" | [yc-default-alive-calculator](../yc-default-alive-calculator/SKILL.md) | | "growth rate", "weekly growth", "monthly growth", "startup growth", "compound growth", "traction", "are we growing", "growth benchmark", "how fast should we grow", "YC growth", "product-market fit", "acceleration", "growth trajectory" | [yc-weekly-growth-compass](../yc-weekly-growth-compass/SKILL.md) | | "artifact-pyramids", "artifact pyramids" | [artifact-pyramids](../artifact-pyramids/SKILL.md) | | "chief of staff", "CoS", "executive office", "gatekeeping", "triage", "decision memo", "executive briefing", "board materials", "force multiplication", "leader effectiveness", "organizational sensing", "organizational radar", "team health", "institutional memory", "leadership transition", "calendar triage", "meeting audit", "strategic time", "attention allocation" | [chief-of-staff-methodology](../chief-of-staff-methodology/SKILL.md) | | "site-reliability-engineering", "site reliability engineering" | [site-reliability-engineering](../site-reliability-engineering/SKILL.md) | -| "research and vault", "research-to-notes", "research to durable note", "research extraction and vault", "research-to-note pipeline" | [research-and-vault](../bundles/research-and-vault/SKILL.md) | +| "research and vault", "research-to-notes", "research to durable note", "research extraction and vault", "research-to-note pipeline" | [research-and-vault](../research-and-vault/SKILL.md) | | "research-methodology", "research methodology" | [research-methodology](../research-methodology/SKILL.md) | | "release plan", "release engineering", "release train", "rollback plan", "version bump", "changelog", "DORA metrics", "progressive delivery", "canary release", "feature flag cleanup", "release readiness", "SemVer", "emergency release", "hotfix" | [release-engineering](../release-engineering/SKILL.md) | | "remote system administration", "remote administration", "remote SSH", "SSH administration", "Ansible administration", "Paramiko automation", "remote Linux", "remote FreeBSD", "remote NetBSD", "remote OpenBSD", "remote macOS", "remote service", "remote firewall", "remote package update", "fleet administration", "fleet rollout", "remote launchctl", "remote rcctl", "remote systemctl" | [remote-systems-administration](../remote-systems-administration/SKILL.md) | @@ -92,7 +92,7 @@ Each skill's `description` field is the canonical routing contract. This conveni | "strategy", "strategic planning", "OKRs", "strategic narrative", "Five Forces", "Blue Ocean", "competitive positioning", "moat", "Ansoff", "Three Horizons", "market entry", "capital allocation", "M&A evaluation", "BCG Matrix", "portfolio management" | [strategy-frameworks](../strategy-frameworks/SKILL.md) | | "Supabase", "Supabase CLI", "supabase start", "supabase migration", "Supabase Auth", "Supabase RLS", "Supabase Storage", "Supabase Realtime", "Edge Functions", "self-host Supabase", "self-hosted Supabase", "Supabase Docker", "Supabase backup", "Supabase restore", "Supabase upgrade" | [supabase](../supabase/SKILL.md) | | "Vercel Eve", "eve agent", "eve dev", "eve build", "eve start", "Eve self-hosting", "durable Eve session", "Eve sandbox", "Eve Workflow", "Eve subagent", "Eve agent skills", "Eve deployment", "Eve reverse proxy" | [vercel-eve](../vercel-eve/SKILL.md) | -| "smallest safe intervention", "evidence ledger", "change contract", "prove it worked", "verify at the boundary", "delivery discipline", "SDLC workflow", "did this actually work", "audit trail", "stop and escalate", "neckbeard" | [neckbeard](../bundles/neckbeard/SKILL.md) | +| "smallest safe intervention", "evidence ledger", "change contract", "prove it worked", "verify at the boundary", "delivery discipline", "SDLC workflow", "did this actually work", "audit trail", "stop and escalate", "neckbeard" | [neckbeard](../neckbeard/SKILL.md) | | "verification-methodology", "verification methodology" | [verification-methodology](../verification-methodology/SKILL.md) | | "accessibility", "a11y", "WCAG", "ARIA", "accessible name", "screen reader", "keyboard navigation", "focus management", "focus trap", "dialog", "modal", "combobox", "listbox", "accessible form", "form validation", "error recovery", "accessible authentication", "color contrast", "reduced motion", "target size", "accessibility testing" | [web-accessibility](../web-accessibility/SKILL.md) | | "seo-audit", "seo audit" | [seo-audit](../seo-audit/SKILL.md) | diff --git a/schemas/bundle-manifest-v1.schema.json b/schemas/bundle-manifest-v1.schema.json index 2399ffe..0f23524 100644 --- a/schemas/bundle-manifest-v1.schema.json +++ b/schemas/bundle-manifest-v1.schema.json @@ -2,7 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/magnus919/agent-skills/schemas/bundle-manifest-v1.schema.json", "title": "agent-skills bundle manifest v1", - "description": "Machine-readable composition contract for a canonical bundle under bundles/: purpose, audience, lifecycle stages, included skills, prerequisites, outputs, handoffs, conflicts, and eval-suite references. This is a metadata contract for discovery and composition — it is NOT a second skill format and does not alter the SKILL.md contract.", + "description": "Machine-readable composition contract for a canonical bundle under a top-level bundle directory: purpose, audience, lifecycle stages, included skills, prerequisites, outputs, handoffs, conflicts, and eval-suite references. This is a metadata contract for discovery and composition — it is NOT a second skill format and does not alter the SKILL.md contract.", "type": "object", "additionalProperties": false, "required": [