Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ Templates contain the workflows, tips, and examples that require human judgment.
| `{{DESIGN_METHODOLOGY}}` | `gen-skill-docs.ts` | Shared design audit methodology for /plan-design-review and /design-review |
| `{{REVIEW_DASHBOARD}}` | `gen-skill-docs.ts` | Review Readiness Dashboard for /ship pre-flight |
| `{{TEST_BOOTSTRAP}}` | `gen-skill-docs.ts` | Test framework detection, bootstrap, CI/CD setup for /qa, /ship, /design-review |
| `{{CODEX_PLAN_REVIEW}}` | `gen-skill-docs.ts` | Optional cross-model plan review (Codex or Claude subagent fallback) for /plan-ceo-review and /plan-eng-review |
| `{{OUTSIDE_VOICES}}` | `resolvers/outside-voices.ts` | Cross-vendor advisory panel for /plan-ceo-review, /plan-eng-review, /plan-devex-review. External CLI voices run through `bin/gstack-panel` (codex on by default; grok/gemini ship off pending live write-denial canaries); the Fable subagent and a native Claude pass are dispatched by the orchestrator; `bin/gstack-vote` tallies every `<voice>.result.json` into one recommendation. Advisory only: it routes into the existing human gate and never sets the verdict. `{{CODEX_PLAN_REVIEW}}` still resolves as a thin alias for out-of-tree templates. |
| `{{DESIGN_SETUP}}` | `resolvers/design.ts` | Discovery pattern for `$D` design binary, mirrors `{{BROWSE_SETUP}}` |
| `{{DESIGN_SHOTGUN_LOOP}}` | `resolvers/design.ts` | Shared comparison board feedback loop for /design-shotgun, /plan-design-review, /design-consultation |
| `{{UX_PRINCIPLES}}` | `resolvers/design.ts` | User behavioral foundations (scanning, satisficing, goodwill reservoir, trunk test) for /design-html, /design-shotgun, /design-review, /plan-design-review |
Expand Down
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,50 @@
# Changelog

## [Unreleased — fork: outside-voices panel M1] - 2026-08-30

**Every plan review now gets a cross-vendor advisory panel: independent second
opinions from other AI systems, tabulated into one recommendation that can
never block — the user still decides.**

Fork-local milestone (feat/outside-voices-panel, M1 of 3) on top of the ported
upstream v1.68.2.0 — VERSION deliberately unchanged: this fork tracks upstream
release numbers, so fork work ships as CHANGELOG entries, not version bumps.

### Added
- `bin/gstack-panel` — the invocation primitive for external CLI voices
(codex/grok/gemini): sequential-foreground, per-voice 540s timeout ladder
bounded by the remaining wall-clock, one `<voice>.result.json` per voice on
every path, `--collect` salvage, `--redact-only`, and the full per-voice
security pipeline (kill-switches, auth preflight, under-codex guard,
first-use per-vendor egress consent, redaction gate, fail-closed egress
receipts, read-only sandboxes, `panel_budget_usd` projection).
- `bin/gstack-vote` — the ONLY tabulation path: filename-bound attribution
(only canonical `<voice>.result.json` basenames, each voice at most once),
mandatory per-run nonce authentication (an un-nonced ready verdict is
demoted, fail-closed), repo-aware finding-location resolution, and the
per-voice consensus table (vendor-collapsed median, dissents, appendix).
- `lib/outside-voices/{registry,vote}.ts` — voice registry with mandatory
security fields per adapter, the strict `parseVoiceResult` (schema/enum/
size/nonce/spoof validation), and `tallyVoices()` per the design's §5
truth table.
- `{{OUTSIDE_VOICES}}` resolver wired into the ceo/eng/devex plan reviews
(replaces the codex-only `{{CODEX_PLAN_REVIEW}}` block) — panel runs
default-on as a standard, advisory, non-blocking step.
- Config keys: `gemini_reviews`, `fable_reviews` (free), `panel_budget_usd`
(fail-closed on present-but-empty), `grok_reviews_consent`,
`gemini_reviews_consent`; `gstack-config has` now prints the raw stored
value for provenance-aware callers.
- Security/invariant test suites (+~1,000 assertions): nonce, redaction,
egress-receipt, sandbox-canary (periodic tier), budget, consent, vote
truth-table, and ship-review regression pins.

### Changed
- Roster safe-default: `grok_reviews`/`gemini_reviews` ship **disabled**
(design said all-four-on) until each CLI passes a live write-denial canary
— grok's sandbox did not deny writes live; gemini is auth-blocked.
- gemini sandbox pinned to `--approval-mode plan` (`-s read-only` is invalid
against the real CLI).

## [1.68.2.0] - 2026-08-20

**Revoking a paired agent now revokes everything it holds, and the**
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ gstack/
├── investigate/ # /investigate skill (systematic root-cause debugging)
├── spec/ # /spec skill (five-phase spec → GitHub issue, optional agent spawn, /ship auto-closes)
├── retro/ # Retrospective skill (includes /retro global cross-project mode)
├── bin/ # CLI utilities (gstack-repo-mode, gstack-slug, gstack-config, gstack-wtree, gstack-evidence, gstack-issue-guard, etc.)
├── bin/ # CLI utilities (gstack-repo-mode, gstack-slug, gstack-config, gstack-wtree, gstack-evidence, gstack-issue-guard, gstack-panel, gstack-vote, etc.)
├── document-release/ # /document-release skill (post-ship doc updates + Diataxis coverage map)
├── document-generate/ # /document-generate skill (Diataxis doc generator: tutorial/how-to/reference/explanation)
├── cso/ # /cso skill (OWASP Top 10 + STRIDE security audit)
Expand All @@ -171,7 +171,7 @@ gstack/
│ ├── test/ # Integration tests
│ └── dist/ # Compiled binary
├── extension/ # Chrome extension (side panel + activity feed + CSS inspector)
├── lib/ # Shared libraries (worktree.ts, egress-receipt.ts, context-bill.ts, redact-engine.ts, tracker-guard.ts, version-source.ts, code-intelligence/)
├── lib/ # Shared libraries (worktree.ts, egress-receipt.ts, context-bill.ts, redact-engine.ts, tracker-guard.ts, version-source.ts, outside-voices/, code-intelligence/)
├── patches/ # bun `patchedDependencies` patches (playwright-core windowsHide)
├── docs/designs/ # Design documents
├── setup-deploy/ # /setup-deploy skill (one-time deploy config)
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -352,11 +352,11 @@ worth the review overhead.

## Multi-host development

gstack generates SKILL.md files for 8 hosts from one set of `.tmpl` templates.
gstack generates SKILL.md files for 10 hosts from one set of `.tmpl` templates.
Each host is a typed config in `hosts/*.ts`. The generator reads these configs
to produce host-appropriate output (different frontmatter, paths, tool names).

**Supported hosts:** Claude (primary), Codex, Factory, Kiro, OpenCode, Slate, Cursor, OpenClaw.
**Supported hosts:** Claude (primary), Codex, Factory, Kiro, OpenCode, Slate, Cursor, OpenClaw, Hermes, GBrain.

### Generating for all hosts

Expand All @@ -365,7 +365,7 @@ to produce host-appropriate output (different frontmatter, paths, tool names).
bun run gen:skill-docs # Claude (default)
bun run gen:skill-docs --host codex # Codex
bun run gen:skill-docs --host opencode # OpenCode
bun run gen:skill-docs --host all # All 8 hosts
bun run gen:skill-docs --host all # All 10 hosts

# Or use build, which does all hosts + compiles binaries
bun run build
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,10 @@ Each skill feeds into the next. `/office-hours` writes a design doc that `/plan-
| `/office-hours` | **YC Office Hours** | Start here. Six forcing questions that reframe your product before you write code. Pushes back on your framing, challenges premises, generates implementation alternatives. Design doc feeds into every downstream skill. |
| `/plan-deliverables` | **Planner** | Author per-milestone acceptance criteria, each paired with a validating test (the deliverable), and bake them into the plan. |
| `/autobuilder-loop` | **Build Loop** | Drive an already-approved plan, spec, or backlog to completion unattended — model-routed subagents per milestone, review gates, Docker verification. |
| `/plan-ceo-review` | **CEO / Founder** | Rethink the problem. Find the 10-star product hiding inside the request. Four modes: Expansion, Selective Expansion, Hold Scope, Reduction. |
| `/plan-eng-review` | **Eng Manager** | Lock in architecture, data flow, diagrams, edge cases, and tests. Forces hidden assumptions into the open. |
| `/plan-ceo-review` | **CEO / Founder** | Rethink the problem. Find the 10-star product hiding inside the request. Four modes: Expansion, Selective Expansion, Hold Scope, Reduction. Ends with the outside-voices advisory panel: independent second opinions from other AI vendors, tallied into one recommendation that never blocks. |
| `/plan-eng-review` | **Eng Manager** | Lock in architecture, data flow, diagrams, edge cases, and tests. Forces hidden assumptions into the open. Ends with the outside-voices advisory panel. |
| `/plan-design-review` | **Senior Designer** | Rates each design dimension 0-10, explains what a 10 looks like, then edits the plan to get there. AI Slop detection. Interactive — one AskUserQuestion per design choice. |
| `/plan-devex-review` | **Developer Experience Lead** | Interactive DX review: explores developer personas, benchmarks against competitors' TTHW, designs your magical moment, traces friction points step by step. Three modes: DX EXPANSION, DX POLISH, DX TRIAGE. 20-45 forcing questions. |
| `/plan-devex-review` | **Developer Experience Lead** | Interactive DX review: explores developer personas, benchmarks against competitors' TTHW, designs your magical moment, traces friction points step by step. Three modes: DX EXPANSION, DX POLISH, DX TRIAGE. 20-45 forcing questions. Ends with the outside-voices advisory panel. |
| `/design-consultation` | **Design Partner** | Build a complete design system from scratch. Researches the landscape, proposes creative risks, generates realistic product mockups. |
| `/review` | **Staff Engineer** | Find the bugs that pass CI but blow up in production. Auto-fixes the obvious ones. Flags completeness gaps. |
| `/investigate` | **Debugger** | Systematic root-cause debugging. Iron Law: no fixes without investigation. Traces data flow, tests hypotheses, stops after 3 failed fixes. |
Expand Down
18 changes: 6 additions & 12 deletions TODOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2281,18 +2281,6 @@ Shipped: Default model changed to Sonnet for structure tests (~30), Opus retaine

Shipped as v0.5.0 on main. Includes `/plan-design-review` (report-only design audit), `/qa-design-review` (audit + fix loop), and `/design-consultation` (interactive DESIGN.md creation). `{{DESIGN_METHODOLOGY}}` resolver provides shared 80-item design audit checklist.

### Design outside voices in /plan-eng-review

**What:** Extend the parallel dual-voice pattern (Codex + Claude subagent) to /plan-eng-review's architecture review section.

**Why:** The design beachhead (v0.11.3.0) proves cross-model consensus works for subjective reviews. Architecture reviews have similar subjectivity in tradeoff decisions.

**Context:** Depends on learnings from the design beachhead. If the litmus scorecard format proves useful, adapt it for architecture dimensions (coupling, scaling, reversibility).

**Effort:** S
**Priority:** P3
**Depends on:** Design outside voices shipped (v0.11.3.0)

### Outside voices in /qa visual regression detection

**What:** Add Codex design voice to /qa for detecting visual regressions during bug-fix verification.
Expand Down Expand Up @@ -2786,6 +2774,12 @@ needs one paid run to validate, so it didn't ride the ship.

## Completed

### ✅ DONE (fork: outside-voices panel M1, 2026-08-30): Design outside voices in /plan-eng-review

**What:** Extend the parallel dual-voice pattern (Codex + Claude subagent) to /plan-eng-review's architecture review section.

**Completed:** Unreleased fork milestone M1 (feat/outside-voices-panel, 2026-08-30). Superseded by the N-voice `{{OUTSIDE_VOICES:surface=eng}}` advisory panel: external CLI voices via `bin/gstack-panel` (codex default-on; grok/gemini default-off pending live write-denial canaries), plus the Fable subagent and a native Claude pass dispatched by the orchestrator, all tallied by `bin/gstack-vote`. Wired into /plan-eng-review, /plan-ceo-review, and /plan-devex-review. Advisory only; routes into the existing human gate. See docs/designs/OUTSIDE_VOICES_PANEL.md.

### ✅ DONE (v1.68.1.0): Stop-hook registration pins the setup-time absolute path

**Priority:** P1 (was filed Effort S, scoped to the Stop hook — shipped as the full defect class)
Expand Down
Loading
Loading