Skip to content
Development
Skill

/lock

Use when the prototype is approved at Claude Design (gate 2a) and a slice's portion must be copied down into the repo and locked. Also use when a spine revision touches an already-locked portion and it must be re-locked. Requests gate 2b (the lock). Do not use before gate 2a,

From plugin
x2
1513 skills

Claude Code

$ npx -y skills add teklabsdigital/x2-method --skill lock --agent claude-code

SKILL.md

lock.SKILL.md
name: lock
description: Use when the prototype is approved at Claude Design (gate 2a) and a slice's portion must be copied down into the repo and locked. Also use when a spine revision touches an already-locked portion and it must be re-locked. Requests gate 2b (the lock). Do not use before gate 2a, and do not derive tests here; that is derive-tests, after the lock.

X2 Lock

Copy the approved design artifact down into the repo, verify it is complete, stamp its provenance, and request the lock. The lock is the acceptance contract for the slice; everything the builder ships is held to it. The pilot ran without this step and paid twice: the design system was never imported so the client's tokens were scraped from what happened to be readable inline (MET-04), and the prototype was treated as locked for days before anyone asked for the approval (turn 25).

The import

Pull the complete artifact set from the design project into `design/prototype/` (the canonical home, INV-01):

  • the prototype source (`<name>.dc.html`),
  • the **complete** design-system export under `_ds/` (the token css, component css, fonts),
  • the supporting scripts.

The sanctioned route is the on-disk export: the owner places the design project's complete export in the repo (a handoff folder under `design/`), the lock copies out what it needs and deletes the handoff. A context-carried import (the design MCP) is the fallback for small artifact sets; it cannot carry binaries, and the third project moved to the on-disk route after channel limits bit. Either way, verify the copied tree against its source: the file inventory matches and no copy artifacts exist (a duplicated or nested directory survived the third project's import verification and was caught only by the owner's eye).

Never derive tokens from values readable inline in the prototype source. The pilot did, and silently produced a partial, light-only, placeholder token set with the coverage floor skipped. The client's token source derives from the export on disk, nothing else.

Done-checks (all must pass before requesting the lock)

  • The token file on disk defines the full variable set: the more-than-fifty floor is met, not

skipped.

  • Both themes are present: the dark root and the light override.
  • Fonts resolve by a named path: binaries checked in, or a self-hosted font package pinned under

the dependency ledger (the pilot's answer; the design MCP cannot carry binaries through context).

  • `design/prototype/README.md` records provenance: source design-project URL, import date, the

portion being locked. On approval, it gains the lock stamp.

  • `design/ledger/` exists for the per-slice fidelity ledgers that derivation will add.
  • Where a design brief exists for the portion: the copied-down screens and their navigation map

onto the brief's screen inventory and action edges, both directions. An orphan on either side (a brief surface the prototype lacks, a prototype surface the brief never named) is surfaced at the lock for a ruling, never silently absorbed.

  • **The exposure review.** A prototype can carry security-shaped choices, and transcription would

ship them. Walk the portion for: entry points it exposes (an admin door on a public page), identifiers it addresses things by (sequential versus opaque on any public surface), and embedded exposure values (domains, addresses, ids). Each finding is surfaced for a ruling at the lock, never silently transcribed; the second project shipped and then moved both instances it missed (record: NS-3).

Human-turn contract

  • Requests **gate 2b: the lock** (MET-07): the copied-down artifact is approved, explicitly, now.

This is UI-4's chargeable turn. A portion is not locked because work moved on; it is locked because approval is on record. Request it at this moment, not retroactively.

  • The request is put in plain language, the owner's own words; method vocabulary rides alongside,

never instead (P3).

  • A re-lock after a spine revision is the same turn again for the affected portions.

Questions this skill used to carry, now ruled (invariants pass, 2026-07-11)

  • **The locked artifact is the DC source alone.** No static render is checked in; a render, if ever

produced, is viewing convenience and never authoritative. Approval happens where the prototype renders (gate 2a, Claude Design); the lock is the copy-down diff (INV-01, ruled).

  • **The design system lives under `design/prototype/_ds/`**, provenance-true where the import

lands. A shared house-system home is deferred with a trigger: the second product reusing the same system makes it a pinned, hash-ledgered vendored asset under DEP-1, not a shared directory.

  • **The import is the COMPLETE export** (the `.dc.html` plus the full `_ds/`, both themes, more

than fifty variables), per the manifest; never values scraped from the `.dc.html` (MET-04, ruled).

What this skill must NOT produce

  • No tests, no fidelity ledgers, no code. Derivation starts only after the lock is on record.
  • No edits to the prototype; a change goes back through design and re-approval.

Next

Gate 2b on record, then derive-tests.

Read more
@teklabsdigital
Ships withx2

An agentic software engineering method: AI agents do the building, the build enforces the rules that must always hold, a person decides only at the gates, and the method measures its own cost in human turns.

Stars on GitHub

Momentum

stars in total
15
Star history of teklabsdigital/x2-method on GitHub, a chart by star-history.com

Other skills on x2.

adopt

adopt

Use when an existing project that was not built with X2 must be migrated to run under it, with documentation sprawl to dissolve,…

@teklabsdigital@teklabsdigitalInstall Skill
decompose

decompose

Use after the repo is seeded to run the D-000 five-lens decomposition, record persistent schema decisions, define slice one, and…

@teklabsdigital@teklabsdigitalInstall Skill
derive-tests

derive-tests

Use only after the lock (gate 2b) is on record for the slice portion, to derive the fidelity ledger and acceptance scenarios from…

@teklabsdigital@teklabsdigitalInstall Skill
design

design

Use when D-000 exists and the whole-product prototype does not, to run Claude Design in its own context and produce the prototype…

@teklabsdigital@teklabsdigitalInstall Skill
extract

extract

Use when an X2 project completes (or reaches a major milestone) to run the extraction loop, the quality feedback that folds the…

@teklabsdigital@teklabsdigitalInstall Skill
help

help

Use when someone asks what an X2 skill does, which skill to run next, how the gates work, or where an artifact lives. A quick…

@teklabsdigital@teklabsdigitalInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about lock.

Which coding agents can use lock?
lock installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.