@iservu-inc/adf-cli 0.4.15 → 0.4.25
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.
|
@@ -442,6 +442,407 @@ export function registerTools(context: vscode.ExtensionContext) {
|
|
|
442
442
|
|
|
443
443
|
---
|
|
444
444
|
|
|
445
|
+
## 4. Custom Agent/Persona Configuration
|
|
446
|
+
|
|
447
|
+
### Overview
|
|
448
|
+
|
|
449
|
+
All major AI coding assistants support custom agents/personas that can be triggered with specific commands or mentions. This allows you to create specialized AI behaviors for different development tasks (e.g., PM, Architect, Developer, QA).
|
|
450
|
+
|
|
451
|
+
**Key Pattern:** All agents share the same YAML configuration block but are activated differently per IDE:
|
|
452
|
+
- **Windsurf:** `/.workflows/{agent}.md` - Auto-execution modes
|
|
453
|
+
- **Cursor:** `@{agent}` via `.cursor/rules/{folder}/{agent}.mdc`
|
|
454
|
+
- **GitHub Copilot:** Chat modes via `.github/chatmodes/{agent}.chatmode.md`
|
|
455
|
+
- **Claude Code:** `/{agent}` via `.claude/commands/{folder}/agents/{agent}.md`
|
|
456
|
+
- **Trae:** `@{agent}` via `.trae/rules/{agent}.md`
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
### Windsurf Custom Workflows
|
|
461
|
+
|
|
462
|
+
**Directory:** `.windsurf/workflows/`
|
|
463
|
+
|
|
464
|
+
**File Format:** `{agent-name}.md`
|
|
465
|
+
|
|
466
|
+
**Structure:**
|
|
467
|
+
```markdown
|
|
468
|
+
---
|
|
469
|
+
description: {agent-name}
|
|
470
|
+
auto_execution_mode: 3
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
<!-- Powered by BMAD™ Core -->
|
|
474
|
+
|
|
475
|
+
# {Agent Display Name}
|
|
476
|
+
|
|
477
|
+
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
|
|
478
|
+
|
|
479
|
+
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
|
|
480
|
+
|
|
481
|
+
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
|
|
482
|
+
|
|
483
|
+
```yaml
|
|
484
|
+
activation-instructions:
|
|
485
|
+
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
486
|
+
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
487
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
488
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
489
|
+
- DO NOT: Load any other agent files during activation
|
|
490
|
+
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
491
|
+
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
492
|
+
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
493
|
+
- STAY IN CHARACTER!
|
|
494
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands.
|
|
495
|
+
agent:
|
|
496
|
+
name: {Agent Name}
|
|
497
|
+
id: {agent-id}
|
|
498
|
+
title: {Agent Title}
|
|
499
|
+
icon: {emoji}
|
|
500
|
+
whenToUse: {Description of when to use this agent}
|
|
501
|
+
persona:
|
|
502
|
+
role: {Role description}
|
|
503
|
+
style: {Communication style}
|
|
504
|
+
identity: {Identity description}
|
|
505
|
+
focus: {Primary focus}
|
|
506
|
+
core_principles:
|
|
507
|
+
- {Principle 1}
|
|
508
|
+
- {Principle 2}
|
|
509
|
+
commands:
|
|
510
|
+
- help: Show numbered list of the following commands to allow selection
|
|
511
|
+
- {command-name}: {Command description}
|
|
512
|
+
- exit: Exit (confirm)
|
|
513
|
+
dependencies:
|
|
514
|
+
checklists:
|
|
515
|
+
- {checklist-file.md}
|
|
516
|
+
tasks:
|
|
517
|
+
- {task-file.md}
|
|
518
|
+
templates:
|
|
519
|
+
- {template-file.yaml}
|
|
520
|
+
```
|
|
521
|
+
\```
|
|
522
|
+
|
|
523
|
+
**Activation:** User runs `/{agent-name}` in Cascade chat
|
|
524
|
+
|
|
525
|
+
**Example:** `/.workflows/pm.md` → Activated with `/pm`
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
### Cursor Custom Rules
|
|
530
|
+
|
|
531
|
+
**Directory:** `.cursor/rules/{folder}/`
|
|
532
|
+
|
|
533
|
+
**File Format:** `{agent-name}.mdc`
|
|
534
|
+
|
|
535
|
+
**Structure:**
|
|
536
|
+
```markdown
|
|
537
|
+
---
|
|
538
|
+
description:
|
|
539
|
+
globs: []
|
|
540
|
+
alwaysApply: false
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
# {Agent Name} Agent Rule
|
|
544
|
+
|
|
545
|
+
This rule is triggered when the user types `@{agent-name}` and activates the {Agent Title} agent persona.
|
|
546
|
+
|
|
547
|
+
## Agent Activation
|
|
548
|
+
|
|
549
|
+
CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
|
|
550
|
+
|
|
551
|
+
```yaml
|
|
552
|
+
[Same YAML configuration as Windsurf]
|
|
553
|
+
```
|
|
554
|
+
\```
|
|
555
|
+
|
|
556
|
+
## File Reference
|
|
557
|
+
|
|
558
|
+
The complete agent definition is available in [.bmad-core/agents/{agent}.md](mdc:.bmad-core/agents/{agent}.md).
|
|
559
|
+
|
|
560
|
+
## Usage
|
|
561
|
+
|
|
562
|
+
When the user types `@{agent-name}`, activate this {Agent Title} persona and follow all instructions defined in the YAML configuration above.
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
**Activation:** User types `@{agent-name}` in Composer/Chat
|
|
566
|
+
|
|
567
|
+
**Example:** `.cursor/rules/bmad/pm.mdc` → Activated with `@pm`
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
### GitHub Copilot Chat Modes
|
|
572
|
+
|
|
573
|
+
**Directory:** `.github/chatmodes/`
|
|
574
|
+
|
|
575
|
+
**File Format:** `{agent-name}.chatmode.md`
|
|
576
|
+
|
|
577
|
+
**Structure:**
|
|
578
|
+
```markdown
|
|
579
|
+
---
|
|
580
|
+
description: "Activates the {Agent Title} agent persona."
|
|
581
|
+
tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems', 'usages', 'editFiles', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure']
|
|
582
|
+
---
|
|
583
|
+
|
|
584
|
+
<!-- Powered by BMAD™ Core -->
|
|
585
|
+
|
|
586
|
+
# {agent-name}
|
|
587
|
+
|
|
588
|
+
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
|
|
589
|
+
|
|
590
|
+
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
|
|
591
|
+
|
|
592
|
+
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
|
|
593
|
+
|
|
594
|
+
```yaml
|
|
595
|
+
[Same YAML configuration as Windsurf]
|
|
596
|
+
```
|
|
597
|
+
\```
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
**Activation:** Copilot detects `.chatmode.md` files and presents them as selectable chat modes
|
|
601
|
+
|
|
602
|
+
**Example:** `.github/chatmodes/pm.chatmode.md` → Selectable chat mode in Copilot
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
### Claude Code Slash Commands
|
|
607
|
+
|
|
608
|
+
**Directory:** `.claude/commands/{folder}/agents/`
|
|
609
|
+
|
|
610
|
+
**File Format:** `{agent-name}.md`
|
|
611
|
+
|
|
612
|
+
**Structure:**
|
|
613
|
+
```markdown
|
|
614
|
+
# /{agent-name} Command
|
|
615
|
+
|
|
616
|
+
When this command is used, adopt the following agent persona:
|
|
617
|
+
|
|
618
|
+
<!-- Powered by BMAD™ Core -->
|
|
619
|
+
|
|
620
|
+
# {agent-name}
|
|
621
|
+
|
|
622
|
+
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
|
|
623
|
+
|
|
624
|
+
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
|
|
625
|
+
|
|
626
|
+
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
|
|
627
|
+
|
|
628
|
+
```yaml
|
|
629
|
+
[Same YAML configuration as Windsurf]
|
|
630
|
+
```
|
|
631
|
+
\```
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
**Activation:** User runs `/{agent-name}` in Claude Code chat
|
|
635
|
+
|
|
636
|
+
**Example:** `.claude/commands/BMad/agents/pm.md` → Activated with `/pm`
|
|
637
|
+
|
|
638
|
+
**Settings File:** `.claude/settings.local.json` can reference command directories
|
|
639
|
+
|
|
640
|
+
---
|
|
641
|
+
|
|
642
|
+
### Trae Custom Rules
|
|
643
|
+
|
|
644
|
+
**Directory:** `.trae/rules/`
|
|
645
|
+
|
|
646
|
+
**File Format:** `{agent-name}.md`
|
|
647
|
+
|
|
648
|
+
**Structure:**
|
|
649
|
+
```markdown
|
|
650
|
+
# {Agent Name} Agent Rule
|
|
651
|
+
|
|
652
|
+
This rule is triggered when the user types `@{agent-name}` and activates the {Agent Title} agent persona.
|
|
653
|
+
|
|
654
|
+
## Agent Activation
|
|
655
|
+
|
|
656
|
+
CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
|
|
657
|
+
|
|
658
|
+
```yaml
|
|
659
|
+
[Same YAML configuration as Windsurf]
|
|
660
|
+
```
|
|
661
|
+
\```
|
|
662
|
+
|
|
663
|
+
## File Reference
|
|
664
|
+
|
|
665
|
+
The complete agent definition is available in [.bmad-core/agents/{agent}.md](.bmad-core/agents/{agent}.md).
|
|
666
|
+
|
|
667
|
+
## Usage
|
|
668
|
+
|
|
669
|
+
When the user types `@{agent-name}`, activate this {Agent Title} persona and follow all instructions defined in the YAML configuration above.
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
**Activation:** User types `@{agent-name}` in Trae chat
|
|
673
|
+
|
|
674
|
+
**Example:** `.trae/rules/pm.md` → Activated with `@pm`
|
|
675
|
+
|
|
676
|
+
---
|
|
677
|
+
|
|
678
|
+
### VSCode Configuration
|
|
679
|
+
|
|
680
|
+
**Directory:** `.vscode/`
|
|
681
|
+
|
|
682
|
+
**File Format:** `settings.json`
|
|
683
|
+
|
|
684
|
+
**Structure:**
|
|
685
|
+
```json
|
|
686
|
+
{
|
|
687
|
+
"chat.agent.enabled": true,
|
|
688
|
+
"chat.agent.maxRequests": 15,
|
|
689
|
+
"github.copilot.chat.agent.runTasks": true,
|
|
690
|
+
"github.copilot.chat.agent.autoFix": true,
|
|
691
|
+
"chat.tools.autoApprove": false
|
|
692
|
+
}
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
**Note:** VSCode agent configuration primarily leverages GitHub Copilot chatmodes (see above) or Claude Code slash commands.
|
|
696
|
+
|
|
697
|
+
---
|
|
698
|
+
|
|
699
|
+
### Shared Agent YAML Schema
|
|
700
|
+
|
|
701
|
+
All agents use this core YAML structure:
|
|
702
|
+
|
|
703
|
+
```yaml
|
|
704
|
+
IDE-FILE-RESOLUTION:
|
|
705
|
+
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
|
|
706
|
+
- Dependencies map to .bmad-core/{type}/{name}
|
|
707
|
+
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
|
|
708
|
+
- Example: create-doc.md → .bmad-core/tasks/create-doc.md
|
|
709
|
+
- IMPORTANT: Only load these files when user requests specific command execution
|
|
710
|
+
|
|
711
|
+
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match.
|
|
712
|
+
|
|
713
|
+
activation-instructions:
|
|
714
|
+
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
715
|
+
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
716
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
717
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
718
|
+
- DO NOT: Load any other agent files during activation
|
|
719
|
+
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
720
|
+
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
721
|
+
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
|
|
722
|
+
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
|
|
723
|
+
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
724
|
+
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
725
|
+
- STAY IN CHARACTER!
|
|
726
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
727
|
+
|
|
728
|
+
agent:
|
|
729
|
+
name: {Human-readable name}
|
|
730
|
+
id: {lowercase-id}
|
|
731
|
+
title: {Professional Title}
|
|
732
|
+
icon: {emoji}
|
|
733
|
+
whenToUse: {When to use this agent}
|
|
734
|
+
|
|
735
|
+
persona:
|
|
736
|
+
role: {Role description}
|
|
737
|
+
style: {Communication style traits}
|
|
738
|
+
identity: {What this agent is}
|
|
739
|
+
focus: {Primary focus area}
|
|
740
|
+
core_principles:
|
|
741
|
+
- {Principle 1}
|
|
742
|
+
- {Principle 2}
|
|
743
|
+
- ...
|
|
744
|
+
|
|
745
|
+
# All commands require * prefix when used (e.g., *help)
|
|
746
|
+
commands:
|
|
747
|
+
- help: Show numbered list of the following commands to allow selection
|
|
748
|
+
- {command-1}: {Description}
|
|
749
|
+
- {command-2}: {Description}
|
|
750
|
+
- yolo: Toggle Yolo Mode
|
|
751
|
+
- exit: Exit (confirm)
|
|
752
|
+
|
|
753
|
+
dependencies:
|
|
754
|
+
checklists:
|
|
755
|
+
- {checklist-file.md}
|
|
756
|
+
data:
|
|
757
|
+
- {data-file.md}
|
|
758
|
+
tasks:
|
|
759
|
+
- {task-file.md}
|
|
760
|
+
templates:
|
|
761
|
+
- {template-file.yaml}
|
|
762
|
+
utils:
|
|
763
|
+
- {util-file.md}
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
**Key Principles:**
|
|
767
|
+
1. **Self-contained:** All agent config in YAML block, no external loads on activation
|
|
768
|
+
2. **Lazy loading:** Dependencies loaded only when commands execute
|
|
769
|
+
3. **Consistent interface:** All agents use `*help` and numbered menus
|
|
770
|
+
4. **Task execution:** Tasks from dependencies are executable workflows, not reference
|
|
771
|
+
5. **Interactive modes:** Tasks with `elicit=true` require user interaction
|
|
772
|
+
|
|
773
|
+
---
|
|
774
|
+
|
|
775
|
+
### Agent Activation Comparison
|
|
776
|
+
|
|
777
|
+
| IDE | Directory | File Extension | Activation | Frontmatter |
|
|
778
|
+
|-----|-----------|----------------|------------|-------------|
|
|
779
|
+
| **Windsurf** | `.windsurf/workflows/` | `.md` | `/{agent}` | YAML: `description`, `auto_execution_mode` |
|
|
780
|
+
| **Cursor** | `.cursor/rules/{folder}/` | `.mdc` | `@{agent}` | YAML: `description`, `globs`, `alwaysApply` |
|
|
781
|
+
| **GitHub Copilot** | `.github/chatmodes/` | `.chatmode.md` | Chat mode selector | YAML: `description`, `tools` array |
|
|
782
|
+
| **Claude Code** | `.claude/commands/{folder}/agents/` | `.md` | `/{agent}` | None (markdown header) |
|
|
783
|
+
| **Trae** | `.trae/rules/` | `.md` | `@{agent}` | None (markdown header) |
|
|
784
|
+
| **VSCode** | Uses Copilot or Claude | - | - | - |
|
|
785
|
+
|
|
786
|
+
---
|
|
787
|
+
|
|
788
|
+
### Creating New Custom Agents
|
|
789
|
+
|
|
790
|
+
**Step 1: Define Agent Properties**
|
|
791
|
+
```yaml
|
|
792
|
+
agent:
|
|
793
|
+
name: "Sarah" # Human name
|
|
794
|
+
id: "qa" # Lowercase ID for activation
|
|
795
|
+
title: "QA Engineer" # Professional title
|
|
796
|
+
icon: "🔍" # Emoji icon
|
|
797
|
+
whenToUse: "Use for testing, quality assurance, and bug validation"
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
**Step 2: Define Persona**
|
|
801
|
+
```yaml
|
|
802
|
+
persona:
|
|
803
|
+
role: "Quality Assurance Specialist & Test Engineer"
|
|
804
|
+
style: "Meticulous, detail-oriented, systematic, thorough"
|
|
805
|
+
identity: "QA engineer focused on comprehensive testing and quality validation"
|
|
806
|
+
focus: "Creating test plans, writing test cases, and validating requirements"
|
|
807
|
+
core_principles:
|
|
808
|
+
- Test early and often
|
|
809
|
+
- Validate against requirements
|
|
810
|
+
- Document all defects clearly
|
|
811
|
+
- Focus on user experience
|
|
812
|
+
- Automate repetitive tests
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
**Step 3: Define Commands**
|
|
816
|
+
```yaml
|
|
817
|
+
commands:
|
|
818
|
+
- help: Show numbered list of available commands
|
|
819
|
+
- create-test-plan: Generate test plan from requirements
|
|
820
|
+
- write-test-cases: Create test cases for feature
|
|
821
|
+
- validate-feature: Validate implementation against acceptance criteria
|
|
822
|
+
- report-bug: Create detailed bug report
|
|
823
|
+
- exit: Exit QA agent mode
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
**Step 4: Define Dependencies**
|
|
827
|
+
```yaml
|
|
828
|
+
dependencies:
|
|
829
|
+
checklists:
|
|
830
|
+
- qa-checklist.md
|
|
831
|
+
- regression-checklist.md
|
|
832
|
+
tasks:
|
|
833
|
+
- create-test-plan.md
|
|
834
|
+
- validate-requirements.md
|
|
835
|
+
templates:
|
|
836
|
+
- test-plan-tmpl.yaml
|
|
837
|
+
- bug-report-tmpl.yaml
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
**Step 5: Generate for All IDEs**
|
|
841
|
+
|
|
842
|
+
Use adf-cli generators (once implemented) or manually create files for each IDE using the patterns above.
|
|
843
|
+
|
|
844
|
+
---
|
|
845
|
+
|
|
445
846
|
## Output Generation Strategy
|
|
446
847
|
|
|
447
848
|
### Per Framework
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,52 @@ All notable changes to `@iservu-inc/adf-cli` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.4.25] - 2025-10-04
|
|
9
|
+
|
|
10
|
+
### 🔧 UX Improvements
|
|
11
|
+
|
|
12
|
+
**Fixed: AI Configuration Timing**
|
|
13
|
+
- **Problem:** AI configuration was happening after workflow selection questions (team size, etc.)
|
|
14
|
+
- **Solution:** Moved AI configuration to init.js to execute immediately after project type detection
|
|
15
|
+
- **New Flow:**
|
|
16
|
+
1. Project type detection
|
|
17
|
+
2. **AI Provider configuration** (happens here now)
|
|
18
|
+
3. Workflow selection (team size questions)
|
|
19
|
+
4. Interview questions
|
|
20
|
+
- **Impact:** AI configuration now clearly appears FIRST before any workflow questions
|
|
21
|
+
- **Note:** This supersedes the v0.4.15 approach of configuring AI in interviewer.js
|
|
22
|
+
|
|
23
|
+
**Technical Details:**
|
|
24
|
+
- `init.js:88-90`: Added AI configuration call before workflow selection
|
|
25
|
+
- `init.js:114`: Pass aiConfig to Interviewer constructor
|
|
26
|
+
- `interviewer.js`: AI config block skipped when aiConfig already provided
|
|
27
|
+
- When AI already configured via `adf config`, shows simple confirmation message
|
|
28
|
+
- All 120 tests passing
|
|
29
|
+
|
|
30
|
+
### 📚 Documentation
|
|
31
|
+
|
|
32
|
+
**Added: Comprehensive Custom Agent/Persona Documentation**
|
|
33
|
+
- **New Section:** "Custom Agent/Persona Configuration" in IDE-CUSTOMIZATIONS.md
|
|
34
|
+
- **Coverage:** Complete documentation for all major AI coding assistants
|
|
35
|
+
- Windsurf workflows (`.windsurf/workflows/`)
|
|
36
|
+
- Cursor rules (`.cursor/rules/`)
|
|
37
|
+
- GitHub Copilot chatmodes (`.github/chatmodes/`)
|
|
38
|
+
- Claude Code commands (`.claude/commands/`)
|
|
39
|
+
- Trae rules (`.trae/rules/`)
|
|
40
|
+
- VSCode settings (`.vscode/`)
|
|
41
|
+
- **Key Insights:**
|
|
42
|
+
- All IDEs share same YAML configuration block
|
|
43
|
+
- Only wrapper format and activation method differ per IDE
|
|
44
|
+
- Write-once, deploy-everywhere pattern documented
|
|
45
|
+
- **Includes:**
|
|
46
|
+
- Activation comparison table
|
|
47
|
+
- Shared agent YAML schema
|
|
48
|
+
- Step-by-step guide for creating new agents
|
|
49
|
+
- Real-world examples from BMAD project
|
|
50
|
+
|
|
51
|
+
**File Updated:**
|
|
52
|
+
- `.project/docs/tool-integrations/IDE-CUSTOMIZATIONS.md` - Added comprehensive Section 4
|
|
53
|
+
|
|
8
54
|
## [0.4.15] - 2025-10-04
|
|
9
55
|
|
|
10
56
|
### 🐛 Bug Fixes & Enhancements
|
package/lib/commands/init.js
CHANGED
|
@@ -85,6 +85,10 @@ async function init(options) {
|
|
|
85
85
|
const projectType = await detectProjectType(cwd);
|
|
86
86
|
spinner.succeed(`Project type: ${chalk.green(projectType.type)}`);
|
|
87
87
|
|
|
88
|
+
// Configure AI provider BEFORE workflow selection
|
|
89
|
+
console.log('');
|
|
90
|
+
const aiConfig = await configureAIProvider(cwd);
|
|
91
|
+
|
|
88
92
|
// Determine workflow/framework
|
|
89
93
|
let workflow;
|
|
90
94
|
|
|
@@ -105,9 +109,9 @@ async function init(options) {
|
|
|
105
109
|
// Create .adf directory
|
|
106
110
|
await fs.ensureDir(adfDir);
|
|
107
111
|
|
|
108
|
-
// AI
|
|
112
|
+
// AI already configured above - pass to interviewer
|
|
109
113
|
// Start interview
|
|
110
|
-
const interviewer = new Interviewer(workflow, cwd, null,
|
|
114
|
+
const interviewer = new Interviewer(workflow, cwd, null, aiConfig);
|
|
111
115
|
const sessionPath = await interviewer.start();
|
|
112
116
|
|
|
113
117
|
// Show completion message
|