소스 정보
- 저장소
- Dev-Toolbelt/dev-team-agents
- 최근 소스 활동
- 2026년 8월 12일 01:06
- 감지된 SKILL.md 언어
- 영어
- 스타
- 4
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Dev-Toolbelt/dev-team-agents --skill spec-gate명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | spec-gate |
| description | Spec layer between overview.md and sprints — testable criteria, auto contract gate. |
Sits between docs/backlog/overview.md (business scope) and docs/backlog/sprints/ (execution
plan). One spec per feature/capability, written by product-analyst, in business language but with
a testable acceptance format. It becomes the scope boundary every downstream agent reads instead of
re-interpreting the overview or the sprint task description.
docs/specs/
├── <feature>.md ← business spec (product-analyst)
└── <feature>-contract.md ← technical contract (software-architect, only when the gate fires)
<feature>.md — Spec FileStructure from templates/spec-template.md (installed: .dev-team-agents/templates/spec-template.md):
touches: [backend, frontend, database, mobile] (layers this feature affects —
list only the ones that actually change), depends_on: [<feature>, ...] (other specs this one
needs, or [])Given / When / Then blocks — this is the only place
"done" is defined; nothing outside it is in scopeoverview.mdNo stack, schema, or API shape in this file — that is the contract's job, not the spec's.
Immediately after product-analyst writes a spec, evaluate:
touches.length > 1 OR the spec introduces a new API/schema/integration point
True → the command spawns software-architect automatically to write
<feature>-contract.md. This does not require the user to ask for technical input — the gate
replaces that dependency. software-architect writes only the interface: request/response
shapes, schema fields, error format, and the technical dependency order between specs. It does not
touch overview.md, does not restate the business rule, and does not make product decisions.
False (single layer, no new integration surface) → skip the contract; the sprint task links the spec alone.
Every coding agent (backend-developer, frontend-developer, mobile-developer,
database-specialist) reads the spec (and contract, if one exists) linked from its sprint task
before writing code, and treats the Given/When/Then blocks as the implementation boundary:
AskUserQuestion if it has a finite set of reasonable answers,
otherwise flag it to the user in plain text. Do not assume and proceed.product-analyst, not a silent implementation choice.When a command's test gate resolves to running tests (TESTS_REQUIRED=yes or the key absent) and the task links a spec, tests are written before the implementing developer agent runs, not after:
backend-test-specialist / frontend-test-specialist) reads the spec's Given/When/Then blocks — the same ones the developer will treat as the implementation boundary — and writes one failing test per criterion. No implementation exists yet; these tests assert against the interface described in the spec (and contract, if one exists), not against code.Given/When/Then block cannot be turned into a concrete assertion (the criterion is genuinely ambiguous about expected output, not just under-specified on an edge case), that is the <HARD-GATE> in Scope Lock firing early — stop and ask, do not write a vague or tautological test to move forward.This does not replace the Scope Lock rule above — the developer still treats the spec as the boundary — it only moves the test-specialist's read of the spec to before the code instead of after. Commands without a linked spec, or with TESTS_REQUIRED=no, are unaffected and keep the existing test-after order.
qa-specialist validates behavior against the linked spec's Given/When/Then blocks — the same
criteria the execution agent read, not a re-derived interpretation of the sprint task or the
original request. A criterion the spec doesn't cover is out of scope for the PASS/FAIL verdict;
note it as an exploratory finding instead (see test-strategy skill).
The spec stays the source of truth after implementation too. When execution discovers that
reality doesn't match a Given/When/Then — a missing scenario, a wrong assumption, a field that
needs to change — the spec is amended in place, never silently coded around and never abandoned.
backend-developer, frontend-developer, mobile-developer,
database-specialist) edits the spec's Acceptance Criteria / Out of Scope directly.<feature>-contract.md itself — it flags the mismatch to the
user and software-architect, who amends the contract.### Amendment Log:
- YYYY-MM-DD | <agent> | <what changed> | <why>. An amendment with no logged reason does not
count — the spec is stale, not living, until the log entry exists.Before the mandatory review handoff (code-reviewer + qa-specialist) on a spec-linked task is
considered complete, qa-specialist verifies:
Given/When/Then in the spec still matches what was actually built.Amendment Log entry carries a reason — no blank or placeholder entries.Report a mismatch as [SPEC-DRIFT] in the QA Report and treat it as a [BLOCKER] — deploy is
blocked until the spec is corrected, not until the QA report is edited to match the code.
Accepted drift is not the end of the story. A [SPEC-DRIFT] blocker resolves one of two ways:
the code is changed to match the spec, or the user explicitly accepts the built behavior and the
spec is amended to match it (Living Spec above). The second case is a standardization decision, not
just a spec fix — if the accepted behavior represents a pattern the team wants to hold onto (a naming
convention, a reusable shape, a path rule), route it to skills/shared/reuse-guidelines/SKILL.md
(via /devteam:rule or its passive-capture path) in addition to the Amendment Log entry. The
Amendment Log records that this spec changed; the registry is what stops the same drift from
recurring silently in the next feature.
Each TASK-NNN in a sprint file (backlog-template skill) carries a **Spec**: field pointing at
docs/specs/<feature>.md (and <feature>-contract.md when it exists). Task ordering across waves
respects depends_on from the linked specs, not just file-level collisions.