# Publish Bundle

> Use this skill to package a CE_RD_OS workstream output into the dual-track delivery format: GitHub repo plus 10-file text zip. Trigger when the user says "ship it", "package this", "publish v0.X.Y", "make me a release", "pack the bundle", or when a workstream reaches its termination criteria. Runs verify_self.sh as the privacy and conformance gate, runs pack_text_bundle.sh to produce the zip, fills the approval_gate template honestly, and surfaces to the architect for verdict. Never self-issues the release verdict.

- Skill: `0sxd/publish-bundle` (Agent Skill)
- Install (CLI): `npx skillmds@latest add 0sxd/publish-bundle`
- Raw SKILL.md: https://api.skillmd.com/api/skills/0sxd/publish-bundle/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: 0SxD (https://skillmd.com/u/0sxd)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/0sxd/publish-bundle

---


# publish_bundle

Packs a CE_RD_OS workstream output into the dual-track delivery format.

## Two artifacts from one source of truth

The repo IS the source of truth. The zip is generated from the repo.

### Track A1: GitHub repo

- The repo at the user's GitHub remote (default
  `https://github.com/<handle>/ce-rd-os`).
- AGENTS.md at root, conformant to the AGENTS.md spec.
- 6 SKILL.md files under `skills/`, each conformant to agentskills.io.
- references/ folder with the 10 supporting documents.
- LICENSE (Apache-2.0), LICENSE-DOCS (CC-BY-4.0), CHANGELOG.md (Keep
  a Changelog 1.1.0), NOTICES.md, CONTRIBUTING.md.
- Makefile, registry.yaml, authors.yaml, .gitignore.
- .github/workflows/{verify.yml, release.yml}.
- packets/ for vendored release artifacts and PROCEED.md.
- scripts/ for verify_self.sh and pack_text_bundle.sh.

### Track A2: 10-file text zip

Generated by `scripts/pack_text_bundle.sh`. Contents:

1. AGENTS.md
2. README.md
3. SETUP.md
4. system_directive.md (extracted from skills/system_directive/SKILL.md)
5. setup_intake.md
6. source_ingestion.md
7. trinity_rubric.md
8. workstream_creator.md
9. publish_bundle.md
10. PROCEED.md

The zip drops into NotebookLM, Claude project, custom Gem, custom GPT.
The host reads AGENTS.md first, then runs setup_intake from
setup_intake.md, then proceeds through the workstreams.

## Publish-readiness rubric (15 row matrix)

The publish_bundle skill maintains a 15-row publish-readiness matrix
that scripts/verify_self.sh executes mechanically.

| # | Tag | Check |
|---|---|---|
| 1 | Essential | AGENTS.md exists at repo root |
| 2 | Essential | each SKILL.md frontmatter validates |
| 3 | Essential | skill name field equals parent directory name |
| 4 | Essential | description length 1 to 1024 |
| 5 | Essential | LICENSE recognized header (Apache-2.0) |
| 6 | Essential | no em or en dashes anywhere |
| 7 | Essential | no privacy blocklist hits |
| 8 | Important | CLAUDE.md and GEMINI.md are 3-line pointers |
| 9 | Important | CHANGELOG.md has [Unreleased] and [0.X.Y] sections |
| 10 | Important | registry.yaml rows match skills tree |
| 11 | Important | git config user.email is not a system default |
| 12 | Optional | compatibility lists 3 or more host envs |
| 13 | Optional | reference docs follow progressive disclosure |
| 14 | Pitfall | no eager multi-body load (no skill imports another's body) |
| 15 | Pitfall | no reference doc body over 5000 lines |

verdict: PROMOTE if all Essential pass and no Pitfall fails.
verdict: HOLD otherwise.

## Procedure

The skill walks these steps in order. Steps stop on first failure.

1. **Read setup configuration** from the active workstream.
2. **Run verify_self.sh.** If exit non-zero, surface failures to the
   architect, do not proceed.
3. **Run pack_text_bundle.sh.** Produces `dist/ce-rd-os-vX.Y.Z-text-bundle.zip`.
4. **Generate SHA-256 sidecar** for the zip.
5. **Fill approval_gate template** at `build/APPROVAL_GATE_TEMPLATE.md`.
   Sections 1 through 5 are filled by the agent honestly. Section 6
   (architect verdict) is left blank.
6. **Surface to architect.** Wait for verdict.
7. **On APPROVED verdict only**: tag the release (`git tag -a vX.Y.Z`),
   push, run `gh release create` (or rely on the release.yml workflow
   triggered by the tag).
8. **On REVISIONS verdict**: implement fixes, return to step 2.
9. **On REJECTED verdict**: package state into HANDOFF_PACKET_v2.md,
   surface to architect, stop.

## Architect-only verdict

The agent fills the approval gate but does not issue the verdict. The
architect issues the verdict via the section 6 / 7 of the template at
`build/APPROVAL_GATE_TEMPLATE.md`.

This is a hard rule. No agent ever auto-promotes a release.

## Multi-bundle reuse

This skill works for any CE_RD_OS-shaped bundle, not just CE_RD_OS
itself. The Makefile and scripts can be vendored into adjacent
bundles (the user's other product tracks) by:

1. Copying the bundle skeleton (AGENTS.md, registry.yaml,
   authors.yaml, Makefile, scripts/, .github/workflows/).
2. Replacing skill bodies with the new bundle's skills.
3. Updating registry.yaml entries.
4. Updating CHANGELOG.md, NOTICES.md, README.md.
5. Running verify_self.sh against the new bundle.

The user has indicated other product tracks will use this same
publish flow. The skill is built for that.

## Citations

- AGENTS.md spec, Linux Foundation Agentic AI Foundation.
- Agent Skills spec, Anthropic, agentskills.io.
- Keep a Changelog 1.1.0, keepachangelog.com.
- Conventional Commits 1.0, conventionalcommits.org.
- SemVer 2.0.0, semver.org.
- The vercel-labs zip-filename-equals-directory-name convention.
- The openai-cookbook and anthropics/claude-cookbooks registry.yaml
  schema.

End publish_bundle.

