Install
$ agentstack add skill-jccidc-plan-enforcer-plan-enforcer-combobulate ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Plan Enforcer Discuss
Public front-end name is discuss -> draft -> review. This skill file and packet path stay on legacy combobulate naming for compatibility.
An intent-capture gate. The job is to turn a fuzzy request ("clean up the auth flow", "make the onboarding better") into a concrete written intent packet before anyone drafts tasks against it. Mis-scoped plans fail downstream no matter how rigorous the drafting is.
This skill is the "brainstorming HARD-GATE equivalent" discussed in moat-todo, but mechanism-distinct: the output is a file, not a conversational acknowledgment. plan-enforcer-draft reads the packet on its next invocation.
When to use
Use this when any of:
- The user's request spans multiple outcomes that could each be their
own plan ("add OAuth, fix the session timeout, and rewrite the middleware tests")
- The request is framed in solution language without naming the
problem ("let's add Redis" without "because X is slow under Y load")
- Success criteria are implicit or aspirational ("make it faster",
"make it more reliable") without measurable targets
- The relevant codebase has more than one plausible interpretation of
the request and the wrong interpretation would waste a phase
Skip this skill when the request is already concrete ("add a /healthz endpoint returning 200 OK"), the user says "skip discuss" or "skip combobulate" or similar, or a packet at .plan-enforcer/combobulate.md already exists and is recent (mtime "`
- same fallback for manual rows:
node "$HOME/.claude/skills/plan-enforcer/src/awareness-cli.js" add --intent ""
- do not paraphrase those quotes into awareness rows; exact text
only
Recommended packet shape
#
## Source Ask
>
## Normalized Goal
## Non-Negotiables
- NN1:
## Hidden Contract Candidates
- HC1:
## Plausible Interpretations
- PI1:
- PI2:
## Chosen Interpretation
## Rejected / Forbidden Narrowings
- FN1:
## In Scope
-
-
## Out of Scope
-
## Constraints (optional)
-
## Success Signals (optional)
-
## Drift Risks (optional)
- DR1:
## Proof Requirements (optional)
- PR1:
## Draft Handoff (optional)
- phase shape hint:
- planning red lines:
Recommended method
Run in three passes:
- Ask capture
- preserve the source ask
- normalize the goal
- extract obvious constraints and scope
- Meaning defense
- list plausible interpretations
- choose one or ask the user
- name forbidden narrowings and drift risks
- Draft handoff
- define success signals
- define proof requirements
- suggest phase shape without turning it into tasks
Anti-patterns
Producing a packet that looks like a plan is the failure mode. Smells:
- Numbered task list in the packet -> stop, this is the drafter's job
- Time estimates or file paths in the packet -> stop, too early
- More than ~600 words with no real ambiguity handling -> too much
summary, not enough structure
- Success signals that are aspirational ("make it feel fast") rather
than observable ("p95 under 200ms under 50 rps")
- Missing
Rejected / Forbidden Narrowingson a risky or fuzzy ask - Missing
Proof Requirementswhen later verification will matter
Handoff
After writing the packet:
- Tell the user the path (
.plan-enforcer/combobulate.md). - Summarize the key decisions captured in one line per major section.
- Offer next step in public wording: "want me to draft the plan
against this discuss packet?" and wait. Do not auto-invoke the drafter.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jccidc
- Source: jccidc/.plan-enforcer
- License: MIT
- Homepage: https://www.jccidc.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.