Release v2.13.0. Foundation Hardening + Doc Stack Decision
Released: 2026-05-05 Type: Refactor + decision release (minor) Skill count: 40 (unchanged from v2.12.0) Key theme: Foundation Hardening + Doc Stack Decision
TL;DR
v2.13.0 is a maintenance and quality release. The 40-skill catalog is unchanged from v2.12.0, so day-to-day usage of /prd, /hypothesis, /user-stories, and the rest of the catalog is identical. What changed is everything around the catalog:
- Cleaner, more navigable documentation. Duplicate files removed; counts reconciled across every public surface (README, getting-started, reference docs, mkdocs config, homepage hero); a new Diataxis-aligned folder structure (concepts, guides, reference) with a
pm-skill-*filename prefix that signals scope at a glance; every generated page clearly labeled so editors know which file is the source. - For contributors and forkers, 7 new CI gates catch documentation drift on pull requests automatically: nav completeness, generated-content untouched, cross-doc reference integrity, docs frontmatter coverage, internal link validity, version-reference consistency, and skill-family registration. The enforcing CI tier doubled (5 to 10) and the validator inventory grew from 15 to 22.
- For
pm-skills-mcpusers, the companion MCP server shipped v2.9.3 the same week, a security-patch follow-up to v2.9.2 that cleared all 8 open Dependabot moderate advisories (hono,@hono/node-server,vite,postcss). The catalog frozen at the v2.9.2 build (40 skills + 11 workflow tools + 8 utility tools) is unchanged.
If you use pm-skills via the file-based install (npx skills add product-on-purpose/pm-skills or git clone), the upgrade is purely additive cleanup: nothing in your workflow changes, but the docs and contribution surface are noticeably better.
What changed
graph TD
A[v2.12.0 tagged]
B[2026-05-02 v2.13 stub]
C[2026-05-03 scope locked: 3 strands, 4 buckets]
D[Bucket A: doc structure refactor 4/4]
E[Bucket B: count + link cleanup 9/9]
F[Bucket C: CI hardening 12/12]
G[Bucket D: Zensical spike + NO-GO decision 2/2]
H[Out-of-cycle: MCP v2.9.2 maintenance-mode pivot]
I[Out-of-cycle: MCP v2.9.3 security patch 8 to 0 Dependabot alerts]
J[PR.1: per-strand Phase 0 review converged]
K[PR.2: release-state Phase 0 review 5 review rounds + 3 resolution passes converged]
L[PR.3: generator regen first-run convergence]
M[PR.4: mechanical CI all green]
N[PR.5: CHANGELOG + Release notes authored]
O[v2.13.0 tagged]
A --> B --> C
C --> D
C --> E
C --> F
C --> G
D --> J
E --> J
F --> J
G --> J
C --> H --> I
J --> K --> L --> M --> N --> O
style A fill:#c8e6c9
style C fill:#fff4e1
style J fill:#c8e6c9
style K fill:#c8e6c9
style L fill:#c8e6c9
style M fill:#c8e6c9
style N fill:#c8e6c9
style O fill:#81c784
Changed (visible in the rendered docs)
Doc structure (Bucket A, 4 items):
- Frameworks folder retired.
docs/frameworks/deleted; the canonical Triple Diamond reference now lives atdocs/concepts/triple-diamond-delivery-process.mdwith amkdocs.ymlredirect from the old path. Reducesmkdocs.yml exclude_docs:from 8 entries to 2. - Cross-folder reorg (Diataxis-aligned). 4 concept files moved out of
concepts/toreference/andguides/per the Diataxis 4-quadrant taxonomy (concepts = generic explanatory; reference = PM-Skills lookup material; guides = PM-Skills how-to material). 4 legacy duplicate files deleted after CR-strip drift analysis (real divergence was 60 of 3,226 lines foragent-skill-anatomyand 21 of 1,495 lines forgetting-started; canonical was strictly newer in all cases). - Authoring guide consolidation.
creating-skills.mdrenamed tocreating-pm-skills.mdper the lockedpm-skill-*prefix convention;authoring-pm-skills.mddeleted; both old paths redirect to the new canonical. - Pattern 5C generated-content marker on all 63 generated pages (40 individual skill pages + 8 category index pages + 9 workflow pages + 1 workflow index + 3 showcase pages + 1 showcase index + 1 commands reference). The 8 category indices comprise 6 Triple Diamond phase indices (discover, define, develop, deliver, measure, iterate) plus the foundation and utility category indices. Each generated page now carries
generated: trueandsource: scripts/...frontmatter fields plus a visible!!! warning "Generated file"admonition pointing editors to the source. Pairs with the newcheck-generated-content-untouchedvalidator that detects hand-edits to generated pages.
Count and link cleanup (Bucket B, 9 items):
- Skill counts reconciled across
concepts/agent-skill-anatomy.md,reference/categories.md,reference/ecosystem.md,reference/project-structure.md,guides/mcp-integration.md,getting-started/index.md,mkdocs.yml site_description, and the homepage hero. All current-state references now say 40 skills (26 phase + 8 foundation + 6 utility). utility-pm-skill-buildercatalog table updated: Domain 25 to 26 (addedmeasure-okr-grader); Foundation 1 to 8 (addedlean-canvasplus the 5 meeting-* skills plusokr-writerplusstakeholder-update; persona retained); Utility 1 to 6 (addedmermaid-diagrams,pm-skill-iterate,pm-skill-validate,slideshow-creator,update-pm-skills; pm-skill-builder retained).docs/guides/mcp-setup.mddeleted and redirected toguides/mcp-integration.mdper the maintenance-mode pivot subsumption. The canonical “how to use MCP” content now lives inpm-skills-mcp’s own README.AGENTS/codex/CONTEXT.mdvestigial-redirect rewrite. Shrunk 74 to 32 lines acknowledging that Codex usage scope is now Phase 0 adversarial review only (codified v2.11.0); points toAGENTS/claude/CONTEXT.mdas canonical project context.- README “What’s New” workaround replaced (Option a section-aware CI extension). The broad
v[0-9]+\.line-exemption incheck-count-consistency.{sh,ps1}was replaced with explicit HTML-comment markers (<!-- count-exempt:start -->/<!-- count-exempt:end -->) for historical-content exemption plus a subset-descriptor exclusion list (so phrasing like “26 phase skills” no longer flags as a stale total). Surfaced and resolved 18 hidden findings the prior workaround had silenced. - F-34 THREAD_PROFILES.md added at
library/skill-output-samples/THREAD_PROFILES.mdas a machine-readable per-thread metadata contract for tooling consumers (utility-pm-skill-builderprimary; future regen tools). Documents thread identity, feature arc, prompt style, character naming convention, real competitors, sample-suffix patterns, and scenario archetypes per phase across all three threads (storevine, brainshelf, workbench). docs/reference/project-structure.mdfull reconciliation. TOC anchorthe-32-pm-skills-flattothe-40-pm-skills-flat. Directory tree counts updated. Foundation section expanded 1 to 8 with full skill listing. Slash command table gained 8 missing rows.docs/guides/index.mdexpanded from 7 to 12 listed guides (addedusing-meeting-skills,skill-finder,recipes,prompt-gallery,updating-pm-skills).
What’s new (under the hood)
CI hardening (Bucket C, 12 items):
- 5 PowerShell parity bugfixes. Fixed
$matchesreserved-word collision incheck-stale-bundle-refs.ps1,Join-Pathnamed-parameter usage incheck-workflow-coverage.ps1andcheck-generated-freshness.ps1, path-detection bug inlint-skills-frontmatter.ps1. PS1 versions now match bash output on current main. check-count-consistencytightened and promoted to enforcing for current-state files. The original line-levelv[0-9]+\.exemption was replaced with explicit HTML-comment markers plus a subset-descriptor exclusion list (per Bucket B item 6). PS1 + bash now emit identical findings on identical input.- 7 new validators, each with
.sh+.ps1+.mdtriplet completeness:check-nav-completeness(enforcing): everydocs/**/*.mdis in nav ORexclude_docsOR auto-include patternscheck-generated-content-untouched(enforcing): snapshots, regenerates, diffs, restores; fails on hand-edits to generated pages. Pairs with Pattern 5C from Bucket A.4.validate-references-cross-doc(enforcing): every cross-link indocs/reference/resolvesvalidate-skill-family-registration(enforcing): registry-driven family validation (coversmeeting-skills-familyplus future families); F-36validate-docs-frontmatter(advisory): every rendered doc has title plus descriptioncheck-internal-link-validity(advisory): zero broken internal links across the doc treecheck-version-references(advisory): version-reference drift detector
- Net surface delta: validator inventory grows from 15 to 22 (7 new). Enforcing tier grows from 5 to 10 (4 new enforcing + count-consistency promoted). Bash + PS1 dual-stack maintained for v2.13 (consolidation decision deferred to v2.14.0+).
Decision artifact: Zensical compatibility (Bucket D, 2 items)
Outcome: NO-GO for v2.14.0 commitment.
The 60-minute time-boxed compatibility spike against Zensical 0.0.40 (with MkDocs Material 9.7.6 as baseline) surfaced two BLOCKERs that disqualify Zensical for our content shape at this maturity level:
mkdocs-redirectsplugin not honored. Zero redirect HTML files generated for the 12 mapped paths inmkdocs.yml redirects.redirect_maps. All bookmarked old URLs would 404 under Zensical.exclude_docs:not honored. 183 internal HTML files fromdocs/internal/leaked into the publicsite/output despite the explicitexclude_docs: internal/directive. Privacy-equivalent of a structural failure.
Plus an IMPORTANT-severity behavioral difference: Zensical 0.0.40 emits 2940 link-reference parser warnings on bracketed text ([role]/[action]/[benefit] user-story templates, [yes / no] choice prompts, cards[3] array notation, etc.) that Material does not. All sampled cases were false positives. Volume makes --strict mode unusable at this Zensical version.
Recommendation: stay on MkDocs Material through v2.14.0+. Do NOT trigger Plan B (Astro Starlight) immediately per the spike plan’s Section 5 logic; Plan B becomes its own effort doc only if Material’s maintenance posture deteriorates in parallel. Re-spike Zensical when both blockers resolve in upstream releases (suggested triggers: announcement of mkdocs-redirects parity, announcement of exclude_docs honoring, or Zensical reaching v0.5+ regardless).
The full spike report is at docs/internal/release-plans/v2.13.0/plan_v2.13_zensical-spike-report_2026-05-05.md. It will be retained as the canonical decision artifact for v2.14.0+ stack-decision discussions; future re-spikes write a new dated report rather than editing this one.
Out-of-cycle: pm-skills-mcp maintenance mode
Two same-week pm-skills-mcp releases happened mid-cycle on 2026-05-05 by explicit user-initiated decision. Tracked separately from in-cycle scope but called out here for completeness:
pm-skills-mcpv2.9.2 maintenance-mode pivot. Announces formal maintenance mode (effective 2026-05-04), re-embeds the full current 40-skill catalog at v2.9.2 build time (superseding the prior v2.11.0 M-22 28-skill freeze), updates README and CHANGELOG and CLAUDE.md andsrc/config.tsfor the maintenance posture. Published to npm with a GitHub Release.pm-skills-mcpv2.9.3 security-patch follow-up. Two hours after the v2.9.2 announcement, v2.9.3 cleared all 8 open Dependabot moderate advisories via transitivenpm audit fix(hono4.12.10 to 4.12.17,@hono/node-server1.19.12 to 1.19.14,vite6.4.1 to 6.4.2,postcss8.5.6 to 8.5.14). Post-ship Dependabot open-alert count: 0. Bundled three latent v2.9.x maintenance debts in the same patch:tests/loader.test.tscatalog assertions corrected for the 40-skill embedded library,package-lock.jsontop-level version metadata synced, and a retroactive em-dash sweep on 28 occurrences in pre-2026-04-13 CHANGELOG entries.
The 2-hour announcement-to-patch turnaround validates the v2.9.2 maintenance-mode “security patches will continue” commitment in operational practice. Catalog frozen at v2.9.2 build (40 skills, 11 workflow tools, 8 utility tools = 59 tools); subsequent v2.9.x patches do not change the catalog.
Infrastructure / process
- Phase 0 Adversarial Review Loop applied across both per-strand and release-state layers, per the v2.11.0 codification + v2.12.0 release-state extension. PR.1 (per-strand): 4 Codex tasks (Bucket A retry, Bucket C round 1 + round 2, Bucket D retry) converged below IMPORTANT severity. PR.2 (release-state): 5 Codex review rounds + 3 resolution passes (8 numbered rounds total). Each Codex round caught a deeper layer of stale-summary text introduced by the previous round’s resolution; round 6 was a comprehensive sweep across the full release stack rather than another incremental fix; round 8 resolved final audit-trail correctness defects.
- PR.3 generator regen converged on first run. All 3 generators (
generate-skill-pages.py,generate-workflow-pages.py,generate-showcase.py) produced zero git diff against current state.check-generated-content-untouched.shvalidator: PASS for all 63 generated pages. - PR.4 mechanical CI all green. 10 enforcing scripts PASS plus 5 advisory scripts PASS at the pre-PR.5 commit.
- Same-commit-as-work pattern applied throughout the cycle. Plan-doc updates landed in the same commit as the work they describe; eliminates the v2.12.0-class “release-state Codex review finds plan disagrees with code” defect.
- Stale-aggregate-counter pattern codified as durable feedback memory after PR.2 round 2 caught it at meta level (status-block text, not just numerical aggregates, drifts unless every gate closure sweeps all release-stack docs). The pattern is now a standing rule for future cycles.
Why this matters
For users, v2.13.0 is the release that makes pm-skills feel finished as a library. The 40-skill catalog has been stable since v2.12.0; what was rough was the documentation around it - duplicate files in two places, stale skill counts on seven different public surfaces, generated pages indistinguishable from hand-edited ones, navigational dead-ends after the v2.11 to v2.12 growth. v2.13.0 fixes all of that. Browsing the docs, finding a skill, understanding which file is canonical, contributing a fix - each is now noticeably smoother.
For contributors and forkers, the CI hardening is the durable user-value. Doc drift, broken cross-references, and stale counts have historically been caught only at release time, often by the maintainer reading the rendered site. v2.13.0 turns those checks into automated PR gates: 7 new validators run on every PR across both Ubuntu and Windows. A typo in a skill cross-reference, a count that fell out of sync, a hand-edit to a generated page - all caught at PR time, not at release time.
For pm-skills-mcp users, the same-week v2.9.3 security patch is direct user-value: 8 → 0 open Dependabot advisories with a 2-hour announcement-to-patch turnaround that demonstrated the maintenance-mode commitment in practice. If you depend on the MCP server, the v2.9.3 release is recommended for the security fixes alone.
Validation: Phase 0 Adversarial Review Loop
| Round | Layer | Findings | Outcome |
|---|---|---|---|
| PR.1 / Bucket A retry | Per-strand | 0 CRITICAL + 0 IMPORTANT + 0 MEDIUM + 1 MINOR | Resolved + Bucket A clears Phase 0 |
| PR.1 / Bucket C round 1 | Per-strand | 0 CRITICAL + 2 IMPORTANT + 3 MEDIUM + 1 MINOR | 2 IMPORTANTs resolved; 3 MEDIUM + 1 MINOR documented as known debt |
| PR.1 / Bucket C round 2 | Per-strand | 0 CRITICAL + 0 IMPORTANT (CONVERGED) | Bucket C clears Phase 0 |
| PR.1 / Bucket D retry | Per-strand | 0 CRITICAL + 0 IMPORTANT + 4 MEDIUM + 2 MINOR. Both NO-GO BLOCKERs hold under cross-reference to Zensical’s own compatibility docs. | 4 MEDIUM count-drift items resolved; methodology MEDIUMs documented |
| PR.2 round 1 | Release-state | 0 CRITICAL + 6 IMPORTANT + 3 MEDIUM + 1 MINOR | Resolved across 3 batch commits + self-review residuals |
| PR.2 round 2 | Release-state | 0 CRITICAL + 4 IMPORTANT (round-1 stale-status persisted) + 2 new MEDIUM + 1 new MINOR | Resolved |
| PR.2 round 3 | (resolution pass; no separate Codex review) | n/a | Resolution commit covered round 2 findings |
| PR.2 round 4 | Release-state | 0 CRITICAL + 2 new IMPORTANT (next-layer stale-summary at gate-table row + sibling index file) | Resolved + drafts authored |
| PR.2 round 5 | Release-state | 0 CRITICAL + 4 new IMPORTANT (top status block + drafts misrepresenting audit trail + count breakdown stale + README update draft wrong index headers) + 1 new MEDIUM | Resolved in round 6 comprehensive sweep |
| PR.2 round 6 | (resolution pass; comprehensive sweep across full release stack) | n/a | Resolution commit |
| PR.2 round 7 | Release-state | 0 CRITICAL + 2 IMPORTANT (audit-trail correctness defects in PR.2 row + checklist note + README “What’s New” draft) + 1 MEDIUM | Resolved |
| PR.2 round 8 | (resolution pass; user-value reframe of TL;DR + Why-this-matters + README block also landed in this round) | n/a | Resolution commits + draft user-value reframe |
| PR.3 generator regen | Mechanical | 0 git diff after regen; check-generated-content-untouched PASS | First-run convergence |
| PR.4 mechanical CI | Mechanical | 10 enforcing PASS + 5 advisory PASS | Tag-ready except pending version bump |
The release-state loop’s value was on display across rounds 2-7: each Codex round caught the next layer of stale-summary text introduced by the previous round’s resolution. Round 6 was a comprehensive sweep across the entire release stack rather than another incremental fix; round 8 resolved final audit-trail correctness defects and applied the user-value reframe to the public-facing summaries. Same defect class as the codified feedback_stale-aggregate-counter memory, applied at meta level. The pattern lesson: every gate closure must sweep ALL release-stack docs that reference the gate’s state simultaneously, not just the doc whose row was edited.
What’s deferred to v2.14.0+
| Item | Reason |
|---|---|
| Zensical migration | Spike outcome: NO-GO. Re-spike when blockers resolve. |
| Plan B Astro Starlight | Per spike plan Section 5: Plan B does NOT trigger immediately on NO-GO; only triggers if Material maintenance posture deteriorates in parallel. |
| F-37 HTML Template Creator | Conflicts with v2.13’s “no new skills” guard. |
| F-29 Meeting Lifecycle Workflow | Time-gated on real-world meeting-skills usage feedback. |
| F-30 Family Adoption Guide | Time-gated on at least one team’s adoption experience. |
| F-31 / F-32 / F-33 / F-35 Sample-automation slate | May be obsolete after v2.12 builder cleanup; re-evaluate before v2.14. |
| Pattern 2 mkdocs-macros frontmatter-driven counts | Adds dependency; deferred pending Zensical decision. |
| Bash + PS1 dual-stack consolidation | Strategic question; deferred to v2.14.0+. |
.github/workflows/validation.yml Validate _pm-skills/ in .gitignore (advisory) | Pre-existing advisory, not in v2.13 scope. |
| AGENTS/claude/CONTEXT.md per-phase Skills Inventory tables | At v2.10.x-era 32-skill state per intentional deferral. Authoritative current catalog lives in docs/reference/categories.md and docs/skills/index.md. Full table refresh slated for v2.14.0. |
Counts at v2.13.0
| Surface | Count | Note |
|---|---|---|
| Skills | 40 | 26 phase + 8 foundation + 6 utility (unchanged from v2.12.0) |
| Workflows | 9 | unchanged |
| Slash commands | 47 | 40 skill + 7 workflow |
| Library samples | 126 | unchanged from v2.12.0 |
| Validators (total) | 22 | up from 15 |
| Validators (enforcing) | 10 | up from 5 |
| Validators (advisory) | 12 | up from 10 |
| pm-skills-mcp tools (frozen at v2.9.2 build) | 59 | 40 skill + 11 workflow + 8 utility |
Detailed change manifest
This section is an exhaustive, file-by-file breakdown of every relocation, deletion, rename, addition, and modification that landed in v2.13.0. It is intended for maintainers, contributors, and downstream tooling that needs to know exactly what changed. User-facing impact is summarized in the TL;DR and Why-this-matters sections above; this section is the audit trail.
A. New files added (tracked)
Scripts (7 new validator triplets):
scripts/check-nav-completeness.sh,.ps1,.md(Bucket C Wave 1, item 6; commit86ce58a).scripts/check-generated-content-untouched.sh,.ps1,.md(Bucket C Wave 2.1; commita170ecd).scripts/validate-references-cross-doc.sh,.ps1,.md(Bucket C Wave 2.2; commita170ecd).scripts/validate-docs-frontmatter.sh,.ps1,.md(Bucket C Wave 3, item 9; commitf6f9785).scripts/check-internal-link-validity.sh,.ps1,.md(Bucket C Wave 3, item 10; commit6d0d2ac).scripts/check-version-references.sh,.ps1,.md(Bucket C Wave 3, item 11; commit13085b0).scripts/validate-skill-family-registration.sh,.ps1,.md(Bucket C Wave 3, item 12 / F-36; commit04d7624).
Library samples reference document:
library/skill-output-samples/THREAD_PROFILES.md(F-34; commitfb18124). Approximately 395 lines of machine-readable per-thread metadata for tooling consumers.
Release artifacts:
docs/releases/Release_v2.13.0.md(this file; promoted fromplan_v2.13_release-notes-DRAFT.mdin commit6f81fb1).docs/internal/release-plans/v2.13.0/plan_v2.13.0.md(master plan; pre-existed as a stub before cycle, expanded throughout).docs/internal/release-plans/v2.13.0/plan_v2.13_ci-refactor.md(CI strand doc).docs/internal/release-plans/v2.13.0/plan_v2.13_zensical-spike.md(Zensical spike plan).docs/internal/release-plans/v2.13.0/plan_v2.13_zensical-spike-report_2026-05-05.md(NO-GO decision artifact).docs/internal/release-plans/v2.13.0/plan_v2.13_pre-release-checklist.md(Phase 0 to Phase 6 gate checklist).docs/internal/release-plans/v2.13.0/plan_v2.13_release-notes-DRAFT.md(PR.5 author-time draft; preserved post-promotion as audit trail).docs/internal/release-plans/v2.13.0/plan_v2.13_changelog-DRAFT.md(PR.5 author-time draft).docs/internal/release-plans/v2.13.0/plan_v2.13_readme-update-DRAFT.md(PR.5 author-time draft with promotion checklist).docs/internal/release-plans/v2.13.0/plan_v2.13_final-sweep_2026-05-05.md(final-pass review captured at ship time).docs/internal/release-plans/v2.13.0/skills-manifest.yaml(empty by design; no skill version bumps in v2.13).
Skill family registry (referenced by F-36 validator):
docs/reference/skill-families/_registry.yaml(registry consumed byvalidate-skill-family-registration).
B. Files renamed (rename preserves history)
docs/guides/creating-skills.mdtodocs/guides/creating-pm-skills.md(Bucket A.3; commit4190f45). Per the lockedpm-skill-*filename prefix convention. Old path redirects viamkdocs.yml redirect_maps.docs/concepts/triple-diamond.mdtodocs/concepts/triple-diamond-delivery-process.md(Bucket A.1; commit4190f45). Renamed for descriptive accuracy. Old path redirects.
C. Files moved (cross-folder reorg, Diataxis-aligned)
These were moved out of docs/concepts/ into docs/reference/ (lookup material) or docs/guides/ (how-to material) per the v2.13 doc-folder semantics decision (Bucket A.2; commit 4190f45):
docs/concepts/skill-anatomy.mdtodocs/reference/pm-skill-anatomy.md. Lookup-material per Diataxis. Renamed withpm-skill-*prefix per the locked convention.docs/concepts/versioning.mdtodocs/reference/pm-skill-versioning.md. Lookup-material; renamed with prefix.docs/concepts/comparisons.mdtodocs/guides/pm-skill-comparisons.md. How-to-style material; renamed with prefix.docs/concepts/skill-lifecycle.mdtodocs/guides/pm-skill-lifecycle.md. How-to-style material; renamed with prefix.
All four moves carry corresponding mkdocs.yml redirect_maps entries so old bookmarks resolve.
D. Files removed (deleted from tracking)
docs/concepts/agent-skill-anatomy.mdremoved (Bucket A.2 legacy duplicate cleanup; commit4190f45). Canonical is nowdocs/reference/pm-skill-anatomy.md(deprecated path; redirected viamkdocs.yml redirect_maps).docs/concepts/getting-started.mdremoved (Bucket A.2). Canonical is nowdocs/getting-started/index.md(deprecated path; redirected).docs/guides/authoring-pm-skills.mdremoved (Bucket A.3). Canonical is nowdocs/guides/creating-pm-skills.md(deprecated path; redirected).docs/guides/mcp-setup.mdremoved (Bucket B.4 mcp-setup.md deletion + redirect to mcp-integration.md per the maintenance-mode pivot subsumption). The canonical “how to use MCP” content now lives inpm-skills-mcp’s own README.docs/frameworks/triple-diamond.mdand the entiredocs/frameworks/folder removed (Bucket A.1). Canonical isdocs/concepts/triple-diamond-delivery-process.md(deprecated path; redirected). Themkdocs.yml exclude_docs:directive was reduced from 8 entries to 2 as a side effect.
These removals were judged safe via CR-strip drift analysis. The “real divergence” between deprecated and canonical was 60 of 3,226 lines for agent-skill-anatomy and 21 of 1,495 lines for getting-started; the canonical was strictly newer in all cases, so no content was lost.
E. Files reorganized (mkdocs.yml overrides cleanup)
mkdocs.ymltheme.custom_dir: overridesdirective removed and the emptyoverrides/.gitkeepplaceholder removed (sibling commit06a2e36). The override slot was unused; this is incidental hygiene tracked in the master plan Change Log but not in any Bucket A/B/C/D row.
F. Files modified - substantial changes
Public-facing documentation:
README.md- skill counts updated to 40 across all surfaces (project structure tree commands count 45 to 47); Measure section table extended with/okr-grader; Foundation section table extended from 1 to 8 commands; MCP section reframed for v2.9.x maintenance line (latest v2.9.3) with frozen-at-v2.9.2-build framing; “All 26 domain and foundation skills” corrected to “All 40 skills (26 phase + 8 foundation + 6 utility)” with workflow + utility tool counts; new v2.13.0 What’s New block (open) above the v2.12.0 block (collapsed); Latest stable + release notes + published tag pointers updated to v2.13.0.CHANGELOG.md- new## [2.13.0] - 2026-05-05entry inserted above the v2.12.0 entry with full Added / Changed / Infrastructure / Fixed / Out-of-cycle / Deferred sections.docs/releases/index.md- new top row for v2.13.0; v2.10.1 and v2.10.2 broken rows removed (they linked to release-notes files that were never authored; v2.10.0 row updated with a note pointing to CHANGELOG.md for the patch history).docs/index.md- homepage hero recent-releases table extended with v2.13.0; brokenreleases/Release_v2.10.1.mdandreleases/Release_v2.10.2.mdrows removed; v2.10.0 row enriched with a CHANGELOG reference for the patch history.docs/changelog.md- 3 broken release-note links corrected fromdocs/releases/Release_v2.X.Y.md(path-prefix bug) toreleases/Release_v2.X.Y.md.docs/getting-started/index.md- Available Commands table extended (Measure phase 4 to 5 commands; Foundation 1 to 8 commands; workflows expanded from 1 listed command to all 7).docs/guides/mcp-integration.md- already trimmed during the mid-cycle MCP pivot from 570 to 39 lines (Bucket B.4 / MCP.2). Updated mid-cycle for v2.9.3 (replaced “v2.9.2 remains available on npm” framing with “v2.9.x maintenance line, latest v2.9.3” and frozen-at-v2.9.2-build framing).docs/guides/index.md- listing expanded from 7 to 12 guides (addedusing-meeting-skills,skill-finder,recipes,prompt-gallery,updating-pm-skills).docs/guides/validate-mcp-sync.md- new maintenance-mode warning callout added at top noting the workflow’s reduced relevance under MCP maintenance mode.docs/reference/categories.md- reconciled total skill count from 29 (stale) to 40; per-category counts updated; 3 new sections added (meeting,communication,documentation) for categories that exist in skill frontmatter but were previously undocumented; Framework Mapping table extended; Category Selection Guide branches added; Category Distribution table updated to 40 total.docs/reference/ecosystem.md- hero paragraph and Decision Matrix qualifier reframed for v2.9.x maintenance line; ecosystem statement updated.docs/reference/project-structure.md- TOC anchorthe-32-pm-skills-flattothe-40-pm-skills-flat; directory tree counts updated; Foundation section expanded 1 to 8; Slash command table gained 8 missing rows; staledocs/frameworks/tree entry removed with a one-line note about the v2.13 retirement.docs/reference/pm-skill-anatomy.md- “Four scripts validate skill integrity” expanded to 5 core scripts plus a note pointing to.github/workflows/validation.ymlandscripts/README_SCRIPTS.mdas canonical for the full CI suite.
Master plan and CI strand documentation:
docs/internal/release-plans/v2.13.0/plan_v2.13.0.md- top Status block flipped from “Plan (decisions pending)” to “Pre-tag (all 27/27 in-cycle items shipped + 5 MCP items shipped; PR.1 to PR.5 closed; Phase 5 tag-time chores in flight)”; Out of Scope #3 reworded from “No MCP work” to “No in-cycle MCP work” with explicit acknowledgement of the out-of-cycle pivot; “What stays the same” library samples 120 to 126 and MCP catalog reframed; “What’s new” validator inventory 17 to 24 corrected to 15 to 22 + enforcing 5 to 7 corrected to 5 to 10; Open Questions OQ-5/OQ-6/OQ-7 marked Resolved; MCP Impact section reframed; multiple Change Log entries appended for every cycle event including PR.1 to PR.5 closures + the round-by-round PR.2 audit trail; PR.2 row in Pre-release gates table flipped to Shipped with full Codex session IDs; Bucket A.4 description corrected to 40 individual skill pages with category-indices breakdown.docs/internal/release-plans/v2.13.0/plan_v2.13_ci-refactor.md- “14 items” corrected to “12 items” (matching status table); validator inventory “17 to 24” corrected to “15 to 22”; “5 to 11 enforcing” corrected to “5 to 10” with breakdown of which validators are new-enforcing vs new-advisory vs promoted; YAML snippet rewritten to drop the never-implemented--current-state/--historicalargs and reference the actual marker-based exemption mechanism shipped in B.6; pre-release verification gates ticked as the work landed; top status flipped to Executed.docs/internal/release-plans/v2.13.0/plan_v2.13_pre-release-checklist.md- 51 of 75 boxes ticked covering Phase 0 + Phase 1 + Phase 2 + Phase 4 closeable items; release-state-rerun box ticked with note about the 7-numbered-round convergence trajectory; Phase 5 expanded with an explicitvalidate-version-consistencyre-run item between version bumps and the git tag step.
Validation workflow:
.github/workflows/validation.yml- 7 new validator job entries added for the new Bucket C validators;if: always() && matrix.os == ...added to all 14 new-validator step conditions so an enforcing-step failure does not cascade-skip later validators in the same job;continue-on-error: trueremoved from bothCheck count consistency (bash)andCheck count consistency (pwsh)steps to actually wire the promotion-to-enforcing into CI.
Existing CI scripts (PowerShell parity bugfixes):
scripts/check-stale-bundle-refs.ps1-$matchesPowerShell reserved-word collision resolved (commit0706ef7).scripts/check-workflow-coverage.ps1-Join-Pathnamed-parameter usage corrected (commit5b4f912).scripts/check-generated-freshness.ps1- sameJoin-Pathfix (commit7269183).scripts/lint-skills-frontmatter.ps1-$dir.FullNamepath-detection bug fixed (commitc3367d2).
check-count-consistency overhaul (Bucket B.6 + C item 5):
scripts/check-count-consistency.shand.ps1- tightened regex (commitab752ae); promoted to enforcing for current-state files (commit254026f); marker-based count-exempt range system replaced version-prefix line-exemption (commit35956ab); subset-descriptor exclusion list added so phrasings like “26 phase skills” no longer flag as stale total-counts.scripts/check-count-consistency.md- documentation rewritten to reflect both new mechanisms (commit35956ab).
Generator scripts (Pattern 5C generated-content marker, Bucket A.4):
scripts/generate-skill-pages.py,scripts/generate-workflow-pages.py,scripts/generate-showcase.py- all 3 generators updated to emitgenerated: true+source: scripts/...frontmatter fields plus a!!! warning "Generated file"admonition pointing editors to the source. Coverage: 63 generated pages (commita38b36a).
Skills catalog table (Bucket B.3):
skills/utility-pm-skill-builder/SKILL.md- catalog table updated from Domain 25 + Foundation 1 + Utility 1 to Domain 26 + Foundation 8 + Utility 6 with descriptions and categories sourced from each skill’s frontmatter.
Agent context:
AGENTS/codex/CONTEXT.md- shrunk from 74 lines to 32 lines as a vestigial-redirect (Bucket B.5; commit pre-existing) acknowledging Codex usage scope is now Phase 0 adversarial review only; points toAGENTS/claude/CONTEXT.mdas canonical project context. Currency markerv2.12.0retained socheck-context-currencyCI still passes.AGENTS/claude/CONTEXT.md- top-of-file Current State block fully rewritten reflecting current pre-tag state (PR.1 to PR.5 closed); architecture diagram counts updated 32 to 40 skills + 39 to 47 commands + 95 to 126 samples; Active section flipped from v2.9.0 effort tracking to v2.13.0 tag-prep gate tracking; Skills Inventory header annotated with a deferred-refresh note pointing todocs/reference/categories.mdanddocs/skills/index.mdas canonical for the current 40-skill catalog.AGENTS/claude/DECISIONS.md- release-state-loop entry updated from “not yet codified” to “Accepted and codified” with reference to the v2.13 pre-release checklist Phase 0 section.
Plugin manifest and marketplace:
.claude-plugin/plugin.json- version bumped 2.12.0 to 2.13.0 (commit8b48ee0).marketplace.json- version bumped 2.12.0 to 2.13.0 (commit8b48ee0).
README badges:
README.mdshields.io version badge URL bumped 2.12.0 to 2.13.0 (commit8b48ee0).
Backlog:
docs/internal/backlog-canonical.md- Last updated bumped 2026-04-06 to 2026-05-05; M-23 (Phase 5 GitHub-platform metadata refresh checklist) and M-24 (advisorygh-release-metadatascript) added as v2.14.0+ entries.
G. CLAUDE.md cross-cycle absorption
- The primary
mainbranch had received commit87ddf7a(no-em-dash CLAUDE.md project rule codification) on 2026-05-04, before thev2.13/cycleworktree was created. At Phase 5 tag-time,mainwas merged intov2.13/cycleto absorb that commit (merge commite85ac4e);v2.13/cyclewas then fast-forwarded intomain. The merged CLAUDE.md content includes the no-em-dash rule alongside the existing Documentation Rules + Project Context sections.
H. Generated content regenerated
All 63 generated pages (40 skill pages + 8 category indices + 9 workflow pages + 1 workflow index + 3 showcase pages + 1 showcase index + 1 commands reference) were regenerated with the Pattern 5C generated-content marker. Re-running the 3 generators against current state produces zero git diff at HEAD; check-generated-content-untouched.sh validator: PASS.
I. Files NOT changed (intentionally)
library/skill-output-samples/*- all 126 sample files unchanged. v2.13 added 1 new reference document (THREAD_PROFILES.md) but did not modify or add any sample._workflows/*.md- all 9 workflow source files unchanged. v2.13 added zero new workflows.skills/*/SKILL.md- all 40 skill source files unchanged in their behavioral content. The catalog table insideskills/utility-pm-skill-builder/SKILL.mdwas updated for catalog accuracy (Bucket B.3) but no other source SKILL.md was touched.commands/*.md- all 47 command files unchanged._NOTES/- gitignored; no v2.13 changes affect anything in this directory.
J. Tag and merge sequence (Phase 5)
- Version bumps committed on
v2.13/cycleas commit8b48ee0. - PR.5 promotion landed on
v2.13/cycleas commit6f81fb1plus follow-on54b189e(PR.5 closure in master plan). - Final-sweep document landed on
v2.13/cycleas commitba41138. git fetch originfrom worktree;git merge main --no-editintov2.13/cycleto absorb commit87ddf7a(merge commite85ac4e).git checkout mainin primary repo;git merge v2.13/cycle --ff-only(fast-forward).git tag -a v2.13.0annotated on the merged HEAD.git push origin mainandgit push origin v2.13.0(both remote-affecting; in the B3 batch).gh release create v2.13.0 --notes-file docs/releases/Release_v2.13.0.md(creates the public release page from this file).
Related artifacts
- Master plan:
docs/internal/release-plans/v2.13.0/plan_v2.13.0.md - CI strand doc:
docs/internal/release-plans/v2.13.0/plan_v2.13_ci-refactor.md - Zensical spike plan:
docs/internal/release-plans/v2.13.0/plan_v2.13_zensical-spike.md - Zensical spike report (NO-GO):
docs/internal/release-plans/v2.13.0/plan_v2.13_zensical-spike-report_2026-05-05.md - Pre-release checklist:
docs/internal/release-plans/v2.13.0/plan_v2.13_pre-release-checklist.md - Skills manifest (empty by design):
docs/internal/release-plans/v2.13.0/skills-manifest.yaml