@rsaglobaltech/specgate 0.21.0 → 0.22.1

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 (74) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/README.md +81 -96
  3. package/dist/packages/core/src/domain/BriefCards.js +320 -0
  4. package/dist/packages/core/src/domain/BriefCards.js.map +1 -0
  5. package/dist/packages/core/src/domain/DraftChecklist.js +5 -1
  6. package/dist/packages/core/src/domain/DraftChecklist.js.map +1 -1
  7. package/dist/packages/core/src/domain/QuotedText.js +5 -0
  8. package/dist/packages/core/src/domain/QuotedText.js.map +1 -1
  9. package/dist/packages/core/src/domain/TicketText.js +337 -0
  10. package/dist/packages/core/src/domain/TicketText.js.map +1 -0
  11. package/dist/packages/core/src/infrastructure/ChangeWorkspace.js +7 -3
  12. package/dist/packages/core/src/infrastructure/ChangeWorkspace.js.map +1 -1
  13. package/dist/packages/core/src/infrastructure/IdsAcrossBranches.js +48 -0
  14. package/dist/packages/core/src/infrastructure/IdsAcrossBranches.js.map +1 -0
  15. package/dist/packages/mcp-spec-driven/src/native-tools.js +1 -1
  16. package/dist/packages/mcp-spec-driven/src/native-tools.js.map +1 -1
  17. package/dist/scripts/agents/commands.js +8 -6
  18. package/dist/scripts/agents/commands.js.map +1 -1
  19. package/dist/scripts/agents/contract-file.js +44 -0
  20. package/dist/scripts/agents/contract-file.js.map +1 -1
  21. package/dist/scripts/alm/cli.js +16 -4
  22. package/dist/scripts/alm/cli.js.map +1 -1
  23. package/dist/scripts/alm/port.js +1 -1
  24. package/dist/scripts/alm/port.js.map +1 -1
  25. package/dist/scripts/alm/providers/http-client.js +46 -3
  26. package/dist/scripts/alm/providers/http-client.js.map +1 -1
  27. package/dist/scripts/alm/providers/jira.js +108 -32
  28. package/dist/scripts/alm/providers/jira.js.map +1 -1
  29. package/dist/scripts/cli/commands/alm/PrCommand.js +198 -0
  30. package/dist/scripts/cli/commands/alm/PrCommand.js.map +1 -0
  31. package/dist/scripts/cli/commands/change/ChangeCommand.js +32 -6
  32. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  33. package/dist/scripts/cli/commands/change/TicketCommand.js +657 -0
  34. package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -0
  35. package/dist/scripts/cli/commands/harness/RunCommand.js +4 -2
  36. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  37. package/dist/scripts/cli/commands/project/AdoptCommand.js +58 -0
  38. package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -1
  39. package/dist/scripts/cli/commands/project/UpdateCommand.js +4 -0
  40. package/dist/scripts/cli/commands/project/UpdateCommand.js.map +1 -1
  41. package/dist/scripts/cli/commands/quality/CheckCommand.js +12 -0
  42. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  43. package/dist/scripts/cli/commands/spec/DraftCommand.js +240 -27
  44. package/dist/scripts/cli/commands/spec/DraftCommand.js.map +1 -1
  45. package/dist/scripts/cli/commands/spec/ExploreCommand.js +13 -13
  46. package/dist/scripts/cli/commands/spec/ExploreCommand.js.map +1 -1
  47. package/dist/scripts/cli/commands/spec/StatusCommand.js +18 -6
  48. package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
  49. package/dist/scripts/docs/journey-storyboard.js +67 -44
  50. package/dist/scripts/docs/journey-storyboard.js.map +1 -1
  51. package/dist/scripts/docs/nav.js +156 -139
  52. package/dist/scripts/docs/nav.js.map +1 -1
  53. package/dist/scripts/docs/record-journey.js +139 -49
  54. package/dist/scripts/docs/record-journey.js.map +1 -1
  55. package/dist/scripts/docs/terminal-storyboard.js +15 -11
  56. package/dist/scripts/docs/terminal-storyboard.js.map +1 -1
  57. package/dist/scripts/draft/brief-check.js +34 -0
  58. package/dist/scripts/draft/brief-check.js.map +1 -0
  59. package/dist/scripts/draft/brief-setup.js +182 -17
  60. package/dist/scripts/draft/brief-setup.js.map +1 -1
  61. package/dist/scripts/draft/drafting-guide.js +43 -1
  62. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  63. package/dist/scripts/draft/ticket-guide.js +129 -0
  64. package/dist/scripts/draft/ticket-guide.js.map +1 -0
  65. package/dist/scripts/lib/surface.js +2 -0
  66. package/dist/scripts/lib/surface.js.map +1 -1
  67. package/dist/scripts/lib/ticket-keys.js +140 -0
  68. package/dist/scripts/lib/ticket-keys.js.map +1 -0
  69. package/dist/scripts/propose.js +8 -2
  70. package/dist/scripts/propose.js.map +1 -1
  71. package/dist/scripts/vcs/github-pr.js +88 -0
  72. package/dist/scripts/vcs/github-pr.js.map +1 -0
  73. package/package.json +1 -1
  74. package/templates/base/AGENTS.md.tpl +6 -5
@@ -24,56 +24,62 @@ exports.SCRATCH = {
24
24
  steps: [
25
25
  // Before phase 1 — writing the brief (start/write-the-brief), on a second
26
26
  // project, "Lingo", so the court-bookings journey starts clean.
27
- {
28
- id: "brief-none",
29
- page: "start/write-the-brief",
30
- cwd: "lingo",
31
- argv: sg("draft"),
32
- surface: "draft",
33
- maxLines: 24,
34
- expectExit: 1,
35
- },
36
27
  {
37
28
  id: "brief-new",
38
29
  page: "start/write-the-brief",
39
30
  cwd: "lingo-new",
40
- argv: sg("draft", "--new-brief"),
41
- surface: "draft",
42
- maxLines: 16,
31
+ argv: sg("propose", "--from-brief", "--new-brief"),
32
+ surface: "propose",
33
+ maxLines: 18,
43
34
  },
44
35
  {
45
- id: "brief-plain",
36
+ id: "brief-agent",
46
37
  page: "start/write-the-brief",
47
38
  cwd: "lingo",
48
- argv: sg("draft"),
49
- surface: "draft",
50
- maxLines: 60,
39
+ argv: sg("propose", "--from-brief", "--agent", "claude -p"),
40
+ surface: "propose",
41
+ maxLines: 30,
51
42
  },
52
43
  {
53
- id: "brief-agent",
44
+ id: "brief-cards-agent",
54
45
  page: "start/write-the-brief",
55
46
  cwd: "lingo",
56
- argv: sg("draft", "--agent", "claude -p"),
57
- surface: "draft",
58
- maxLines: 30,
47
+ argv: sg("propose", "--from-brief", "--agent", "claude -p"),
48
+ surface: "propose",
49
+ maxLines: 20,
59
50
  },
60
51
  {
61
- id: "brief-error",
52
+ id: "brief-check",
62
53
  page: "start/write-the-brief",
63
54
  cwd: "lingo",
64
- argv: sg("draft"),
65
- surface: "draft",
66
- maxLines: 20,
67
- expectExit: 1,
55
+ argv: sg("propose", "--from-brief", "--check"),
56
+ surface: "propose",
57
+ maxLines: 24,
68
58
  },
69
59
  {
70
60
  id: "brief-ready",
71
61
  page: "start/write-the-brief",
72
62
  cwd: "lingo",
73
- argv: sg("draft"),
74
- surface: "draft",
63
+ argv: sg("propose", "--from-brief"),
64
+ surface: "propose",
75
65
  maxLines: 16,
76
66
  },
67
+ {
68
+ id: "brief-draft",
69
+ page: "start/write-the-brief",
70
+ cwd: "lingo",
71
+ argv: sg("propose", "--from-brief", "courses"),
72
+ surface: "propose",
73
+ maxLines: 12,
74
+ },
75
+ {
76
+ id: "brief-scope",
77
+ page: "start/write-the-brief",
78
+ cwd: "lingo",
79
+ shell: "sed -n '/^## 0/,/^## 1/p' docs/specs/changes/draft-courses/DRAFTING.md | sed '$d'",
80
+ surface: null,
81
+ maxLines: 40,
82
+ },
77
83
  // 1 — Install
78
84
  {
79
85
  id: "scratch-init",
@@ -104,24 +110,24 @@ exports.SCRATCH = {
104
110
  id: "scratch-draft-list",
105
111
  page: "start/scratch-2-specify",
106
112
  cwd: S,
107
- argv: sg("draft"),
108
- surface: "draft",
113
+ argv: sg("propose", "--from-brief"),
114
+ surface: "propose",
109
115
  maxLines: 12,
110
116
  },
111
117
  {
112
118
  id: "scratch-draft-open",
113
119
  page: "start/scratch-2-specify",
114
120
  cwd: S,
115
- argv: sg("draft", "bookings"),
116
- surface: "draft",
121
+ argv: sg("propose", "--from-brief", "bookings"),
122
+ surface: "propose",
117
123
  maxLines: 16,
118
124
  },
119
125
  {
120
126
  id: "scratch-draft-check",
121
127
  page: "start/scratch-2-specify",
122
128
  cwd: S,
123
- argv: sg("draft", "bookings"),
124
- surface: "draft",
129
+ argv: sg("propose", "--from-brief", "bookings"),
130
+ surface: "propose",
125
131
  maxLines: 26,
126
132
  expectExit: 1,
127
133
  },
@@ -129,8 +135,8 @@ exports.SCRATCH = {
129
135
  id: "scratch-draft-check-again",
130
136
  page: "start/scratch-2-specify",
131
137
  cwd: S,
132
- argv: sg("draft", "bookings"),
133
- surface: "draft",
138
+ argv: sg("propose", "--from-brief", "bookings"),
139
+ surface: "propose",
134
140
  maxLines: 12,
135
141
  },
136
142
  {
@@ -213,11 +219,11 @@ exports.SCRATCH = {
213
219
  maxLines: 12,
214
220
  },
215
221
  {
216
- id: "scratch-new",
222
+ id: "scratch-propose",
217
223
  page: "start/scratch-5-every-day",
218
224
  cwd: S,
219
- argv: sg("new", "A member sees which courts are free on a day"),
220
- surface: "new",
225
+ argv: sg("propose", "free-courts"),
226
+ surface: "propose",
221
227
  maxLines: 14,
222
228
  },
223
229
  {
@@ -278,20 +284,28 @@ exports.EXISTING = {
278
284
  maxLines: 20,
279
285
  },
280
286
  {
281
- id: "existing-new",
287
+ id: "existing-propose",
282
288
  page: "start/existing-2-specify",
283
289
  cwd: E,
284
- argv: sg("new", "An invoice total is rounded to the cent"),
285
- surface: "new",
290
+ argv: sg("propose", "invoice-rounding"),
291
+ surface: "propose",
286
292
  maxLines: 14,
287
293
  },
288
294
  {
289
- id: "existing-feature",
295
+ id: "existing-delta",
290
296
  page: "start/existing-2-specify",
291
297
  cwd: E,
292
- shell: "cat features/an-invoice-total-is-rounded-to.feature",
298
+ shell: "cat docs/specs/changes/invoice-rounding/specs/invoice-rounding/spec.md",
293
299
  surface: null,
294
- maxLines: 14,
300
+ maxLines: 16,
301
+ },
302
+ {
303
+ id: "existing-status-change",
304
+ page: "start/existing-2-specify",
305
+ cwd: E,
306
+ argv: sg("status"),
307
+ surface: "status",
308
+ maxLines: 20,
295
309
  },
296
310
  // 3 — Close the first
297
311
  {
@@ -319,6 +333,15 @@ exports.EXISTING = {
319
333
  surface: "apply",
320
334
  maxLines: 14,
321
335
  },
336
+ // A change is archived once every requirement it adds is applied (ADR-0035).
337
+ {
338
+ id: "existing-archive",
339
+ page: "start/existing-3-first-requirement",
340
+ cwd: E,
341
+ argv: sg("archive", "invoice-rounding"),
342
+ surface: "archive",
343
+ maxLines: 14,
344
+ },
322
345
  // 4 — The gate in CI
323
346
  {
324
347
  id: "existing-ci",
@@ -1 +1 @@
1
- {"version":3,"file":"journey-storyboard.js","sourceRoot":"","sources":["../../../scripts/docs/journey-storyboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journey-storyboard.js","sourceRoot":"","sources":["../../../scripts/docs/journey-storyboard.ts"],"names":[],"mappings":"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"}
@@ -20,28 +20,28 @@ exports.navEntry = navEntry;
20
20
  exports.neighbours = neighbours;
21
21
  exports.journeyOf = journeyOf;
22
22
  /**
23
- * Simplification plan, phase 6: the places a reader goes, in the order they
24
- * need them — start, every day, the gate, existing code, reference,
25
- * extensions — and everything else under "Advanced". Every shipped document
26
- * is still in exactly one section.
23
+ * The places a reader goes, in the order they need them: start, where the
24
+ * work comes from, every day, the gate, existing code, reference, extensions;
25
+ * then forja, a companion tool, and everything else under "Advanced". Every
26
+ * shipped document is still in exactly one section.
27
27
  */
28
28
  exports.NAV = [
29
29
  {
30
30
  title: "Start",
31
31
  icon: "rocket",
32
- summary: "Two journeys of five phases — from scratch, or on code you already have — every output recorded from the CLI.",
32
+ summary: "Install it, learn the ideas behind it, and follow one of two journeys of five short steps — a new project, or code you already have.",
33
33
  entries: [
34
34
  {
35
35
  slug: "getting-started",
36
36
  group: "Begin",
37
- label: "Pick your path",
38
- blurb: "Starting from scratch, or bringing code you already have? Both journeys at a glance.",
37
+ label: "Getting started",
38
+ blurb: "Install it, choose where you start and where the work comes from, then the four verbs.",
39
39
  },
40
40
  {
41
- slug: "quickstart",
41
+ slug: "concepts",
42
42
  group: "Begin",
43
- label: "You cloned a spec-driven repo",
44
- blurb: "Someone handed you a spec-driven repository. Start here instead.",
43
+ label: "Concepts",
44
+ blurb: "The six ideas behind every command, and the vocabulary: change, delta, draft, gate, matrix.",
45
45
  },
46
46
  {
47
47
  slug: "start/scratch-1-install",
@@ -51,19 +51,13 @@ exports.NAV = [
51
51
  label: "Install and set up",
52
52
  blurb: "Create the project with your own tools, set Specgate up, run the gate once.",
53
53
  },
54
- {
55
- slug: "start/write-the-brief",
56
- group: "From scratch",
57
- label: "Write the brief",
58
- blurb: "Your plan as docs/brief.md, the four fields on top — or let your agent propose them.",
59
- },
60
54
  {
61
55
  slug: "start/scratch-2-specify",
62
56
  group: "From scratch",
63
57
  step: 2,
64
58
  time: "20–60 min a module",
65
59
  label: "Specify",
66
- blurb: "The brief becomes a draft per module, checked by `draft --check`, then archived.",
60
+ blurb: "The brief becomes a draft change per module, checked against the brief, then reviewed by a person.",
67
61
  },
68
62
  {
69
63
  slug: "start/scratch-3-build",
@@ -79,7 +73,7 @@ exports.NAV = [
79
73
  step: 4,
80
74
  time: "2 min",
81
75
  label: "Prove",
82
- blurb: "`done` closes it only through the gate; `check` and `report` show where it stands.",
76
+ blurb: "`apply` marks a requirement Implemented only through the gate; `check` and `report` show where it stands.",
83
77
  },
84
78
  {
85
79
  slug: "start/scratch-5-every-day",
@@ -87,7 +81,7 @@ exports.NAV = [
87
81
  step: 5,
88
82
  time: "10 min, once",
89
83
  label: "Every day",
90
- blurb: "The gate in CI, the five-command loop, and Gato.",
84
+ blurb: "The gate in CI, and the four verbs every day.",
91
85
  },
92
86
  {
93
87
  slug: "start/existing-1-adopt",
@@ -111,7 +105,7 @@ exports.NAV = [
111
105
  step: 3,
112
106
  time: "5 min",
113
107
  label: "First requirement",
114
- blurb: "The test you already have names it; `done` closes it.",
108
+ blurb: "The test you already have names it; `apply` marks it Implemented.",
115
109
  },
116
110
  {
117
111
  slug: "start/existing-4-ci",
@@ -128,73 +122,38 @@ exports.NAV = [
128
122
  label: "Every day",
129
123
  blurb: "One behaviour per bug fix, one module at a time.",
130
124
  },
125
+ {
126
+ slug: "quickstart",
127
+ group: "Someone else set it up",
128
+ label: "Joining a project",
129
+ blurb: "The repository already uses Specgate: see where it stands and deliver your first requirement.",
130
+ },
131
131
  ],
132
132
  },
133
133
  {
134
- // ADR-0033: forja's documentation lives here, one site for both tools.
135
- title: "New project (forja)",
136
- icon: "package",
137
- summary: "Start from an empty folder with a whole application: the architecture in place, sign-in working, Specgate adopted.",
134
+ title: "Where work comes from",
135
+ icon: "compass",
136
+ summary: "Three entries into the same lifecycle: a change you describe, a client brief, or a Jira ticket.",
138
137
  entries: [
139
138
  {
140
- slug: "forja/getting-started",
141
- group: "Generate",
142
- label: "Getting started",
143
- blurb: "Generate a Next.js + Expo monorepo in TypeScript, with the hexagon in place.",
144
- },
145
- {
146
- slug: "forja/java",
147
- group: "Generate",
148
- label: "Java backends",
149
- blurb: "A Spring Boot or Quarkus API, a Next.js web app and Keycloak sign-in.",
150
- },
151
- {
152
- slug: "forja/daily-use",
153
- group: "Grow it",
154
- label: "Daily use",
155
- blurb: "Add use cases, entities and ports where the architecture expects them; check the setup.",
156
- },
157
- {
158
- slug: "forja/specgate",
159
- group: "Grow it",
160
- label: "With Specgate",
161
- blurb: "How a generated project adopts Specgate, and how a use case names its requirement.",
162
- },
163
- {
164
- slug: "forja/e2e",
165
- group: "Grow it",
166
- label: "End-to-end tests",
167
- blurb: "Playwright drives the sign-in flow in a real browser.",
168
- },
169
- {
170
- slug: "forja/cli",
171
- group: "Reference",
172
- label: "forja command line",
173
- blurb: "init, add, doctor: every flag and the values it accepts.",
174
- },
175
- {
176
- slug: "forja/config",
177
- group: "Reference",
178
- label: "forja.config.json",
179
- blurb: "Every field, its values and its defaults.",
139
+ slug: "start/write-the-brief",
140
+ label: "Write the brief",
141
+ blurb: "Your plan as docs/brief.md, the four fields on top — or let your agent propose them.",
180
142
  },
181
143
  {
182
- slug: "forja/generated-project",
183
- group: "Reference",
184
- label: "What it generates",
185
- blurb: "Recipe by recipe: the folders, the files, the versions.",
144
+ slug: "from-a-brief",
145
+ label: "From a client brief",
146
+ blurb: "A brief to a reviewed draft: assumptions, open questions and the draft checklist.",
186
147
  },
187
148
  {
188
- slug: "forja/architecture",
189
- group: "Reference",
190
- label: "The generated architecture",
191
- blurb: "The hexagon forja generates and the rules that keep it.",
149
+ slug: "from-a-ticket",
150
+ label: "From a Jira ticket",
151
+ blurb: "A story with acceptance criteria to a change checked against it, a branch and a pull request.",
192
152
  },
193
153
  {
194
- slug: "forja/contributing",
195
- group: "Reference",
196
- label: "Contributing to forja",
197
- blurb: "Develop forja, write a recipe, verify what it generates.",
154
+ slug: "existing-project-with-jira",
155
+ label: "An existing codebase, with Jira",
156
+ blurb: "Adopt a years-old codebase whose work arrives as Jira tickets: the spec grows ticket by ticket.",
198
157
  },
199
158
  ],
200
159
  },
@@ -208,70 +167,23 @@ exports.NAV = [
208
167
  label: "Your team's first PR",
209
168
  blurb: "What the author writes, what the reviewer reads, and what to do when check fails.",
210
169
  },
211
- {
212
- slug: "writing-specs",
213
- label: "Writing specs",
214
- blurb: "Requirements, scenarios and the traceability matrix.",
215
- },
216
170
  {
217
171
  slug: "reviewing-changes",
218
- label: "Reviewing changes",
172
+ label: "Change a shipped requirement",
219
173
  blurb: "Propose, review and archive a change to specs that already shipped.",
220
174
  },
221
175
  {
222
- slug: "from-a-brief",
223
- label: "From a client brief",
224
- blurb: "A brief to a reviewed draft: assumptions, open questions and the draft checklist.",
176
+ slug: "writing-specs",
177
+ label: "Writing specs",
178
+ blurb: "Requirements, scenarios and the traceability matrix.",
225
179
  },
226
180
  {
227
181
  slug: "new-project",
228
- label: "A new project, step by step",
182
+ label: "A new product, step by step",
229
183
  blurb: "The twelve steps six pilots took, from a client's brief to a running product.",
230
184
  },
231
185
  ],
232
186
  },
233
- {
234
- title: "Proven on real products",
235
- icon: "check",
236
- summary: "Six products built from real client briefs — what worked, and what Specgate got wrong.",
237
- entries: [
238
- {
239
- slug: "projects/index",
240
- label: "All six, compared",
241
- blurb: "Brief, stack, requirements and tests for each pilot, side by side.",
242
- },
243
- {
244
- slug: "projects/rebar-crew",
245
- label: "Rebar Crew — field app",
246
- blurb: "Expo + Next.js: 47 of 47, after a first round that was done and unusable.",
247
- },
248
- {
249
- slug: "projects/bookings",
250
- label: "Bookings — appointments",
251
- blurb: "Next.js from a detailed brief: 38 of 38 in five cycles.",
252
- },
253
- {
254
- slug: "projects/credit-shop",
255
- label: "Credit shop — e-commerce",
256
- blurb: "A five-line brief became 24 requirements, nearly every value an assumption.",
257
- },
258
- {
259
- slug: "projects/fincore",
260
- label: "FinCore — core banking",
261
- blurb: "Spring Boot: 59 of 60, one legal question left to the client.",
262
- },
263
- {
264
- slug: "projects/eventtech",
265
- label: "EventTech — event operations",
266
- blurb: "Quarkus with event sourcing and real time: 38 of 38.",
267
- },
268
- {
269
- slug: "projects/healthtech",
270
- label: "HealthTech — clinical cases",
271
- blurb: "Quarkus in a regulated domain: 23 of 24, no clinical rule invented.",
272
- },
273
- ],
274
- },
275
187
  {
276
188
  title: "The gate in CI",
277
189
  icon: "server",
@@ -316,10 +228,52 @@ exports.NAV = [
316
228
  },
317
229
  ],
318
230
  },
231
+ {
232
+ title: "Proven on real products",
233
+ icon: "check",
234
+ summary: "Six products built from real client briefs — what worked, and what Specgate got wrong.",
235
+ entries: [
236
+ {
237
+ slug: "projects/index",
238
+ label: "All six, compared",
239
+ blurb: "Brief, stack, requirements and tests for each pilot, side by side.",
240
+ },
241
+ {
242
+ slug: "projects/rebar-crew",
243
+ label: "Rebar Crew — field app",
244
+ blurb: "Expo + Next.js: 47 of 47, after a first round that was done and unusable.",
245
+ },
246
+ {
247
+ slug: "projects/bookings",
248
+ label: "Bookings — appointments",
249
+ blurb: "Next.js from a detailed brief: 38 of 38 in five cycles.",
250
+ },
251
+ {
252
+ slug: "projects/credit-shop",
253
+ label: "Credit shop — e-commerce",
254
+ blurb: "A five-line brief became 24 requirements, nearly every value an assumption.",
255
+ },
256
+ {
257
+ slug: "projects/fincore",
258
+ label: "FinCore — core banking",
259
+ blurb: "Spring Boot: 59 of 60, one legal question left to the client.",
260
+ },
261
+ {
262
+ slug: "projects/eventtech",
263
+ label: "EventTech — event operations",
264
+ blurb: "Quarkus with event sourcing and real time: 38 of 38.",
265
+ },
266
+ {
267
+ slug: "projects/healthtech",
268
+ label: "HealthTech — clinical cases",
269
+ blurb: "Quarkus in a regulated domain: 23 of 24, no clinical rule invented.",
270
+ },
271
+ ],
272
+ },
319
273
  {
320
274
  title: "Reference",
321
275
  icon: "book",
322
- summary: "Every command, the ideas behind them, and what to do when something fails.",
276
+ summary: "Every command, a router to the right guide, and what to do when something fails.",
323
277
  entries: [
324
278
  {
325
279
  slug: "commands",
@@ -327,9 +281,9 @@ exports.NAV = [
327
281
  blurb: "Every command, its flags and its JSON shape.",
328
282
  },
329
283
  {
330
- slug: "concepts",
331
- label: "How Specgate thinks",
332
- blurb: "Six ideas — requirement, scenario, mention, generated matrix, status, one gate — that explain every command.",
284
+ slug: "how-to",
285
+ label: "How-to guides",
286
+ blurb: "I want to… — the guide for each task.",
333
287
  },
334
288
  {
335
289
  slug: "faq",
@@ -361,7 +315,7 @@ exports.NAV = [
361
315
  {
362
316
  slug: "harness",
363
317
  label: "The harness",
364
- blurb: "Unattended delivery: plan → agent → gate → done, one worktree per requirement.",
318
+ blurb: "Unattended delivery: plan → agent → gate → apply, one worktree per requirement.",
365
319
  },
366
320
  {
367
321
  slug: "harness-report",
@@ -385,6 +339,74 @@ exports.NAV = [
385
339
  },
386
340
  ],
387
341
  },
342
+ {
343
+ // ADR-0033: forja's documentation lives here, one site for both tools.
344
+ title: "New project (forja)",
345
+ icon: "package",
346
+ summary: "forja, a companion tool, generates a whole application with the architecture in place, sign-in working and Specgate adopted.",
347
+ entries: [
348
+ {
349
+ slug: "forja/getting-started",
350
+ group: "Generate",
351
+ label: "Getting started",
352
+ blurb: "Generate a Next.js + Expo monorepo in TypeScript, with the hexagon in place.",
353
+ },
354
+ {
355
+ slug: "forja/java",
356
+ group: "Generate",
357
+ label: "Java backends",
358
+ blurb: "A Spring Boot or Quarkus API, a Next.js web app and Keycloak sign-in.",
359
+ },
360
+ {
361
+ slug: "forja/daily-use",
362
+ group: "Grow it",
363
+ label: "Daily use",
364
+ blurb: "Add use cases, entities and ports where the architecture expects them; check the setup.",
365
+ },
366
+ {
367
+ slug: "forja/specgate",
368
+ group: "Grow it",
369
+ label: "With Specgate",
370
+ blurb: "How a generated project adopts Specgate, and how a use case names its requirement.",
371
+ },
372
+ {
373
+ slug: "forja/e2e",
374
+ group: "Grow it",
375
+ label: "End-to-end tests",
376
+ blurb: "Playwright drives the sign-in flow in a real browser.",
377
+ },
378
+ {
379
+ slug: "forja/cli",
380
+ group: "Reference",
381
+ label: "forja command line",
382
+ blurb: "init, add, doctor: every flag and the values it accepts.",
383
+ },
384
+ {
385
+ slug: "forja/config",
386
+ group: "Reference",
387
+ label: "forja.config.json",
388
+ blurb: "Every field, its values and its defaults.",
389
+ },
390
+ {
391
+ slug: "forja/generated-project",
392
+ group: "Reference",
393
+ label: "What it generates",
394
+ blurb: "Recipe by recipe: the folders, the files, the versions.",
395
+ },
396
+ {
397
+ slug: "forja/architecture",
398
+ group: "Reference",
399
+ label: "The generated architecture",
400
+ blurb: "The hexagon forja generates and the rules that keep it.",
401
+ },
402
+ {
403
+ slug: "forja/contributing",
404
+ group: "Reference",
405
+ label: "Contributing to forja",
406
+ blurb: "Develop forja, write a recipe, verify what it generates.",
407
+ },
408
+ ],
409
+ },
388
410
  {
389
411
  title: "Advanced",
390
412
  icon: "book",
@@ -393,18 +415,13 @@ exports.NAV = [
393
415
  {
394
416
  slug: "tutorial",
395
417
  label: "Tutorial: Smart Parking",
396
- blurb: "A complete worked example, from a blank folder to a delivered requirement.",
418
+ blurb: "A complete worked example on a domain pack, from a blank folder to a delivered requirement.",
397
419
  },
398
420
  {
399
421
  slug: "agent-setup",
400
422
  label: "Choosing your agent",
401
423
  blurb: "Claude, Aider, Cursor or a three-line wrapper — and the two things that bite.",
402
424
  },
403
- {
404
- slug: "how-to",
405
- label: "How-to guides",
406
- blurb: "Short answers to specific questions.",
407
- },
408
425
  {
409
426
  slug: "supply-chain",
410
427
  label: "Supply chain",