Retired 2026-08-11. It was never used — not once.
This skill turned a vague objective into a SMART done-condition plus a scorecard, ready for the
harness's /goal command to arm.
It is retired on evidence rather than taste. Across the entire session archive since it was published on 2026-07-05:
- 0 invocations of this skill, by slash command or by the Skill tool.
- 0 invocations of
/goalitself — the primitive it wrapped.
That second number is the interesting one. It means this wasn't a redundant wrapper around a useful thing; the workflow it assumed simply never happened. The honest reading is that a capable model asked to set a goal already states a specific, measurable, time-bound done-condition. The skill formalised something the model does unprompted, so nothing ever reached for it.
ykwtd, a sibling skill in this org, was expanded in the same period — because a real
incident exposed a real gap: an underspecified imperative arriving over chat ("keep him
entertained") spawning outward work against a bar nobody had stated. That expansion was earned
by a failure. smart-goal had no such incident, because there was no such gap.
A skill earns its place by meeting a situation that needed it. Built-then-parked is zero leverage however clean the idea, and a skill that loads into every session while never firing is worse than zero — it spends context. This repo stays up, archived, as the worked example of that judgement rather than being quietly deleted.
Original README (for reference)
Claude Code's /goal is a work-until-true loop: it arms a Stop hook that blocks the session
from stopping until an independent evaluator confirms your completion condition holds.
Great machinery — but it takes that condition as given. It has zero goal-formation.
Feed it "check the servers" and its evaluator has nothing to judge.
Most drops don't arrive with a goal. They arrive as vague material — a nudge, a paste, a
half-thought. smart-goal is the Define phase (Double Diamond, agent-side): it converges
vague input into a SMART goal (Specific, Measurable, Achievable, Relevant, Time-bound),
fresh-lineage-checks that the goal is actually attainable before you burn a loop on it, and
emits the exact /goal "<condition>" line to arm. It does not rebuild /goal — the loop,
evaluator, and impossibility-escape are reused wholesale.
Discover Define + validate (THIS SKILL) Develop → Deliver
(ykwtd, or raw) → SMART-ify + A-check → /goal (reused wholesale)
- A necessity gate first. Most tasks don't need a goal at all — if you wouldn't use
/goal, there's nothing to manufacture; just do the task. A skill that SMART-ifies everything is the over-engineering it's meant to prevent. - The A-check earns its place. A fresh, different-lineage feasibility pre-flight (e.g. Codex) catches the worst failure — an impossible self-set goal that arms the loop and spins to the cap — before arming, not reactively mid-loop.
- Elicit, don't self-disable. A thin drop is a conversation, not a wall: ask for the
missing axis (
AskUserQuestion, orguided-approachwhen several need shaping), then SMART-ify. Bailing to "can't form a goal" when one question would unblock is the failure.
SKILL.md— the skill.tests/— a red-green harness:rubric.md(SMART grader),fixtures.md(drops spanning gate-decline / elicit / SMART-ify),RESULTS.md(a run graded by a different model lineage).
Part of a pipeline with ykwtd (Discover — infer
intent from a zero-instruction drop) and Claude Code's built-in /goal (Deliver — the loop).
ykwtd → smart-goal → /goal.