roadmodel 0.2.45__tar.gz → 0.2.46__tar.gz

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.
Files changed (49) hide show
  1. {roadmodel-0.2.45 → roadmodel-0.2.46}/PKG-INFO +7 -6
  2. {roadmodel-0.2.45 → roadmodel-0.2.46}/README.md +6 -5
  3. {roadmodel-0.2.45/roadmodel/data → roadmodel-0.2.46/docs/templates}/phase-roadmap-template.md +15 -9
  4. {roadmodel-0.2.45/roadmodel/data → roadmodel-0.2.46/docs/templates}/planning-kit-how-to-use.md +2 -2
  5. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/templates/project-roadmap-template.md +6 -0
  6. {roadmodel-0.2.45/roadmodel/data → roadmodel-0.2.46/docs/templates}/prompt-phase-roadmap.md +16 -6
  7. {roadmodel-0.2.45/roadmodel/data → roadmodel-0.2.46/docs/templates}/prompt-project-roadmap.md +11 -1
  8. {roadmodel-0.2.45 → roadmodel-0.2.46}/pyproject.toml +1 -1
  9. {roadmodel-0.2.45/docs/templates → roadmodel-0.2.46/roadmodel/data}/phase-roadmap-template.md +15 -9
  10. {roadmodel-0.2.45/docs/templates → roadmodel-0.2.46/roadmodel/data}/planning-kit-how-to-use.md +2 -2
  11. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/project-roadmap-template.md +6 -0
  12. {roadmodel-0.2.45/docs/templates → roadmodel-0.2.46/roadmodel/data}/prompt-phase-roadmap.md +16 -6
  13. {roadmodel-0.2.45/docs/templates → roadmodel-0.2.46/roadmodel/data}/prompt-project-roadmap.md +11 -1
  14. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/__init__.py +1 -1
  15. {roadmodel-0.2.45 → roadmodel-0.2.46}/.gitignore +0 -0
  16. {roadmodel-0.2.45 → roadmodel-0.2.46}/LICENSE +0 -0
  17. {roadmodel-0.2.45 → roadmodel-0.2.46}/NOTICE +0 -0
  18. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/benchmarks.json +0 -0
  19. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/catalog.json +0 -0
  20. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/model-selector.txt +0 -0
  21. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/model-tier-cost-scale.md +0 -0
  22. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/settings-display.md +0 -0
  23. {roadmodel-0.2.45 → roadmodel-0.2.46}/docs/user-context.example.md +0 -0
  24. {roadmodel-0.2.45 → roadmodel-0.2.46}/hatch_build.py +0 -0
  25. {roadmodel-0.2.45 → roadmodel-0.2.46}/infra/README.md +0 -0
  26. {roadmodel-0.2.45 → roadmodel-0.2.46}/infra/gcp-killswitch/README.md +0 -0
  27. {roadmodel-0.2.45 → roadmodel-0.2.46}/infra/supabase/README.md +0 -0
  28. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/benchmarks.json +0 -0
  29. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/catalog.json +0 -0
  30. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/model-selector.txt +0 -0
  31. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/model-tier-cost-scale.md +0 -0
  32. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/settings-display.md +0 -0
  33. {roadmodel-0.2.45 → roadmodel-0.2.46}/roadmodel/data/user-context.example.md +0 -0
  34. {roadmodel-0.2.45 → roadmodel-0.2.46}/scripts/update_projects.py +0 -0
  35. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/__main__.py +0 -0
  36. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/cli.py +0 -0
  37. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/config.py +0 -0
  38. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/cost.py +0 -0
  39. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/errors.py +0 -0
  40. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/mcp_server.py +0 -0
  41. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/providers/__init__.py +0 -0
  42. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/providers/anthropic.py +0 -0
  43. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/providers/google.py +0 -0
  44. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/providers/openai.py +0 -0
  45. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/providers/openai_compatible.py +0 -0
  46. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/providers/registry.py +0 -0
  47. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/recommend.py +0 -0
  48. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/scoring.py +0 -0
  49. {roadmodel-0.2.45 → roadmodel-0.2.46}/src/roadmodel/user_context.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: roadmodel
3
- Version: 0.2.45
3
+ Version: 0.2.46
4
4
  Summary: BYO-key CLI that recommends the right AI model, platform, and settings for a prompt.
5
5
  Project-URL: Homepage, https://roadmodel.ai
6
6
  Project-URL: Repository, https://github.com/nathanramoscfa/roadmodel
@@ -288,11 +288,12 @@ picks the model. The loop is the same in every repo, in every
288
288
  language, on every machine where the commands are installed:
289
289
 
290
290
  ```
291
- /roadmap-project ROADMAP.md — phases, acceptance criteria, and
292
- the security / release / operations strategy
293
- /roadmap-phase 1 docs/phase01-roadmap.md — Phase 1 broken into
294
- steps; each names its branch, its model and
295
- settings, and carries a <task> prompt
291
+ /roadmap-project docs/roadmap/ROADMAP.md — phases, acceptance
292
+ criteria, and the security / release /
293
+ operations strategy
294
+ /roadmap-phase 1 docs/roadmap/phase01-roadmap.md — Phase 1
295
+ broken into steps; each names its branch, its
296
+ model and settings, and carries a <task> prompt
296
297
  /roadmap-step 1 1 a NEW chat runs Step 1: branch → work → PR →
297
298
  /roadmap-step 1 2 merge → "Step 1 is complete." One step per
298
299
  … conversation; no work straddles two steps
@@ -38,11 +38,12 @@ picks the model. The loop is the same in every repo, in every
38
38
  language, on every machine where the commands are installed:
39
39
 
40
40
  ```
41
- /roadmap-project ROADMAP.md — phases, acceptance criteria, and
42
- the security / release / operations strategy
43
- /roadmap-phase 1 docs/phase01-roadmap.md — Phase 1 broken into
44
- steps; each names its branch, its model and
45
- settings, and carries a <task> prompt
41
+ /roadmap-project docs/roadmap/ROADMAP.md — phases, acceptance
42
+ criteria, and the security / release /
43
+ operations strategy
44
+ /roadmap-phase 1 docs/roadmap/phase01-roadmap.md — Phase 1
45
+ broken into steps; each names its branch, its
46
+ model and settings, and carries a <task> prompt
46
47
  /roadmap-step 1 1 a NEW chat runs Step 1: branch → work → PR →
47
48
  /roadmap-step 1 2 merge → "Step 1 is complete." One step per
48
49
  … conversation; no work straddles two steps
@@ -19,6 +19,12 @@ WHEN TO USE
19
19
  - Numbering convention: `phaseNN-roadmap.md` where NN is
20
20
  the phase number (e.g. `phase31-roadmap.md` for
21
21
  Phase 31, `phase04-roadmap.md` for Phase 4).
22
+ - Location: `docs/roadmap/`, beside the project's
23
+ `ROADMAP.md` — every roadmap in one folder. A project
24
+ that keeps its roadmaps git-excluded (e.g. `private/`)
25
+ keeps them there. Relative links resolve from
26
+ `docs/roadmap/` (`../phase{{N}}-qa-findings.md`,
27
+ `../../scripts/…`).
22
28
 
23
29
  PLACEHOLDER SYNTAX
24
30
  - Prose placeholders use {{double-curly}} form so that
@@ -1444,9 +1450,9 @@ that surface has neither dial.
1444
1450
  executable.
1445
1451
  {{last-2}}. docs/phase{{N}}-qa-
1446
1452
  findings.md exists.
1447
- {{last-1}}. docs/phase{{N}}-
1448
- roadmap.md exists (this
1449
- doc).
1453
+ {{last-1}}. docs/roadmap/
1454
+ phase{{N}}-roadmap.md
1455
+ exists (this doc).
1450
1456
  {{last}}. .github/workflows/
1451
1457
  phase-verify.yml matrix
1452
1458
  includes `{{N}}`.
@@ -1644,9 +1650,9 @@ that surface has neither dial.
1644
1650
  <requirement>
1645
1651
  Mark the phase complete in
1646
1652
  the parent project roadmap
1647
- (docs/ROADMAP.md, or
1648
- wherever this project keeps
1649
- it) in the SAME Stage-3
1653
+ (docs/roadmap/ROADMAP.md,
1654
+ beside this file) in the
1655
+ SAME Stage-3
1650
1656
  commit that marks this step
1651
1657
  (Status rule):
1652
1658
  - `### Phase {{N}}` gets
@@ -2029,7 +2035,7 @@ Each item is one bullet, two sentences max. Lead with the
2029
2035
  deferred thing, follow with where / when it lives instead.
2030
2036
  -->
2031
2037
 
2032
- Per [`docs/ROADMAP.md`](ROADMAP.md) Phase {{N}} "Not in
2038
+ Per [`docs/roadmap/ROADMAP.md`](ROADMAP.md) Phase {{N}} "Not in
2033
2039
  scope":
2034
2040
 
2035
2041
  - Item explicitly deferred by the parent roadmap, with a
@@ -2092,9 +2098,9 @@ Example skeleton:
2092
2098
  QA findings rollup, and any tests that need re-running.}}
2093
2099
 
2094
2100
  Audit cross-reference: see
2095
- [`docs/phase{{N}}-website-audit.md`](phase{{N}}-website-audit.md)
2101
+ [`docs/phase{{N}}-website-audit.md`](../phase{{N}}-website-audit.md)
2096
2102
  finding `PHASE{{N}}-AUDIT-NNN`. QA cross-reference: see
2097
- [`docs/phase{{N}}-qa-findings.md`](phase{{N}}-qa-findings.md)
2103
+ [`docs/phase{{N}}-qa-findings.md`](../phase{{N}}-qa-findings.md)
2098
2104
  § "{{Back-patch rollup heading}}".
2099
2105
  =============================================================
2100
2106
  -->
@@ -15,8 +15,8 @@ paid API.
15
15
  | `model-tier-cost-scale.md` | Per-token **prices** and **subscription tiers** — the funding/cost data the selector's access-selection step consumes. |
16
16
  | `settings-display.md` | The **display contract**: how the selector's setting fields map to the real controls each surface exposes (which dials to show, which to omit). Read it before writing any Settings table. |
17
17
  | `user-context.md` | The operator's **subscriptions + API keys + platform preference order** — decides *which platform pays* for each pick. |
18
- | `templates/project-roadmap-template.md` | Skeleton for a whole-project `ROADMAP.md`. |
19
- | `templates/phase-roadmap-template.md` | Skeleton for one `phaseNN-roadmap.md`. |
18
+ | `templates/project-roadmap-template.md` | Skeleton for a whole-project `docs/roadmap/ROADMAP.md`. |
19
+ | `templates/phase-roadmap-template.md` | Skeleton for one `docs/roadmap/phaseNN-roadmap.md`, beside it. |
20
20
  | `prompts/project-roadmap.md` | **Fill-in paste-prompt** that writes `ROADMAP.md` from the project template — refreshes the kit first. |
21
21
  | `prompts/phase-roadmap.md` | **Fill-in paste-prompt** that writes one `phaseNN-roadmap.md` — refreshes the kit first. |
22
22
 
@@ -22,6 +22,12 @@ STYLE RULES (the AI MUST follow)
22
22
  a per-phase exit gate, never a final-phase afterthought —
23
23
  an issue introduced in Phase 2 must be caught in Phase 2,
24
24
  before its work is committed, pushed, or merged.
25
+ - This file lives at `docs/roadmap/ROADMAP.md`, and every
26
+ phase roadmap (`phaseNN-roadmap.md`) is written beside it:
27
+ all roadmaps in one folder, none at the repo root. A
28
+ project that keeps its roadmaps git-excluded (e.g.
29
+ `private/`) keeps them there. Relative links resolve from
30
+ `docs/roadmap/` (`../../README.md`, `../ci.md`).
25
31
  - Every phase carries a one-line metadata badge:
26
32
  **Complexity:** … · **Risk:** … · **Cloud cost:** … ·
27
33
  **Handles sensitive data:** <Yes/No — PII, secrets, auth>
@@ -6,12 +6,12 @@ into a **new** chat in the project and submit. Defaults are shown
6
6
  for every placeholder; delete a bracketed line if it does not
7
7
  apply.
8
8
 
9
- | Placeholder | Meaning | Default |
10
- | -------------------- | ----------------------------------------- | ---------------------------------- |
11
- | `{{N}}` | Phase number (two digits in filenames) | — |
12
- | `{{PROJECT_ROADMAP}}` | The parent project roadmap | `@ROADMAP.md` |
13
- | `{{OUTPUT}}` | Where the phase roadmap is written | `docs/phase{{NN}}-roadmap.md` |
14
- | `{{PRIOR}}` | Previous phase roadmap(s), for continuity | `@docs/phase{{NN-1}}-roadmap.md` |
9
+ | Placeholder | Meaning | Default |
10
+ | -------------------- | ----------------------------------------- | ------------------------------------------ |
11
+ | `{{N}}` | Phase number (two digits in filenames) | — |
12
+ | `{{PROJECT_ROADMAP}}` | The parent project roadmap | `@docs/roadmap/ROADMAP.md` |
13
+ | `{{OUTPUT}}` | Where the phase roadmap is written | `docs/roadmap/phase{{NN}}-roadmap.md` |
14
+ | `{{PRIOR}}` | Previous phase roadmap(s), for continuity | `@docs/roadmap/phase{{NN-1}}-roadmap.md` |
15
15
 
16
16
  ---
17
17
 
@@ -31,6 +31,16 @@ line, a step's Status line sits after its `**Deploys:**` line, or its
31
31
  Settings tables have no `Backup` row, STOP
32
32
  and tell me the kit is stale — do not write the roadmap from it.
33
33
 
34
+ Step 0b — roadmaps live in `docs/roadmap/`: `ROADMAP.md` and every
35
+ `phaseNN-roadmap.md`, together. A project that keeps them git-excluded
36
+ (e.g. `private/`) keeps them there, and the rest of this step does not
37
+ apply: a tracked `ROADMAP.md` beside them is a published copy.
38
+ Otherwise, if this project has a `ROADMAP.md` or `phaseNN-roadmap.md`
39
+ anywhere else that git does not ignore (committed, or written and not
40
+ yet committed), STOP and tell me to run `/roadmap-refresh` first: it
41
+ moves them into `docs/roadmap/` and updates every reference to them. Do
42
+ not write a new roadmap beside them.
43
+
34
44
  Step 1 — write `{{OUTPUT}}` from
35
45
  `@planning/templates/phase-roadmap-template.md`, expanding the
36
46
  Phase {{N}} section of `{{PROJECT_ROADMAP}}` into an executable plan.
@@ -9,7 +9,7 @@ apply.
9
9
  | Placeholder | Meaning | Default |
10
10
  | -------------- | -------------------------------------------------------- | --------------------------- |
11
11
  | `{{BRIEF}}` | Where the project is described: files, or inline prose | `@README.md` |
12
- | `{{OUTPUT}}` | Where the roadmap is written | `ROADMAP.md` |
12
+ | `{{OUTPUT}}` | Where the roadmap is written | `docs/roadmap/ROADMAP.md` |
13
13
  | `{{CONSTRAINTS}}` | Hard constraints the roadmap must respect (optional) | — |
14
14
 
15
15
  ---
@@ -29,6 +29,16 @@ completion line, or a `### Phase` section's `**Status:**` line sits
29
29
  after its **Goal:** rather than directly under its heading, STOP and
30
30
  tell me the kit is stale — do not write the roadmap from it.
31
31
 
32
+ Step 0b — roadmaps live in `docs/roadmap/`: `ROADMAP.md` and every
33
+ `phaseNN-roadmap.md`, together. A project that keeps them git-excluded
34
+ (e.g. `private/`) keeps them there, and the rest of this step does not
35
+ apply: a tracked `ROADMAP.md` beside them is a published copy.
36
+ Otherwise, if this project has a `ROADMAP.md` or `phaseNN-roadmap.md`
37
+ anywhere else that git does not ignore (committed, or written and not
38
+ yet committed), STOP and tell me to run `/roadmap-refresh` first: it
39
+ moves them into `docs/roadmap/` and updates every reference to them. Do
40
+ not write a new roadmap beside them.
41
+
32
42
  Step 1 — write `{{OUTPUT}}` from
33
43
  `@planning/templates/project-roadmap-template.md`. The project brief
34
44
  is {{BRIEF}}. [Hard constraints: {{CONSTRAINTS}}.] Read the codebase
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "roadmodel"
7
- version = "0.2.45"
7
+ version = "0.2.46"
8
8
  description = "BYO-key CLI that recommends the right AI model, platform, and settings for a prompt."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -19,6 +19,12 @@ WHEN TO USE
19
19
  - Numbering convention: `phaseNN-roadmap.md` where NN is
20
20
  the phase number (e.g. `phase31-roadmap.md` for
21
21
  Phase 31, `phase04-roadmap.md` for Phase 4).
22
+ - Location: `docs/roadmap/`, beside the project's
23
+ `ROADMAP.md` — every roadmap in one folder. A project
24
+ that keeps its roadmaps git-excluded (e.g. `private/`)
25
+ keeps them there. Relative links resolve from
26
+ `docs/roadmap/` (`../phase{{N}}-qa-findings.md`,
27
+ `../../scripts/…`).
22
28
 
23
29
  PLACEHOLDER SYNTAX
24
30
  - Prose placeholders use {{double-curly}} form so that
@@ -1444,9 +1450,9 @@ that surface has neither dial.
1444
1450
  executable.
1445
1451
  {{last-2}}. docs/phase{{N}}-qa-
1446
1452
  findings.md exists.
1447
- {{last-1}}. docs/phase{{N}}-
1448
- roadmap.md exists (this
1449
- doc).
1453
+ {{last-1}}. docs/roadmap/
1454
+ phase{{N}}-roadmap.md
1455
+ exists (this doc).
1450
1456
  {{last}}. .github/workflows/
1451
1457
  phase-verify.yml matrix
1452
1458
  includes `{{N}}`.
@@ -1644,9 +1650,9 @@ that surface has neither dial.
1644
1650
  <requirement>
1645
1651
  Mark the phase complete in
1646
1652
  the parent project roadmap
1647
- (docs/ROADMAP.md, or
1648
- wherever this project keeps
1649
- it) in the SAME Stage-3
1653
+ (docs/roadmap/ROADMAP.md,
1654
+ beside this file) in the
1655
+ SAME Stage-3
1650
1656
  commit that marks this step
1651
1657
  (Status rule):
1652
1658
  - `### Phase {{N}}` gets
@@ -2029,7 +2035,7 @@ Each item is one bullet, two sentences max. Lead with the
2029
2035
  deferred thing, follow with where / when it lives instead.
2030
2036
  -->
2031
2037
 
2032
- Per [`docs/ROADMAP.md`](ROADMAP.md) Phase {{N}} "Not in
2038
+ Per [`docs/roadmap/ROADMAP.md`](ROADMAP.md) Phase {{N}} "Not in
2033
2039
  scope":
2034
2040
 
2035
2041
  - Item explicitly deferred by the parent roadmap, with a
@@ -2092,9 +2098,9 @@ Example skeleton:
2092
2098
  QA findings rollup, and any tests that need re-running.}}
2093
2099
 
2094
2100
  Audit cross-reference: see
2095
- [`docs/phase{{N}}-website-audit.md`](phase{{N}}-website-audit.md)
2101
+ [`docs/phase{{N}}-website-audit.md`](../phase{{N}}-website-audit.md)
2096
2102
  finding `PHASE{{N}}-AUDIT-NNN`. QA cross-reference: see
2097
- [`docs/phase{{N}}-qa-findings.md`](phase{{N}}-qa-findings.md)
2103
+ [`docs/phase{{N}}-qa-findings.md`](../phase{{N}}-qa-findings.md)
2098
2104
  § "{{Back-patch rollup heading}}".
2099
2105
  =============================================================
2100
2106
  -->
@@ -15,8 +15,8 @@ paid API.
15
15
  | `model-tier-cost-scale.md` | Per-token **prices** and **subscription tiers** — the funding/cost data the selector's access-selection step consumes. |
16
16
  | `settings-display.md` | The **display contract**: how the selector's setting fields map to the real controls each surface exposes (which dials to show, which to omit). Read it before writing any Settings table. |
17
17
  | `user-context.md` | The operator's **subscriptions + API keys + platform preference order** — decides *which platform pays* for each pick. |
18
- | `templates/project-roadmap-template.md` | Skeleton for a whole-project `ROADMAP.md`. |
19
- | `templates/phase-roadmap-template.md` | Skeleton for one `phaseNN-roadmap.md`. |
18
+ | `templates/project-roadmap-template.md` | Skeleton for a whole-project `docs/roadmap/ROADMAP.md`. |
19
+ | `templates/phase-roadmap-template.md` | Skeleton for one `docs/roadmap/phaseNN-roadmap.md`, beside it. |
20
20
  | `prompts/project-roadmap.md` | **Fill-in paste-prompt** that writes `ROADMAP.md` from the project template — refreshes the kit first. |
21
21
  | `prompts/phase-roadmap.md` | **Fill-in paste-prompt** that writes one `phaseNN-roadmap.md` — refreshes the kit first. |
22
22
 
@@ -22,6 +22,12 @@ STYLE RULES (the AI MUST follow)
22
22
  a per-phase exit gate, never a final-phase afterthought —
23
23
  an issue introduced in Phase 2 must be caught in Phase 2,
24
24
  before its work is committed, pushed, or merged.
25
+ - This file lives at `docs/roadmap/ROADMAP.md`, and every
26
+ phase roadmap (`phaseNN-roadmap.md`) is written beside it:
27
+ all roadmaps in one folder, none at the repo root. A
28
+ project that keeps its roadmaps git-excluded (e.g.
29
+ `private/`) keeps them there. Relative links resolve from
30
+ `docs/roadmap/` (`../../README.md`, `../ci.md`).
25
31
  - Every phase carries a one-line metadata badge:
26
32
  **Complexity:** … · **Risk:** … · **Cloud cost:** … ·
27
33
  **Handles sensitive data:** <Yes/No — PII, secrets, auth>
@@ -6,12 +6,12 @@ into a **new** chat in the project and submit. Defaults are shown
6
6
  for every placeholder; delete a bracketed line if it does not
7
7
  apply.
8
8
 
9
- | Placeholder | Meaning | Default |
10
- | -------------------- | ----------------------------------------- | ---------------------------------- |
11
- | `{{N}}` | Phase number (two digits in filenames) | — |
12
- | `{{PROJECT_ROADMAP}}` | The parent project roadmap | `@ROADMAP.md` |
13
- | `{{OUTPUT}}` | Where the phase roadmap is written | `docs/phase{{NN}}-roadmap.md` |
14
- | `{{PRIOR}}` | Previous phase roadmap(s), for continuity | `@docs/phase{{NN-1}}-roadmap.md` |
9
+ | Placeholder | Meaning | Default |
10
+ | -------------------- | ----------------------------------------- | ------------------------------------------ |
11
+ | `{{N}}` | Phase number (two digits in filenames) | — |
12
+ | `{{PROJECT_ROADMAP}}` | The parent project roadmap | `@docs/roadmap/ROADMAP.md` |
13
+ | `{{OUTPUT}}` | Where the phase roadmap is written | `docs/roadmap/phase{{NN}}-roadmap.md` |
14
+ | `{{PRIOR}}` | Previous phase roadmap(s), for continuity | `@docs/roadmap/phase{{NN-1}}-roadmap.md` |
15
15
 
16
16
  ---
17
17
 
@@ -31,6 +31,16 @@ line, a step's Status line sits after its `**Deploys:**` line, or its
31
31
  Settings tables have no `Backup` row, STOP
32
32
  and tell me the kit is stale — do not write the roadmap from it.
33
33
 
34
+ Step 0b — roadmaps live in `docs/roadmap/`: `ROADMAP.md` and every
35
+ `phaseNN-roadmap.md`, together. A project that keeps them git-excluded
36
+ (e.g. `private/`) keeps them there, and the rest of this step does not
37
+ apply: a tracked `ROADMAP.md` beside them is a published copy.
38
+ Otherwise, if this project has a `ROADMAP.md` or `phaseNN-roadmap.md`
39
+ anywhere else that git does not ignore (committed, or written and not
40
+ yet committed), STOP and tell me to run `/roadmap-refresh` first: it
41
+ moves them into `docs/roadmap/` and updates every reference to them. Do
42
+ not write a new roadmap beside them.
43
+
34
44
  Step 1 — write `{{OUTPUT}}` from
35
45
  `@planning/templates/phase-roadmap-template.md`, expanding the
36
46
  Phase {{N}} section of `{{PROJECT_ROADMAP}}` into an executable plan.
@@ -9,7 +9,7 @@ apply.
9
9
  | Placeholder | Meaning | Default |
10
10
  | -------------- | -------------------------------------------------------- | --------------------------- |
11
11
  | `{{BRIEF}}` | Where the project is described: files, or inline prose | `@README.md` |
12
- | `{{OUTPUT}}` | Where the roadmap is written | `ROADMAP.md` |
12
+ | `{{OUTPUT}}` | Where the roadmap is written | `docs/roadmap/ROADMAP.md` |
13
13
  | `{{CONSTRAINTS}}` | Hard constraints the roadmap must respect (optional) | — |
14
14
 
15
15
  ---
@@ -29,6 +29,16 @@ completion line, or a `### Phase` section's `**Status:**` line sits
29
29
  after its **Goal:** rather than directly under its heading, STOP and
30
30
  tell me the kit is stale — do not write the roadmap from it.
31
31
 
32
+ Step 0b — roadmaps live in `docs/roadmap/`: `ROADMAP.md` and every
33
+ `phaseNN-roadmap.md`, together. A project that keeps them git-excluded
34
+ (e.g. `private/`) keeps them there, and the rest of this step does not
35
+ apply: a tracked `ROADMAP.md` beside them is a published copy.
36
+ Otherwise, if this project has a `ROADMAP.md` or `phaseNN-roadmap.md`
37
+ anywhere else that git does not ignore (committed, or written and not
38
+ yet committed), STOP and tell me to run `/roadmap-refresh` first: it
39
+ moves them into `docs/roadmap/` and updates every reference to them. Do
40
+ not write a new roadmap beside them.
41
+
32
42
  Step 1 — write `{{OUTPUT}}` from
33
43
  `@planning/templates/project-roadmap-template.md`. The project brief
34
44
  is {{BRIEF}}. [Hard constraints: {{CONSTRAINTS}}.] Read the codebase
@@ -1,2 +1,2 @@
1
1
  # src/roadmodel/__init__.py
2
- __version__ = "0.2.45"
2
+ __version__ = "0.2.46"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes