allowed-stack-guardrail
Skill3 starsChanged 11 days agoApache-2.0View on GitHub
Before agreeing to build anything for a non-technical user, check the need against the consuming deployment's "## Stack map" section: in-stack needs proceed; out-of-stack or unmatched needs get a friendly, jargon-free decline plus an offer to file a well-formed issue on the block's owning repo (or the map's default intake repo). Fails closed when the Stack map is absent or malformed — nothing is built best-effort outside the map. Use in a vibe-coding setting whenever a build request is about to be accepted.
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-improvementSkill
- agent-instructionsSkill
- conventional-releaseSkill
- gitops-tenant-onboardingSkill
- jargon-free-voiceSkill
- needs-stack-mappingSkill
- portfolio-maintenanceSkill
- product-documentationSkill
- product-engineeringSkill
- self-improvementSkill
- ways-of-workingSkill
- write-contributingSkill
- write-docs-introductionSkill
- write-readmeSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 35
Read the section fresh each session.
- Very specific: line 58
When the ## Stack map section is absent, or malformed — no table, any row missing a required field, or no default intake repo (it is …
- Distinctive: line 64
If a default intake repo *is* parseable, still offer the wish-list redirect there.
- Distinctive: line 66
Never infer, remember, or improvise an allowed stack, and never build "just this once" while the map is unavailable.
≈ “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
Allowed-stack guardrail
A deployment that lets people build conversationally still has a hard boundary: only the building
blocks the deployment actually operates are buildable. This skill is that boundary check. It runs
before you agree to build anything, and its verdict is binding: there is no best-effort path
around it. Declines are delivered in the register of the jargon-free-voice skill.
The Stack map contract
The allowed stack is deployment-owned configuration — it never ships inside this skill. The
consuming deployment's canonical instructions file (AGENTS.md) defines it in a section titled
exactly ## Stack map, containing:
- A table whose rows each carry three required fields:
- Building block — the block's plain-language name;
- Good for — the needs it serves, written in the user's vocabulary (this is the matching surface);
- Owning repo —
owner/repo, where a suggested issue for that block is filed.
- A default intake repo (required, once per map) — the catch-all
owner/repothat receives the suggested issue for any need matching no row.
Read the section fresh each session; the deployment can change it at any time.
The check
- Match conservatively. Compare the user's stated need (outcome / audience / workflow — as
elicited by the
needs-stack-mappingskill) against each row's Good for purposes. Matching is semantic but conservative: only a confident match counts. Anything you cannot confidently place falls through to the unmatched path — never stretch a row to fit. - In-stack → proceed. A confidently matched need goes forward to be built with the matched block(s), the deployment's way.
- Out-of-stack or unmatched → decline and redirect. In plain language: say what you can't build, in one friendly sentence, without technical vocabulary; then offer to put it on the deployment's wish list. With the user's consent, prepare a well-formed issue — the need as the user stated it, the outcome it serves, and why it fell outside the current building blocks. Routing follows the confidence of the match: a need that confidently concerns a mapped block yet is still out-of-stack (say, a capability that block doesn't have) is filed on that block's owning repo; every non-confident or unmatched need goes to the default intake repo — never to a merely "nearest" block, which would land out-of-stack work on an unrelated owner. The user consents to "adding it to the wish list", never to "filing an issue on a repo" — the redirect itself stays jargon-free.
Fail closed
When the ## Stack map section is absent, or malformed — no table, any row missing a
required field, or no default intake repo (it is required once per map; its absence makes the
whole map malformed even when every row parses) — treat every need as out-of-stack:
- Decline plainly: explain that your catalogue of what can be built here isn't available right now, so you can't safely agree to build anything yet.
- If a default intake repo is parseable, still offer the wish-list redirect there; otherwise, direct the user to whoever operates the deployment.
- Never infer, remember, or improvise an allowed stack, and never build "just this once" while the map is unavailable.
Boundaries
- The guardrail gates building; it never gates conversation. Understanding the need, exploring what the user wants, and mapping it are always allowed — only the commitment to build is gated.
- A split need (partly in-stack, partly out) proceeds only with its in-stack part; the out-of-stack part gets the decline-and-redirect path explicitly, so nothing silently drops.
- The decline is a full answer, not an apology: what can't happen, why in one plain sentence ("that needs a kind of building block this setup doesn't have yet"), and what happens next (the wish list, and what the user can expect from it).
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.

