@leeovery/claude-technical-workflows 2.1.8 → 2.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -265,14 +265,6 @@ agents/
265
265
  ├── planning-task-author.md # Write full task detail
266
266
  └── planning-dependency-grapher.md # Analyze task dependencies and priorities
267
267
 
268
- scripts/ # Helper scripts for skills
269
- ├── migrate.sh # Migration orchestrator
270
- ├── discovery-for-discussion.sh # Discovery for discussion skill
271
- ├── discovery-for-specification.sh # Discovery for specification skill
272
- ├── discovery-for-planning.sh # Discovery for planning skill
273
- ├── discovery-for-implementation-and-review.sh # Discovery for impl/review
274
- └── migrations/ # Individual migration scripts (numbered)
275
-
276
268
  tests/
277
269
  └── scripts/ # Shell script tests for discovery and migrations
278
270
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.1.8",
3
+ "version": "2.1.10",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -12,7 +12,7 @@
12
12
  "scripts": {
13
13
  "postinstall": "claude-manager add",
14
14
  "preuninstall": "npx --yes --package=@leeovery/claude-manager claude-manager remove",
15
- "test:scripts:discovery": "bash tests/scripts/test-discovery-for-discussion.sh && bash tests/scripts/test-discovery-for-specification.sh && bash tests/scripts/test-discovery-for-planning.sh && bash tests/scripts/test-discovery-for-implementation-and-review.sh",
15
+ "test:scripts:discovery": "bash tests/scripts/test-discovery-for-discussion.sh && bash tests/scripts/test-discovery-for-specification.sh && bash tests/scripts/test-discovery-for-planning.sh && bash tests/scripts/test-discovery-for-implementation.sh && bash tests/scripts/test-discovery-for-review.sh",
16
16
  "test:scripts:migration": "bash tests/scripts/test-migration-001.sh && bash tests/scripts/test-migration-002.sh && bash tests/scripts/test-migration-003.sh"
17
17
  },
18
18
  "dependencies": {
@@ -22,7 +22,6 @@
22
22
  "skills",
23
23
  "commands",
24
24
  "agents",
25
- "hooks",
26
- "scripts"
25
+ "hooks"
27
26
  ]
28
27
  }
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: migrate
3
3
  description: "Run migrations to keep workflow files in sync with the current system design. This skill is mandatory before running any workflow skill."
4
- allowed-tools: Bash(../../scripts/migrate.sh)
4
+ allowed-tools: Bash(./scripts/migrate.sh)
5
5
  ---
6
6
 
7
7
  # Migrate
@@ -13,7 +13,7 @@ Keeps your workflow files up to date with how the system is designed to work. Ru
13
13
  Run the migration script:
14
14
 
15
15
  ```bash
16
- ../../scripts/migrate.sh
16
+ ./scripts/migrate.sh
17
17
  ```
18
18
 
19
19
  ### If files were updated
@@ -2,7 +2,7 @@
2
2
  name: start-discussion
3
3
  description: "Start a technical discussion. Discovers research and existing discussions, offers multiple entry paths, and invokes the technical-discussion skill."
4
4
  disable-model-invocation: true
5
- allowed-tools: Bash(../../scripts/discovery-for-discussion.sh), Bash(mkdir -p docs/workflow/.cache), Bash(rm docs/workflow/.cache/research-analysis.md)
5
+ allowed-tools: Bash(./scripts/discovery.sh), Bash(mkdir -p docs/workflow/.cache), Bash(rm docs/workflow/.cache/research-analysis.md)
6
6
  ---
7
7
 
8
8
  Invoke the **technical-discussion** skill for this conversation.
@@ -55,7 +55,7 @@ Invoke the `/migrate` skill and assess its output.
55
55
  Run the discovery script to gather current state:
56
56
 
57
57
  ```bash
58
- ../../scripts/discovery-for-discussion.sh
58
+ ./scripts/discovery.sh
59
59
  ```
60
60
 
61
61
  This outputs structured YAML. Parse it to understand:
@@ -2,7 +2,7 @@
2
2
  name: start-implementation
3
3
  description: "Start an implementation session from an existing plan. Discovers available plans, checks environment setup, and invokes the technical-implementation skill."
4
4
  disable-model-invocation: true
5
- allowed-tools: Bash(../../scripts/discovery-for-implementation-and-review.sh)
5
+ allowed-tools: Bash(./scripts/discovery.sh)
6
6
  ---
7
7
 
8
8
  Invoke the **technical-implementation** skill for this conversation.
@@ -55,7 +55,7 @@ Invoke the `/migrate` skill and assess its output.
55
55
  Run the discovery script to gather current state:
56
56
 
57
57
  ```bash
58
- ../../scripts/discovery-for-implementation-and-review.sh
58
+ ./scripts/discovery.sh
59
59
  ```
60
60
 
61
61
  This outputs structured YAML. Parse it to understand:
@@ -1,8 +1,8 @@
1
1
  #!/bin/bash
2
2
  #
3
- # Discovers the current state of plans for /start-implementation and /start-review commands.
3
+ # Discovers the current state of plans for /start-implementation command.
4
4
  #
5
- # Outputs structured YAML that the commands can consume directly.
5
+ # Outputs structured YAML that the command can consume directly.
6
6
  #
7
7
 
8
8
  set -eo pipefail
@@ -2,7 +2,7 @@
2
2
  name: start-planning
3
3
  description: "Start a planning session from an existing specification. Discovers available specifications, gathers context, and invokes the technical-planning skill."
4
4
  disable-model-invocation: true
5
- allowed-tools: Bash(../../scripts/discovery-for-planning.sh)
5
+ allowed-tools: Bash(./scripts/discovery.sh)
6
6
  ---
7
7
 
8
8
  Invoke the **technical-planning** skill for this conversation.
@@ -55,7 +55,7 @@ Invoke the `/migrate` skill and assess its output.
55
55
  Run the discovery script to gather current state:
56
56
 
57
57
  ```bash
58
- ../../scripts/discovery-for-planning.sh
58
+ ./scripts/discovery.sh
59
59
  ```
60
60
 
61
61
  This outputs structured YAML. Parse it to understand:
@@ -2,7 +2,7 @@
2
2
  name: start-review
3
3
  description: "Start a review session from an existing plan and implementation. Discovers available plans, validates implementation exists, and invokes the technical-review skill."
4
4
  disable-model-invocation: true
5
- allowed-tools: Bash(../../scripts/discovery-for-implementation-and-review.sh)
5
+ allowed-tools: Bash(./scripts/discovery.sh)
6
6
  ---
7
7
 
8
8
  Invoke the **technical-review** skill for this conversation.
@@ -55,7 +55,7 @@ Invoke the `/migrate` skill and assess its output.
55
55
  Run the discovery script to gather current state:
56
56
 
57
57
  ```bash
58
- ../../scripts/discovery-for-implementation-and-review.sh
58
+ ./scripts/discovery.sh
59
59
  ```
60
60
 
61
61
  This outputs structured YAML. Parse it to understand:
@@ -0,0 +1,114 @@
1
+ #!/bin/bash
2
+ #
3
+ # Discovers the current state of plans for /start-review command.
4
+ #
5
+ # Outputs structured YAML that the command can consume directly.
6
+ #
7
+
8
+ set -eo pipefail
9
+
10
+ PLAN_DIR="docs/workflow/planning"
11
+ SPEC_DIR="docs/workflow/specification"
12
+
13
+ # Helper: Extract a frontmatter field value from a file
14
+ # Usage: extract_field <file> <field_name>
15
+ extract_field() {
16
+ local file="$1"
17
+ local field="$2"
18
+ local value=""
19
+
20
+ # Extract from YAML frontmatter (file must start with ---)
21
+ if head -1 "$file" 2>/dev/null | grep -q "^---$"; then
22
+ value=$(sed -n '2,/^---$/p' "$file" 2>/dev/null | \
23
+ grep -i -m1 "^${field}:" | \
24
+ sed -E "s/^${field}:[[:space:]]*//i" || true)
25
+ fi
26
+
27
+ echo "$value"
28
+ }
29
+
30
+ # Helper: Extract frontmatter content (between first pair of --- delimiters)
31
+ extract_frontmatter() {
32
+ local file="$1"
33
+ awk 'BEGIN{c=0} /^---$/{c++; if(c==2) exit; next} c==1{print}' "$file" 2>/dev/null
34
+ }
35
+
36
+
37
+ # Start YAML output
38
+ echo "# Review Command State Discovery"
39
+ echo "# Generated: $(date -Iseconds)"
40
+ echo ""
41
+
42
+ #
43
+ # PLANS
44
+ #
45
+ echo "plans:"
46
+
47
+ plan_count=0
48
+
49
+ if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
50
+ echo " exists: true"
51
+ echo " files:"
52
+
53
+ for file in "$PLAN_DIR"/*.md; do
54
+ [ -f "$file" ] || continue
55
+
56
+ name=$(basename "$file" .md)
57
+ topic=$(extract_field "$file" "topic")
58
+ topic=${topic:-"$name"}
59
+ status=$(extract_field "$file" "status")
60
+ status=${status:-"unknown"}
61
+ date=$(extract_field "$file" "date")
62
+ date=${date:-"unknown"}
63
+ format=$(extract_field "$file" "format")
64
+ format=${format:-"MISSING"}
65
+ specification=$(extract_field "$file" "specification")
66
+ specification=${specification:-"${name}.md"}
67
+ plan_id=$(extract_field "$file" "plan_id")
68
+
69
+ # Check if linked specification exists
70
+ spec_exists="false"
71
+ spec_file="$SPEC_DIR/$specification"
72
+ if [ -f "$spec_file" ]; then
73
+ spec_exists="true"
74
+ fi
75
+
76
+ echo " - name: \"$name\""
77
+ echo " topic: \"$topic\""
78
+ echo " status: \"$status\""
79
+ echo " date: \"$date\""
80
+ echo " format: \"$format\""
81
+ echo " specification: \"$specification\""
82
+ echo " specification_exists: $spec_exists"
83
+ if [ -n "$plan_id" ]; then
84
+ echo " plan_id: \"$plan_id\""
85
+ fi
86
+
87
+ plan_count=$((plan_count + 1))
88
+ done
89
+
90
+ echo " count: $plan_count"
91
+ else
92
+ echo " exists: false"
93
+ echo " files: []"
94
+ echo " count: 0"
95
+ fi
96
+
97
+ echo ""
98
+
99
+ #
100
+ # WORKFLOW STATE SUMMARY
101
+ #
102
+ echo "state:"
103
+
104
+ echo " has_plans: $([ "$plan_count" -gt 0 ] && echo "true" || echo "false")"
105
+ echo " plan_count: $plan_count"
106
+
107
+ # Determine workflow state for routing
108
+ if [ "$plan_count" -eq 0 ]; then
109
+ echo " scenario: \"no_plans\""
110
+ elif [ "$plan_count" -eq 1 ]; then
111
+ echo " scenario: \"single_plan\""
112
+ else
113
+ echo " scenario: \"multiple_plans\""
114
+ fi
@@ -2,7 +2,7 @@
2
2
  name: start-specification
3
3
  description: "Start a specification session from existing discussions. Discovers available discussions, offers consolidation assessment for multiple discussions, and invokes the technical-specification skill."
4
4
  disable-model-invocation: true
5
- allowed-tools: Bash(../../scripts/discovery-for-specification.sh), Bash(mkdir -p docs/workflow/.cache), Bash(rm docs/workflow/.cache/discussion-consolidation-analysis.md)
5
+ allowed-tools: Bash(./scripts/discovery.sh), Bash(mkdir -p docs/workflow/.cache), Bash(rm docs/workflow/.cache/discussion-consolidation-analysis.md)
6
6
  ---
7
7
 
8
8
  Invoke the **technical-specification** skill for this conversation.
@@ -55,7 +55,7 @@ Invoke the `/migrate` skill and assess its output.
55
55
  Run the discovery script to gather current state:
56
56
 
57
57
  ```bash
58
- ../../scripts/discovery-for-specification.sh
58
+ ./scripts/discovery.sh
59
59
  ```
60
60
 
61
61
  This outputs structured YAML. Parse it to understand:
File without changes