Skip to content

Commit 3c5d73f

Browse files
committed
fix: remove issue tracker integration
1 parent 56513d1 commit 3c5d73f

10 files changed

Lines changed: 21 additions & 269 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

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

5+
## [0.3.46] - 2026-04-13
6+
7+
### Changed
8+
9+
- **Removed issue tracker integration**: Cleaned up `@issue-tracker` references and traceability features
10+
- Removed Smart Trace Validation section from `/spec.analyze` command
11+
- Removed issue tracker references from docs/quickstart.md examples
12+
- Removed issue tracker integration from levelup trace scripts and templates
13+
- Removed issue tracker integration from implement command
14+
15+
### Fixed
16+
17+
- **RELEASE.md**: Trimmed to release instructions only (removed Lessons Learned historical debug notes)
18+
519
## [0.3.45] - 2026-04-13
620

721
### Fixed

RELEASE.md

Lines changed: 0 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -221,141 +221,4 @@ git push origin "agentic-sdlc-v$VERSION"
221221
222222
echo "Released agentic-sdlc-v$VERSION"
223223
```
224-
225-
## Lessons Learned
226-
227-
### Session 2026-04-11: Path Resolution Bug
228-
229-
**Problem**: `common.sh` used `$repo_root/memory` but constitution stored in `.specify/memory/`
230-
231-
**Impact**: Validation script failed silently, `get_feature_paths()` returned wrong path
232-
233-
**Fix**: Changed line 318 to `$repo_root/.specify/memory`
234-
235-
**Prevention**: Always verify path consistency between:
236-
- `common.sh` `memory_dir` variable
237-
- Where files are actually stored (`.specify/memory/`)
238-
- Template references
239-
240-
### Session 2026-04-11: Tag Before Version Update
241-
242-
**Problem**: Created tag `agentic-sdlc-v0.3.32` before updating `pyproject.toml`
243-
244-
**Impact**: Tag pointed to commit with wrong version (0.3.31), installation showed old version
245-
246-
**Fix**: Re-tagged at correct commit after updating version file
247-
248-
**Prevention**: Always update `pyproject.toml` BEFORE creating tag
249-
250-
### Session 2026-04-12: Check Remote Before Local Version
251-
252-
**Problem**: Local files showed version `0.3.36` but remote/origin was at `0.3.35`. Attempted to bump to `0.3.37` based on stale local state.
253-
254-
**Impact**: Confusion about which version to release; wasted time correcting version numbers.
255-
256-
**Fix**: Checked `git show origin/main:pyproject.toml` to verify actual remote version.
257-
258-
**Prevention**: Before any release, always verify remote state:
259-
260-
```bash
261-
# Check what's actually pushed (not local state)
262-
git fetch origin
263-
git show origin/main:pyproject.toml | grep "^version"
264-
265-
# Compare with local
266-
cat pyproject.toml | grep "^version"
267-
268-
# Check for uncommitted changes
269-
git status
270-
```
271-
272-
**Key insight**: Local uncommitted changes can make `pyproject.toml` show a different version than what's actually released. Always verify against origin before deciding the next version number.
273-
274-
### Session 2026-04-13: Releasing from a Submodule
275-
276-
**Problem**: When working in a parent repo with spec-kit as a submodule, `git commit` and `git tag` commands run in the wrong directory (parent repo instead of submodule).
277-
278-
**Impact**:
279-
- Tag `agentic-sdlc-v0.3.40` was initially created in the parent repo instead of the spec-kit submodule
280-
- Commands like `git diff --stat` showed changes but `git commit` failed with "no changes added"
281-
282-
**Fix**: Always explicitly set the working directory when releasing from a submodule:
283-
```bash
284-
cd /path/to/agentic-sdlc-spec-kit
285-
git add -A && git commit -m "fix: description"
286-
git tag agentic-sdlc-vX.Y.Z
287-
git push origin main
288-
git push origin agentic-sdlc-vX.Y.Z
289-
```
290-
291-
**Prevention**: Before any release commit/tag operation:
292-
```bash
293-
# Verify you're in the correct directory
294-
pwd # Should show .../agentic-sdlc-spec-kit
295-
296-
# Verify pyproject.toml exists in current directory
297-
ls pyproject.toml
298-
299-
# Then proceed with release
300-
```
301-
302-
**Key insight**: When spec-kit is used as a submodule, always navigate into the submodule directory before running any git operations for releases.
303-
304-
### Session 2026-04-13: Tag Format Convention
305-
306-
**Problem**: Used `v0.3.43` tag format instead of the project's `agentic-sdlc-vX.Y.Z` convention.
307-
308-
**Impact**: Inconsistent tag naming, potential confusion with upstream spec-kit tags.
309-
310-
**Correct format**: `agentic-sdlc-v0.3.43` (not `v0.3.43`)
311-
312-
**Prevention**: Before tagging, verify the format:
313-
```bash
314-
# Check existing tag format
315-
git tag | grep "^agentic-sdlc-v" | sort -V | tail -3
316-
317-
# Use consistent format
318-
git tag agentic-sdlc-vX.Y.Z
319-
```
320-
321-
**Key insight**: This fork uses the `agentic-sdlc-v` prefix to distinguish from upstream `spec-kit` tags.
322-
323-
### Session 2026-04-13: Draft Release Not Visible
324-
325-
**Problem**: The `release.yml` workflow created a release as "Draft", which is not visible on the public releases page.
326-
327-
**Impact**: Release `agentic-sdlc-v0.3.43` existed but showed as "Draft" - users couldn't see it at https://github.com/tikalk/agentic-sdlc-spec-kit/releases
328-
329-
**Fix**: Publish the draft release using the GitHub CLI:
330-
```bash
331-
gh release edit <tag> --draft=false
332-
```
333-
334-
---
335-
336-
### Session 2026-04-13: Hook Commands Should Be Lightweight
337-
338-
**Problem**: The `before_specify` hook pointed to `adlc.product.specify`, a full interactive product exploration command (~535 lines). When no PDRs existed, it still ran and generated noisy AI output like "No PDR file found - skipping Phase 2".
339-
340-
**Impact**: Every `/spec.specify` invocation triggered noisy output even for users not using the product extension workflow.
341-
342-
**Fix**: Created lightweight `adlc.product.link` command that:
343-
- Checks for PDRs in team-directives, memory, and drafts locations
344-
- **Silent exit** if no PDRs exist (no output at all)
345-
- Full selection flow only if PDRs exist
346-
347-
**Prevention**: When creating hooks for commands:
348-
- Design hook-specific commands to be lightweight
349-
- Use silent exit patterns when data doesn't exist
350-
- Don't use full interactive commands as hooks (too much noise)
351-
- Consider the "no data" case as the default, not an error
352-
353-
**Prevention**: After tagging and pushing, verify the release is visible. If it shows as "Draft" in `gh release list`, publish it:
354-
```bash
355-
# Check release status
356-
gh release list
357-
358-
# If draft, publish it
359-
gh release edit <tag> --draft=false
360-
```
361224
```

docs/quickstart.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ This guide will help you get started with Spec-Driven Development using Agentic
3333
**Alignment with 12 Factors:** This stage focuses on [III. Mission Definition](https://tikalk.github.io/agentic-sdlc-12-factors/content/mission-definition.html), translating intent into formal, version-controlled specifications.
3434

3535
1. **Craft the Directive (`/specify`)**
36-
**Action:** Author a single, comprehensive natural-language directive that blends the issue tracker mission, personas, constraints, and any clarifications.
36+
**Action:** Author a single, comprehensive natural-language directive that blends the mission, personas, constraints, and any clarifications.
3737
**Purpose:** Front-load human judgment so the AI can draft an accurate `spec.md` aligned with the constitution.
3838
2. **Execute the Command**
39-
**Action:** Run `/specify` in the IDE; Agentic SDLC Spec Kit loads `memory/constitution.md`, resolves `@team/...` references against the directives repo, and captures any `@issue-tracker ISSUE-###` reference in the prompt so the resulting spec links back to the originating ticket.
40-
**Purpose:** Generates the structured specification artifact under `specs/<feature>/spec.md` with shared principles and traceability already in context.
39+
**Action:** Run `/specify` in the IDE; Agentic SDLC Spec Kit loads `memory/constitution.md`, resolves `@team/...` references against the directives repo.
40+
**Purpose:** Generates the structured specification artifact under `specs/<feature>/spec.md` with shared principles already in context.
4141
3. **Review and Commit**
4242
**Action:** Perform a macro-review of the generated `spec.md`, refine if needed, then commit it.
4343
**Purpose:** Locks in the requirements that all later stages will honor.
4444

4545
**Example Command:**
4646

4747
```text
48-
/specify "Generate the specification for the feature in @issue-tracker ISSUE-123. The target user is the @team/personas/data_analyst.md. The operation must be asynchronous to handle large dashboards. The PDF title must include the dashboard name and an export timestamp."
48+
/specify "Generate the specification for a feature. The target user is the @team/personas/data_analyst.md. The operation must be asynchronous to handle large dashboards. The PDF title must include the dashboard name and an export timestamp."
4949
```
5050

5151
**Outcome:** A committed `spec.md` ready to drive planning in Stage 2.

extensions/levelup/commands/trace.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ Human-friendly 3-part narrative placed at the top:
8484
- Testing strategy (TDD, risk-based)
8585
- Process decisions (SYNC/ASYNC breakdown)
8686
- Integration choices (APIs, external services)
87-
- Issue tracking integration
8887
- Dynamic count based on feature complexity
8988
- Example: "1. Chose React with TypeScript 2. Implemented TDD approach 3. Applied dual execution loop..."
9089

@@ -94,7 +93,6 @@ Human-friendly 3-part narrative placed at the top:
9493
- Quality gate pass rate
9594
- User story completion count
9695
- Commit reference
97-
- Issue tracker count
9896
- Example: "Delivered implementation with 8/8 quality gates passed (100%). All 4 user stories validated. Documented in commit a1b2c3d."
9997

10098
---
@@ -127,7 +125,6 @@ Human-friendly 3-part narrative placed at the top:
127125
#### Section 5: Evidence Links
128126

129127
- Implementation commits and messages
130-
- Issue tracker references (@issue-tracker links)
131128
- Modified code paths
132129
- Feature artifact locations
133130

extensions/levelup/scripts/bash/generate-trace.sh

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,6 @@ extract_key_decisions() {
160160
fi
161161
fi
162162

163-
# 6. Issue tracking (if used)
164-
local issue_refs=$(grep -oh '@issue-tracker' "$FEATURE_SPEC" "$IMPL_PLAN" "$TASKS" 2>/dev/null | wc -l)
165-
if [[ $issue_refs -gt 0 ]]; then
166-
decisions+=("Integrated issue tracking with $issue_refs @issue-tracker references for traceability")
167-
decision_count=$((decision_count + 1))
168-
fi
169-
170163
# Format as numbered list (dynamic count based on what we found)
171164
local output=""
172165
for i in "${!decisions[@]}"; do
@@ -221,14 +214,6 @@ extract_final_solution() {
221214
fi
222215
fi
223216

224-
# Add issue tracker count
225-
local issue_count=$(grep -oh '@issue-tracker' "$FEATURE_SPEC" "$IMPL_PLAN" "$TASKS" 2>/dev/null | wc -l)
226-
if [[ $issue_count -gt 0 ]]; then
227-
solution+=" with $issue_count supporting issue tracker references."
228-
else
229-
solution+="."
230-
fi
231-
232217
echo "$solution"
233218
}
234219

@@ -383,16 +368,6 @@ extract_evidence_links() {
383368
fi
384369
fi
385370

386-
# Extract issue references from spec/plan/tasks
387-
local issue_refs=$(grep -oh '@issue-tracker [A-Z0-9\-#]\+' "$FEATURE_SPEC" "$IMPL_PLAN" "$TASKS" 2>/dev/null | sort -u | sed 's/@issue-tracker //' || echo "")
388-
if [[ -n "$issue_refs" ]]; then
389-
evidence+="**Issue References**:\n"
390-
while IFS= read -r issue; do
391-
evidence+="- $issue\n"
392-
done <<< "$issue_refs"
393-
evidence+="\n"
394-
fi
395-
396371
# List modified files from tasks_meta.json
397372
local file_list=$(jq -r '.tasks[] | .files[]?' "$TASKS_META_FILE" 2>/dev/null | sort -u | head -10)
398373
if [[ -n "$file_list" ]]; then

extensions/levelup/scripts/powershell/generate-trace.ps1

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ function Extract-ProblemStatement {
8383

8484
# Get all user stories from spec
8585
$specContent = Get-Content $paths.FEATURE_SPEC -Raw
86-
$userStoryMatches = [regex]::Matches($specContent, '(?i)(As a user|User story|As an|As a).*?(?=\n|@issue-tracker|$)')
86+
$userStoryMatches = [regex]::Matches($specContent, '(?i)(As a user|User story|As an|As a).*?(?=\n|$)')
8787
$userStories = $userStoryMatches | ForEach-Object { $_.Value.Trim() } | Select-Object -First 5
8888

8989
# Build problem statement
@@ -157,17 +157,6 @@ function Extract-KeyDecisions {
157157
}
158158

159159
# 6. Issue tracking
160-
$issueRefs = 0
161-
foreach ($file in @($paths.FEATURE_SPEC, $paths.IMPL_PLAN, $paths.TASKS)) {
162-
if (Test-Path $file) {
163-
$content = Get-Content $file -Raw
164-
$issueRefs += ([regex]::Matches($content, '@issue-tracker')).Count
165-
}
166-
}
167-
if ($issueRefs -gt 0) {
168-
$decisions += "Integrated issue tracking with $issueRefs @issue-tracker references for traceability"
169-
}
170-
171160
# Format as numbered list
172161
$output = ""
173162
for ($i = 0; $i -lt $decisions.Count; $i++) {
@@ -229,20 +218,6 @@ function Extract-FinalSolution {
229218
}
230219
}
231220

232-
# Add issue tracker count
233-
$issueCount = 0
234-
foreach ($file in @($paths.FEATURE_SPEC, $paths.IMPL_PLAN, $paths.TASKS)) {
235-
if (Test-Path $file) {
236-
$content = Get-Content $file -Raw
237-
$issueCount += ([regex]::Matches($content, '@issue-tracker')).Count
238-
}
239-
}
240-
if ($issueCount -gt 0) {
241-
$solution += " with $issueCount supporting issue tracker references."
242-
} else {
243-
$solution += "."
244-
}
245-
246221
return $solution
247222
}
248223

@@ -406,27 +381,6 @@ function Extract-EvidenceLinks {
406381
}
407382
}
408383

409-
# Extract issue references
410-
$issueRefs = @()
411-
foreach ($file in @($paths.FEATURE_SPEC, $paths.IMPL_PLAN, $paths.TASKS)) {
412-
if (Test-Path $file) {
413-
$content = Get-Content $file -Raw
414-
$matches = [regex]::Matches($content, '@issue-tracker ([A-Z0-9\-#]+)')
415-
foreach ($match in $matches) {
416-
$issueRefs += $match.Groups[1].Value
417-
}
418-
}
419-
}
420-
$issueRefs = $issueRefs | Select-Object -Unique
421-
422-
if ($issueRefs.Count -gt 0) {
423-
$evidence += "**Issue References**:`n"
424-
foreach ($issue in $issueRefs) {
425-
$evidence += "- $issue`n"
426-
}
427-
$evidence += "`n"
428-
}
429-
430384
# List modified files
431385
$fileList = @()
432386
foreach ($task in $tasksMetaContent.tasks.PSObject.Properties.Value) {

extensions/levelup/templates/trace-template.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ Chronological list of significant decisions made during implementation. Includes
3030
1. Chose React with TypeScript for type-safe component development
3131
2. Implemented TDD approach with 90%+ code coverage requirement
3232
3. Applied dual execution loop with 5 SYNC (micro-reviewed) and 3 ASYNC (agent-delegated) tasks
33-
4. Integrated issue tracking with 6 @issue-tracker references for traceability
3433

3534
### Final Solution
3635

@@ -158,12 +157,6 @@ References to implementation artifacts, commits, issues, and code paths for trac
158157
- Message: {COMMIT_MESSAGE}
159158
- Date: {COMMIT_DATE}
160159

161-
**Issue References**:
162-
163-
- {ISSUE_1}
164-
- {ISSUE_2}
165-
- ... (all @issue-tracker references from artifacts)
166-
167160
**Code Paths Modified**:
168161

169162
- {FILE_1}

0 commit comments

Comments
 (0)