jackin-goal-prompt — Claude Code skill: turn a roadmap item into /goal
Distills a roadmap item and optional plan files into one self-contained /goal prompt capped at 4000 characters.
npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a claude-codeWhat jackin-goal-prompt does
The skill reads a roadmap item in .mdx and, when --plan is passed, the plan files too. From them it lifts scope, steps, verify commands, done criteria and STOP conditions. The output is a single prompt an executor with no prior context can run to completion.
The skeleton comes from /improve: objective, scope, verify gates, done criteria, STOP conditions. Verify commands are read from the repo itself — CONTRIBUTING.md, .github/workflows/ci.yml, mise.toml — never invented. Code excerpts stay out; the prompt names the file and the contract instead. Auto-loaded rules such as AGENTS.md and COMMITS.md are pointed at, not copied.
The 4000-character cap is hard. The skill writes the prompt to a temp file and counts it with wc -c, then compresses in order: drop code excerpts, collapse conventions to a pointer, tighten the objective, cut the why. If you want a longer prompt, say so up front — otherwise you will be asking for the dropped parts back by hand.
What it helps with
- turn a roadmap item into a prompt an executor understands without chat history
- fuse
/improveplan files and a roadmap item into one runnable text - pull the repo's real verify commands into the prompt
- fit the task statement into 4000 characters without losing done criteria
- keep STOP conditions so the executor can stop honestly
Example prompts for the agent
- write a goal prompt for the auth-refresh roadmap item
- jackin-goal-prompt for the rate-limits item, plans live in
plans/rate-limits/ - build a
/goalprompt fromdocs/roadmap/billing.mdxandplans/billing/*.md
How to install jackin-goal-prompt
1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a claude-code2Manually: put the files in place
~/.claude/skills/jackin-goal-prompt/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/jackin-goal-prompt/
1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a codex2Manually: put the files in place
.agents/skills/jackin-goal-prompt/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a cursor2Manually: put the files in place
.cursor/skills/jackin-goal-prompt/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jackin-project/jackin-dev jackin-goal-prompt2Manually: put the files in place
.github/skills/jackin-goal-prompt/SKILL.md1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a gemini-cli2Platform CLI
gemini skills install https://github.com/jackin-project/jackin-dev --path skills/jackin-goal-promptManually: put the files in place
.devin/skills/jackin-goal-prompt/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about jackin-goal-prompt
How do I install jackin-goal-prompt in Claude?
Run npx skills add jackin-project/jackin-dev --skill jackin-goal-prompt -a claude-code. The skill then sits at ~/.claude/skills/jackin-goal-prompt/SKILL.md.
What does jackin-goal-prompt do?
It turns a roadmap item plus optional plan files into one self-contained /goal prompt of up to 4000 characters. Inside are the objective, scope, verify gates, done criteria and STOP conditions.
How is jackin-goal-prompt different from jackin-research?
jackin-research authors a multi-page prompt.mdx dossier brief run via /goal Follow. This skill produces a compact inline prompt for /goal Implement or /goal Run.
Source text
SKILL.md · Apache-2.0
---
name: jackin-goal-prompt
description: Use only when the user explicitly requests this skill. Distills a jackin❯ roadmap item — plus optional plan files — into a self-contained /goal prompt capped at 4000 characters.
argument-hint: "<slug> [--plan <path|glob>]"
disable-model-invocation: true
license: Apache-2.0
user-invocable: true
---
# jackin-goal-prompt
Distill a roadmap item (and any plan files the operator hands you) into a single **self-contained** `/goal` prompt — one an executor agent with zero prior context can run to completion. The prompt is the product; its tightness decides whether the goal succeeds.
Capped at **4000 characters, hard.** Structure borrowed from `/improve`'s plans: self-contained, verification-gated, hard-boundaried. The skeleton that carries execution — objective, scope, verify gates, done criteria, STOP conditions — stays; everything the executor can read from files (code excerpts) or inherits from jackin❯'s auto-loaded rules (`AGENTS.md`, `COMMITS.md`, `ENGINEERING.md`) is pointed at, never restated.
Distinct from `jackin-research`: that authors a *dossier brief* (a multi-page `prompt.mdx` file run via `/goal Follow`). This produces a compact *inline* prompt run via `/goal Implement` or `/goal Run`.
## When to use
- Operator asks for a goal prompt / wants to kick off `/goal` on a roadmap item.
- Operator has a roadmap item plus `/improve` plan files and wants them fused into one runnable prompt.
## When NOT to use
- Authoring a research dossier brief → `jackin-research`.
- Designing the roadmap item itself → `jackin-brainstorm`.
- Opening the PR → `jackin-create-pr` / `jackin-propose`.
## Arguments
- `<slug>` — the roadmap item (slug, path, or the `.mdx`). Always required.
- `--plan <path|glob>` — plan markdown to fold in (a folder, a file, or a glob). Usually `/improve` output.
## Process
1. **Gather the change.** Read the roadmap `.mdx`. Anchor on `title:` and `**Status**:` only — real items drift from the `Problem/Why/Design/Tasks` scaffold, so tolerate any heading set. If `--plan` is given, read every plan file and lift its scope, steps, verify commands, done criteria, and STOP conditions.
*Done when* you can state, in two sentences, what this change builds and where its code lives.
2. **Read the repo's real verification gates.** The verify commands come from the repo, never invented. Pull them from `CONTRIBUTING.md` (the merge-readiness block), `.github/workflows/ci.yml`, and `mise.toml` — for jackin❯ that is `cargo fmt --check`, `cargo clippy --all-targets --all-features -- -D warnings`, `cargo nextest run --all-features`, the `e2e` profile, plus the `bun` docs gate when `docs/` is touched.
*Done when* every gate you cite is a command the repo actually runs, with its expected result.
3. **Compose the prompt** — the compressed `/improve` skeleton:
- **Objective** — one or two lines: what to build, pulled from the roadmap/plan.
- **Scope** — in-scope paths; out-of-scope boundaries (what looks related but must not be touched).
- **Verify gates** — the commands from step 2, each with its expected result.
- **Done criteria** — machine-checkable, one line each (a command + result, or a greppable absence), never prose like "works correctly."
- **STOP conditions** — drift vs the plan, a scope boundary that won't hold, a gate that won't go green honestly.
- **Conventions** — one line pointing at jackin❯'s auto-loaded rule files; do not copy their content.
4. **Enforce the 4000-character cap.** Write the prompt to a temp file and `wc -c` it. Over the cap, compress in this priority order until it fits: drop code excerpts (name the file + the contract, not the code), collapse conventions to a pointer, tighten the objective, cut the "why" narrative, merge done criteria into the verify gates. Re-count. The cap is hard — never emit over 4000.
*Done when* `wc -c` reports ≤ 4000 and the prompt still carries objective + scope + verify gates + done criteria + STOP conditions.
5. **Emit + report.** Print the prompt in a single code block, ready to paste after `/goal Implement <slug>` or `/goal Run`. State the character count. Name what you compressed or dropped to fit, so the operator can ask for it back inline if they'd rather raise the cap.
## Common mistakes
- Exceeding 4000 characters — the one hard constraint.
- Inventing verify commands instead of reading the repo's real ones — a gate the repo doesn't run is noise.
- Restating jackin❯'s auto-loaded rules (`AGENTS.md`, `COMMITS.md`, `ENGINEERING.md`) — the executor auto-loads them; point, don't copy.
- Inlining code excerpts — the executor reads the files; name the file and the contract it must satisfy.
- Producing a prompt that leans on chat context ("as discussed", "the approach we chose") — not self-contained, breaks on a fresh executor.
- Ignoring `--plan` files when given — they carry the scope and done criteria; folding them in is the point.
- Dropping the STOP conditions — they are the executor's only honest escape hatch.
## Tooling
No xtask owns this. The skill orchestrates reads (the roadmap `.mdx`, the plan files, the repo's verify commands) and emits a single ≤ 4000-char string. The structure borrows from `/improve`'s plan anatomy (self-contained, verification-gated, hard-boundaried) and the `/goal Run` brief shape jackin❯ already uses for gap-closure.
© jackin-project · Apache-2.0 · jackin-project/jackin-dev