@kenkaiiii/gg-boss 4.8.1 → 4.8.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.
@@ -75699,7 +75699,7 @@ End your reply with this exact notice so the user doesn't miss it:
75699
75699
  name: "setup-commit",
75700
75700
  aliases: [],
75701
75701
  description: "Generate a /commit command",
75702
- prompt: `Detect the project type and generate a /commit command that enforces quality checks before committing.
75702
+ prompt: `Detect the project type and generate a /commit command that enforces quality checks and an agent code review before committing.
75703
75703
 
75704
75704
  ## Step 1: Detect Project and Extract Commands
75705
75705
 
@@ -75718,7 +75718,7 @@ Create the directory \`.gg/commands/\` if it doesn't exist, then write \`.gg/com
75718
75718
  \`\`\`markdown
75719
75719
  ---
75720
75720
  name: commit
75721
- description: Run checks, commit with AI message, and push
75721
+ description: Run checks, agent code review, commit with AI message, and push
75722
75722
  ---
75723
75723
 
75724
75724
  1. Run quality checks:
@@ -75727,24 +75727,37 @@ description: Run checks, commit with AI message, and push
75727
75727
 
75728
75728
  2. Review changes: run git status and git diff --staged and git diff
75729
75729
 
75730
- 3. Stage relevant files with git add (specific files, not -A)
75730
+ 3. Fast review gate: spawn ONE subagent with the full diff. Instructions: review ONLY
75731
+ the diff for real bugs, regressions, leftover debug code, and unintended changes.
75732
+ Score each issue 0-100 confidence (pre-existing issues and stylistic nitpicks = false
75733
+ positives, score low). Report ONLY issues with confidence >= 80, with file:line and a
75734
+ one-line fix. If none, reply "CLEAR". This is a last check, not a deep audit - be fast.
75731
75735
 
75732
- 4. Generate a commit message:
75736
+ 4. If CLEAR: proceed straight to step 5 and push WITHOUT asking the user anything.
75737
+ If issues >= 80 were reported: STOP, show the issues, and ask exactly:
75738
+ "Want me to fix this first, or commit and push anyway?
75739
+ A) Fix it first, then commit & push
75740
+ B) Commit & push anyway"
75741
+ On A: fix, re-run step 1, then continue (no re-review). On B: continue as-is.
75742
+
75743
+ 5. Stage relevant files with git add (specific files, not -A)
75744
+
75745
+ 6. Generate a commit message:
75733
75746
  - Start with verb (Add/Update/Fix/Remove/Refactor)
75734
75747
  - Be specific and concise, one line preferred
75735
75748
 
75736
- 5. Commit and push:
75749
+ 7. Commit AND push in one go - never pause for confirmation here:
75737
75750
  git commit -m "your generated message"
75738
75751
  git push
75739
75752
  \`\`\`
75740
75753
 
75741
75754
  Replace [PROJECT-SPECIFIC LINT/TYPECHECK COMMANDS] with the actual commands.
75742
75755
 
75743
- Keep the command file under 20 lines.
75756
+ Keep the command file under 30 lines.
75744
75757
 
75745
75758
  ## Step 3: Confirm
75746
75759
 
75747
- Report that /commit is now available with quality checks and AI-generated commit messages, and mention which local scripts/docs verified the commands.`
75760
+ Report that /commit is now available with quality checks, an agent code review gate, and AI-generated commit messages, and mention which local scripts/docs verified the commands.`
75748
75761
  },
75749
75762
  {
75750
75763
  name: "compare",
@@ -107694,12 +107707,40 @@ function renderMarkdownToAnsiLines({ text, theme, width, isPending = false, avai
107694
107707
  if (tableHeaders.length > 0 && tableRows.length > 0) {
107695
107708
  const styledHeaders = tableHeaders.map((header) => renderInlineMarkdownToAnsi(stripUnsafeCharacters(header), theme, theme.link));
107696
107709
  const styledRows = tableRows.map((row) => row.map((cell) => renderInlineMarkdownToAnsi(stripUnsafeCharacters(cell), theme, theme.text)));
107697
- addLines(renderAnsiTable({ headers: styledHeaders, rows: styledRows, terminalWidth: width, theme }));
107710
+ const tableLines = renderAnsiTable({
107711
+ headers: styledHeaders,
107712
+ rows: styledRows,
107713
+ terminalWidth: width,
107714
+ theme
107715
+ });
107716
+ if (isPending && availableTerminalHeight !== void 0) {
107717
+ const reservedLines = 2;
107718
+ const maxTableLinesWhenPending = Math.max(0, availableTerminalHeight - reservedLines);
107719
+ if (tableLines.length > maxTableLinesWhenPending) {
107720
+ if (maxTableLinesWhenPending < 1) {
107721
+ addLines([colorize3("... table is being written ...", theme.textMuted)]);
107722
+ } else {
107723
+ addLines(tableLines.slice(0, maxTableLinesWhenPending));
107724
+ addLines([colorize3("... generating more ...", theme.textMuted)]);
107725
+ }
107726
+ inTable = false;
107727
+ tableRows = [];
107728
+ tableHeaders = [];
107729
+ return;
107730
+ }
107731
+ }
107732
+ addLines(tableLines);
107698
107733
  }
107699
107734
  inTable = false;
107700
107735
  tableRows = [];
107701
107736
  tableHeaders = [];
107702
107737
  };
107738
+ let pendingTableTailStart = lines.length;
107739
+ if (isPending) {
107740
+ while (pendingTableTailStart > 0 && /^\s*\|/.test(lines[pendingTableTailStart - 1] ?? "") && lines.length - pendingTableTailStart < 2) {
107741
+ pendingTableTailStart -= 1;
107742
+ }
107743
+ }
107703
107744
  lines.forEach((line, index) => {
107704
107745
  if (inCodeBlock) {
107705
107746
  const fenceMatch = line.match(codeFenceRegex);
@@ -107730,7 +107771,7 @@ function renderMarkdownToAnsiLines({ text, theme, width, isPending = false, avai
107730
107771
  inTable = true;
107731
107772
  tableHeaders = tableRowMatch[1]?.split("|").map((cell) => cell.trim()) ?? [];
107732
107773
  tableRows = [];
107733
- } else {
107774
+ } else if (index < pendingTableTailStart) {
107734
107775
  addInlineLine(line);
107735
107776
  }
107736
107777
  } else if (inTable && tableSeparatorMatch) {
@@ -107742,6 +107783,9 @@ function renderMarkdownToAnsiLines({ text, theme, width, isPending = false, avai
107742
107783
  cells.length = tableHeaders.length;
107743
107784
  tableRows.push(cells);
107744
107785
  } else if (inTable && !tableRowMatch) {
107786
+ if (index >= pendingTableTailStart) {
107787
+ return;
107788
+ }
107745
107789
  flushTable();
107746
107790
  if (line.trim().length > 0)
107747
107791
  addInlineLine(line);
@@ -107767,7 +107811,7 @@ function renderMarkdownToAnsiLines({ text, theme, width, isPending = false, avai
107767
107811
  output.push(EMPTY_RENDER_LINE);
107768
107812
  lastLineEmpty = true;
107769
107813
  }
107770
- } else {
107814
+ } else if (index < pendingTableTailStart) {
107771
107815
  addInlineLine(line);
107772
107816
  }
107773
107817
  });
@@ -107795,7 +107839,10 @@ var Markdown = import_react55.default.memo(function Markdown2({ children, width:
107795
107839
  availableTerminalHeight,
107796
107840
  renderMarkdown
107797
107841
  }), [availableTerminalHeight, isPending, renderMarkdown, terminalWidth, text, theme]);
107798
- const visibleLines = availableTerminalHeight !== void 0 && renderedLines.length > availableTerminalHeight ? renderedLines.slice(-availableTerminalHeight) : renderedLines;
107842
+ let visibleLines = availableTerminalHeight !== void 0 && renderedLines.length > availableTerminalHeight ? renderedLines.slice(-availableTerminalHeight) : renderedLines;
107843
+ while (visibleLines.length > 0 && visibleLines[0] === "") {
107844
+ visibleLines = visibleLines.slice(1);
107845
+ }
107799
107846
  if (!text || visibleLines.length === 0)
107800
107847
  return null;
107801
107848
  return (0, import_jsx_runtime14.jsx)(Box_default, { flexDirection: "column", width: terminalWidth, flexShrink: 1, children: (0, import_jsx_runtime14.jsx)(RenderAnsiLines, { lines: visibleLines }) });
@@ -114696,4 +114743,4 @@ react/cjs/react-jsx-runtime.development.js:
114696
114743
  * LICENSE file in the root directory of this source tree.
114697
114744
  *)
114698
114745
  */
114699
- //# sourceMappingURL=chunk-HRWFW5HH.js.map
114746
+ //# sourceMappingURL=chunk-VN6GZWBW.js.map