Skip to content

Commit 6327d5d

Browse files
committed
docs(install-command): align docs with current implementation
1 parent 58f2f7f commit 6327d5d

File tree

7 files changed

+63
-43
lines changed

7 files changed

+63
-43
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [Unreleased]
9+
10+
### Added
11+
12+
- **Install Command** - Added `ai-devkit install` to apply project configuration from `.ai-devkit.json`
13+
- Supports `--config <path>` for custom config file locations
14+
- Supports `--overwrite` for non-interactive full overwrite mode
15+
- Installs environments, phases, and skills in a single run with summary output
16+
817
## [0.14.0] - 2026-02-21
918

1019
### Changed

docs/ai/design/feature-install-command.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ feature: install-command
1414
```mermaid
1515
graph TD
1616
User[User: ai-devkit install] --> InstallCommand
17-
InstallCommand --> ConfigManager[ConfigManager: read .ai-devkit.json]
18-
ConfigManager --> Validator[InstallConfig Validator]
17+
InstallCommand --> ConfigLoader[Config Service: load .ai-devkit.json]
18+
ConfigLoader --> Validator[Config Util Validator]
1919
Validator --> Reconciler[Install Reconciler]
2020
Reconciler --> Confirmer[Overwrite Confirmation Prompt]
2121
Reconciler --> EnvSetup[TemplateManager.setupMultipleEnvironments]
@@ -44,7 +44,7 @@ graph TD
4444
interface DevKitInstallConfig {
4545
version: string;
4646
environments: EnvironmentCode[];
47-
initializedPhases: Phase[];
47+
phases: Phase[];
4848
skills?: Array<{
4949
registry: string;
5050
name: string;
@@ -67,7 +67,7 @@ interface DevKitInstallConfig {
6767
- `ai-devkit install`
6868
- Optional follow-up flags (proposed):
6969
- `--config <path>` (default `.ai-devkit.json`)
70-
- `--yes` (auto-confirm overwrite prompts for automation)
70+
- `--overwrite` (overwrite all existing artifacts without additional prompts)
7171

7272
**Internal interfaces (proposed):**
7373

@@ -91,11 +91,12 @@ async function reconcileAndInstall(config: ValidatedInstallConfig, options: Inst
9191
**What are the major building blocks?**
9292

9393
1. `packages/cli/src/commands/install.ts` (new): top-level command execution.
94-
2. `packages/cli/src/lib/InstallConfig.ts` (new): schema validation and normalization.
95-
3. `packages/cli/src/lib/InstallOrchestrator.ts` (new): reconcile and apply installation.
96-
4. `packages/cli/src/lib/Config.ts` (update): persist/read `skills` metadata.
97-
5. `packages/cli/src/lib/SkillManager.ts` (update): on successful `addSkill`, sync skill entry into `.ai-devkit.json`.
98-
6. `packages/cli/src/cli.ts` (update): register `install` command and options.
94+
2. `packages/cli/src/services/config/config.service.ts` (new): load config file from disk.
95+
3. `packages/cli/src/util/config.ts` (new): schema validation and normalization.
96+
4. `packages/cli/src/services/install/install.service.ts` (new): reconcile and apply installation.
97+
5. `packages/cli/src/lib/Config.ts` (update): persist/read `skills` metadata.
98+
6. `packages/cli/src/lib/SkillManager.ts` (update): on successful `addSkill`, sync skill entry into `.ai-devkit.json`.
99+
7. `packages/cli/src/cli.ts` (update): register `install` command and options.
99100

100101
## Design Decisions
101102

docs/ai/implementation/feature-install-command.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,22 @@ feature: install-command
1010
## Development Setup
1111

1212
- Implemented in `packages/cli` using existing command architecture (`commander`).
13-
- No new external dependencies required.
13+
- Uses `zod` for schema-based config validation.
1414
- Feature reuses existing managers: `ConfigManager`, `TemplateManager`, `SkillManager`.
1515

1616
## Code Structure
1717

1818
- `packages/cli/src/commands/install.ts`
1919
- New CLI handler for `ai-devkit install`.
2020
- Handles config loading, report output, and process exit code.
21-
- `packages/cli/src/lib/InstallConfig.ts`
22-
- Validates and normalizes install config file data.
23-
- Supports backward-compatible skill shape (`name` and legacy `skill` key).
24-
- `packages/cli/src/lib/InstallOrchestrator.ts`
21+
- `packages/cli/src/services/config/config.service.ts`
22+
- Loads and parses config file JSON from disk.
23+
- `packages/cli/src/util/config.ts`
24+
- Validates and normalizes install config data using Zod.
25+
- Supports skill shape normalization (`name` and legacy `skill` key).
26+
- `packages/cli/src/services/install/install.service.ts`
2527
- Reconciles desired state and applies environment/phase/skill installation.
26-
- Implements overwrite and strict-failure policy.
28+
- Implements overwrite and warning-based partial-failure policy.
2729
- `packages/cli/src/types.ts`
2830
- Adds optional `skills` metadata to `DevKitConfig`.
2931
- `packages/cli/src/lib/Config.ts`
@@ -40,9 +42,7 @@ feature: install-command
4042
- `ai-devkit install`
4143
- Options:
4244
- `--config <path>`: alternate config file path (default `.ai-devkit.json`)
43-
- `--overwrite`: allow replacing existing artifacts
44-
- `--yes`: auto-confirm overwrite when `--overwrite` is set
45-
- `--strict`: return exit code `1` when any skill installation fails
45+
- `--overwrite`: overwrite all existing artifacts without additional prompts
4646

4747
### Reconcile Behavior
4848

@@ -56,7 +56,6 @@ feature: install-command
5656
- `1` for invalid/missing config.
5757
- `1` for environment/phase failures.
5858
- `0` for successful run and for skill-only partial failures.
59-
- `1` for skill failures when `--strict` is enabled.
6059

6160
## Error Handling
6261

docs/ai/planning/feature-install-command.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ feature: install-command
1313

1414
- [x] Milestone 1: Requirements/design approved for `ai-devkit install`.
1515
- [x] Milestone 2: Core install flow (config read + env/phase reconcile) implemented.
16-
- [ ] Milestone 3: Skill install integration + tests + docs completed.
16+
- [x] Milestone 3: Skill install integration + tests + docs completed.
1717

1818
## Task Breakdown
1919

@@ -29,23 +29,23 @@ feature: install-command
2929
### Phase 2: Core Features
3030

3131
- [x] Task 2.1: Implement environment setup from `environments` using `TemplateManager`.
32-
- [x] Task 2.2: Implement phase setup from `initializedPhases` using `TemplateManager`.
32+
- [x] Task 2.2: Implement phase setup from `phases` using `TemplateManager`.
3333
- [x] Task 2.3: Add idempotent handling for existing artifacts.
3434
- [x] Task 2.4: Add `--overwrite` behavior and conflict messaging.
3535

3636
### Phase 3: Skills Integration
3737

3838
- [x] Task 3.1: Implement skills install loop from config skills entries.
3939
- [x] Task 3.2: Deduplicate skill entries by `registry + name`.
40-
- [x] Task 3.3: Add partial-failure handling and optional `--strict` exit behavior.
40+
- [x] Task 3.3: Add partial-failure handling with warning-only skill failures.
4141
- [x] Task 3.4: Update config types/read-write paths for optional `skills` field.
4242

4343
### Phase 4: Validation & Docs
4444

4545
- [x] Task 4.1: Unit tests for config validation and normalization.
4646
- [x] Task 4.2: Integration tests for full `ai-devkit install` happy path.
4747
- [x] Task 4.3: Integration tests for missing config, invalid config, and partial failures.
48-
- [ ] Task 4.4: Update README/CLI help/changelog with usage examples.
48+
- [x] Task 4.4: Update README/CLI help/changelog with usage examples.
4949

5050
## Dependencies
5151

@@ -72,8 +72,8 @@ graph TD
7272
- Phase 1: completed
7373
- Phase 2: completed
7474
- Phase 3: completed
75-
- Phase 4: in progress (`4.4` pending)
76-
- Remaining estimate: 0.5 day
75+
- Phase 4: completed
76+
- Remaining estimate: 0 day
7777

7878
## Risks & Mitigation
7979

@@ -82,7 +82,7 @@ graph TD
8282
- Risk: Existing `.ai-devkit.json` files lack `skills`.
8383
- Mitigation: keep field optional and treat as empty array.
8484
- Risk: Skill installs fail because of network/registry issues.
85-
- Mitigation: continue on error, collect warnings, return non-zero only in `--strict` mode.
85+
- Mitigation: continue on error and collect warnings with clear per-skill failure details.
8686
- Risk: Overwrite policy causes accidental template replacement.
8787
- Mitigation: default skip existing artifacts unless `--overwrite` is enabled.
8888

docs/ai/requirements/feature-install-command.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,17 @@ feature: install-command
8080

8181
**How will we know when we're done?**
8282

83-
- [ ] `ai-devkit install` command is available and documented.
84-
- [ ] Command loads `.ai-devkit.json` from CWD by default.
85-
- [ ] Command applies configured environments (command/context templates).
86-
- [ ] Command applies configured `initializedPhases` templates.
87-
- [ ] Command installs configured skills using existing skill installation flow.
88-
- [ ] Command prints final summary with installed/skipped/failed counts.
89-
- [ ] Command returns non-zero exit code for invalid/missing config.
90-
- [ ] Command returns exit code `0` for partial skill-install failures and emits warnings with failure details.
91-
- [ ] Re-running command is safe and does not duplicate work.
92-
- [ ] `ai-devkit skill add` persists installed skill metadata into `.ai-devkit.json`.
93-
- [ ] Existing artifacts trigger user confirmation before overwrite.
83+
- [x] `ai-devkit install` command is available and documented.
84+
- [x] Command loads `.ai-devkit.json` from CWD by default.
85+
- [x] Command applies configured environments (command/context templates).
86+
- [x] Command applies configured `phases` templates.
87+
- [x] Command installs configured skills using existing skill installation flow.
88+
- [x] Command prints final summary with installed/skipped/failed counts.
89+
- [x] Command returns non-zero exit code for invalid/missing config.
90+
- [x] Command returns exit code `0` for partial skill-install failures and emits warnings with failure details.
91+
- [x] Re-running command is safe and does not duplicate work.
92+
- [x] `ai-devkit skill add` persists installed skill metadata into `.ai-devkit.json`.
93+
- [x] Existing artifacts trigger user confirmation before overwrite.
9494

9595
## Constraints & Assumptions
9696

docs/ai/testing/feature-install-command.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,19 @@ feature: install-command
1515

1616
## Unit Tests
1717

18-
### `InstallConfig` Validation
18+
### Config Validation (`util/config.ts`)
1919

2020
- [x] Normalizes duplicated environments/phases/skills.
2121
- [x] Accepts legacy `skills[].skill` and normalizes to `name`.
22-
- [x] Fails for missing config file.
2322
- [x] Fails for unsupported environment values.
2423
- [x] Fails for invalid skill entries.
2524

25+
### Config Loading (`services/config/config.service.ts`)
26+
27+
- [x] Fails for missing config file.
28+
- [x] Fails for invalid JSON parsing.
29+
- [x] Returns resolved config path and parsed data on success.
30+
2631
### `install` Command Handler
2732

2833
- [x] Returns exit code `1` when config loading fails.
@@ -48,24 +53,24 @@ Executed on February 23, 2026:
4853

4954
```bash
5055
npm run test -- --runInBand \
51-
src/__tests__/lib/InstallConfig.test.ts \
56+
src/__tests__/util/config.test.ts \
5257
src/__tests__/commands/install.test.ts \
58+
src/__tests__/services/config/config.service.test.ts \
5359
src/__tests__/lib/Config.test.ts \
5460
src/__tests__/lib/SkillManager.test.ts \
5561
src/__tests__/commands/init.test.ts
5662
```
5763

58-
Result: `5 passed, 5 total` test suites and `79 passed, 79 total` tests.
64+
Result: targeted suites pass locally (command/config/config-service/config-manager/init/skill-manager coverage).
5965

6066
## Manual Testing
6167

6268
Pending manual verification:
6369

6470
- [ ] `ai-devkit install` in a repo with existing `.ai-devkit.json`.
6571
- [ ] `ai-devkit install --overwrite` prompt and overwrite behavior.
66-
- [ ] `ai-devkit install --strict` non-zero behavior when skill install fails.
72+
- [ ] `ai-devkit install` with skill install failure path and warning output.
6773

6874
## Outstanding Gaps
6975

70-
- README/changelog examples for `ai-devkit install` are not yet added.
7176
- End-to-end filesystem and network-backed integration tests are still pending.

packages/cli/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ ai-devkit init
4646
# Initialize project from YAML/JSON template
4747
ai-devkit init --template ./ai-devkit.init.yaml
4848

49+
# Install/reconcile project setup from .ai-devkit.json
50+
ai-devkit install
51+
52+
# Overwrite all existing install artifacts without extra prompts
53+
ai-devkit install --overwrite
54+
4955
# Add a development phase
5056
ai-devkit phase requirements
5157

0 commit comments

Comments
 (0)