@benzotti/jedi 0.1.22 → 0.1.23

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 (2) hide show
  1. package/dist/index.js +73 -23
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -9301,6 +9301,7 @@ You are Jedi, an AI development framework that uses specialised agents to plan,
9301
9301
  You are **Jedi**, not Claude. Always refer to yourself as "Jedi" in your responses.
9302
9302
  Use "Jedi" in summaries and status updates (e.g. "Jedi has completed..." not "Claude has completed...").
9303
9303
  Do not add a signature line \u2014 the response is already branded by the Jedi CLI.
9304
+ Never include meta-commentary about agent activation (e.g. "You are now active as jdi-planner" or "Plan created as requested"). Just give the response directly.
9304
9305
 
9305
9306
  ## Framework
9306
9307
 
@@ -9328,7 +9329,8 @@ and saving it to \`.jdi/persistence/codebase-index.md\` for future runs.
9328
9329
 
9329
9330
  Only do what was explicitly requested. Do not add extras, tooling, or features the user did not ask for.
9330
9331
  If something is ambiguous, ask \u2014 do not guess.
9331
- Use S/M/L t-shirt sizing, never time estimates.
9332
+ NEVER use time estimates (minutes, hours, etc). Use S/M/L t-shirt sizing for all task and plan sizing.
9333
+ Follow response templates exactly as instructed in the prompt \u2014 do not improvise the layout or structure.
9332
9334
 
9333
9335
  ## Workflow Routing
9334
9336
 
@@ -11129,7 +11131,7 @@ async function fetchCommentThread(repo, issueNumber) {
11129
11131
  author: parsed.author,
11130
11132
  body: parsed.body,
11131
11133
  createdAt: parsed.createdAt,
11132
- isJedi: parsed.body.includes("### \u2694\uFE0F Jedi")
11134
+ isJedi: parsed.body.includes("Jedi <sup>")
11133
11135
  });
11134
11136
  } catch {}
11135
11137
  }
@@ -11170,19 +11172,33 @@ function buildConversationContext(thread, currentCommentId) {
11170
11172
  return { history: lines.join(`
11171
11173
  `), previousJediRuns, isFollowUp };
11172
11174
  }
11173
- function formatJediComment(response) {
11175
+ var COMMAND_EMOJI = {
11176
+ plan: "\uD83D\uDD2E",
11177
+ implement: "\u25B6",
11178
+ quick: "\u26A1",
11179
+ review: "\uD83D\uDCA0",
11180
+ feedback: "\uD83C\uDF00",
11181
+ ping: "\uD83D\uDD39"
11182
+ };
11183
+ function formatJediComment(command, response) {
11184
+ const emoji = COMMAND_EMOJI[command] ?? "\u25C8";
11174
11185
  return [
11175
- `### \u2694\uFE0F Jedi`,
11186
+ `<h3>${emoji} Jedi <sup>${command}</sup></h3>`,
11187
+ ``,
11188
+ `---`,
11176
11189
  ``,
11177
11190
  response
11178
11191
  ].join(`
11179
11192
  `);
11180
11193
  }
11181
11194
  function formatErrorComment(command, summary) {
11195
+ const emoji = COMMAND_EMOJI[command] ?? "\u25C8";
11182
11196
  return [
11183
- `### \u2694\uFE0F Jedi`,
11197
+ `<h3>${emoji} Jedi <sup>${command} \xB7 failed</sup></h3>`,
11198
+ ``,
11199
+ `---`,
11184
11200
  ``,
11185
- `**${command} failed.** ${summary}`
11201
+ summary
11186
11202
  ].join(`
11187
11203
  `);
11188
11204
  }
@@ -11304,9 +11320,14 @@ var actionCommand = defineCommand({
11304
11320
  if (repo && commentId) {
11305
11321
  await reactToComment(repo, commentId, "eyes").catch(() => {});
11306
11322
  }
11323
+ const commandLabel = intent.isFeedback ? "feedback" : intent.command;
11307
11324
  let placeholderCommentId = null;
11308
11325
  if (repo && issueNumber) {
11309
- const thinkingBody = formatJediComment("_Thinking..._");
11326
+ const thinkingBody = `<h3>\uD83E\uDDE0 Jedi <sup>thinking</sup></h3>
11327
+
11328
+ ---
11329
+
11330
+ _Working on it..._`;
11310
11331
  placeholderCommentId = await postGitHubComment(repo, issueNumber, thinkingBody).catch(() => null);
11311
11332
  }
11312
11333
  if (intent.command === "ping") {
@@ -11336,7 +11357,7 @@ var actionCommand = defineCommand({
11336
11357
  `| Version | \`${version}\` |`
11337
11358
  ].join(`
11338
11359
  `);
11339
- const finalBody = formatJediComment(statusBody);
11360
+ const finalBody = formatJediComment("ping", statusBody);
11340
11361
  if (repo && placeholderCommentId) {
11341
11362
  await updateGitHubComment(repo, placeholderCommentId, finalBody).catch((err) => {
11342
11363
  consola.error("Failed to update ping comment:", err);
@@ -11443,22 +11464,51 @@ Use the ClickUp ticket above as the primary requirements source.` : ``,
11443
11464
  `## Scope Rules`,
11444
11465
  `IMPORTANT: Only plan what was explicitly requested. Do NOT add extras like testing, linting, formatting, CI, or tooling unless the user asked for them.`,
11445
11466
  `If something is ambiguous, ask \u2014 do not guess.`,
11467
+ `NEVER use time estimates (minutes, hours, etc). Use t-shirt sizes: S, M, L. This is mandatory.`,
11446
11468
  ``,
11447
11469
  `## Learnings`,
11448
11470
  `Before planning, read .jdi/persistence/learnings.md and .jdi/framework/learnings/ if they exist. Apply any team preferences found.`,
11449
11471
  ``,
11450
- `## Presentation`,
11451
- `Follow the planning workflow in your spec. When presenting the plan:`,
11452
- `1. Start with a brief summary of the approach`,
11453
- `2. Include the FULL plan in a collapsible details block using this format:`,
11454
- ` <details>`,
11455
- ` <summary>View full plan</summary>`,
11456
- ` `,
11457
- ` [full plan content here as markdown]`,
11458
- ` `,
11459
- ` </details>`,
11460
- `3. After the plan, suggest 3-5 optional additions the user might want (e.g. "Would you also like testing? linting? state management?"). These are NOT part of the plan.`,
11461
- `4. Ask for feedback. The user will respond via another GitHub comment.`
11472
+ `## Response Format`,
11473
+ `Follow the planning workflow in your spec to write plan files. Then respond with EXACTLY this structure (no deviations, no meta-commentary like "You are now active as..." or "Plan created"):`,
11474
+ ``,
11475
+ `1-2 sentence summary of the approach.`,
11476
+ ``,
11477
+ `<details>`,
11478
+ `<summary>View full plan</summary>`,
11479
+ ``,
11480
+ `## {Plan Name}`,
11481
+ ``,
11482
+ `**Overall size:** {S|M|L}`,
11483
+ ``,
11484
+ `### Tasks`,
11485
+ ``,
11486
+ `| Task | Name | Size | Type | Wave |`,
11487
+ `|------|------|------|------|------|`,
11488
+ `| T1 | {name} | {S|M|L} | auto | 1 |`,
11489
+ ``,
11490
+ `### T1 \u2014 {Task Name}`,
11491
+ `**Objective:** {what this achieves}`,
11492
+ ``,
11493
+ `**Steps:**`,
11494
+ `1. {step}`,
11495
+ ``,
11496
+ `**Done when:** {completion criterion}`,
11497
+ ``,
11498
+ `---`,
11499
+ `(repeat for each task)`,
11500
+ ``,
11501
+ `### Verification`,
11502
+ `- [ ] {check 1}`,
11503
+ `- [ ] {check 2}`,
11504
+ ``,
11505
+ `</details>`,
11506
+ ``,
11507
+ `**Optional additions** \u2014 not included in this plan:`,
11508
+ `1. {suggestion}`,
11509
+ `2. {suggestion}`,
11510
+ ``,
11511
+ `Any changes before implementation?`
11462
11512
  ].join(`
11463
11513
  `);
11464
11514
  break;
@@ -11576,11 +11626,11 @@ Use the ClickUp ticket above as the primary requirements source.` : ``,
11576
11626
  const actionLabel = intent.isFeedback ? "feedback" : intent.command;
11577
11627
  let commentBody;
11578
11628
  if (success && fullResponse) {
11579
- commentBody = formatJediComment(fullResponse);
11629
+ commentBody = formatJediComment(actionLabel, fullResponse);
11580
11630
  } else if (!success) {
11581
11631
  commentBody = formatErrorComment(actionLabel, "Check workflow logs for details.");
11582
11632
  } else {
11583
- commentBody = formatJediComment(`Executed \`${actionLabel}\` successfully.`);
11633
+ commentBody = formatJediComment(actionLabel, `Executed \`${actionLabel}\` successfully.`);
11584
11634
  }
11585
11635
  if (placeholderCommentId) {
11586
11636
  await updateGitHubComment(repo, placeholderCommentId, commentBody).catch((err) => {
@@ -11662,7 +11712,7 @@ var setupActionCommand = defineCommand({
11662
11712
  // package.json
11663
11713
  var package_default = {
11664
11714
  name: "@benzotti/jedi",
11665
- version: "0.1.22",
11715
+ version: "0.1.23",
11666
11716
  description: "JDI - Context-efficient AI development framework for Claude Code",
11667
11717
  type: "module",
11668
11718
  bin: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@benzotti/jedi",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "description": "JDI - Context-efficient AI development framework for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {