From 2c82fa96d04affa7e087fc67e3244f9ab721734a Mon Sep 17 00:00:00 2001 From: Pete Crocker Date: Fri, 3 Apr 2026 12:19:46 +0100 Subject: [PATCH 1/2] move specs/ to dev/specs/ and replace with symlink Resolves merge conflict with infrahub-develop where specs is a symlink to dev/specs. Moves spec files to dev/specs/ and creates the symlink so both branches agree on the structure. --- {specs => dev/specs}/001-end-user-cli/checklists/requirements.md | 0 {specs => dev/specs}/001-end-user-cli/contracts/cli-commands.md | 0 {specs => dev/specs}/001-end-user-cli/data-model.md | 0 {specs => dev/specs}/001-end-user-cli/plan.md | 0 {specs => dev/specs}/001-end-user-cli/quickstart.md | 0 {specs => dev/specs}/001-end-user-cli/research.md | 0 {specs => dev/specs}/001-end-user-cli/spec.md | 0 {specs => dev/specs}/001-end-user-cli/tasks.md | 0 specs | 1 + 9 files changed, 1 insertion(+) rename {specs => dev/specs}/001-end-user-cli/checklists/requirements.md (100%) rename {specs => dev/specs}/001-end-user-cli/contracts/cli-commands.md (100%) rename {specs => dev/specs}/001-end-user-cli/data-model.md (100%) rename {specs => dev/specs}/001-end-user-cli/plan.md (100%) rename {specs => dev/specs}/001-end-user-cli/quickstart.md (100%) rename {specs => dev/specs}/001-end-user-cli/research.md (100%) rename {specs => dev/specs}/001-end-user-cli/spec.md (100%) rename {specs => dev/specs}/001-end-user-cli/tasks.md (100%) create mode 120000 specs diff --git a/specs/001-end-user-cli/checklists/requirements.md b/dev/specs/001-end-user-cli/checklists/requirements.md similarity index 100% rename from specs/001-end-user-cli/checklists/requirements.md rename to dev/specs/001-end-user-cli/checklists/requirements.md diff --git a/specs/001-end-user-cli/contracts/cli-commands.md b/dev/specs/001-end-user-cli/contracts/cli-commands.md similarity index 100% rename from specs/001-end-user-cli/contracts/cli-commands.md rename to dev/specs/001-end-user-cli/contracts/cli-commands.md diff --git a/specs/001-end-user-cli/data-model.md b/dev/specs/001-end-user-cli/data-model.md similarity index 100% rename from specs/001-end-user-cli/data-model.md rename to dev/specs/001-end-user-cli/data-model.md diff --git a/specs/001-end-user-cli/plan.md b/dev/specs/001-end-user-cli/plan.md similarity index 100% rename from specs/001-end-user-cli/plan.md rename to dev/specs/001-end-user-cli/plan.md diff --git a/specs/001-end-user-cli/quickstart.md b/dev/specs/001-end-user-cli/quickstart.md similarity index 100% rename from specs/001-end-user-cli/quickstart.md rename to dev/specs/001-end-user-cli/quickstart.md diff --git a/specs/001-end-user-cli/research.md b/dev/specs/001-end-user-cli/research.md similarity index 100% rename from specs/001-end-user-cli/research.md rename to dev/specs/001-end-user-cli/research.md diff --git a/specs/001-end-user-cli/spec.md b/dev/specs/001-end-user-cli/spec.md similarity index 100% rename from specs/001-end-user-cli/spec.md rename to dev/specs/001-end-user-cli/spec.md diff --git a/specs/001-end-user-cli/tasks.md b/dev/specs/001-end-user-cli/tasks.md similarity index 100% rename from specs/001-end-user-cli/tasks.md rename to dev/specs/001-end-user-cli/tasks.md diff --git a/specs b/specs new file mode 120000 index 00000000..cc917769 --- /dev/null +++ b/specs @@ -0,0 +1 @@ +dev/specs \ No newline at end of file From 55788b246b78970adc6e913b47736872d1bf5876 Mon Sep 17 00:00:00 2001 From: Pete Crocker Date: Fri, 3 Apr 2026 15:55:45 +0100 Subject: [PATCH 2/2] remove specs symlink, update all references to dev/specs The symlink from specs/ -> dev/specs/ was redundant. Remove it and update all path references in templates, scripts, and spec documents to use dev/specs/ directly. --- .specify/scripts/bash/common.sh | 8 ++++---- .specify/templates/plan-template.md | 4 ++-- .specify/templates/tasks-template.md | 2 +- dev/commands/speckit.specify.md | 2 +- dev/specs/001-end-user-cli/plan.md | 4 ++-- dev/specs/001-end-user-cli/tasks.md | 2 +- specs | 1 - 7 files changed, 11 insertions(+), 12 deletions(-) delete mode 120000 specs diff --git a/.specify/scripts/bash/common.sh b/.specify/scripts/bash/common.sh index 2c3165e4..4fbf4a3f 100755 --- a/.specify/scripts/bash/common.sh +++ b/.specify/scripts/bash/common.sh @@ -28,7 +28,7 @@ get_current_branch() { # For non-git repos, try to find the latest feature directory local repo_root=$(get_repo_root) - local specs_dir="$repo_root/specs" + local specs_dir="$repo_root/dev/specs" if [[ -d "$specs_dir" ]]; then local latest_feature="" @@ -81,14 +81,14 @@ check_feature_branch() { return 0 } -get_feature_dir() { echo "$1/specs/$2"; } +get_feature_dir() { echo "$1/dev/specs/$2"; } # Find feature directory by numeric prefix instead of exact branch match # This allows multiple branches to work on the same spec (e.g., 004-fix-bug, 004-add-feature) find_feature_dir_by_prefix() { local repo_root="$1" local branch_name="$2" - local specs_dir="$repo_root/specs" + local specs_dir="$repo_root/dev/specs" # Extract numeric prefix from branch (e.g., "004" from "004-whatever") if [[ ! "$branch_name" =~ ^([0-9]{3})- ]]; then @@ -99,7 +99,7 @@ find_feature_dir_by_prefix() { local prefix="${BASH_REMATCH[1]}" - # Search for directories in specs/ that start with this prefix + # Search for directories in dev/specs/ that start with this prefix local matches=() if [[ -d "$specs_dir" ]]; then for dir in "$specs_dir"/"$prefix"-*; do diff --git a/.specify/templates/plan-template.md b/.specify/templates/plan-template.md index 6a8bfc6c..4e96d2ad 100644 --- a/.specify/templates/plan-template.md +++ b/.specify/templates/plan-template.md @@ -1,7 +1,7 @@ # Implementation Plan: [FEATURE] **Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link] -**Input**: Feature specification from `/specs/[###-feature-name]/spec.md` +**Input**: Feature specification from `/dev/specs/[###-feature-name]/spec.md` **Note**: This template is filled in by the `/speckit.plan` command. See `.specify/templates/commands/plan.md` for the execution workflow. @@ -38,7 +38,7 @@ ### Documentation (this feature) ```text -specs/[###-feature]/ +dev/specs/[###-feature]/ ├── plan.md # This file (/speckit.plan command output) ├── research.md # Phase 0 output (/speckit.plan command) ├── data-model.md # Phase 1 output (/speckit.plan command) diff --git a/.specify/templates/tasks-template.md b/.specify/templates/tasks-template.md index 60f9be45..44fe7600 100644 --- a/.specify/templates/tasks-template.md +++ b/.specify/templates/tasks-template.md @@ -5,7 +5,7 @@ description: "Task list template for feature implementation" # Tasks: [FEATURE NAME] -**Input**: Design documents from `/specs/[###-feature-name]/` +**Input**: Design documents from `/dev/specs/[###-feature-name]/` **Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/ **Tests**: The examples below include test tasks. Tests are OPTIONAL - only include them if explicitly requested in the feature specification. diff --git a/dev/commands/speckit.specify.md b/dev/commands/speckit.specify.md index 49abdcb7..467c4aa1 100644 --- a/dev/commands/speckit.specify.md +++ b/dev/commands/speckit.specify.md @@ -47,7 +47,7 @@ Given that feature description, do this: b. Find the highest feature number across all sources for the short-name: - Remote branches: `git ls-remote --heads origin | grep -E 'refs/heads/[0-9]+-$'` - Local branches: `git branch | grep -E '^[* ]*[0-9]+-$'` - - Specs directories: Check for directories matching `specs/[0-9]+-` + - Specs directories: Check for directories matching `dev/specs/[0-9]+-` c. Determine the next available number: - Extract all numbers from all three sources diff --git a/dev/specs/001-end-user-cli/plan.md b/dev/specs/001-end-user-cli/plan.md index 6a9ab683..daf286b9 100644 --- a/dev/specs/001-end-user-cli/plan.md +++ b/dev/specs/001-end-user-cli/plan.md @@ -1,7 +1,7 @@ # Implementation Plan: End-User CLI (`infrahubctl` CRUD commands) **Branch**: `001-end-user-cli` | **Date**: 2026-03-28 | **Updated**: 2026-04-02 | **Spec**: [spec.md](spec.md) -**Input**: Feature specification from `specs/001-end-user-cli/spec.md` +**Input**: Feature specification from `dev/specs/001-end-user-cli/spec.md` ## Summary @@ -42,7 +42,7 @@ No violations. No complexity tracking needed. ### Documentation (this feature) ```text -specs/001-end-user-cli/ +dev/specs/001-end-user-cli/ ├── plan.md # This file ├── spec.md # Feature specification ├── research.md # Phase 0 research findings diff --git a/dev/specs/001-end-user-cli/tasks.md b/dev/specs/001-end-user-cli/tasks.md index 8d45dae0..50b461f4 100644 --- a/dev/specs/001-end-user-cli/tasks.md +++ b/dev/specs/001-end-user-cli/tasks.md @@ -1,6 +1,6 @@ # Tasks: End-User CLI (`infrahubctl` command) -**Input**: Design documents from `/specs/001-end-user-cli/` +**Input**: Design documents from `/dev/specs/001-end-user-cli/` **Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/ **Tests**: Tests are REQUIRED per FR-015. Unit tests for all public functions, integration tests for Infrahub server interactions. diff --git a/specs b/specs deleted file mode 120000 index cc917769..00000000 --- a/specs +++ /dev/null @@ -1 +0,0 @@ -dev/specs \ No newline at end of file