mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-10 02:24:35 +08:00
Initial release: Claude Code Workflow (CCW) v2.0
🚀 Revolutionary AI-powered development workflow orchestration system ## 🔥 Core Innovations - **Document-State Separation**: Markdown for planning, JSON for execution state - **Progressive Complexity Management**: Level 0-2 adaptive workflow depth - **5-Agent Orchestration**: Specialized AI agents with context preservation - **Session-First Architecture**: Auto-discovery and state inheritance ## 🏗️ Key Features - Intelligent workflow orchestration (Simple/Medium/Complex patterns) - Real-time document-state synchronization with conflict resolution - Hierarchical task management with 3-level JSON structure - Gemini CLI integration with 12+ specialized templates - Comprehensive file output generation for all workflow commands ## 📦 Installation Remote one-liner installation: ``` iex (iwr -useb https://raw.githubusercontent.com/catlog22/Claude-CCW/main/install-remote.ps1) ``` ## 🎯 System Architecture 4-layer intelligent development architecture: 1. Command Layer - Smart routing and version management 2. Agent Layer - 5 specialized development agents 3. Workflow Layer - Gemini templates and task orchestration 4. Memory Layer - Distributed documentation and auto-sync 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
66
.claude/scripts/gemini-chat-executor.sh
Normal file
66
.claude/scripts/gemini-chat-executor.sh
Normal file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
# Gemini Chat Template Accessor - Template content access utility
|
||||
# Usage: ./gemini-chat-executor.sh list|load <template-name>
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
CLAUDE_DIR="$HOME/.claude"
|
||||
TEMPLATES_DIR="$CLAUDE_DIR/prompt-templates"
|
||||
|
||||
# Parse command line arguments
|
||||
COMMAND="$1"
|
||||
TEMPLATE_NAME="$2"
|
||||
|
||||
# Function to list available templates
|
||||
list_templates() {
|
||||
echo "Available templates:"
|
||||
echo "===================="
|
||||
for template_file in "$TEMPLATES_DIR"/*.md; do
|
||||
if [[ -f "$template_file" ]]; then
|
||||
local name=$(basename "$template_file" .md)
|
||||
if [[ "$name" != "README" ]]; then
|
||||
local desc=$(grep "description:" "$template_file" | cut -d':' -f2- | sed 's/^ *//')
|
||||
printf "%-20s %s\n" "$name" "$desc"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Function to load template
|
||||
load_template() {
|
||||
local template_name="$1"
|
||||
local template_file="$TEMPLATES_DIR/$template_name.md"
|
||||
|
||||
if [[ -f "$template_file" ]]; then
|
||||
cat "$template_file"
|
||||
return 0
|
||||
else
|
||||
echo "Error: Template file not found: $template_file" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Main execution
|
||||
case "$COMMAND" in
|
||||
"list")
|
||||
list_templates
|
||||
;;
|
||||
"load")
|
||||
if [[ -z "$TEMPLATE_NAME" ]]; then
|
||||
echo "Error: Template name is required for load command" >&2
|
||||
echo "Usage: $0 load <template-name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
load_template "$TEMPLATE_NAME"
|
||||
;;
|
||||
*)
|
||||
echo "Error: Unknown command: $COMMAND" >&2
|
||||
echo "Usage: $0 {list|load} [template-name]" >&2
|
||||
echo "Commands:" >&2
|
||||
echo " list - List available templates" >&2
|
||||
echo " load <name> - Load template content" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
101
.claude/scripts/plan-executor.sh
Normal file
101
.claude/scripts/plan-executor.sh
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
# plan-executor.sh - DMSFlow Planning Template Loader
|
||||
# Returns role-specific planning templates for Claude processing
|
||||
|
||||
set -e
|
||||
|
||||
# Define paths
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
TEMPLATE_DIR="${SCRIPT_DIR}/../planning-templates"
|
||||
|
||||
# Parse arguments
|
||||
COMMAND="$1"
|
||||
ROLE="$2"
|
||||
|
||||
# Handle version check
|
||||
if [ "$COMMAND" = "--version" ] || [ "$COMMAND" = "-v" ]; then
|
||||
echo "DMSFlow plan-executor v2.0"
|
||||
echo "Semantic-based planning role system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# List all available planning roles
|
||||
if [ "$COMMAND" = "--list" ]; then
|
||||
echo "Available Planning Roles:"
|
||||
echo "========================"
|
||||
for file in "$TEMPLATE_DIR"/*.md; do
|
||||
if [ -f "$file" ]; then
|
||||
# Extract name and description from YAML frontmatter
|
||||
name=$(grep "^name:" "$file" | head -1 | cut -d: -f2 | sed 's/^ *//' | sed 's/ *$//')
|
||||
desc=$(grep "^description:" "$file" | head -1 | cut -d: -f2- | sed 's/^ *//' | sed 's/ *$//')
|
||||
|
||||
if [ -n "$name" ] && [ -n "$desc" ]; then
|
||||
printf "%-20s - %s\n" "$name" "$desc"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Load specific planning role
|
||||
if [ "$COMMAND" = "--load" ] && [ -n "$ROLE" ]; then
|
||||
TEMPLATE_PATH="${TEMPLATE_DIR}/${ROLE}.md"
|
||||
|
||||
if [ -f "$TEMPLATE_PATH" ]; then
|
||||
# Output content, skipping YAML frontmatter
|
||||
awk '
|
||||
BEGIN { in_yaml = 0; yaml_ended = 0 }
|
||||
/^---$/ {
|
||||
if (!yaml_ended) {
|
||||
if (in_yaml) yaml_ended = 1
|
||||
else in_yaml = 1
|
||||
next
|
||||
}
|
||||
}
|
||||
yaml_ended { print }
|
||||
' "$TEMPLATE_PATH"
|
||||
else
|
||||
>&2 echo "Error: Planning role '$ROLE' not found"
|
||||
>&2 echo "Use --list to see available planning roles"
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Handle legacy usage (direct role name)
|
||||
if [ -n "$COMMAND" ] && [ "$COMMAND" != "--help" ] && [ "$COMMAND" != "--list" ] && [ "$COMMAND" != "--load" ]; then
|
||||
TEMPLATE_PATH="${TEMPLATE_DIR}/${COMMAND}.md"
|
||||
|
||||
if [ -f "$TEMPLATE_PATH" ]; then
|
||||
# Output content, skipping YAML frontmatter
|
||||
awk '
|
||||
BEGIN { in_yaml = 0; yaml_ended = 0 }
|
||||
/^---$/ {
|
||||
if (!yaml_ended) {
|
||||
if (in_yaml) yaml_ended = 1
|
||||
else in_yaml = 1
|
||||
next
|
||||
}
|
||||
}
|
||||
yaml_ended { print }
|
||||
' "$TEMPLATE_PATH"
|
||||
exit 0
|
||||
else
|
||||
>&2 echo "Error: Planning role '$COMMAND' not found"
|
||||
>&2 echo "Use --list to see available planning roles"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Show help
|
||||
echo "Usage:"
|
||||
echo " plan-executor.sh --list List all available planning roles with descriptions"
|
||||
echo " plan-executor.sh --load <role> Load specific planning role template"
|
||||
echo " plan-executor.sh <role> Load specific role template (legacy format)"
|
||||
echo " plan-executor.sh --help Show this help message"
|
||||
echo " plan-executor.sh --version Show version information"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " plan-executor.sh --list"
|
||||
echo " plan-executor.sh --load system-architect"
|
||||
echo " plan-executor.sh feature-planner"
|
||||
101
.claude/scripts/tech-stack-loader.sh
Normal file
101
.claude/scripts/tech-stack-loader.sh
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
# tech-stack-loader.sh - DMSFlow Tech Stack Guidelines Loader
|
||||
# Returns tech stack specific coding guidelines and best practices for Claude processing
|
||||
|
||||
set -e
|
||||
|
||||
# Define paths
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
TEMPLATE_DIR="${SCRIPT_DIR}/../tech-stack-templates"
|
||||
|
||||
# Parse arguments
|
||||
COMMAND="$1"
|
||||
TECH_STACK="$2"
|
||||
|
||||
# Handle version check
|
||||
if [ "$COMMAND" = "--version" ] || [ "$COMMAND" = "-v" ]; then
|
||||
echo "DMSFlow tech-stack-loader v2.0"
|
||||
echo "Semantic-based development guidelines system"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# List all available guidelines
|
||||
if [ "$COMMAND" = "--list" ]; then
|
||||
echo "Available Development Guidelines:"
|
||||
echo "================================="
|
||||
for file in "$TEMPLATE_DIR"/*.md; do
|
||||
if [ -f "$file" ]; then
|
||||
# Extract name and description from YAML frontmatter
|
||||
name=$(grep "^name:" "$file" | head -1 | cut -d: -f2 | sed 's/^ *//' | sed 's/ *$//')
|
||||
desc=$(grep "^description:" "$file" | head -1 | cut -d: -f2- | sed 's/^ *//' | sed 's/ *$//')
|
||||
|
||||
if [ -n "$name" ] && [ -n "$desc" ]; then
|
||||
printf "%-20s - %s\n" "$name" "$desc"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Load specific guidelines
|
||||
if [ "$COMMAND" = "--load" ] && [ -n "$TECH_STACK" ]; then
|
||||
TEMPLATE_PATH="${TEMPLATE_DIR}/${TECH_STACK}.md"
|
||||
|
||||
if [ -f "$TEMPLATE_PATH" ]; then
|
||||
# Output content, skipping YAML frontmatter
|
||||
awk '
|
||||
BEGIN { in_yaml = 0; yaml_ended = 0 }
|
||||
/^---$/ {
|
||||
if (!yaml_ended) {
|
||||
if (in_yaml) yaml_ended = 1
|
||||
else in_yaml = 1
|
||||
next
|
||||
}
|
||||
}
|
||||
yaml_ended { print }
|
||||
' "$TEMPLATE_PATH"
|
||||
else
|
||||
>&2 echo "Error: Development guidelines '$TECH_STACK' not found"
|
||||
>&2 echo "Use --list to see available guidelines"
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Handle legacy usage (direct tech stack name)
|
||||
if [ -n "$COMMAND" ] && [ "$COMMAND" != "--help" ] && [ "$COMMAND" != "--list" ] && [ "$COMMAND" != "--load" ]; then
|
||||
TEMPLATE_PATH="${TEMPLATE_DIR}/${COMMAND}.md"
|
||||
|
||||
if [ -f "$TEMPLATE_PATH" ]; then
|
||||
# Output content, skipping YAML frontmatter
|
||||
awk '
|
||||
BEGIN { in_yaml = 0; yaml_ended = 0 }
|
||||
/^---$/ {
|
||||
if (!yaml_ended) {
|
||||
if (in_yaml) yaml_ended = 1
|
||||
else in_yaml = 1
|
||||
next
|
||||
}
|
||||
}
|
||||
yaml_ended { print }
|
||||
' "$TEMPLATE_PATH"
|
||||
exit 0
|
||||
else
|
||||
>&2 echo "Error: Development guidelines '$COMMAND' not found"
|
||||
>&2 echo "Use --list to see available guidelines"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Show help
|
||||
echo "Usage:"
|
||||
echo " tech-stack-loader.sh --list List all available guidelines with descriptions"
|
||||
echo " tech-stack-loader.sh --load <name> Load specific development guidelines"
|
||||
echo " tech-stack-loader.sh <name> Load specific guidelines (legacy format)"
|
||||
echo " tech-stack-loader.sh --help Show this help message"
|
||||
echo " tech-stack-loader.sh --version Show version information"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " tech-stack-loader.sh --list"
|
||||
echo " tech-stack-loader.sh --load javascript-dev"
|
||||
echo " tech-stack-loader.sh python-dev"
|
||||
Reference in New Issue
Block a user