@cyanheads/mcp-ts-core 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/changelog/0.9.x/0.9.3.md +21 -0
- package/dist/logs/combined.log +7 -7
- package/dist/logs/error.log +5 -5
- package/dist/services/canvas/core/CanvasInstance.d.ts +4 -4
- package/dist/services/canvas/core/CanvasInstance.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasInstance.js +1 -1
- package/dist/services/canvas/core/CanvasInstance.js.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.d.ts +4 -4
- package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
- package/dist/services/canvas/core/DataCanvas.d.ts +5 -5
- package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -1
- package/dist/services/canvas/core/DataCanvas.js +5 -5
- package/dist/services/canvas/core/DataCanvas.js.map +1 -1
- package/dist/services/canvas/core/IDataCanvasProvider.d.ts +11 -11
- package/dist/services/canvas/core/IDataCanvasProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +11 -11
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/requestContext.d.ts +24 -1
- package/dist/utils/internal/requestContext.d.ts.map +1 -1
- package/dist/utils/internal/requestContext.js.map +1 -1
- package/package.json +1 -1
- package/skills/maintenance/SKILL.md +8 -2
- package/skills/multi-server-orchestration/SKILL.md +5 -4
- package/skills/multi-server-orchestration/references/greenfield-buildout.md +4 -3
- package/skills/multi-server-orchestration/references/maintenance-pass.md +9 -6
- package/skills/multi-server-orchestration/references/{release-pass.md → release-and-publish-pass.md} +13 -11
- package/skills/multi-server-orchestration/references/wrapup-pass.md +171 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wrapup-pass
|
|
3
|
+
description: >
|
|
4
|
+
Multi-server-orchestration reference for git wrap-up passes — distilled from `git-mcp-server`'s `git_wrapup_instructions` protocol. Drives parallel verification → optional doc review → wrap-up (version bump, changelog, commit, annotated tag — Bash git, local only, no push) → roll-up across N MCP server projects. Stops at "committed and tagged locally". No push, no publish — those are separate, separately-authorized workflows.
|
|
5
|
+
metadata:
|
|
6
|
+
author: cyanheads
|
|
7
|
+
version: "1.0"
|
|
8
|
+
audience: internal
|
|
9
|
+
type: reference
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Wrap-up Pass — Multi-Server Orchestration
|
|
13
|
+
|
|
14
|
+
Use after reading `../SKILL.md`. This reference distills the `git_wrapup_instructions` protocol into a multi-target fanout: per target, verify → polish docs → bump version + author changelog + commit + annotated tag, **all local**. No push, no publish, no remote ops.
|
|
15
|
+
|
|
16
|
+
## When applicable
|
|
17
|
+
|
|
18
|
+
- One or more MCP servers have committed/uncommitted work to land as a new local commit + annotated tag — for review, or to hold locally pending a separately-authorized publish step
|
|
19
|
+
- Common follow-on to a `maintenance-pass` run where adopted changes are worth shipping
|
|
20
|
+
- Common precursor to a `release-and-publish-pass` run when wrap-up and publish are split across sessions (e.g., wrap-up tonight, publish tomorrow after a final review)
|
|
21
|
+
|
|
22
|
+
This reference assumes the change to land is done — it's the "land it as a commit + tag" phase, not the "do the work" phase.
|
|
23
|
+
|
|
24
|
+
If publish follows immediately in the same session, prefer `release-and-publish-pass.md` end-to-end; it embeds wrap-up as its Phase 4. This reference exists for sessions that stop at "tagged locally" deliberately.
|
|
25
|
+
|
|
26
|
+
## The wrap-up protocol — acceptance criteria
|
|
27
|
+
|
|
28
|
+
Distilled from `git_wrapup_instructions`. **Strict on goals, generic on mechanism.** Every sub-agent treats these as the acceptance checklist for "done":
|
|
29
|
+
|
|
30
|
+
1. **Full diff reviewed end-to-end** before commits are planned
|
|
31
|
+
2. **Version bumped per semver** (default patch; minor/major when warranted) across every place version is declared
|
|
32
|
+
3. **Changelog updated** under the new version in the project's existing format
|
|
33
|
+
4. **Documentation current** for any referenced behavior changes
|
|
34
|
+
5. **Verification suite passes** against the tree being committed
|
|
35
|
+
6. **Commits atomic and in Conventional Commits form** — version bumps ride with the change that warrants them
|
|
36
|
+
7. **Annotated tag** at the project's convention (`v<version>`) with a concise message — no filler
|
|
37
|
+
|
|
38
|
+
Universal constraints from the protocol: do not push, do not bypass verification failures, do not rewrite published history.
|
|
39
|
+
|
|
40
|
+
For `@cyanheads/mcp-ts-core` consumers, the mechanism is concrete (below). External projects substitute their own conventions while preserving the seven acceptance goals.
|
|
41
|
+
|
|
42
|
+
## Pre-flight (orchestrator)
|
|
43
|
+
|
|
44
|
+
Before spawning any sub-agents:
|
|
45
|
+
|
|
46
|
+
1. **Confirm the target list with the user.** Capture absolute paths and the intended version bump per target (`patch` / `minor` / `major`, or an explicit version string). Mixed bumps across targets are fine.
|
|
47
|
+
2. **Confirm the change shape per target.** What changed since the last release? This drives the conventional-commit subject, the per-version changelog body, and the annotated tag message. One or two lines per target is enough for a focused patch.
|
|
48
|
+
3. **Verify each target's working tree state.** Run `git status` and `git log v<latest-tag>..HEAD --oneline` per target to confirm there's actually work worth wrapping. A target with no commits since its last tag and a clean working tree has nothing to wrap.
|
|
49
|
+
4. **Surface the plan and get explicit authorization.** Scenario, target list, version bump per target, gotchas in play. The wrap-up itself is reversible (no push), but tag conflicts surface fast and are easier to head off in pre-flight.
|
|
50
|
+
|
|
51
|
+
## Phase pattern
|
|
52
|
+
|
|
53
|
+
| # | Phase | Mode | Inputs | Outputs |
|
|
54
|
+
|:--|:------|:-----|:-------|:--------|
|
|
55
|
+
| 1 | Pre-flight | orchestrator | Target list, bump intent, change shape | Verified plan, user authorization |
|
|
56
|
+
| 2 | Verification fanout | fanout | Existing target state | Per-target: green `bun run devcheck` + `bun run test:all` (or `test`) |
|
|
57
|
+
| 3 | Doc review fanout (optional) | fanout | Current README + adjacent docs + change shape | Per-target: doc updates folded in, no commits |
|
|
58
|
+
| 4 | Wrap-up fanout | fanout, Bash git only | Phase 3 outputs + version bump intent | Per-target: version bumped, changelog authored, rollup regenerated, commit + annotated tag — **LOCAL ONLY, no push** |
|
|
59
|
+
| 5 | Roll-up | orchestrator | Phase 4 outputs | Per-target verification of commit + tag; consolidated report to user |
|
|
60
|
+
|
|
61
|
+
Phase 3 is optional — skip when the change is small enough that the README/docs are already accurate. For a maintenance-driven patch with no user-facing behavior change, it's often a no-op.
|
|
62
|
+
|
|
63
|
+
## Phase details
|
|
64
|
+
|
|
65
|
+
### Phase 2: Verification fanout
|
|
66
|
+
|
|
67
|
+
One sub-agent per target. Quick verification gate before any version bump or wrap-up.
|
|
68
|
+
|
|
69
|
+
**Task body (after the orient block):**
|
|
70
|
+
|
|
71
|
+
> Run `bun run devcheck`. Then run `bun run test:all` if it exists in `package.json` scripts, otherwise `bun run test`. Both must pass green. Halt and report the failing step's verbatim output if anything fails — do not attempt fixes from inside this phase. If neither `test:all` nor `test` exists in `package.json` scripts, note it and continue — devcheck-only is acceptable (though uncommon for a project shipping a release).
|
|
72
|
+
|
|
73
|
+
Any red target halts the orchestration. The user fixes locally and re-invokes from Phase 2.
|
|
74
|
+
|
|
75
|
+
### Phase 3: Doc review fanout (optional)
|
|
76
|
+
|
|
77
|
+
One sub-agent per target reads the README plus adjacent docs, identifies stale content relative to the current code, and folds updates in. No commits — Phase 4 stages everything together.
|
|
78
|
+
|
|
79
|
+
**Task body:**
|
|
80
|
+
|
|
81
|
+
> Read `README.md` from front to back. Identify content stale relative to the current code: tool/resource counts, version badges, feature lists, configuration tables, version mentions in install snippets. Fold updates in naturally — don't rewrite sections that are already accurate. Do NOT commit. Leave changes in the working tree for the next phase.
|
|
82
|
+
>
|
|
83
|
+
> If `polish-docs-meta` skill is available and the change spans more than just the README (e.g., new env vars, new tools), invoke that skill instead — it handles README plus `server.json`, `package.json`, agent protocol, and `.env.example` in one pass.
|
|
84
|
+
>
|
|
85
|
+
> If the README is already accurate, report "no changes needed" and exit cleanly.
|
|
86
|
+
|
|
87
|
+
For a small patch, this phase is often a no-op. That's fine — skip it entirely if pre-flight confirmed no user-facing change.
|
|
88
|
+
|
|
89
|
+
### Phase 4: Wrap-up fanout (Bash git only)
|
|
90
|
+
|
|
91
|
+
Run only after user authorizes commits.
|
|
92
|
+
|
|
93
|
+
One sub-agent per target. The agent executes the seven acceptance criteria via Bash `git` — no `git-mcp-server` (per the parent SKILL.md's Hard Rule 1, the MCP server's session state leaks across parallel agents).
|
|
94
|
+
|
|
95
|
+
**Task body:**
|
|
96
|
+
|
|
97
|
+
> Execute the wrap-up protocol against this target. Acceptance criteria — strict on goals, generic on mechanism — but for `@cyanheads/mcp-ts-core` consumers, mechanism is concrete:
|
|
98
|
+
>
|
|
99
|
+
> 1. **Diff reviewed.** `git status`, `git log v<latest-tag>..HEAD --oneline`, `git diff --stat`. Understand what's about to ship.
|
|
100
|
+
> 2. **Version bump.** Start from current `package.json` `version`; apply the bump intent (`[patch/minor/major or explicit string]`). Bump every place version is declared:
|
|
101
|
+
> - `package.json` `version`
|
|
102
|
+
> - `server.json` `version` at the top level AND every `packages[].version` entry
|
|
103
|
+
> - `manifest.json` (if present) `version`
|
|
104
|
+
> - README version badge and any hero pinning
|
|
105
|
+
> - Dockerfile OCI labels (if pinned to version)
|
|
106
|
+
> - Any agent-instruction file (`CLAUDE.md`, `AGENTS.md`) that pins the version
|
|
107
|
+
>
|
|
108
|
+
> Run `grep -rn "<current-version>" .` to catch stragglers; resolve case by case (some hits are historical changelog entries — leave those).
|
|
109
|
+
> 3. **Changelog authored.** Create `changelog/<major.minor>.x/<version>.md` per the directory-based convention. YAML frontmatter (`summary:` required, ≤350 chars, no markdown; `breaking:` and `security:` optional, default false). Section order (Keep a Changelog): Added / Changed / Deprecated / Removed / Fixed / Security. Include only sections with entries. Use `changelog/template.md` as the format reference — never edit, rename, or move it.
|
|
110
|
+
> 4. **Regenerate derived artifacts.** `bun run changelog:build` (rebuilds `CHANGELOG.md` rollup from per-version files); `bun run tree` (regenerates `docs/tree.md` if the file structure changed).
|
|
111
|
+
> 5. **Verification gate.** `bun run devcheck` must pass against the tree being committed. `bun run test:all` if it exists, otherwise `bun run test`. Both green. Halt if not green — do NOT bypass.
|
|
112
|
+
> 6. **Atomic Conventional Commits.** Version bumps ride with the change that warrants them. For a focused patch, this is ONE commit covering the work + the version bump + changelog + regenerated artifacts. Subject form: `feat: <version> — <one-line theme>` or `chore(release): v<version> — <theme>`. Plain `-m` only — no heredoc, no `Co-authored-by`, no `Generated with` trailers. No marketing adjectives.
|
|
113
|
+
> 7. **Annotated tag** `v<version>` (`-a`, NOT lightweight) with terse message: release theme, notable changes, dep arrows in `pkg ^old → ^new` form if applicable. Not a CHANGELOG copy. Length is earned.
|
|
114
|
+
>
|
|
115
|
+
> Constraints:
|
|
116
|
+
> - **Bash `git` only.** Do not use `git-mcp-server` (`mcp__git-mcp-server__*`) tools — session state leaks across parallel agents in the same orchestrator session.
|
|
117
|
+
> - **Do NOT push.** Wrap-up is local only. Push is a separate authorized step (`release-and-publish-pass.md` Phase 5, or the standalone `release-and-publish` skill).
|
|
118
|
+
> - NEVER `git stash`. NEVER `git reset --hard`, `git restore .`, `git clean -f`, or `git checkout -- .` — these violate the global protocol.
|
|
119
|
+
> - No marketing adjectives ("comprehensive", "robust", "enhanced", "seamless", "improved") in commit or tag messages. State the change.
|
|
120
|
+
> - If `v<version>` already exists as a tag, **halt and surface the conflict**. Do NOT `git tag -d` without orchestrator authorization.
|
|
121
|
+
>
|
|
122
|
+
> **Verify state at the end:**
|
|
123
|
+
> ```bash
|
|
124
|
+
> git log --oneline -1
|
|
125
|
+
> git show v<version> --stat | head -20
|
|
126
|
+
> git status # should be clean
|
|
127
|
+
> ```
|
|
128
|
+
>
|
|
129
|
+
> Output for the orchestrator: commit SHA, tag name, tag annotation subject. The orchestrator parses these for Phase 5.
|
|
130
|
+
|
|
131
|
+
### Phase 5: Roll-up (orchestrator)
|
|
132
|
+
|
|
133
|
+
The orchestrator verifies per-target via read-only Bash git:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
for d in <target paths>; do
|
|
137
|
+
echo "=== $d ==="
|
|
138
|
+
(cd "$d" && git log --oneline -1 && git tag --points-at HEAD && git status --short)
|
|
139
|
+
done
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Then produces a consolidated report:
|
|
143
|
+
|
|
144
|
+
1. **Per-target headline** — target → new version → tag annotation subject → commit SHA
|
|
145
|
+
2. **Outliers** — targets that halted (verification red, tag conflict, missed version files surfaced during the run)
|
|
146
|
+
3. **Endpoint.** Wrap-up stops here. Anything further — pushing, publishing, closing issues — requires a separate explicit user instruction in a new invocation; the orchestrator does NOT advance from a wrap-up pass on its own.
|
|
147
|
+
|
|
148
|
+
## Gotchas specific to wrap-up
|
|
149
|
+
|
|
150
|
+
| # | Gotcha | Mitigation |
|
|
151
|
+
|:--|:-------|:-----------|
|
|
152
|
+
| 1 | Sub-agent pushes prematurely despite "local only" instruction | Restate "Do NOT push" in the Phase 4 prompt verbatim; verify post-fanout that `git log @{u}..HEAD` shows the wrap-up commit (i.e., still ahead of origin) |
|
|
153
|
+
| 2 | Version bump skipped a file (`server.json`'s per-package entries, README badge, Dockerfile OCI labels, `manifest.json`) | Phase 4 prompt enumerates every version-bearing file; the `grep -rn "<current-version>"` step catches stragglers |
|
|
154
|
+
| 3 | Tag at `v<version>` already exists (leftover from failed prior run, or two orchestrator runs against the same target) | Sub-agent halts and surfaces conflict; never `git tag -d` without orchestrator authorization. Inspect with `git tag -l "v<version>"` and `git show v<version>` |
|
|
155
|
+
| 4 | Annotated tag message bloats into a CHANGELOG copy | Restate in Phase 4 prompt: terse theme + notable changes + dep arrows in `pkg ^old → ^new` form. Length is earned |
|
|
156
|
+
| 5 | Marketing adjectives slip into commit/tag messages | Restate the no-marketing rule in the prompt body; orchestrator spot-checks during Phase 5 (`git log --format='%s%n%b' -1`, `git show v<version>`) |
|
|
157
|
+
| 6 | Sub-agent uses `git-mcp-server` instead of Bash git | Phase 4 prompt restates Hard Rule 1 from parent SKILL.md; session-state leak across parallel agents is real |
|
|
158
|
+
| 7 | Verification gate skipped because "the change is small" | Restate "Halt if not green — do NOT bypass" in the prompt; the wrap-up protocol forbids bypass and the orchestrator confirms green status in Phase 5 |
|
|
159
|
+
| 8 | Two targets derive the same target version from a shared assumption | Phase 4 prompt always derives version from each target's CURRENT `package.json`, not from a value the orchestrator assumed |
|
|
160
|
+
| 9 | Sub-agent commits in multiple atomic chunks when the work is one cohesive concern | Restate the rule: "Version bumps ride with the change that warrants them — for a focused patch, ONE commit." Multi-commit splits are for genuinely independent concerns, not ceremonial separation of "the work" from "the release" |
|
|
161
|
+
|
|
162
|
+
## Checklist
|
|
163
|
+
|
|
164
|
+
- [ ] Pre-flight: target list confirmed, version bump intent per target, change shape per target, user authorization captured
|
|
165
|
+
- [ ] Phase 2: verification fanout — green `bun run devcheck` + tests per target
|
|
166
|
+
- [ ] Phase 3 (if applicable): doc review fanout — README/docs updates folded in, no commits
|
|
167
|
+
- [ ] Phase 4: wrap-up fanout (Bash git only) — every acceptance criterion satisfied per target; commit + annotated tag — **NOT pushed**
|
|
168
|
+
- [ ] Working tree clean per target after Phase 4
|
|
169
|
+
- [ ] Tags exist locally; nothing pushed to remotes
|
|
170
|
+
- [ ] Phase 5: orchestrator verification — `git log --oneline -1`, `git tag --points-at HEAD`, `git status --short` per target
|
|
171
|
+
- [ ] Consolidated report presented to user with per-target headlines, outliers, next steps
|