Skip to content

Commit 16b6ff7

Browse files
committed
Merge backup-main-20260413: recover architect v2.0.0, TDD hooks, extension fixes
Merged: extensions/catalog.json - resolved conflict (added bundled: true) pyproject.toml - resolved version conflict src/specify_cli/__init__.py - resolved import conflict src/specify_cli/agents.py - added fork-specific compute_skill_output_name, yaml format support, path traversal checks templates/commands/constitution.md - resolved path conflict templates/commands/specify.md - resolved path conflict
2 parents fdcd321 + 2f28a65 commit 16b6ff7

119 files changed

Lines changed: 8619 additions & 2973 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
## Install
6767
6868
\`\`\`bash
69-
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@${VERSION}
69+
uv tool install agentic-sdlc-specify-cli --from git+https://github.com/tikalk/agentic-sdlc-spec-kit.git@${VERSION}
7070
specify init my-project
7171
\`\`\`
7272

.markdownlint.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"default": true,
33
"MD013": false,
44
"MD033": false,
5+
"MD036": false,
56
"MD041": false,
67
"MD024": {
78
"siblings_only": true

CHANGELOG.md

Lines changed: 302 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,309 @@
22

33
All notable changes to the Specify CLI and templates are documented here.
44

5+
## [0.3.48] - 2026-04-13
6+
7+
### Added
8+
9+
- **TDD extension hooks**: Added `after_plan` hook for `tdd.plan` command (optional)
10+
- **TDD extension hooks**: Added `after_implement` hook for `tdd.validate` command (optional)
11+
12+
### Changed
13+
14+
- **TDD extension hooks**: `tdd.implement` now triggers on `before_implement` instead of `after_implement` - ensures TDD cycle runs BEFORE implementation (RED→GREEN→REFACTOR)
15+
- **Hook re-registration fix**: Fixed bug where hooks weren't updated when extension.yml was modified
16+
- Now compares both version AND manifest hash to trigger re-registration
17+
- This ensures hooks get updated when extension.yml changes, even if version wasn't bumped
18+
19+
## [0.3.47] - 2026-04-13
20+
21+
### Fixed
22+
23+
- **Extension script path bug**: Fixed session execution failure caused by incorrect path rewriting
24+
- Extension command files used relative paths like `scripts/bash/setup-architect.sh`
25+
- The `rewrite_project_relative_paths()` function rewrites `scripts/` to `.specify/scripts/`
26+
- But extension scripts are actually at `.specify/extensions/<ext>/scripts/`
27+
- Changed 22 extension command files across 4 extensions to use fully-qualified paths
28+
- Affected extensions: architect (5 files), product (7 files), levelup (7 files), tdd (3 files)
29+
- Fix uses `.specify/extensions/<ext>/scripts/...` paths which bypass the rewriting bug
30+
31+
## [0.3.46] - 2026-04-13
32+
33+
### Changed
34+
35+
- **Removed issue tracker integration**: Cleaned up `@issue-tracker` references and traceability features
36+
- Removed Smart Trace Validation section from `/spec.analyze` command
37+
- Removed issue tracker references from docs/quickstart.md examples
38+
- Removed issue tracker integration from levelup trace scripts and templates
39+
- Removed issue tracker integration from implement command
40+
41+
### Fixed
42+
43+
- **RELEASE.md**: Trimmed to release instructions only (removed Lessons Learned historical debug notes)
44+
45+
## [0.3.45] - 2026-04-13
46+
47+
### Fixed
48+
49+
- **check-prerequisites.sh/ps1**: Fixed undefined `$ARCHITECTURE` variable bug
50+
- `common.sh` was refactored to export `AD` (path to `AD.md`) but `check-prerequisites.sh` still referenced undefined `$ARCHITECTURE`
51+
- Renamed JSON output fields: `ARCHITECTURE_*``AD_*` (`AD_EXISTS`, `AD_VIEWS`, `AD_DIAGRAMS`)
52+
- Updated PowerShell `common.ps1` to remove legacy `ARCHITECTURE` export
53+
- Updated `adlc.spec.clarify.md` command to parse new field names
54+
- Architecture Alignment pillar in `/spec.clarify` now correctly detects `AD.md` when architect extension is activated
55+
56+
## [0.3.44] - 2026-04-13
57+
58+
### Changed
59+
60+
- **Product extension before_specify hook**: Replaced noisy `adlc.product.specify` with lightweight `adlc.product.link`
61+
- New command silently exits if no PDRs exist (eliminates "No PDR file found" AI output)
62+
- If PDRs exist, presents selection table to link feature to Feature PDR
63+
- Reduces spurious output for users not using product extension workflow
64+
65+
### Added
66+
67+
- **New command `adlc.product.link`**: Lightweight PDR linking command designed for hook use
68+
- Checks team-directives, memory, and drafts locations for PDRs
69+
- Silent exit if no PDRs found
70+
- Full selection flow if PDRs exist
71+
72+
## [0.3.43] - 2026-04-13
73+
74+
### Fixed
75+
76+
- **Claude Code slash commands**: Fixed preset and extension command naming for slash command invocation
77+
- Added `compute_skill_output_name()` function in `cli_customization.py` with fork-specific namespace handling
78+
- Preset commands with `adlc.spec.*` prefix now generate `/adlc-spec-*` instead of `/speckit-adlc-spec-*`
79+
- Preset alias commands with `spec.*` prefix now generate `/spec-*` instead of `/speckit-spec-*`
80+
- Extension commands (e.g., `adlc.architect.init`) similarly now generate `/adlc-architect-init` instead of `/speckit-adlc-architect-init`
81+
- Root cause: `_compute_output_name()` in `agents.py` always prepended `speckit-` regardless of command namespace
82+
83+
## [0.3.42] - 2026-04-13
84+
85+
### Fixed
86+
87+
- **Bundled extension hooks**: Register hooks during `specify init`
88+
- Added `hook_executor.register_hooks(manifest)` in `_install_bundled_extensions()`
89+
- Creates `.specify/extensions.yml` when bundled extensions (architect, product, tdd) have hooks
90+
- Aligns fork behavior with upstream `install_from_directory()` method
91+
- Root cause: Custom bundled extension installation path was missing hook registration step
92+
93+
## [0.3.41] - 2026-04-13
94+
95+
### Fixed
96+
97+
- **adlc.spec.plan**: Plan command now creates all required artifacts
98+
- Added imperative Outline section with explicit "CREATE" instructions for each artifact
99+
- Fixed bug where agent only wrote plan.md but didn't generate research.md, data-model.md, contracts/, or quickstart.md
100+
- Removed ~150 lines of legacy feature architecture content (moved to architect extension hooks)
101+
- Consolidated duplicate phase numbering (removed "Core Workflow" Phase 1-2, kept "Phases" Phase 0-1)
102+
- Trimmed Triage Framework section from 70 lines to 20 essential criteria
103+
- File size reduced from 421 lines to 296 lines (30% reduction)
104+
- Root cause: Missing clear execution instructions; agent interpreted phases as documentation rather than actionable steps
105+
106+
## [0.3.40] - 2026-04-13
107+
108+
### Fixed
109+
110+
- **spec.specify hooks**: Align hook event names with upstream template convention
111+
- Changed product extension hooks from `before_spec`/`after_spec` to `before_specify`/`after_specify`
112+
- Matches `templates/commands/specify.md` and `EXTENSION-API-REFERENCE.md` naming
113+
- Fixes hooks not triggering due to naming mismatch
114+
115+
- **adlc.spec.specify**: Remove inline Phase 2 PDR selection (now hook-only)
116+
- Removed "Phase 2: PDR Reference Selection" from preset command
117+
- PDR selection now exclusively handled by `before_specify` hook (`adlc.product.specify`)
118+
- Added Pre-Execution Checks and Post-Execution Hooks sections
119+
- Eliminates spurious "No PDR file found - skipping Phase 2" AI output
120+
- Mission Brief workflow preserved (agentic-sdlc enhancement)
121+
122+
## [0.3.39] - 2026-04-13
123+
124+
### Fixed
125+
126+
- **Preset commands for markdown agents**: Resolve `{SCRIPT}` placeholders correctly
127+
- Preset commands registered for markdown-based agents (opencode, claude, windsurf, etc.) now properly replace `{SCRIPT}` with actual script paths
128+
- Previously, `{SCRIPT}` was only resolved for skill-based agents (codex, kimi)
129+
- Root cause: `register_commands()` in `agents.py` didn't call `resolve_skill_placeholders()` for non-skill agents
130+
131+
## [0.3.38] - 2026-04-13
132+
133+
### Fixed
134+
135+
- **adlc.spec.constitution**: Simplified command from 199 to 88 lines
136+
- Removed `validation_scripts:` section (wasn't being path-rewritten by CLI)
137+
- Replaced complex 4-phase "Constitution Architect" workflow with 9 clear steps
138+
- Aligned structure with upstream `templates/commands/constitution.md`
139+
- Preserved team constitution inheritance feature
140+
- Root cause: Complex multi-phase instructions caused models to skip script execution and write to wrong file paths
141+
5142
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6-
and this project adheres to to [Semantic Versioning](https://semver.org/spec/v2.0.0/).
143+
and this project adheres to to [Semantic Versioning](https://semver.spec/v2.0.0/).
144+
145+
## [0.3.36] - 2026-04-12
146+
147+
### Fixed
148+
149+
- **--team-ai-directives**: Persist to init-options.json (upstream standard) + read from all scripts
150+
- pre_init() saves team_ai_directives to .specify/init-options.json (not config.json)
151+
- bash scripts: load_team_directives_config() in common.sh reads from init-options.json
152+
- PowerShell scripts: Load-TeamDirectivesConfig() in common.ps1 reads from init-options.json
153+
- Extension scripts (both bash/PS) use centralized functions
154+
- Falls back to memory location if not in init-options.json
155+
156+
Scripts fixed:
157+
- src/specify_cli/cli_customization.py - save to init-options.json
158+
- scripts/bash/common.sh - load_team_directives_config()
159+
- scripts/bash/create-new-feature.sh
160+
- scripts/bash/setup-plan.sh
161+
- scripts/powershell/common.ps1 - Load-TeamDirectivesConfig()
162+
- scripts/powershell/create-new-feature.ps1
163+
- scripts/powershell/setup-plan.ps1
164+
- scripts/powershell/setup-constitution.ps1
165+
- extensions/*/scripts/bash/setup-*.sh
166+
- extensions/*/scripts/powershell/setup-*.ps1
167+
168+
## [0.3.31] - 2026-04-10
169+
170+
### Fixed
171+
172+
- **scaffold extensions**: Always overwrite existing files on re-init
173+
- Previously skipped scaffold if extension.yml existed
174+
- Now copies all files from source, overwriting existing
175+
- Fixes v1.1.4 extensions not updating over v1.1.3
176+
177+
## [0.3.30] - 2026-04-10
178+
179+
### Fixed
180+
181+
- **bundled extensions**: Version comparison during init/re-init
182+
- Compare installed vs bundled version when scaffolding extensions
183+
- Update to newer version if bundled is higher
184+
- Previously skipped all existing extensions preventing updates
185+
- Fixes workflow where implement skipped all ADRs due to wrong status
186+
187+
## [0.3.28] - 2026-04-10
188+
189+
### Fixed
190+
191+
- **init workflow**: Remove all auto-trigger references to clarify
192+
- Clarify is now a manual step you run after init
193+
- Prevents hidden sub-agent calls during brownfield analysis
194+
- Updated Description and Output sections to reflect manual flow
195+
196+
### Changed
197+
198+
- **clarify workflow**: Add ADR/PDR approval step before implement
199+
- Added Phase 5.5 to ask users to approve ADRs/PDRs
200+
201+
## [0.3.29] - 2026-04-10
202+
203+
### Changed
204+
205+
- **spec.plan Phase 1**: Clarify interface contracts scope
206+
- More general: libraries, CLI, web services, parsers, UI
207+
- Skip internal-only projects
208+
- Only "Accepted" status records processed by implement
209+
- Fixes workflow where implement skipped all ADRs due to wrong status
210+
211+
## [0.3.24] - 2026-04-09
212+
213+
### Changed
214+
215+
- **preset commands**: Updated next steps suggestions to use command aliases
216+
- Replaced full command names (`/adlc.spec.*`) with shorter aliases (`/spec.*`)
217+
- Updated in `adlc.spec.plan.md` and `adlc.spec.specify.md`
218+
- Improves user experience with shorter, more intuitive command suggestions
219+
220+
## [0.3.23] - 2026-04-09
221+
222+
### Changed
223+
224+
- **levelup extension**: Fixed missing remote tag to trigger release
225+
226+
## [0.3.22] - 2026-04-09
227+
228+
### Changed
229+
230+
- **levelup.clarify**: Simplified UX to align with architect.clarify and product.clarify patterns
231+
- Removed auto-assessment phase (no pre-computed validity/scope/coverage)
232+
- Replaced batch overview with simple gap identification table
233+
- Simplified action picker: Accept/Reject/Defer (removed Investigate/Split)
234+
- Aligned session limits: 5 clarifications total (like architect/product)
235+
- Inline questions when gaps detected (no separate Investigate action)
236+
- Updated documentation: added CDR Quality Checklist
237+
- 31% line reduction: 694 → 478 lines
238+
239+
## [0.3.21] - 2026-04-09
240+
241+
### Fixed
242+
243+
- **architect extension v1.0.1**: Fixed misleading documentation about `--architecture` flag
244+
- Removed references to non-existent flag from command documentation
245+
- Correctly documented hook-based feature architecture integration
246+
- Updated all "When NOT to Use" sections with accurate guidance
247+
- Feature architecture now correctly documented as `before_plan` hook in `.specify/extensions.yml`
248+
249+
## [0.3.20] - 2026-04-09
250+
251+
### Changed
252+
253+
- **product extension v1.0.2**: Removed hardcoded architect handoff, now uses hooks-only integration
254+
- Extensions are fully decoupled - external references only via project-level hooks
255+
- If architect is not installed, no reference to it exists in product workflow
256+
257+
### Fixed
258+
259+
- **Extension coupling**: Product extension no longer has hardcoded references to other extensions
260+
- Cross-extension integration now exclusively through `.specify/extensions.yml` hooks configuration
261+
- Follows best practice for extension architecture
262+
263+
## [0.3.19] - 2026-04-09
264+
265+
### Added
266+
267+
- **specify skill commands**: Restored skill package manager CLI commands that were removed
268+
during upstream merge. Available commands:
269+
- `specify skill search <query>` - Search skills registry
270+
- `specify skill install <ref>` - Install from GitHub/GitLab/local
271+
- `specify skill update [name|--all]` - Update installed skills
272+
- `specify skill remove <name>` - Uninstall a skill
273+
- `specify skill list` - Show installed skills
274+
- `specify skill eval <path>` - Evaluate skill quality
275+
- `specify skill sync-team` - Sync with team manifest
276+
- `specify skill check-updates` - Check for available updates
277+
- `specify skill config [key] [value]` - View/modify configuration
278+
- **specify skill theming**: Commands now use Tikalk orange accent color
279+
- **specify skill tests**: Added test suite for skill CLI commands
280+
281+
### Fixed
282+
283+
- **httpx dependency**: Added missing httpx dependency required by skills module
284+
(was causing "Skills module not available" error)
285+
- Implementation follows fork pattern: CLI commands in `cli_customization.py`,
286+
core logic reuses existing `skills/` module
287+
288+
## [0.3.18] - 2026-04-09
289+
290+
### Added
291+
292+
- **ADLC preset path validation**: Added explicit path validation and non-git repository
293+
support to all ADLC preset commands to prevent AI agents from writing files to project
294+
root instead of the correct `specs/<branch>/` directory
295+
- adlc.spec.specify.md
296+
- adlc.spec.plan.md
297+
- adlc.spec.tasks.md
298+
- adlc.spec.implement.md
299+
- adlc.spec.checklist.md
300+
- adlc.spec.analyze.md
301+
- adlc.spec.clarify.md
302+
- adlc.spec.constitution.md
303+
304+
### Non-Git Repository Support
305+
306+
- All ADLC commands now include guidance for setting `SPECIFY_FEATURE` environment
307+
variable when working without git
7308

8309
## [0.4.2] - 2026-04-13
9310

README.md

Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ Together, they form a complete methodology that transforms how organizations app
2525
The original [github/spec-kit](https://github.com/github/spec-kit) repository focused on the core Spec-Driven Development process. This fork extends that foundation by:
2626

2727
- **Integrating the 12 Factors methodology** as the strategic layer above the tactical Spec-Driven process
28-
- **Adding enterprise-grade features** like team AI directives and MCP server integration
29-
- **Enhancing tooling** with advanced CLI options, async agent support, comprehensive issue tracker integration
28+
- **Adding enterprise-grade features** like team AI directives integration
29+
- **Enhancing tooling** with dual execution loop support (SYNC/ASYNC task classification)
3030
- **Implementing AI session context management** through the levelup command that creates reusable knowledge packets and analyzes contributions to team directives
3131
- **Providing team templates** and best practices for scaling AI-assisted development across teams
3232

@@ -280,52 +280,6 @@ team-ai-directives/
280280

281281
The toolkit includes architecture documentation support via the **Architect extension** (creates ADRs and Architecture Descriptions). Bundled and auto-installed during `specify init`. See the [Extensions section](#-extensions) for details.
282282

283-
### Framework Options
284-
285-
The spec-kit supports the following framework options, configurable during feature creation:
286-
287-
| Option | Description | Default |
288-
|--------|-------------|---------|
289-
| `--contracts` | Enable service contracts (API schemas, test assertions) | Enabled |
290-
| `--no-contracts` | Disable service contracts | - |
291-
| `--data-models` | Generate data model documentation | Enabled |
292-
| `--no-data-models` | Skip data model generation | - |
293-
294-
**Example**:
295-
```bash
296-
./create-new-feature.sh --contracts --no-data-models "User authentication"
297-
```
298-
299-
**Usage Pattern**:
300-
301-
Set flags during feature creation. The flags are stored in each `spec.md` file and auto-detected by all `/spec.*` commands.
302-
303-
**Example in spec.md**:
304-
```markdown
305-
## Framework Options
306-
307-
contracts=true
308-
data_models=false
309-
```
310-
311-
**Workflow Integration**:
312-
313-
| Feature | Architecture Location | Activation |
314-
|---------|----------------------|-------------|
315-
| Feature ADRs (pre-plan) | before_plan hook (architect extension) | Generates feature-level ADRs if adr.md exists |
316-
| Architecture validation (post-plan) | after_plan hook (architect extension) | architect.validate validates plan alignment |
317-
| Plan generation | plan.md core command | Executes data model + UX validation (inline) |
318-
319-
**Advanced Features** (extension-based):
320-
321-
| Feature | Extension | Activation |
322-
|---------|-----------|-------------|
323-
| Test-Driven Development (TDD) | tdd extension | Hooks activate after /spec.tasks, /spec.implement |
324-
| Architecture integration | architect extension | before_plan (create ADRs), after_plan (validate) |
325-
| Risk-based testing | tdd extension | Part of TDD workflow |
326-
327-
These are extension-based, requiring explicit installation for opt-in behavior.
328-
329283
### 2. Establish project principles
330284

331285
Launch your AI assistant in the project directory. The `/spec.*` commands are available in the assistant.

0 commit comments

Comments
 (0)