container-superposition 0.1.13 → 0.1.14-pr.176.30348783452
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/README.md +4 -3
- package/docs/adr/README.md +4 -0
- package/docs/adr/{_template.md → _adr_template.md} +1 -1
- package/docs/agent-evals/README.md +10 -0
- package/docs/opportunities/README.md +8 -39
- package/docs/roadmap.md +4 -3
- package/docs/specs/037-cli-command-modularization/spec.md +2 -3
- package/docs/specs/038-doctor-and-plan-command-modularization/spec.md +1 -2
- package/docs/specs/README.md +6 -0
- package/docs/specs/_plan_template.md +40 -0
- package/docs/specs/_spec_template.md +53 -0
- package/docs/specs/taxonomy.md +15 -15
- package/package.json +1 -1
- package/docs/specs/_template.md +0 -206
package/README.md
CHANGED
|
@@ -50,11 +50,11 @@ npx container-superposition regen
|
|
|
50
50
|
# Or select the project file explicitly
|
|
51
51
|
npx container-superposition regen --from-project
|
|
52
52
|
|
|
53
|
-
#
|
|
54
|
-
npx container-superposition init --
|
|
53
|
+
# Reuse persisted project-file values without the questionnaire
|
|
54
|
+
npx container-superposition init --from-project --no-interactive
|
|
55
55
|
|
|
56
56
|
# Write only superposition.yml without generating .devcontainer/
|
|
57
|
-
npx container-superposition init --stack compose --
|
|
57
|
+
npx container-superposition init --stack compose --preset web-api --no-scaffold
|
|
58
58
|
|
|
59
59
|
# Migrate a manifest-only repo to the project-file model
|
|
60
60
|
npx container-superposition migrate
|
|
@@ -64,6 +64,7 @@ npx container-superposition migrate
|
|
|
64
64
|
|
|
65
65
|
- Base templates: `plain` (single image) and `compose` (multi-service).
|
|
66
66
|
- Overlays: add languages, databases, observability, cloud tools, dev tools.
|
|
67
|
+
- Catalogs: mix the built-in catalog with project-pinned private catalogs declared in `superposition.yml`.
|
|
67
68
|
- Composition: merges overlays into a standard `.devcontainer/` you can edit freely.
|
|
68
69
|
- Compose defaults: tool-owned compose port bindings are hard-rendered to final numeric host ports; `.devcontainer/.env` and `.devcontainer/.env.example` are opt-in artifacts only via `--compose-env-files` / `composeEnvFiles: true`.
|
|
69
70
|
- Project config: `superposition.yml` (or `.superposition.yml`) is the **canonical input** for all
|
package/docs/adr/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# ADR Index
|
|
2
2
|
|
|
3
|
+
## Working conventions
|
|
4
|
+
|
|
5
|
+
- New ADRs should start from `docs/adr/_adr_template.md`.
|
|
6
|
+
|
|
3
7
|
| ADR | Title | Status | Summary |
|
|
4
8
|
| ----------------------------------------------------------- | ------------------------------------------------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
5
9
|
| [001](adr001-project-file-first-replay-and-regeneration.md) | Project-file-first replay and regeneration workflow | Proposed | Make repository project file canonical durable input for generation, replay, remediation, and migration workflows while keeping manifest as generated compatibility artifact. |
|
|
@@ -32,7 +32,7 @@ relationships: {}
|
|
|
32
32
|
|
|
33
33
|
<!--
|
|
34
34
|
## Create an ADR
|
|
35
|
-
1. Copy `docs/adr/
|
|
35
|
+
1. Copy `docs/adr/_adr_template.md` to `docs/adr/adrXXX-my-decision.md` (assign ADR number when ready)
|
|
36
36
|
1. Fill in the front matter YAML
|
|
37
37
|
1. Keep the ADR focused on one architectural decision or one tightly-coupled decision set
|
|
38
38
|
1. Read `docs/foundation.md` first and ensure the ADR aligns with or explicitly updates those baseline rules
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Agent / Skill Evals
|
|
2
|
+
|
|
3
|
+
Store representative historical tasks, trigger tests, output assertions, and baseline comparisons here.
|
|
4
|
+
|
|
5
|
+
Suggested contents:
|
|
6
|
+
|
|
7
|
+
- task corpus references
|
|
8
|
+
- per-skill eval notes
|
|
9
|
+
- workflow replay summaries
|
|
10
|
+
- keep / revise / delete decisions
|
|
@@ -1,40 +1,10 @@
|
|
|
1
1
|
# Opportunity Backlog
|
|
2
2
|
|
|
3
|
-
Last updated: 2026-07-
|
|
3
|
+
Last updated: 2026-07-28
|
|
4
4
|
|
|
5
5
|
## Prioritized
|
|
6
6
|
|
|
7
|
-
### 1.
|
|
8
|
-
|
|
9
|
-
- **type**: feature
|
|
10
|
-
- **status**: prioritized
|
|
11
|
-
- **value summary**: Unlock the biggest strategic expansion path by letting platform teams publish, pin, and evolve private catalogs without forking the tool, while preserving deterministic project-file-driven replay.
|
|
12
|
-
- **urgency**: Medium
|
|
13
|
-
- **confidence**: Medium
|
|
14
|
-
- **rough effort/risk**: High effort, High architecture/security risk
|
|
15
|
-
- **evidence**:
|
|
16
|
-
- Draft spec exists: `docs/specs/029-versioned-private-catalogs/spec.md`.
|
|
17
|
-
- The spec identifies blocked platform-team outcomes today: central platform ownership, independent catalog release cadence, reproducible pinning, and explicit trust/upgrade workflows.
|
|
18
|
-
- The spec also identifies cross-command impact across `init`, `regen`, `doctor`, `list`, `explain`, and schema-aware authoring.
|
|
19
|
-
- The spec explicitly calls for a new ADR because the feature changes trust boundaries, registry resolution order, validation, and cache/materialization responsibilities.
|
|
20
|
-
- **recommended next prompt or owner**: `/adr` for the catalog trust/resolution decision, then implementation planning against `docs/specs/029-versioned-private-catalogs/spec.md`.
|
|
21
|
-
|
|
22
|
-
### 2. Broaden repeatable compose overlays beyond PostgreSQL
|
|
23
|
-
|
|
24
|
-
- **type**: feature
|
|
25
|
-
- **status**: prioritized
|
|
26
|
-
- **value summary**: Expand real stack-building capability by making more infrastructure overlays repeatable through the now-final named-instance contract, increasing overlay availability and customization power for compose users.
|
|
27
|
-
- **urgency**: High
|
|
28
|
-
- **confidence**: Medium-High
|
|
29
|
-
- **rough effort/risk**: Medium effort, Medium risk
|
|
30
|
-
- **evidence**:
|
|
31
|
-
- `docs/specs/050-compose-overlay-instances/spec.md` is now `Final`, so the core object-form multi-instance contract is complete.
|
|
32
|
-
- `docs/specs/051-repeatable-compose-overlay-rollout/spec.md` already defines a phased rollout and approves Phase 1A candidates: `redis`, `fuseki`, `sqlserver`, and `nats`.
|
|
33
|
-
- The `051` audit explicitly separates low-risk Class A overlays from deferred dependency-bound or multi-service families.
|
|
34
|
-
- Recent BDD and plan-output hardening reduced regression risk for follow-on user-visible overlay work.
|
|
35
|
-
- **recommended next prompt or owner**: `/spec` or implementation handoff for `docs/specs/051-repeatable-compose-overlay-rollout/spec.md`.
|
|
36
|
-
|
|
37
|
-
### 3. Discovery surface clarity and canonical docs alignment
|
|
7
|
+
### 1. Discovery surface clarity and canonical docs alignment
|
|
38
8
|
|
|
39
9
|
- **type**: UX
|
|
40
10
|
- **status**: prioritized
|
|
@@ -48,7 +18,7 @@ Last updated: 2026-07-23
|
|
|
48
18
|
- `docs/roadmap.md` currently places this theme in `Now`.
|
|
49
19
|
- **recommended next prompt or owner**: `/spec` or implementation handoff for `docs/specs/030-discovery-surface-and-docs-alignment/spec.md`.
|
|
50
20
|
|
|
51
|
-
###
|
|
21
|
+
### 2. Preset-led onboarding for common jobs-to-be-done
|
|
52
22
|
|
|
53
23
|
- **type**: feature
|
|
54
24
|
- **status**: candidate
|
|
@@ -62,7 +32,7 @@ Last updated: 2026-07-23
|
|
|
62
32
|
- `docs/roadmap.md` currently places this theme in `Next`.
|
|
63
33
|
- **recommended next prompt or owner**: `/spec` or implementation handoff for `docs/specs/031-preset-led-onboarding-for-common-jobs/spec.md`.
|
|
64
34
|
|
|
65
|
-
###
|
|
35
|
+
### 3. Portfolio refresh after recent workflow and overlay-contract wins
|
|
66
36
|
|
|
67
37
|
- **type**: process
|
|
68
38
|
- **status**: candidate
|
|
@@ -84,10 +54,10 @@ Last updated: 2026-07-23
|
|
|
84
54
|
2. Portfolio refresh after recent workflow and overlay-contract wins
|
|
85
55
|
3. Preset-led onboarding for common jobs-to-be-done
|
|
86
56
|
|
|
87
|
-
###
|
|
57
|
+
### Recently shipped / no longer active opportunities
|
|
88
58
|
|
|
89
|
-
|
|
90
|
-
|
|
59
|
+
- Versioned private overlay and preset catalogs shipped through spec `029-versioned-private-catalogs`.
|
|
60
|
+
- Repeatable compose-overlay rollout shipped through specs `050-compose-overlay-instances` and `051-repeatable-compose-overlay-rollout`.
|
|
91
61
|
|
|
92
62
|
### Longer-term options
|
|
93
63
|
|
|
@@ -99,7 +69,6 @@ Last updated: 2026-07-23
|
|
|
99
69
|
|
|
100
70
|
- Ranking emphasizes expected value first because the current prioritization request explicitly deprioritized effort as a decision driver.
|
|
101
71
|
- Confidence remains evidence-bound to repository docs/specs only; no telemetry, support volume, or market research was reviewed here.
|
|
102
|
-
- `029` is ranked highest on upside, not on ease or certainty.
|
|
103
|
-
- `051` is the strongest newly strengthened near-term capability opportunity because `050` is now final and `051` already narrows the rollout to audited overlay classes.
|
|
104
72
|
- `030` remains the strongest broad UX/trust opportunity and is still the clearest low-risk shipping candidate.
|
|
73
|
+
- Private catalogs and repeatable compose-overlay rollout moved out of the active backlog because shipped specs `029`, `050`, and `051` now cover that work.
|
|
105
74
|
- Earlier repo-local Pi skill opportunities are no longer active backlog leaders because the relevant workflow/skill work has already shipped through specs `039` and `052`.
|
package/docs/roadmap.md
CHANGED
|
@@ -12,12 +12,13 @@ This roadmap is derived from the current opportunity backlog in `docs/opportunit
|
|
|
12
12
|
- **Improve onboarding for common jobs-to-be-done** with stronger preset-led setup paths and less choice overload for first-time users.
|
|
13
13
|
- **Make preview-first workflows more visible** so `plan`, `--verbose`, and `--diff` become an obvious safety step before generation and regeneration.
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Recently shipped
|
|
16
16
|
|
|
17
|
-
- **
|
|
17
|
+
- **Versioned private overlay and preset catalogs** now let platform teams publish, pin, and evolve internal catalogs without forking the tool.
|
|
18
|
+
- **Repeatable compose-overlay rollout** now extends named-instance support beyond PostgreSQL to the audited `redis`, `fuseki`, `sqlserver`, and `nats` overlays.
|
|
18
19
|
|
|
19
20
|
## Assumptions and Dependencies
|
|
20
21
|
|
|
21
22
|
- ADR `001` remains the authority for project-file-first generation, replay, and remediation.
|
|
22
23
|
- Discovery and onboarding improvements depend on keeping user docs, CLI help, and generated reference docs aligned.
|
|
23
|
-
-
|
|
24
|
+
- Future private-catalog extensions should continue to be driven through explicit specs and ADR review.
|
|
@@ -187,8 +187,7 @@ Validation should explicitly cover:
|
|
|
187
187
|
|
|
188
188
|
### Known repo gaps
|
|
189
189
|
|
|
190
|
-
- `docs/foundation.md`
|
|
191
|
-
- Repo contains an empty `docs/specs/037-doctor-command-modularization/` directory, which is a numbering / workflow hygiene concern but does not block this draft.
|
|
190
|
+
- `docs/foundation.md` and ADR `001` are the relevant architecture authorities for this area.
|
|
192
191
|
|
|
193
192
|
## Technical Design
|
|
194
193
|
|
|
@@ -411,7 +410,7 @@ Minimum implementation validation:
|
|
|
411
410
|
|
|
412
411
|
aligned with current ADR authority
|
|
413
412
|
|
|
414
|
-
This design stays within ADR `001` by preserving project-file-first authority, compatibility manifest writing, and generated-output-unchanged conversion semantics. No ADR amendment is required.
|
|
413
|
+
This design stays within `docs/foundation.md` and ADR `001` by preserving project-file-first authority, compatibility manifest writing, and generated-output-unchanged conversion semantics. No ADR amendment is required.
|
|
415
414
|
|
|
416
415
|
## Open Questions
|
|
417
416
|
|
|
@@ -504,8 +504,7 @@ Validation should explicitly cover:
|
|
|
504
504
|
|
|
505
505
|
### Known repo gaps
|
|
506
506
|
|
|
507
|
-
- `docs/foundation.md`
|
|
508
|
-
- Repo contains an empty `docs/specs/037-doctor-command-modularization/` directory, which is workflow hygiene noise but does not block this draft.
|
|
507
|
+
- `docs/foundation.md` and ADR `001` are the relevant architecture authorities.
|
|
509
508
|
|
|
510
509
|
## Architecture Decision Impact
|
|
511
510
|
|
package/docs/specs/README.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Specs Index
|
|
2
2
|
|
|
3
|
+
## Working conventions
|
|
4
|
+
|
|
5
|
+
- New work should use `docs/specs/_spec_template.md` for the outcome-focused spec and `docs/specs/_plan_template.md` for execution detail.
|
|
6
|
+
- Keep implementation sequencing, affected files, validation strategy, and rollback thinking in `plan.md`, not in `spec.md`.
|
|
7
|
+
- Existing historical specs without `plan.md` were preserved as-is during pi-kit setup; add `plan.md` only when those specs are actively revised or extended.
|
|
8
|
+
|
|
3
9
|
| Spec | Title | Status | Taxonomy |
|
|
4
10
|
| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------ | ----------------------------------------- |
|
|
5
11
|
| [001-verbose-plan-graph](001-verbose-plan-graph/spec.md) | Verbose Plan Graph | Final | CLI-UX |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Plan
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
- Spec: `docs/specs/NNN-slug/spec.md`
|
|
6
|
+
|
|
7
|
+
## Ordered Steps
|
|
8
|
+
|
|
9
|
+
1. [step]
|
|
10
|
+
2. [step]
|
|
11
|
+
|
|
12
|
+
## Affected Areas
|
|
13
|
+
|
|
14
|
+
- `path` — why it changes
|
|
15
|
+
|
|
16
|
+
## Validation Surface and Strategy
|
|
17
|
+
|
|
18
|
+
- Build/type/lint checks: [commands or reason not applicable]
|
|
19
|
+
- Unit/integration/e2e/contract checks: [commands or reason not applicable]
|
|
20
|
+
- Manual or exploratory checks: [method or reason not applicable]
|
|
21
|
+
- Acceptance-criteria evidence plan: [how each AC ID will be verified]
|
|
22
|
+
- Review gate: [SELF_CHECK / INDEPENDENT, with rationale]
|
|
23
|
+
- Evidence provenance: [source revision, environment, timestamp, executor, exit code]
|
|
24
|
+
- Skipped or deferred checks: [reason and residual risk]
|
|
25
|
+
|
|
26
|
+
## Rollback / Containment
|
|
27
|
+
|
|
28
|
+
- [how to revert or limit blast radius]
|
|
29
|
+
|
|
30
|
+
## Open Questions
|
|
31
|
+
|
|
32
|
+
- [question]
|
|
33
|
+
|
|
34
|
+
## Risks / Dependencies
|
|
35
|
+
|
|
36
|
+
- [important dependency, sequencing risk, migration concern, or coordination need]
|
|
37
|
+
|
|
38
|
+
## Implementation Notes
|
|
39
|
+
|
|
40
|
+
- Update this section when implementation diverges from the original plan.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec: 'NNN-slug'
|
|
3
|
+
title: '[Short descriptive title]'
|
|
4
|
+
status: 'Draft'
|
|
5
|
+
review_gate: ''
|
|
6
|
+
owner: 'delivery-interrogator'
|
|
7
|
+
created: 'YYYY-MM-DD'
|
|
8
|
+
updated: 'YYYY-MM-DD'
|
|
9
|
+
related_adrs: []
|
|
10
|
+
related_foundation:
|
|
11
|
+
- 'docs/foundation.md'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# [Title]
|
|
15
|
+
|
|
16
|
+
## Problem
|
|
17
|
+
|
|
18
|
+
[What problem exists, for whom, and why it matters.]
|
|
19
|
+
|
|
20
|
+
## Why now
|
|
21
|
+
|
|
22
|
+
[Why this change matters now.]
|
|
23
|
+
|
|
24
|
+
## Acceptance Criteria
|
|
25
|
+
|
|
26
|
+
- [ ] AC1: [specific, testable criterion]
|
|
27
|
+
- [ ] AC2: [specific, testable criterion]
|
|
28
|
+
- [ ] AC3: [relevant quality, compatibility, documentation, validation, or changelog expectation]
|
|
29
|
+
|
|
30
|
+
Keep acceptance-criterion IDs stable across spec revisions so plans, tests, evidence, and review findings can cite them.
|
|
31
|
+
|
|
32
|
+
## Non-goals
|
|
33
|
+
|
|
34
|
+
- [non-goal 1]
|
|
35
|
+
- [non-goal 2]
|
|
36
|
+
|
|
37
|
+
## Ambiguities / Open Questions
|
|
38
|
+
|
|
39
|
+
- [question or ambiguity]
|
|
40
|
+
|
|
41
|
+
## Evidence / References
|
|
42
|
+
|
|
43
|
+
- [reference]
|
|
44
|
+
- [reference]
|
|
45
|
+
|
|
46
|
+
## Risks / Constraints
|
|
47
|
+
|
|
48
|
+
- [risk, constraint, dependency, or rollout concern]
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
|
|
52
|
+
- Keep implementation detail out of this file.
|
|
53
|
+
- Put sequencing and file-level execution details in `plan.md`.
|
package/docs/specs/taxonomy.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Feature Taxonomy
|
|
2
2
|
|
|
3
|
-
This index maps all specs to their feature categories.
|
|
3
|
+
This index maps all specs to their feature categories. Update it whenever a new spec is added.
|
|
4
4
|
|
|
5
5
|
## Taxonomy categories
|
|
6
6
|
|
|
@@ -230,17 +230,17 @@ _No specs yet._
|
|
|
230
230
|
|
|
231
231
|
## PROJECT — Project-level configuration
|
|
232
232
|
|
|
233
|
-
| Spec | Title | Status
|
|
234
|
-
| ------------------------------------------------------------------------------ | ------------------------------------------------------------ |
|
|
235
|
-
| [002-superposition-config-file](002-superposition-config-file/spec.md) | Project Configuration File | Final
|
|
236
|
-
| [008-project-file-canonical](008-project-file-canonical/spec.md) | Make superposition.yml Canonical Input | Final
|
|
237
|
-
| [009-project-env](009-project-env/spec.md) | Unified Project-Level Environment Variables | Final
|
|
238
|
-
| [018-init-project-file](018-init-project-file/spec.md) | `init --project-file` | Final
|
|
239
|
-
| [019-project-mounts](019-project-mounts/spec.md) | First-Class Mounts Support | Final
|
|
240
|
-
| [022-local-superposition-config](022-local-superposition-config/spec.md) | Local Superposition Config | Final
|
|
241
|
-
| [029-versioned-private-catalogs](029-versioned-private-catalogs/spec.md) | Versioned Private Overlay and Preset Catalogs |
|
|
242
|
-
| [041-local-port-conflict-overrides](041-local-port-conflict-overrides/spec.md) | Local Port Conflict Overrides in `superposition.local.yml` | Final
|
|
243
|
-
| [042-global-default-configuration](042-global-default-configuration/spec.md) | User-Scoped Global Defaults with Stack-Aware Local Templates | Final
|
|
244
|
-
| [043-compose-network-name](043-compose-network-name/spec.md) | Project-Specific Compose Network Names | Final
|
|
245
|
-
| [049-global-init-defaults-surface](049-global-init-defaults-surface/spec.md) | Expand User-Scoped Global Init Defaults Surface | Final
|
|
246
|
-
| [050-compose-overlay-instances](050-compose-overlay-instances/spec.md) | Multi-Instance Compose Overlays with Instance Overrides | Final
|
|
233
|
+
| Spec | Title | Status |
|
|
234
|
+
| ------------------------------------------------------------------------------ | ------------------------------------------------------------ | ------ |
|
|
235
|
+
| [002-superposition-config-file](002-superposition-config-file/spec.md) | Project Configuration File | Final |
|
|
236
|
+
| [008-project-file-canonical](008-project-file-canonical/spec.md) | Make superposition.yml Canonical Input | Final |
|
|
237
|
+
| [009-project-env](009-project-env/spec.md) | Unified Project-Level Environment Variables | Final |
|
|
238
|
+
| [018-init-project-file](018-init-project-file/spec.md) | `init --project-file` | Final |
|
|
239
|
+
| [019-project-mounts](019-project-mounts/spec.md) | First-Class Mounts Support | Final |
|
|
240
|
+
| [022-local-superposition-config](022-local-superposition-config/spec.md) | Local Superposition Config | Final |
|
|
241
|
+
| [029-versioned-private-catalogs](029-versioned-private-catalogs/spec.md) | Versioned Private Overlay and Preset Catalogs | Final |
|
|
242
|
+
| [041-local-port-conflict-overrides](041-local-port-conflict-overrides/spec.md) | Local Port Conflict Overrides in `superposition.local.yml` | Final |
|
|
243
|
+
| [042-global-default-configuration](042-global-default-configuration/spec.md) | User-Scoped Global Defaults with Stack-Aware Local Templates | Final |
|
|
244
|
+
| [043-compose-network-name](043-compose-network-name/spec.md) | Project-Specific Compose Network Names | Final |
|
|
245
|
+
| [049-global-init-defaults-surface](049-global-init-defaults-surface/spec.md) | Expand User-Scoped Global Init Defaults Surface | Final |
|
|
246
|
+
| [050-compose-overlay-instances](050-compose-overlay-instances/spec.md) | Multi-Instance Compose Overlays with Instance Overrides | Final |
|
package/package.json
CHANGED
package/docs/specs/_template.md
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
spec: 'NNN-slug'
|
|
3
|
-
title: '[Short descriptive title]'
|
|
4
|
-
status: 'Draft'
|
|
5
|
-
qa_status: ''
|
|
6
|
-
priority: 'P0'
|
|
7
|
-
owner: 'pm'
|
|
8
|
-
product_approval: ''
|
|
9
|
-
architecture_review: ''
|
|
10
|
-
ux_review: ''
|
|
11
|
-
created: 'YYYY-MM-DD'
|
|
12
|
-
updated: 'YYYY-MM-DD'
|
|
13
|
-
related_adrs: []
|
|
14
|
-
related_foundation:
|
|
15
|
-
- 'docs/foundation.md'
|
|
16
|
-
related_specs: []
|
|
17
|
-
normative_references: []
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# [Title]
|
|
21
|
-
|
|
22
|
-
**Spec**: `NNN-slug`
|
|
23
|
-
**Status**: Draft
|
|
24
|
-
**Created**: YYYY-MM-DD
|
|
25
|
-
**Priority**: P0 | P1 | P2 | P3
|
|
26
|
-
**Product Approval**: pending | approved | not-needed
|
|
27
|
-
**Architecture Review**: pending | approved | not-needed
|
|
28
|
-
**UX Review**: pending | approved | not-needed
|
|
29
|
-
|
|
30
|
-
> P0 = unusable without; P1 = core value, ship v1; P2 = post-launch; P3 = backlog
|
|
31
|
-
|
|
32
|
-
## Description
|
|
33
|
-
|
|
34
|
-
[Describe the problem, user need, and intended outcome.]
|
|
35
|
-
|
|
36
|
-
## Evidence <!-- especially important for reverse-spec work -->
|
|
37
|
-
|
|
38
|
-
- [path or source 1] — [why it matters]
|
|
39
|
-
- [path or source 2] — [why it matters]
|
|
40
|
-
|
|
41
|
-
## Problem Statement
|
|
42
|
-
|
|
43
|
-
[What problem exists today, for whom, and why it matters.]
|
|
44
|
-
|
|
45
|
-
## User Goals / Jobs To Be Done
|
|
46
|
-
|
|
47
|
-
- [job or goal 1]
|
|
48
|
-
- [job or goal 2]
|
|
49
|
-
|
|
50
|
-
## Success Signals
|
|
51
|
-
|
|
52
|
-
- [signal 1]
|
|
53
|
-
- [signal 2]
|
|
54
|
-
|
|
55
|
-
## Confidence <!-- optional, especially for reverse-spec work -->
|
|
56
|
-
|
|
57
|
-
- Overall confidence: high | medium | low
|
|
58
|
-
- Confidence notes: [what is directly evidenced vs inferred]
|
|
59
|
-
|
|
60
|
-
## User Stories
|
|
61
|
-
|
|
62
|
-
**US-1** As a user, I want ...
|
|
63
|
-
|
|
64
|
-
## Goals
|
|
65
|
-
|
|
66
|
-
- [goal 1]
|
|
67
|
-
- [goal 2]
|
|
68
|
-
|
|
69
|
-
## Non-Goals
|
|
70
|
-
|
|
71
|
-
- [non-goal 1]
|
|
72
|
-
- [non-goal 2]
|
|
73
|
-
|
|
74
|
-
## Authority and References
|
|
75
|
-
|
|
76
|
-
This spec must align with:
|
|
77
|
-
|
|
78
|
-
- `docs/foundation.md`
|
|
79
|
-
- relevant ADRs in `docs/adr/`
|
|
80
|
-
- relevant project-context and normative-reference documents
|
|
81
|
-
|
|
82
|
-
List the specific references for this spec:
|
|
83
|
-
|
|
84
|
-
- [reference 1]
|
|
85
|
-
- [reference 2]
|
|
86
|
-
|
|
87
|
-
## Design
|
|
88
|
-
|
|
89
|
-
### Observed Behavior <!-- optional for reverse-spec work -->
|
|
90
|
-
|
|
91
|
-
[Describe observed current behavior from evidence.]
|
|
92
|
-
|
|
93
|
-
### Likely Intent <!-- optional for reverse-spec work -->
|
|
94
|
-
|
|
95
|
-
[Describe what the feature appears intended to accomplish.]
|
|
96
|
-
|
|
97
|
-
### Product / Behavior
|
|
98
|
-
|
|
99
|
-
[Describe the user-visible or system-visible behavior.]
|
|
100
|
-
|
|
101
|
-
### Technical Notes
|
|
102
|
-
|
|
103
|
-
[Describe technical expectations only when PM should make them explicit before architect handoff.]
|
|
104
|
-
|
|
105
|
-
### UX Notes <!-- optional -->
|
|
106
|
-
|
|
107
|
-
[Describe layout, interaction, wording, state, or navigation expectations when relevant.]
|
|
108
|
-
|
|
109
|
-
## Constraints
|
|
110
|
-
|
|
111
|
-
- [constraint 1]
|
|
112
|
-
- [constraint 2]
|
|
113
|
-
|
|
114
|
-
## Preferences / Tradeoffs <!-- optional -->
|
|
115
|
-
|
|
116
|
-
- [preferred approach or tradeoff 1]
|
|
117
|
-
- [preferred approach or tradeoff 2]
|
|
118
|
-
|
|
119
|
-
## Risks <!-- optional -->
|
|
120
|
-
|
|
121
|
-
- [risk 1]
|
|
122
|
-
- [risk 2]
|
|
123
|
-
|
|
124
|
-
## Implementation / Intent Mismatches <!-- optional, especially for reverse-spec work -->
|
|
125
|
-
|
|
126
|
-
- [mismatch 1]
|
|
127
|
-
- [mismatch 2]
|
|
128
|
-
|
|
129
|
-
## Acceptance Criteria
|
|
130
|
-
|
|
131
|
-
- [ ] [specific, testable criterion]
|
|
132
|
-
- [ ] [specific, testable criterion]
|
|
133
|
-
- [ ] All new or changed behavior is covered by automated tests at the appropriate level
|
|
134
|
-
- [ ] Documentation and workflow artifacts are updated to match the implemented or reviewed state
|
|
135
|
-
|
|
136
|
-
## Out of Scope
|
|
137
|
-
|
|
138
|
-
- [out of scope 1]
|
|
139
|
-
- [out of scope 2]
|
|
140
|
-
|
|
141
|
-
## Assumptions <!-- optional -->
|
|
142
|
-
|
|
143
|
-
- [assumption 1]
|
|
144
|
-
|
|
145
|
-
## Open Questions <!-- optional -->
|
|
146
|
-
|
|
147
|
-
- [question 1]
|
|
148
|
-
|
|
149
|
-
## Definition of Done
|
|
150
|
-
|
|
151
|
-
> Filled in progressively by each role. QA sets `Status: Final` only after verifying all gates.
|
|
152
|
-
> Full standards in `docs/definition-of-done.md`.
|
|
153
|
-
|
|
154
|
-
### Code
|
|
155
|
-
|
|
156
|
-
- [ ] No lint errors
|
|
157
|
-
- [ ] No type errors
|
|
158
|
-
- [ ] No debug or uncommitted temporary code
|
|
159
|
-
- [ ] Follows project conventions
|
|
160
|
-
|
|
161
|
-
### Tests
|
|
162
|
-
|
|
163
|
-
- [ ] Unit tests cover new pure logic
|
|
164
|
-
- [ ] Integration tests cover system boundaries
|
|
165
|
-
- [ ] All tests pass
|
|
166
|
-
- [ ] No unjustified skipped tests
|
|
167
|
-
- [ ] Failure and edge cases covered
|
|
168
|
-
|
|
169
|
-
### Documentation
|
|
170
|
-
|
|
171
|
-
- [ ] Public interfaces documented
|
|
172
|
-
- [ ] All new documentation in Markdown
|
|
173
|
-
- [ ] All diagrams in Mermaid
|
|
174
|
-
- [ ] README updated if behavior or setup changed
|
|
175
|
-
- [ ] Architecture docs updated if ownership or boundaries changed
|
|
176
|
-
|
|
177
|
-
### Changelog
|
|
178
|
-
|
|
179
|
-
- [ ] `CHANGELOG.md` updated under `[Unreleased]` for user-visible changes
|
|
180
|
-
|
|
181
|
-
### Workflow artifacts
|
|
182
|
-
|
|
183
|
-
- [ ] Acceptance criteria checked off (met only — unmet left unchecked with explanation)
|
|
184
|
-
- [ ] `## Implementation Notes` written
|
|
185
|
-
- [ ] Spec status and index synchronized
|
|
186
|
-
- [ ] QA feedback rows marked `Done` where applicable
|
|
187
|
-
|
|
188
|
-
### Architecture
|
|
189
|
-
|
|
190
|
-
- [ ] No ADR or foundation rules silently violated
|
|
191
|
-
- [ ] ADR created or amended if a standing decision was made or changed
|
|
192
|
-
|
|
193
|
-
### QA verification
|
|
194
|
-
|
|
195
|
-
- [ ] All above gates verified independently
|
|
196
|
-
- [ ] Acceptance criteria classified: MET / CLAIMED BUT FAILED / OPEN / UNCHECKED
|
|
197
|
-
- [ ] No regressions introduced
|
|
198
|
-
- [ ] Spec set to `Final`
|
|
199
|
-
|
|
200
|
-
## Implementation Notes <!-- developer-owned when implemented -->
|
|
201
|
-
|
|
202
|
-
[Brief summary of what was built, deviations, or reviewer-relevant notes.]
|
|
203
|
-
|
|
204
|
-
## QA Feedback <!-- QA-owned when needed -->
|
|
205
|
-
|
|
206
|
-
[Present only when QA adds it.]
|