Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
davidlee avatar

Spec Tech

  • 78 installs
  • 1 repo stars
  • Updated August 3, 2026
  • davidlee/doctrine

Authors and revises the technical specification for a capability, recording durable architecture and mechanism as first-class Doctrine entities with a validated relational spine.

About

Guides authoring the technical spec that sits downstream of the product spec and upstream of per-slice design, capturing components, boundaries, decisions and contracts. A developer uses it when recording durable architecture and mechanism as Doctrine spec entities rather than a single change's design.

  • Manages a tech spec as three coordinated writes: scaffold, hand-edit the TOML spine, then add requirements
  • Relational spine places every spec in the corpus tree, gated by spec validate for FK integrity

Spec Tech by the numbers

  • 78 all-time installs (skills.sh)
  • Ranked #699 of 1,879 Documentation skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davidlee/doctrine --skill spec-tech

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs78
repo stars1
Last updatedAugust 3, 2026
Repositorydavidlee/doctrine

What it does

Authors and revises the technical specification for a capability, recording durable architecture and mechanism as first-class Doctrine entities with a validated relational spine.

Files

SKILL.mdMarkdownGitHub ↗

Spec Tech

You are authoring the technical spec — the how, downstream of the product spec (/spec-product) and upstream of per-slice design (/design). The entity engine (TOML+MD tiers, relations, show command) is documented in [[mem.concept.doctrine.entity-engine]].

Structural. Doctrine manages specs as first-class entities — a tech spec is
the same three coordinated writes as a product spec: scaffold with spec new
(subtype/title/slug only), hand-edit the spine and flat fields into
spec-NNN.toml, then spec req add its requirements. Use show to read the
reassembled whole, validate for FK integrity, list for the corpus (flags in
--help; verb model in using-doctrine.md). Identity, the relational spine, and
flat fields (incl. c4_level, [[source]] anchors) live in spec-NNN.toml, the
narrative in spec-NNN.md; requirements are peer entities (REQ-NNN) membered
via members.toml; tech-only spec→spec edges are written with `doctrine spec
interactions add/remove` (not hand-authored). **There is no CLI flag for the
spine — it is authored TOML, and
spec validate is the integrity gate.**

Capture the durable architecture and mechanism:

  • the shape of the solution — components, boundaries, data flow, invariants
  • the key technical decisions and their rationale (link relevant ADRs)
  • interfaces and contracts that outlive any single change
  • constraints the implementation must honour

The relational spine places every spec in the corpus tree (all hand-edited TOML, gated by spec validate):

  • descends_from — tech→PRD, single-valued, a validated FK to the product intent

this capability realises.

  • parent — a single parent, acyclic containment (the C4 decomposition).
  • Containment is never a peer edge. parent is never expressed as an

interactions edge, and an interactions edge is never containment (PRD-012 principle) — decomposition and peer uses/calls are distinct axes.

C4 altitude. Hand-authored specs normally stop at the container/component level; code-level (C4 level 4) specs are exceptional, authored only when a unit of mechanism genuinely needs that resolution.

Posture is dual. A tech spec may be retrospective (the shipped how) or forward-intent (SPEC-001/SPEC-002 style, describing an unbuilt engine) — both are legal, provided planned stays distinguishable from verified. Requirements are REQ-NNN entities at status pending; there are no coverage tables and no status derivation — observed coverage is reconciled, never inferred from the spec.

The exemplar trio locks the three canonical shapes — read them with spec show before authoring:

  • SPEC-003 (context) — the whole-system synthesis: anchor-free, no parent,

no descends_from; names the containers and their composition, never restating any one container's mechanism.

  • SPEC-004 (container) — parent only, no descent: a mechanism container

whose children carry the per-capability descent.

  • SPEC-005 (component) — parent + descends_from: the thin (not anaemic)

capability shape — kind-specific contracts only, shared mechanism cited via the parent, never restated.

Keep it evergreen. A single change's concrete design — current vs target behaviour, code-impact, verification — belongs in that slice's /design, not here. If a decision is project-global and load-bearing, it may be an ADR (doctrine adr new) rather than spec prose.

Related skills

Documentationpmworkflow

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.