@leeovery/claude-technical-workflows 2.1.42 → 2.2.1
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 +10 -9
- package/hooks/workflows/compact-recovery.sh +3 -23
- package/hooks/workflows/write-session-state.sh +2 -26
- package/package.json +1 -1
- package/skills/link-dependencies/SKILL.md +0 -1
- package/skills/migrate/SKILL.md +0 -1
- package/skills/migrate/scripts/migrations/013-discussion-work-type.sh +76 -0
- package/skills/migrate/scripts/migrations/014-specification-work-type.sh +76 -0
- package/skills/migrate/scripts/migrations/015-plan-work-type.sh +76 -0
- package/skills/start-bugfix/SKILL.md +80 -0
- package/skills/start-bugfix/references/gather-bug-context.md +75 -0
- package/skills/start-bugfix/references/invoke-investigation.md +46 -0
- package/skills/start-bugfix/references/topic-name-check.md +59 -0
- package/skills/start-discussion/SKILL.md +51 -46
- package/skills/start-discussion/references/gather-context.md +54 -10
- package/skills/start-discussion/references/handle-selection.md +14 -4
- package/skills/start-discussion/references/invoke-skill.md +71 -3
- package/skills/start-discussion/references/research-analysis.md +2 -0
- package/skills/start-discussion/references/route-scenario.md +39 -0
- package/skills/start-discussion/references/validate-topic.md +46 -0
- package/skills/start-discussion/scripts/discovery.sh +3 -0
- package/skills/start-feature/SKILL.md +28 -84
- package/skills/start-feature/references/invoke-discussion.md +8 -4
- package/skills/start-feature/references/invoke-research.md +29 -0
- package/skills/start-feature/references/invoke-skill.md +35 -0
- package/skills/start-feature/references/research-gating.md +65 -0
- package/skills/start-feature/references/topic-name-check.md +61 -0
- package/skills/start-implementation/SKILL.md +35 -289
- package/skills/start-implementation/references/check-dependencies.md +65 -0
- package/skills/start-implementation/references/display-plans.md +159 -0
- package/skills/start-implementation/references/environment-check.md +45 -0
- package/skills/start-implementation/references/invoke-skill.md +42 -0
- package/skills/start-implementation/references/route-scenario.md +32 -0
- package/skills/start-implementation/references/validate-plan.md +45 -0
- package/skills/start-implementation/scripts/discovery.sh +3 -0
- package/skills/start-investigation/SKILL.md +145 -0
- package/skills/start-investigation/references/gather-context-fresh.md +72 -0
- package/skills/start-investigation/references/gather-context.md +31 -0
- package/skills/start-investigation/references/invoke-skill.md +54 -0
- package/skills/start-investigation/references/route-scenario.md +69 -0
- package/skills/start-investigation/references/validate-investigation.md +46 -0
- package/skills/start-investigation/scripts/discovery.sh +92 -0
- package/skills/start-planning/SKILL.md +32 -72
- package/skills/start-planning/references/cross-cutting-context.md +5 -5
- package/skills/start-planning/references/invoke-skill.md +27 -4
- package/skills/start-planning/references/route-plan-state.md +30 -0
- package/skills/start-planning/references/route-scenario.md +38 -0
- package/skills/start-planning/references/validate-spec.md +47 -0
- package/skills/start-planning/scripts/discovery.sh +7 -0
- package/skills/start-research/SKILL.md +17 -6
- package/skills/start-research/references/invoke-skill.md +3 -0
- package/skills/start-review/SKILL.md +32 -60
- package/skills/start-review/references/determine-review-version.md +24 -0
- package/skills/start-review/references/display-plans.md +2 -2
- package/skills/start-review/references/route-scenario.md +74 -0
- package/skills/start-review/references/select-plans.md +8 -6
- package/skills/start-review/references/validate-artifacts.md +63 -0
- package/skills/start-review/scripts/discovery.sh +3 -0
- package/skills/start-specification/SKILL.md +44 -20
- package/skills/start-specification/references/check-existing-spec.md +57 -0
- package/skills/start-specification/references/check-prerequisites.md +15 -0
- package/skills/start-specification/references/handoffs/continue-concluded.md +3 -0
- package/skills/start-specification/references/handoffs/continue.md +3 -0
- package/skills/start-specification/references/handoffs/create-with-incorporation.md +3 -0
- package/skills/start-specification/references/handoffs/create.md +3 -0
- package/skills/start-specification/references/handoffs/unify-with-incorporation.md +3 -0
- package/skills/start-specification/references/handoffs/unify.md +3 -0
- package/skills/start-specification/references/invoke-skill-bridge.md +74 -0
- package/skills/start-specification/references/route-scenario.md +23 -0
- package/skills/start-specification/references/validate-source.md +91 -0
- package/skills/start-specification/scripts/discovery.sh +6 -0
- package/skills/status/SKILL.md +6 -3
- package/skills/status/scripts/discovery.sh +9 -0
- package/skills/technical-discussion/SKILL.md +15 -4
- package/skills/technical-discussion/references/template.md +9 -1
- package/skills/technical-implementation/SKILL.md +24 -1
- package/skills/technical-implementation/references/analysis-loop.md +4 -4
- package/skills/technical-implementation/references/task-loop.md +2 -2
- package/skills/technical-investigation/SKILL.md +239 -0
- package/skills/technical-investigation/references/analysis-patterns.md +181 -0
- package/skills/technical-investigation/references/symptom-gathering.md +164 -0
- package/skills/technical-investigation/references/template.md +164 -0
- package/skills/technical-planning/SKILL.md +24 -1
- package/skills/technical-planning/references/author-tasks.md +16 -16
- package/skills/technical-planning/references/define-tasks.md +2 -2
- package/skills/technical-planning/references/plan-construction.md +11 -30
- package/skills/technical-planning/references/plan-review.md +3 -3
- package/skills/technical-research/SKILL.md +38 -2
- package/skills/technical-review/SKILL.md +1 -2
- package/skills/technical-review/references/review-actions-loop.md +43 -1
- package/skills/technical-specification/SKILL.md +1 -2
- package/skills/technical-specification/references/spec-completion.md +34 -6
- package/skills/technical-specification/references/spec-construction.md +1 -1
- package/skills/technical-specification/references/spec-review.md +5 -5
- package/skills/view-plan/SKILL.md +0 -1
- package/skills/workflow-bridge/SKILL.md +82 -0
- package/skills/workflow-bridge/references/bugfix-continuation.md +59 -0
- package/skills/workflow-bridge/references/feature-continuation.md +60 -0
- package/skills/workflow-bridge/references/greenfield-continuation.md +224 -0
- package/skills/workflow-bridge/scripts/discovery.sh +512 -0
- package/skills/workflow-start/SKILL.md +97 -0
- package/skills/workflow-start/references/bugfix-routing.md +117 -0
- package/skills/workflow-start/references/feature-routing.md +117 -0
- package/skills/workflow-start/references/greenfield-routing.md +140 -0
- package/skills/workflow-start/references/work-type-selection.md +83 -0
- package/skills/workflow-start/scripts/discovery.sh +577 -0
- package/skills/begin-implementation/SKILL.md +0 -162
- package/skills/begin-planning/SKILL.md +0 -92
- package/skills/begin-review/SKILL.md +0 -90
- package/skills/continue-feature/SKILL.md +0 -186
- package/skills/continue-feature/references/detect-phase.md +0 -99
- package/skills/continue-feature/references/invoke-implementation.md +0 -43
- package/skills/continue-feature/references/invoke-planning.md +0 -43
- package/skills/continue-feature/references/invoke-review.md +0 -43
- package/skills/continue-feature/references/invoke-specification.md +0 -55
- package/skills/continue-feature/references/phase-bridge.md +0 -57
- package/skills/continue-feature/scripts/discovery.sh +0 -233
- package/skills/start-feature/references/phase-bridge.md +0 -37
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Invoke Planning
|
|
2
|
-
|
|
3
|
-
*Reference for **[continue-feature](../SKILL.md)***
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Invoke the begin-planning bridge skill for this topic.
|
|
8
|
-
|
|
9
|
-
## Save Session State
|
|
10
|
-
|
|
11
|
-
Before invoking the processing skill, save a session bookmark.
|
|
12
|
-
|
|
13
|
-
> *Output the next fenced block as a code block:*
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
Saving session state so Claude can pick up where it left off and continue the feature pipeline if the conversation is compacted.
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
.claude/hooks/workflows/write-session-state.sh \
|
|
21
|
-
"{topic}" \
|
|
22
|
-
"skills/technical-planning/SKILL.md" \
|
|
23
|
-
".workflows/planning/{topic}/plan.md" \
|
|
24
|
-
--pipeline "This session is part of the feature pipeline. After the plan concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Handoff
|
|
28
|
-
|
|
29
|
-
Invoke the [begin-planning](../../begin-planning/SKILL.md) skill:
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
Planning pre-flight for: {topic}
|
|
33
|
-
Specification: .workflows/specification/{topic}/specification.md
|
|
34
|
-
|
|
35
|
-
PIPELINE CONTINUATION — When planning concludes (plan status: concluded),
|
|
36
|
-
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
37
|
-
Load: skills/continue-feature/references/phase-bridge.md
|
|
38
|
-
Do not end the session after planning — the feature pipeline continues.
|
|
39
|
-
|
|
40
|
-
Invoke the begin-planning skill.
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
The bridge skill handles cross-cutting context, additional context gathering, and the handoff to technical-planning.
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Invoke Review
|
|
2
|
-
|
|
3
|
-
*Reference for **[continue-feature](../SKILL.md)***
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Invoke the begin-review bridge skill for this topic.
|
|
8
|
-
|
|
9
|
-
## Save Session State
|
|
10
|
-
|
|
11
|
-
Before invoking the processing skill, save a session bookmark.
|
|
12
|
-
|
|
13
|
-
> *Output the next fenced block as a code block:*
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
Saving session state so Claude can pick up where it left off and continue the feature pipeline if the conversation is compacted.
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
.claude/hooks/workflows/write-session-state.sh \
|
|
21
|
-
"{topic}" \
|
|
22
|
-
"skills/technical-review/SKILL.md" \
|
|
23
|
-
".workflows/review/{topic}/r{N}/review.md" \
|
|
24
|
-
--pipeline "This session is part of the feature pipeline. After the review concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Handoff
|
|
28
|
-
|
|
29
|
-
Invoke the [begin-review](../../begin-review/SKILL.md) skill:
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
Review pre-flight for: {topic}
|
|
33
|
-
Plan: .workflows/planning/{topic}/plan.md
|
|
34
|
-
|
|
35
|
-
PIPELINE CONTINUATION — When review concludes,
|
|
36
|
-
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
37
|
-
Load: skills/continue-feature/references/phase-bridge.md
|
|
38
|
-
Do not end the session after review — the feature pipeline continues.
|
|
39
|
-
|
|
40
|
-
Invoke the begin-review skill.
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
The bridge skill handles discovery, validation, version detection, and the handoff to technical-review.
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# Invoke Specification
|
|
2
|
-
|
|
3
|
-
*Reference for **[continue-feature](../SKILL.md)***
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Invoke the specification skill for this topic.
|
|
8
|
-
|
|
9
|
-
## Check Source Material
|
|
10
|
-
|
|
11
|
-
The specification needs source material. Check what's available:
|
|
12
|
-
|
|
13
|
-
1. **Discussion document**: `.workflows/discussion/{topic}.md`
|
|
14
|
-
- If exists and concluded → use as primary source
|
|
15
|
-
- If exists and in-progress → this shouldn't happen (detect-phase would have routed to discussion)
|
|
16
|
-
|
|
17
|
-
2. If no discussion exists, this is an error — the pipeline expects a concluded discussion before specification. Report it and stop.
|
|
18
|
-
|
|
19
|
-
## Save Session State
|
|
20
|
-
|
|
21
|
-
Before invoking the processing skill, save a session bookmark.
|
|
22
|
-
|
|
23
|
-
> *Output the next fenced block as a code block:*
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
Saving session state so Claude can pick up where it left off and continue the feature pipeline if the conversation is compacted.
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
.claude/hooks/workflows/write-session-state.sh \
|
|
31
|
-
"{topic}" \
|
|
32
|
-
"skills/technical-specification/SKILL.md" \
|
|
33
|
-
".workflows/specification/{topic}/specification.md" \
|
|
34
|
-
--pipeline "This session is part of the feature pipeline. After the specification concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Handoff
|
|
38
|
-
|
|
39
|
-
Invoke the [technical-specification](../../technical-specification/SKILL.md) skill:
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
Specification session for: {topic}
|
|
43
|
-
|
|
44
|
-
Source material:
|
|
45
|
-
- Discussion: .workflows/discussion/{topic}.md
|
|
46
|
-
|
|
47
|
-
Topic name: {topic}
|
|
48
|
-
|
|
49
|
-
PIPELINE CONTINUATION — When this specification concludes (status: concluded),
|
|
50
|
-
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
51
|
-
Load: skills/continue-feature/references/phase-bridge.md
|
|
52
|
-
Do not end the session after the specification — the feature pipeline continues.
|
|
53
|
-
|
|
54
|
-
Invoke the technical-specification skill.
|
|
55
|
-
```
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Phase Bridge
|
|
2
|
-
|
|
3
|
-
*Reference for **[continue-feature](../SKILL.md)***
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
The phase bridge clears context between pipeline phases using plan mode. This is necessary because each phase can consume significant context, and starting fresh prevents degradation.
|
|
8
|
-
|
|
9
|
-
## Determine Next Phase
|
|
10
|
-
|
|
11
|
-
Check which step just completed to determine what continue-feature will route to next:
|
|
12
|
-
|
|
13
|
-
- Just completed **specification** (Step 3) → next session routes to planning
|
|
14
|
-
- Just completed **planning** (Step 4) → next session routes to implementation
|
|
15
|
-
- Just completed **implementation** (Step 5) → next session routes to review
|
|
16
|
-
- Just completed **review** (Step 6) → pipeline is done
|
|
17
|
-
|
|
18
|
-
#### If review just completed
|
|
19
|
-
|
|
20
|
-
> *Output the next fenced block as a code block:*
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
Feature Complete
|
|
24
|
-
|
|
25
|
-
"{topic:(titlecase)}" has completed all pipeline phases.
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**STOP.** Do not proceed — terminal condition.
|
|
29
|
-
|
|
30
|
-
## Enter Plan Mode
|
|
31
|
-
|
|
32
|
-
Enter plan mode and write the following plan:
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
# Continue Feature: {topic}
|
|
36
|
-
|
|
37
|
-
The previous phase for "{topic}" has concluded. The next session should
|
|
38
|
-
continue the feature pipeline.
|
|
39
|
-
|
|
40
|
-
## Instructions
|
|
41
|
-
|
|
42
|
-
1. Invoke the `/continue-feature` skill for topic "{topic}"
|
|
43
|
-
2. The skill will detect the current phase and route accordingly
|
|
44
|
-
|
|
45
|
-
## Context
|
|
46
|
-
|
|
47
|
-
- Topic: {topic}
|
|
48
|
-
- Previous phase: {phase that just completed}
|
|
49
|
-
- Expected next phase: {next phase based on routing above}
|
|
50
|
-
|
|
51
|
-
## How to proceed
|
|
52
|
-
|
|
53
|
-
Clear context and continue. Claude will invoke continue-feature
|
|
54
|
-
with the topic above and route to the next phase automatically.
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Exit plan mode. The user will approve and clear context, and the fresh session will pick up with continue-feature routing to the correct phase.
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# Cross-phase discovery script for /continue-feature.
|
|
4
|
-
#
|
|
5
|
-
# Scans all workflow directories (discussion, specification, planning,
|
|
6
|
-
# implementation) and builds a unified topic list with phase state
|
|
7
|
-
# and next_phase computation.
|
|
8
|
-
#
|
|
9
|
-
# Outputs structured YAML that the command can consume directly.
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
set -eo pipefail
|
|
13
|
-
|
|
14
|
-
DISC_DIR=".workflows/discussion"
|
|
15
|
-
SPEC_DIR=".workflows/specification"
|
|
16
|
-
PLAN_DIR=".workflows/planning"
|
|
17
|
-
IMPL_DIR=".workflows/implementation"
|
|
18
|
-
REVIEW_DIR=".workflows/review"
|
|
19
|
-
|
|
20
|
-
# Helper: Extract a frontmatter field value from a file
|
|
21
|
-
# Usage: extract_field <file> <field_name>
|
|
22
|
-
extract_field() {
|
|
23
|
-
local file="$1"
|
|
24
|
-
local field="$2"
|
|
25
|
-
local value=""
|
|
26
|
-
|
|
27
|
-
# Extract from YAML frontmatter (file must start with ---)
|
|
28
|
-
if head -1 "$file" 2>/dev/null | grep -q "^---$"; then
|
|
29
|
-
value=$(sed -n '2,/^---$/p' "$file" 2>/dev/null | \
|
|
30
|
-
grep -i -m1 "^${field}:" | \
|
|
31
|
-
sed -E "s/^${field}:[[:space:]]*//i" || true)
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
echo "$value"
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
# Start YAML output
|
|
38
|
-
echo "# Continue-Feature Cross-Phase Discovery"
|
|
39
|
-
echo "# Generated: $(date -Iseconds)"
|
|
40
|
-
echo ""
|
|
41
|
-
|
|
42
|
-
#
|
|
43
|
-
# Collect all unique topic names from discussion + specification
|
|
44
|
-
#
|
|
45
|
-
declare -a all_topics=()
|
|
46
|
-
declare -A topic_seen=()
|
|
47
|
-
|
|
48
|
-
# Scan discussions
|
|
49
|
-
if [ -d "$DISC_DIR" ]; then
|
|
50
|
-
for file in "$DISC_DIR"/*.md; do
|
|
51
|
-
[ -f "$file" ] || continue
|
|
52
|
-
name=$(basename "$file" .md)
|
|
53
|
-
if [ -z "${topic_seen[$name]+x}" ]; then
|
|
54
|
-
all_topics+=("$name")
|
|
55
|
-
topic_seen[$name]=1
|
|
56
|
-
fi
|
|
57
|
-
done
|
|
58
|
-
fi
|
|
59
|
-
|
|
60
|
-
# Scan specifications
|
|
61
|
-
if [ -d "$SPEC_DIR" ]; then
|
|
62
|
-
for dir in "$SPEC_DIR"/*/; do
|
|
63
|
-
[ -d "$dir" ] || continue
|
|
64
|
-
[ -f "${dir}specification.md" ] || continue
|
|
65
|
-
name=$(basename "$dir")
|
|
66
|
-
if [ -z "${topic_seen[$name]+x}" ]; then
|
|
67
|
-
all_topics+=("$name")
|
|
68
|
-
topic_seen[$name]=1
|
|
69
|
-
fi
|
|
70
|
-
done
|
|
71
|
-
fi
|
|
72
|
-
|
|
73
|
-
#
|
|
74
|
-
# Build topic entries
|
|
75
|
-
#
|
|
76
|
-
echo "topics:"
|
|
77
|
-
|
|
78
|
-
topic_count=0
|
|
79
|
-
actionable_count=0
|
|
80
|
-
|
|
81
|
-
if [ ${#all_topics[@]} -eq 0 ]; then
|
|
82
|
-
echo " []"
|
|
83
|
-
else
|
|
84
|
-
for topic in "${all_topics[@]}"; do
|
|
85
|
-
# Discussion state
|
|
86
|
-
disc_exists="false"
|
|
87
|
-
disc_status=""
|
|
88
|
-
disc_file="$DISC_DIR/${topic}.md"
|
|
89
|
-
if [ -f "$disc_file" ]; then
|
|
90
|
-
disc_exists="true"
|
|
91
|
-
disc_status=$(extract_field "$disc_file" "status")
|
|
92
|
-
disc_status=${disc_status:-"in-progress"}
|
|
93
|
-
fi
|
|
94
|
-
|
|
95
|
-
# Specification state
|
|
96
|
-
spec_exists="false"
|
|
97
|
-
spec_status=""
|
|
98
|
-
spec_type=""
|
|
99
|
-
spec_file="$SPEC_DIR/${topic}/specification.md"
|
|
100
|
-
if [ -f "$spec_file" ]; then
|
|
101
|
-
spec_exists="true"
|
|
102
|
-
spec_status=$(extract_field "$spec_file" "status")
|
|
103
|
-
spec_status=${spec_status:-"in-progress"}
|
|
104
|
-
spec_type=$(extract_field "$spec_file" "type")
|
|
105
|
-
spec_type=${spec_type:-"feature"}
|
|
106
|
-
fi
|
|
107
|
-
|
|
108
|
-
# Skip cross-cutting specs — they aren't features
|
|
109
|
-
if [ "$spec_type" = "cross-cutting" ]; then
|
|
110
|
-
continue
|
|
111
|
-
fi
|
|
112
|
-
|
|
113
|
-
# Plan state
|
|
114
|
-
plan_exists="false"
|
|
115
|
-
plan_status=""
|
|
116
|
-
plan_format=""
|
|
117
|
-
plan_file="$PLAN_DIR/${topic}/plan.md"
|
|
118
|
-
if [ -f "$plan_file" ]; then
|
|
119
|
-
plan_exists="true"
|
|
120
|
-
plan_status=$(extract_field "$plan_file" "status")
|
|
121
|
-
plan_status=${plan_status:-"in-progress"}
|
|
122
|
-
plan_format=$(extract_field "$plan_file" "format")
|
|
123
|
-
plan_format=${plan_format:-"unknown"}
|
|
124
|
-
fi
|
|
125
|
-
|
|
126
|
-
# Implementation state
|
|
127
|
-
impl_exists="false"
|
|
128
|
-
impl_status=""
|
|
129
|
-
impl_file="$IMPL_DIR/${topic}/tracking.md"
|
|
130
|
-
if [ -f "$impl_file" ]; then
|
|
131
|
-
impl_exists="true"
|
|
132
|
-
impl_status=$(extract_field "$impl_file" "status")
|
|
133
|
-
impl_status=${impl_status:-"in-progress"}
|
|
134
|
-
fi
|
|
135
|
-
|
|
136
|
-
# Review state
|
|
137
|
-
review_exists="false"
|
|
138
|
-
if [ -d "$REVIEW_DIR/${topic}" ]; then
|
|
139
|
-
for rdir in "$REVIEW_DIR/${topic}"/r*/; do
|
|
140
|
-
[ -d "$rdir" ] || continue
|
|
141
|
-
[ -f "${rdir}review.md" ] || continue
|
|
142
|
-
review_exists="true"
|
|
143
|
-
break
|
|
144
|
-
done
|
|
145
|
-
fi
|
|
146
|
-
|
|
147
|
-
#
|
|
148
|
-
# Compute next_phase (check from top down, first match wins)
|
|
149
|
-
#
|
|
150
|
-
next_phase=""
|
|
151
|
-
|
|
152
|
-
if [ "$impl_exists" = "true" ] && [ "$impl_status" = "completed" ] && [ "$review_exists" = "true" ]; then
|
|
153
|
-
next_phase="done"
|
|
154
|
-
elif [ "$impl_exists" = "true" ] && [ "$impl_status" = "completed" ] && [ "$review_exists" = "false" ]; then
|
|
155
|
-
next_phase="review"
|
|
156
|
-
elif [ "$impl_exists" = "true" ] && [ "$impl_status" = "in-progress" ]; then
|
|
157
|
-
next_phase="implementation"
|
|
158
|
-
elif [ "$plan_exists" = "true" ] && [ "$plan_status" = "concluded" ]; then
|
|
159
|
-
next_phase="implementation"
|
|
160
|
-
elif [ "$plan_exists" = "true" ] && [ "$plan_status" != "concluded" ]; then
|
|
161
|
-
next_phase="planning"
|
|
162
|
-
elif [ "$spec_exists" = "true" ] && [ "$spec_status" = "concluded" ]; then
|
|
163
|
-
next_phase="planning"
|
|
164
|
-
elif [ "$spec_exists" = "true" ] && [ "$spec_status" != "concluded" ]; then
|
|
165
|
-
next_phase="specification"
|
|
166
|
-
elif [ "$disc_exists" = "true" ] && [ "$disc_status" = "concluded" ]; then
|
|
167
|
-
next_phase="specification"
|
|
168
|
-
elif [ "$disc_exists" = "true" ]; then
|
|
169
|
-
next_phase="discussion"
|
|
170
|
-
else
|
|
171
|
-
next_phase="unknown"
|
|
172
|
-
fi
|
|
173
|
-
|
|
174
|
-
# Actionable = can continue in the pipeline (not done, not unknown)
|
|
175
|
-
actionable="false"
|
|
176
|
-
if [ "$next_phase" != "done" ] && [ "$next_phase" != "unknown" ]; then
|
|
177
|
-
actionable="true"
|
|
178
|
-
actionable_count=$((actionable_count + 1))
|
|
179
|
-
fi
|
|
180
|
-
|
|
181
|
-
echo " - name: \"$topic\""
|
|
182
|
-
|
|
183
|
-
echo " discussion:"
|
|
184
|
-
echo " exists: $disc_exists"
|
|
185
|
-
if [ "$disc_exists" = "true" ]; then
|
|
186
|
-
echo " status: \"$disc_status\""
|
|
187
|
-
fi
|
|
188
|
-
|
|
189
|
-
echo " specification:"
|
|
190
|
-
echo " exists: $spec_exists"
|
|
191
|
-
if [ "$spec_exists" = "true" ]; then
|
|
192
|
-
echo " status: \"$spec_status\""
|
|
193
|
-
fi
|
|
194
|
-
|
|
195
|
-
echo " plan:"
|
|
196
|
-
echo " exists: $plan_exists"
|
|
197
|
-
if [ "$plan_exists" = "true" ]; then
|
|
198
|
-
echo " status: \"$plan_status\""
|
|
199
|
-
echo " format: \"$plan_format\""
|
|
200
|
-
fi
|
|
201
|
-
|
|
202
|
-
echo " implementation:"
|
|
203
|
-
echo " exists: $impl_exists"
|
|
204
|
-
if [ "$impl_exists" = "true" ]; then
|
|
205
|
-
echo " status: \"$impl_status\""
|
|
206
|
-
fi
|
|
207
|
-
|
|
208
|
-
echo " review:"
|
|
209
|
-
echo " exists: $review_exists"
|
|
210
|
-
|
|
211
|
-
echo " next_phase: \"$next_phase\""
|
|
212
|
-
echo " actionable: $actionable"
|
|
213
|
-
|
|
214
|
-
topic_count=$((topic_count + 1))
|
|
215
|
-
done
|
|
216
|
-
fi
|
|
217
|
-
|
|
218
|
-
echo ""
|
|
219
|
-
|
|
220
|
-
#
|
|
221
|
-
# STATE SUMMARY
|
|
222
|
-
#
|
|
223
|
-
echo "state:"
|
|
224
|
-
echo " topic_count: $topic_count"
|
|
225
|
-
echo " actionable_count: $actionable_count"
|
|
226
|
-
|
|
227
|
-
if [ "$topic_count" -eq 0 ]; then
|
|
228
|
-
echo " scenario: \"no_topics\""
|
|
229
|
-
elif [ "$topic_count" -eq 1 ]; then
|
|
230
|
-
echo " scenario: \"single_topic\""
|
|
231
|
-
else
|
|
232
|
-
echo " scenario: \"multiple_topics\""
|
|
233
|
-
fi
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Phase Bridge
|
|
2
|
-
|
|
3
|
-
*Reference for **[start-feature](../SKILL.md)***
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
The phase bridge clears context between the discussion phase and the rest of the pipeline. This is necessary because discussion can consume significant context, and starting fresh prevents degradation.
|
|
8
|
-
|
|
9
|
-
## Enter Plan Mode
|
|
10
|
-
|
|
11
|
-
Enter plan mode and write the following plan:
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
# Continue Feature: {topic}
|
|
15
|
-
|
|
16
|
-
The discussion for "{topic}" has concluded. The next session should
|
|
17
|
-
continue the feature pipeline from specification onwards.
|
|
18
|
-
|
|
19
|
-
## Instructions
|
|
20
|
-
|
|
21
|
-
1. Invoke the `/continue-feature` skill for topic "{topic}"
|
|
22
|
-
2. The skill will detect that a concluded discussion exists and route to specification
|
|
23
|
-
|
|
24
|
-
## Context
|
|
25
|
-
|
|
26
|
-
- Topic: {topic}
|
|
27
|
-
- Completed phase: discussion
|
|
28
|
-
- Expected next phase: specification
|
|
29
|
-
- Discussion: .workflows/discussion/{topic}.md
|
|
30
|
-
|
|
31
|
-
## How to proceed
|
|
32
|
-
|
|
33
|
-
Clear context and continue. Claude will invoke continue-feature
|
|
34
|
-
with the topic above and route to the specification phase automatically.
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Exit plan mode. The user will approve and clear context, and the fresh session will pick up with continue-feature routing to specification.
|