Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
{
"enabledPlugins": {
"dotnet@dotnet-agent-skills": false,
"dotnet-diag@dotnet-agent-skills": true,
"dotnet-aspnet@dotnet-agent-skills": false,
"dotnet-template-engine@dotnet-agent-skills": false,
"dev-team@jodavis-agent-plugins": true
},
"extraKnownMarketplaces": {
"dev-team-agents": {
"jodavis-agent-plugins": {
"source": {
"source": "github",
"repo": "jodavis/agent-plugins",
"ref": "feature/ADR-246-cloud-dev-team"
"ref": "feature/ADR-269-agent-orchestration"
}
}
},
"enabledPlugins": {
"dotnet@dotnet-agent-skills": false,
"dotnet-diag@dotnet-agent-skills": true,
"dotnet-aspnet@dotnet-agent-skills": false,
"dotnet-template-engine@dotnet-agent-skills": false,
"dev-team@dev-team-agents": true
},
"mcpServers": {
"microsoft-learn": {
"type": "sse",
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ jobs:
with:
python-version: '3.12'

- name: Install pytest
run: pip install pytest
- name: Install Python dependencies
working-directory: ml
run: pip install -r requirements.txt

- name: Run Python unit tests
working-directory: ml
Expand Down
1 change: 1 addition & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<!-- Third-party Libraries -->
<PackageVersion Include="I8Beef.TiVo" Version="1.0.0.14" />
<PackageVersion Include="Microsoft.Playwright" Version="1.58.0" />
<PackageVersion Include="MessagePack.Annotations" Version="2.5.198" />
<PackageVersion Include="StreamJsonRpc" Version="2.24.84" />
<PackageVersion Include="System.Speech" Version="8.0.0" />
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
Expand Down
23 changes: 20 additions & 3 deletions ml/_spec_OopPipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -985,6 +985,23 @@ Implement `ml/pipeline/intent/` and the first two DVC entry-points.

---

### [ADR-278](https://jodasoft.atlassian.net/browse/ADR-278) Task 3b: DVC wiring for intent stages

Wire the first two intent stages in DVC as an early end-to-end proof that the OOP classes, manifest format, and pipeline conventions work correctly before the speech stages are implemented. This task initialises DVC inside `ml/`, configures the S3 remote, creates `dvc.yaml` covering the phoneme dictionary download and the two intent stages, writes the initial `params.yaml` with the pipeline keys those stages need, and verifies that `dvc repro` runs both stages successfully and `dvc push` uploads their outputs to S3.

- [ ] `dvc init` run inside `ml/` (creates `ml/.dvc/`); `.dvc/` added to `ml/.gitignore`
- [ ] S3 remote configured in `ml/.dvc/config`: `dvc remote add -d adr-ml-training-data s3://adr-ml-training-data/dvc` (matches repo-root `.dvc/config`)
- [ ] `ml/params.yaml` created with all `pipeline.*` keys needed by the intent stages: `input_phrases_path`, `variations_per_phrase`, `subsample_rate`
- [ ] `ml/dvc.yaml` created with three stages in dependency order:
- `download_phoneme_dictionary` — wraps `download_phoneme_dictionary.py`; output dir tracked by DVC
- `generate_phrases` — runs `intent_01_generate_phrases.py`; reads params `pipeline.input_phrases_path`, `pipeline.variations_per_phrase`, `pipeline.subsample_rate`; deps include `pipeline/` package directory and input phrases file; out: `data/intent_01_generate_phrases/`
- `compute_vocab` — runs `intent_02_compute_vocab.py`; deps include `data/intent_01_generate_phrases/` and the phoneme dictionary output dir; out: `data/intent_02_compute_vocab/`
- [ ] `dvc repro` runs both intent stages end-to-end without errors on the dev machine
- [ ] `dvc push` successfully uploads intent stage outputs to the S3 remote
- [ ] `validate-build` and `validate-tests` pass

---

### [ADR-225](https://jodasoft.atlassian.net/browse/ADR-225) Task 4: TTS stage

Implement `ml/pipeline/speech/tts_stage.py` and `stages/speech_03_generate_samples.py`.
Expand Down Expand Up @@ -1061,12 +1078,12 @@ Implement `ModelEvaluator` and the final two entry-points.

### [ADR-231](https://jodasoft.atlassian.net/browse/ADR-231) Task 9: DVC wiring and old script cleanup

Wire all stages in `dvc.yaml`; migrate `params.yaml`; delete old scripts.
Extend the `dvc.yaml` and `params.yaml` from Task 3b to cover all 12 stages; delete old scripts.

**⚠️ Script deletion must happen after Task 3 is merged** — the old `ml/scripts/` tree is the reference for `PhraseVariator`. Delete it only once Task 3's implementation is reviewed and merged.

- [ ] Write `ml/dvc.yaml` from scratch: all 12 stages wired with correct `cmd`, `deps`, `outs`, `params`; `persist: true` on all `ModifierStage` output dirs
- [ ] Write `ml/params.yaml`: all `pipeline.*` keys (including `input_phrases_path`, `variations_per_phrase`, `subsample_rate`, `n_mels`, `time_steps`, `input_token_length`, `epochs`, `batch_size`) and all `stages.*` variation-constraint keys
- [ ] Extend `ml/dvc.yaml` with the remaining 9 stages (speech_03 through speech_12): correct `cmd`, `deps`, `outs`, `params`; `persist: true` on all `ModifierStage` output dirs
- [ ] Extend `ml/params.yaml` with remaining `pipeline.*` keys (`n_mels`, `time_steps`, `input_token_length`, `epochs`, `batch_size`) and all `stages.*` variation-constraint keys
- [ ] Retain `download_phoneme_dictionary.py` as a non-OOP stage
- [ ] Delete `ml/scripts/` tree (after Task 3 is merged)
- [ ] `dvc repro` runs end-to-end without errors on the dev machine
Expand Down
11 changes: 11 additions & 0 deletions ml/params.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
pipeline:
variations_per_phrase: 20
subsample_rate: 200

stages:
generate_phrases:
repeat_modifier_chance: 0.2
pleasantry_chance: 0.3
hesitation_chance: 0.3
spelling_variant_chance: 0.1
case_variant_chance: 0.2
Empty file added ml/pipeline/intent/__init__.py
Empty file.
Loading
Loading