Fix session management location inference and ccw command usage

This commit addresses multiple issues in session management and command documentation:

Session Management Fixes:
- Add auto-inference of location from type parameter in session.ts
- When --type lite-plan/lite-fix is specified, automatically set location accordingly
- Preserve explicit --location parameter when provided
- Update session-manager.ts to support type-based location inference
- Fix metadata filename selection (session-metadata.json vs workflow-session.json)

Command Documentation Fixes:
- Add missing --mode analysis parameter (3 locations):
  * commands/memory/docs.md
  * commands/workflow/lite-execute.md (2 instances)
- Add missing --mode write parameter (4 locations):
  * commands/workflow/tools/task-generate-agent.md
- Remove non-existent subcommands (3 locations):
  * commands/workflow/session/complete.md (manifest, project)
- Update session command syntax to use simplified format:
  * Changed from 'ccw session manifest read' to 'test -f' checks
  * Changed from 'ccw session project read' to 'test -f' checks

Documentation Updates:
- Update lite-plan.md and lite-fix.md to use --type parameter
- Update session/start.md to document lite-plan and lite-fix types
- Sync all fixes to skills/command-guide/reference directory (84 files)

All ccw command usage across the codebase is now consistent and correct.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
catlog22
2025-12-17 18:09:23 +08:00
parent 74a830694c
commit c16da759b2
46 changed files with 1318 additions and 411 deletions

View File

@@ -34,7 +34,7 @@ ccw session list --location active
#### Step 1.2: Check for Existing Archiving Marker (Resume Detection)
```bash
# Check if session is already being archived (marker file exists)
ccw session read WFS-session-name --type process --filename .archiving 2>/dev/null && echo "RESUMING" || echo "NEW"
ccw session WFS-session-name read .process/.archiving 2>/dev/null && echo "RESUMING" || echo "NEW"
```
**If RESUMING**:
@@ -47,7 +47,7 @@ ccw session read WFS-session-name --type process --filename .archiving 2>/dev/nu
#### Step 1.3: Create Archiving Marker
```bash
# Mark session as "archiving in progress"
ccw session write WFS-session-name --type process --filename .archiving --content ''
ccw session WFS-session-name write .process/.archiving ''
```
**Purpose**:
- Prevents concurrent operations on this session
@@ -171,8 +171,8 @@ ccw session archive WFS-session-name
#### Step 3.2: Update Manifest
```bash
# Read current manifest using ccw (or create empty array if not exists)
ccw session read manifest --type manifest --raw 2>/dev/null || echo "[]"
# Check if manifest exists
test -f .workflow/archives/manifest.json && echo "EXISTS" || echo "NOT_FOUND"
```
**JSON Update Logic**:
@@ -221,8 +221,8 @@ rm .workflow/archives/WFS-session-name/.process/.archiving 2>/dev/null || true
#### Step 4.1: Check Project State Exists
```bash
# Check project state using ccw
ccw session read project --type project 2>/dev/null && echo "EXISTS" || echo "SKIP"
# Check if project.json exists
test -f .workflow/project.json && echo "EXISTS" || echo "SKIP"
```
**If SKIP**: Output warning and skip Phase 4
@@ -249,11 +249,6 @@ const featureId = title.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 5
#### Step 4.3: Update project.json
```bash
# Read current project state using ccw
ccw session read project --type project --raw
```
**JSON Update Logic**:
```javascript
// Read existing project.json (created by /workflow:init)

View File

@@ -30,7 +30,7 @@ ccw session stats WFS-session
### Step 3: Read Session Metadata
```bash
ccw session read WFS-session --type session
ccw session WFS-session read workflow-session.json
# Returns: session_id, status, project, created_at, etc.
```
@@ -39,8 +39,8 @@ ccw session read WFS-session --type session
### Basic Operations
- **List all sessions**: `ccw session list`
- **List active only**: `ccw session list --location active`
- **Read session data**: `ccw session read WFS-xxx --type session`
- **Get task stats**: `ccw session stats WFS-xxx`
- **Read session data**: `ccw session WFS-xxx read workflow-session.json`
- **Get task stats**: `ccw session WFS-xxx stats`
## Simple Output Format

View File

@@ -23,7 +23,7 @@ ccw session list --location active
### Step 2: Check Session Status
```bash
ccw session read WFS-session --type session
ccw session WFS-session read workflow-session.json
# Check .status field in response
```
@@ -35,17 +35,15 @@ ccw session list --location active
### Step 4: Update Session Status to Active
```bash
ccw session status WFS-session active
# Or with full update:
ccw session update WFS-session --type session --content '{"status":"active","resumed_at":"2025-12-10T08:00:00Z"}'
ccw session WFS-session status active
```
## Simple Commands
### Basic Operations
- **List sessions**: `ccw session list --location active`
- **Check status**: `ccw session read WFS-xxx --type session`
- **Update status**: `ccw session status WFS-xxx active`
- **Check status**: `ccw session WFS-xxx read workflow-session.json`
- **Update status**: `ccw session WFS-xxx status active`
### Resume Result
```

View File

@@ -30,10 +30,17 @@ The `--type` parameter classifies sessions for CCW dashboard organization:
| `tdd` | TDD-based development | `/workflow:tdd-plan` |
| `test` | Test generation/fix sessions | `/workflow:test-fix-gen` |
| `docs` | Documentation sessions | `/memory:docs` |
| `lite-plan` | Lightweight planning workflow | `/workflow:lite-plan` |
| `lite-fix` | Lightweight bug fix workflow | `/workflow:lite-fix` |
**Special Behavior for `lite-plan` and `lite-fix`**:
- These types automatically infer the storage location (`.workflow/.lite-plan/` or `.workflow/.lite-fix/`)
- No need to specify `--location` parameter when using these types
- Alternative: Use `--location lite-plan` or `--location lite-fix` directly
**Validation**: If `--type` is provided with invalid value, return error:
```
ERROR: Invalid session type. Valid types: workflow, review, tdd, test, docs
ERROR: Invalid session type. Valid types: workflow, review, tdd, test, docs, lite-plan, lite-fix
```
## Step 0: Initialize Project State (First-time Only)
@@ -75,7 +82,7 @@ ccw session list --location active
### Step 2: Display Session Metadata
```bash
ccw session read WFS-promptmaster-platform --type session
ccw session WFS-promptmaster-platform read workflow-session.json
```
### Step 4: User Decision
@@ -102,7 +109,7 @@ ccw session list --location active
# Pattern: WFS-{lowercase-slug-from-description}
# Create session with ccw (creates directories + metadata atomically)
ccw session init WFS-implement-oauth2-auth --type workflow --content '{"project":"implement OAuth2 auth","status":"planning"}'
ccw session init WFS-implement-oauth2-auth --type workflow
```
**Output**: `SESSION_ID: WFS-implement-oauth2-auth`
@@ -113,7 +120,7 @@ ccw session init WFS-implement-oauth2-auth --type workflow --content '{"project"
ccw session list --location active
# Read session metadata for relevance check
ccw session read WFS-promptmaster-platform --type session
ccw session WFS-promptmaster-platform read workflow-session.json
# If task contains project keywords → Reuse session
# If task unrelated → Create new session (use Step 2a)
@@ -149,10 +156,41 @@ ccw session list --location active
### Step 2: Create Session Structure
```bash
# Single command creates directories (.process, .task, .summaries) + metadata
ccw session init WFS-fix-login-bug --type workflow --content '{"project":"fix login bug","status":"planning"}'
# Basic init - creates directories + default metadata
ccw session init WFS-fix-login-bug --type workflow
# Advanced init - with custom metadata
ccw session init WFS-oauth-implementation --type workflow --content '{"description":"OAuth2 authentication system","priority":"high","complexity":"medium"}'
```
**Default Metadata** (auto-generated):
```json
{
"session_id": "WFS-fix-login-bug",
"type": "workflow",
"status": "planning",
"created_at": "2025-12-17T..."
}
```
**Custom Metadata** (merged with defaults):
```json
{
"session_id": "WFS-oauth-implementation",
"type": "workflow",
"status": "planning",
"created_at": "2025-12-17T...",
"description": "OAuth2 authentication system",
"priority": "high",
"complexity": "medium"
}
```
**Field Usage**:
- `description`: Displayed in dashboard (replaces session_id as title)
- `status`: Can override default "planning" (e.g., "active", "implementing")
- Custom fields: Any additional fields are saved and accessible programmatically
**Output**: `SESSION_ID: WFS-fix-login-bug`
## Execution Guideline