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

SEQUENCE.mdskills/skill-router/

Workflow sequence

The sequence explains the expected arc; the router's probes on disk always win.

Bootstrap, before the arc (generated)

  • spec-as-source-setup runs once, only when probe P0 trips because the enforcement scripts or schemas are missing. It is a precondition of the arc, not a step in it, and it is not revisited on later work.

Main arc (generated)

plan-modeprompt-loop / requirement-gatheringopenspec-exploreopenspec-proposespec-writeropenspec-apply-change / spec-loopspec-verifywork-reviewopenspec-sync-specs / openspec-archive-change

  • The arc is plan-first: no work starts before its plan entry is approved.
  • In this repository's operator workflow, agent-registry precedes even the plan. It is not a skill of this plugin, so it cannot appear in a skeleton generated from the routing model. Its absence here is a boundary of the generator, not a statement that it is optional.

Transverse lanes (generated)

  • handoff / handoff-skill are available in every phase.

Orthogonal maintenance (generated)

  • spec-ci-sync / spec-rebuild are maintenance work, not main-arc steps.

Unclassified (generated)

  • n/a have no declared phase yet, so the router cannot place them in the arc. Listed here rather than dropped: a skill missing from the sequence is invisible, and invisible is how a skill stays unreachable.

Choice nodes (generated)

  • 2-intake:
    • prompt-loop — applicability gate passed AND the work is non-trivial
    • requirement-gathering — request still vague after the loop, or the loop was skipped
  • 6-apply:
    • openspec-apply-change — the active change has tasks.md with at least one unchecked - [ ]
    • spec-loop — as above, AND the user asked for unattended execution
  • 9-close: openspec-sync-specs precedes openspec-archive-change when delta specs require sync.

Interpretation

This document never selects a branch itself. The router selects from disk state and request intent, announces the next expected step, and stops for a new invocation.

skills

README.md

tile.json