@iservu-inc/adf-cli 0.1.4 → 0.1.6

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/CHANGELOG.md ADDED
@@ -0,0 +1,138 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@iservu-inc/adf-cli` will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.6] - 2025-10-02
11
+
12
+ ### Fixed
13
+ - Fixed step numbering in init success message
14
+ - Steps now number correctly (1, 2, 3) when deployment is completed
15
+ - Steps number correctly (1, 2, 3, 4) when deployment is skipped
16
+ - Eliminated confusing jump from step 2 to step 4
17
+
18
+ ### Documentation
19
+ - Updated README.md with comprehensive usage examples
20
+ - Added context.json structure documentation
21
+ - Added documentation about local file paths feature
22
+ - Added detailed "What Gets Installed" section with complete directory structure
23
+
24
+ ## [0.1.5] - 2025-10-02
25
+
26
+ ### Added
27
+ - New question in init workflow: "Do you have local documentation files to include?"
28
+ - Allows users to specify local file paths (e.g., `./docs/`, `./README.md`)
29
+ - Added `documentationFiles` array to context.json structure
30
+ - Complements existing `documentationUrls` field
31
+
32
+ ### Changed
33
+ - Init workflow now collects both remote URLs and local file paths for documentation
34
+ - Enhanced context.json to track local documentation references
35
+
36
+ ## [0.1.4] - 2025-10-02
37
+
38
+ ### Fixed
39
+ - Fixed context.json to use actual CLI version instead of hardcoded "0.1.01"
40
+ - Now dynamically reads version from package.json
41
+ - context.json correctly reflects which version of CLI was used to initialize
42
+
43
+ ### Changed
44
+ - Updated `project-detector.js` to import package.json for version tracking
45
+
46
+ ## [0.1.3] - 2025-10-02
47
+
48
+ ### Fixed
49
+ - Fixed critical `ReferenceError` in init command
50
+ - `deployNow` variable was referenced outside its scope
51
+ - Caused initialization to crash after displaying success message
52
+ - Properly scoped variable to fix error
53
+
54
+ ### Changed
55
+ - Improved variable scoping in init.js for better reliability
56
+
57
+ ## [0.1.2] - 2025-10-02
58
+
59
+ ### Documentation
60
+ - Updated README.md with correct package name throughout
61
+ - Fixed all installation command references to use `@iservu-inc/adf-cli`
62
+ - Updated 8 instances of package name in documentation
63
+
64
+ ## [0.1.1] - 2025-10-02
65
+
66
+ ### Fixed
67
+ - Fixed update command to check correct package name on npm registry
68
+ - Was checking `@iservu/adf-cli` instead of `@iservu-inc/adf-cli`
69
+ - Updated npm registry URLs in update.js
70
+
71
+ ## [0.1.0] - 2025-10-02
72
+
73
+ ### Added
74
+ - Initial release of AgentDevFramework CLI tool
75
+ - Three workflow levels:
76
+ - Level 1: Rapid Development (PRP) - 5-15 min planning
77
+ - Level 2: Specification-Driven (Balanced) - 30-60 min planning
78
+ - Level 3: BMAD Comprehensive - 1-2+ hour planning
79
+ - Interactive `adf init` command with intelligent workflow recommendations
80
+ - Support for multiple development tools:
81
+ - Windsurf, Cursor, VS Code, VS Code Insider
82
+ - Kiro, Trae, Claude Code, Gemini CLI, Codex CLI
83
+ - `adf deploy` command for deploying to development tools
84
+ - `adf update` command for checking and installing CLI updates
85
+ - Automatic project type detection (new vs existing)
86
+ - Documentation URL collection during initialization
87
+ - Agent deployment based on workflow level:
88
+ - Rapid: dev, qa
89
+ - Balanced: analyst, pm, dev, qa
90
+ - Comprehensive: analyst, pm, architect, sm, dev, qa
91
+ - Template copying and configuration generation
92
+ - Environment template creation (.env.template)
93
+ - Framework memory and constitution files
94
+ - MCP configuration support
95
+
96
+ ### Commands
97
+ - `adf init [--rapid|--balanced|--comprehensive] [--tool <tool>]` - Initialize framework
98
+ - `adf deploy [tool] [--list]` - Deploy to development tool
99
+ - `adf update [--check]` - Update CLI to latest version
100
+ - `adf --version` - Show CLI version
101
+ - `adf --help` - Show help information
102
+
103
+ ### Project Structure
104
+ Creates isolated `.adf/` directory with:
105
+ - context.json - Workflow configuration
106
+ - scripts/ - Helper scripts
107
+ - shared/ - Templates, agents, MCP configs, memory files
108
+
109
+ Deploys to `.framework/` directory with:
110
+ - agents/ - Deployed agent definition files
111
+
112
+ Creates tool-specific configuration files:
113
+ - .windsurfrules, .cursorrules, .vscode/settings.json, etc.
114
+
115
+ ## Package Naming History
116
+
117
+ ### Scope Change
118
+ - Original name: `@iservu/adf-cli` (failed to publish - scope mismatch)
119
+ - Updated to: `@iservu-inc/adf-cli` (matches npm username `iservu-inc`)
120
+ - First successful publish: v0.1.0
121
+
122
+ ---
123
+
124
+ ## Links
125
+
126
+ - [npm Package](https://www.npmjs.com/package/@iservu-inc/adf-cli)
127
+ - [GitHub Repository](https://github.com/iServU/adf-cli)
128
+ - [Issue Tracker](https://github.com/iServU/adf-cli/issues)
129
+
130
+ ## Release Notes Format
131
+
132
+ ### Types of Changes
133
+ - **Added** for new features
134
+ - **Changed** for changes in existing functionality
135
+ - **Deprecated** for soon-to-be removed features
136
+ - **Removed** for now removed features
137
+ - **Fixed** for any bug fixes
138
+ - **Security** for vulnerability fixes
package/README.md CHANGED
@@ -26,6 +26,13 @@ Initialize AgentDevFramework in your current project:
26
26
  adf init
27
27
  ```
28
28
 
29
+ The interactive init process will:
30
+ 1. Detect if this is a new or existing project
31
+ 2. Ask questions to recommend the best workflow level
32
+ 3. Optionally collect documentation URLs (e.g., API docs, design docs)
33
+ 4. Optionally collect local documentation file paths (e.g., `./docs/`, `./README.md`)
34
+ 5. Offer to deploy to your preferred development tool
35
+
29
36
  #### Workflow Selection Options
30
37
 
31
38
  Skip interactive questions and specify workflow directly:
@@ -109,22 +116,48 @@ When you run `adf init`, the following structure is created in your project:
109
116
  ```
110
117
  your-project/
111
118
  ├── .adf/ # Framework files (isolated)
112
- │ ├── scripts/
113
- ├── prp.ps1
114
- │ ├── spec.ps1
115
- │ └── ...
116
- ├── shared/
117
- ├── bmad/
118
- │ ├── templates/
119
- │ │ ├── spec-kit/
120
- └── prp/
121
- │ └── context.json # Your workflow configuration
119
+ │ ├── context.json # Your workflow configuration
120
+ │ ├── scripts/ # Helper scripts
121
+ └── shared/ # Templates, agents, and resources
122
+ ├── agents/ # Agent definition files
123
+ ├── templates/ # PRP, BMAD, Spec-Kit templates
124
+ ├── mcp/ # MCP configurations
125
+ └── memory/ # Framework memory/constitution
126
+ ├── .framework/ # Deployment directory
127
+ │ └── agents/ # Deployed agent files for your tool
122
128
  ├── .env.template # Environment variables template
129
+ ├── .[tool]rules # Tool-specific config (e.g., .windsurfrules)
123
130
  └── [your existing files] # Completely untouched!
124
131
  ```
125
132
 
126
133
  **Important:** Your `package.json` and existing project files remain completely untouched.
127
134
 
135
+ ### context.json Structure
136
+
137
+ The `.adf/context.json` file contains your workflow configuration:
138
+
139
+ ```json
140
+ {
141
+ "version": "0.1.6",
142
+ "workflow": "rapid",
143
+ "projectType": "existing",
144
+ "documentationUrls": [
145
+ "https://api.example.com/docs"
146
+ ],
147
+ "documentationFiles": [
148
+ "./docs/",
149
+ "./README.md"
150
+ ],
151
+ "createdAt": "2025-10-02T...",
152
+ "agents": ["dev", "qa"],
153
+ "templates": {
154
+ "prp": ["prp_story.md", "prp_task.md"],
155
+ "bmad": false,
156
+ "specKit": false
157
+ }
158
+ }
159
+ ```
160
+
128
161
  ## Workflow Levels
129
162
 
130
163
  ### Level 1: Rapid Development (PRP)
@@ -211,7 +244,13 @@ When we release updates to the framework:
211
244
 
212
245
  ## Version History
213
246
 
214
- - `0.1.01` - Initial release
247
+ See [CHANGELOG.md](./CHANGELOG.md) for detailed version history.
248
+
249
+ **Latest:** v0.1.6
250
+ - Fixed step numbering in init success message
251
+ - Added local documentation files collection
252
+ - Dynamic version tracking in context.json
253
+ - Improved error handling
215
254
 
216
255
  ## Troubleshooting
217
256
 
@@ -81,6 +81,29 @@ async function init(options) {
81
81
  documentationUrls = urls;
82
82
  }
83
83
 
84
+ // Gather local documentation files (optional)
85
+ const { hasLocalDocs } = await inquirer.prompt([
86
+ {
87
+ type: 'confirm',
88
+ name: 'hasLocalDocs',
89
+ message: 'Do you have local documentation files to include? (use "." as the project root folder & add like so "./docs/")',
90
+ default: false
91
+ }
92
+ ]);
93
+
94
+ let documentationFiles = [];
95
+ if (hasLocalDocs) {
96
+ const { files } = await inquirer.prompt([
97
+ {
98
+ type: 'input',
99
+ name: 'files',
100
+ message: 'Enter local documentation paths (comma-separated, e.g., ./docs/, ./README.md):',
101
+ filter: (input) => input.split(',').map(file => file.trim()).filter(Boolean)
102
+ }
103
+ ]);
104
+ documentationFiles = files;
105
+ }
106
+
84
107
  // Copy framework templates
85
108
  const copySpinner = ora('Copying framework files...').start();
86
109
  await copyTemplates(cwd);
@@ -91,6 +114,7 @@ async function init(options) {
91
114
  workflow,
92
115
  projectType: projectType.type,
93
116
  documentationUrls,
117
+ documentationFiles,
94
118
  timestamp: new Date().toISOString()
95
119
  });
96
120
 
@@ -159,8 +183,10 @@ async function init(options) {
159
183
  console.log(chalk.gray(' 2. Copy .env.template to .env and configure'));
160
184
  if (!deployNow) {
161
185
  console.log(chalk.gray(' 3. Run "adf deploy <tool>" to deploy to your editor'));
186
+ console.log(chalk.gray(' 4. Check documentation: .adf/shared/templates/\n'));
187
+ } else {
188
+ console.log(chalk.gray(' 3. Check documentation: .adf/shared/templates/\n'));
162
189
  }
163
- console.log(chalk.gray(' 4. Check documentation: .adf/shared/templates/\n'));
164
190
 
165
191
  console.log(chalk.blue(`Workflow: ${workflow === 'rapid' ? 'Level 1 (Rapid)' : workflow === 'balanced' ? 'Level 2 (Balanced)' : 'Level 3 (Comprehensive)'}`));
166
192
  console.log(chalk.gray('Run "adf deploy --list" to see available tools\n'));
@@ -176,6 +176,7 @@ function generateContextFile(data) {
176
176
  workflow: data.workflow,
177
177
  projectType: data.projectType,
178
178
  documentationUrls: data.documentationUrls || [],
179
+ documentationFiles: data.documentationFiles || [],
179
180
  createdAt: data.timestamp,
180
181
  agents: getAgentsForWorkflow(data.workflow),
181
182
  templates: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iservu-inc/adf-cli",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "CLI tool for AgentDevFramework - AI-assisted development framework",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -0,0 +1,134 @@
1
+ #!/bin/bash
2
+
3
+ # Comprehensive Test Script for @iservu-inc/adf-cli
4
+ # Tests all major scenarios and validates outputs
5
+
6
+ set -e # Exit on error
7
+
8
+ echo "=================================="
9
+ echo "ADF CLI Comprehensive Test Suite"
10
+ echo "=================================="
11
+ echo ""
12
+
13
+ # Colors
14
+ GREEN='\033[0;32m'
15
+ RED='\033[0;31m'
16
+ YELLOW='\033[1;33m'
17
+ NC='\033[0m' # No Color
18
+
19
+ TEST_BASE_DIR="D:/Documents/GitHub/adf-cli-tests"
20
+ PASS_COUNT=0
21
+ FAIL_COUNT=0
22
+
23
+ # Cleanup function
24
+ cleanup() {
25
+ rm -rf "$TEST_BASE_DIR"
26
+ mkdir -p "$TEST_BASE_DIR"
27
+ }
28
+
29
+ # Test result function
30
+ test_result() {
31
+ if [ $1 -eq 0 ]; then
32
+ echo -e "${GREEN}✓ PASS${NC}: $2"
33
+ ((PASS_COUNT++))
34
+ else
35
+ echo -e "${RED}✗ FAIL${NC}: $2"
36
+ ((FAIL_COUNT++))
37
+ fi
38
+ }
39
+
40
+ # Setup
41
+ cleanup
42
+
43
+ echo "=== Test 1: Rapid Workflow with Tool ===="
44
+ cd "$TEST_BASE_DIR"
45
+ mkdir test-rapid && cd test-rapid
46
+ echo "# Test" > README.md
47
+ printf "n\nn\n" | adf init --rapid --tool windsurf > /dev/null 2>&1
48
+ test_result $? "Rapid workflow initialization"
49
+ [ -f ".adf/context.json" ] && test_result 0 "context.json created" || test_result 1 "context.json missing"
50
+ [ -f ".env.template" ] && test_result 0 ".env.template created" || test_result 1 ".env.template missing"
51
+ [ -f ".windsurfrules" ] && test_result 0 ".windsurfrules created" || test_result 1 ".windsurfrules missing"
52
+ [ -f ".framework/agents/dev.md" ] && test_result 0 "dev agent deployed" || test_result 1 "dev agent missing"
53
+ [ -f ".framework/agents/qa.md" ] && test_result 0 "qa agent deployed" || test_result 1 "qa agent missing"
54
+ WORKFLOW=$(cat .adf/context.json | grep -o '"workflow": "[^"]*"' | cut -d'"' -f4)
55
+ [ "$WORKFLOW" = "rapid" ] && test_result 0 "Workflow is rapid" || test_result 1 "Workflow incorrect: $WORKFLOW"
56
+ echo ""
57
+
58
+ echo "=== Test 2: Balanced Workflow ===="
59
+ cd "$TEST_BASE_DIR"
60
+ mkdir test-balanced && cd test-balanced
61
+ echo "# Test" > README.md
62
+ printf "n\nn\n" | adf init --balanced --tool cursor > /dev/null 2>&1
63
+ test_result $? "Balanced workflow initialization"
64
+ [ -f ".cursorrules" ] && test_result 0 ".cursorrules created" || test_result 1 ".cursorrules missing"
65
+ [ -f ".framework/agents/analyst.md" ] && test_result 0 "analyst agent deployed" || test_result 1 "analyst agent missing"
66
+ [ -f ".framework/agents/pm.md" ] && test_result 0 "pm agent deployed" || test_result 1 "pm agent missing"
67
+ WORKFLOW=$(cat .adf/context.json | grep -o '"workflow": "[^"]*"' | cut -d'"' -f4)
68
+ [ "$WORKFLOW" = "balanced" ] && test_result 0 "Workflow is balanced" || test_result 1 "Workflow incorrect: $WORKFLOW"
69
+ echo ""
70
+
71
+ echo "=== Test 3: Comprehensive Workflow ===="
72
+ cd "$TEST_BASE_DIR"
73
+ mkdir test-comprehensive && cd test-comprehensive
74
+ echo "# Test" > README.md
75
+ printf "n\nn\n" | adf init --comprehensive --tool vscode > /dev/null 2>&1
76
+ test_result $? "Comprehensive workflow initialization"
77
+ [ -d ".vscode" ] && test_result 0 ".vscode directory created" || test_result 1 ".vscode missing"
78
+ [ -f ".framework/agents/architect.md" ] && test_result 0 "architect agent deployed" || test_result 1 "architect agent missing"
79
+ [ -f ".framework/agents/sm.md" ] && test_result 0 "sm agent deployed" || test_result 1 "sm agent missing"
80
+ WORKFLOW=$(cat .adf/context.json | grep -o '"workflow": "[^"]*"' | cut -d'"' -f4)
81
+ [ "$WORKFLOW" = "comprehensive" ] && test_result 0 "Workflow is comprehensive" || test_result 1 "Workflow incorrect: $WORKFLOW"
82
+ echo ""
83
+
84
+ echo "=== Test 4: Deploy Command ===="
85
+ cd "$TEST_BASE_DIR/test-rapid"
86
+ adf deploy cursor > /dev/null 2>&1
87
+ test_result $? "Deploy to cursor"
88
+ [ -f ".cursorrules" ] && test_result 0 "cursor config created" || test_result 1 "cursor config missing"
89
+ echo ""
90
+
91
+ echo "=== Test 5: Deploy List ===="
92
+ OUTPUT=$(adf deploy --list 2>&1)
93
+ echo "$OUTPUT" | grep -q "windsurf" && test_result 0 "windsurf in deploy list" || test_result 1 "windsurf not found"
94
+ echo "$OUTPUT" | grep -q "cursor" && test_result 0 "cursor in deploy list" || test_result 1 "cursor not found"
95
+ echo "$OUTPUT" | grep -q "claude-code" && test_result 0 "claude-code in deploy list" || test_result 1 "claude-code not found"
96
+ echo ""
97
+
98
+ echo "=== Test 6: Version Check ===="
99
+ VERSION=$(adf --version 2>&1)
100
+ test_result $? "Version command works"
101
+ echo "Current version: $VERSION"
102
+ echo ""
103
+
104
+ echo "=== Test 7: Update Check ===="
105
+ adf update --check > /dev/null 2>&1
106
+ test_result $? "Update check command"
107
+ echo ""
108
+
109
+ echo "=== Test 8: Context.json Structure ===="
110
+ cd "$TEST_BASE_DIR/test-rapid"
111
+ cat .adf/context.json | grep -q '"version"' && test_result 0 "version field exists" || test_result 1 "version field missing"
112
+ cat .adf/context.json | grep -q '"workflow"' && test_result 0 "workflow field exists" || test_result 1 "workflow field missing"
113
+ cat .adf/context.json | grep -q '"documentationUrls"' && test_result 0 "documentationUrls field exists" || test_result 1 "documentationUrls field missing"
114
+ cat .adf/context.json | grep -q '"documentationFiles"' && test_result 0 "documentationFiles field exists" || test_result 1 "documentationFiles field missing"
115
+ cat .adf/context.json | grep -q '"agents"' && test_result 0 "agents field exists" || test_result 1 "agents field missing"
116
+ echo ""
117
+
118
+ echo "==================================="
119
+ echo "Test Summary"
120
+ echo "==================================="
121
+ echo -e "${GREEN}Passed:${NC} $PASS_COUNT"
122
+ echo -e "${RED}Failed:${NC} $FAIL_COUNT"
123
+ echo ""
124
+
125
+ # Cleanup
126
+ cleanup
127
+
128
+ if [ $FAIL_COUNT -eq 0 ]; then
129
+ echo -e "${GREEN}All tests passed!${NC}"
130
+ exit 0
131
+ else
132
+ echo -e "${RED}Some tests failed${NC}"
133
+ exit 1
134
+ fi