@iservu-inc/adf-cli 0.12.12 → 0.14.0
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/.claude/settings.local.json +6 -1
- package/.context/memory/architecture.md +40 -0
- package/.context/memory/glossary.md +19 -0
- package/.project/docs/VERSIONING-GUIDE.md +127 -0
- package/AGENTS.md +53 -0
- package/CHANGELOG.md +149 -0
- package/bin/adf.js +10 -0
- package/conductor/archive/context_synthesis_20260112/metadata.json +8 -0
- package/conductor/archive/context_synthesis_20260112/plan.md +40 -0
- package/conductor/archive/context_synthesis_20260112/spec.md +43 -0
- package/conductor/archive/verify_opencode_20260111/metadata.json +8 -0
- package/conductor/archive/verify_opencode_20260111/plan.md +34 -0
- package/conductor/archive/verify_opencode_20260111/spec.md +25 -0
- package/conductor/code_styleguides/javascript.md +51 -0
- package/conductor/product-guidelines.md +26 -0
- package/conductor/product.md +25 -0
- package/conductor/setup_state.json +1 -0
- package/conductor/tech-stack.md +28 -0
- package/conductor/tracks/bootstrap_agents_20260111/metadata.json +8 -0
- package/conductor/tracks/bootstrap_agents_20260111/plan.md +17 -0
- package/conductor/tracks/bootstrap_agents_20260111/spec.md +27 -0
- package/conductor/tracks.md +9 -0
- package/conductor/workflow.md +333 -0
- package/lib/analysis/ai-gap-analyzer.js +66 -0
- package/lib/analysis/dynamic-question-generator.js +55 -0
- package/lib/analysis/heuristic-gap-analyzer.js +45 -0
- package/lib/analysis/synthesis-engine.js +142 -0
- package/lib/commands/deploy.js +28 -2
- package/lib/commands/guide.js +173 -150
- package/lib/commands/tools.js +38 -0
- package/lib/generators/codex-cli-generator.js +41 -0
- package/lib/generators/index.js +33 -0
- package/lib/generators/kiro-generator.js +49 -0
- package/lib/generators/opencode-generator.js +332 -153
- package/lib/generators/trae-generator.js +34 -0
- package/lib/templates/scripts/analyze-framework-updates.js +361 -0
- package/lib/templates/scripts/build.js +608 -0
- package/lib/templates/scripts/check-framework-updates.js +118 -0
- package/lib/templates/scripts/config-helpers.js +1 -1
- package/lib/templates/scripts/deploy.js +13 -28
- package/lib/templates/scripts/init.js +110 -220
- package/lib/templates/scripts/postinstall.js +13 -0
- package/lib/templates/scripts/update-frameworks.js +28 -0
- package/lib/templates/scripts/validate-env.js +428 -0
- package/lib/templates/scripts/validate-mcp.js +471 -0
- package/lib/templates/scripts/validate.js +482 -0
- package/lib/templates/shared/agents/analyst.md +1 -1
- package/lib/templates/shared/agents/architect.md +13 -17
- package/lib/templates/shared/agents/dev.md +2 -2
- package/lib/templates/shared/agents/pm.md +1 -1
- package/lib/templates/shared/agents/qa.md +1 -1
- package/lib/templates/shared/agents/sm.md +2 -2
- package/lib/templates/shared/templates/README.md +2 -2
- package/lib/templates/shared/templates/openspec-proposal.md +2 -2
- package/lib/templates/shared/templates/prd-template.md +1 -1
- package/lib/templates/shared/templates/story-template.md +1 -1
- package/lib/utils/context-extractor.js +157 -0
- package/lib/utils/framework-detector.js +54 -0
- package/lib/utils/tool-feature-registry.js +102 -0
- package/package.json +1 -1
- package/tests/ai-gap-analyzer.test.js +38 -0
- package/tests/codex-cli-generator.test.js +29 -0
- package/tests/context-extractor.test.js +70 -0
- package/tests/deploy-integration.test.js +36 -0
- package/tests/deploy.test.js +57 -0
- package/tests/dynamic-question-generator.test.js +29 -0
- package/tests/framework-detector.test.js +55 -0
- package/tests/heuristic-gap-analyzer.test.js +46 -0
- package/tests/kiro-trae-generators.test.js +43 -0
- package/tests/opencode-generator.test.js +113 -0
- package/tests/synthesis-engine.test.js +52 -0
- package/tests/tool-feature-registry.test.js +23 -0
|
@@ -18,7 +18,12 @@
|
|
|
18
18
|
"WebFetch(domain:github.com)",
|
|
19
19
|
"WebFetch(domain:antigravity.google)",
|
|
20
20
|
"WebSearch",
|
|
21
|
-
"Bash(node -c:*)"
|
|
21
|
+
"Bash(node -c:*)",
|
|
22
|
+
"mcp__MCP_DOCKER__brave_web_search",
|
|
23
|
+
"Bash(adf guide:*)",
|
|
24
|
+
"WebFetch(domain:docs.windsurf.com)",
|
|
25
|
+
"mcp__MCP_DOCKER__resolve-library-id",
|
|
26
|
+
"mcp__MCP_DOCKER__get-library-docs"
|
|
22
27
|
],
|
|
23
28
|
"deny": [],
|
|
24
29
|
"ask": []
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# System Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
ADF CLI is a Node.js-based command-line tool designed to orchestrate AI-assisted software development. It functions as a "Conductor," guiding users through requirements gathering, generating framework-specific artifacts, and deploying configurations to various development tools.
|
|
5
|
+
|
|
6
|
+
## Core Components
|
|
7
|
+
|
|
8
|
+
### 1. CLI Entry Point (`bin/adf.js`)
|
|
9
|
+
- Uses `commander.js` for argument parsing and command routing.
|
|
10
|
+
- Commands: `init`, `config`, `deploy`, `update`.
|
|
11
|
+
|
|
12
|
+
### 2. Interview System (`lib/frameworks/`)
|
|
13
|
+
- **Interviewer:** Orchestrates the question-answer flow.
|
|
14
|
+
- **Dynamic Pipeline:** Adapts questions based on real-time answer quality analysis and learned patterns.
|
|
15
|
+
- **Session Manager:** Handles state persistence (resume capability) and data integrity.
|
|
16
|
+
|
|
17
|
+
### 3. AI Layer (`lib/ai/`)
|
|
18
|
+
- **Unified Client:** Abstracts provider differences (Anthropic, OpenAI, Google Gemini, OpenRouter).
|
|
19
|
+
- **Context Engineering:** Manages prompt construction and context window optimization.
|
|
20
|
+
|
|
21
|
+
### 4. Learning System (`lib/learning/`)
|
|
22
|
+
- **Tracker:** Records user behaviors (skips, answer length).
|
|
23
|
+
- **Pattern Detector:** Identifies consistent habits.
|
|
24
|
+
- **Decay Manager:** Applies time-based decay to pattern confidence to ensure freshness.
|
|
25
|
+
|
|
26
|
+
### 5. Generators (`lib/generators/`)
|
|
27
|
+
- **Artifact Generators:** Create PRP, BMAD, and Spec-Kit documents.
|
|
28
|
+
- **Tool Config Generators:** Produce tool-specific configurations (e.g., `.windsurfrules`, `opencode.json`, `AGENTS.md`).
|
|
29
|
+
|
|
30
|
+
## Data Storage
|
|
31
|
+
|
|
32
|
+
### Project Local (`.adf/`)
|
|
33
|
+
- **Sessions:** JSON transcripts and outputs of interview sessions.
|
|
34
|
+
- **Learning:** Local user behavior data (never synced remotely).
|
|
35
|
+
- **Config:** API keys (`.env`) and user preferences.
|
|
36
|
+
|
|
37
|
+
## Design Patterns
|
|
38
|
+
- **Agent-Native:** The repository itself follows the Agent-Native standard (`AGENTS.md` + `.context/`).
|
|
39
|
+
- **Triple-Redundancy:** Critical session data is saved to multiple formats/locations to prevent data loss.
|
|
40
|
+
- **Plugin Architecture:** (Planned) To support custom frameworks and tools.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Project Glossary
|
|
2
|
+
|
|
3
|
+
## Core Terms
|
|
4
|
+
|
|
5
|
+
- **ADF (Agent Development Framework):** The overarching framework for AI-assisted software development.
|
|
6
|
+
- **Conductor:** The methodology and CLI subsystem for managing project state, tracks, and workflow.
|
|
7
|
+
- **Track:** A unit of work or feature development path (e.g., a feature, bug fix, or chore).
|
|
8
|
+
- **PRP (Product Requirements Prompt):** A framework for "Rapid" requirements gathering.
|
|
9
|
+
- **BMAD (Business, Marketing, Architecture, Design):** A comprehensive framework for large-scale project planning.
|
|
10
|
+
- **Spec-Kit:** A balanced framework generating specifications and plans.
|
|
11
|
+
- **Agent-Native:** A repository structure optimized for reading by AI agents (e.g., `AGENTS.md`, `.context/`).
|
|
12
|
+
- **Learning System:** The ADF subsystem that tracks user behavior (skips, answers) to adapt future interviews.
|
|
13
|
+
- **Pattern Decay:** The algorithm that reduces confidence in learned patterns over time to prevent stale assumptions.
|
|
14
|
+
|
|
15
|
+
## Directory Structure Terms
|
|
16
|
+
|
|
17
|
+
- **.adf/:** Internal storage for ADF (sessions, learning data, local config).
|
|
18
|
+
- **.context/:** Deep context storage for Agent-Native documentation (architecture, memory).
|
|
19
|
+
- **conductor/:** Project management files (product guide, tracks, plans).
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# ADF CLI Versioning Guide
|
|
2
|
+
|
|
3
|
+
## Semantic Versioning Format
|
|
4
|
+
|
|
5
|
+
**Format:** `<major>.<minor>.<patch>`
|
|
6
|
+
|
|
7
|
+
**Current Version:** 0.13.0
|
|
8
|
+
|
|
9
|
+
## Version Number Structure
|
|
10
|
+
|
|
11
|
+
### Major Release (X.0.0)
|
|
12
|
+
**When to increment:**
|
|
13
|
+
- Breaking API changes
|
|
14
|
+
- Incompatible changes to existing functionality
|
|
15
|
+
- Major architectural changes that affect users
|
|
16
|
+
- Removal of deprecated features
|
|
17
|
+
|
|
18
|
+
**Example:** 0.x.x → 1.0.0
|
|
19
|
+
|
|
20
|
+
### Minor Release (0.X.0)
|
|
21
|
+
**When to increment:**
|
|
22
|
+
- New features added
|
|
23
|
+
- New functionality that is backward-compatible
|
|
24
|
+
- Significant enhancements to existing features
|
|
25
|
+
- New tool integrations
|
|
26
|
+
- New commands or options
|
|
27
|
+
|
|
28
|
+
**Example:** 0.12.x → 0.13.0
|
|
29
|
+
|
|
30
|
+
**Recent Minor Releases:**
|
|
31
|
+
- 0.13.0 - OpenCode multi-agent integration
|
|
32
|
+
- 0.12.0 - Guide system and multi-tool expansion
|
|
33
|
+
- 0.11.0 - Initial tool deployment system
|
|
34
|
+
|
|
35
|
+
### Patch Release (0.0.X)
|
|
36
|
+
**When to increment:**
|
|
37
|
+
- Bug fixes
|
|
38
|
+
- Documentation corrections
|
|
39
|
+
- Minor improvements
|
|
40
|
+
- Performance optimizations
|
|
41
|
+
- Dependency updates (non-breaking)
|
|
42
|
+
|
|
43
|
+
**Example:** 0.13.0 → 0.13.1
|
|
44
|
+
|
|
45
|
+
**Recent Patch Releases:**
|
|
46
|
+
- 0.12.14 - Windsurf character limit fix
|
|
47
|
+
- 0.12.13 - Guide hallucination fixes
|
|
48
|
+
- 0.12.12 - Guide system improvements
|
|
49
|
+
- 0.12.11 - Missing helper methods fix
|
|
50
|
+
- 0.12.10 - EISDIR and rate limit fixes
|
|
51
|
+
|
|
52
|
+
## Version Update Checklist
|
|
53
|
+
|
|
54
|
+
When releasing a new version:
|
|
55
|
+
|
|
56
|
+
### 1. Update Version Number
|
|
57
|
+
```bash
|
|
58
|
+
# In package.json
|
|
59
|
+
"version": "0.13.1"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Update CHANGELOG.md
|
|
63
|
+
```markdown
|
|
64
|
+
## [0.13.1] - YYYY-MM-DD
|
|
65
|
+
|
|
66
|
+
### 🐛 Fixed / ✨ Added / 🚀 Enhanced
|
|
67
|
+
|
|
68
|
+
- Description of changes
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 3. Commit Changes
|
|
72
|
+
```bash
|
|
73
|
+
git add package.json CHANGELOG.md
|
|
74
|
+
git commit -m "chore: bump version to 0.13.1"
|
|
75
|
+
git push origin development
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 4. Publish to npm
|
|
79
|
+
```bash
|
|
80
|
+
npm publish
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 5. Create Git Tag (Optional)
|
|
84
|
+
```bash
|
|
85
|
+
git tag v0.13.1
|
|
86
|
+
git push origin v0.13.1
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Decision Guide
|
|
90
|
+
|
|
91
|
+
**Choose the version increment based on changes:**
|
|
92
|
+
|
|
93
|
+
| Change Type | Version Bump | Example |
|
|
94
|
+
|-------------|-------------|---------|
|
|
95
|
+
| Breaking change | Major (X.0.0) | Remove deprecated API |
|
|
96
|
+
| New feature | Minor (0.X.0) | Add new command or tool |
|
|
97
|
+
| Bug fix | Patch (0.0.X) | Fix deployment error |
|
|
98
|
+
| Typo/docs | Patch (0.0.X) | Fix CHANGELOG typo |
|
|
99
|
+
| Dependency update | Patch (0.0.X) | Update chalk to 5.x |
|
|
100
|
+
|
|
101
|
+
## Next Version Suggestions
|
|
102
|
+
|
|
103
|
+
**For next release after 0.13.0:**
|
|
104
|
+
|
|
105
|
+
- **0.13.1** - Bug fixes, documentation updates, minor improvements
|
|
106
|
+
- **0.14.0** - New features, new tool integrations, significant enhancements
|
|
107
|
+
- **1.0.0** - Production-ready release with stable API
|
|
108
|
+
|
|
109
|
+
## Pre-Release Versions
|
|
110
|
+
|
|
111
|
+
For beta/alpha releases:
|
|
112
|
+
- **0.13.0-alpha.1** - Alpha release
|
|
113
|
+
- **0.13.0-beta.1** - Beta release
|
|
114
|
+
- **0.13.0-rc.1** - Release candidate
|
|
115
|
+
|
|
116
|
+
## Reminder for Next Version
|
|
117
|
+
|
|
118
|
+
**When bumping version:**
|
|
119
|
+
1. ✅ Update `package.json`
|
|
120
|
+
2. ✅ Update `CHANGELOG.md`
|
|
121
|
+
3. ✅ Commit with message: `chore: bump version to X.X.X`
|
|
122
|
+
4. ✅ Push to remote
|
|
123
|
+
5. ✅ Run `npm publish`
|
|
124
|
+
6. ✅ Create git tag (optional)
|
|
125
|
+
|
|
126
|
+
**Next likely version: 0.13.1** (for patches/fixes)
|
|
127
|
+
**Or: 0.14.0** (for new features)
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ADF CLI
|
|
3
|
+
description: The Agent Development Framework CLI tool for AI-assisted software engineering.
|
|
4
|
+
tools:
|
|
5
|
+
- name: project_context
|
|
6
|
+
command: npx
|
|
7
|
+
args: ["@modelcontextprotocol/server-filesystem", ".context"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AGENTS.md
|
|
11
|
+
|
|
12
|
+
> **This is the Agent-Native Manifest for the ADF CLI project.**
|
|
13
|
+
> AI Agents (Windsurf, Cursor, Zed, etc.) must read this file first to understand the operational protocols.
|
|
14
|
+
|
|
15
|
+
## 1. Operational Protocols (CRITICAL)
|
|
16
|
+
|
|
17
|
+
### 1.1 Development Workflow
|
|
18
|
+
- **Spec-Driven:** All changes must be tracked in a Conductor Track (`conductor/tracks/`).
|
|
19
|
+
- **TDD:** Write unit tests (`tests/*.test.js`) before implementing functionality.
|
|
20
|
+
- **Commit Style:** Use Conventional Commits (e.g., `feat:`, `fix:`, `docs:`).
|
|
21
|
+
- **Code Coverage:** Maintain >80% coverage.
|
|
22
|
+
|
|
23
|
+
### 1.2 Context & Memory
|
|
24
|
+
- **Architecture:** Consult [.context/memory/architecture.md](./.context/memory/architecture.md) for system design.
|
|
25
|
+
- **Glossary:** Consult [.context/memory/glossary.md](./.context/memory/glossary.md) for terminology.
|
|
26
|
+
- **Product Vision:** Consult [conductor/product.md](./conductor/product.md).
|
|
27
|
+
|
|
28
|
+
## 2. Standard Commands
|
|
29
|
+
|
|
30
|
+
| Action | Command | Description |
|
|
31
|
+
| :--- | :--- | :--- |
|
|
32
|
+
| **Install** | `npm install` | Install dependencies |
|
|
33
|
+
| **Test** | `npm test` | Run all unit tests |
|
|
34
|
+
| **Lint** | `npm run lint` | Run code linting |
|
|
35
|
+
| **Build** | `npm run build` | Build the project (if applicable) |
|
|
36
|
+
| **Link** | `npm link` | Link CLI globally for local testing |
|
|
37
|
+
|
|
38
|
+
## 3. Project Structure
|
|
39
|
+
|
|
40
|
+
- `bin/` - CLI entry point (`adf.js`).
|
|
41
|
+
- `lib/` - Source code.
|
|
42
|
+
- `commands/` - CLI command handlers.
|
|
43
|
+
- `frameworks/` - Interview logic and frameworks (PRP, BMAD).
|
|
44
|
+
- `generators/` - Artifact generators.
|
|
45
|
+
- `ai/` - AI provider integration.
|
|
46
|
+
- `tests/` - Jest unit tests (mirror `lib/` structure).
|
|
47
|
+
- `.context/` - Agent-Native deep context (Memory, Skills).
|
|
48
|
+
- `conductor/` - Project management (Tracks, Plans).
|
|
49
|
+
|
|
50
|
+
## 4. Key Conventions
|
|
51
|
+
- **No External Database:** All data is stored in JSON/Markdown within `.adf/`.
|
|
52
|
+
- **Triple Redundancy:** Save session data frequently to prevent loss.
|
|
53
|
+
- **Privacy:** Never transmit learning data; keep it local.
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,155 @@ 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.14.0] - 2026-01-12
|
|
9
|
+
|
|
10
|
+
### 🚀 Major Feature - Project Context Synthesis & Adaptive Augmentation
|
|
11
|
+
|
|
12
|
+
**Minor Release:** Significant enhancement to brownfield project support with intelligent context synthesis and expanded AI-native tool integration.
|
|
13
|
+
|
|
14
|
+
#### Added
|
|
15
|
+
|
|
16
|
+
**Project Context Synthesis (Seamless Merge):**
|
|
17
|
+
- ✨ **Adaptive Project Augmentation** - Detects and synthesizes existing `.adf`, BMAD, OpenSpec, and Spec-Kit project files.
|
|
18
|
+
- ✨ **Context Extraction Engine** - Intelligently parses existing PRDs, proposals, and specifications into a unified ADF session.
|
|
19
|
+
- ✨ **AI-Driven Gap Analysis** - Uses LLM to identify logical omissions and vague sections in synthesized context.
|
|
20
|
+
- ✨ **Dynamic Questionnaire** - Generates targeted questions to fill identified "Knowledge Gaps," saving time by skipping redundant interview steps.
|
|
21
|
+
- ✨ **Session Chain Versioning** - Implements a linear history of project augmentations via versioned session folders (e.g., `augmentation_v1`).
|
|
22
|
+
|
|
23
|
+
**Extended Tool Support:**
|
|
24
|
+
- 🛠️ **Deep IDE Integration** - Added native generators for:
|
|
25
|
+
- **Kiro** (`.kiro/product.md`, `.kiro/technical.md`)
|
|
26
|
+
- **Trae** (`.trae/config.json`)
|
|
27
|
+
- **Codex CLI** (`.codex/config.toml`, `.codex/instructions.md`)
|
|
28
|
+
- 🛠️ **Tool Audit Registry** - New command `adf tools audit` provides a real-time report of supported tools, configuration files, and active features.
|
|
29
|
+
- 🛠️ **Verified Support** - Updated and verified deployment logic for OpenCode, Gemini CLI, Abacus.ai (DeepAgent), and Claude Code.
|
|
30
|
+
|
|
31
|
+
#### Technical Details
|
|
32
|
+
|
|
33
|
+
**New Files:**
|
|
34
|
+
- `lib/utils/framework-detector.js` - Multi-framework detection logic
|
|
35
|
+
- `lib/utils/context-extractor.js` - Cross-framework artifact parsing
|
|
36
|
+
- `lib/utils/tool-feature-registry.js` - Centralized tool metadata
|
|
37
|
+
- `lib/analysis/synthesis-engine.js` - Context merging and session creation
|
|
38
|
+
- `lib/analysis/heuristic-gap-analyzer.js` - Mandatory field verification
|
|
39
|
+
- `lib/analysis/ai-gap-analyzer.js` - LLM-powered context verification
|
|
40
|
+
- `lib/analysis/dynamic-question-generator.js` - Targeted interview generation
|
|
41
|
+
- `lib/generators/kiro-generator.js`, `lib/generators/trae-generator.js`, `lib/generators/codex-cli-generator.js` - New IDE config generators
|
|
42
|
+
- `lib/commands/tools.js` - Implementation of the audit command
|
|
43
|
+
|
|
44
|
+
**Modified Files:**
|
|
45
|
+
- `lib/commands/deploy.js` - Integrated 3 new tool targets
|
|
46
|
+
- `lib/generators/index.js` - Exported new generators
|
|
47
|
+
- `bin/adf.js` - Added `tools` sub-command
|
|
48
|
+
|
|
49
|
+
#### Impact
|
|
50
|
+
- ✅ Enables "ADF-centric" synthesis of pre-existing development framework data.
|
|
51
|
+
- ✅ Minimizes interview fatigue by only asking for missing information.
|
|
52
|
+
- ✅ Expands deployment reach to 12+ AI-native development environments.
|
|
53
|
+
- ✅ Future-proofs tool support via the Audit Registry.
|
|
54
|
+
|
|
55
|
+
## [0.13.0] - 2026-01-03
|
|
56
|
+
|
|
57
|
+
### 🚀 Major Feature - OpenCode Multi-Agent Integration
|
|
58
|
+
|
|
59
|
+
**Minor Release:** Enhanced OpenCode CLI integration with multi-provider, multi-agent support.
|
|
60
|
+
|
|
61
|
+
#### Added
|
|
62
|
+
|
|
63
|
+
**OpenCode Multi-Agent System:**
|
|
64
|
+
- ✨ **Complete OpenCode generator rewrite** using official configuration schema
|
|
65
|
+
- ✨ **Multi-provider support** - Automatically detects and configures all available AI providers from `.adf/.env`:
|
|
66
|
+
- Anthropic (Claude models)
|
|
67
|
+
- OpenAI (GPT models)
|
|
68
|
+
- Google Gemini (Gemini models)
|
|
69
|
+
- OpenRouter (100+ models)
|
|
70
|
+
- ✨ **Multi-agent configuration** - Creates specialized agents based on ADF framework level:
|
|
71
|
+
- **Rapid (PRP)**: dev, qa agents
|
|
72
|
+
- **Balanced (Spec-Kit)**: analyst, pm, dev, qa agents
|
|
73
|
+
- **Comprehensive (BMAD)**: analyst, pm, architect, sm, dev, qa agents
|
|
74
|
+
- ✨ **Optimal model assignment** - Each agent gets the best model for its task complexity:
|
|
75
|
+
- Powerful models (Sonnet/GPT-5/Gemini-2.5-Pro) → analyst, architect
|
|
76
|
+
- Balanced models (Haiku/GPT-4o/Gemini-1.5-Pro) → pm, dev
|
|
77
|
+
- Fast models (Haiku/GPT-4o-mini/Gemini-Flash) → qa, sm
|
|
78
|
+
- ✨ **MCP server integration** - Auto-configures filesystem access via Model Context Protocol
|
|
79
|
+
- ✨ **Auto-loads AGENTS.md** - References universal agent manifest and session outputs via `instructions` field
|
|
80
|
+
- ✨ **Tool permissions** - Agent-specific tool access (e.g., QA can't write production code)
|
|
81
|
+
|
|
82
|
+
**Incremental Deployment:**
|
|
83
|
+
- 📝 **Documented incremental tool deployment** - Add tools anytime with `adf deploy <tool>` without reinitializing
|
|
84
|
+
|
|
85
|
+
**Accurate Documentation:**
|
|
86
|
+
- 📖 **Updated OpenCode guide** with verified information from https://opencode.ai/docs
|
|
87
|
+
- 📖 Installation: `npm install -g opencode-ai@latest`
|
|
88
|
+
- 📖 Configuration schema: https://opencode.ai/config.json
|
|
89
|
+
- 📖 Multi-agent support highlighted in guide
|
|
90
|
+
|
|
91
|
+
#### Technical Details
|
|
92
|
+
|
|
93
|
+
**Modified Files:**
|
|
94
|
+
- `lib/generators/opencode-generator.js` - Complete rewrite (300+ lines)
|
|
95
|
+
- `getAvailableProviders()` - Detects providers from `.adf/.env`
|
|
96
|
+
- `generateProviderConfigurations()` - Creates provider configs with env var substitution
|
|
97
|
+
- `generateAgentConfigurations()` - Maps ADF agents to OpenCode agents
|
|
98
|
+
- `getOptimalModelForAgent()` - Selects best model per agent type
|
|
99
|
+
- `lib/commands/guide.js` - Updated OpenCode guide with accurate info
|
|
100
|
+
- `lib/commands/deploy.js` - Already integrated (no changes needed)
|
|
101
|
+
|
|
102
|
+
#### Impact
|
|
103
|
+
- ✅ OpenCode leverages ALL configured AI providers automatically
|
|
104
|
+
- ✅ Cost-effective: Each agent uses optimal model for its task
|
|
105
|
+
- ✅ Follows official OpenCode v1.0+ configuration standards
|
|
106
|
+
- ✅ Seamless integration with ADF's multi-provider AI system
|
|
107
|
+
- ✅ No breaking changes - existing deployments unaffected
|
|
108
|
+
|
|
109
|
+
## [0.12.14] - 2025-12-23
|
|
110
|
+
|
|
111
|
+
### 🐛 Fix - Windsurf Character Limit
|
|
112
|
+
|
|
113
|
+
**Patch Release:** Corrected Windsurf rule file character limit in guide.
|
|
114
|
+
|
|
115
|
+
#### Fixed
|
|
116
|
+
|
|
117
|
+
**Windsurf Guide Correction:**
|
|
118
|
+
- 🔧 **Fixed character limit** from 6000 to **12000 characters** per rule file
|
|
119
|
+
- Verified against official documentation: https://docs.windsurf.com/windsurf/cascade/memories
|
|
120
|
+
- Added documentation link to guide for reference
|
|
121
|
+
|
|
122
|
+
#### Impact
|
|
123
|
+
- ✅ Accurate character limit for `.windsurf/rules/*.md` files
|
|
124
|
+
- ✅ Users won't incorrectly split files at 6000 chars
|
|
125
|
+
- ✅ Guide now matches official Windsurf documentation
|
|
126
|
+
|
|
127
|
+
## [0.12.13] - 2025-12-23
|
|
128
|
+
|
|
129
|
+
### 🐛 Critical Fix - Guide System Accuracy
|
|
130
|
+
|
|
131
|
+
**Patch Release:** Fixed hallucinated information in `adf guide` command. All tool setup guides now use verified information from official documentation.
|
|
132
|
+
|
|
133
|
+
#### Fixed
|
|
134
|
+
|
|
135
|
+
**Guide System Overhaul:**
|
|
136
|
+
- 🔧 **Replaced all hallucinated content** with accurate information verified via official documentation
|
|
137
|
+
- Fixed installation commands, usage instructions, and file paths for all 9 supported tools
|
|
138
|
+
- All guides now reference real, working documentation and commands
|
|
139
|
+
|
|
140
|
+
**Tool-Specific Corrections:**
|
|
141
|
+
- **Windsurf**: Accurate `.windsurf/rules/*.md` format (6000 char limit per file)
|
|
142
|
+
- **Cursor**: Correct `.cursor/rules/*.mdc` format with YAML frontmatter
|
|
143
|
+
- **VS Code**: Verified `.github/copilot-instructions.md` usage with GitHub Copilot
|
|
144
|
+
- **Zed**: Accurate `settings.json` and MCP configuration details
|
|
145
|
+
- **Antigravity**: Correct "... → Customizations" menu instructions
|
|
146
|
+
- **Claude Code**: Real install script: `curl -fsSL https://claude.ai/install.sh | bash`
|
|
147
|
+
- **OpenCode**: GitHub repo reference, GitHub Copilot authentication requirement
|
|
148
|
+
- **Gemini CLI**: Correct package `@google/gemini-cli` and command `gemini` (not `gemini-cli`)
|
|
149
|
+
- **DeepAgent**: Correct package `@abacus-ai/cli` and command `abacusai` (not `deepagent`)
|
|
150
|
+
|
|
151
|
+
#### Impact
|
|
152
|
+
- ✅ Users can now trust guide information to be accurate
|
|
153
|
+
- ✅ Installation commands actually work as documented
|
|
154
|
+
- ✅ File paths and configurations match official tool documentation
|
|
155
|
+
- ✅ No more "command not found" errors from following guides
|
|
156
|
+
|
|
8
157
|
## [0.12.10] - 2025-12-23
|
|
9
158
|
|
|
10
159
|
### 🐛 Critical Bug Fixes
|
package/bin/adf.js
CHANGED
|
@@ -21,6 +21,7 @@ const deployCommand = require('../lib/commands/deploy');
|
|
|
21
21
|
const updateCommand = require('../lib/commands/update');
|
|
22
22
|
const configCommand = require('../lib/commands/config');
|
|
23
23
|
const guideCommand = require('../lib/commands/guide');
|
|
24
|
+
const toolsCommand = require('../lib/commands/tools');
|
|
24
25
|
|
|
25
26
|
const program = new Command();
|
|
26
27
|
|
|
@@ -471,6 +472,15 @@ ${chalk.cyan.bold('Security Notes:')}
|
|
|
471
472
|
`)
|
|
472
473
|
.action(configCommand);
|
|
473
474
|
|
|
475
|
+
// adf tools
|
|
476
|
+
const tools = program.command('tools');
|
|
477
|
+
tools.description('Manage and audit tool integrations');
|
|
478
|
+
|
|
479
|
+
tools
|
|
480
|
+
.command('audit')
|
|
481
|
+
.description('Audit all supported tools and features')
|
|
482
|
+
.action(toolsCommand);
|
|
483
|
+
|
|
474
484
|
// Handle unknown commands
|
|
475
485
|
program.on('command:*', () => {
|
|
476
486
|
console.error(chalk.red(`\nInvalid command: ${program.args.join(' ')}`));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"track_id": "context_synthesis_20260112",
|
|
3
|
+
"type": "feature",
|
|
4
|
+
"status": "new",
|
|
5
|
+
"created_at": "2026-01-12T12:35:00Z",
|
|
6
|
+
"updated_at": "2026-01-12T12:35:00Z",
|
|
7
|
+
"description": "Project Context Synthesis: Adaptive Project Augmentation for Existing .adf, BMAD, OpenSpec, and Spec-Kit Projects, including Extended Tool Support (Kiro, Trae, Codex CLI, etc.)"
|
|
8
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Implementation Plan: Project Context Synthesis (Adaptive Augmentation)
|
|
2
|
+
|
|
3
|
+
## Phase 1: Core Synthesis Engine [checkpoint: 3c7c462]
|
|
4
|
+
- [x] Task: Implement `FrameworkDetector` utility to scan for `.adf`, `BMAD`, `OpenSpec`, and `Spec-Kit` markers. [commit: c6e6af7]
|
|
5
|
+
- [x] Subtask: Create unit tests for detector with mock project structures.
|
|
6
|
+
- [x] Subtask: Implement detection logic for each framework.
|
|
7
|
+
- [x] Task: Create `ContextExtractor` to parse markdown artifacts from detected frameworks. [commit: 3d8ca9e]
|
|
8
|
+
- [x] Subtask: Write tests for parsing BMAD PRDs and OpenSpec proposals.
|
|
9
|
+
- [x] Subtask: Implement markdown parsing and data extraction logic.
|
|
10
|
+
- [x] Task: Implement `SynthesisEngine` to merge extracted data into a unified ADF session structure. [commit: 772430d]
|
|
11
|
+
- [x] Subtask: Write tests for merging overlapping data from different frameworks.
|
|
12
|
+
- [x] Subtask: Implement merge logic and "Session Chain" versioning (copying base context to new session).
|
|
13
|
+
- [x] Task: Conductor - User Manual Verification 'Core Synthesis Engine' (Protocol in workflow.md) [commit: 3c7c462]
|
|
14
|
+
|
|
15
|
+
## Phase 2: Adaptive Augmentation (Gap Analysis) [checkpoint: d4e776e]
|
|
16
|
+
- [x] Task: Implement `HeuristicGapAnalyzer` to identify missing mandatory framework artifacts. [commit: 8dcbb35]
|
|
17
|
+
- [x] Subtask: Write tests for heuristic checks across different framework levels.
|
|
18
|
+
- [x] Subtask: Implement requirement mapping logic.
|
|
19
|
+
- [x] Task: Implement `AIGapAnalyzer` using LLM to identify logical omissions in synthesized context. [commit: bf77067]
|
|
20
|
+
- [x] Subtask: Write tests for AI analysis prompts and response parsing.
|
|
21
|
+
- [x] Subtask: Implement AI analysis logic using the existing AI client.
|
|
22
|
+
- [x] Task: Create `DynamicQuestionGenerator` to produce a targeted questionnaire based on identified gaps. [commit: f186e1b]
|
|
23
|
+
- [x] Subtask: Write tests for question generation from gap reports.
|
|
24
|
+
- [x] Subtask: Implement dynamic questionnaire generation logic.
|
|
25
|
+
- [x] Task: Conductor - User Manual Verification 'Adaptive Augmentation' (Protocol in workflow.md) [commit: d4e776e]
|
|
26
|
+
|
|
27
|
+
## Phase 3: Extended Tool Support & Feature Registry [checkpoint: 8906f2b]
|
|
28
|
+
- [x] Task: Implement `KiroGenerator` and `TraeGenerator`. [commit: 044247e]
|
|
29
|
+
- [x] Subtask: Write tests for Kiro and Trae configuration output.
|
|
30
|
+
- [x] Subtask: Implement generators using the identified templates.
|
|
31
|
+
- [x] Task: Implement `CodexCLIGenerator` and update existing generators (Gemini, OpenCode, DeepAgent). [commit: d59c0b9]
|
|
32
|
+
- [x] Subtask: Write tests for Codex CLI (TOML) and updated generator features.
|
|
33
|
+
- [x] Subtask: Implement/Update generators with deep feature integration.
|
|
34
|
+
- [x] Task: Create `ToolFeatureRegistry` and `adf tools audit` command. [commit: ee23b7b]
|
|
35
|
+
- [x] Subtask: Write tests for tool auditing and feature tracking.
|
|
36
|
+
- [x] Subtask: Implement registry logic and the CLI sub-menu.
|
|
37
|
+
- [x] Task: Update `deploy` command to support all new tools and the augmentation workflow. [commit: 98273fd]
|
|
38
|
+
- [x] Subtask: Write integration tests for multi-tool deployment from augmented context.
|
|
39
|
+
- [x] Subtask: Update `lib/commands/deploy.js` with new tool mappings.
|
|
40
|
+
- [x] Task: Conductor - User Manual Verification 'Extended Tool Support' (Protocol in workflow.md) [commit: 8906f2b]
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Specification: Project Context Synthesis (Adaptive Augmentation)
|
|
2
|
+
|
|
3
|
+
## 1. Overview
|
|
4
|
+
**Goal:** Enable the "Project Context Synthesis" feature to intelligently detect and augment existing development projects (.adf, BMAD, OpenSpec, Spec-Kit). This allows users to enhance project requirements and tool support without restarting the full interview process.
|
|
5
|
+
|
|
6
|
+
**Scope:**
|
|
7
|
+
- Automated detection of existing framework indicators.
|
|
8
|
+
- Synthesis of found context into a unified ADF session.
|
|
9
|
+
- AI-driven "Knowledge Gap" analysis.
|
|
10
|
+
- Implementation of extended tool support for Kiro, Trae, Codex CLI, etc.
|
|
11
|
+
- A new "Tool Feature Update Registry" for future-proofing.
|
|
12
|
+
|
|
13
|
+
## 2. Functional Requirements
|
|
14
|
+
|
|
15
|
+
### 2.1 Project Detection & Synthesis (Seamless Merge)
|
|
16
|
+
- **Framework Detection:** Scan for indicators of `.adf`, `BMAD`, `OpenSpec`, and `Spec-Kit`.
|
|
17
|
+
- **Context Extraction:** Parse existing markdown artifacts from detected frameworks to populate the initial knowledge graph.
|
|
18
|
+
- **Synthesis Engine:** Merge extracted data into a new `.adf` session folder following the "Session Chain" versioning approach.
|
|
19
|
+
|
|
20
|
+
### 2.2 Adaptive Augmentation (The "Gap" System)
|
|
21
|
+
- **Heuristic Check:** Identify missing mandatory artifacts based on the selected framework level.
|
|
22
|
+
- **AI Gap Analysis:** Use the LLM to identify logical omissions or vague sections in the synthesized context.
|
|
23
|
+
- **Dynamic Questionnaire:** Generate and present only the questions needed to fill the identified gaps.
|
|
24
|
+
|
|
25
|
+
### 2.3 Extended Tool Support & Registry
|
|
26
|
+
- **New Generators:** Implement generators for Kiro, Trae, and Codex CLI.
|
|
27
|
+
- **Updated Generators:** Ensure full compliance and deep feature integration for OpenCode, Gemini CLI, Abacus.ai, and Claude Code.
|
|
28
|
+
- **Tool Feature Update Registry:** Implement a new CLI sub-menu (`adf tools audit`) to manually check and define the latest features for each supported tool.
|
|
29
|
+
|
|
30
|
+
### 2.4 Versioning (Session Chain)
|
|
31
|
+
- Every augmentation creates a new session folder (e.g., `YYYY-MM-DD_augmentation_v1`).
|
|
32
|
+
- The system must carry forward all prior context to the new session while preserving the original historical record.
|
|
33
|
+
|
|
34
|
+
## acceptance Criteria
|
|
35
|
+
- [ ] Successfully detects a project containing only OpenSpec or BMAD files and creates a valid `.adf` structure.
|
|
36
|
+
- [ ] Correctly identifies "Knowledge Gaps" in a project that has a PRD but no Technical Specification.
|
|
37
|
+
- [ ] Generates valid configuration files for Kiro and Trae during the `deploy` command.
|
|
38
|
+
- [ ] Allows users to resume an augmented session if interrupted.
|
|
39
|
+
- [ ] The `adf tools audit` command successfully lists features and version support for all 10+ target tools.
|
|
40
|
+
|
|
41
|
+
## 4. Out of Scope
|
|
42
|
+
- Automatic conversion of existing code logic between different programming languages.
|
|
43
|
+
- Modification of non-framework related project files (e.g., `src/`, `package-lock.json`).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Implementation Plan: Verify and Enhance OpenCode CLI Integration
|
|
2
|
+
|
|
3
|
+
## Phase 1: Audit & Analysis [checkpoint: d2a2020]
|
|
4
|
+
- [x] Task: Review `opencode-generator.js` against OpenCode CLI documentation.
|
|
5
|
+
- [x] Subtask: Analyze current implementation in `lib/generators/opencode-generator.js`.
|
|
6
|
+
- [x] Subtask: Compare against latest OpenCode docs (https://opencode.ai/docs/cli/).
|
|
7
|
+
- [x] Subtask: Document identified gaps or deprecated patterns.
|
|
8
|
+
- [x] Task: Conductor - User Manual Verification 'Audit & Analysis' (Protocol in workflow.md)
|
|
9
|
+
|
|
10
|
+
## Phase 2: Test Enhancement (TDD)
|
|
11
|
+
- [~] Task: Update and Expand Unit Tests.
|
|
12
|
+
- [ ] Subtask: Review existing tests in `tests/opencode-generator.test.js` (if exists) or create new.
|
|
13
|
+
- [ ] Subtask: Write failing tests for identified gaps (Validation, AGENTS.md support).
|
|
14
|
+
- [ ] Subtask: Ensure tests cover edge cases (missing params, invalid configs).
|
|
15
|
+
- [ ] Task: Conductor - User Manual Verification 'Test Enhancement (TDD)' (Protocol in workflow.md)
|
|
16
|
+
|
|
17
|
+
## Phase 3: Implementation & Refactoring [checkpoint: daee799]
|
|
18
|
+
- [x] Task: Implement/Update Validation Logic. [commit: a27fe6d]
|
|
19
|
+
- [x] Subtask: Update `opencode-generator.js` to validate config before generation.
|
|
20
|
+
- [x] Subtask: Implement specific checks for OpenCode requirements.
|
|
21
|
+
- [x] Subtask: Run tests to verify implementation (Red-Green-Refactor).
|
|
22
|
+
- [x] Task: Enhance Integration Logic. [commit: aba1a88]
|
|
23
|
+
- [x] Subtask: Ensure seamless integration with `deploy.js`.
|
|
24
|
+
- [x] Subtask: Add any missing hooks for post-deployment actions.
|
|
25
|
+
- [x] Task: Conductor - User Manual Verification 'Implementation & Refactoring' (Protocol in workflow.md)
|
|
26
|
+
|
|
27
|
+
## Phase 4: Final Verification
|
|
28
|
+
- [x] Task: Manual Deployment Verification.
|
|
29
|
+
- [x] Subtask: Run `adf deploy opencode` in a local test project.
|
|
30
|
+
- [x] Subtask: Verify the generated output file structure and content.
|
|
31
|
+
- [x] Task: Final Code Quality Check.
|
|
32
|
+
- [x] Subtask: Run full test suite `npm test`.
|
|
33
|
+
- [x] Subtask: Check code coverage report.
|
|
34
|
+
- [x] Task: Conductor - User Manual Verification 'Final Verification' (Protocol in workflow.md)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Specification: Verify and Enhance OpenCode CLI Integration
|
|
2
|
+
|
|
3
|
+
## 1. Goal
|
|
4
|
+
Ensure the `opencode-generator.js` is fully compatible with the latest OpenCode CLI standards, robustly handles edge cases, and correctly generates the required configuration artifacts.
|
|
5
|
+
|
|
6
|
+
## 2. Context
|
|
7
|
+
The ADF CLI currently supports multiple tools including OpenCode. We need to verify the current implementation against the latest documentation (https://opencode.ai/docs/cli/) and ensure the generator aligns with the project's "Agent-Native" architecture.
|
|
8
|
+
|
|
9
|
+
## 3. Requirements
|
|
10
|
+
|
|
11
|
+
### 3.1 Functional Requirements
|
|
12
|
+
* **Audit Existing Generator:** Review `lib/generators/opencode-generator.js` for deprecated patterns or missing features.
|
|
13
|
+
* **Validation Logic:** Implement robust validation for generated configurations to prevent invalid deployments.
|
|
14
|
+
* **Deployment Hooks:** Ensure the generator correctly interacts with the deployment pipeline (`lib/commands/deploy.js`).
|
|
15
|
+
* **AGENTS.md Compliance:** Ensure the generator respects and utilizes the `AGENTS.md` standard if present.
|
|
16
|
+
|
|
17
|
+
### 3.2 Non-Functional Requirements
|
|
18
|
+
* **Test Coverage:** Maintain >80% test coverage for the generator.
|
|
19
|
+
* **Error Handling:** Provide clear, actionable error messages for validation failures.
|
|
20
|
+
|
|
21
|
+
## 4. Success Criteria
|
|
22
|
+
* [ ] `opencode-generator.js` passes all existing and new unit tests.
|
|
23
|
+
* [ ] Generated configuration files are valid according to OpenCode CLI specs.
|
|
24
|
+
* [ ] `adf deploy opencode` works seamlessly in a test environment.
|
|
25
|
+
* [ ] Code coverage for `opencode-generator.js` is >= 80%.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Google JavaScript Style Guide Summary
|
|
2
|
+
|
|
3
|
+
This document summarizes key rules and best practices from the Google JavaScript Style Guide.
|
|
4
|
+
|
|
5
|
+
## 1. Source File Basics
|
|
6
|
+
- **File Naming:** All lowercase, with underscores (`_`) or dashes (`-`). Extension must be `.js`.
|
|
7
|
+
- **File Encoding:** UTF-8.
|
|
8
|
+
- **Whitespace:** Use only ASCII horizontal spaces (0x20). Tabs are forbidden for indentation.
|
|
9
|
+
|
|
10
|
+
## 2. Source File Structure
|
|
11
|
+
- New files should be ES modules (`import`/`export`).
|
|
12
|
+
- **Exports:** Use named exports (`export {MyClass};`). **Do not use default exports.**
|
|
13
|
+
- **Imports:** Do not use line-wrapped imports. The `.js` extension in import paths is mandatory.
|
|
14
|
+
|
|
15
|
+
## 3. Formatting
|
|
16
|
+
- **Braces:** Required for all control structures (`if`, `for`, `while`, etc.), even single-line blocks. Use K&R style ("Egyptian brackets").
|
|
17
|
+
- **Indentation:** +2 spaces for each new block.
|
|
18
|
+
- **Semicolons:** Every statement must be terminated with a semicolon.
|
|
19
|
+
- **Column Limit:** 80 characters.
|
|
20
|
+
- **Line-wrapping:** Indent continuation lines at least +4 spaces.
|
|
21
|
+
- **Whitespace:** Use single blank lines between methods. No trailing whitespace.
|
|
22
|
+
|
|
23
|
+
## 4. Language Features
|
|
24
|
+
- **Variable Declarations:** Use `const` by default, `let` if reassignment is needed. **`var` is forbidden.**
|
|
25
|
+
- **Array Literals:** Use trailing commas. Do not use the `Array` constructor.
|
|
26
|
+
- **Object Literals:** Use trailing commas and shorthand properties. Do not use the `Object` constructor.
|
|
27
|
+
- **Classes:** Do not use JavaScript getter/setter properties (`get name()`). Provide ordinary methods instead.
|
|
28
|
+
- **Functions:** Prefer arrow functions for nested functions to preserve `this` context.
|
|
29
|
+
- **String Literals:** Use single quotes (`'`). Use template literals (`` ` ``) for multi-line strings or complex interpolation.
|
|
30
|
+
- **Control Structures:** Prefer `for-of` loops. `for-in` loops should only be used on dict-style objects.
|
|
31
|
+
- **`this`:** Only use `this` in class constructors, methods, or in arrow functions defined within them.
|
|
32
|
+
- **Equality Checks:** Always use identity operators (`===` / `!==`).
|
|
33
|
+
|
|
34
|
+
## 5. Disallowed Features
|
|
35
|
+
- `with` keyword.
|
|
36
|
+
- `eval()` or `Function(...string)`.
|
|
37
|
+
- Automatic Semicolon Insertion.
|
|
38
|
+
- Modifying builtin objects (`Array.prototype.foo = ...`).
|
|
39
|
+
|
|
40
|
+
## 6. Naming
|
|
41
|
+
- **Classes:** `UpperCamelCase`.
|
|
42
|
+
- **Methods & Functions:** `lowerCamelCase`.
|
|
43
|
+
- **Constants:** `CONSTANT_CASE` (all uppercase with underscores).
|
|
44
|
+
- **Non-constant Fields & Variables:** `lowerCamelCase`.
|
|
45
|
+
|
|
46
|
+
## 7. JSDoc
|
|
47
|
+
- JSDoc is used on all classes, fields, and methods.
|
|
48
|
+
- Use `@param`, `@return`, `@override`, `@deprecated`.
|
|
49
|
+
- Type annotations are enclosed in braces (e.g., `/** @param {string} userName */`).
|
|
50
|
+
|
|
51
|
+
*Source: [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html)*
|