@dailephd/my-dev-kit-lab 0.4.9 → 0.5.1
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 +28 -0
- package/README.md +20 -2
- package/benchmarks/contracts/benchmark-project-profiles.json +14 -14
- package/benchmarks/contracts/warm-index-benchmark-cases.json +764 -0
- package/dist/src/cli/help.js +19 -4
- package/dist/src/commands/runExperimentDescribeCommand.js +11 -2
- package/dist/src/commands/runExperimentListCommand.js +3 -0
- package/dist/src/commands/runExperimentRunCommand.js +27 -7
- package/dist/src/evaluation/benchmarkMetadata.js +191 -1
- package/dist/src/evaluation/projectComplexity.js +1 -1
- package/dist/src/evaluation/readEvaluationCases.js +7 -1
- package/dist/src/evaluation/runMyDevKitRetrieval.js +82 -53
- package/dist/src/evaluation/types.js +1 -1
- package/dist/src/experiments/defaultRegistry.js +2 -0
- package/dist/src/experiments/plugins/index.js +1 -0
- package/dist/src/experiments/plugins/warmIndexReuse/config.js +58 -0
- package/dist/src/experiments/plugins/warmIndexReuse/execution.js +158 -0
- package/dist/src/experiments/plugins/warmIndexReuse/executionArtifact.js +77 -0
- package/dist/src/experiments/plugins/warmIndexReuse/fakeAgentEvaluation.js +118 -0
- package/dist/src/experiments/plugins/warmIndexReuse/index.js +8 -0
- package/dist/src/experiments/plugins/warmIndexReuse/metrics.js +257 -0
- package/dist/src/experiments/plugins/warmIndexReuse/plugin.js +212 -0
- package/dist/src/experiments/plugins/warmIndexReuse/selection.js +85 -0
- package/dist/src/experiments/plugins/warmIndexReuse/warmIndexSession.js +43 -0
- package/dist/src/plots/buildWarmIndexPlotData.js +112 -0
- package/dist/src/plots/index.js +1 -0
- package/dist/src/plots/writePlotArtifacts.js +8 -1
- package/dist/src/report/experiments/buildPluginExperimentReport.js +18 -2
- package/dist/src/report/experiments/buildWarmIndexReuseReport.js +91 -0
- package/dist/src/report/experiments/index.js +3 -0
- package/dist/src/report/experiments/renderPluginExperimentReportHtml.js +3 -0
- package/dist/src/report/experiments/renderPluginExperimentReportText.js +73 -0
- package/dist/src/report/experiments/renderWarmIndexReuseHtml.js +150 -0
- package/dist/src/report/experiments/warmIndexReuseReportModel.js +1 -0
- package/docs/METRICS.md +75 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@ All notable changes to my-dev-kit-lab are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.5.1] - 2026-09-22
|
|
8
|
+
|
|
9
|
+
Expanded warm-index benchmark suite.
|
|
10
|
+
|
|
11
|
+
- Added the dedicated warm-index benchmark corpus `benchmarks/contracts/warm-index-benchmark-cases.json` with 12 tasks: six for `task-workflow-medium-ts` and six for `task-analytics-large-mixed`. Each project has one localized task, four cross-module tasks, and one broad-change negative control.
|
|
12
|
+
- Added optional task-locality metadata (`localized`, `cross-module`, `broad-change`) to evaluation cases. Existing case files without it stay valid, invalid values are rejected, and the dedicated corpus requires it.
|
|
13
|
+
- Every corpus task has an answer key with expected facts, plus expected files and symbols that must exactly match the answer key and must exist in the benchmark project.
|
|
14
|
+
- `npm run verify:benchmarks` now validates the dedicated corpus, requires at least five tasks and every locality category for each warm-index benchmark project, and checks project-profile task statistics against the corpus. The medium and large/mixed profiles now record six tasks each (complexity scores 31 and 47 under the unchanged formula).
|
|
15
|
+
- Regression tests prove the existing one-index-per-project warm-index runtime at six tasks per project: two index builds for the 12 tasks, task ordinals 1–6, amortized and cumulative metrics, per-project reset, strict-prefix availability, and isolation of single-task and single-project failures.
|
|
16
|
+
- The existing warm-index report (schema `my-dev-kit-lab-warm-index-report-v1`) and the existing four plots cover the expanded suite: 2 projects, 12 tasks, and ordinals 1–6 per project.
|
|
17
|
+
- The packed-package acceptance gate now checks that the corpus is in the tarball, readable from a clean install, and selectable through the installed CLI's existing `--cases` option.
|
|
18
|
+
- No CLI command or flag, warm-index metric formula, report schema, or plot was added. The default cases file (`examples/token-savings-cases.json`) and the default my-dev-kit command are unchanged. Real-agent warm-index campaigns remain planned for v0.5.2.
|
|
19
|
+
|
|
20
|
+
## [0.5.0] - 2026-09-21
|
|
21
|
+
|
|
22
|
+
Warm-index reuse experiment support.
|
|
23
|
+
|
|
24
|
+
- Added the experimental `warm-index-reuse` experiment plugin, registered alongside `context-strategy-comparison` and reachable through `experiment list`, `experiment describe`, and `experiment run`.
|
|
25
|
+
- Built exactly one my-dev-kit index per benchmark-project group and reused it across every task in that group, with a matched `raw-full-file` baseline for each task; cases that disagree on target or source roots fail structurally instead of being indexed.
|
|
26
|
+
- Separated index construction from retrieval: one measured `index` command per project, and search/lookup/slice/source against the prepared index for each task, without re-indexing.
|
|
27
|
+
- Added deterministic fake-agent evaluation of each task side with context evidence, reusing the existing prompt generator, answer parser, run classifier, and correctness scorer.
|
|
28
|
+
- Reported index build duration, raw context-construction and warm retrieval durations, raw and retrieved context size, estimated context tokens, amortized index build duration (build duration / task ordinal), cumulative component durations, cumulative estimated context tokens, fake-agent correctness, fake-agent total tokens, and cumulative fake-agent total tokens, each with explicit `available`/`unavailable`/`not-applicable` availability and strict-prefix cumulative rules.
|
|
29
|
+
- Added a bounded warm-index section to the plugin `report.json`, `report.txt`, and `report.html`, explaining cold-start versus warm-reuse cost, with a neutral interpretation and explicit limitations. The bounded `warm-index-execution.json` records execution evidence without context text.
|
|
30
|
+
- Added four warm-index plots through the existing `plots generate` command: amortized index cost, raw versus retrieved context size, fake-agent correctness, and cumulative fake-agent token usage.
|
|
31
|
+
- Added the warm-index-only `experiment run --kit-command <command>` option (default `npx @dailephd/my-dev-kit@latest`), grouped `experiment run --help` options by plugin, and corrected `plots generate` help to describe supported inputs.
|
|
32
|
+
- Extended the exact packed-package acceptance gate with installed warm-index execution, reports, and plots while preserving installed-package and target immutability.
|
|
33
|
+
- Limitations: agent evidence comes from the deterministic fake agent only; fake-agent correctness and token totals are simulated harness evidence, not real-model results or provider billing telemetry; estimated context tokens remain a separate context-size estimate; cumulative durations are component sums, not wall-clock latency; no token-savings percentage, break-even task, winner, or ranking is calculated; the bundled cases provide one task per benchmark project; real-agent warm-index campaigns, warm-index screenshots, and gallery integration are not included.
|
|
34
|
+
|
|
7
35
|
## [0.4.9] - 2026-09-20
|
|
8
36
|
|
|
9
37
|
Semantic native-select option selection for declarative browser tutorials.
|
package/README.md
CHANGED
|
@@ -6,13 +6,16 @@ my-dev-kit provides local repository indexing and graph-guided retrieval. my-dev
|
|
|
6
6
|
|
|
7
7
|
Whole-ecosystem workflows are centralized in [my-dev-kit/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md](https://github.com/dailephd/my-dev-kit/blob/main/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md). Its [command-surface compatibility map](https://github.com/dailephd/my-dev-kit/blob/main/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md#915-command-surface-compatibility-map) documents which Lab outputs can safely seed my-dev-kit investigation, Observer reference work, or Orchestrator evidence, and which look-alike artifacts are not direct inputs.
|
|
8
8
|
|
|
9
|
-
The latest release is v0.
|
|
9
|
+
The latest release is v0.5.1 (expanded warm-index benchmark suite). The previous release, v0.5.0, added warm-index reuse experiment support. The v0.4.5 context-integrity evaluation remains intentionally frozen against the published `@dailephd/my-dev-kit@1.10.4` and `@dailephd/my-dev-kit-orchestrator@1.2.3` contracts; those versions are historical validation baselines, not a statement that they are the ecosystem's current releases. See [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md).
|
|
10
|
+
|
|
11
|
+
The current release includes v0.5.1 expanded warm-index benchmarks. The package and installed CLI are version 0.5.1; v0.5.0 remains the previous release. v0.5.2 real-agent warm-index campaigns are planned next. See [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md) for the validated release state.
|
|
10
12
|
|
|
11
13
|
v0.4.6 adds a supported `my-dev-kit-lab` installed CLI router (`--help`, `--version`, `security validate`, `audit`, the `experiment` family, `report render`, `plots generate`, `gallery build`, `demo final`, and the historical direct final-demo invocation form), a writable lab workspace model kept separate from the installed package and the inspected target, and a permanent packed-tarball installation/execution acceptance gate (`npm run verify:packed-package`). See [docs/ROADMAP.md](docs/ROADMAP.md) and [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md) for status detail and [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the runtime path model. The "Installed CLI" section below documents the shipped command surface; the source-checkout `npm run` workflow in Quickstart remains available for contributors.
|
|
12
14
|
|
|
13
15
|
## Current capabilities
|
|
14
16
|
|
|
15
17
|
- **Run context-strategy experiments:** compare `raw-full-file` with `my-dev-kit-guided` using deterministic fixtures or locally configured Codex and Claude CLIs.
|
|
18
|
+
- **Measure warm-index reuse (v0.5.1):** the `warm-index-reuse` experiment plugin builds one my-dev-kit index per benchmark project, reuses it across that project's tasks, and compares every task with a matched `raw-full-file` baseline. Reports separate one-time index-build cost from per-task retrieval cost, show amortized index cost and cumulative measurements, and include deterministic fake-agent correctness and token evidence; `plots generate` renders four warm-index SVG charts. The v0.5.1 release adds a dedicated 12-task benchmark corpus (`benchmarks/contracts/warm-index-benchmark-cases.json`: six medium and six large/mixed tasks tagged `localized`, `cross-module`, or `broad-change`) for comparing warm-index behavior as task count grows. Estimated context tokens (a character-based context-size estimate) and fake-agent total tokens (simulated harness telemetry) are reported separately, and neither is provider billing telemetry. See [docs/WORKFLOWS.md](docs/WORKFLOWS.md#warm-index-reuse-experiment) and [docs/METRICS.md](docs/METRICS.md#warm-index-reuse-metrics).
|
|
16
19
|
- **Audit repository health:** run conservative code-rot detectors for TypeScript/JavaScript, Python, Java, and Kotlin, or adapt security findings into the common audit report.
|
|
17
20
|
- **Validate CLI/package security:** inspect dependencies, package contents, path and subprocess boundaries, malformed inputs, optional static scanners, and bounded fuzz targets.
|
|
18
21
|
- **Validate Android projects:** run nineteen static checks by default, with Gradle operations, external tools, and network access available only through explicit opt-in flags.
|
|
@@ -153,6 +156,19 @@ npm run experiment:run -- `
|
|
|
153
156
|
--no-screenshot
|
|
154
157
|
```
|
|
155
158
|
|
|
159
|
+
Run the warm-index reuse plugin over the dedicated expanded benchmark corpus released in v0.5.1, deterministically with the fake my-dev-kit fixture (omit `--kit-command` to use the default `npx @dailephd/my-dev-kit@latest`):
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
npm run experiment:run -- \
|
|
163
|
+
--experiment warm-index-reuse \
|
|
164
|
+
--cases benchmarks/contracts/warm-index-benchmark-cases.json \
|
|
165
|
+
--kit-command "node tests/fixtures/fake-my-dev-kit-cli.js" \
|
|
166
|
+
--out lab-output/warm-index-reuse
|
|
167
|
+
npm run generate-experiment-plots -- --experiment lab-output/warm-index-reuse --out lab-output/warm-index-plots
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The default cases file, `examples/token-savings-cases.json`, is a small compatibility corpus with one task per benchmark project and remains the default when `--cases` is omitted. For multi-task reuse, select the dedicated corpus explicitly as above: it runs six tasks for each of the two benchmark projects against one index per project. Add `--benchmark-project task-workflow-medium-ts` or `--case <id>` to narrow the selection.
|
|
171
|
+
|
|
156
172
|
When `--target` is omitted, the experiment runs in self mode against my-dev-kit-lab. When `--target <path>` is provided, the lab remains the tool root and the target project is inspected separately. Generated experiment outputs stay under lab-controlled output directories by default, not inside the target project.
|
|
157
173
|
|
|
158
174
|
---
|
|
@@ -170,6 +186,7 @@ When `--target` is omitted, the experiment runs in self mode against my-dev-kit-
|
|
|
170
186
|
| Plugin experiment report JSON | `lab-output/experiments/<plugin>/<target>/<run>/report.json` |
|
|
171
187
|
| Plugin experiment report HTML | `lab-output/experiments/<plugin>/<target>/<run>/report.html` |
|
|
172
188
|
| Plugin experiment report text | `lab-output/experiments/<plugin>/<target>/<run>/report.txt` |
|
|
189
|
+
| Warm-index execution evidence | `<experiment out>/warm-index-execution.json` (plus `indexes/`, `commands/`, and `agents/` beneath the same output root) |
|
|
173
190
|
| Plot data | `lab-output/<plots>/plot-data.json` |
|
|
174
191
|
| SVG charts | `lab-output/<plots>/charts/*.svg` |
|
|
175
192
|
| Gallery manifest | `lab-output/<gallery>/gallery-manifest.json` |
|
|
@@ -203,7 +220,8 @@ See [docs/METRICS.md](docs/METRICS.md) for full metric definitions.
|
|
|
203
220
|
- Claude does not expose token totals; token savings comparisons are unavailable for Claude runs
|
|
204
221
|
- Codex may expose token totals but can produce timeouts or invalid-output runs
|
|
205
222
|
- Small projects may make raw-full-file cheaper than my-dev-kit-guided; larger localized tasks are where my-dev-kit is expected to become more useful
|
|
206
|
-
- The generic experiment-plugin framework
|
|
223
|
+
- The generic experiment-plugin framework has two plugins: `context-strategy-comparison` and the v0.5.0-introduced `warm-index-reuse`. Later plugins such as incremental-change and context-window scaling are future roadmap work
|
|
224
|
+
- `warm-index-reuse` uses the deterministic fake agent only; selectable Codex/Claude warm-index campaigns remain planned for v0.5.2, and warm-index screenshots/gallery integration are not implemented. The v0.5.1 expanded corpus is deterministic fake-agent benchmark evidence, not real-agent evidence. Its component-duration sums are not wall-clock latency, and it calculates no token-savings percentage, break-even task, winner, or ranking
|
|
207
225
|
- The current release does not guarantee token savings; it produces auditable evidence for specific cases, targets, agents, and strategies
|
|
208
226
|
- Provider telemetry dashboards, semantic LLM judging, and cloud API billing integration are not yet implemented
|
|
209
227
|
- The six new stage-context strategies have no CLI flags yet, are configured programmatically, and do not yet include plots, screenshots, or gallery integration
|
|
@@ -581,11 +581,11 @@
|
|
|
581
581
|
"answer-key correctness scoring"
|
|
582
582
|
],
|
|
583
583
|
"taskStats": {
|
|
584
|
-
"taskCount":
|
|
585
|
-
"expectedRelevantFilesAverage": 3,
|
|
586
|
-
"expectedRelevantSymbolsAverage": 4
|
|
584
|
+
"taskCount": 6,
|
|
585
|
+
"expectedRelevantFilesAverage": 3.83,
|
|
586
|
+
"expectedRelevantSymbolsAverage": 4.33
|
|
587
587
|
},
|
|
588
|
-
"complexityScore":
|
|
588
|
+
"complexityScore": 31,
|
|
589
589
|
"complexityMetrics": {
|
|
590
590
|
"fileCount": 20,
|
|
591
591
|
"sourceFileCount": 11,
|
|
@@ -597,9 +597,9 @@
|
|
|
597
597
|
"dependencyFileCount": 1,
|
|
598
598
|
"internalImportCount": 17,
|
|
599
599
|
"exportedSymbolEstimate": 21,
|
|
600
|
-
"taskCount":
|
|
601
|
-
"expectedRelevantFilesAverage": 3,
|
|
602
|
-
"expectedRelevantSymbolsAverage": 4,
|
|
600
|
+
"taskCount": 6,
|
|
601
|
+
"expectedRelevantFilesAverage": 3.83,
|
|
602
|
+
"expectedRelevantSymbolsAverage": 4.33,
|
|
603
603
|
"maxFileLines": 77,
|
|
604
604
|
"averageFileLines": 26.31,
|
|
605
605
|
"packageDependencyCount": 2,
|
|
@@ -839,11 +839,11 @@
|
|
|
839
839
|
"answer-key correctness scoring"
|
|
840
840
|
],
|
|
841
841
|
"taskStats": {
|
|
842
|
-
"taskCount":
|
|
843
|
-
"expectedRelevantFilesAverage": 5,
|
|
844
|
-
"expectedRelevantSymbolsAverage":
|
|
842
|
+
"taskCount": 6,
|
|
843
|
+
"expectedRelevantFilesAverage": 4.5,
|
|
844
|
+
"expectedRelevantSymbolsAverage": 4.67
|
|
845
845
|
},
|
|
846
|
-
"complexityScore":
|
|
846
|
+
"complexityScore": 47,
|
|
847
847
|
"complexityMetrics": {
|
|
848
848
|
"fileCount": 35,
|
|
849
849
|
"sourceFileCount": 22,
|
|
@@ -855,9 +855,9 @@
|
|
|
855
855
|
"dependencyFileCount": 1,
|
|
856
856
|
"internalImportCount": 28,
|
|
857
857
|
"exportedSymbolEstimate": 24,
|
|
858
|
-
"taskCount":
|
|
859
|
-
"expectedRelevantFilesAverage": 5,
|
|
860
|
-
"expectedRelevantSymbolsAverage":
|
|
858
|
+
"taskCount": 6,
|
|
859
|
+
"expectedRelevantFilesAverage": 4.5,
|
|
860
|
+
"expectedRelevantSymbolsAverage": 4.67,
|
|
861
861
|
"maxFileLines": 49,
|
|
862
862
|
"averageFileLines": 18.55,
|
|
863
863
|
"packageDependencyCount": 2,
|