pi-openspec 1.0.0 → 1.1.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EACR,YAAY,EAEf,MAAM,iCAAiC,CAAA;AA8mBxC,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAgIxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EACR,YAAY,EAEf,MAAM,iCAAiC,CAAA;AAouBxC,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAgIxC"}
package/dist/index.js CHANGED
@@ -24,8 +24,11 @@ import { execSync } from "node:child_process";
24
24
  // ───────────────────────────────────────────────────────────────────
25
25
  // Constants
26
26
  // ───────────────────────────────────────────────────────────────────
27
- // Matches: NNNNN-YYYY-MM-DD-slug-name
27
+ // Legacy: matches NNNNN-YYYY-MM-DD-slug-name dir names (kept for
28
+ // backward compat with any dirs that already use this format)
28
29
  const NAMED_RE = /^(\d{5})-(\d{4}-\d{2}-\d{2})-(.+)$/;
30
+ // Matches "sequence: <number>" in .openspec.yaml metadata
31
+ const SEQ_RE = /^sequence:\s*(\d+)$/m;
29
32
  const ARTIFACT_COLORS = {
30
33
  done: "✅",
31
34
  ready: "🔵",
@@ -52,6 +55,42 @@ function toSlug(name) {
52
55
  .replace(/-+/g, "-")
53
56
  .replace(/^-|-$/g, "");
54
57
  }
58
+ /**
59
+ * Read the sequence number from a change's .openspec.yaml.
60
+ * Returns 0 if no sequence field exists.
61
+ */
62
+ function readSequence(changeDirPath) {
63
+ const metaPath = path.join(changeDirPath, ".openspec.yaml");
64
+ try {
65
+ const content = fs.readFileSync(metaPath, "utf8");
66
+ const m = SEQ_RE.exec(content);
67
+ return m ? parseInt(m[1], 10) : 0;
68
+ }
69
+ catch {
70
+ return 0;
71
+ }
72
+ }
73
+ /**
74
+ * Write a sequence number into a change's .openspec.yaml.
75
+ * Appends "sequence: N" if not present, or updates it.
76
+ */
77
+ function writeSequence(changeDirPath, seq) {
78
+ const metaPath = path.join(changeDirPath, ".openspec.yaml");
79
+ try {
80
+ let content = fs.readFileSync(metaPath, "utf8");
81
+ if (SEQ_RE.test(content)) {
82
+ content = content.replace(SEQ_RE, `sequence: ${seq}`);
83
+ }
84
+ else {
85
+ content =
86
+ content.trimEnd() + `\nsequence: ${seq}\n`;
87
+ }
88
+ fs.writeFileSync(metaPath, content);
89
+ }
90
+ catch {
91
+ // metadata file missing — skip silently
92
+ }
93
+ }
55
94
  /**
56
95
  * Scan existing change directories and return sorted list.
57
96
  * Supports both our NNNNN-date-name format and plain openspec names.
@@ -69,10 +108,19 @@ function scanChanges(cwd) {
69
108
  .sort();
70
109
  }
71
110
  /**
72
- * Extract the numeric prefix from a NNNNN-date-name directory.
73
- * Returns 0 for directories without our naming scheme.
111
+ * Extract the sequence number for a change.
112
+ * Reads from .openspec.yaml metadata first, falls back to
113
+ * NNNNN-date-slug dir name pattern for backward compat.
114
+ * Returns 0 for changes without a sequence.
74
115
  */
75
- function extractNumber(dirname) {
116
+ function extractNumber(dirname, cwd) {
117
+ // Try metadata first
118
+ if (cwd) {
119
+ const seq = readSequence(path.join(changesDir(cwd), dirname));
120
+ if (seq > 0)
121
+ return seq;
122
+ }
123
+ // Fallback: legacy NNNNN-date-slug dir name
76
124
  const m = NAMED_RE.exec(dirname);
77
125
  return m ? parseInt(m[1], 10) : 0;
78
126
  }
@@ -83,7 +131,7 @@ function nextNumber(cwd) {
83
131
  const changes = scanChanges(cwd);
84
132
  if (changes.length === 0)
85
133
  return 1;
86
- const max = Math.max(...changes.map(extractNumber));
134
+ const max = Math.max(...changes.map((c) => extractNumber(c, cwd)));
87
135
  return max + 1;
88
136
  }
89
137
  /**
@@ -98,13 +146,22 @@ function resolveChange(cwd, id) {
98
146
  if (changes.length === 0)
99
147
  return null;
100
148
  const trimmed = id.trim();
101
- // Try numeric lookup
149
+ // Try numeric lookup — check metadata sequence
102
150
  const num = parseInt(trimmed, 10);
103
151
  if (!Number.isNaN(num) && String(num) === trimmed) {
152
+ // First: check metadata sequence numbers
153
+ const dir = changesDir(cwd);
154
+ const seqMatch = changes.find((c) => {
155
+ const seq = readSequence(path.join(dir, c));
156
+ return seq === num;
157
+ });
158
+ if (seqMatch)
159
+ return seqMatch;
160
+ // Fallback: legacy NNNNN- dir name prefix
104
161
  const padded = String(num).padStart(5, "0");
105
- const match = changes.find((c) => c.startsWith(padded + "-"));
106
- if (match)
107
- return match;
162
+ const prefixMatch = changes.find((c) => c.startsWith(padded + "-"));
163
+ if (prefixMatch)
164
+ return prefixMatch;
108
165
  }
109
166
  // Exact match
110
167
  if (changes.includes(trimmed))
@@ -194,19 +251,31 @@ function formatStatus(status) {
194
251
  }
195
252
  return lines.join("\n");
196
253
  }
197
- function formatChangeList(changes, _cwd) {
254
+ function formatChangeList(changes, cwd) {
198
255
  if (changes.length === 0) {
199
- return "No active changes. Create one with `/openspec new <name>`";
256
+ return ("No active changes. " +
257
+ "Create one with `/openspec new <name>`");
200
258
  }
201
259
  const lines = [];
202
260
  lines.push("| # | Change | Tasks | Status | Modified |");
203
261
  lines.push("|---|--------|-------|--------|----------|");
204
262
  for (const c of changes) {
205
- const m = NAMED_RE.exec(c.name);
206
- const num = m ? m[1] : "—";
207
- const tasks = c.totalTasks > 0 ? `${c.completedTasks}/${c.totalTasks}` : "—";
263
+ // Try metadata sequence, then legacy dir-name prefix
264
+ const seq = readSequence(path.join(changesDir(cwd), c.name));
265
+ let num;
266
+ if (seq > 0) {
267
+ num = String(seq).padStart(5, "0");
268
+ }
269
+ else {
270
+ const m = NAMED_RE.exec(c.name);
271
+ num = m ? m[1] : "—";
272
+ }
273
+ const tasks = c.totalTasks > 0
274
+ ? `${c.completedTasks}/${c.totalTasks}`
275
+ : "—";
208
276
  const date = c.lastModified.slice(0, 10);
209
- lines.push(`| ${num} | ${c.name} | ${tasks} | ${c.status} | ${date} |`);
277
+ lines.push(`| ${num} | ${c.name} | ${tasks} ` +
278
+ `| ${c.status} | ${date} |`);
210
279
  }
211
280
  return lines.join("\n");
212
281
  }
@@ -236,19 +305,25 @@ async function handleNew(name, ctx, pi) {
236
305
  return;
237
306
  }
238
307
  const num = nextNumber(ctx.cwd);
239
- const padded = String(num).padStart(5, "0");
240
- const fullName = `${padded}-${today()}-${slug}`;
241
308
  try {
242
- run(ctx.cwd, `new change "${fullName}"`);
243
- ctx.ui.notify(`✅ Created change: ${fullName}`, "info");
309
+ // CLI requires plain kebab-case slug (rejects digit
310
+ // prefixes), so pass the slug and add the sequence
311
+ // number to .openspec.yaml metadata afterward.
312
+ run(ctx.cwd, `new change "${slug}"`);
313
+ // Write sequence number into metadata
314
+ const changeDir = path.join(changesDir(ctx.cwd), slug);
315
+ writeSequence(changeDir, num);
316
+ const padded = String(num).padStart(5, "0");
317
+ ctx.ui.notify(`✅ Created change #${padded}: ${slug}`, "info");
244
318
  // Feed the agent instructions for the first artifact
245
- pi.sendUserMessage(`New OpenSpec change **${fullName}** created.\n\n` +
319
+ pi.sendUserMessage(`New OpenSpec change **#${padded} ${slug}** ` +
320
+ `created.\n\n` +
246
321
  `The spec-driven workflow is: ` +
247
322
  `proposal → specs → design → tasks.\n\n` +
248
323
  `The first artifact to write is **proposal**. ` +
249
324
  `Run \`/openspec next ${num} proposal\` to get ` +
250
325
  `enriched instructions, or start writing ` +
251
- `\`openspec/changes/${fullName}/proposal.md\` ` +
326
+ `\`openspec/changes/${slug}/proposal.md\` ` +
252
327
  `directly.`);
253
328
  }
254
329
  catch (err) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAkC7C,sEAAsE;AACtE,YAAY;AACZ,sEAAsE;AAEtE,iEAAiE;AACjE,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,oCAAoC,CAAA;AAErD,0DAA0D;AAC1D,MAAM,MAAM,GAAG,sBAAsB,CAAA;AAErC,MAAM,eAAe,GAA2B;IAC5C,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,GAAG;CACf,CAAA;AAED,sEAAsE;AACtE,UAAU;AACV,sEAAsE;AAEtE,SAAS,UAAU,CAAC,GAAW;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,KAAK;IACV,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IACxB,OAAO,IAAI;SACN,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,aAAqB;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACtB,aAAa,EACb,gBAAgB,CACnB,CAAA;IACD,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,CAAA;IACZ,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAClB,aAAqB,EACrB,GAAW;IAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACtB,aAAa,EACb,gBAAgB,CACnB,CAAA;IACD,IAAI,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,OAAO,CACrB,MAAM,EACN,aAAa,GAAG,EAAE,CACrB,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,OAAO,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,IAAI,CAAA;QAClD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACL,wCAAwC;IAC5C,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW;IAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,OAAO,EAAE;SACJ,WAAW,CAAC,GAAG,CAAC;SAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAClC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1C,CAAC,CAAC;SACD,IAAI,EAAE,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAClB,OAAe,EACf,GAAY;IAEZ,qBAAqB;IACrB,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,GAAG,GAAG,YAAY,CACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CACtC,CAAA;QACD,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;IAC3B,CAAC;IACD,4CAA4C;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAChB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAC/C,CAAA;IACD,OAAO,GAAG,GAAG,CAAC,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,EAAU;IAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;IAEzB,+CAA+C;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;QAChD,yCAAyC;QACzC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3C,OAAO,GAAG,KAAK,GAAG,CAAA;QACtB,CAAC,CAAC,CAAA;QACF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAE7B,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CACpC,CAAA;QACD,IAAI,WAAW;YAAE,OAAO,WAAW,CAAA;IACvC,CAAC;IAED,cAAc;IACd,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAA;IAE7C,yBAAyB;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACnC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,CACxC,CAAA;IACD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAA;IAEnC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3E,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IAEzC,OAAO,IAAI,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,IAAyB;IAC7D,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5C,MAAM,GAAG,GAAG,YAAY,IAAI,GAAG,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,EAAE;YACjB,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,GAA4C,CAAA;QACtD,MAAM,IAAI,KAAK,CACX,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,yBAAyB,EAC1D,EAAE,KAAK,EAAE,GAAG,EAAE,CACjB,CAAA;IACL,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAI,GAAW,EAAE,IAAY;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAW;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,iDAAiD;IACjD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QAC9C,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;YAC5B,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;YACzB,MAAM,GAAG,IAAI,CAAA;QACjB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,IAAI,IAAI,CAAA;AACzB,CAAC;AAED,sEAAsE;AACtE,qBAAqB;AACrB,sEAAsE;AAEtE,SAAS,YAAY,CAAC,MAAoB;IACtC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAA;QAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,UAAU,IAAI,CAAC,CAAC,MAAM,MAAM,IAAI,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,gBAAgB,CACrB,OAAsB,EACtB,GAAW;IAEX,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CACH,qBAAqB;YACrB,wCAAwC,CAC3C,CAAA;IACL,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CACN,4CAA4C,CAC/C,CAAA;IACD,KAAK,CAAC,IAAI,CACN,4CAA4C,CAC/C,CAAA;IAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,qDAAqD;QACrD,MAAM,GAAG,GAAG,YAAY,CACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CACrC,CAAA;QACD,IAAI,GAAW,CAAA;QACf,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACV,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC/B,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACxB,CAAC;QACD,MAAM,KAAK,GACP,CAAC,CAAC,UAAU,GAAG,CAAC;YACZ,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,UAAU,EAAE;YACvC,CAAC,CAAC,GAAG,CAAA;QACb,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CACN,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,KAAK,GAAG;YAC9B,KAAK,CAAC,CAAC,MAAM,MAAM,IAAI,IAAI,CAClC,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,sEAAsE;AACtE,sBAAsB;AACtB,sEAAsE;AAEtE,KAAK,UAAU,SAAS,CACpB,IAAY,EACZ,GAA4B,EAC5B,EAAgB;IAEhB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,2DAA2D,EAC3D,OAAO,CACV,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,uCAAuC;QACvC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3C,EAAE,CAAC,eAAe,CACd,+CAA+C;YAC3C,4DAA4D;YAC5D,cAAc;YACd,iDAAiD;YACjD,kBAAkB,MAAM,cAAc,KAAK,EAAE,EAAE,CACtD,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,wDAAwD,EACxD,OAAO,CACV,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAE/B,IAAI,CAAC;QACD,oDAAoD;QACpD,mDAAmD;QACnD,+CAA+C;QAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,IAAI,GAAG,CAAC,CAAA;QAEpC,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACnB,IAAI,CACP,CAAA;QACD,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAE7B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3C,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,qBAAqB,MAAM,KAAK,IAAI,EAAE,EACtC,MAAM,CACT,CAAA;QAED,qDAAqD;QACrD,EAAE,CAAC,eAAe,CACd,0BAA0B,MAAM,IAAI,IAAI,KAAK;YACzC,cAAc;YACd,+BAA+B;YAC/B,wCAAwC;YACxC,+CAA+C;YAC/C,wBAAwB,GAAG,qBAAqB;YAChD,0CAA0C;YAC1C,sBAAsB,IAAI,iBAAiB;YAC3C,WAAW,CAClB,CAAA;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,8BAA8B,GAAG,EAAE,EACnC,OAAO,CACV,CAAA;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CACvB,GAAW,EACX,GAA4B;IAE5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,2DAA2D,EAC3D,OAAO,CACV,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,MAAM,UAAU,GAAG,OAAO;QACtB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,IAAI,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,WAAW,OAAO,eAAe;gBAC7B,kDAAkD,EACtD,OAAO,CACV,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,2BAA2B;gBACvB,yCAAyC,EAC7C,MAAM,CACT,CAAA;QACL,CAAC;QACD,OAAM;IACV,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAClB,GAAG,CAAC,GAAG,EACP,oBAAoB,UAAU,GAAG,CACpC,CAAA;QACD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CACrB,GAAW,EACX,GAA4B,EAC5B,EAAgB;IAEhB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,2DAA2D,EAC3D,OAAO,CACV,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAEnC,qBAAqB;IACrB,MAAM,UAAU,GAAG,MAAM;QACrB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;QAChC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,IAAI,MAAM,EAAE,CAAC;YACT,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,MAAM,cAAc,EAAE,OAAO,CAAC,CAAA;QAC3D,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,4DAA4D,EAC5D,MAAM,CACT,CAAA;QACL,CAAC;QACD,OAAM;IACV,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAQ,GAAG,YAAY,CAAA;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAClB,GAAG,CAAC,GAAG,EACP,oBAAoB,UAAU,GAAG,CACpC,CAAA;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAA;YAChE,IAAI,KAAK,EAAE,CAAC;gBACR,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAA;YACvB,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,yBAAyB,UAAU,mBAAmB;oBAClD,2BAA2B,UAAU,KAAK;oBAC1C,aAAa,EACjB,MAAM,CACT,CAAA;gBACD,OAAM;YACV,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,4BAA4B,UAAU,MAAM;oBACxC,yCAAyC,EAC7C,SAAS,CACZ,CAAA;gBACD,OAAM;YACV,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,qCAAqC;gBACjC,6CAA6C,EACjD,SAAS,CACZ,CAAA;YACD,OAAM;QACV,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAMnB,GAAG,CAAC,GAAG,EAAE,gBAAgB,QAAQ,cAAc,UAAU,GAAG,CAAC,CAAA;QAEhE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAEjE,EAAE,CAAC,eAAe,CACd,wBAAwB,QAAQ,UAAU,UAAU,MAAM;YACtD,iBAAiB,OAAO,QAAQ;YAChC,oBAAoB,MAAM,CAAC,WAAW,MAAM;YAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM;YAC5D,SAAS;YACT,uBAAuB,MAAM,CAAC,WAAW,MAAM;YAC/C,SAAS;YACT,mCAAmC,MAAM,CAAC,QAAQ,YAAY;YAC9D,2BAA2B,OAAO,eAAe;YACjD,yCAAyC;YACzC,yCAAyC,CAChD,CAAA;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,iCAAiC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CACzB,GAAW,EACX,GAA4B;IAE5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAA;QACvD,OAAM;IACV,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAE1B,IAAI,CAAC;QACD,IAAI,MAAc,CAAA;QAClB,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,OAAO,cAAc,EAAE,OAAO,CAAC,CAAA;gBACxD,OAAM;YACV,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,UAAU,iBAAiB,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;QAC3C,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CACxB,GAAW,EACX,GAA4B,EAC5B,EAAgB;IAEhB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAA;QACvD,OAAM;IACV,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,uCAAuC,EAAE,SAAS,CAAC,CAAA;QACjE,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,MAAM,cAAc,EAAE,OAAO,CAAC,CAAA;QACvD,OAAM;IACV,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,kDAAkD;QAClD,EAAE,CAAC,eAAe,CACd,sBAAsB,UAAU,SAAS;YACrC,6BAA6B;YAC7B,+BAA+B,MAAM,KAAK;YAC1C,gCAAgC;YAChC,wCAAwC;YACxC,sBAAsB,MAAM,MAAM;YAClC,mCAAmC;YACnC,yBAAyB;YACzB,4BAA4B;YAC5B,uBAAuB,MAAM,WAAW;YACxC,cAAc,CACrB,CAAA;QACD,OAAM;IACV,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,UAAU,SAAS,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,UAAU,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;IACjE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CACrB,GAAW,EACX,GAA4B;IAE5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,2DAA2D,EAC3D,OAAO,CACV,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,SAAS,CAAA;IAExC,IAAI,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC3C,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAE,MAAM,CAAC,CAAA;QACtD,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,OAAO,CAA6B,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACnE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;QACpE,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAA4B;IAClD,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,kDAAkD,EAClD,MAAM,CACT,CAAA;QACD,OAAM;IACV,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,4BAA4B,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAA4B;IACrD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACtC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAA4B;IAC1C,GAAG,CAAC,EAAE,CAAC,MAAM,CACT;QACI,oBAAoB;QACpB,EAAE;QACF,wDAAwD;QACxD,oDAAoD;QACpD,mEAAmE;QACnE,sDAAsD;QACtD,6DAA6D;QAC7D,wDAAwD;QACxD,+CAA+C;QAC/C,wDAAwD;QACxD,0DAA0D;QAC1D,EAAE;QACF,6DAA6D;KAChE,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACT,CAAA;AACL,CAAC;AAED,sEAAsE;AACtE,wBAAwB;AACxB,sEAAsE;AAEtE,MAAM,CAAC,OAAO,WAAW,EAAgB;IACrC,gEAAgE;IAChE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE;QAC3B,WAAW,EACP,8CAA8C;YAC9C,iCAAiC;QAErC,sBAAsB,EAAE,CAAC,MAAc,EAA6B,EAAE;YAClE,MAAM,IAAI,GAAG;gBACT,MAAM;gBACN,SAAS;gBACT,OAAO;gBACP,WAAW;gBACX,UAAU;gBACV,MAAM;gBACN,cAAc;gBACd,MAAM;gBACN,SAAS;aACZ,CAAA;YACD,MAAM,KAAK,GAAG,IAAI;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACT,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;aAClB,CAAC,CAAC,CAAA;YACP,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAErC,QAAQ,GAAG,EAAE,CAAC;gBACV,KAAK,KAAK;oBACN,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;gBACnC,KAAK,QAAQ;oBACT,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAClC,KAAK,MAAM;oBACP,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;gBACpC,KAAK,UAAU;oBACX,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBACpC,KAAK,SAAS;oBACV,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;gBACvC,KAAK,MAAM;oBACP,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAChC,KAAK,MAAM;oBACP,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;gBAC1B,KAAK,SAAS;oBACV,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;gBAC7B;oBACI,QAAQ,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC;QACL,CAAC;KACJ,CAAC,CAAA;IAEF,gEAAgE;IAChE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAM;QAEjC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAA6B,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACnE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAA;YACnC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,gBAAgB,KAAK,qBAAqB;oBACtC,iCAAiC,EACrC,MAAM,CACT,CAAA;YACL,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,sDAAsD;QAC1D,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,gEAAgE;IAChE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAI,KAAK,CAAC,KAA0B,CAAC,IAAI,IAAI,EAAE,CAAA;QAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAAE,OAAM;QAEnD,2BAA2B;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACjC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAElC,gCAAgC;QAChC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAClB,GAAG,CAAC,GAAG,EACP,oBAAoB,UAAU,GAAG,CACpC,CAAA;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAC7B,CAAC,MAAM,CAAA;YACR,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA;YAErC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,+BAA+B;oBAC3B,KAAK,UAAU,MAAM;oBACrB,uCAAuC,EAC3C,MAAM,CACT,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAA;gBAChE,IAAI,KAAK,EAAE,CAAC;oBACR,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,MAAM,UAAU,KAAK,IAAI,IAAI,KAAK,GAAG;wBACjC,kBAAkB;wBAClB,WAAW,KAAK,CAAC,EAAE,IAAI,EAC3B,MAAM,CACT,CAAA;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,sCAAsC;QAC1C,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
package/package.json CHANGED
@@ -1,62 +1,64 @@
1
1
  {
2
- "name": "pi-openspec",
3
- "version": "1.0.0",
4
- "description": "OpenSpec integration for pi — /openspec commands, auto-naming, and spec-driven workflow skill.",
5
- "keywords": [
6
- "openspec",
7
- "pi",
8
- "pi-package",
9
- "spec-driven",
10
- "workflow"
11
- ],
12
- "license": "MIT",
13
- "repository": {
14
- "type": "git",
15
- "url": "git+https://github.com/pankajudhas81/pi-openspec.git"
16
- },
17
- "files": [
18
- "src",
19
- "dist",
20
- "skills"
21
- ],
22
- "type": "module",
23
- "main": "dist/index.js",
24
- "module": "src/index.ts",
25
- "types": "dist/index.d.ts",
26
- "exports": {
27
- ".": {
28
- "types": "./dist/index.d.ts",
29
- "import": "./dist/index.js"
30
- }
31
- },
32
- "publishConfig": {
33
- "access": "public"
34
- },
35
- "devDependencies": {
36
- "@earendil-works/pi-coding-agent": "latest",
37
- "@earendil-works/pi-tui": "latest",
38
- "@types/node": "^25.5.0",
39
- "oxfmt": "0.41.0",
40
- "oxlint": "1.56.0",
41
- "typescript": "^5.0.0"
42
- },
43
- "peerDependencies": {
44
- "@earendil-works/pi-coding-agent": "*",
45
- "@earendil-works/pi-tui": "*"
46
- },
47
- "pi": {
48
- "extensions": [
49
- "./src/index.ts"
2
+ "name": "pi-openspec",
3
+ "version": "1.1.0",
4
+ "description": "OpenSpec integration for pi — /openspec commands, auto-naming, and spec-driven workflow skill.",
5
+ "keywords": [
6
+ "openspec",
7
+ "pi",
8
+ "pi-package",
9
+ "spec-driven",
10
+ "workflow"
11
+ ],
12
+ "license": "MIT",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/pankajudhas81/pi-openspec.git"
16
+ },
17
+ "files": [
18
+ "src",
19
+ "dist",
20
+ "skills"
50
21
  ],
51
- "skills": [
52
- "./skills"
53
- ]
54
- },
55
- "scripts": {
56
- "build": "tsc",
57
- "test": "echo \"no tests yet\"",
58
- "lint": "oxlint && oxfmt --check .",
59
- "lint:fix": "oxlint --fix . && oxfmt --write .",
60
- "format": "oxfmt --write ."
61
- }
62
- }
22
+ "type": "module",
23
+ "main": "dist/index.js",
24
+ "module": "src/index.ts",
25
+ "types": "dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js"
30
+ }
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "scripts": {
36
+ "build": "tsc",
37
+ "test": "echo \"no tests yet\"",
38
+ "lint": "oxlint && oxfmt --check .",
39
+ "lint:fix": "oxlint --fix . && oxfmt --write .",
40
+ "format": "oxfmt --write .",
41
+ "prepublishOnly": "pnpm run build"
42
+ },
43
+ "devDependencies": {
44
+ "@earendil-works/pi-coding-agent": "latest",
45
+ "@earendil-works/pi-tui": "latest",
46
+ "@types/node": "^25.5.0",
47
+ "oxfmt": "0.41.0",
48
+ "oxlint": "1.56.0",
49
+ "typescript": "^5.0.0"
50
+ },
51
+ "peerDependencies": {
52
+ "@earendil-works/pi-coding-agent": "*",
53
+ "@earendil-works/pi-tui": "*"
54
+ },
55
+ "packageManager": "pnpm@10.32.1",
56
+ "pi": {
57
+ "extensions": [
58
+ "./src/index.ts"
59
+ ],
60
+ "skills": [
61
+ "./skills"
62
+ ]
63
+ }
64
+ }
@@ -28,14 +28,15 @@ tasks.md WORK breakdown (implementable steps)
28
28
 
29
29
  ## Directory Structure
30
30
 
31
- Changes live in `openspec/changes/<name>/` where `<name>` follows the
32
- format `NNNNN-YYYY-MM-DD-slug` (auto-generated by `/openspec new`):
31
+ Changes live in `openspec/changes/<slug>/` where `<slug>` is plain
32
+ kebab-case. Sequence numbering is stored in `.openspec.yaml` metadata
33
+ (auto-assigned by `/openspec new`):
33
34
 
34
35
  ```
35
36
  openspec/
36
37
  ├── changes/
37
- │ └── 00001-2026-06-04-add-auth/
38
- │ ├── .openspec.yaml # schema + metadata (auto-created)
38
+ │ └── add-auth/
39
+ │ ├── .openspec.yaml # schema + sequence + created
39
40
  │ ├── proposal.md # artifact 1: why
40
41
  │ ├── specs/ # artifact 2: what
41
42
  │ │ ├── user-auth/
@@ -44,15 +45,25 @@ openspec/
44
45
  │ │ └── spec.md
45
46
  │ ├── design.md # artifact 3: how
46
47
  │ └── tasks.md # artifact 4: work
47
- ├── specs/ # main specs (accumulated from archived changes)
48
- └── config.yaml # project-level openspec config
48
+ ├── specs/ # main specs (accumulated)
49
+ └── config.yaml # project-level config
49
50
  ```
50
51
 
52
+ The `.openspec.yaml` for a change looks like:
53
+ ```yaml
54
+ schema: spec-driven
55
+ created: 2026-06-04
56
+ sequence: 1
57
+ ```
58
+
59
+ `/openspec list` shows the sequence number for each change,
60
+ and you can use the number as a shorthand (`/openspec status 1`).
61
+
51
62
  ## Commands
52
63
 
53
64
  | Command | What it does |
54
65
  | -------------------------------- | ------------------------------------------- |
55
- | `/openspec new <name>` | Create a new change (auto-numbered + dated) |
66
+ | `/openspec new <name>` | Create a new change (auto-sequenced) |
56
67
  | `/openspec status [id]` | Show artifact completion status |
57
68
  | `/openspec next [id] [artifact]` | Get enriched instructions for next artifact |
58
69
  | `/openspec validate [id]` | Validate a change or all changes |
@@ -62,8 +73,8 @@ openspec/
62
73
  | `/openspec init` | Initialize OpenSpec in a project |
63
74
  | `/openspec schemas` | List available workflow schemas |
64
75
 
65
- **Identifiers:** Use the number (`3`), full name
66
- (`00003-2026-06-04-add-auth`), or slug (`add-auth`).
76
+ **Identifiers:** Use the sequence number (`3`), full slug
77
+ (`add-auth`), or a substring match.
67
78
 
68
79
  ## Workflow — Step by Step
69
80
 
@@ -73,8 +84,8 @@ openspec/
73
84
  /openspec new add-auth
74
85
  ```
75
86
 
76
- Creates `openspec/changes/00001-2026-06-04-add-auth/` with
77
- `.openspec.yaml`. The first artifact (proposal) is now **ready**.
87
+ Creates `openspec/changes/add-auth/` with `.openspec.yaml`
88
+ (including `sequence: 1`). The first artifact is now **ready**.
78
89
 
79
90
  ### 2. Write each artifact
80
91
 
package/src/index.ts CHANGED
@@ -59,9 +59,13 @@ interface StatusResult {
59
59
  // Constants
60
60
  // ───────────────────────────────────────────────────────────────────
61
61
 
62
- // Matches: NNNNN-YYYY-MM-DD-slug-name
62
+ // Legacy: matches NNNNN-YYYY-MM-DD-slug-name dir names (kept for
63
+ // backward compat with any dirs that already use this format)
63
64
  const NAMED_RE = /^(\d{5})-(\d{4}-\d{2}-\d{2})-(.+)$/
64
65
 
66
+ // Matches "sequence: <number>" in .openspec.yaml metadata
67
+ const SEQ_RE = /^sequence:\s*(\d+)$/m
68
+
65
69
  const ARTIFACT_COLORS: Record<string, string> = {
66
70
  done: "✅",
67
71
  ready: "🔵",
@@ -94,6 +98,53 @@ function toSlug(name: string): string {
94
98
  .replace(/^-|-$/g, "")
95
99
  }
96
100
 
101
+ /**
102
+ * Read the sequence number from a change's .openspec.yaml.
103
+ * Returns 0 if no sequence field exists.
104
+ */
105
+ function readSequence(changeDirPath: string): number {
106
+ const metaPath = path.join(
107
+ changeDirPath,
108
+ ".openspec.yaml",
109
+ )
110
+ try {
111
+ const content = fs.readFileSync(metaPath, "utf8")
112
+ const m = SEQ_RE.exec(content)
113
+ return m ? parseInt(m[1], 10) : 0
114
+ } catch {
115
+ return 0
116
+ }
117
+ }
118
+
119
+ /**
120
+ * Write a sequence number into a change's .openspec.yaml.
121
+ * Appends "sequence: N" if not present, or updates it.
122
+ */
123
+ function writeSequence(
124
+ changeDirPath: string,
125
+ seq: number,
126
+ ): void {
127
+ const metaPath = path.join(
128
+ changeDirPath,
129
+ ".openspec.yaml",
130
+ )
131
+ try {
132
+ let content = fs.readFileSync(metaPath, "utf8")
133
+ if (SEQ_RE.test(content)) {
134
+ content = content.replace(
135
+ SEQ_RE,
136
+ `sequence: ${seq}`,
137
+ )
138
+ } else {
139
+ content =
140
+ content.trimEnd() + `\nsequence: ${seq}\n`
141
+ }
142
+ fs.writeFileSync(metaPath, content)
143
+ } catch {
144
+ // metadata file missing — skip silently
145
+ }
146
+ }
147
+
97
148
  /**
98
149
  * Scan existing change directories and return sorted list.
99
150
  * Supports both our NNNNN-date-name format and plain openspec names.
@@ -111,10 +162,23 @@ function scanChanges(cwd: string): string[] {
111
162
  }
112
163
 
113
164
  /**
114
- * Extract the numeric prefix from a NNNNN-date-name directory.
115
- * Returns 0 for directories without our naming scheme.
165
+ * Extract the sequence number for a change.
166
+ * Reads from .openspec.yaml metadata first, falls back to
167
+ * NNNNN-date-slug dir name pattern for backward compat.
168
+ * Returns 0 for changes without a sequence.
116
169
  */
117
- function extractNumber(dirname: string): number {
170
+ function extractNumber(
171
+ dirname: string,
172
+ cwd?: string,
173
+ ): number {
174
+ // Try metadata first
175
+ if (cwd) {
176
+ const seq = readSequence(
177
+ path.join(changesDir(cwd), dirname),
178
+ )
179
+ if (seq > 0) return seq
180
+ }
181
+ // Fallback: legacy NNNNN-date-slug dir name
118
182
  const m = NAMED_RE.exec(dirname)
119
183
  return m ? parseInt(m[1], 10) : 0
120
184
  }
@@ -125,7 +189,9 @@ function extractNumber(dirname: string): number {
125
189
  function nextNumber(cwd: string): number {
126
190
  const changes = scanChanges(cwd)
127
191
  if (changes.length === 0) return 1
128
- const max = Math.max(...changes.map(extractNumber))
192
+ const max = Math.max(
193
+ ...changes.map((c) => extractNumber(c, cwd)),
194
+ )
129
195
  return max + 1
130
196
  }
131
197
 
@@ -142,12 +208,23 @@ function resolveChange(cwd: string, id: string): string | null {
142
208
 
143
209
  const trimmed = id.trim()
144
210
 
145
- // Try numeric lookup
211
+ // Try numeric lookup — check metadata sequence
146
212
  const num = parseInt(trimmed, 10)
147
213
  if (!Number.isNaN(num) && String(num) === trimmed) {
214
+ // First: check metadata sequence numbers
215
+ const dir = changesDir(cwd)
216
+ const seqMatch = changes.find((c) => {
217
+ const seq = readSequence(path.join(dir, c))
218
+ return seq === num
219
+ })
220
+ if (seqMatch) return seqMatch
221
+
222
+ // Fallback: legacy NNNNN- dir name prefix
148
223
  const padded = String(num).padStart(5, "0")
149
- const match = changes.find((c) => c.startsWith(padded + "-"))
150
- if (match) return match
224
+ const prefixMatch = changes.find(
225
+ (c) => c.startsWith(padded + "-"),
226
+ )
227
+ if (prefixMatch) return prefixMatch
151
228
  }
152
229
 
153
230
  // Exact match
@@ -250,22 +327,46 @@ function formatStatus(status: StatusResult): string {
250
327
  return lines.join("\n")
251
328
  }
252
329
 
253
- function formatChangeList(changes: ChangeEntry[], _cwd: string): string {
330
+ function formatChangeList(
331
+ changes: ChangeEntry[],
332
+ cwd: string,
333
+ ): string {
254
334
  if (changes.length === 0) {
255
- return "No active changes. Create one with `/openspec new <name>`"
335
+ return (
336
+ "No active changes. " +
337
+ "Create one with `/openspec new <name>`"
338
+ )
256
339
  }
257
340
 
258
341
  const lines: string[] = []
259
- lines.push("| # | Change | Tasks | Status | Modified |")
260
- lines.push("|---|--------|-------|--------|----------|")
342
+ lines.push(
343
+ "| # | Change | Tasks | Status | Modified |",
344
+ )
345
+ lines.push(
346
+ "|---|--------|-------|--------|----------|",
347
+ )
261
348
 
262
349
  for (const c of changes) {
263
- const m = NAMED_RE.exec(c.name)
264
- const num = m ? m[1] : "—"
350
+ // Try metadata sequence, then legacy dir-name prefix
351
+ const seq = readSequence(
352
+ path.join(changesDir(cwd), c.name),
353
+ )
354
+ let num: string
355
+ if (seq > 0) {
356
+ num = String(seq).padStart(5, "0")
357
+ } else {
358
+ const m = NAMED_RE.exec(c.name)
359
+ num = m ? m[1] : "—"
360
+ }
265
361
  const tasks =
266
- c.totalTasks > 0 ? `${c.completedTasks}/${c.totalTasks}` : "—"
362
+ c.totalTasks > 0
363
+ ? `${c.completedTasks}/${c.totalTasks}`
364
+ : "—"
267
365
  const date = c.lastModified.slice(0, 10)
268
- lines.push(`| ${num} | ${c.name} | ${tasks} | ${c.status} | ${date} |`)
366
+ lines.push(
367
+ `| ${num} | ${c.name} | ${tasks} ` +
368
+ `| ${c.status} | ${date} |`,
369
+ )
269
370
  }
270
371
 
271
372
  return lines.join("\n")
@@ -313,27 +414,44 @@ async function handleNew(
313
414
  }
314
415
 
315
416
  const num = nextNumber(ctx.cwd)
316
- const padded = String(num).padStart(5, "0")
317
- const fullName = `${padded}-${today()}-${slug}`
318
417
 
319
418
  try {
320
- run(ctx.cwd, `new change "${fullName}"`)
321
- ctx.ui.notify(`✅ Created change: ${fullName}`, "info")
419
+ // CLI requires plain kebab-case slug (rejects digit
420
+ // prefixes), so pass the slug and add the sequence
421
+ // number to .openspec.yaml metadata afterward.
422
+ run(ctx.cwd, `new change "${slug}"`)
423
+
424
+ // Write sequence number into metadata
425
+ const changeDir = path.join(
426
+ changesDir(ctx.cwd),
427
+ slug,
428
+ )
429
+ writeSequence(changeDir, num)
430
+
431
+ const padded = String(num).padStart(5, "0")
432
+ ctx.ui.notify(
433
+ `✅ Created change #${padded}: ${slug}`,
434
+ "info",
435
+ )
322
436
 
323
437
  // Feed the agent instructions for the first artifact
324
438
  pi.sendUserMessage(
325
- `New OpenSpec change **${fullName}** created.\n\n` +
439
+ `New OpenSpec change **#${padded} ${slug}** ` +
440
+ `created.\n\n` +
326
441
  `The spec-driven workflow is: ` +
327
442
  `proposal → specs → design → tasks.\n\n` +
328
443
  `The first artifact to write is **proposal**. ` +
329
444
  `Run \`/openspec next ${num} proposal\` to get ` +
330
445
  `enriched instructions, or start writing ` +
331
- `\`openspec/changes/${fullName}/proposal.md\` ` +
446
+ `\`openspec/changes/${slug}/proposal.md\` ` +
332
447
  `directly.`,
333
448
  )
334
449
  } catch (err: unknown) {
335
450
  const msg = err instanceof Error ? err.message : String(err)
336
- ctx.ui.notify(`❌ Failed to create change: ${msg}`, "error")
451
+ ctx.ui.notify(
452
+ `❌ Failed to create change: ${msg}`,
453
+ "error",
454
+ )
337
455
  }
338
456
  }
339
457