@rsaglobaltech/specgate 1.0.0-rc.1 → 1.0.0-rc.3

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 (40) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/packages/core/src/domain/Approvals.js +19 -4
  3. package/dist/packages/core/src/domain/Approvals.js.map +1 -1
  4. package/dist/packages/core/src/domain/ChangeLayers.js +6 -2
  5. package/dist/packages/core/src/domain/ChangeLayers.js.map +1 -1
  6. package/dist/packages/core/src/domain/WorkspaceStory.js +259 -0
  7. package/dist/packages/core/src/domain/WorkspaceStory.js.map +1 -0
  8. package/dist/scripts/change/instructions.js +8 -0
  9. package/dist/scripts/change/instructions.js.map +1 -1
  10. package/dist/scripts/cli/commands/change/ChangeCommand.js +62 -3
  11. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  12. package/dist/scripts/cli/commands/harness/RunCommand.js +5 -4
  13. package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
  14. package/dist/scripts/cli/commands/project/InitProjectCommand.js +9 -14
  15. package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
  16. package/dist/scripts/cli/commands/spec/DoneCommand.js +22 -0
  17. package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
  18. package/dist/scripts/cli/commands/spec/StatusCommand.js +73 -0
  19. package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
  20. package/dist/scripts/cli/commands/spec/StudioCommand.js +6 -6
  21. package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -1
  22. package/dist/scripts/cli/commands/workspace/WorkspaceCommand.js +252 -42
  23. package/dist/scripts/cli/commands/workspace/WorkspaceCommand.js.map +1 -1
  24. package/dist/scripts/draft/confined-agent.js +2 -1
  25. package/dist/scripts/draft/confined-agent.js.map +1 -1
  26. package/dist/scripts/harness/prompt.js +50 -1
  27. package/dist/scripts/harness/prompt.js.map +1 -1
  28. package/dist/scripts/lib/story-part.js +73 -0
  29. package/dist/scripts/lib/story-part.js.map +1 -0
  30. package/dist/scripts/lib/surface.js +1 -1
  31. package/dist/scripts/lib/surface.js.map +1 -1
  32. package/dist/scripts/lib/temp-file.js +72 -0
  33. package/dist/scripts/lib/temp-file.js.map +1 -0
  34. package/dist/scripts/lib/workspace-draft.js +224 -0
  35. package/dist/scripts/lib/workspace-draft.js.map +1 -0
  36. package/dist/scripts/lib/workspace-live.js +9 -26
  37. package/dist/scripts/lib/workspace-live.js.map +1 -1
  38. package/dist/scripts/lib/workspace.js +325 -6
  39. package/dist/scripts/lib/workspace.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.storyRel = exports.WORKSPACE_BRIEF = void 0;
37
+ exports.workspaceBrief = workspaceBrief;
38
+ exports.readWorkspaceStories = readWorkspaceStories;
39
+ exports.scaffoldStory = scaffoldStory;
40
+ exports.storyPrompt = storyPrompt;
41
+ exports.draftStoryWithAgent = draftStoryWithAgent;
42
+ exports.storiesPrompt = storiesPrompt;
43
+ exports.proposeStoriesWithAgent = proposeStoriesWithAgent;
44
+ const fs = __importStar(require("node:fs"));
45
+ const path = __importStar(require("node:path"));
46
+ const Workspace_1 = require("../../packages/core/src/domain/Workspace");
47
+ const WorkspaceStory_1 = require("../../packages/core/src/domain/WorkspaceStory");
48
+ const confined_agent_1 = require("../draft/confined-agent");
49
+ /**
50
+ * The client's brief in a workspace repository, and the stories it holds
51
+ * (REQ-339..340). A workspace brief names stories, as a project's names
52
+ * modules: each story is split across the repositories it touches.
53
+ */
54
+ exports.WORKSPACE_BRIEF = path.join("docs", "brief.md");
55
+ /**
56
+ * `docs/brief.md` of the workspace, made from a root `brief.md` the first
57
+ * time — the client's text kept as it is, below a front matter to fill.
58
+ */
59
+ function workspaceBrief(ws) {
60
+ const file = path.join(ws.dir, exports.WORKSPACE_BRIEF);
61
+ let created = false;
62
+ if (!fs.existsSync(file)) {
63
+ const root = path.join(ws.dir, "brief.md");
64
+ const body = fs.existsSync(root)
65
+ ? fs.readFileSync(root, "utf8").replace(/\r\n/g, "\n")
66
+ : "# Brief\n\nPaste the client's brief here as it is.\n";
67
+ fs.mkdirSync(path.dirname(file), { recursive: true });
68
+ fs.writeFileSync(file, (0, WorkspaceStory_1.workspaceBriefTemplate)(ws.config.name, ws.config.repos.map((r) => r.name)) + body, "utf8");
69
+ created = true;
70
+ }
71
+ const text = fs.readFileSync(file, "utf8");
72
+ return {
73
+ file: exports.WORKSPACE_BRIEF.split(path.sep).join("/"),
74
+ created,
75
+ stories: (0, WorkspaceStory_1.briefStories)((0, WorkspaceStory_1.briefFrontMatter)(text)),
76
+ };
77
+ }
78
+ /** The stories the workspace brief names, without writing anything. */
79
+ function readWorkspaceStories(ws) {
80
+ const file = path.join(ws.dir, exports.WORKSPACE_BRIEF);
81
+ if (!fs.existsSync(file))
82
+ return [];
83
+ return (0, WorkspaceStory_1.briefStories)((0, WorkspaceStory_1.briefFrontMatter)(fs.readFileSync(file, "utf8")));
84
+ }
85
+ /** The story folder, relative to the workspace repository. */
86
+ const storyRel = (id) => `${Workspace_1.STORIES_DIR}/${id}`;
87
+ exports.storyRel = storyRel;
88
+ /** The story's folder with its `story.yaml` (no parts yet) and a `story.md` to fill. */
89
+ function scaffoldStory(ws, story) {
90
+ const dir = path.join(ws.dir, Workspace_1.STORIES_DIR, story.id);
91
+ fs.mkdirSync(dir, { recursive: true });
92
+ const written = [];
93
+ const yaml = path.join(dir, "story.yaml");
94
+ if (!fs.existsSync(yaml)) {
95
+ fs.writeFileSync(yaml, (0, Workspace_1.renderStory)({ id: story.id, title: story.title, subchanges: [] }), "utf8");
96
+ written.push(`${(0, exports.storyRel)(story.id)}/story.yaml`);
97
+ }
98
+ const md = path.join(dir, "story.md");
99
+ if (!fs.existsSync(md)) {
100
+ fs.writeFileSync(md, (0, WorkspaceStory_1.storyTemplate)(story.title, story.repos), "utf8");
101
+ written.push(`${(0, exports.storyRel)(story.id)}/story.md`);
102
+ }
103
+ // REQ-363: the client's questions, kept apart from the story.
104
+ const questions = path.join(dir, "questions.md");
105
+ if (!fs.existsSync(questions)) {
106
+ fs.writeFileSync(questions, (0, WorkspaceStory_1.storyQuestionsTemplate)(story.id), "utf8");
107
+ written.push(`${(0, exports.storyRel)(story.id)}/questions.md`);
108
+ }
109
+ return written;
110
+ }
111
+ /** What the agent drafting a story is told: the brief, the story, and the format. */
112
+ function storyPrompt(ws, story) {
113
+ const brief = (0, WorkspaceStory_1.briefText)(fs.readFileSync(path.join(ws.dir, exports.WORKSPACE_BRIEF), "utf8"));
114
+ const file = `${(0, exports.storyRel)(story.id)}/story.md`;
115
+ return [
116
+ `# Draft the story ${story.id} of the workspace ${ws.config.name}`,
117
+ "",
118
+ `Write \`${file}\`: the business story "${story.title}", which the repositories ${story.repos
119
+ .map((r) => `\`${r}\``)
120
+ .join(", ")} will each build a part of. Write nothing else.`,
121
+ "",
122
+ "## The rules",
123
+ "",
124
+ "- **Intent:** who needs what, and why, in the client's words — quote the brief where it says it. No technology: each repository's design says how.",
125
+ "- **Acceptance criteria:** one line each, `- AC-1: …`, `- AC-2: …`, each a thing a person can see or check. Only what the brief supports; a number the brief does not give is a question, not a guess.",
126
+ `- **Repositories:** each repository with the criteria it answers, one line each as \`- fleet: AC-1, AC-2\` — from what each repository is (${story.repos
127
+ .map((r) => `\`${r}\` ${roleOf(ws, r)}`)
128
+ .join(", ")}); a criterion two repositories build, both name it (REQ-361).`,
129
+ `- **Questions:** what only the client can decide goes in \`${(0, exports.storyRel)(story.id)}/questions.md\`, one table row each (\`| Q1 | <question> | AC-n | |\`), not in story.md. The story is not split while one is open (REQ-363).`,
130
+ "- Replace the `<!-- … -->` hints with your text; keep the file's headings: `## Intent`, `## Acceptance criteria`, `## Repositories`.",
131
+ "",
132
+ `## The file as it is now: ${file}`,
133
+ "",
134
+ "```markdown",
135
+ fs.readFileSync(path.join(ws.dir, file), "utf8").trimEnd(),
136
+ "```",
137
+ "",
138
+ "## The client's brief",
139
+ "",
140
+ brief.trimEnd(),
141
+ "",
142
+ ].join("\n");
143
+ }
144
+ /** An agent drafts the story, confined to its folder (REQ-340). */
145
+ function draftStoryWithAgent(ws, story, command, showOutput) {
146
+ const { command: cmd, added } = (0, confined_agent_1.withWritePermission)(command);
147
+ const prefix = `${(0, exports.storyRel)(story.id)}/`;
148
+ const run = (0, confined_agent_1.runConfinedAgent)({
149
+ projectDir: ws.dir,
150
+ changeId: story.id,
151
+ allowed: (rel) => rel.split(path.sep).join("/").startsWith(prefix),
152
+ command: cmd,
153
+ prompt: storyPrompt(ws, story),
154
+ showOutput,
155
+ });
156
+ // REQ-364: the form's hints go once the agent has written below them.
157
+ const md = path.join(ws.dir, Workspace_1.STORIES_DIR, story.id, "story.md");
158
+ if (run.ok && fs.existsSync(md)) {
159
+ const text = fs.readFileSync(md, "utf8");
160
+ const clean = (0, WorkspaceStory_1.withoutFilledHints)(text);
161
+ if (clean !== text.replace(/\r\n/g, "\n"))
162
+ fs.writeFileSync(md, clean, "utf8");
163
+ }
164
+ return { ...run, permissionAdded: added };
165
+ }
166
+ function roleOf(ws, repo) {
167
+ const r = ws.config.repos.find((x) => x.name === repo);
168
+ return r ? `(${r.role})` : "";
169
+ }
170
+ /** What the agent proposing the brief's stories is told (REQ-360). */
171
+ function storiesPrompt(ws) {
172
+ const text = fs.readFileSync(path.join(ws.dir, exports.WORKSPACE_BRIEF), "utf8");
173
+ return [
174
+ `# Propose the stories of the workspace ${ws.config.name}'s brief`,
175
+ "",
176
+ `Fill \`stories:\` in the front matter at the top of \`${exports.WORKSPACE_BRIEF.split(path.sep).join("/")}\`. Change nothing below the front matter: it is the client's text, and it is put back if it changes. Write no other file.`,
177
+ "",
178
+ "## The rules",
179
+ "",
180
+ "- One line per business story the brief asks for: ` - { id: follow-shipment, title: <the story in the client's words>, repos: [fleet, web] }`.",
181
+ `- \`repos\` names the repositories that build a part of it, from these: ${ws.config.repos
182
+ .map((r) => `\`${r.name}\` (${r.role})`)
183
+ .join(", ")}.`,
184
+ "- In the brief's order; only what the brief asks for. When unsure of a story or of its repositories, still propose it, with a `# check: …` comment on the line above saying what is uncertain.",
185
+ "",
186
+ "## The brief as it is now",
187
+ "",
188
+ "```markdown",
189
+ text.trimEnd(),
190
+ "```",
191
+ "",
192
+ ].join("\n");
193
+ }
194
+ /**
195
+ * REQ-360: an agent fills the brief's `stories:`, allowed to write only the
196
+ * brief; the client's text below the front matter is put back if it moved.
197
+ */
198
+ function proposeStoriesWithAgent(ws, command, showOutput) {
199
+ const { command: cmd, added } = (0, confined_agent_1.withWritePermission)(command);
200
+ const file = path.join(ws.dir, exports.WORKSPACE_BRIEF);
201
+ const before = fs.readFileSync(file, "utf8").replace(/\r\n/g, "\n");
202
+ const rel = exports.WORKSPACE_BRIEF.split(path.sep).join("/");
203
+ const run = (0, confined_agent_1.runConfinedAgent)({
204
+ projectDir: ws.dir,
205
+ changeId: "stories",
206
+ allowed: (r) => r.split(path.sep).join("/") === rel,
207
+ command: cmd,
208
+ prompt: storiesPrompt(ws),
209
+ showOutput,
210
+ });
211
+ let textRestored = false;
212
+ if (fs.existsSync(file)) {
213
+ const after = fs.readFileSync(file, "utf8").replace(/\r\n/g, "\n");
214
+ if ((0, WorkspaceStory_1.briefText)(after) !== (0, WorkspaceStory_1.briefText)(before)) {
215
+ const front = /^---\n[\s\S]*?\n---[ \t]*\n/.exec(after);
216
+ const fm = front ? front[0] : (/^---\n[\s\S]*?\n---[ \t]*\n/.exec(before) || [""])[0];
217
+ const body = before.slice((/^---\n[\s\S]*?\n---[ \t]*\n/.exec(before) || [""])[0].length);
218
+ fs.writeFileSync(file, fm + body, "utf8");
219
+ textRestored = true;
220
+ }
221
+ }
222
+ return { ...run, permissionAdded: added, textRestored };
223
+ }
224
+ //# sourceMappingURL=workspace-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-draft.js","sourceRoot":"","sources":["../../../scripts/lib/workspace-draft.ts"],"names":[],"mappings":"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"}
@@ -38,35 +38,17 @@ exports.readWorkspaceLive = readWorkspaceLive;
38
38
  exports.workspaceLiveSignature = workspaceLiveSignature;
39
39
  const fs = __importStar(require("node:fs"));
40
40
  const path = __importStar(require("node:path"));
41
- const ChangeWorkspace_1 = require("../../packages/core/src/infrastructure/ChangeWorkspace");
42
- const SpecParser_1 = require("../../packages/core/src/domain/SpecParser");
43
41
  const Workspace_1 = require("../../packages/core/src/domain/Workspace");
44
42
  const live_model_1 = require("./live-model");
45
43
  const in_flight_1 = require("./in-flight");
46
44
  const workspace_1 = require("./workspace");
47
- /** The requirements a sub-change's delta adds or modifies, with their dependencies and scenarios. */
45
+ /** The requirements a sub-change's delta adds or modifies, open or archived, with their dependencies and scenarios. */
48
46
  function partRequirements(memberDir, change) {
49
- const out = [];
50
- for (const d of (0, ChangeWorkspace_1.listDeltas)(memberDir, change)) {
51
- let parsed;
52
- try {
53
- parsed = (0, SpecParser_1.parseDelta)(fs.readFileSync(d.file, "utf8"));
54
- }
55
- catch {
56
- continue;
57
- }
58
- for (const r of [...(parsed.added || []), ...(parsed.modified || [])]) {
59
- if (!r.id)
60
- continue;
61
- const raw = String((r.trace || {}).depends || "");
62
- out.push({
63
- id: r.id.toUpperCase(),
64
- depends: raw.split(/[,;\s]+/).filter(Boolean),
65
- scenarios: r.scenarios.map((s) => s.id || "").filter(Boolean),
66
- });
67
- }
68
- }
69
- return out;
47
+ return (0, workspace_1.changeRequirements)(memberDir, change).map(({ id, depends, scenarios }) => ({
48
+ id,
49
+ depends,
50
+ scenarios,
51
+ }));
70
52
  }
71
53
  /** Minutes the member's ledger recorded, for the requirements `only` names (all when absent). */
72
54
  function ledgerMinutes(memberDir, only) {
@@ -162,12 +144,13 @@ function readWorkspaceLive(ws) {
162
144
  const dir = ws.dirs[sc.repo];
163
145
  const exists = !!dir && fs.existsSync(dir);
164
146
  const base = exists ? (0, workspace_1.subChangeState)(dir, sc.change) : "missing";
165
- const reqs = exists && base === "open" ? partRequirements(dir, sc.change) : [];
147
+ // REQ-347: an archived part's requirements still count in the story's cost.
148
+ const reqs = exists && base !== "missing" ? partRequirements(dir, sc.change) : [];
166
149
  const ids = new Set(reqs.map((r) => r.id));
167
150
  const live = lives.get(sc.repo);
168
151
  const seen = live ? live.requirements.filter((r) => ids.has(r.req)) : [];
169
152
  const blockedBy = [
170
- ...new Set(reqs.flatMap((r) => r.depends.filter((d) => {
153
+ ...new Set((base === "open" ? reqs : []).flatMap((r) => r.depends.filter((d) => {
171
154
  const q = (0, Workspace_1.splitQualified)(d);
172
155
  return !!q && !in_flight_1.DELIVERED.includes(statusOf(q.repo, q.id));
173
156
  }))),
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-live.js","sourceRoot":"","sources":["../../../scripts/lib/workspace-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-live.js","sourceRoot":"","sources":["../../../scripts/lib/workspace-live.ts"],"names":[],"mappings":"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"}