Skip to content

Commit 7b16423

Browse files
Publish roadmap (#10)
Add ROADMAP.md (near-term / planned / exploratory / non-goals) as the canonical forward-looking doc, linked from a new README "Roadmap" section and the Documentation list. Migrate the forward-looking items out of the non-standard "Planned" subsection under the 1.2.0 changelog entry into ROADMAP.md, and move the validate Check 6 bullet from [Unreleased] into [1.3.0] (that code already ships in the v1.3.0 tag). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent dbce5a5 commit 7b16423

3 files changed

Lines changed: 70 additions & 11 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
## [Unreleased]
1111

12-
### Changed
13-
- `scripts/validate.{ps1,sh}` Check 6 now treats an empty `[Unreleased]` section as passing when the
14-
section immediately below it is a dated `[x.y.z] - <date>` release heading (the freshly cut version),
15-
so a clean post-release CHANGELOG no longer fails CI. A non-release-state empty `[Unreleased]` still
16-
fails, preserving the "every PR adds a changelog line" invariant.
12+
### Added
13+
- `ROADMAP.md` - published roadmap of near-term, planned, and exploratory work, linked from
14+
`README.md` (new `## Roadmap` section + Documentation entry). Migrated the forward-looking items
15+
out of the non-standard `### Planned` subsection that sat under the `1.2.0` changelog entry into
16+
this dedicated file.
1717

1818
---
1919

@@ -42,6 +42,10 @@ validator with a Windows + Ubuntu CI matrix, an uninstaller, and a batch of comm
4242
per-project cleanup reminders (`.claude/settings.json` hook wiring, `.claude/.hookstate/`).
4343

4444
### Changed
45+
- `scripts/validate.{ps1,sh}` Check 6 now treats an empty `[Unreleased]` section as passing when the
46+
section immediately below it is a dated `[x.y.z] - <date>` release heading (the freshly cut version),
47+
so a clean post-release CHANGELOG no longer fails CI. A non-release-state empty `[Unreleased]` still
48+
fails, preserving the "every PR adds a changelog line" invariant.
4549
- `/sd:perf` Gate 6 now structurally refuses a no-measurable-gain "keep" instead of merely warning about
4650
it in prose. The gate branches on the noise check: a measurable improvement still offers `keep` /
4751
`revert`, but a within-noise result defaults to `revert` and allows `keep` only as an explicit logged
@@ -110,12 +114,7 @@ Pattern conformance release. Introduces `sd-pattern-discipline` (the 6th skill),
110114
a real Atlassian MCP tool name - corrected to `mcp__atlassian__searchJiraIssuesUsingJql`.
111115
Slug-based ticket search could never have resolved before.
112116

113-
### Planned
114-
- `/sd:setup` codebase scan: pre-fill constitution §1.1/§2.4 and CLAUDE.md conventions from
115-
sampled source files instead of leaving `<<placeholder>>`s; optional `paths.layers` map in
116-
project-config.
117-
- Optional `sd-docs-writer` agent for ADR generation.
118-
- Telemetry-free usage analytics (opt-in, local only).
117+
> Forward-looking items that previously lived here moved to [`ROADMAP.md`](ROADMAP.md).
119118
120119
---
121120

‎README.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,20 @@ Configure per project in `.claude/project-config.json` under the `mcp` section.
248248
- [`install/README.md`](install/README.md) - Install guide and options
249249
- [`CONTRIBUTING.md`](CONTRIBUTING.md) - PR process and dev guidelines
250250
- [`CHANGELOG.md`](CHANGELOG.md) - Release notes
251+
- [`ROADMAP.md`](ROADMAP.md) - Planned and exploratory work
252+
253+
---
254+
255+
## Roadmap
256+
257+
Forward-looking work lives in [`ROADMAP.md`](ROADMAP.md). Highlights:
258+
259+
- **Near-term** - GitHub Issue auto-fetch (`gh issue view`) to match the existing JIRA snapshot path.
260+
- **Planned** - `/sd:setup` codebase scan (detected defaults instead of `<<placeholder>>`s) and an
261+
optional `sd-docs-writer` agent for ADRs.
262+
- **Exploratory** - local-only, opt-in usage analytics.
263+
264+
Shipped work is in [`CHANGELOG.md`](CHANGELOG.md).
251265

252266
---
253267

‎ROADMAP.md‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Roadmap
2+
3+
Planned and exploratory work for specwright. Shipped items live in [`CHANGELOG.md`](CHANGELOG.md);
4+
this file is forward-looking only and intentionally non-binding - priorities shift as the engine is
5+
dogfooded on real projects.
6+
7+
Current released version: **1.3.0** (see the [changelog](CHANGELOG.md) for what shipped).
8+
9+
## Near-term
10+
11+
Small, well-scoped items targeted at the next minor release.
12+
13+
- **GitHub Issue auto-fetch (`gh issue view`)** - extend the JIRA-only ticket snapshot path so a
14+
GitHub Issue `<ID>` argument is fetched and snapshotted into `04-artifacts/ticket/` the same way
15+
JIRA tickets are. Mirrors the existing case in `sd-spec-architect`; GitHub and Linear are already
16+
recognized as trackers, but their ticket content is not yet auto-fetched (it has to be pasted in).
17+
18+
## Planned
19+
20+
Larger items that each warrant a full `/sd:feature` spec before building.
21+
22+
- **`/sd:setup` codebase scan** - pre-fill `constitution.md` (architectural rules, conventions) and
23+
`CLAUDE.md` from sampled source files instead of leaving `<<placeholder>>`s, with an optional
24+
`paths.layers` map in `project-config.json`. Turns first-run setup from blank-template into
25+
detected-defaults.
26+
- **`sd-docs-writer` agent** - an optional subagent that authors Architecture Decision Records (ADRs)
27+
and architecture docs from spec artifacts, promoting durable `.specs/` decisions into human-facing
28+
documentation.
29+
30+
## Exploratory
31+
32+
Ideas under consideration; no committed timeline.
33+
34+
- **Local-only usage analytics** - opt-in, telemetry-free counters (kept on disk, never transmitted)
35+
to surface which workflows and gates get used most.
36+
37+
## Non-goals
38+
39+
specwright stays a generic, stack-agnostic engine. Project-specific commands, hardcoded stack
40+
commands (`dotnet test`, `npm test`), and anything that couples the engine to one language or
41+
framework are explicit non-goals - all project specifics are read at runtime from `CLAUDE.md`,
42+
`constitution.md`, and `project-config.json`. See [`docs/architecture.md`](docs/architecture.md).
43+
44+
---
45+
46+
Have a request or want to pick something up? Open an issue or see [`CONTRIBUTING.md`](CONTRIBUTING.md).

0 commit comments

Comments
 (0)