Skip to content

Commit e0eedb0

Browse files
ljodeaclaude
andcommitted
chore(grok): CONTRIBUTING compliance — AGENTS.md, golden snapshots, VERSION/CHANGELOG
The original PR was hand-opened before reading CONTRIBUTING.md and missed three CI-gating requirements: - Register /grok in AGENTS.md (skill-validation doc-inventory cross-check). - Refresh the three ship golden snapshots (claude/codex/factory) that the grok-review dashboard line in ship/SKILL.md regenerated — host-config golden-file regression tests. - Bump VERSION to the next free queue slot (1.59.1.0, via gstack-next-version) and add a CHANGELOG entry, matching every merged gstack PR. Verified: `bun run gen:skill-docs --host all` is clean across all hosts, and `bun test` is green except 5 pre-existing gstack-gbrain-detect failures that fail identically on origin/main (local gbrain tooling absent). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 4fb246b commit e0eedb0

8 files changed

Lines changed: 29 additions & 5 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Invoke them by name (e.g., `/office-hours`).
2929
|-------|-------------|
3030
| `/review` | Pre-landing PR review. Finds bugs that pass CI but break in prod. |
3131
| `/codex` | Second opinion via OpenAI Codex. Review, challenge, or consult modes. |
32+
| `/grok` | Second opinion via xAI Grok. Review, challenge, or consult modes. |
3233
| `/investigate` | Systematic root-cause debugging. No fixes without investigation. |
3334
| `/design-review` | Live-site visual audit + fix loop with atomic commits. |
3435
| `/design-shotgun` | Generate multiple AI design variants, comparison board, iterate. |

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Changelog
22

3+
## [1.59.1.0] - 2026-06-16
4+
5+
## **A second outside voice. `/grok` is the symmetric counterpart to `/codex` —**
6+
## **an independent review, challenge, or consult from xAI's Grok, same contract.**
7+
8+
Cross-model independence was a single point of failure: every automatic outside-voice
9+
step routed through Codex, so when Codex was down or you wanted a genuinely different
10+
model, the chain fell back to a Claude subagent and lost the cross-model signal. `/grok`
11+
adds a second, independent voice with the exact `/codex` contract: **review** (diff-scoped,
12+
`[P1]`/`[P2]` findings, pass/fail gate), **challenge** (adversarial failure-mode hunt), and
13+
**consult** (open Q&A with session resume via `-r`/`-c`). It runs read-only through
14+
`gstack-grok-probe`, which handles auth (`~/.grok/auth.json` or `$XAI_API_KEY`), a timeout
15+
wrapper, and telemetry.
16+
17+
The plan-review dashboard now distinguishes the two outside voices: the GSTACK REVIEW
18+
REPORT carries a `grok-review` row alongside `codex-review`, labels each as OpenAI vs xAI,
19+
and the CROSS-MODEL line fires when **two or more** outside-voice reviews exist instead of
20+
assuming Claude-plus-Codex. `/ship`'s dashboard reads the `grok-review` log the same way.
21+
22+
Run `/grok review`, `/grok challenge security`, or `/grok Is this migration ordering safe?`
23+
after `./setup`. Requires `grok` on PATH and auth via `grok login` or `$XAI_API_KEY`.
24+
325
## [1.58.4.0] - 2026-06-18
426

527
## **A community bug-fix wave plus a test-gate that finally sees the questions it was missing.**

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.58.4.0
1+
1.59.1.0

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gstack",
3-
"version": "1.58.4.0",
3+
"version": "1.59.1.0",
44
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
55
"license": "MIT",
66
"type": "module",

test/fixtures/golden/claude-ship-SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -887,7 +887,7 @@ After completing the review, read the review log and config to display the dashb
887887
~/.claude/skills/gstack/bin/gstack-review-read
888888
```
889889

890-
Parse the output. Find the most recent entry for each skill (plan-ceo-review, plan-eng-review, review, plan-design-review, design-review-lite, adversarial-review, codex-review, codex-plan-review). Ignore entries with timestamps older than 7 days. For the Eng Review row, show whichever is more recent between `review` (diff-scoped pre-landing review) and `plan-eng-review` (plan-stage architecture review). Append "(DIFF)" or "(PLAN)" to the status to distinguish. For the Adversarial row, show whichever is more recent between `adversarial-review` (new auto-scaled) and `codex-review` (legacy). For Design Review, show whichever is more recent between `plan-design-review` (full visual audit) and `design-review-lite` (code-level check). Append "(FULL)" or "(LITE)" to the status to distinguish. For the Outside Voice row, show the most recent `codex-plan-review` entry — this captures outside voices from both /plan-ceo-review and /plan-eng-review.
890+
Parse the output. Find the most recent entry for each skill (plan-ceo-review, plan-eng-review, review, plan-design-review, design-review-lite, adversarial-review, codex-review, grok-review, codex-plan-review). Ignore entries with timestamps older than 7 days. For the Eng Review row, show whichever is more recent between `review` (diff-scoped pre-landing review) and `plan-eng-review` (plan-stage architecture review). Append "(DIFF)" or "(PLAN)" to the status to distinguish. For the Adversarial row, show whichever is more recent between `adversarial-review` (new auto-scaled) and `codex-review` (legacy). For Design Review, show whichever is more recent between `plan-design-review` (full visual audit) and `design-review-lite` (code-level check). Append "(FULL)" or "(LITE)" to the status to distinguish. For the Outside Voice row, show the most recent `codex-plan-review` entry — this captures outside voices from both /plan-ceo-review and /plan-eng-review.
891891

892892
**Source attribution:** If the most recent entry for a skill has a \`"via"\` field, append it to the status label in parentheses. Examples: `plan-eng-review` with `via:"autoplan"` shows as "CLEAR (PLAN via /autoplan)". `review` with `via:"ship"` shows as "CLEAR (DIFF via /ship)". Entries without a `via` field show as "CLEAR (PLAN)" or "CLEAR (DIFF)" as before.
893893

test/fixtures/golden/codex-ship-SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,7 @@ After completing the review, read the review log and config to display the dashb
859859
$GSTACK_ROOT/bin/gstack-review-read
860860
```
861861

862-
Parse the output. Find the most recent entry for each skill (plan-ceo-review, plan-eng-review, review, plan-design-review, design-review-lite, adversarial-review, codex-review, codex-plan-review). Ignore entries with timestamps older than 7 days. For the Eng Review row, show whichever is more recent between `review` (diff-scoped pre-landing review) and `plan-eng-review` (plan-stage architecture review). Append "(DIFF)" or "(PLAN)" to the status to distinguish. For the Adversarial row, show whichever is more recent between `adversarial-review` (new auto-scaled) and `codex-review` (legacy). For Design Review, show whichever is more recent between `plan-design-review` (full visual audit) and `design-review-lite` (code-level check). Append "(FULL)" or "(LITE)" to the status to distinguish. For the Outside Voice row, show the most recent `codex-plan-review` entry — this captures outside voices from both /plan-ceo-review and /plan-eng-review.
862+
Parse the output. Find the most recent entry for each skill (plan-ceo-review, plan-eng-review, review, plan-design-review, design-review-lite, adversarial-review, codex-review, grok-review, codex-plan-review). Ignore entries with timestamps older than 7 days. For the Eng Review row, show whichever is more recent between `review` (diff-scoped pre-landing review) and `plan-eng-review` (plan-stage architecture review). Append "(DIFF)" or "(PLAN)" to the status to distinguish. For the Adversarial row, show whichever is more recent between `adversarial-review` (new auto-scaled) and `codex-review` (legacy). For Design Review, show whichever is more recent between `plan-design-review` (full visual audit) and `design-review-lite` (code-level check). Append "(FULL)" or "(LITE)" to the status to distinguish. For the Outside Voice row, show the most recent `codex-plan-review` entry — this captures outside voices from both /plan-ceo-review and /plan-eng-review.
863863

864864
**Source attribution:** If the most recent entry for a skill has a \`"via"\` field, append it to the status label in parentheses. Examples: `plan-eng-review` with `via:"autoplan"` shows as "CLEAR (PLAN via /autoplan)". `review` with `via:"ship"` shows as "CLEAR (DIFF via /ship)". Entries without a `via` field show as "CLEAR (PLAN)" or "CLEAR (DIFF)" as before.
865865

test/fixtures/golden/factory-ship-SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ After completing the review, read the review log and config to display the dashb
861861
$GSTACK_ROOT/bin/gstack-review-read
862862
```
863863

864-
Parse the output. Find the most recent entry for each skill (plan-ceo-review, plan-eng-review, review, plan-design-review, design-review-lite, adversarial-review, codex-review, codex-plan-review). Ignore entries with timestamps older than 7 days. For the Eng Review row, show whichever is more recent between `review` (diff-scoped pre-landing review) and `plan-eng-review` (plan-stage architecture review). Append "(DIFF)" or "(PLAN)" to the status to distinguish. For the Adversarial row, show whichever is more recent between `adversarial-review` (new auto-scaled) and `codex-review` (legacy). For Design Review, show whichever is more recent between `plan-design-review` (full visual audit) and `design-review-lite` (code-level check). Append "(FULL)" or "(LITE)" to the status to distinguish. For the Outside Voice row, show the most recent `codex-plan-review` entry — this captures outside voices from both /plan-ceo-review and /plan-eng-review.
864+
Parse the output. Find the most recent entry for each skill (plan-ceo-review, plan-eng-review, review, plan-design-review, design-review-lite, adversarial-review, codex-review, grok-review, codex-plan-review). Ignore entries with timestamps older than 7 days. For the Eng Review row, show whichever is more recent between `review` (diff-scoped pre-landing review) and `plan-eng-review` (plan-stage architecture review). Append "(DIFF)" or "(PLAN)" to the status to distinguish. For the Adversarial row, show whichever is more recent between `adversarial-review` (new auto-scaled) and `codex-review` (legacy). For Design Review, show whichever is more recent between `plan-design-review` (full visual audit) and `design-review-lite` (code-level check). Append "(FULL)" or "(LITE)" to the status to distinguish. For the Outside Voice row, show the most recent `codex-plan-review` entry — this captures outside voices from both /plan-ceo-review and /plan-eng-review.
865865

866866
**Source attribution:** If the most recent entry for a skill has a \`"via"\` field, append it to the status label in parentheses. Examples: `plan-eng-review` with `via:"autoplan"` shows as "CLEAR (PLAN via /autoplan)". `review` with `via:"ship"` shows as "CLEAR (DIFF via /ship)". Entries without a `via` field show as "CLEAR (PLAN)" or "CLEAR (DIFF)" as before.
867867

test/skill-coverage-matrix.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ export const SKILL_COVERAGE: Record<string, SkillCoverage> = {
150150
benchmark: { gate: ['test/skill-e2e-benchmark-providers.test.ts', 'test/skill-coverage-floor.test.ts'], periodic: [] },
151151
'benchmark-models': { gate: ['test/skill-coverage-floor.test.ts'], periodic: [] },
152152
codex: { gate: ['test/skill-coverage-floor.test.ts'], periodic: [] },
153+
grok: { gate: ['test/grok-hardening.test.ts', 'test/skill-coverage-floor.test.ts'], periodic: [] },
153154
retro: {
154155
gate: ['test/skill-coverage-floor.test.ts'],
155156
periodic: ['test/regression-1624-retro-stale-base.test.ts'],

0 commit comments

Comments
 (0)