diff --git a/openspec/changes/manifest-version-bump/design.md b/openspec/changes/manifest-version-bump/design.md new file mode 100644 index 00000000..27b9e3b5 --- /dev/null +++ b/openspec/changes/manifest-version-bump/design.md @@ -0,0 +1,49 @@ +# Design: Manifest version bump + +## Status +proposed + +## Spec kind & sizing (ADR-032) + +- `kind: config` — touches only `src/manifest.json`. Zero `lib/`, + zero `src/components/`, zero `src/views/`, zero `tests/` edits. +- Smallest possible diff: 1 character changed (`3` → `4` in version string). +- Scope: 1 file, 1 task, ~2 builder turns expected. + +## Declarative-vs-imperative decision (ADR-031) + +Not applicable to this change — manifest versioning is pure declarative +content (no behaviour change, no service-vs-schema choice). + +## Impact on existing code + +- `src/manifest.json`: `"version": "0.3.0"` → `"version": "0.4.0"`. +- **Nothing else.** Frontend bundle still rebuilds the same manifest; + `useAppManifest()` reads the same shape; `CnAppRoot` renders identically. +- No backend impact (the manifest is frontend-only). +- No test impact (manifest validation runs via `npm run check:manifest`, + which validates schema-shape, not version semantics). + +## Reuse Analysis (ADR-001) + +Not applicable — no new behaviour, no abstraction reuse to evaluate. + +## Deduplication Check (ADR-001) + +Not applicable — this is a single-field metadata bump, no duplication +risk. + +## Risks + +1. **Caching**: a bumped manifest version invalidates any client-side + manifest cache. Acceptable — Tier 4 already loads the bundled manifest + on every page load. +2. **Reviewer false-positive on "no functional change"**: the reviewer + might flag this as low-value and request more context. The proposal + explicitly names the test-of-pipeline rationale. + +## Out of scope + +- Any other manifest field change. +- Any non-manifest file edit. +- Documentation updates beyond this spec set. diff --git a/openspec/changes/manifest-version-bump/proposal.md b/openspec/changes/manifest-version-bump/proposal.md new file mode 100644 index 00000000..5d32aedd --- /dev/null +++ b/openspec/changes/manifest-version-bump/proposal.md @@ -0,0 +1,52 @@ +--- +kind: config +depends_on: [] +--- + +# Manifest version bump (0.3.0 → 0.4.0) + +## Problem + +Decidesk's `src/manifest.json` is at `version: "0.3.0"`. Per ADR-024 §7, +`manifest.version` tracks semver of content; an app bumps the minor while +iterating. The manifest has accumulated meaningful content evolution since +0.3.0 landed (full Tier 4 adoption, declarative business-logic specs in +flight, ADR-032 chain pattern adopted). A minor-version bump records that +maturation as a content-versioning waypoint. + +This change is also the **smallest possible Hydra config-only spec** — +deliberately scoped to validate the Stage A pipeline end-to-end (build → +quality → review → security → applier) on a one-line diff with zero +semantic risk. If this fails, the pipeline has bugs unrelated to spec +content; if it passes, the bigger ADR-031 chain specs can run with +confidence. + +## Proposed Solution + +Edit `src/manifest.json`: change `"version": "0.3.0"` → `"version": "0.4.0"`. + +That is the entire change. No code, no schemas, no tests, no documentation +updates beyond this proposal/design/tasks set. + +## Capabilities + +### Modified Capabilities + +- `app-manifest` — manifest.version increments per ADR-024 §7. + +### New Capabilities + +(none) + +## Stakeholders + +- **Decidesk maintainers** — own the bump. +- **Hydra reviewers** — validates the config-only flow end-to-end on the + smallest possible diff. + +## References + +- ADR-024 (hydra) — App Manifest, §7 versioning rules +- ADR-032 (hydra) — Spec sizing taxonomy; this spec is the canonical + `kind: config` minimal example +- `decidesk/src/manifest.json` — target file diff --git a/openspec/changes/manifest-version-bump/tasks.md b/openspec/changes/manifest-version-bump/tasks.md new file mode 100644 index 00000000..6550b47d --- /dev/null +++ b/openspec/changes/manifest-version-bump/tasks.md @@ -0,0 +1,41 @@ +# Tasks: Manifest version bump + +> **`kind: config`** — single 1-character edit in `src/manifest.json`. +> No PHP, no Vue, no tests added. The smallest possible Hydra spec. + +## 1. Bump manifest version + +- [ ] Edit `src/manifest.json`: change `"version": "0.3.0"` to + `"version": "0.4.0"`. +- [ ] Verify the diff is exactly one line, exactly one character. + +## 2. Verification (mechanical) + +- [ ] `jq '.version' src/manifest.json` returns `"0.4.0"`. +- [ ] `npm run check:manifest` exits 0 (schema validates). +- [ ] `git diff --stat origin/development...HEAD` shows + `src/manifest.json | 2 +-` (one line removed, one line added — + jq doesn't preserve formatting around the bump, but the net + change is one field). + +## 3. Commit + PR + +The Hydra builder commits and the wrapper auto-creates the draft PR. +No additional manual action expected from the implementer. + +## Deduplication Check + +- [ ] Confirmed: no duplication. This is a single-field metadata bump, + no abstractions involved. + +--- + +## Notes for the implementer + +This spec is the canonical `kind: config` minimal example, drafted +2026-05-08 to validate the Hydra config-only flow end-to-end on the +smallest possible diff. Expected wall time: 15-25 minutes for the full +pipeline (build → quality → reviewer → security → applier). + +If you find yourself touching anything other than `src/manifest.json`, +**stop** — that's out of scope for this spec.