Skip to content

Commit 7e44b60

Browse files
committed
feat: align specify Mission Brief with Quick pattern + command placeholders
1 parent da52a44 commit 7e44b60

5 files changed

Lines changed: 80 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,21 @@ All notable changes to the Specify CLI and templates are documented here.
44

55
# [Unreleased]
66

7+
# [0.8.4+adlc6] - 2026-04-30
8+
9+
### Changed
10+
11+
- **specify command (preset)**: Aligned Mission Brief with Quick extension pattern
12+
- Structured collect/display/confirm flow (extract from substantial input, ask 3 questions for minimal)
13+
- Explicit `(yes / no / adjust)` approval prompt with defined behavior for each response
14+
- Approved Mission Brief values written into spec header fields
15+
- **specify command (preset)**: Replaced hardcoded `/spec.*` command references with `__SPECKIT_COMMAND_*__` placeholders for cross-platform portability
16+
- **specify command (preset)**: Added explicit hook output display (Branch created / Feature #)
17+
18+
### Fixed
19+
20+
- **specify template**: Fixed duplicate step 8 numbering (now correctly 8 and 9)
21+
722
# [0.8.4+adlc5] - 2026-04-30
823

924
### Fixed

presets/agentic-sdlc/commands/adlc.spec.specify.md

Lines changed: 62 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,60 @@ scripts:
1313
ps: scripts/powershell/create-new-feature.ps1 "{ARGS}"
1414
---
1515

16-
## ⚠️ ENFORCEMENT MODE: MISSION BRIEF REQUIRED
16+
## ⚠️ MANDATORY STOP: Mission Brief
1717

18-
### CRITICAL RULES
18+
### Collect Mission Brief
1919

20-
1. **MUST COLLECT MISSION BRIEF** - Gather Goal, Success Criteria, Constraints FIRST
21-
2. **MUST WAIT FOR USER APPROVAL** - Display summary and get explicit "yes"
22-
3. **DO NOT CREATE BRANCH WITHOUT APPROVAL** - Mission Brief must be confirmed
23-
4. **DO NOT SKIP MISSION BRIEF** - Even if $ARGUMENTS is provided, extract and confirm
20+
If user input ($ARGUMENTS) is substantial (10+ words), extract the Mission Brief elements from it.
21+
If minimal (< 10 words) or empty, ask the user these questions:
2422

25-
**Failure to follow these rules violates the adlc.spec.specify contract.**
23+
```markdown
24+
## Mission Brief
25+
26+
**Question 1: What needs to be done?**
27+
What is the primary feature or change you need?
28+
29+
**Question 2: What defines success?**
30+
How will we know this is complete? 2-3 measurable outcomes.
31+
32+
**Question 3: Any constraints?**
33+
Technical, business, or regulatory limitations?
34+
```
35+
36+
### Display Mission Brief
37+
38+
After collecting/extracting answers, display:
39+
40+
```markdown
41+
## Mission Brief
42+
43+
**Goal**: {goal}
44+
45+
**Success Criteria**:
46+
- {criterion 1}
47+
- {criterion 2}
48+
49+
**Constraints**:
50+
- {constraint 1}
51+
```
52+
53+
### ⚠️ STOP: Get User Confirmation
54+
55+
```markdown
56+
**Proceed with this Mission Brief?** (yes / no / adjust)
57+
```
58+
59+
**STOP HERE** - Wait for explicit response.
60+
61+
- **yes**: Proceed to Pre-Execution Checks and spec creation.
62+
Write the approved Goal, Success Criteria, and Constraints into the
63+
spec header fields (Goal, Success Criteria, Constraints).
64+
- **adjust**: Ask what needs changing, update the Mission Brief, re-display, ask again.
65+
- **no**: Stop. Do not create branch or spec.
66+
67+
**DO NOT create branch, directory, or spec file until Mission Brief is approved with "yes".**
68+
69+
**Failure to follow these rules violates the __SPECKIT_COMMAND_SPECIFY__ contract.**
2670

2771
---
2872

@@ -70,7 +114,7 @@ You **MUST** consider the user input before proceeding (if not empty).
70114
71115
## Outline
72116
73-
The text the user typed after `/spec.specify` in the triggering message **is** the feature description. Assume you always have it available in this conversation even if `{ARGS}` appears literally below. Do not ask the user to repeat it unless they provided an empty command.
117+
The text the user typed after `__SPECKIT_COMMAND_SPECIFY__` in the triggering message **is** the feature description. Assume you always have it available in this conversation even if `{ARGS}` appears literally below. Do not ask the user to repeat it unless they provided an empty command.
74118
75119
Given that feature description, do this:
76120
@@ -94,6 +138,12 @@ Given that feature description, do this:
94138
95139
If a `before_specify` hook ran successfully in the Pre-Execution Checks above, it will have created/switched to a git branch and output JSON containing `BRANCH_NAME` and `FEATURE_NUM`. Note these values for reference, but the branch name does **not** dictate the spec directory name.
96140
141+
**Display hook output to user**:
142+
If `BRANCH_NAME` and `FEATURE_NUM` were returned, display:
143+
```
144+
Branch created: {BRANCH_NAME} (Feature #{FEATURE_NUM})
145+
```
146+
97147
If the user explicitly provided `GIT_BRANCH_NAME`, pass it through to the hook so the branch script uses the exact value as the branch name (bypassing all prefix/suffix generation).
98148
99149
3. **Create the spec feature directory**:
@@ -120,10 +170,10 @@ Given that feature description, do this:
120170
}
121171
```
122172
Write the actual resolved directory path value (for example, `specs/003-user-auth`), not the literal string `SPECIFY_FEATURE_DIRECTORY`.
123-
This allows downstream commands (`/spec.plan`, `/spec.tasks`, etc.) to locate the feature directory without relying on git branch name conventions.
173+
This allows downstream commands (`__SPECKIT_COMMAND_PLAN__`, `__SPECKIT_COMMAND_TASKS__`, etc.) to locate the feature directory without relying on git branch name conventions.
124174
125175
**IMPORTANT**:
126-
- You must only create one feature per `/spec.specify` invocation
176+
- You must only create one feature per `__SPECKIT_COMMAND_SPECIFY__` invocation
127177
- The spec directory name and the git branch name are independent — they may be the same but that is the user's choice
128178
- The spec directory and file are always created by this command, never by the hook
129179
@@ -194,7 +244,7 @@ Given that feature description, do this:
194244
195245
## Notes
196246
197-
- Items marked incomplete require spec updates before `/spec.clarify` or `/spec.plan`
247+
- Items marked incomplete require spec updates before `__SPECKIT_COMMAND_CLARIFY__` or `__SPECKIT_COMMAND_PLAN__`
198248
```
199249
200250
b. **Run Validation Check**: Review the spec against each checklist item:
@@ -252,7 +302,7 @@ Given that feature description, do this:
252302
- `SPECIFY_FEATURE_DIRECTORY` — the feature directory path
253303
- `SPEC_FILE` — the spec file path
254304
- Checklist results summary
255-
- Readiness for the next phase (`/spec.clarify` or `/spec.plan`)
305+
- Readiness for the next phase (`__SPECKIT_COMMAND_CLARIFY__` or `__SPECKIT_COMMAND_PLAN__`)
256306
257307
9. **Check for extension hooks**: After reporting completion, check if `{REPO_ROOT}/.specify/extensions.yml` exists in the project root.
258308
- If it exists, read it and look for entries under the `hooks.after_specify` key

presets/agentic-sdlc/preset.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ schema_version: "1.0"
33
preset:
44
id: "agentic-sdlc"
55
name: "Agentic SDLC Governance"
6-
version: "1.0.1"
6+
version: "1.0.2"
77
description: "Enhanced templates with governance, team-ai-directives integration, extension hooks, and architectural rigor for the Agentic SDLC workflow"
88
author: "Tikal"
99
repository: "https://github.com/tikalk/agentic-sdlc-spec-kit"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "agentic-sdlc-specify-cli"
3-
version = "0.8.4+adlc5"
3+
version = "0.8.4+adlc6"
44
description = "Specify CLI (tikalk fork). Agentic SDLC toolkit for Spec-Driven Development with pre-installed extensions and AI integrations."
55
requires-python = ">=3.11"
66
dependencies = [

templates/commands/specify.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ Given that feature description, do this:
238238
- Checklist results summary
239239
- Readiness for the next phase (`__SPECKIT_COMMAND_CLARIFY__` or `__SPECKIT_COMMAND_PLAN__`)
240240
241-
8. **Check for extension hooks**: After reporting completion, check if `{REPO_ROOT}/.specify/extensions.yml` exists in the project root.
241+
9. **Check for extension hooks**: After reporting completion, check if `{REPO_ROOT}/.specify/extensions.yml` exists in the project root.
242242
- If it exists, read it and look for entries under the `hooks.after_specify` key
243243
- If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
244244
- Filter out hooks where `enabled` is explicitly `false`. Treat hooks without an `enabled` field as enabled by default.

0 commit comments

Comments
 (0)