Files
gh-ninthspace-claude-code-m…/commands/command-optimise.md
2025-11-30 08:44:27 +08:00

793 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# /sdd:command-optimise
## Meta
- Version: 2.0
- Category: transformation
- Complexity: moderate
- Purpose: Convert existing slash commands to LLM-optimized format with intelligent auto-detection
## Definition
**Purpose**: Transform slash command documentation into LLM-optimised format by analysing the command's content to determine optimal formatting, then replaces the original command file with the optimised version.
**Syntax**: `/sdd:command-optimise <command_ref> [format_style] [strictness] [--dry-run]`
## Parameters
| Parameter | Type | Required | Default | Description | Validation |
|-----------|------|----------|---------|-------------|------------|
| command_ref | string | Yes | - | Command name (e.g., "/deploy") OR full command documentation text | Non-empty |
| format_style | string | No | "auto" | Output format style | One of: auto, structured, xml, json, imperative, contract |
| strictness | string | No | "auto" | Level of detail and validation rules | One of: auto, minimal, standard, comprehensive |
| --dry-run | flag | No | false | Preview changes without writing to file | Boolean flag |
## Behavior
```
ON INVOCATION:
1. DETERMINE input type and retrieve command documentation:
IF command_ref starts with "/" AND has no spaces/newlines:
// This is a command name reference
SEARCH for command documentation:
- Look in project's /sdd:commands directory
- Check registered command definitions
- Search documentation files
- Query command registry
IF command found:
SET command_text = retrieved documentation
ELSE:
RETURN "Error: Command '{command_ref}' not found. Please provide the full command text."
ELSE:
// This is the full command documentation
SET command_text = command_ref
2. PARSE command documentation:
- Extract command name (look for /sdd:command patterns)
- Identify any existing parameters/arguments
- Find usage examples if present
- Detect implicit behavior from description
- Extract action verbs and keywords from documentation
3. ANALYZE command content to determine optimal configuration:
EXAMINE command documentation for indicators:
// Check for STATE MODIFICATION indicators
STATE_MODIFYING_INDICATORS = [
"saves", "writes", "updates", "modifies", "changes", "deletes", "removes",
"creates", "inserts", "deploys", "publishes", "commits", "persists",
"alters", "mutates", "transforms production", "affects live"
]
// Check for SECURITY/CRITICAL indicators
SECURITY_INDICATORS = [
"authenticate", "authorize", "encrypt", "decrypt", "password", "token",
"certificate", "permission", "access control", "security", "vulnerability",
"sensitive", "credential", "private key", "secret"
]
// Check for ANALYSIS/INSPECTION indicators
ANALYSIS_INDICATORS = [
"analyzes", "scans", "inspects", "examines", "profiles", "measures",
"benchmarks", "evaluates", "assesses", "diagnoses", "investigates",
"reports on", "collects metrics", "gathers data"
]
// Check for VALIDATION/TESTING indicators
VALIDATION_INDICATORS = [
"tests", "validates", "verifies", "checks", "asserts", "ensures",
"confirms", "proves", "quality assurance", "QA", "unit test",
"integration test", "e2e", "smoke test"
]
// Check for CONFIGURATION indicators
CONFIG_INDICATORS = [
"configures", "sets up", "initializes", "options", "settings",
"preferences", "environment", "parameters", "flags", "toggles"
]
// Check for SEARCH/QUERY indicators
SEARCH_INDICATORS = [
"searches", "finds", "queries", "lists", "fetches", "retrieves",
"gets", "selects", "filters", "looks up", "discovers"
]
// Check for DOCUMENTATION indicators
DOC_INDICATORS = [
"documents", "generates docs", "creates documentation", "API spec",
"readme", "comments", "annotates", "describes", "explains"
]
// Analyze parameter complexity
PARAM_COMPLEXITY = COUNT(parameters) +
COUNT(nested_params) * 2 +
COUNT(optional_params) * 0.5
// Analyze behavior complexity
BEHAVIOR_COMPLEXITY = COUNT(steps) +
COUNT(conditionals) * 2 +
COUNT(error_cases)
// DECISION TREE for format selection:
IF (contains STATE_MODIFYING_INDICATORS && contains("production|live|database")):
format = "contract" // Need guarantees
strictness = "comprehensive"
reason = "Command modifies production state - requires strict pre/post conditions"
ELSE IF (contains SECURITY_INDICATORS):
format = "contract" // Security needs guarantees
strictness = "comprehensive"
reason = "Security-sensitive command - requires comprehensive validation"
ELSE IF (contains VALIDATION_INDICATORS && BEHAVIOR_COMPLEXITY > 5):
format = "contract" // Complex testing needs clear contracts
strictness = "comprehensive"
reason = "Complex validation logic - benefits from GIVEN/WHEN/THEN structure"
ELSE IF (contains ANALYSIS_INDICATORS && mentions("step|phase|process")):
format = "imperative" // Multi-step analysis
strictness = "comprehensive"
reason = "Multi-step analysis process - suits INSTRUCTION/PROCESS format"
ELSE IF (PARAM_COMPLEXITY > 8 || has_nested_objects):
format = "json" // Complex parameters
strictness = "standard"
reason = "Complex parameter structure - JSON schema provides clarity"
ELSE IF (contains CONFIG_INDICATORS && has_multiple_options):
format = "json" // Configuration with options
strictness = "standard"
reason = "Configuration command with multiple options - JSON format ideal"
ELSE IF (contains DOC_INDICATORS):
format = "xml" // Rich documentation
strictness = "comprehensive"
reason = "Documentation generation - XML provides rich metadata structure"
ELSE IF (contains SEARCH_INDICATORS && PARAM_COMPLEXITY < 3):
format = "json" // Simple search
strictness = "minimal"
reason = "Simple search/query command - minimal JSON sufficient"
ELSE IF (BEHAVIOR_COMPLEXITY < 3 && PARAM_COMPLEXITY < 3):
format = "structured" // Simple command
strictness = "minimal"
reason = "Simple utility command - basic structure sufficient"
ELSE IF (contains("build|compile|make|bundle")):
format = "imperative" // Build process
strictness = "standard"
reason = "Build process - benefits from step-by-step PROCESS format"
ELSE:
format = "structured" // Default fallback
strictness = "standard"
reason = "Standard command - balanced structure and detail"
4. LOG analysis decision:
```
Command Analysis Results:
━━━━━━━━━━━━━━━━━━━━━━━━
Detected Characteristics:
- State Modification: [Yes/No] {indicators found}
- Security Concerns: [Yes/No] {indicators found}
- Parameter Complexity: [Low/Medium/High] (score: X)
- Behavior Complexity: [Low/Medium/High] (score: Y)
- Primary Function: [category]
Selected Configuration:
- Format: [format_style]
- Strictness: [strictness]
- Reasoning: [detailed explanation]
```
5. TRANSFORM to selected format_style:
IF format_style="structured":
- Use markdown headers with consistent hierarchy
- Add parameter table with types
- Include behavior steps
- Add examples section
IF format_style="xml":
- Wrap in XML-style tags
- Separate purpose, syntax, parameters, behavior
- Include constraints section
IF format_style="json":
- Convert to JSON schema format
- Include type definitions
- Add execution_steps array
IF format_style="imperative":
- Use INSTRUCTION/PROCESS format
- Add INPUTS/OUTPUTS sections
- Include RULES with MUST/SHOULD/NEVER
IF format_style="contract":
- Use GIVEN/WHEN/THEN format
- Add PRECONDITIONS/POSTCONDITIONS
- Include INVARIANTS
6. ENHANCE based on strictness:
IF strictness="minimal":
- Add only essential missing elements
- Basic type annotations
- Simple examples
IF strictness="standard":
- Complete parameter documentation
- Validation rules
- Error handling section
- Multiple examples
IF strictness="comprehensive":
- Detailed type specifications
- Edge case handling
- Performance considerations
- Version information
- Related commands
- Security considerations (if applicable)
- Rollback procedures (if state-modifying)
7. VALIDATE converted documentation:
- Ensure all parameters are documented
- Verify examples match syntax
- Check for ambiguous instructions
8. WRITE optimised command to file:
IF --dry-run flag is set:
DISPLAY preview of changes:
```
DRY RUN - No files will be modified
────────────────────────────────────
Original file: /commands/deploy.md
Format: contract
Strictness: comprehensive
Preview of changes:
[Show diff or preview]
To apply changes, run without --dry-run
```
ELSE:
// Create backup of original
IF command was loaded from file:
COPY original to "{filename}.backup-{timestamp}"
LOG "Backup created: {backup_path}"
// Determine output path
IF command_ref was a name reference:
SET output_path = original file location
ELSE:
// For text input, create new file
SET output_path = "/commands/{command_name}.md"
// Write optimised version
WRITE optimised documentation to output_path
// Log the update
GENERATE update report:
```
✅ Command Successfully Optimised
═══════════════════════════════════
Command: {command_name}
Original: {original_path}
Backup: {backup_path}
Updated: {output_path}
Format Applied: {format_style}
Strictness: {strictness_level}
Timestamp: {iso_timestamp}
Changes Applied:
- Added type annotations to {n} parameters
- Generated {n} usage examples
- Added {validation_rules} validation rules
- Created {sections} new documentation sections
File has been updated in place.
To revert: mv {backup_path} {output_path}
```
9. RETURN confirmation with analysis report and file paths
```
## Examples
### Example 1: Replace Command File
```bash
INPUT:
/sdd:command-optimise /deploy
PROCESS:
→ Retrieved documentation from /commands/deploy.md
→ Created backup: /commands/deploy.md.backup-20250127-143022
→ Analysed and optimised command
→ Wrote optimised version to /commands/deploy.md
OUTPUT:
✅ Command Successfully Optimised
═══════════════════════════════════
Command: /deploy
Original: /commands/deploy.md
Backup: /commands/deploy.md.backup-20250127-143022
Updated: /commands/deploy.md
Format Applied: contract
Strictness: comprehensive
Timestamp: 2025-01-27T14:30:22Z
Changes Applied:
- Added type annotations to 5 parameters
- Generated 3 usage examples
- Added 8 validation rules
- Created 4 new documentation sections
File has been updated in place.
To revert: mv /commands/deploy.md.backup-20250127-143022 /commands/deploy.md
```
### Example 2: Dry Run Preview
```bash
INPUT:
/sdd:command-optimise /api-call json comprehensive --dry-run
PROCESS:
→ Retrieved documentation from /commands/api-call.md
→ Analysed and optimised command
→ DRY RUN MODE - No files modified
OUTPUT:
DRY RUN - No files will be modified
────────────────────────────────────
Original file: /commands/api-call.md
Format: json (manually specified)
Strictness: comprehensive (manually specified)
Preview of changes:
- FROM: Simple text documentation
- TO: Full JSON schema with type definitions
- Added: Error handling section
- Added: 5 usage examples
- Added: Parameter validation rules
[Shows preview of optimised content]
To apply changes, run without --dry-run:
/sdd:command-optimise /api-call json comprehensive
```
### Example 3: Create New File from Text
```bash
INPUT:
/sdd:command-optimise "
/process-data - handles user data
Takes input file, transforms it, and saves the results to the database.
Can update existing records or create new ones.
"
PROCESS:
→ Detected full command documentation (contains spaces/newlines)
→ Analyzing provided text directly
ANALYSIS:
✓ Found state modification indicators: "saves", "database", "update"
[Continues with normal analysis...]
```
### Example 4: Command Not Found
```bash
INPUT:
/sdd:command-optimise /unknown-command
PROCESS:
→ Detected command name reference: "/unknown-command"
→ Searching command registry...
→ Command not found
OUTPUT:
Error: Command '/unknown-command' not found. Please provide the full command text or ensure the command name is correct.
```
### Example 5: Auto-Detects State Modification in Retrieved Command
```bash
INPUT:
/sdd:command-optimise /migrate-db
PROCESS:
→ Retrieved from: /commands/migrate-db.md
→ Created backup: /commands/migrate-db.md.backup-20250127-143045
ANALYSIS:
✓ Found state modification indicators: "migrations", "updates", "schema"
✓ Found database indicators: "database", "schema"
✓ Detected: Database migration command
✓ Applied: contract format + comprehensive strictness
✓ Reasoning: Database changes need strict pre/post conditions
OUTPUT:
✅ Command Successfully Optimised
═══════════════════════════════════
Command: /migrate-db
Original: /commands/migrate-db.md
Backup: /commands/migrate-db.md.backup-20250127-143045
Updated: /commands/migrate-db.md
Format Applied: contract
Strictness: comprehensive
File has been updated in place.
✓ Applied: contract format + comprehensive strictness
✓ Reasoning: Command modifies database state - requires strict pre/post conditions
OUTPUT:
CONTRACT: Data Processing Command
GIVEN: Input file with user data to process
WHEN: The /process-data command is invoked
THEN: Data is transformed and persisted to database
PRECONDITIONS:
✓ Input file exists and is readable
✓ File format is valid (CSV/JSON/XML)
✓ Database connection is available
✓ User has write permissions
✓ Sufficient storage space available
ACTIONS:
→ Validate input file format
→ Parse and load data into memory
→ Apply transformation rules
→ Check for existing records
→ IF existing: Update with new values
→ ELSE: Create new records
→ Commit transaction to database
→ Generate operation report
POSTCONDITIONS:
✓ All valid data is saved to database
✓ Invalid records are logged
✓ Transaction is atomic (all or nothing)
✓ Audit trail is updated
✓ Report contains success/failure counts
INVARIANTS:
• Data integrity is maintained
• No partial updates on failure
• Original file is never modified
• Database constraints are respected
```
### Example 6: Auto-Detects Complex Parameters
```bash
INPUT:
/optimize-command "
/api-call - makes HTTP requests
Parameters:
- url: target endpoint
- method: GET, POST, PUT, DELETE
- headers: object with header key-values
- body: nested JSON payload
- auth: {type: 'bearer'|'basic', credentials: {...}}
- retry: {attempts: number, delay: number}
"
ANALYSIS:
✓ Parameter complexity score: 12 (6 params, 3 nested objects)
✓ Detected: Complex parameter structure
✓ Applied: json format + standard strictness
✓ Reasoning: Complex nested parameters - JSON schema provides clarity
OUTPUT:
{
"command": "/api-call",
"description": "Execute HTTP requests with configurable options",
"parameters": {
"url": {
"type": "string",
"required": true,
"description": "Target endpoint URL",
"pattern": "^https?://.+"
},
"method": {
"type": "string",
"required": false,
"default": "GET",
"enum": ["GET", "POST", "PUT", "DELETE", "PATCH"]
},
"headers": {
"type": "object",
"required": false,
"description": "HTTP headers as key-value pairs",
"additionalProperties": {"type": "string"}
},
"body": {
"type": "object",
"required": false,
"description": "Request body for POST/PUT requests"
},
"auth": {
"type": "object",
"required": false,
"properties": {
"type": {"enum": ["bearer", "basic"], "required": true},
"credentials": {
"type": "object",
"properties": {
"token": {"type": "string"},
"username": {"type": "string"},
"password": {"type": "string"}
}
}
}
},
"retry": {
"type": "object",
"required": false,
"properties": {
"attempts": {"type": "integer", "minimum": 1, "maximum": 5},
"delay": {"type": "integer", "minimum": 100, "maximum": 5000}
}
}
},
"execution_steps": [
"Validate URL format",
"Configure authentication if provided",
"Set request headers",
"Prepare request body if applicable",
"Execute HTTP request with retry logic",
"Handle response or errors",
"Format and return results"
],
"error_handling": {
"invalid_url": "Return error: 'Invalid URL format'",
"network_error": "Retry according to retry config, then fail",
"auth_failure": "Return 401 with auth error details",
"timeout": "Retry with exponential backoff"
}
}
```
### Example 3: Auto-Detects Multi-Step Process
```bash
INPUT:
/optimize-command "
/analyze-codebase
Performs code analysis in three phases:
1. First scans all files for syntax errors
2. Then checks for code smells and anti-patterns
3. Finally generates a detailed report with metrics
Each phase must complete before the next begins.
"
ANALYSIS:
✓ Found analysis indicators: "analyzes", "scans", "checks", "report", "metrics"
✓ Detected multi-step process: "phases", "First", "Then", "Finally"
✓ Behavior complexity: High (3 phases + sequencing)
✓ Applied: imperative format + comprehensive strictness
✓ Reasoning: Multi-step analysis process - suits INSTRUCTION/PROCESS format
OUTPUT:
/analyze-codebase
INSTRUCTION: Perform comprehensive codebase analysis in sequential phases
INPUTS:
- path: Root directory to analyze (required)
- config: Analysis configuration file (optional, default: .analysis.yml)
- output: Report output format [json|html|markdown] (optional, default: markdown)
- exclude: Patterns to exclude from analysis (optional)
PROCESS:
Phase 1: Syntax Analysis
1. SCAN all source files in specified path
2. IDENTIFY file types by extension
3. FOR EACH file:
- PARSE using language-specific parser
- COLLECT syntax errors with line numbers
- TRACK warning-level issues
4. IF errors found THEN log to phase1_errors.log
5. PROCEED only if no blocking errors
Phase 2: Code Quality Analysis
1. LOAD code smell detection rules
2. FOR EACH validated file:
- CHECK for duplicated code blocks
- IDENTIFY complex methods (cyclomatic complexity > 10)
- DETECT anti-patterns specific to language
- MEASURE code coverage if tests present
3. AGGREGATE findings by severity
4. CALCULATE quality score per file
Phase 3: Report Generation
1. COMPILE all findings from Phase 1 and 2
2. GENERATE metrics:
- Total lines of code
- Technical debt estimation
- Complexity distribution
- Issue density by module
3. CREATE visualizations if HTML output
4. FORMAT report according to output parameter
5. WRITE report to specified location
OUTPUT FORMAT:
```
Code Analysis Report
Generated: [timestamp]
Phase 1: Syntax Results
- Files Scanned: X
- Syntax Errors: Y
- Warnings: Z
Phase 2: Quality Findings
- Critical Issues: A
- Major Issues: B
- Minor Issues: C
- Quality Score: X/100
Phase 3: Metrics
[Detailed metrics table]
```
RULES:
- MUST complete each phase before proceeding
- NEVER analyze binary files
- SHOULD respect .gitignore patterns by default
- MUST handle large codebases incrementally
- ALWAYS provide progress indicators
```
### Example 4: Auto-Detects Security Concerns
```bash
INPUT:
/optimize-command "
/rotate-keys
Updates API keys and certificates. Handles sensitive credential rotation.
Requires admin authentication. Modifies production secrets.
"
ANALYSIS:
✓ Found security indicators: "keys", "certificates", "credential", "authentication", "secrets"
✓ Found state modification: "Updates", "Modifies", "production"
✓ Detected: Security-critical state modification
✓ Applied: contract format + comprehensive strictness
✓ Reasoning: Security-sensitive command modifying production - requires maximum safety
OUTPUT:
CONTRACT: Secure Key Rotation Command
GIVEN: Valid admin credentials and keys to rotate
WHEN: The /rotate-keys command is invoked with proper authorization
THEN: Keys are rotated securely with zero downtime
PRECONDITIONS:
✓ User has admin-level authentication
✓ Multi-factor authentication completed
✓ Audit logging is enabled
✓ Backup of current keys exists
✓ No active operations using current keys
✓ Key rotation window is open
✓ All dependent services notified
ACTIONS:
→ Verify admin authorization
→ Create encrypted backup of current keys
→ Generate new keys with proper entropy
→ Update keys in secure vault
→ Propagate to dependent services
→ Verify service connectivity
→ Mark old keys for deprecation
→ Update audit log
POSTCONDITIONS:
✓ New keys are active in all systems
✓ Old keys remain valid for grace period
✓ All services operational with new keys
✓ Audit trail complete with timestamp
✓ Backup is encrypted and stored
✓ Rollback plan is documented
INVARIANTS:
• Zero downtime during rotation
• Keys never exposed in logs
• Audit trail is immutable
• Encryption at rest and in transit
SECURITY CONSTRAINTS:
- MUST use hardware security module if available
- NEVER log key values
- ALWAYS use secure random generation
- MUST notify security team on completion
- REQUIRES two-person authorization for production
```
## Auto-Detection Logic
The command analyzes the CONTENT of your existing command documentation to determine optimal format:
### 🔍 What It Looks For:
1. **State Modification**`contract + comprehensive`
- Words like: saves, writes, updates, modifies, deletes, deploys
- Mentions: database, production, live system
2. **Security/Sensitive Operations**`contract + comprehensive`
- Words like: authenticate, encrypt, password, token, credential
- Mentions: security, permission, secret, private key
3. **Multi-Step Processes**`imperative + comprehensive`
- Structure: "Phase 1... Phase 2..." or "First... Then... Finally..."
- Words like: analyzes, scans, processes, evaluates + step indicators
4. **Complex Parameters**`json + standard`
- Multiple nested objects
- Arrays of options
- 5+ parameters with complex types
5. **Simple Queries**`json + minimal`
- Words like: search, find, get, list, query
- Few parameters (<3)
- No state modification
6. **Simple Utilities**`structured + minimal`
- Basic operations
- Minimal parameters
- No complex behavior
### 📊 Complexity Scoring:
- **Parameter Complexity** = base params + (nested × 2) + (optional × 0.5)
- **Behavior Complexity** = steps + (conditionals × 2) + error cases
- High complexity → More comprehensive documentation needed
## Constraints
- ⛔ NEVER discard existing information from the original command
- ⚠️ ALWAYS preserve original command name exactly as provided
- ✅ MUST add type information for all parameters
- ✅ MUST include at least one usage example
- 📝 SHOULD infer missing details from context when possible
- 🔍 SHOULD flag ambiguities for user review
## Error Handling
- If command_text is empty: Return "Error: No command text provided"
- If no command name detected: Return "Error: Could not identify command name (expected /sdd:command format)"
- If format_style invalid: Return "Error: Unknown format style. Use: auto, structured, xml, json, imperative, or contract"
- If parsing fails: Return partial optimization with warnings about unparseable sections
## Usage Patterns
### Quick Command Reference
```bash
# Optimise a command by name only
/sdd:command-optimise /deploy
# Optimise with specific format
/sdd:command-optimise /api-call json
# Optimise with format and strictness
/sdd:command-optimise /security-scan imperative comprehensive
# Provide full text when command isn't in registry
/sdd:command-optimise "
/custom-command - does something special
Parameters: input, output, options
Behavior: processes input and produces output
"
```
### Command Name Detection Logic
The system determines if input is a command name reference by checking:
1. Starts with "/" character
2. Contains no spaces or newlines (single token)
3. Looks like a command name pattern (/word-word)
If these conditions are met, it searches for the command documentation.
Otherwise, it treats the input as the full command text to analyze.
## Notes
- Command names are searched in the project's command registry
- If a command isn't found by name, provide the full documentation text
- Manual format/strictness override works with both name references and full text
- The optimiser analyses actual command content, not just the command name