Skip to content

2.0.0-rc.8: Lauren's 0317eb8, a brand comes from a type guard, not an as cast - #28

Merged
chhoumann merged 2 commits into
mainfrom
sync/0317eb8
Oct 17, 2026
Merged

chhoumann merged 2 commits into
mainfrom
sync/0317eb8

Conversation

@chhoumann

@chhoumann chhoumann commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

t3-pstack moves to Lauren Tan's pstack at cursor/plugins 0317eb8 for all three components. Only pstack changed upstream, in one commit, and its version stays 0.15.25:

  • pstack #700: typescript-best-practices built its branded-type example with the as cast that its own "No as casts" row warns against. The Branded types row now says a brand comes from a verifying type guard (input is AgentId), never from as, and references/patterns.md's parseAgentId narrows through an isAgentId guard and returns the input with no cast. #700's copies under harness/pstack/claude-code/ sit outside every synced component.

pstack #637 also lands between the two pins. It changed only upstream's README and docs/harness/claude-code.md, which tools/upstream.json excludes, so a dry run at its commit changed no file.

This is Lauren's text plus mechanical version lines. No substitution or fork changed. Both skill files are byte-identical to upstream's at 0317eb8.

Commits

  1. Sync. bun tools/sync.mjs moves each component's pin from 99743e9 to 0317eb8 and updates typescript-best-practices/SKILL.md and references/patterns.md cleanly. No rule in tools/substitutions.json and no entry in tools/forks.json names either file, and the 15 declared forks were left alone. cursor-team-kit and thermos synced with no file changes.
  2. Release. VERSION and the manifests move to 2.0.0-rc.8. CHANGES gets the entry with its behavior-delta table. NOTICE, NOTICE-skills, and the README point at 0317eb8, and the README's pinned installer command names the new tag.

On T3

The change names no Cursor or T3 mechanism, so it reads the same on T3 as on Cursor. The new row agrees with the skill's existing "No as casts" row and with principle-type-system-discipline's rule to validate a brand once at creation. No port-only file quotes the old input as AgentId example.

Checks

  • bun tools/sync.mjs <component> 0317eb8 --dry-run for pstack, cursor-team-kit, and thermos: exit 0, no undeclared fork, no denylist hit, no unmatched substitution. At the pin, pstack reads 118 unchanged files and the same 15 declared forks with 547 changed lines as before.
  • bun tools/generate.mjs --check: 17 generated files current, and the hooks freeze check passes. Neither hooks file differs from origin/main.
  • GIT_CONFIG_GLOBAL=/dev/null bun test tests/ --timeout 30000: 550 pass, 46 skip, 0 fail.
  • Scripts: bun run typecheck, bun test orch watch-pr check-plan.test.ts (119 pass), and the Prettier check all pass.
  • t3-sheet.mjs against this machine's sheet and catalog: every role line parses and dispatches.

Note

Low Risk
Documentation and skill guidance only; no runtime, auth, or orchestration code changes.

Overview
Release 2.0.0-rc.8 bumps version manifests and repins all three cursor/plugins components in tools/upstream.json from 99743e9 to 0317eb8.

The only functional content change is upstream pstack #700 in typescript-best-practices: the Branded types rule now states that a brand must come from a verifying type guard (input is AgentId), not an as cast, and references/patterns.md adds isAgentId so parseAgentId narrows and returns without input as AgentId. NOTICE/README/CHANGES and license upstream links are updated to match the new pin; cursor-team-kit and thermos sync with no file diffs beyond the SHA.

Reviewed by Cursor Bugbot for commit 7939f1a. Bugbot is set up for automated code reviews on this repo. Configure here.

All three components move from 99743e9 to 0317eb8. Upstream changed
only pstack's typescript-best-practices skill (pstack #700): the
Branded types row says a brand comes from a verifying type guard, never
from `as`, and the parseAgentId example in references/patterns.md now
narrows through an isAgentId type guard and returns the input with no
cast. 182f2ce (#637) sits between the two pins but touches only paths
tools/upstream.json excludes.

bun tools/sync.mjs updated both files cleanly, and each is
byte-identical to upstream at 0317eb8. No substitution or fork names
them, and the 15 declared forks were left alone. cursor-team-kit and
thermos synced with no file changes.
VERSION, the manifests, and package.json move to 2.0.0-rc.8. CHANGES.md
gets the entry with its behavior-delta table. NOTICE.md, NOTICE-skills.md,
and the README point at upstream 0317eb8, and the README's pinned
installer command names the new tag.
@chhoumann
chhoumann merged commit 531b4ae into main Oct 17, 2026
20 checks passed
@chhoumann
chhoumann deleted the sync/0317eb8 branch October 17, 2026 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant