Repository navigation
t3-pstack 2.0.0-rc.1: Lauren's pstack, rewritten in place for T3 - #16
Merged
Merged
Conversation
t3-pstack 2.0 takes Lauren Tan's pstack as written and rewrites only its Cursor mechanics. This commit replaces the 1.0.14 pipeline (lead lines, Codex prompt stubs, effort agents, Pi and Copilot packaging) with one derivation: the substitutions in order, then deriveT3 in tools/derive-t3.mjs, which sets frontmatter and stamps the Models sections, interrogate's reviewer table, and setup-pstack's sheet block from models.json. All three components pin cursor/plugins ce649c0. A sync now also fails when a rule matches nothing upstream, since that is how a T3 insert would silently vanish after Lauren rewords its anchor sentence. --bootstrap regenerates a component from upstream, keeping declared forks. models.json names T3 entries per tier (default, strongest, panel) in the grammar t3-sheet.mjs checks, and a role may carry the alias an older sheet still uses. The plugin tree catches up in the following commits. The checks pass at the head of this series, not at each commit.
Writes upstream's bytes for every file the three components carry at cursor/plugins ce649c0, with no substitutions, so this diff reads as t3-pstack 1.0.14 against Lauren's own text, Cursor mechanics included. It adds in-your-own-words and poteto-mode's worktree-audit.sh, both new or newly carried upstream. The 40 files Michael Denyer's policy forks covered stay at 1.0.14 here. The commits that drop those forks move them, so each one can be restored on its own.
Applies tools/substitutions.json and deriveT3 to every carried file outside the policy forks, so this diff is exactly what the rules change: the Task tool becomes delegate_task, model slugs become sheet entries, pstack-models.mdc becomes the t3-pstack-models.md sheet, cloud agents and /loop become schedule_task, t3_thread_launch, and watch_pull_request, and /visualize becomes html_render. The Models sections, interrogate's reviewer table, and setup-pstack's sheet block are stamped from models.json. poteto-mode alone drops disable-model-invocation, so the session-start hook can invoke it. setup-pstack/SKILL.md stays a declared fork that writes the T3 sheet. With the T3 rules inline where Lauren's dispatch rules sit, these port files go: t3-tools.md and the Codex, Copilot, and Pi tool maps, the Codex prompt stubs, the effort agents, the Pi extension and its tests, the Copilot hooks, marketplace manifest, and setup notes, the pre-tool-use hook, the babysit skill, the awk sheet checker, and the mirrored agent references. The session-start hook drops its Copilot branch and its pointer to t3-tools.md.
t3-pstack 1.0.14 carried 30 files outside watch-pr in Michael Denyer's own form. Each was a policy change to Lauren's workflow, not a Cursor mechanic: one-at-a-time landing and re-verification rules in the shipping and autopilot playbooks, a merge-frontier check in babysit, per-delegate worktrees in feature, stopping live agents before an opening-a-pr commit, checkpointed resume notes in pause-safely and session-pickup, a stricter worktree-cleanup audit, extra guards in the orchestrate store and bootstrap script, a human-rulings epistemics section and its readers in why and recall, poteto-mode's platform adaptation section, design reconciliation in architect, and added rules in three principles, tdd, bug-fix, bro, blast-radius, show-me-your-work's log.sh, and the code-quality review's report format. This commit returns each file to Lauren's text with the T3 rewrite. It also removes what only those forks used: merge-safety.md, resume-storage.md, resume.mjs, check-playbooks.mjs, worktree-audit.mjs, the OrchStoreLock TLA model, and their tests. Each fork is pending the maintainer's audit. Restoring one means taking its file and its dependencies back from this commit's parent, then redoing that file's T3 rewrite and declaring it in tools/forks.json.
t3-pstack 1.0.14 carried 10 of Lauren's watch-pr files in Michael Denyer's form. They added merge gates (review required, branch protection, behind base, mergeability unknown), a first-sighting confirmation for a PR with no checks, one shared deadline across discovery and polling, a landing revision in the ready proof, and the ship-pr landing tool with live merge safety. This commit returns those files to Lauren's watch-pr and removes the port-only modules and tests behind them, along with the Lean model of the poll loop. Each is pending the maintainer's audit, restorable from this commit's parent. The settle overlay stays. Review bots post minutes after CI turns green, so READY waits until nobody but the author and the gh viewer has commented, reviewed, or reacted for the settle window (--settle, 300 seconds by default). settle.ts is now self-contained and hooks into eight of Lauren's files at declared forks, 57 changed lines as the sync counts them.
Stamps 2.0.0-rc.1 into the manifests and writes its CHANGES.md entry, with a row for every behavior that changes against 1.0.14, the dropped policy forks marked pending audit. README, CONTRIBUTING, CONTEXT, NOTICE, and the plugin README now describe Lauren's tree rewritten in place: the substitutions, the declared forks, and the sync that fails on an unused rule. SECURITY.md points at this repository. The pstack-claude design notes, the Pi equivalence notes, and the overview image go with the packaging they described.
Lauren's why synthesizer prompt writes [PR #123](url) as a template example. validate-skills.mjs already treats a bare-word target as a placeholder, and lychee now excludes a file target named url the same way, so the example stays as upstream wrote it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
t3-pstack 2.0 takes Lauren Tan's pstack directly, at cursor/plugins
ce649c0(pstack #613), for pstack, the six carried cursor-team-kit skills, and thermos. Her text ships as she wrote it. Only its Cursor mechanics are rewritten for T3, in place, by generated substitutions plus declared forks, checked by the existingtools/sync.mjs,tools/forks.json, andtools/substitutions.json. There is no separate T3 mapping file any more.This is a draft. Do not merge until the policy-fork audit below is done.
Counts
ce649c03ac3b75b6ae80cbd15b7e2c536caedb5afor all three components (1.0.14 tracked pstack-claude at997ffc7).setup-pstack/SKILL.md(77, writes the T3 sheet) and 8 watch-pr hook points of the settle overlay (57).in-your-own-words, poteto-mode'sworktree-audit.sh,tools/derive-t3.mjs), 147 modified.Commits
Each commit is one kind of change, so each can be read and reverted on its own. The intermediate commits do not pass the checks. The head does.
deriveT3), all pins atce649c0, and a sync that fails when a rule matches nothing upstream.(url)placeholder link in the why synthesizer prompt, asvalidate-skills.mjsalready does.To restore one of Michael's forks, take its file and the dependencies its commit names from the parent of commit 4 or 5, redo that file's T3 rewrite, and declare it in
tools/forks.json.Behavior changes against 1.0.14
efforton Claude,reasoningEfforton Codex and Grok) up a step for the hardest work, down for judgment or routine work. Fast mode (fastMode=trueon Claude,serviceTier=priorityon Codex) is used only when CI or trunk is red or a person is blocked right now. Verification stays on theswarm workersentry.gt, and workers and babysitters rangt.orch frontier setwalks the PR base chain withgh, and one stacker owns chain rebases, retargets, and merges.--force-with-lease, and the patch-id rule decides whether its verdict survives.--force-with-leaseto the SHA you last pushed, run the patch's checks on the merge result when trunk changed something it depends on, and hold rather than take a third rebase past merge prep.ACTION_REQUIREDCode Review Gate read as a failed check.worktree-audit.mjs(see the pending rows).worktree-audit.sh, which reads PR state from Origin when it can and holds a worktree with a draft PR. On T3 a worktree bound to a thread also counts as in use./ketchup/bro's voice, built on real visuals. On T3 the visuals are onehtml_renderpage, checked first withhtml_preview./in-your-own-wordsprinciple-fix-root-causesproposes a cheap always-on signal once a long dig finds the cause.poteto-agentfindspoteto-modepoteto-agentfinds it without one.references/t3-tools.md, which every chat read before its first subagent, beside Codex, Copilot, and Pi tool maps.disable-model-invocationstays on 53 skills, so the model invokes onlypoteto-mode,setup-pstack, and the six cursor-team-kit skills itself, andpoteto-modeopens the rest by path. The principle leaves appear in the slash menu. Codex ignores the flag and still lists all 61 skills to the model.poteto-mode, which opens that skill from its bundled path. The other skills run only frompoteto-modeor when you type them.high, Fable and GPT atxhigh.xhigh:claudeAgent/claude-opus-5-5 effort=xhigh,claudeAgent/claude-fable-5-1 effort=xhigh, and the panel of Opus,codex/gpt-6.1-sol, andgrok/grok-4.7, all at xhigh. Each skill's Models section lists these T3 entries instead of Claude aliases.largebudgett3-sheet.mjs.strongest judgmentrolehardest tasks, Lauren's label. A sheet withstrongest judgmentstill validates and runs, and setup-pstack writes the new name.t3_thread_sendto achildThreadId. Every follow-up was a freshdelegate_task.delegate_taskby default.t3_thread_sendto the child is allowed only when the work needs state that lives in it, such as its checkout or a process it runs.link_pull_requestfor every PR and checklist_thread_pull_requests./ketchupstill readslist_thread_pull_requests.ci-noneREADY, reseeding a stack watcher past a merged seed, unsettling a settled thread before a review wait, and a table of terminal verdicts.watch-pr --timeout 540loops inside the turn, stops after two hours unchanged or three in all,backgroundarmswatch_pull_request, and a human-review wait arms it and ends the turn. The four details named at left are gone.preview_*anddevice_*tools, step by step.preview_*for web,device_*for simulators, with the artifact as the evidence.t3_thread_search. The queue, pending-request, and scheduled-verification notes are gone..codex-plugin/promptsstubs, one per skill.effort-<level>andpoteto-agent-<level>agents, for@<level>in a sheet.babysitskill/babysit.BLOCKED: independent review, reflect's 1.0.13 transcript lookup, the 1.0.14 sheet grammar, and the watch-pr settle window./broand "say it plainly".todo.mdfallback, a run-or-verify driver line, deploy-platform and defect-severity triggers, a project-playbooks paragraph, a closed-review-gate rule, stopping an abandoned agent before replacing it, and every reply item as prose.BLOCKED: independent reviewstay.HEAD.resume.mjs,resume-storage.md), and pickup read it first with the human-rulings rules.ship-prandmerge-safety.md.rm -rfaround a locked tree.worktree-audit.sh.bootstrap.ts.gttimeouts, and a TLA model of the lock.ship-prlanded with live merge safety.log.shneutralized a cell opening with a quote and appended each row in one write.Verification
GIT_CONFIG_GLOBAL=/dev/null bun test tests/ --timeout 30000: 498 pass, 23 skip, 0 fail.bun test orch watch-pr check-plan.test.ts92 pass, Prettier clean on the port's TypeScript.bun tools/generate.mjs --check: 17 generated files current, all contracts pass.bun tools/sync.mjs <component> ce649c0 --dry-runfor pstack, cursor-team-kit, and thermos: exit 0, no undeclared fork, no denylist hit, no unused rule.t3-sheet.mjspasses the maintainer's real sheet against the machine's catalog.Install proofs (throwaway homes)
claude plugin marketplace add <branch checkout>andclaude plugin install t3-pstack@t3-pstackinstalled 2.0.0-rc.1 with 61 skills. The SessionStart hook fired and injected the routing text. A one-cent rounding bug prompt in a two-file repo routed: the first tool call wasSkill(t3-pstack:poteto-mode), and the session transcript holds poteto-mode's full body (25,054 characters).codex plugin marketplace addandcodex plugin addinstalled 2.0.0-rc.1, andskills/listshows all 61 skills ast3-pstack:<name>. The hook's trust hash issha256:ba5a989f…, the same as a 1.0.14 install's, so a user who trusted 1.0.14's hook stays trusted. With the hook trusted, the routing text reached the model, and the same bug prompt routed: Codex said it would use poteto-mode and read itsSKILL.mdfirst. An explicit$t3-pstack:poteto-modemention injected the fullSKILL.md(25,326 characters) with no truncation warning, since no Agent Plugins root manifest ships.catinstead of a mention, Codex's shell output cap elides about 300 tokens from the middle of the 6,300-token file, inside the Subagents section. A routing sentence asking it to re-read skipped lines did not change that in a test run, so it is not included.