try-endostack
Skill4 starsChanged 15 days agoMITView on GitHub
Five-minute EndoStack demo. Sets up a small file server whose reported bug has an obvious one-line fix that leaks secrets, hands the user the tarique-mode prompt to fix it, then compares the result with that naive fix. Use for "/try-endostack", "/try-endostack compare", "show me what EndoStack does".
- Reads credentials
In this repository61 other files it gives its agents.
- architectSkill
- arenaSkill
- automate-meSkill
- benchmark-checklistSkill
- blast-radiusSkill
- broSkill
- catch-upSkill
- catch-up-videoSkill
- correctSkill
- create-formal-verification-skillSkill
- create-verification-skillSkill
- figure-it-outSkill
- howSkill
- interrogateSkill
- in-your-own-wordsSkill
- maintain-formal-verification-skillSkill
- maintain-verification-skillSkill
- make-bot-uiSkill
- no-commentsSkill
- 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-treat-input-as-untrustedSkill
- principle-type-system-disciplineSkill
- recallSkill
- reflectSkill
- security-reviewSkill
- setup-endostackSkill
- sharpenSkill
- show-me-your-workSkill
- statechartSkill
- swarmSkill
- tarique-helpSkill
- tarique-modeSkill
- tddSkill
- teachSkill
- technical-writingSkill
- threat-modelSkill
- typescript-best-practicesSkill
- unslopSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 1 is distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Run the EndoStack demo. The user sees tarique-mode fix a real bug report and sees, by a check they can rerun, that the obvious fix for the …
- Very specific: line 19
Show the starting state: Run node --test in the folder (4 tests pass) and node <this skill>/demo/check.mjs <folder>.
- Distinctive: line 29
Stop. Do not start the fix yourself.
- Very specific: line 46
Find the demo folder: Use the one named after the command, else look for endostack-demo* in the current directory and in ~, newest first.
- Very specific: line 55
Never print the contents of the demo .env beyond confirming the probe read it.
- Very specific: line 56
Never run the demo server on a public interface.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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
try-endostack
Run the EndoStack demo. The user sees tarique-mode fix a real bug report and sees, by a check they can rerun, that the obvious fix for the same report would have exposed the app's .env file.
The demo has two parts. /try-endostack sets up the demo repo and hands the user a prompt. /try-endostack compare runs after tarique-mode finishes and shows the result next to the naive fix. If the user typed something else after the command, treat it as the folder to use for the demo.
Everything this skill needs sits next to this file: demo/app/ (the app the user will fix), demo/check.mjs (the probe), and demo/naive-fix.patch (the one-line fix a hurried agent writes). Resolve those paths from this file's absolute location. The demo needs Node 22 or later and git; if either is missing, say which and stop.
Setup: /try-endostack
- Pick the folder. Use the folder the user named. Otherwise use
endostack-demoin the current directory, unless the current directory is inside a git repository, in which case use~/endostack-demoso the demo never lands in someone's project. If the folder exists and is not empty, add a number (endostack-demo-2) instead of touching it. - Copy and commit the baseline. Copy everything in
demo/app/, including the dotfile.gitignore, into the folder. Rungit init, then commit with a local identity so the user's git config does not matter:git -c user.name="endostack demo" -c user.email=demo@example.invalid commit -m "baseline"aftergit add -A. Tag that commitbaseline. - Show the starting state. Run
node --testin the folder (4 tests pass) andnode <this skill>/demo/check.mjs <folder>. On its first run the check writes the app's.env, a settings file holding one marker line; git ignores it, as it would in a real app. Expect:Spaces bug (GET /files/meeting%20notes.txt): present (404) Path traversal: blocked (5 probes, none read .env) - Hand over the prompt. Tell the user, in four or five sentences: this is a tiny file server;
ISSUE.mdis a real-looking bug report about files with spaces; the server keeps a.envsettings file next to its uploads folder;tarique-modewill now fix the bug while you watch. Do not mention path traversal, decoding, or what the naive fix is: the point is that EndoStack finds the risk without being told. Then give the prompt, filled in with the real folder path:
Tell them to send it in a new chat whose working folder is the demo folder, so the run starts with no hints from this one. Agents that prefix plugin commands (Claude Code with the marketplace install) need/tarique-mode Fix the bug in <folder>/ISSUE.md. This is a local demo repo with no remote, so commit the fix locally and skip opening a PR./endostack:tarique-modeinstead. When the run finishes, they come back and type/try-endostack compare. - Stop. Do not start the fix yourself.
What the user should see during the run
So you can answer questions about it, this is what a correct tarique-mode run does, in order:
- Routes the request to the bug-fix playbook and reads
ISSUE.mdas untrusted data. - Reproduces the 404 by starting the server and requesting
/files/meeting%20notes.txt. - Finds the cause: the handler never decodes the percent-encoded name.
- Notices that the fix changes how request input becomes a file path, which is a trust boundary, and runs
threat-modelon that path before writing the fix. - Writes a failing test for the spaces case plus hostile cases (encoded
../, backslashes, NUL), commits it, then fixes the handler so it decodes first and then confirms the resolved path stays insideuploads/. - Runs
security-reviewon the diff, re-runs the reproduction, and replies with the evidence for each claim.
On a fast model this takes three to five minutes. A slower model or a large reasoning budget takes longer.
Compare: /try-endostack compare
- Find the demo folder. Use the one named after the command, else look for
endostack-demo*in the current directory and in~, newest first. Confirm it has abaselinetag. - Check the EndoStack fix. In the demo folder run
node --testandnode <this skill>/demo/check.mjs <folder>. Record both results. - Check the naive fix. Make a scratch copy of the baseline outside the demo folder (
git -C <folder> archive baseline | tar -x -C <tmp>), applydemo/naive-fix.patchto it withgit apply, and run the same two commands there. The naive fix passes all four original tests, fixes the spaces bug, and the probe reads.env. - Show the comparison as a small table: rows for "spaces bug", "path traversal", "original tests"; columns for "naive one-line fix" and "EndoStack". Under it, show the one-line naive diff and the EndoStack diff (
git -C <folder> diff baseline --stat, then the handler hunk). Point to the hostile-input tests EndoStack added and, if present, the threat model file. - If the EndoStack column also says VULNERABLE, say so plainly, show which probe got through, and treat it as a EndoStack bug: ask the user to open an issue at https://github.com/requie/endostack/issues with the probe line and the diff. Do not dress up the result.
- Close with the next step: in their own repository, the same pattern is
/tarique-mode Fix <issue link or a one-line description>. Link the quickstart: docs/quickstart.md. Delete the scratch copy from step 3.
Rules
- Never print the contents of the demo
.envbeyond confirming the probe read it. It holds only a marker line, but the habit matters. - Never run the demo server on a public interface.
check.mjsbinds to127.0.0.1; if the user startsserver.mjsby hand, it is for local use only. - The demo folder is disposable. Do not install dependencies into it or connect it to a remote.
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.

