Implement comprehensive project.json system for tracking project state, completed features, and architecture overview. ## New Features ### 1. /workflow:init Command (NEW) - Independent project initialization command using cli-explore-agent - Deep Scan mode analyzes: technology stack, architecture, key components, metrics - Generates project.json with comprehensive overview field - Supports --regenerate flag to update analysis while preserving features - One-time initialization with intelligent project cognition ### 2. Enhanced session:start - Added Step 0: Check project.json existence before session creation - Auto-calls /workflow:init if project.json missing - Separated project-level vs session-level initialization responsibilities ### 3. Enhanced session:complete - Added Phase 3: Update Project Feature Registry - Extracts feature metadata from IMPL_PLAN.md - Records completed sessions as features in project.json - Includes: title, description, tags, timeline, traceability (archive_path, commit_hash) - Auto-generates feature IDs and tags from implementation plans ### 4. Enhanced status Command - Added --project flag for project overview mode - Displays: technology stack, architecture patterns, key components, metrics - Shows completed features with full traceability - Provides query commands for feature exploration ### 5. Enhanced context-gather - Integrated project.json reading in context-search-agent workflow - Phase 1: Load project.json overview as foundational context - Phase 3: Populate context-package.json from project.json - Prioritizes project.json context for architecture and tech stack - Avoids redundant project analysis on every planning session ## Data Flow project.json (init) → context-gather → context-package.json → task-generation session-complete → project.json (features registry) ## Benefits - Single source of truth for project state - Efficient context reuse across sessions - Complete feature traceability and history - Consistent architectural baseline for all workflows 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
6.8 KiB
Start Workflow Session (/workflow:session:start)
Overview
Manages workflow sessions with three operation modes: discovery (manual), auto (intelligent), and force-new.
Dual Responsibility:
- Project-level initialization (first-time only): Creates
.workflow/project.jsonfor feature registry - Session-level initialization (always): Creates session directory structure
Step 0: Initialize Project State (First-time Only)
Executed before all modes - Ensures project-level state file exists by calling /workflow:init.
Check and Initialize
# Check if project state exists
bash(test -f .workflow/project.json && echo "EXISTS" || echo "NOT_FOUND")
If NOT_FOUND, delegate to /workflow:init:
// Call workflow:init for intelligent project analysis
SlashCommand({command: "/workflow:init"});
// Wait for init completion
// project.json will be created with comprehensive project overview
Output:
- If EXISTS:
PROJECT_STATE: initialized - If NOT_FOUND: Calls
/workflow:init→ creates.workflow/project.jsonwith full project analysis
Note: /workflow:init uses cli-explore-agent to build comprehensive project understanding (technology stack, architecture, key components). This step runs once per project. Subsequent executions skip initialization.
Mode 1: Discovery Mode (Default)
Usage
/workflow:session:start
Step 1: Check Active Sessions
bash(ls .workflow/.active-* 2>/dev/null)
Step 2: List All Sessions
bash(ls -1 .workflow/WFS-* 2>/dev/null | head -5)
Step 3: Display Session Metadata
bash(cat .workflow/WFS-promptmaster-platform/workflow-session.json)
Step 4: User Decision
Present session information and wait for user to select or create session.
Output: SESSION_ID: WFS-[user-selected-id]
Mode 2: Auto Mode (Intelligent)
Usage
/workflow:session:start --auto "task description"
Step 1: Check Active Sessions Count
bash(ls .workflow/.active-* 2>/dev/null | wc -l)
Step 2a: No Active Sessions → Create New
# Generate session slug
bash(echo "implement OAuth2 auth" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]' | cut -c1-50)
# Create directory structure
bash(mkdir -p .workflow/WFS-implement-oauth2-auth/.process)
bash(mkdir -p .workflow/WFS-implement-oauth2-auth/.task)
bash(mkdir -p .workflow/WFS-implement-oauth2-auth/.summaries)
# Create metadata
bash(echo '{"session_id":"WFS-implement-oauth2-auth","project":"implement OAuth2 auth","status":"planning"}' > .workflow/WFS-implement-oauth2-auth/workflow-session.json)
# Mark as active
bash(touch .workflow/.active-WFS-implement-oauth2-auth)
Output: SESSION_ID: WFS-implement-oauth2-auth
Step 2b: Single Active Session → Check Relevance
# Extract session ID
bash(ls .workflow/.active-* 2>/dev/null | head -1 | xargs basename | sed 's/^\.active-//')
# Read project name from metadata
bash(cat .workflow/WFS-promptmaster-platform/workflow-session.json | grep -o '"project":"[^"]*"' | cut -d'"' -f4)
# Check keyword match (manual comparison)
# If task contains project keywords → Reuse session
# If task unrelated → Create new session (use Step 2a)
Output (reuse): SESSION_ID: WFS-promptmaster-platform
Output (new): SESSION_ID: WFS-[new-slug]
Step 2c: Multiple Active Sessions → Use First
# Get first active session
bash(ls .workflow/.active-* 2>/dev/null | head -1 | xargs basename | sed 's/^\.active-//')
# Output warning and session ID
# WARNING: Multiple active sessions detected
# SESSION_ID: WFS-first-session
Mode 3: Force New Mode
Usage
/workflow:session:start --new "task description"
Step 1: Generate Unique Session Slug
# Convert to slug
bash(echo "fix login bug" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]' | cut -c1-50)
# Check if exists, add counter if needed
bash(ls .workflow/WFS-fix-login-bug 2>/dev/null && echo "WFS-fix-login-bug-2" || echo "WFS-fix-login-bug")
Step 2: Create Session Structure
bash(mkdir -p .workflow/WFS-fix-login-bug/.process)
bash(mkdir -p .workflow/WFS-fix-login-bug/.task)
bash(mkdir -p .workflow/WFS-fix-login-bug/.summaries)
Step 3: Create Metadata
bash(echo '{"session_id":"WFS-fix-login-bug","project":"fix login bug","status":"planning"}' > .workflow/WFS-fix-login-bug/workflow-session.json)
Step 4: Mark Active and Clean Old Markers
bash(rm .workflow/.active-* 2>/dev/null)
bash(touch .workflow/.active-WFS-fix-login-bug)
Output: SESSION_ID: WFS-fix-login-bug
Output Format Specification
Success
SESSION_ID: WFS-session-slug
Error
ERROR: --auto mode requires task description
ERROR: Failed to create session directory
Analysis (Auto Mode)
ANALYSIS: Task relevance = high
DECISION: Reusing existing session
SESSION_ID: WFS-promptmaster-platform
Command Integration
For /workflow:plan (Use Auto Mode)
SlashCommand(command="/workflow:session:start --auto \"implement OAuth2 authentication\"")
# Parse session ID from output
grep "^SESSION_ID:" | awk '{print $2}'
For Interactive Workflows (Use Discovery Mode)
SlashCommand(command="/workflow:session:start")
For New Isolated Work (Use Force New Mode)
SlashCommand(command="/workflow:session:start --new \"experimental feature\"")
Simple Bash Commands
Basic Operations
# Check active sessions
bash(ls .workflow/.active-*)
# List all sessions
bash(ls .workflow/WFS-*)
# Read session metadata
bash(cat .workflow/WFS-[session-id]/workflow-session.json)
# Create session directories
bash(mkdir -p .workflow/WFS-[session-id]/.process)
bash(mkdir -p .workflow/WFS-[session-id]/.task)
bash(mkdir -p .workflow/WFS-[session-id]/.summaries)
# Mark session as active
bash(touch .workflow/.active-WFS-[session-id])
# Clean active markers
bash(rm .workflow/.active-*)
Generate Session Slug
bash(echo "Task Description" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]' | cut -c1-50)
Create Metadata JSON
bash(echo '{"session_id":"WFS-test","project":"test project","status":"planning"}' > .workflow/WFS-test/workflow-session.json)
Session ID Format
- Pattern:
WFS-[lowercase-slug] - Characters:
a-z,0-9,-only - Max length: 50 characters
- Uniqueness: Add numeric suffix if collision (
WFS-auth-2,WFS-auth-3)