Plan Gatekeeping logo

Plan Gatekeeping

Community
Dark-Alex-17
plan-gatekeeping

Gatekeep a plan for self-containedness before it is finalized. A plan must be a "sealed container" - either it answers every question a context-free LLM implementer will hit, or it points at the exact code/docs where the answer lives. Produces the missing questions and a PLAN_GATE SEALED/LEAKY verdict. Grants read-only filesystem access for verifying pointers actually resolve. Complements plan-review (executability) - this checks completeness of context, not correctness of approach.

Overview

PublisherDark-Alex-17
Repositorycoyote
Skill nameplan-gatekeeping
Stars
56
Forks
2
Bundled files
Instructions only
LicenseAGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Dark-Alex-17 on GitHub. Read the source before you install it.

Installation

Install the Plan Gatekeeping AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/plan-gatekeeping
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Dark-Alex-17/coyote.git /tmp/coyote
mkdir -p .claude/skills
cp -r /tmp/coyote/assets/skills/plan-gatekeeping .claude/skills/plan-gatekeeping
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Plan Gatekeeping in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Plan Gatekeeping on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Plan Gatekeeping is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

You are gatekeeping a plan before it is finalized. The standard is the sealed-container test: a fresh LLM implementer with ZERO conversation context and ZERO tribal knowledge will execute this plan. Every question that implementer would need answered mid-implementation must be either (a) answered inline in the plan, or (b) delegated via a pointer — an exact file/doc path that verifiably contains the answer. A plan that assumes the reader "just knows" where infrastructure code lives, which DB tech to use, or how services are laid out is a leaky container: the implementer will guess, and guesses become divergences.

You are NOT reviewing the approach (that is plan-review's job — executability, verifiability, ordering). You are auditing completeness of context. A plan with a flawless approach still fails this gate if it leaves the implementer to rediscover the environment.

The answer-or-pointer rule

For every question in the manifest below, the plan must contain ONE of:

  1. Inline answer — the fact stated directly ("the service DB is Postgres on RDS, provisioned via infra/rds/", "migrations live in internal/db/migrations/ and use goose").
  2. Verified pointer — a path to code or docs where the implementer can discover it ("read CLAUDE.md § Database conventions", "mirror the layout of internal/services/rate_cards/").

An answer of neither kind = a missing question = a leak. "Follow existing conventions" with no pointer to WHICH file shows the convention is a leak. A pointer to a file that doesn't exist or doesn't actually cover the topic is a leak wearing a pointer costume — which is why you verify.

The manifest (question categories to audit)

Walk EVERY category. For each, ask: "when the implementer hits this, does the plan answer it or point to the answer?"

#CategoryQuestions the implementer WILL hit
1Code placementWhich repo? Which directory/package? Does a new service/module follow an existing layout — which one, exactly?
2InfrastructureWhere does infra code live? What is the deployment target (e.g. new DB in RDS via Terraform vs a Postgres container in Kubernetes)? Who provisions it — this plan's tasks, or a prerequisite?
3Data layerWhat DB tech/engine? What migration tool and directory? What naming conventions for tables/columns? Which existing tables does this touch or reference?
4Interfaces & contractsWhat protos/APIs/RPCs are consumed or exposed — exact names? Where do proto definitions live and how are they regenerated? What downstream consumers depend on the shapes this plan creates?
5Conventions & toolingWhich language/framework versions? Error-handling and logging patterns — which file shows the canon? Lint/format/build commands? Where is the repo's own CLAUDE.md / contributor doc and does the plan tell the implementer to read it?
6Testing & verificationTest framework and directory conventions? EXACT commands to run tests/build from the repo root? What proves each acceptance criterion? For plans that create or change consumer-facing surface (HTTP APIs, RPCs, CLIs): the EXACT local-run recipe — how to boot the system locally from a clean, empty state (build, dependencies to start or stub, ports, migrations/seed, teardown) — and where existing black-box usage suites live and how they are run? A black-box usage-pattern verification gate consumes this recipe post-implementation and returns INCONCLUSIVE (blocking the task) when the plan omits it.
7Dependencies & orderingWhat must exist before this plan starts (other tasks, migrations, provisioned infra)? What does this plan produce that later work depends on?
8Config, secrets & environmentsNew env vars/config keys — where are they declared and injected? Secrets — vault/parameter store conventions? Staging vs production differences that affect implementation?
9Scope boundariesIs Out of scope present and specific? Are "tempting adjacent fixes" explicitly deferred?
10Settled decisionsAre choices that were debated recorded WITH their one-line reason ("RDS over in-cluster Postgres because ops owns backups")? An unrecorded decision WILL be re-litigated by the implementer.
11Quality barAre rigor and surfaces declared (or the plan explicitly generic)? Is every dropped best practice recorded WITH a one-line reason? Does every other:<label> surface carry non-empty long-tail criteria?

Not every category applies to every plan (a docs-only plan has no data layer). Mark inapplicable categories as such — silently skipping one is how leaks survive.

For category 11 specifically: a missing Quality bar declaration is FRICTION when the plan is plausibly surfaces: [] (a docs-only or pure-refactor plan), BLOCKING when the plan self-evidently builds an enum surface (an HTTP API, a CLI, migrations…) but declares none.

Pointer verification (do not trust, verify)

For every pointer the plan offers:

  1. fs_ls / fs_glob — the referenced path exists.
  2. fs_grep / fs_read — the file actually covers the claimed topic. A plan saying "see docs/database.md for migration conventions" fails verification if that file never mentions migrations.
  3. For "mirror the layout of X" pointers — confirm X exists and is a real example of what the plan claims (a service directory held up as the canonical layout should actually contain the layers the plan describes).

A broken pointer is worse than no pointer: it burns the implementer's time AND their trust in the rest of the plan.

Severity honesty

Not every gap is equal. Tag each finding:

  • BLOCKING — the implementer cannot proceed or will guess wrong with expensive consequences (wrong DB target, wrong repo, missing prerequisite).
  • FRICTION — the implementer can discover the answer but will waste significant time re-exploring what the author already knew.

A plan with only FRICTION findings may still be sealed at the caller's discretion — say so. BLOCKING findings always mean LEAKY.

Verdict format

End with EXACTLY one of:

PLAN_GATE: SEALED
Categories audited: N applicable, all answered or pointed.
<optional: 1-3 non-blocking observations>
PLAN_GATE: LEAKY
Missing questions (N):
1. [category] <the exact question the implementer will hit> — [BLOCKING|FRICTION] — <why they get stuck or guess wrong> — <suggested fix: the inline answer to add, or the pointer to insert (verified to exist)>
2. ...
Broken pointers (if any):
- <plan's pointer> — <what's wrong: path missing / doesn't cover topic>

Every missing question must be phrased as the QUESTION the implementer would actually ask ("where do I put the Terraform for the new RDS instance?"), not as an abstract complaint ("infra section is thin"). When you suggest a pointer as the fix, VERIFY it first — never recommend a pointer you haven't confirmed resolves.

Scope discipline

  • Do not redesign the approach. If the approach is coherent but under-documented, the fix is context, not redesign.
  • Do not demand encyclopedic plans. The container test is "answered or pointed" — a tight plan full of verified pointers beats a bloated plan that inlines the whole wiki. Flag over-inlining only if it duplicates something that WILL drift (e.g. pasted conventions that contradict the source file).
  • Three BLOCKING questions beat fifteen FRICTION nitpicks. If your list is all nitpicks, the plan is probably SEALED — say so.

Anti-patterns

  • Sealing a plan because the approach is good, without walking the manifest.
  • Flagging "missing context" without phrasing the actual question the implementer would ask.
  • Recommending a pointer you did not verify exists and covers the topic.
  • Treating an inapplicable category as a leak (demanding a data-layer section from a docs-only plan).
  • Re-reviewing executability/approach — that is plan-review's lane.

Frequently asked questions

What does the Plan Gatekeeping AI skill do?

Gatekeep a plan for self-containedness before it is finalized. A plan must be a "sealed container" - either it answers every question a context-free LLM implementer will hit, or it points at the exact code/docs where the answer lives. Produces the missing questions and a PLAN_GATE SEALED/LEAKY verdict. Grants read-only filesystem access for verifying pointers actually resolve. Complements plan-review (executability) - this checks completeness of context, not correctness of approach.

Why use Plan Gatekeeping on TypingMind?

Because you install it once and use it with any model. Plan Gatekeeping is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Plan Gatekeeping in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/plan-gatekeeping. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Plan Gatekeeping?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Plan Gatekeeping?

As many as you like. As long as a model supports skills, you can use Plan Gatekeeping with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Plan Gatekeeping AI skill free?

Yes. It is published on GitHub by Dark-Alex-17 under the AGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇