pstack-t3
AGENTS.md17 starsChanged 17 days agoMITView on GitHub
pstack-t3 is Lauren Tan's pstack, ported to run natively in T3 Code on any provider through T3's orchestrator V2 tools. Start from the upstream file and change only what T3 changes. Upstream's rules, steps, voice, and rigor carry over unchanged. A port that rewrites the engineering content is a regression.
We split this AGENTS.md into the rules it gives an agent
7 rules. About 1 is common, 2 are distinctive, and 4 are very specific to this project.
≈1
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 20
Start from the upstream file and change only what T3 changes.
- Very specific: line 36
After opening or driving a PR, add the link_pull_request step.
- Very specific: line 38
Keep tool names unprefixed (delegate_task, not mcp__t3-code__delegate_task).
- Very specific: line 39
Run python3 scripts/build.py.
- Very specific: line 40
Run python3 scripts/build.py --update-lock only after reviewing the override or persona against its current vendored counterpart.
- Distinctive: line 46
Follow upstream's: short declarative sentences, no long dashes, no mid-sentence colons, no hedging.
- Common: line 55
Never commit credentials, transcripts, local configs, catalog snapshots, or thread IDs.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Working on pstack-t3
pstack-t3 is Lauren Tan's pstack, ported to run natively in T3 Code on any provider through T3's orchestrator V2 tools.
Layout
vendor/pstack/is upstream, byte-identical to the commit inupstream.json. Never edit it.scripts/sync_upstream.pyreplaces it.t3/runtime.mdbecomesskills/pstack-runtime/SKILL.md. It is the single contract for delegation, roles, isolation, scheduling, verification, history, and PR linking. Skills link to it instead of restating it.t3/scripts/roles.pyresolves roles todelegate_tasktargets. Tests intests/.t3/setup.mdbecomesskills/setup-pstack/SKILL.md.t3/overrides/<skill>/<path>replacesvendor/pstack/skills/<skill>/<path>wholesale.t3/added/<skill>/<path>adds files upstream lacks.t3/added/pstack-runtime/<name>.mdis an on-demand runtime file, copied next toskills/pstack-runtime/SKILL.md.t3/removed.txtlists upstream paths pstack-t3 does not ship.t3/agents/holds the personas copied intoskills/pstack-runtime/agents/, keyed asagents/<name>.mdint3/overrides.lock.json. A persona belongs int3/agentsand never undert3/overrides/agents. Refreshing the lock omits a persona with no vendored counterpart, and a stale persona pin reports drift until the lock is refreshed. A skill override whose vendored counterpart is absent keeps its key with a null value.skills/is generated. Never edit it by hand. Runpython3 scripts/build.py.
Porting an upstream file
Start from the upstream file and change only what T3 changes. Upstream's rules, steps, voice, and rigor carry over unchanged. A port that rewrites the engineering content is a regression.
- Copy
vendor/pstack/skills/<path>tot3/overrides/<path>. - Replace each Cursor mechanism with its T3 equivalent from
t3/runtime.md:Taskcalls,subagent_type,run_in_background,readonly,environment: "cloud",cloud_base_branchbecomedelegate_taskwithmode: "async", arole, a resolvedtarget, and a read-only brief where upstream saidreadonly.- A model line in
~/.cursor/rules/pstack-models.mdcbecomes "the<role>role" resolved per the runtime's Roles section. Delete hard-coded slug defaults and family-prefix fallback rules. The runtime's defaults and fallback replace them. inherit-parentorautobecomesinherit./loop, automations, hourly ticks, and scheduled wakeups becomeschedule_taskwhen they are a cadence with no pull request event.- A wait on a pull request's checks, reviews, or conflicts, including
scripts/watch-prand a poll loop, becomeswatch_pull_requeston the thread that owns the pull request. - A wait whose predicate is the merge also keeps the
schedule_taskheartbeat the runtime's Pull request watching section requires. - Cloud agents become child tasks. Long-lived PR owners and coordinator-visible owners become
t3_thread_launchthreads with a worktree strategy. - Transcripts and cloud-agent URLs become T3 threads read with
t3_thread_searchandt3_thread_read. control-uibecomes T3 preview tools.control-clibecomes driving the CLI in the terminal.AskQuestionbecomes the host's question tool.- Cursor's
create-skillbecomes thepstack-author-skillskill. cursor-team-kitskills (deslop,control-ui,control-cli) become "if installed" with a stated fallback.- After opening or driving a PR, add the
link_pull_requeststep.
- Link the runtime by relative path (
../pstack-runtime/SKILL.mdfrom a SKILL.md,../../pstack-runtime/SKILL.mdfrom a playbook) when the step needs it. Do not paste runtime content. - Keep tool names unprefixed (
delegate_task, notmcp__t3-code__delegate_task). - Run
python3 scripts/build.py. The build fails on Cursor leftovers (seescripts/check.py), broken links, bad frontmatter, a poteto-mode playbook bullet whose file does not exist, override or persona drift, or a README upstream badge that is missing or disagrees withupstream.json. - Run
python3 scripts/build.py --update-lockonly after reviewing the override or persona against its current vendored counterpart. If either file is absent, confirm that absence before refreshing the lock.
python3 scripts/sync_upstream.py --merge syncs and, for each override or persona whose upstream file changed, either writes a clean three-way merge of it or leaves the override or persona as it is and names it. Add --conflicts <dir> to also write git's conflict-marked merge of each override or persona whose merge conflicts under <dir>, a path outside the checkout that does not exist yet. A persona's conflict-marked merge is written to <dir>/agents/<name>.md. A clean merge can carry a new Cursor mechanism in upstream's lines, so a merged override or persona still needs the review in step 6 and the build's Cursor-leftover check, which python3 scripts/build.py --skip-lock reaches while the lock is stale.
Writing style
Follow upstream's: short declarative sentences, no long dashes, no mid-sentence colons, no hedging. Every instruction names a concrete tool, path, or check.
Tests
python3 scripts/run_tests.py
python3 scripts/build.pyNever commit credentials, transcripts, local configs, catalog snapshots, or thread IDs.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository63 other files it gives its agents.
- architectSkill
- arenaSkill
- automate-meSkill
- benchmark-checklistSkill
- blast-radiusSkill
- brigade-adminSkill
- brigadeSkill
- broSkill
- correctSkill
- create-formal-verification-skillSkill
- create-verification-skillSkill
- figure-it-outSkill
- howSkill
- interrogateSkill
- in-your-own-wordsSkill
- ketchupSkill
- ketchup-videoSkill
- landingSkill
- maintain-formal-verification-skillSkill
- maintain-verification-skillSkill
- make-bot-uiSkill
- no-commentsSkill
- poteto-helpSkill
- poteto-modeSkill
- principle-attack-the-premiseSkill
- principle-boundary-disciplineSkill
- principle-build-the-leverSkill
- principle-encode-lessons-in-structureSkill
- principle-exhaust-the-design-spaceSkill
- principle-experience-firstSkill
- principle-explain-the-numberSkill
- principle-fix-root-causesSkill
- principle-foundational-thinkingSkill
- principle-guard-the-context-windowSkill
- principle-laziness-protocolSkill
- principle-make-operations-idempotentSkill
- principle-migrate-callers-then-delete-legacy-apisSkill
- principle-minimize-reader-loadSkill
- principle-model-the-domainSkill
- principle-never-block-on-the-humanSkill
- principle-outcome-oriented-executionSkill
- principle-prove-it-worksSkill
- principle-redesign-from-first-principlesSkill
- principle-separate-before-serializing-shared-stateSkill
- principle-sequence-verifiable-unitsSkill
- principle-subtract-before-you-addSkill
- principle-test-behavior-not-implementationSkill
- principle-type-system-disciplineSkill
- pstack-author-skillSkill
- pstack-runtimeSkill
- recallSkill
- reflectSkill
- setup-pstackSkill
- sharpenSkill
- show-me-your-workSkill
- statechartSkill
- swarmSkill
- tddSkill
- teachSkill
- technical-writingSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

