Migrate cmdStateSync, cmdStatePrune, cmdStateUpdate (state.cts) onto the STATE.md Transition Module substrate and close the maintenance bug pair #1760/#1761 (ADR-1769, epic #1769). Completes the substrate: all 10 lifecycle/maintenance transitions now route through transitionCore. - Add {kind: 'sync'|'prune'|'update'} to StateTransitionIntent with syncCore, pruneCore, updateCore in src/state-transition.cts. - updateCore: body-only single-field update (strip/reassemble), mirroring the pre-migration cmdStateUpdate contract. - pruneCore: pure content→content section pruning (Decisions / Recently Completed / resolved Blockers / Performance Metrics rows at or below cutoff), byte-identical tokenizeHeadings splicing. Adapter owns currentPhase, dry-run, and STATE-ARCHIVE.md. - syncCore: body writes (Total Plans in Phase, Progress bar, Last Activity) given disk-derived numbers. Adapter owns the disk scan + roadmap scope. - #1760: cmdStatePrune now derives currentPhase from 'Current Phase' OR 'Phase' (the canonical template emits 'Phase: X of Y'), so prune engages on template-conformant STATE.md instead of bailing 'Only 0 phases'. - #1761: cmdStateSync skips the Progress write (percent=null) when a milestone version is set in frontmatter but the ROADMAP has no versioned heading for it (milestone cannot be bounded). Projects without a milestone version are unaffected. Leaves progress untouched rather than silently writing fallback- derived wrong values. - Regression: bug-1760 (prune engages on template field) + bug-1761 (sync leaves progress untouched when unbounded). ADR-1769 marked Accepted. All 82 transition + 515 regression tests pass. Closes #1793
202 lines
6.6 KiB
JSON
202 lines
6.6 KiB
JSON
{
|
|
"_doc": "Baseline of modules currently exceeding the 2-test-file limit. Each entry locks in TODAY's exact test filenames as the allowlisted set (identity ratchet). Adding a NEW test file to a capped module fails (novel). Removing one requires pruning this list (stale, ratchet-down). When a cluster drops to ≤ 2, remove its entry entirely. New entries require justification in PR description.",
|
|
"modules": {
|
|
"audit": {
|
|
"files": [
|
|
"audit-command-cutover.test.cjs",
|
|
"audit-fix-command.test.cjs",
|
|
"bug-2659-audit-open-crash.test.cjs",
|
|
"bug-2836-audit-open-summary-uat-drift.test.cjs",
|
|
"bug-2911-audit-open-output-shape.test.cjs"
|
|
],
|
|
"issue": "192"
|
|
},
|
|
"config": {
|
|
"files": [
|
|
"bug-2943-config-get-context-window-default.test.cjs",
|
|
"bug-321-config-defaults-clone-strategy.test.cjs",
|
|
"bug-3227-config-set-model-overrides.test.cjs",
|
|
"bug-442-config-dir-equals-in-path.test.cjs",
|
|
"config-field-docs.test.cjs",
|
|
"config-get-default.test.cjs",
|
|
"config-schema.property.test.cjs",
|
|
"config.test.cjs",
|
|
"enh-1055-config-intent-descriptor-drive.test.cjs",
|
|
"fix-1628-config-set-validation.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"graphify": {
|
|
"files": [
|
|
"bug-622-graphify-optional-graph-html.test.cjs",
|
|
"bug-974-graphify-budget-missing-value.test.cjs",
|
|
"graphify-auto-update.slow.test.cjs",
|
|
"graphify-command-cutover.test.cjs",
|
|
"graphify-query.test.cjs",
|
|
"graphify-visualization.test.cjs",
|
|
"graphify.test.cjs"
|
|
],
|
|
"issue": "622"
|
|
},
|
|
"intel": {
|
|
"files": [
|
|
"bug-2351-intel-kilo-layout.test.cjs",
|
|
"bug-3290-intel-updater-layout-block.test.cjs",
|
|
"intel-command-cutover.test.cjs",
|
|
"intel.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"milestone": {
|
|
"files": [
|
|
"bug-730-milestone-phase-details-scope.test.cjs",
|
|
"bug-978-milestone-complete-force.test.cjs",
|
|
"milestone-archive.test.cjs",
|
|
"milestone-helper.test.cjs",
|
|
"milestone-prefixed-convention.test.cjs",
|
|
"milestone-summary.test.cjs",
|
|
"milestone.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"phase": {
|
|
"files": [
|
|
"fix-1437-phase-list-plans.test.cjs",
|
|
"bug-214-phase-researcher-write-truncation-contract.test.cjs",
|
|
"phase-dependency-levels.test.cjs",
|
|
"phase.test.cjs"
|
|
],
|
|
"issue": "597"
|
|
},
|
|
"roadmap": {
|
|
"files": [
|
|
"bug-2661-roadmap-sync-parallel.test.cjs",
|
|
"bug-3128-roadmap-plan-count-slug-layout.test.cjs",
|
|
"bug-3599-roadmap-get-phase-project-code-prefix.test.cjs",
|
|
"enh-2447-roadmap-wave-deps.test.cjs",
|
|
"roadmap-mode-field.test.cjs",
|
|
"roadmap-phase-fallback.test.cjs",
|
|
"roadmap.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"runtime-artifact-layout": {
|
|
"files": [
|
|
"runtime-artifact-layout-descriptor-drive.test.cjs",
|
|
"runtime-artifact-layout-install-profiles.test.cjs",
|
|
"runtime-artifact-layout-surface.test.cjs",
|
|
"runtime-artifact-layout.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"security": {
|
|
"files": [
|
|
"security-prompt-injection.security.test.cjs",
|
|
"security-scan.security.test.cjs",
|
|
"security.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"state": {
|
|
"files": [
|
|
"bug-1695-state-patch-clobbers-phase-name.test.cjs",
|
|
"bug-1760-state-prune-noop-template-field.test.cjs",
|
|
"bug-1761-state-sync-wrong-progress.test.cjs",
|
|
"bug-21-state-md-template-frontmatter.test.cjs",
|
|
"bug-2630-state-frontmatter-milestone-switch.test.cjs",
|
|
"bug-3127-state-begin-phase-idempotent.test.cjs",
|
|
"bug-3242-state-update-progress-trample.test.cjs",
|
|
"bug-3286-state-write-routing.test.cjs",
|
|
"bug-3454-state-dollar-backreference-growth.test.cjs",
|
|
"bug-397-state-preserve-executor-authored.test.cjs",
|
|
"bug-905-state-syncstatefrontmatter-preserve-scalars.test.cjs",
|
|
"bug-948-state-noop-write-guard.test.cjs",
|
|
"state-acquirestatelock-non-eexist.test.cjs",
|
|
"state-prune.test.cjs",
|
|
"state.test.cjs"
|
|
],
|
|
"issue": "180"
|
|
},
|
|
"verify": {
|
|
"files": [
|
|
"bug-2969-verify-reapply-patches.test.cjs",
|
|
"bug-2994-verify-reapply-patches-installed-path.test.cjs",
|
|
"bug-3381-verify-work-workstream.test.cjs",
|
|
"bug-3657-verify-reapply-patches-pristine-drift.test.cjs",
|
|
"bug-967-verify-key-links-strict-paths.test.cjs",
|
|
"verify-health.test.cjs",
|
|
"verify-mvp-uat.test.cjs",
|
|
"verify-npm-publish.test.cjs",
|
|
"verify-test-quality.test.cjs",
|
|
"verify-work-auto-transition.test.cjs",
|
|
"verify.test.cjs"
|
|
],
|
|
"issue": "3767"
|
|
},
|
|
"install": {
|
|
"files": [
|
|
"bug-410-install-defaults-test-mode-guard.test.cjs",
|
|
"enh-1077-install-hook-events-dialect-drive.test.cjs",
|
|
"enh-1082-install-plan-capstone.test.cjs",
|
|
"enh-776-install-gemini-hook-events.test.cjs",
|
|
"install-minimal-hooks.test.cjs",
|
|
"install-nested-layout.test.cjs",
|
|
"install-path-detection.test.cjs",
|
|
"install-regressions.test.cjs",
|
|
"install-runtime-artifacts.test.cjs",
|
|
"install-update-marker.test.cjs",
|
|
"install-write-confinement.test.cjs",
|
|
"install.test.cjs"
|
|
],
|
|
"issue": "1679"
|
|
},
|
|
"validate": {
|
|
"files": [
|
|
"bug-3129-validate-commit-git-bypass.test.cjs",
|
|
"bug-892-validate-checklist-roadmap-phases.test.cjs",
|
|
"validate-context.test.cjs"
|
|
],
|
|
"issue": "892"
|
|
},
|
|
"edge-probe": {
|
|
"files": [
|
|
"edge-probe-docs-fixtures.test.cjs",
|
|
"edge-probe-planner-contract.test.cjs",
|
|
"edge-probe-spec-phase-contract.test.cjs",
|
|
"edge-probe.test.cjs"
|
|
],
|
|
"issue": "550"
|
|
},
|
|
"federated-config": {
|
|
"files": [
|
|
"federated-config.test.cjs",
|
|
"federated-config-loadconfig.test.cjs",
|
|
"federated-config-key-removal.test.cjs"
|
|
],
|
|
"issue": "TBD"
|
|
},
|
|
"external-job": {
|
|
"files": [
|
|
"external-job-waiting.test.cjs"
|
|
],
|
|
"issue": "#1165"
|
|
},
|
|
"docs": {
|
|
"files": [
|
|
"docs-parity-live-registry.test.cjs",
|
|
"docs-update.test.cjs",
|
|
"fix-1464-docs-manifest-validation.test.cjs"
|
|
],
|
|
"issue": "1496"
|
|
},
|
|
"host-integration": {
|
|
"files": [
|
|
"host-integration.test.cjs",
|
|
"host-integration-validator-parity.test.cjs",
|
|
"host-integration-descriptors.test.cjs"
|
|
],
|
|
"issue": "1684"
|
|
}
|
|
}
|
|
}
|