Skip to content
Open
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
51 changes: 34 additions & 17 deletions office-hours/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -603,21 +603,19 @@ Use AskUserQuestion to confirm. If the user disagrees with a premise, revise und

## Phase 3.5: Cross-Model Second Opinion (optional)

**Binary check first β€” no question if unavailable:**
**Binary check first:**

```bash
which codex 2>/dev/null && echo "CODEX_AVAILABLE" || echo "CODEX_NOT_AVAILABLE"
```

If `CODEX_NOT_AVAILABLE`: skip Phase 3.5 entirely β€” no message, no AskUserQuestion. Proceed directly to Phase 4.
Use AskUserQuestion (regardless of codex availability):

If `CODEX_AVAILABLE`: use AskUserQuestion:

> Want a second opinion from a different AI model? Codex will independently review your problem statement, key answers, premises, and any landscape findings from this session. It hasn't seen this conversation β€” it gets a structured summary. Usually takes 2-5 minutes.
> Want a second opinion from an independent AI perspective? It will review your problem statement, key answers, premises, and any landscape findings from this session without having seen this conversation β€” it gets a structured summary. Usually takes 2-5 minutes.
> A) Yes, get a second opinion
> B) No, proceed to alternatives

If B: skip Phase 3.5 entirely. Remember that Codex did NOT run (affects design doc, founder signals, and Phase 4 below).
If B: skip Phase 3.5 entirely. Remember that the second opinion did NOT run (affects design doc, founder signals, and Phase 4 below).

**If A: Run the Codex cold read.**

Expand Down Expand Up @@ -654,26 +652,45 @@ cat "$TMPERR_OH"
rm -f "$TMPERR_OH" "$CODEX_PROMPT_FILE"
```

**Error handling:** All errors are non-blocking β€” Codex second opinion is a quality enhancement, not a prerequisite.
- **Auth failure:** If stderr contains "auth", "login", "unauthorized", or "API key": "Codex authentication failed. Run \`codex login\` to authenticate. Skipping second opinion."
- **Timeout:** "Codex timed out after 5 minutes. Skipping second opinion."
- **Empty response:** "Codex returned no response. Stderr: <paste relevant error>. Skipping second opinion."
**Error handling:** All errors are non-blocking β€” second opinion is a quality enhancement, not a prerequisite.
- **Auth failure:** If stderr contains "auth", "login", "unauthorized", or "API key": "Codex authentication failed. Run \`codex login\` to authenticate." Fall back to Claude subagent.
- **Timeout:** "Codex timed out after 5 minutes." Fall back to Claude subagent.
- **Empty response:** "Codex returned no response." Fall back to Claude subagent.

On any Codex error, fall back to the Claude subagent below.

**If CODEX_NOT_AVAILABLE (or Codex errored):**

Dispatch via the Agent tool. The subagent has fresh context β€” genuine independence.

Subagent prompt: same mode-appropriate prompt as above (Startup or Builder variant).

Present findings under a `SECOND OPINION (Claude subagent):` header.

On any error, proceed to Phase 4 β€” do NOT fall back to a Claude subagent (this is brainstorming, not adversarial review).
If the subagent fails or times out: "Second opinion unavailable. Continuing to Phase 4."

4. **Presentation:**

If Codex ran:
```
SECOND OPINION (Codex):
════════════════════════════════════════════════════════════
<full codex output, verbatim β€” do not truncate or summarize>
════════════════════════════════════════════════════════════
```

5. **Cross-model synthesis:** After presenting Codex output, provide 3-5 bullet synthesis:
- Where Claude agrees with Codex
If Claude subagent ran:
```
SECOND OPINION (Claude subagent):
════════════════════════════════════════════════════════════
<full subagent output, verbatim β€” do not truncate or summarize>
════════════════════════════════════════════════════════════
```

5. **Cross-model synthesis:** After presenting the second opinion output, provide 3-5 bullet synthesis:
- Where Claude agrees with the second opinion
- Where Claude disagrees and why
- Whether Codex's challenged premise changes Claude's recommendation
- Whether the challenged premise changes Claude's recommendation

6. **Premise revision check:** If Codex challenged an agreed premise, use AskUserQuestion:

Expand Down Expand Up @@ -711,7 +728,7 @@ Rules:
- One must be the **"minimal viable"** (fewest files, smallest diff, ships fastest).
- One must be the **"ideal architecture"** (best long-term trajectory, most elegant).
- One can be **creative/lateral** (unexpected approach, different framing of the problem).
- If Codex proposed a prototype in Phase 3.5, consider using it as a starting point for the creative/lateral approach.
- If the second opinion (Codex or Claude subagent) proposed a prototype in Phase 3.5, consider using it as a starting point for the creative/lateral approach.

**RECOMMENDATION:** Choose [X] because [one-line reason].

Expand Down Expand Up @@ -875,7 +892,7 @@ Supersedes: {prior filename β€” omit this line if first design on this branch}
{from Phase 3}

## Cross-Model Perspective
{If Codex ran in Phase 3.5: Codex's independent cold read β€” steelman, key insight, challenged premise, prototype suggestion. Verbatim or close paraphrase of what Codex said. If Codex did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}
{If second opinion ran in Phase 3.5 (Codex or Claude subagent): independent cold read β€” steelman, key insight, challenged premise, prototype suggestion. Verbatim or close paraphrase. If second opinion did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}

## Approaches Considered
### Approach A: {name}
Expand Down Expand Up @@ -932,7 +949,7 @@ Supersedes: {prior filename β€” omit this line if first design on this branch}
{from Phase 3}

## Cross-Model Perspective
{If Codex ran in Phase 3.5: Codex's independent cold read β€” coolest version, key insight, existing tools, prototype suggestion. Verbatim or close paraphrase of what Codex said. If Codex did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}
{If second opinion ran in Phase 3.5 (Codex or Claude subagent): independent cold read β€” coolest version, key insight, existing tools, prototype suggestion. Verbatim or close paraphrase. If second opinion did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}

## Approaches Considered
### Approach A: {name}
Expand Down
6 changes: 3 additions & 3 deletions office-hours/SKILL.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ Rules:
- One must be the **"minimal viable"** (fewest files, smallest diff, ships fastest).
- One must be the **"ideal architecture"** (best long-term trajectory, most elegant).
- One can be **creative/lateral** (unexpected approach, different framing of the problem).
- If Codex proposed a prototype in Phase 3.5, consider using it as a starting point for the creative/lateral approach.
- If the second opinion (Codex or Claude subagent) proposed a prototype in Phase 3.5, consider using it as a starting point for the creative/lateral approach.

**RECOMMENDATION:** Choose [X] because [one-line reason].

Expand Down Expand Up @@ -459,7 +459,7 @@ Supersedes: {prior filename β€” omit this line if first design on this branch}
{from Phase 3}

## Cross-Model Perspective
{If Codex ran in Phase 3.5: Codex's independent cold read β€” steelman, key insight, challenged premise, prototype suggestion. Verbatim or close paraphrase of what Codex said. If Codex did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}
{If second opinion ran in Phase 3.5 (Codex or Claude subagent): independent cold read β€” steelman, key insight, challenged premise, prototype suggestion. Verbatim or close paraphrase. If second opinion did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}

## Approaches Considered
### Approach A: {name}
Expand Down Expand Up @@ -516,7 +516,7 @@ Supersedes: {prior filename β€” omit this line if first design on this branch}
{from Phase 3}

## Cross-Model Perspective
{If Codex ran in Phase 3.5: Codex's independent cold read β€” coolest version, key insight, existing tools, prototype suggestion. Verbatim or close paraphrase of what Codex said. If Codex did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}
{If second opinion ran in Phase 3.5 (Codex or Claude subagent): independent cold read β€” coolest version, key insight, existing tools, prototype suggestion. Verbatim or close paraphrase. If second opinion did NOT run (skipped or unavailable): omit this section entirely β€” do not include it.}

## Approaches Considered
### Approach A: {name}
Expand Down