| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /spec:status |
| Category | spec-clarity |
| Complexity | moderate |
/spec:status โ ํ์ ๋ ๋ช ์ธ์ ์ง๊ธ ์์ ์ด ์ผ๋ง๋ ๋ง๋์ง ์ ๊ฒ#
ํ๋ง๋๋ก#
์ด๋ฏธ ํ์ (์ ๊ธ)๋ ํต์ฌ ๋ช ์ธ(Seed spec)๋ฅผ ๊ธฐ์ค์ผ๋ก, ์ง๊ธ ๋ง๋ ์์ ์ด ๊ทธ ๋ช ์ธ์ ์ผ๋ง๋ ์ ๋ง๋์ง ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ง๋จํด ์ฃผ๋ ๋ช ๋ น์ ๋๋ค. ๋ช ์ธ๋ ํ ๊ธ์๋ ๊ฑด๋๋ฆฌ์ง ์๊ณ , "์ง๊ธ ์ด๋๊น์ง ์ ์๋"๋ฅผ ๋ณด์ฌ ์ฃผ๋ ๊ฑด๊ฐ๊ฒ์งํ๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
๋๊ฐยท์ธ์ ์ฐ๋์#
- ํ์ (LOCKED)๋ Seed ๋ช ์ธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์์ ์ด ๊ถค๋์์ ๋ฒ์ด๋์ง ์์๋์ง ํ์ธํ๊ณ ์ถ์ ๋
- ํฉ๊ฒฉ ๊ธฐ์ค(Acceptance) ํญ๋ชฉ ํ๋ํ๋๊ฐ ์ง๊ธ ์ด๋ค ์ํ์ธ์ง ํ๋์ ๋ณด๊ณ ์ถ์ ๋
- PR์ ์ฌ๋ฆฌ๊ธฐ ์ ์ด๋ ๋ฆฌ๋ทฐ ์ค์, ๋ช ์ธ์ ๋ชฉํยท์ ์ฝ๊ณผ ์ด๊ธ๋ ๋ถ๋ถ์ด ์๋์ง ๋น ๋ฅด๊ฒ ์ ๊ฒํ๊ณ ์ถ์ ๋
๐ ์ด ๋ช ๋ น์ ์๋ฌด๊ฒ๋ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ช ์ธ ํ์ผ๋, ์์ ํ์ผ๋ ๊ทธ๋๋ก ๋ ์ฑ ์ง๋จ ๊ฒฐ๊ณผ๋ง ํ๋ฉด์ ๋ณด์ฌ ์ค๋๋ค.
๋ฌด์์ ํด์ฃผ๋์#
๊ฐ์ฅ ์ต๊ทผ์ ์ ๊ธด Seed ๋ช
์ธ(docs/seed-spec-*.md)๋ฅผ ๋ถ๋ฌ์, ์ธ ๊ฐ์ง ์ง๋จ ๋ฆฌํฌํธ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
-
ํฉ๊ฒฉ ๊ธฐ์ค๋ณ ์ํ ํ์ โ ๋ช
์ธ์ ํฉ๊ฒฉ ๊ธฐ์ค(S4)์ ์ ํ
AC-01,AC-02โฆ ๊ฐ ํญ๋ชฉ์ด ์ง๊ธ ์ด๋ค ์ํ์ธ์ง ๊ทธ๋๋ก ๋ณด์ฌ ์ค๋๋ค. ์ํ๋PENDING(๋๊ธฐ) /IN-PROGRESS(์งํ ์ค) /MET(์ถฉ์กฑ) /FAILED(๋ฏธ์ถฉ์กฑ) /WAIVED(๋ฉด์ ) ์ค ํ๋์ ๋๋ค. -
๋ชฉํ ์ ๋ ฌ ํ์ โ ์ง๊ธ ์์
์ด ๋ช
์ธ์ ํต์ฌ ๋ฌธ์ (S1)๊ฐ ํ๋ ค๋ ๋ชฉํ์ ์ ๋ง๋์ง๋ฅผ
ALIGNED(์ ๋ ฌ๋จ) /MINOR-DRIFT(์ฝ๊ฐ ๋ฒ์ด๋จ) /MAJOR-DRIFT(ํฌ๊ฒ ๋ฒ์ด๋จ) ์ค ํ๋๋ก ํ์ ํฉ๋๋ค. - ๋ถ๋ณ ์ ์ฝ ์๋ฐ ์ ๊ฒ โ ์์ ์ด ๋ช ์ธ์ ์ ๋ ์ ์ฝ(S2) ์ค ์ด๋ค ๊ฒ์ ์ด๊ธด ๊ฒ์ผ๋ก ๋ณด์ด๋์ง ์ง์ด ์ค๋๋ค. ์๋ฐ์ด ์์ผ๋ฉด "์๋ฐ ์์"์ผ๋ก ํ์ํฉ๋๋ค.
๐ ์ค์(ํ๊ตญ์ด ์ฌ์ฉ์ ์๋ด): ์ด ํ์ ์ ๋จ์ด๊ฐ ๋๊ฐ์์ง ๋น๊ตํ๋ ๋ฐฉ์์ด ์๋๋๋ค. AI๊ฐ ๋ป์ ์ฝ์ด์(์๋ฏธ ๊ธฐ์ค) ํ๋จํฉ๋๋ค. ํ๊ตญ์ด๋ ์กฐ์ฌยท์ด๋ฏธ๊ฐ ๋ถ๊ณ ๋์ด์ฐ๊ธฐ ๊ฒฝ๊ณ๊ฐ ๋ถ๋ช ํ์ง ์์์, ๊ธ์/ํ ํฐ์ด ๊ฒน์น๋์ง๋ก ๋น๊ตํ๋ฉด ์๋ฑํ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค. ๊ทธ๋์ "ํํ์ด ๋ฌ๋ผ๋ ์๋ฏธ๊ฐ ๊ฐ์ผ๋ฉด ๊ฐ๋ค"๊ณ ๋ด ๋๋ค.
์ด๋ป๊ฒ ์ฐ๋์#
/spec:status # ์ต์ LOCKED Seed ๋ช
์ธ ์ํ๋ง ์ถ๋ ฅ
/spec:status --against {ํ์ผ} # ํน์ ํ์ผ๊ณผ ๋น๊ต ์ง๋จ
/spec:status --against {ํด๋} # ํด๋ ์ ๋ณ๊ฒฝ๋ถ๊ณผ ๋น๊ต ์ง๋จ
/spec:status --against {PR} # ํน์ PR์ ๋ณ๊ฒฝ๋ถ๊ณผ ๋น๊ต ์ง๋จ
- ์ต์
์์ด ์คํํ๋ฉด ๊ฐ์ฅ ์ต๊ทผ
docs/seed-spec-*.md(LOCKED)๋ฅผ ๋ถ๋ฌ์, ๋ช ์ธ์ ๊ธฐ๋ก๋ ํฉ๊ฒฉ ๊ธฐ์ค ์ํ๋ฅผ ๊ทธ๋๋ก ๋ณด์ฌ ์ค๋๋ค. -
--against์๋ ํ์ผ / ํด๋ / PR ์ค ํ๋๋ฅผ ์ค ์ ์์ต๋๋ค. ์ฃผ์ด์ง ๋์์ ๋ด์ฉ์ ๋ช ์ธ์ ์๋ฏธ ๊ธฐ์ค์ผ๋ก ๋น๊ตํด ์ ๋ ฌ ํ์ ๊ณผ ์ ์ฝ ์๋ฐ์ ํจ๊ป ์ง๋จํฉ๋๋ค.
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
ํฌ๊ฒ ๋ค ๋จ๊ณ๋ก, ๋ชจ๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์งํ๋ฉ๋๋ค.
-
๋ช
์ธ ๋ถ๋ฌ์ค๊ธฐ โ ๊ฐ์ฅ ์ต๊ทผ์ LOCKED Seed ๋ช
์ธ๋ฅผ ์ฐพ์ ์ฝ์ต๋๋ค. ์ ๊ธด ๋ช
์ธ๊ฐ ์์ผ๋ฉด
/spec:verify --lock์ผ๋ก ๋จผ์ ํ์ ํ๋ผ๊ณ ์๋ดํ๊ณ ๋ฉ์ถฅ๋๋ค(์๋ฌด๊ฒ๋ ์ฐ์ง ์์). - ํฉ๊ฒฉ ๊ธฐ์ค ์ํ ์ ๋ฆฌ โ ๋ช
์ธ์ ํฉ๊ฒฉ ๊ธฐ์ค(S4)์์
AC-01~ ๊ฐ ํญ๋ชฉ๊ณผ ํ์ฌ ์ํ๋ฅผ ๊ทธ๋๋ก ์ฝ์ด ํ๋ก ์ ๋ฆฌํฉ๋๋ค. -
์๋ฏธ ๊ธฐ์ค ๋น๊ต โ
--against๋์์ด ์์ผ๋ฉด, ๊ทธ ๋ด์ฉ์ ๋ช ์ธ์ ํต์ฌ ๋ฌธ์ (S1)ยท๋ถ๋ณ ์ ์ฝ(S2)๊ณผ ๋ป์ผ๋ก ๊ฒฌ์ฃผ์ด ์ ๋ ฌ ํ์ ๊ณผ ์ ์ฝ ์๋ฐ์ ๋์ถํฉ๋๋ค(๋จ์ด ์ผ์น๊ฐ ์๋ ์๋ฏธ ํ๋จ). - ๋ฆฌํฌํธ ์ถ๋ ฅ โ ํฉ๊ฒฉ ๊ธฐ์ค๋ณ ์ํ + ๋ชฉํ ์ ๋ ฌ ํ์ + ์ ์ฝ ์๋ฐ ๋ชฉ๋ก์ ํ๋ฉด์ ์ถ๋ ฅํฉ๋๋ค. ํ์ผ์ ์ด๋ ๊ฒ๋ ์์ ๋์ง ์์ต๋๋ค.
๋๋๋ฉด ๋ค์์?#
-
MAJOR-DRIFT๊ฑฐ๋ ์ ์ฝ ์๋ฐ์ด ๋ณด์ด๋ฉด โ ์์ ๋ฐฉํฅ์ ๋ฐ๋ก์ก๊ฑฐ๋, ์ ๋นํ ๋ณ๊ฒฝ์ด๋ผ๋ฉด/spec:evolve๋ก ๋ช ์ธ๋ฅผ ๊ณต์ ์ ์ฐจ์ ๋ฐ๋ผ ๊ฐฑ์ ํ์ธ์. -
ํฉ๊ฒฉ ๊ธฐ์ค์ด ์์ง
PENDING/IN-PROGRESS์ธ ํญ๋ชฉ์ด ๋ง์ผ๋ฉด โ ๋จ์ ์์ ์ ๋ง์ ์งํํ ๋ค ๋ค์/spec:status๋ก ํ์ธํ์ธ์. - ๋ช
์ธ ์์ฒด๊ฐ ํ๋ค๋ฆฐ๋ค๊ณ ๋๊ปด์ง๋ฉด โ
/spec:ambiguity๋ก ๋ชจํธ์ฑ ์ ์๋ฅผ ๋ค์ ํ๊ฐํด ๋ณด์ธ์.
โ๏ธ ์์ธ ์ต์ ยท์คํ ๋ช ์ธ (๊ฐ๋ฐ์ / AI ์์ด์ ํธ์ฉ)
Usage#
/spec:status # Status of the latest LOCKED Seed spec
/spec:status --against {file} # Compare against a specific file
/spec:status --against {dir} # Compare against a directory ' s changes
/spec:status --against {PR} # Compare against a PR ' s changesBehavior: READ-ONLY#
This command writes nothing. It does not modify the Seed spec, the compared files, or any other artifact. It loads state and emits a report to the console only.
Parameters#
| Parameter | Description | Default |
|---|---|---|
--against | Compare target: a {file}, a {dir}, or a {PR} | none (spec-only echo) |
Inputs#
- Loads the latest LOCKED
docs/seed-spec-*.md. - If no LOCKED Seed spec exists, stop and advise running
/spec:verify --lockfirst. Write nothing.
Execution Flow#
1. Load Locked Seed (read-only)#
- Resolve the most recent
docs/seed-spec-*.mdwith Status: LOCKED. - If none is found, emit guidance to lock one first and exit without writing.
2. AC-ID Status Echo (from S4)#
- Read each Acceptance Boundary entry from S4 with its AC-ID (
AC-01,AC-02, โฆ). - Echo each AC-ID's recorded status verbatim. Status vocabulary:
PENDING/IN-PROGRESS/MET/FAILED/WAIVED. - This step is a faithful echo of recorded state, not a re-judgment.
3. Semantic Comparison (only if --against provided)#
All matching here is LLM-semantic, never lexical. Do NOT compare by whitespace, token overlap, or substring match โ the audience is Korean-first, and lexical matching breaks on Korean (josa attachment, no reliable word boundaries). Judge by meaning: different wording with the same intent counts as a match.
- Goal alignment vs S1 (Core Problem): read the
--againstcontent and judge, semantically, whether the work advances the Seed's core problem. Emit one verdict:ALIGNEDโ the work clearly serves S1's goal.MINOR-DRIFTโ mostly aligned, with small tangents or scope creep.MAJOR-DRIFTโ the work diverges materially from S1's goal.
- S2 (Immutable Constraints) violations: for each S2 constraint, semantically
assess whether the
--againstcontent appears to violate it. List each apparent violation with a one-line rationale. If none, report "no violations."
4. Emit Report (no writes)#
Print, in order:
- Per-AC-ID status table (AC-ID โ status from S4).
- Goal-alignment verdict:
ALIGNED/MINOR-DRIFT/MAJOR-DRIFT(only with--against). - S2 constraint violations (only with
--against).
Output#
A read-only alignment report printed to the console. No files are modified.
Related Commands#
/spec:seedโ Create Seed spec/spec:verifyโ Verification + lock/spec:evolveโ Evolve locked Seed spec/spec:ambiguityโ Re-evaluate ambiguity score