CtrlK
BlogDocsLog inGet started
Tessl Logo

spec-driven-development/spec-as-source

Spec-driven development on OpenSpec, with mechanical spec-as-source enforcement: a custom 'spec-as-source' OpenSpec schema adds file-ownership (targets) and test-verification ([@test]) metadata to every capability spec, three scripts (link check, ownership check, manifest build) keep code and specs from drifting apart, plus requirement-gathering, spec-writer, work-review, and a session-handoff skill with a proactive context-warning hook.

68

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

SKILL.mdskills/plan-judge/

name:
plan-judge
description:
Reviews the entire PLAN.md of a new project through fixed, file-only provider rounds. Triggered by plan-mode when every plan entry is draft; Round 1 alternates Codex and Claude, then returns control to a human checkpoint.

Plan Judge

plan-judge reviews the entire openspec/PLAN.md of a project at its start. It is a separate skill called by plan-mode; it does not replace the plan gate, the router, or the human approval step.

Scope

Round 1 and Round 2 are implemented here. Round 1 rewrites the plan; Round 2 turns that rewritten plan into a development document. Every round's own operating instructions — its passes, its role duties, its rubric and its artifact protocol — live in that round's sub-skill under prompts/round-<n>/, never here. This file says which rounds exist, how to start them, and what none of them is allowed to do.

Whatever a round produces is presented at the human checkpoint. Nothing is applied automatically to openspec/PLAN.md.

Preconditions

  • plan-mode has handed control here because openspec/PLAN.md exists and every entry is draft.
  • Run from the project being reviewed.
  • The non-interactive codex exec and claude -p commands must be available and authenticated. A runner stops before its first pass when either is not.

Round 1

Instructions and immutable role prompts: prompts/round-1/. Run exactly this round:

bash skills/plan-judge/scripts/run-round-1.sh

Its result is a rewritten plan in Markdown. The runner reports it and exits; it never starts a subsequent round.

Authority Boundary

Do not approve an entry. Do not calculate or write approval hashes. Do not advance entry states or write Approved by or Approved at. Do not alter ROUTER.md. plan-mode and the human retain those responsibilities.

Round 2

Round 2 turns a rewritten plan into DOCUMENTOSVILUPPO.MD. Instructions and immutable role prompts: prompts/round-2/.

bash skills/plan-judge/scripts/run-round-2.sh /path/to/project \
  /path/to/project/.plan-judge/round-1/writer-4.md

Everything that reaches the network runs inside the agent-registry code container, and never falls back to the host: the runner checks provider availability and authentication there before writing any artifact. The runner prints the final document path and stops at the human checkpoint.

The rewritten Round 1 plan is the required input. The second argument is optional only when it sits at the default path shown above.

After either runner exits, show the output path to the human and stop at the checkpoint. Round 3 and Round 4 require their separately approved plan entries.

README.md

tile.json